@b3-crow/ui-kit 0.0.30-pr25.9 → 0.0.31-pr25.10
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/components/backgrounds/AnimatedBackground.d.ts.map +1 -0
- package/dist/components/backgrounds/AnimatedBackground.js.map +1 -0
- package/dist/components/backgrounds/Globe.d.ts.map +1 -0
- package/dist/components/backgrounds/Globe.js.map +1 -0
- package/dist/components/backgrounds/GradientBackground.d.ts.map +1 -0
- package/dist/components/backgrounds/GradientBackground.js.map +1 -0
- package/dist/components/{Button.d.ts → buttons/Button.d.ts} +5 -2
- package/dist/components/buttons/Button.d.ts.map +1 -0
- package/dist/components/buttons/Button.js +41 -0
- package/dist/components/buttons/Button.js.map +1 -0
- package/dist/components/buttons/CompanyPageButton.d.ts +10 -0
- package/dist/components/buttons/CompanyPageButton.d.ts.map +1 -0
- package/dist/components/buttons/CompanyPageButton.js +8 -0
- package/dist/components/buttons/CompanyPageButton.js.map +1 -0
- package/dist/components/cards/Card.d.ts.map +1 -0
- package/dist/components/{Card.js → cards/Card.js} +1 -1
- package/dist/components/cards/Card.js.map +1 -0
- package/dist/components/cards/CheckoutSummary.d.ts +38 -0
- package/dist/components/cards/CheckoutSummary.d.ts.map +1 -0
- package/dist/components/cards/CheckoutSummary.js +54 -0
- package/dist/components/cards/CheckoutSummary.js.map +1 -0
- package/dist/components/cards/ConnectionOption.d.ts +13 -0
- package/dist/components/cards/ConnectionOption.d.ts.map +1 -0
- package/dist/components/cards/ConnectionOption.js +22 -0
- package/dist/components/cards/ConnectionOption.js.map +1 -0
- package/dist/components/cards/InvitationDetailsCard.d.ts +8 -0
- package/dist/components/cards/InvitationDetailsCard.d.ts.map +1 -0
- package/dist/components/cards/InvitationDetailsCard.js +5 -0
- package/dist/components/cards/InvitationDetailsCard.js.map +1 -0
- package/dist/components/cards/OrderSummaryCard.d.ts +29 -0
- package/dist/components/cards/OrderSummaryCard.d.ts.map +1 -0
- package/dist/components/cards/OrderSummaryCard.js +8 -0
- package/dist/components/cards/OrderSummaryCard.js.map +1 -0
- package/dist/components/cards/PendingInviteCard.d.ts +26 -0
- package/dist/components/cards/PendingInviteCard.d.ts.map +1 -0
- package/dist/components/cards/PendingInviteCard.js +63 -0
- package/dist/components/cards/PendingInviteCard.js.map +1 -0
- package/dist/components/cards/PlanCard.d.ts +50 -0
- package/dist/components/cards/PlanCard.d.ts.map +1 -0
- package/dist/components/cards/PlanCard.js +40 -0
- package/dist/components/cards/PlanCard.js.map +1 -0
- package/dist/components/cards/RunAgentCard.d.ts +9 -0
- package/dist/components/cards/RunAgentCard.d.ts.map +1 -0
- package/dist/components/cards/RunAgentCard.js +15 -0
- package/dist/components/cards/RunAgentCard.js.map +1 -0
- package/dist/components/cards/SyncStatusCard.d.ts +8 -0
- package/dist/components/cards/SyncStatusCard.d.ts.map +1 -0
- package/dist/components/cards/SyncStatusCard.js +29 -0
- package/dist/components/cards/SyncStatusCard.js.map +1 -0
- package/dist/components/dashboard/StatusBadge.d.ts +1 -1
- package/dist/components/display/CodeBlock.d.ts +10 -0
- package/dist/components/display/CodeBlock.d.ts.map +1 -0
- package/dist/components/display/CodeBlock.js +20 -0
- package/dist/components/display/CodeBlock.js.map +1 -0
- package/dist/components/display/ConnectionStatus.d.ts +8 -0
- package/dist/components/display/ConnectionStatus.d.ts.map +1 -0
- package/dist/components/display/ConnectionStatus.js +5 -0
- package/dist/components/display/ConnectionStatus.js.map +1 -0
- package/dist/components/display/Logo.d.ts +16 -0
- package/dist/components/display/Logo.d.ts.map +1 -0
- package/dist/components/display/Logo.js +43 -0
- package/dist/components/display/Logo.js.map +1 -0
- package/dist/components/display/PackageManagerSelector.d.ts +8 -0
- package/dist/components/display/PackageManagerSelector.d.ts.map +1 -0
- package/dist/components/display/PackageManagerSelector.js +20 -0
- package/dist/components/display/PackageManagerSelector.js.map +1 -0
- package/dist/components/index.d.ts +39 -11
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +39 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/inputs/ApiKeyInput.d.ts +8 -0
- package/dist/components/inputs/ApiKeyInput.d.ts.map +1 -0
- package/dist/components/inputs/ApiKeyInput.js +22 -0
- package/dist/components/inputs/ApiKeyInput.js.map +1 -0
- package/dist/components/inputs/Checkbox.d.ts +11 -0
- package/dist/components/inputs/Checkbox.d.ts.map +1 -0
- package/dist/components/inputs/Checkbox.js +19 -0
- package/dist/components/inputs/Checkbox.js.map +1 -0
- package/dist/components/inputs/EmailTagInput.d.ts +9 -0
- package/dist/components/inputs/EmailTagInput.d.ts.map +1 -0
- package/dist/components/inputs/EmailTagInput.js +61 -0
- package/dist/components/inputs/EmailTagInput.js.map +1 -0
- package/dist/components/inputs/Input.d.ts +16 -0
- package/dist/components/inputs/Input.d.ts.map +1 -0
- package/dist/components/inputs/Input.js +42 -0
- package/dist/components/inputs/Input.js.map +1 -0
- package/dist/components/inputs/InputField.d.ts.map +1 -0
- package/dist/components/{InputField.js → inputs/InputField.js} +1 -1
- package/dist/components/inputs/InputField.js.map +1 -0
- package/dist/components/inputs/NumberStepper.d.ts +15 -0
- package/dist/components/inputs/NumberStepper.d.ts.map +1 -0
- package/dist/components/inputs/NumberStepper.js +49 -0
- package/dist/components/inputs/NumberStepper.js.map +1 -0
- package/dist/components/inputs/PermissionToggle.d.ts +15 -0
- package/dist/components/inputs/PermissionToggle.d.ts.map +1 -0
- package/dist/components/inputs/PermissionToggle.js +18 -0
- package/dist/components/inputs/PermissionToggle.js.map +1 -0
- package/dist/components/inputs/Select.d.ts +24 -0
- package/dist/components/inputs/Select.d.ts.map +1 -0
- package/dist/components/inputs/Select.js +156 -0
- package/dist/components/inputs/Select.js.map +1 -0
- package/dist/components/inputs/TagInput.d.ts +10 -0
- package/dist/components/inputs/TagInput.d.ts.map +1 -0
- package/dist/components/inputs/TagInput.js +20 -0
- package/dist/components/inputs/TagInput.js.map +1 -0
- package/dist/components/inputs/ToggleOption.d.ts +20 -0
- package/dist/components/inputs/ToggleOption.d.ts.map +1 -0
- package/dist/components/inputs/ToggleOption.js +70 -0
- package/dist/components/inputs/ToggleOption.js.map +1 -0
- package/dist/components/layout/Divider.d.ts +11 -0
- package/dist/components/layout/Divider.d.ts.map +1 -0
- package/dist/components/layout/Divider.js +15 -0
- package/dist/components/layout/Divider.js.map +1 -0
- package/dist/components/layout/Footer.d.ts +37 -0
- package/dist/components/layout/Footer.d.ts.map +1 -0
- package/dist/components/layout/Footer.js +49 -0
- package/dist/components/layout/Footer.js.map +1 -0
- package/dist/components/layout/FormSection.d.ts +9 -0
- package/dist/components/layout/FormSection.d.ts.map +1 -0
- package/dist/components/layout/FormSection.js +7 -0
- package/dist/components/layout/FormSection.js.map +1 -0
- package/dist/components/layout/LinkGroup.d.ts +15 -0
- package/dist/components/layout/LinkGroup.d.ts.map +1 -0
- package/dist/components/layout/LinkGroup.js +28 -0
- package/dist/components/layout/LinkGroup.js.map +1 -0
- package/dist/components/layout/Navbar.d.ts +32 -0
- package/dist/components/layout/Navbar.d.ts.map +1 -0
- package/dist/components/layout/Navbar.js +35 -0
- package/dist/components/layout/Navbar.js.map +1 -0
- package/dist/components/layout/PageHeader.d.ts +17 -0
- package/dist/components/layout/PageHeader.d.ts.map +1 -0
- package/dist/components/layout/PageHeader.js +86 -0
- package/dist/components/layout/PageHeader.js.map +1 -0
- package/dist/components/layout/SegmentedControl.d.ts +16 -0
- package/dist/components/layout/SegmentedControl.d.ts.map +1 -0
- package/dist/components/layout/SegmentedControl.js +24 -0
- package/dist/components/layout/SegmentedControl.js.map +1 -0
- package/dist/components/typography/HeroText.d.ts.map +1 -0
- package/dist/components/typography/HeroText.js.map +1 -0
- package/dist/components/typography/SectionLabel.d.ts.map +1 -0
- package/dist/components/typography/SectionLabel.js.map +1 -0
- package/dist/components/typography/Subtitle.d.ts.map +1 -0
- package/dist/components/typography/Subtitle.js.map +1 -0
- package/dist/components/typography/TypewriterText.d.ts.map +1 -0
- package/dist/components/typography/TypewriterText.js.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +2 -1
- package/dist/components/AnimatedBackground.d.ts.map +0 -1
- package/dist/components/AnimatedBackground.js.map +0 -1
- package/dist/components/Button.d.ts.map +0 -1
- package/dist/components/Button.js +0 -26
- package/dist/components/Button.js.map +0 -1
- package/dist/components/Card.d.ts.map +0 -1
- package/dist/components/Card.js.map +0 -1
- package/dist/components/Globe.d.ts.map +0 -1
- package/dist/components/Globe.js.map +0 -1
- package/dist/components/GradientBackground.d.ts.map +0 -1
- package/dist/components/GradientBackground.js.map +0 -1
- package/dist/components/HeroText.d.ts.map +0 -1
- package/dist/components/HeroText.js.map +0 -1
- package/dist/components/InputField.d.ts.map +0 -1
- package/dist/components/InputField.js.map +0 -1
- package/dist/components/Logo.d.ts +0 -6
- package/dist/components/Logo.d.ts.map +0 -1
- package/dist/components/Logo.js +0 -7
- package/dist/components/Logo.js.map +0 -1
- package/dist/components/SectionLabel.d.ts.map +0 -1
- package/dist/components/SectionLabel.js.map +0 -1
- package/dist/components/Subtitle.d.ts.map +0 -1
- package/dist/components/Subtitle.js.map +0 -1
- package/dist/components/TypewriterText.d.ts.map +0 -1
- package/dist/components/TypewriterText.js.map +0 -1
- /package/dist/components/{AnimatedBackground.d.ts → backgrounds/AnimatedBackground.d.ts} +0 -0
- /package/dist/components/{AnimatedBackground.js → backgrounds/AnimatedBackground.js} +0 -0
- /package/dist/components/{Globe.d.ts → backgrounds/Globe.d.ts} +0 -0
- /package/dist/components/{Globe.js → backgrounds/Globe.js} +0 -0
- /package/dist/components/{GradientBackground.d.ts → backgrounds/GradientBackground.d.ts} +0 -0
- /package/dist/components/{GradientBackground.js → backgrounds/GradientBackground.js} +0 -0
- /package/dist/components/{Card.d.ts → cards/Card.d.ts} +0 -0
- /package/dist/components/{InputField.d.ts → inputs/InputField.d.ts} +0 -0
- /package/dist/components/{HeroText.d.ts → typography/HeroText.d.ts} +0 -0
- /package/dist/components/{HeroText.js → typography/HeroText.js} +0 -0
- /package/dist/components/{SectionLabel.d.ts → typography/SectionLabel.d.ts} +0 -0
- /package/dist/components/{SectionLabel.js → typography/SectionLabel.js} +0 -0
- /package/dist/components/{Subtitle.d.ts → typography/Subtitle.d.ts} +0 -0
- /package/dist/components/{Subtitle.js → typography/Subtitle.js} +0 -0
- /package/dist/components/{TypewriterText.d.ts → typography/TypewriterText.d.ts} +0 -0
- /package/dist/components/{TypewriterText.js → typography/TypewriterText.js} +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { motion } from 'framer-motion';
|
|
3
|
+
import { cn } from '../../lib/utils';
|
|
4
|
+
import { Checkbox } from '../inputs/Checkbox';
|
|
5
|
+
export function PlanCard({ children, className = '', variant = 'default', padding = 'md', animated = true, animationDelay = 0, header, price, featuresTitle = 'INCLUDED LIMITS', specs, showSpecsDivider = true, features, footer, recommended = false, disabled = false, selected = false, showCheckbox = false, onCheckboxChange, }) {
|
|
6
|
+
const variantStyles = {
|
|
7
|
+
default: 'bg-white/[0.02] border border-white/10',
|
|
8
|
+
elevated: 'bg-white/[0.04] border border-white/20 shadow-card-glow',
|
|
9
|
+
outlined: 'bg-transparent border-2 border-white/20',
|
|
10
|
+
glass: 'bg-white/[0.03] backdrop-blur-lg border border-white/10',
|
|
11
|
+
plan: recommended
|
|
12
|
+
? 'bg-white/[0.04] border border-violet-500/30 shadow-card-glow ring-1 ring-violet-500/20'
|
|
13
|
+
: 'bg-white/[0.02] border border-white/10 hover:border-white/20',
|
|
14
|
+
};
|
|
15
|
+
const paddingStyles = {
|
|
16
|
+
none: 'p-0',
|
|
17
|
+
sm: 'p-5',
|
|
18
|
+
md: 'p-8',
|
|
19
|
+
lg: 'p-10',
|
|
20
|
+
};
|
|
21
|
+
const buttonStyles = {
|
|
22
|
+
primary: 'bg-violet-600 hover:bg-violet-700 text-white shadow-glow hover:shadow-glow-hover',
|
|
23
|
+
secondary: 'bg-white/[0.03] hover:bg-white/[0.08] border border-white/10 text-white',
|
|
24
|
+
outline: 'bg-transparent border border-white/20 hover:bg-white/5 text-gray-300 hover:text-white',
|
|
25
|
+
};
|
|
26
|
+
const cardClasses = cn(variantStyles[variant], paddingStyles[padding], 'rounded-3xl transition-all duration-300 relative h-full flex flex-col', disabled && 'opacity-50 cursor-not-allowed', selected && 'ring-2 ring-violet-500', className);
|
|
27
|
+
const CardContent = (_jsxs("div", { className: cardClasses, children: [recommended && (_jsx("div", { className: "absolute top-0 right-0 left-0 flex justify-center -mt-3", children: _jsx("span", { className: "bg-violet-600 text-[10px] font-bold uppercase tracking-wider text-white px-3 py-1 rounded-full shadow-lg", children: "Recommended" }) })), showCheckbox && (_jsx("div", { className: "absolute top-6 right-6", children: _jsx(Checkbox, { checked: selected, onChange: e => onCheckboxChange?.(e.target.checked), size: "lg" }) })), header && (_jsxs("div", { className: cn('mb-3', recommended && 'mt-2', header.badge && 'mt-3'), children: [header.badge && (_jsx("span", { className: "inline-block bg-violet-600/20 text-violet-400 text-[10px] font-bold uppercase tracking-wider px-2 py-0.5 rounded mb-2", children: header.badge })), header.icon && (_jsx("div", { className: "mb-3 flex items-center justify-center", children: header.icon })), header.title && (_jsx("h3", { className: "text-lg font-semibold text-white mb-1", children: header.title })), header.description && (_jsx("p", { className: "text-xs text-gray-500 leading-relaxed", children: header.description }))] })), price && (_jsx("div", { className: "mb-6", children: _jsxs("div", { className: "flex items-baseline gap-1", children: [_jsx("span", { className: "text-4xl font-bold text-white", children: price.amount }), price.period && (_jsxs("span", { className: "text-gray-400 text-sm", children: ["/", price.period] }))] }) })), specs && specs.length > 0 && (_jsx("div", { className: cn('mb-5 space-y-1.5', showSpecsDivider && 'border-t border-white/5 pt-3'), children: specs.map((spec, index) => (_jsxs("div", { className: "flex justify-between text-[11px] text-gray-400", children: [_jsx("span", { children: spec.label }), _jsx("span", { className: cn(spec.highlighted ? 'text-white font-medium' : 'text-gray-200'), children: spec.value })] }, index))) })), features && features.length > 0 && (_jsxs("div", { className: "flex-grow mb-6", children: [featuresTitle && (_jsx("h4", { className: "text-[10px] font-bold uppercase tracking-wider text-gray-500 mb-4", children: featuresTitle })), _jsx("div", { className: "space-y-3", children: features.map((feature, index) => {
|
|
28
|
+
const textColor = feature.variant === 'disabled'
|
|
29
|
+
? 'text-gray-500'
|
|
30
|
+
: feature.variant === 'highlighted'
|
|
31
|
+
? 'text-gray-200 font-medium'
|
|
32
|
+
: 'text-gray-300';
|
|
33
|
+
return (_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("span", { className: "text-violet-500 flex-shrink-0 text-sm", children: feature.icon }), _jsx("span", { className: cn('text-xs', textColor), children: feature.text })] }, index));
|
|
34
|
+
}) })] })), children && _jsx("div", { className: "flex-grow", children: children }), footer && (_jsxs("div", { className: "mt-auto", children: [footer.buttons && footer.buttons.length > 0 && (_jsx("div", { className: "space-y-2", children: footer.buttons.map((button, index) => (_jsx("button", { type: "button", onClick: button.onClick, disabled: disabled, className: cn('w-full text-sm font-medium py-2.5 rounded-full transition-all duration-200', 'disabled:opacity-50 disabled:cursor-not-allowed', buttonStyles[button.variant || 'outline']), children: button.text }, index))) })), footer.content && _jsx("div", { children: footer.content })] }))] }));
|
|
35
|
+
if (animated) {
|
|
36
|
+
return (_jsx(motion.div, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.5, delay: animationDelay }, children: CardContent }));
|
|
37
|
+
}
|
|
38
|
+
return CardContent;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=PlanCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanCard.js","sourceRoot":"","sources":["../../../src/components/cards/PlanCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface RunAgentCardProps {
|
|
2
|
+
command: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
title?: string;
|
|
5
|
+
onCopy?: (success: boolean) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function RunAgentCard({ command, description, title, onCopy, }: RunAgentCardProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=RunAgentCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunAgentCard.d.ts","sourceRoot":"","sources":["../../../src/components/cards/RunAgentCard.tsx"],"names":[],"mappings":"AAEA,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,WAA4F,EAC5F,KAAmB,EACnB,MAAM,GACP,EAAE,iBAAiB,2CAqCnB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { LuCopy } from 'react-icons/lu';
|
|
3
|
+
export function RunAgentCard({ command, description = 'Run this command on your local CCTV server to initiate the secure handshake.', title = 'Run agent', onCopy, }) {
|
|
4
|
+
const handleCopy = async () => {
|
|
5
|
+
try {
|
|
6
|
+
await navigator.clipboard.writeText(command);
|
|
7
|
+
onCopy?.(true);
|
|
8
|
+
}
|
|
9
|
+
catch (err) {
|
|
10
|
+
onCopy?.(false);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs("div", { className: "bg-white/[0.03] backdrop-blur-md border border-white/10 rounded-xl p-4 flex flex-col gap-3 h-full", children: [_jsx("h3", { className: "text-xs font-semibold text-violet-200/70 tracking-tight uppercase", children: title }), _jsxs("div", { className: "flex-grow flex flex-col justify-start", children: [_jsxs("div", { className: "w-full bg-[#050508] border border-white/10 rounded-lg p-3 flex items-center justify-between group-hover:border-violet-500/30 transition-colors overflow-hidden", children: [_jsx("code", { className: "text-xs text-gray-300 font-mono whitespace-nowrap overflow-x-auto pb-1 -mb-1 scrollbar-hide mr-2", children: command }), _jsx("div", { className: "bg-[#050508] pl-2 sticky right-0", children: _jsx("button", { type: "button", onClick: handleCopy, className: "text-gray-500 hover:text-white transition-colors", "aria-label": "Copy command to clipboard", children: _jsx(LuCopy, { className: "text-[14px]" }) }) })] }), _jsx("p", { className: "text-[10px] text-gray-600 mt-2 leading-tight", children: description })] })] }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=RunAgentCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunAgentCard.js","sourceRoot":"","sources":["../../../src/components/cards/RunAgentCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AASxC,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,WAAW,GAAG,8EAA8E,EAC5F,KAAK,GAAG,WAAW,EACnB,MAAM,GACY;IAClB,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,mGAAmG,aAChH,aAAI,SAAS,EAAC,mEAAmE,YAC9E,KAAK,GACH,EACL,eAAK,SAAS,EAAC,uCAAuC,aACpD,eAAK,SAAS,EAAC,gKAAgK,aAC7K,eAAM,SAAS,EAAC,kGAAkG,YAC/G,OAAO,GACH,EACP,cAAK,SAAS,EAAC,kCAAkC,YAC/C,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,kDAAkD,gBACjD,2BAA2B,YAEtC,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,GAAG,GAC3B,GACL,IACF,EACN,YAAG,SAAS,EAAC,8CAA8C,YACxD,WAAW,GACV,IACA,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface SyncStatusCardProps {
|
|
2
|
+
lastSync?: string;
|
|
3
|
+
mentions?: number;
|
|
4
|
+
status?: 'ready' | 'syncing' | 'error';
|
|
5
|
+
}
|
|
6
|
+
export declare function SyncStatusCard({ lastSync, mentions, status, }: SyncStatusCardProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=SyncStatusCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncStatusCard.d.ts","sourceRoot":"","sources":["../../../src/components/cards/SyncStatusCard.tsx"],"names":[],"mappings":"AAAA,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;CACxC;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAsB,EACtB,QAAe,EACf,MAAgB,GACjB,EAAE,mBAAmB,2CAkDrB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function SyncStatusCard({ lastSync = '2 min ago', mentions = 1284, status = 'ready', }) {
|
|
3
|
+
const statusConfig = {
|
|
4
|
+
ready: {
|
|
5
|
+
label: 'SYNC READY',
|
|
6
|
+
color: 'bg-violet-400',
|
|
7
|
+
borderColor: 'border-violet-500/30',
|
|
8
|
+
bgColor: 'bg-violet-500/5',
|
|
9
|
+
textColor: 'text-violet-300',
|
|
10
|
+
},
|
|
11
|
+
syncing: {
|
|
12
|
+
label: 'SYNCING',
|
|
13
|
+
color: 'bg-blue-400',
|
|
14
|
+
borderColor: 'border-blue-500/30',
|
|
15
|
+
bgColor: 'bg-blue-500/5',
|
|
16
|
+
textColor: 'text-blue-300',
|
|
17
|
+
},
|
|
18
|
+
error: {
|
|
19
|
+
label: 'ERROR',
|
|
20
|
+
color: 'bg-red-400',
|
|
21
|
+
borderColor: 'border-red-500/30',
|
|
22
|
+
bgColor: 'bg-red-500/5',
|
|
23
|
+
textColor: 'text-red-300',
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
const currentStatus = statusConfig[status];
|
|
27
|
+
return (_jsxs("div", { className: "mt-auto bg-[#0a0a0f]/60 rounded-xl p-3 border border-white/5 flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-center justify-between text-[11px] text-gray-400", children: [_jsxs("span", { children: ["Last sync: ", _jsx("span", { className: "text-gray-300", children: lastSync })] }), _jsxs("span", { children: ["Mentions:", ' ', _jsx("span", { className: "text-gray-300", children: mentions.toLocaleString() })] })] }), _jsx("div", { className: "flex items-center gap-2", children: _jsxs("div", { className: `px-2 py-0.5 rounded-full border ${currentStatus.borderColor} text-[10px] font-bold tracking-wider ${currentStatus.textColor} uppercase ${currentStatus.bgColor} flex items-center gap-1.5`, children: [_jsx("div", { className: `w-1.5 h-1.5 rounded-full ${currentStatus.color} shadow-[0_0_5px_rgba(167,139,250,0.5)]` }), currentStatus.label] }) })] }));
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=SyncStatusCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncStatusCard.js","sourceRoot":"","sources":["../../../src/components/cards/SyncStatusCard.tsx"],"names":[],"mappings":";AAMA,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,GAAG,WAAW,EACtB,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,OAAO,GACI;IACpB,MAAM,YAAY,GAAG;QACnB,KAAK,EAAE;YACL,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,sBAAsB;YACnC,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE,iBAAiB;SAC7B;QACD,OAAO,EAAE;YACP,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,oBAAoB;YACjC,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE,eAAe;SAC3B;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,cAAc;SAC1B;KACF,CAAC;IAEF,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAE3C,OAAO,CACL,eAAK,SAAS,EAAC,kFAAkF,aAC/F,eAAK,SAAS,EAAC,6DAA6D,aAC1E,0CACa,eAAM,SAAS,EAAC,eAAe,YAAE,QAAQ,GAAQ,IACvD,EACP,wCACY,GAAG,EACb,eAAM,SAAS,EAAC,eAAe,YAAE,QAAQ,CAAC,cAAc,EAAE,GAAQ,IAC7D,IACH,EACN,cAAK,SAAS,EAAC,yBAAyB,YACtC,eACE,SAAS,EAAE,mCAAmC,aAAa,CAAC,WAAW,yCAAyC,aAAa,CAAC,SAAS,cAAc,aAAa,CAAC,OAAO,4BAA4B,aAEtM,cACE,SAAS,EAAE,4BAA4B,aAAa,CAAC,KAAK,yCAAyC,GAC9F,EACN,aAAa,CAAC,KAAK,IAChB,GACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type VariantProps } from 'class-variance-authority';
|
|
2
2
|
declare const badgeVariants: (props?: ({
|
|
3
|
-
variant?: "
|
|
3
|
+
variant?: "warning" | "high" | "low" | "medium" | "positive" | "negative" | "neutral" | "info" | null | undefined;
|
|
4
4
|
size?: "default" | "sm" | null | undefined;
|
|
5
5
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
|
|
6
6
|
export interface StatusBadgeProps extends VariantProps<typeof badgeVariants> {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface CodeBlockProps {
|
|
2
|
+
code: string;
|
|
3
|
+
language?: string;
|
|
4
|
+
showCopy?: boolean;
|
|
5
|
+
className?: string;
|
|
6
|
+
onCopy?: (success: boolean) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function CodeBlock({ code, language, showCopy, className, onCopy, }: CodeBlockProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=CodeBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.d.ts","sourceRoot":"","sources":["../../../src/components/display/CodeBlock.tsx"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,QAAuB,EACvB,QAAe,EACf,SAAc,EACd,MAAM,GACP,EAAE,cAAc,2CAsDhB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { LuCopy, LuCheck } from 'react-icons/lu';
|
|
4
|
+
import { motion, AnimatePresence } from 'framer-motion';
|
|
5
|
+
export function CodeBlock({ code, language = 'typescript', showCopy = true, className = '', onCopy, }) {
|
|
6
|
+
const [isCopied, setIsCopied] = useState(false);
|
|
7
|
+
const handleCopy = async () => {
|
|
8
|
+
try {
|
|
9
|
+
await navigator.clipboard.writeText(code);
|
|
10
|
+
setIsCopied(true);
|
|
11
|
+
onCopy?.(true);
|
|
12
|
+
setTimeout(() => setIsCopied(false), 2000);
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
onCopy?.(false);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
return (_jsxs("div", { className: `relative group ${className}`, children: [showCopy && (_jsx("div", { className: "absolute top-2 right-2 z-10", children: _jsx("button", { onClick: handleCopy, className: "p-1 text-gray-500 hover:text-white transition-colors rounded-lg hover:bg-white/10", "aria-label": "Copy code", children: _jsx(AnimatePresence, { mode: "wait", children: isCopied ? (_jsx(motion.div, { initial: { scale: 0 }, animate: { scale: 1 }, exit: { scale: 0 }, children: _jsx(LuCheck, { className: "text-[14px] text-green-400" }) }, "check")) : (_jsx(motion.div, { initial: { scale: 0 }, animate: { scale: 1 }, exit: { scale: 0 }, children: _jsx(LuCopy, { className: "text-[14px]" }) }, "copy")) }) }) })), _jsx("div", { className: "w-full bg-[#050508] border border-white/10 rounded-lg p-3 overflow-x-auto group-hover:border-violet-500/30 transition-colors", children: _jsx("pre", { className: "text-xs text-gray-300 font-mono leading-relaxed whitespace-pre", children: _jsx("code", { className: `language-${language}`, children: code }) }) })] }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=CodeBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeBlock.js","sourceRoot":"","sources":["../../../src/components/display/CodeBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAUxD,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,QAAQ,GAAG,YAAY,EACvB,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,EAAE,EACd,MAAM,GACS;IACf,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YACf,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,kBAAkB,SAAS,EAAE,aAC1C,QAAQ,IAAI,CACX,cAAK,SAAS,EAAC,6BAA6B,YAC1C,iBACE,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,mFAAmF,gBAClF,WAAW,YAEtB,KAAC,eAAe,IAAC,IAAI,EAAC,MAAM,YACzB,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,MAAM,CAAC,GAAG,IAET,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,YAElB,KAAC,OAAO,IAAC,SAAS,EAAC,4BAA4B,GAAG,IAL9C,OAAO,CAMA,CACd,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,CAAC,GAAG,IAET,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,YAElB,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,GAAG,IAL9B,MAAM,CAMC,CACd,GACe,GACX,GACL,CACP,EACD,cAAK,SAAS,EAAC,8HAA8H,YAC3I,cAAK,SAAS,EAAC,gEAAgE,YAC7E,eAAM,SAAS,EAAE,YAAY,QAAQ,EAAE,YAAG,IAAI,GAAQ,GAClD,GACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface ConnectionStatusProps {
|
|
2
|
+
heartbeat?: string;
|
|
3
|
+
streams?: string;
|
|
4
|
+
isConnected?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function ConnectionStatus({ heartbeat, streams, isConnected, }: ConnectionStatusProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=ConnectionStatus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionStatus.d.ts","sourceRoot":"","sources":["../../../src/components/display/ConnectionStatus.tsx"],"names":[],"mappings":"AAAA,UAAU,qBAAqB;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,OAAO,EACP,WAAmB,GACpB,EAAE,qBAAqB,2CAsBvB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function ConnectionStatus({ heartbeat, streams, isConnected = false, }) {
|
|
3
|
+
return (_jsxs("div", { className: "flex items-center gap-5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-[10px] uppercase tracking-wider text-gray-500 font-bold", children: "Heartbeat:" }), _jsx("span", { className: "text-xs text-gray-400 font-mono", children: heartbeat || (isConnected ? 'Active' : '—') })] }), _jsx("div", { className: "h-3 w-px bg-white/10" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-[10px] uppercase tracking-wider text-gray-500 font-bold", children: "Streams:" }), _jsx("span", { className: "text-xs text-gray-400 font-mono", children: streams || (isConnected ? '2' : '—') })] })] }));
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=ConnectionStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionStatus.js","sourceRoot":"","sources":["../../../src/components/display/ConnectionStatus.tsx"],"names":[],"mappings":";AAMA,MAAM,UAAU,gBAAgB,CAAC,EAC/B,SAAS,EACT,OAAO,EACP,WAAW,GAAG,KAAK,GACG;IACtB,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAM,SAAS,EAAC,8DAA8D,2BAEvE,EACP,eAAM,SAAS,EAAC,iCAAiC,YAC9C,SAAS,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,GACvC,IACH,EACN,cAAK,SAAS,EAAC,sBAAsB,GAAO,EAC5C,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAM,SAAS,EAAC,8DAA8D,yBAEvE,EACP,eAAM,SAAS,EAAC,iCAAiC,YAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAChC,IACH,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface LogoProps {
|
|
2
|
+
src: string;
|
|
3
|
+
alt: string;
|
|
4
|
+
text?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
textClassName?: string;
|
|
7
|
+
imgClassName?: string;
|
|
8
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
9
|
+
position?: 'absolute' | 'relative' | 'static';
|
|
10
|
+
disableAnimation?: boolean;
|
|
11
|
+
animationVariant?: 'fade' | 'slide' | 'scale' | 'none';
|
|
12
|
+
width?: number;
|
|
13
|
+
height?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function Logo({ src, alt, text, className, textClassName, imgClassName, size, position, disableAnimation, animationVariant, width, height, }: LogoProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=Logo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logo.d.ts","sourceRoot":"","sources":["../../../src/components/display/Logo.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,IAAI,CAAC,EACnB,GAAG,EACH,GAAG,EACH,IAAI,EACJ,SAAc,EACd,aAAkB,EAClB,YAAiB,EACjB,IAAW,EACX,QAAmB,EACnB,gBAAwB,EACxB,gBAA0B,EAC1B,KAAK,EACL,MAAM,GACP,EAAE,SAAS,2CAkFX"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { motion } from 'framer-motion';
|
|
4
|
+
import { cn } from '../../lib/utils';
|
|
5
|
+
export function Logo({ src, alt, text, className = '', textClassName = '', imgClassName = '', size = 'md', position = 'static', disableAnimation = false, animationVariant = 'slide', width, height, }) {
|
|
6
|
+
const sizeClasses = {
|
|
7
|
+
sm: 'h-12 w-12 sm:h-14 sm:w-14',
|
|
8
|
+
md: 'h-16 w-16 sm:h-20 sm:w-20',
|
|
9
|
+
lg: 'h-20 w-20 sm:h-24 sm:w-24',
|
|
10
|
+
xl: 'h-24 w-24 sm:h-28 sm:w-28',
|
|
11
|
+
};
|
|
12
|
+
const textSizeClasses = {
|
|
13
|
+
sm: 'text-sm sm:text-base',
|
|
14
|
+
md: 'text-lg sm:text-xl',
|
|
15
|
+
lg: 'text-xl sm:text-2xl',
|
|
16
|
+
xl: 'text-2xl sm:text-3xl',
|
|
17
|
+
};
|
|
18
|
+
const animations = {
|
|
19
|
+
fade: {
|
|
20
|
+
initial: { opacity: 0 },
|
|
21
|
+
animate: { opacity: 1 },
|
|
22
|
+
},
|
|
23
|
+
slide: {
|
|
24
|
+
initial: { opacity: 0, y: -20 },
|
|
25
|
+
animate: { opacity: 1, y: 0 },
|
|
26
|
+
},
|
|
27
|
+
scale: {
|
|
28
|
+
initial: { opacity: 0, scale: 0.8 },
|
|
29
|
+
animate: { opacity: 1, scale: 1 },
|
|
30
|
+
},
|
|
31
|
+
none: {
|
|
32
|
+
initial: {},
|
|
33
|
+
animate: {},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
const containerClasses = cn(position, position === 'absolute' && 'left-8 top-8 z-50', 'flex items-center gap-3', className);
|
|
37
|
+
const content = (_jsxs(_Fragment, { children: [_jsx("img", { src: src, alt: alt, ...(width && { width }), ...(height && { height }), className: cn('object-contain', !width && !height && sizeClasses[size], imgClassName) }), text && (_jsx("span", { className: cn('font-semibold text-white', textSizeClasses[size], textClassName), children: text }))] }));
|
|
38
|
+
if (disableAnimation) {
|
|
39
|
+
return _jsx("div", { className: containerClasses, children: content });
|
|
40
|
+
}
|
|
41
|
+
return (_jsx(motion.div, { className: containerClasses, initial: animations[animationVariant].initial, animate: animations[animationVariant].animate, transition: { duration: 0.8, ease: 'easeOut' }, children: content }));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=Logo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../../src/components/display/Logo.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAiBrC,MAAM,UAAU,IAAI,CAAC,EACnB,GAAG,EACH,GAAG,EACH,IAAI,EACJ,SAAS,GAAG,EAAE,EACd,aAAa,GAAG,EAAE,EAClB,YAAY,GAAG,EAAE,EACjB,IAAI,GAAG,IAAI,EACX,QAAQ,GAAG,QAAQ,EACnB,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,OAAO,EAC1B,KAAK,EACL,MAAM,GACI;IACV,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,2BAA2B;QAC/B,EAAE,EAAE,2BAA2B;QAC/B,EAAE,EAAE,2BAA2B;QAC/B,EAAE,EAAE,2BAA2B;KAChC,CAAC;IAEF,MAAM,eAAe,GAAG;QACtB,EAAE,EAAE,sBAAsB;QAC1B,EAAE,EAAE,oBAAoB;QACxB,EAAE,EAAE,qBAAqB;QACzB,EAAE,EAAE,sBAAsB;KAC3B,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;YACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;SACxB;QACD,KAAK,EAAE;YACL,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/B,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;SAC9B;QACD,KAAK,EAAE;YACL,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACnC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;SAClC;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;SACZ;KACO,CAAC;IAEX,MAAM,gBAAgB,GAAG,EAAE,CACzB,QAAQ,EACR,QAAQ,KAAK,UAAU,IAAI,mBAAmB,EAC9C,yBAAyB,EACzB,SAAS,CACV,CAAC;IAEF,MAAM,OAAO,GAAG,CACd,8BACE,cACE,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,KACJ,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,KACpB,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC,EAC1B,SAAS,EAAE,EAAE,CACX,gBAAgB,EAChB,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EACtC,YAAY,CACb,GACD,EACD,IAAI,IAAI,CACP,eACE,SAAS,EAAE,EAAE,CACX,0BAA0B,EAC1B,eAAe,CAAC,IAAI,CAAC,EACrB,aAAa,CACd,YAEA,IAAI,GACA,CACR,IACA,CACJ,CAAC;IAEF,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,cAAK,SAAS,EAAE,gBAAgB,YAAG,OAAO,GAAO,CAAC;IAC3D,CAAC;IAED,OAAO,CACL,KAAC,MAAM,CAAC,GAAG,IACT,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAC7C,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAC7C,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,YAE7C,OAAO,GACG,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type PackageManager = 'bun' | 'npm' | 'pnpm' | 'yarn';
|
|
2
|
+
interface PackageManagerSelectorProps {
|
|
3
|
+
defaultManager?: PackageManager;
|
|
4
|
+
onChange?: (manager: PackageManager) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function PackageManagerSelector({ defaultManager, onChange, }: PackageManagerSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=PackageManagerSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageManagerSelector.d.ts","sourceRoot":"","sources":["../../../src/components/display/PackageManagerSelector.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D,UAAU,2BAA2B;IACnC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;CAC9C;AAcD,wBAAgB,sBAAsB,CAAC,EACrC,cAAsB,EACtB,QAAQ,GACT,EAAE,2BAA2B,2CA4B7B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { SiBun, SiNpm, SiPnpm, SiYarn } from 'react-icons/si';
|
|
4
|
+
const managers = [
|
|
5
|
+
{ value: 'bun', label: 'Bun', icon: _jsx(SiBun, {}), color: 'text-[#fbf0df]' },
|
|
6
|
+
{ value: 'npm', label: 'npm', icon: _jsx(SiNpm, {}), color: 'text-[#cb3837]' },
|
|
7
|
+
{ value: 'pnpm', label: 'pnpm', icon: _jsx(SiPnpm, {}), color: 'text-[#f9ad00]' },
|
|
8
|
+
{ value: 'yarn', label: 'Yarn', icon: _jsx(SiYarn, {}), color: 'text-[#2c8ebb]' },
|
|
9
|
+
];
|
|
10
|
+
export function PackageManagerSelector({ defaultManager = 'bun', onChange, }) {
|
|
11
|
+
const [selected, setSelected] = useState(defaultManager);
|
|
12
|
+
const handleSelect = (manager) => {
|
|
13
|
+
setSelected(manager);
|
|
14
|
+
onChange?.(manager);
|
|
15
|
+
};
|
|
16
|
+
return (_jsx("div", { className: "flex bg-white/5 rounded-full p-1 border border-white/5", children: managers.map(manager => (_jsxs("button", { onClick: () => handleSelect(manager.value), className: `px-3 py-1 text-xs font-medium transition-colors rounded-full flex items-center gap-1.5 ${selected === manager.value
|
|
17
|
+
? 'text-white bg-white/10 shadow-sm'
|
|
18
|
+
: 'text-gray-500 hover:text-gray-300'}`, children: [_jsx("span", { className: selected === manager.value ? manager.color : '', children: manager.icon }), manager.label] }, manager.value))) }));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=PackageManagerSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageManagerSelector.js","sourceRoot":"","sources":["../../../src/components/display/PackageManagerSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAS9D,MAAM,QAAQ,GAKR;IACJ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAC,KAAK,KAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACxE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAC,KAAK,KAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACxE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAC,MAAM,KAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE;IAC3E,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAC,MAAM,KAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE;CAC5E,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,EACrC,cAAc,GAAG,KAAK,EACtB,QAAQ,GACoB;IAC5B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAiB,cAAc,CAAC,CAAC;IAEzE,MAAM,YAAY,GAAG,CAAC,OAAuB,EAAE,EAAE;QAC/C,WAAW,CAAC,OAAO,CAAC,CAAC;QACrB,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,wDAAwD,YACpE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CACvB,kBAEE,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAC1C,SAAS,EAAE,0FACT,QAAQ,KAAK,OAAO,CAAC,KAAK;gBACxB,CAAC,CAAC,kCAAkC;gBACpC,CAAC,CAAC,mCACN,EAAE,aAEF,eAAM,SAAS,EAAE,QAAQ,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,YAC7D,OAAO,CAAC,IAAI,GACR,EACN,OAAO,CAAC,KAAK,KAXT,OAAO,CAAC,KAAK,CAYX,CACV,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,13 +1,41 @@
|
|
|
1
|
-
export * from './AnimatedBackground';
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
8
|
-
export * from './
|
|
1
|
+
export * from './backgrounds/AnimatedBackground';
|
|
2
|
+
export * from './backgrounds/Globe';
|
|
3
|
+
export * from './backgrounds/GradientBackground';
|
|
4
|
+
export * from './buttons/Button';
|
|
5
|
+
export * from './buttons/CompanyPageButton';
|
|
6
|
+
export * from './cards/Card';
|
|
7
|
+
export * from './cards/CheckoutSummary';
|
|
8
|
+
export * from './cards/ConnectionOption';
|
|
9
|
+
export * from './cards/InvitationDetailsCard';
|
|
10
|
+
export * from './cards/OrderSummaryCard';
|
|
11
|
+
export * from './cards/PendingInviteCard';
|
|
12
|
+
export * from './cards/PlanCard';
|
|
13
|
+
export * from './cards/RunAgentCard';
|
|
14
|
+
export * from './cards/SyncStatusCard';
|
|
15
|
+
export * from './display/CodeBlock';
|
|
16
|
+
export * from './display/ConnectionStatus';
|
|
17
|
+
export * from './display/Logo';
|
|
18
|
+
export * from './display/PackageManagerSelector';
|
|
19
|
+
export * from './inputs/ApiKeyInput';
|
|
20
|
+
export * from './inputs/Checkbox';
|
|
21
|
+
export * from './inputs/EmailTagInput';
|
|
22
|
+
export * from './inputs/Input';
|
|
23
|
+
export * from './inputs/InputField';
|
|
24
|
+
export * from './inputs/NumberStepper';
|
|
25
|
+
export * from './inputs/PermissionToggle';
|
|
26
|
+
export * from './inputs/Select';
|
|
27
|
+
export * from './inputs/TagInput';
|
|
28
|
+
export * from './inputs/ToggleOption';
|
|
29
|
+
export * from './layout/Divider';
|
|
30
|
+
export * from './layout/Footer';
|
|
31
|
+
export * from './layout/FormSection';
|
|
32
|
+
export * from './layout/LinkGroup';
|
|
33
|
+
export * from './layout/Navbar';
|
|
34
|
+
export * from './layout/PageHeader';
|
|
35
|
+
export * from './layout/SegmentedControl';
|
|
36
|
+
export * from './typography/HeroText';
|
|
37
|
+
export * from './typography/SectionLabel';
|
|
38
|
+
export * from './typography/Subtitle';
|
|
39
|
+
export * from './typography/TypewriterText';
|
|
9
40
|
export * from './dashboard';
|
|
10
|
-
export * from './SectionLabel';
|
|
11
|
-
export * from './Subtitle';
|
|
12
|
-
export * from './TypewriterText';
|
|
13
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AAEjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AAEjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,aAAa,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -1,13 +1,41 @@
|
|
|
1
|
-
export * from './AnimatedBackground';
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
8
|
-
export * from './
|
|
1
|
+
export * from './backgrounds/AnimatedBackground';
|
|
2
|
+
export * from './backgrounds/Globe';
|
|
3
|
+
export * from './backgrounds/GradientBackground';
|
|
4
|
+
export * from './buttons/Button';
|
|
5
|
+
export * from './buttons/CompanyPageButton';
|
|
6
|
+
export * from './cards/Card';
|
|
7
|
+
export * from './cards/CheckoutSummary';
|
|
8
|
+
export * from './cards/ConnectionOption';
|
|
9
|
+
export * from './cards/InvitationDetailsCard';
|
|
10
|
+
export * from './cards/OrderSummaryCard';
|
|
11
|
+
export * from './cards/PendingInviteCard';
|
|
12
|
+
export * from './cards/PlanCard';
|
|
13
|
+
export * from './cards/RunAgentCard';
|
|
14
|
+
export * from './cards/SyncStatusCard';
|
|
15
|
+
export * from './display/CodeBlock';
|
|
16
|
+
export * from './display/ConnectionStatus';
|
|
17
|
+
export * from './display/Logo';
|
|
18
|
+
export * from './display/PackageManagerSelector';
|
|
19
|
+
export * from './inputs/ApiKeyInput';
|
|
20
|
+
export * from './inputs/Checkbox';
|
|
21
|
+
export * from './inputs/EmailTagInput';
|
|
22
|
+
export * from './inputs/Input';
|
|
23
|
+
export * from './inputs/InputField';
|
|
24
|
+
export * from './inputs/NumberStepper';
|
|
25
|
+
export * from './inputs/PermissionToggle';
|
|
26
|
+
export * from './inputs/Select';
|
|
27
|
+
export * from './inputs/TagInput';
|
|
28
|
+
export * from './inputs/ToggleOption';
|
|
29
|
+
export * from './layout/Divider';
|
|
30
|
+
export * from './layout/Footer';
|
|
31
|
+
export * from './layout/FormSection';
|
|
32
|
+
export * from './layout/LinkGroup';
|
|
33
|
+
export * from './layout/Navbar';
|
|
34
|
+
export * from './layout/PageHeader';
|
|
35
|
+
export * from './layout/SegmentedControl';
|
|
36
|
+
export * from './typography/HeroText';
|
|
37
|
+
export * from './typography/SectionLabel';
|
|
38
|
+
export * from './typography/Subtitle';
|
|
39
|
+
export * from './typography/TypewriterText';
|
|
9
40
|
export * from './dashboard';
|
|
10
|
-
export * from './SectionLabel';
|
|
11
|
-
export * from './Subtitle';
|
|
12
|
-
export * from './TypewriterText';
|
|
13
41
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AAEjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AAEjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AAEtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface ApiKeyInputProps {
|
|
2
|
+
apiKey: string;
|
|
3
|
+
label?: string;
|
|
4
|
+
onCopy?: (success: boolean) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function ApiKeyInput({ apiKey, label, onCopy, }: ApiKeyInputProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=ApiKeyInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiKeyInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/ApiKeyInput.tsx"],"names":[],"mappings":"AAIA,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,KAAiB,EACjB,MAAM,GACP,EAAE,gBAAgB,2CAyElB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { LuEye, LuEyeOff, LuCopy, LuCheck } from 'react-icons/lu';
|
|
4
|
+
import { motion, AnimatePresence } from 'framer-motion';
|
|
5
|
+
export function ApiKeyInput({ apiKey, label = 'API Key', onCopy, }) {
|
|
6
|
+
const [isRevealed, setIsRevealed] = useState(false);
|
|
7
|
+
const [isCopied, setIsCopied] = useState(false);
|
|
8
|
+
const handleCopy = async () => {
|
|
9
|
+
try {
|
|
10
|
+
await navigator.clipboard.writeText(apiKey);
|
|
11
|
+
setIsCopied(true);
|
|
12
|
+
onCopy?.(true);
|
|
13
|
+
setTimeout(() => setIsCopied(false), 2000);
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
onCopy?.(false);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const displayValue = isRevealed ? apiKey : '••••••••••••••••••';
|
|
20
|
+
return (_jsxs("div", { className: "space-y-2", children: [_jsx("label", { className: "text-xs font-medium text-gray-200 block px-1", children: label }), _jsxs("div", { className: "relative", children: [_jsx("input", { className: "w-full bg-white/[0.02] border border-white/10 text-gray-200 px-3 py-2 pr-20 rounded-full text-sm focus:outline-none focus:border-violet-500/50 focus:ring-2 focus:ring-violet-500/20 transition-all font-mono tracking-widest cursor-default", readOnly: true, type: "text", value: displayValue, "aria-label": label }), _jsxs("div", { className: "absolute inset-y-0 right-2 flex items-center gap-0.5", children: [_jsx("button", { onClick: () => setIsRevealed(!isRevealed), "aria-label": isRevealed ? 'Hide' : 'Reveal', className: "p-1.5 text-gray-500 hover:text-white transition-colors rounded-full hover:bg-white/10", children: isRevealed ? (_jsx(LuEyeOff, { className: "text-[16px]" })) : (_jsx(LuEye, { className: "text-[16px]" })) }), _jsx("button", { onClick: handleCopy, "aria-label": "Copy", className: "p-1.5 text-gray-500 hover:text-white transition-colors rounded-full hover:bg-white/10", children: _jsx(AnimatePresence, { mode: "wait", children: isCopied ? (_jsx(motion.div, { initial: { scale: 0 }, animate: { scale: 1 }, exit: { scale: 0 }, children: _jsx(LuCheck, { className: "text-[14px] text-green-400" }) }, "check")) : (_jsx(motion.div, { initial: { scale: 0 }, animate: { scale: 1 }, exit: { scale: 0 }, children: _jsx(LuCopy, { className: "text-[14px]" }) }, "copy")) }) })] })] })] }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=ApiKeyInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApiKeyInput.js","sourceRoot":"","sources":["../../../src/components/inputs/ApiKeyInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAQxD,MAAM,UAAU,WAAW,CAAC,EAC1B,MAAM,EACN,KAAK,GAAG,SAAS,EACjB,MAAM,GACW;IACjB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5C,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;YACf,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAEhE,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,gBAAO,SAAS,EAAC,8CAA8C,YAC5D,KAAK,GACA,EACR,eAAK,SAAS,EAAC,UAAU,aACvB,gBACE,SAAS,EAAC,8OAA8O,EACxP,QAAQ,QACR,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,YAAY,gBACP,KAAK,GACjB,EACF,eAAK,SAAS,EAAC,sDAAsD,aACnE,iBACE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,gBAC7B,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAC1C,SAAS,EAAC,uFAAuF,YAEhG,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,QAAQ,IAAC,SAAS,EAAC,aAAa,GAAG,CACrC,CAAC,CAAC,CAAC,CACF,KAAC,KAAK,IAAC,SAAS,EAAC,aAAa,GAAG,CAClC,GACM,EACT,iBACE,OAAO,EAAE,UAAU,gBACR,MAAM,EACjB,SAAS,EAAC,uFAAuF,YAEjG,KAAC,eAAe,IAAC,IAAI,EAAC,MAAM,YACzB,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,MAAM,CAAC,GAAG,IAET,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,YAElB,KAAC,OAAO,IAAC,SAAS,EAAC,4BAA4B,GAAG,IAL9C,OAAO,CAMA,CACd,CAAC,CAAC,CAAC,CACF,KAAC,MAAM,CAAC,GAAG,IAET,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EACrB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,YAElB,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,GAAG,IAL9B,MAAM,CAMC,CACd,GACe,GACX,IACL,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface CheckboxProps extends Omit<React.ComponentPropsWithRef<'input'>, 'size'> {
|
|
3
|
+
label?: React.ReactNode;
|
|
4
|
+
labelClassName?: string;
|
|
5
|
+
containerClassName?: string;
|
|
6
|
+
checkboxClassName?: string;
|
|
7
|
+
size?: 'sm' | 'md' | 'lg';
|
|
8
|
+
variant?: 'primary' | 'secondary';
|
|
9
|
+
}
|
|
10
|
+
export declare function Checkbox({ label, className, labelClassName, containerClassName, checkboxClassName, size, variant, ref, ...props }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=Checkbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CACnC;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,SAAc,EACd,cAAmB,EACnB,kBAAuB,EACvB,iBAAsB,EACtB,IAAW,EACX,OAAmB,EACnB,GAAG,EACH,GAAG,KAAK,EACT,EAAE,aAAa,2CAiDf"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { cn } from '../../lib/utils';
|
|
4
|
+
export function Checkbox({ label, className = '', labelClassName = '', containerClassName = '', checkboxClassName = '', size = 'md', variant = 'primary', ref, ...props }) {
|
|
5
|
+
const reactId = React.useId();
|
|
6
|
+
const id = props.id ?? reactId;
|
|
7
|
+
const sizeClasses = {
|
|
8
|
+
sm: 'w-3 h-3',
|
|
9
|
+
md: 'w-4 h-4',
|
|
10
|
+
lg: 'w-5 h-5',
|
|
11
|
+
};
|
|
12
|
+
const variantClasses = {
|
|
13
|
+
primary: 'border-gray-600 focus:ring-violet-500/50 checked:bg-violet-600 checked:border-violet-600',
|
|
14
|
+
secondary: 'border-gray-500 focus:ring-purple-500/50 checked:bg-purple-600 checked:border-purple-600',
|
|
15
|
+
};
|
|
16
|
+
const baseStyles = 'appearance-none rounded-full border bg-transparent focus:ring-1 focus:ring-offset-0 transition-all cursor-pointer checked:shadow-[inset_0_0_0_2px_white]';
|
|
17
|
+
return (_jsxs("div", { className: cn('flex items-start gap-3', containerClassName), children: [_jsx("div", { className: cn('flex items-center h-5', checkboxClassName), children: _jsx("input", { ref: ref, type: "checkbox", id: id, className: cn(baseStyles, sizeClasses[size], variantClasses[variant], className), ...props }) }), label && (_jsx("label", { htmlFor: id, className: cn('text-xs text-gray-500 leading-5 cursor-pointer', labelClassName), children: label }))] }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../../src/components/inputs/Checkbox.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAYrC,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,SAAS,GAAG,EAAE,EACd,cAAc,GAAG,EAAE,EACnB,kBAAkB,GAAG,EAAE,EACvB,iBAAiB,GAAG,EAAE,EACtB,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,SAAS,EACnB,GAAG,EACH,GAAG,KAAK,EACM;IACd,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC;IAE/B,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,SAAS;KACd,CAAC;IAEF,MAAM,cAAc,GAAG;QACrB,OAAO,EACL,0FAA0F;QAC5F,SAAS,EACP,0FAA0F;KAC7F,CAAC;IAEF,MAAM,UAAU,GACd,0JAA0J,CAAC;IAE7J,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,aAC9D,cAAK,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,YAC5D,gBACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,EAAE,CACX,UAAU,EACV,WAAW,CAAC,IAAI,CAAC,EACjB,cAAc,CAAC,OAAO,CAAC,EACvB,SAAS,CACV,KACG,KAAK,GACT,GACE,EACL,KAAK,IAAI,CACR,gBACE,OAAO,EAAE,EAAE,EACX,SAAS,EAAE,EAAE,CACX,gDAAgD,EAChD,cAAc,CACf,YAEA,KAAK,GACA,CACT,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface EmailTagInputProps {
|
|
2
|
+
emails: string[];
|
|
3
|
+
onEmailsChange: (emails: string[]) => void;
|
|
4
|
+
error?: string;
|
|
5
|
+
onInvalidEmail?: (email: string) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function EmailTagInput({ emails, onEmailsChange, error, onInvalidEmail, }: EmailTagInputProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=EmailTagInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailTagInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/EmailTagInput.tsx"],"names":[],"mappings":"AAKA,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAMD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,cAAc,EACd,KAAK,EACL,cAAc,GACf,EAAE,kBAAkB,2CA8FpB"}
|