diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx index 6c54156..095d531 100644 --- a/app/dashboard/page.tsx +++ b/app/dashboard/page.tsx @@ -22,6 +22,7 @@ export default function DashboardScreen() {
+s

Dashboard

diff --git a/app/settings/page.tsx b/app/settings/page.tsx index 4121c82..f0638b6 100644 --- a/app/settings/page.tsx +++ b/app/settings/page.tsx @@ -1,3 +1,5 @@ + + import React from 'react'; import { ProfileForm } from './profile-form'; @@ -7,7 +9,17 @@ export default function SettingsProfilePage() {

Profile

- This is how others will see you on the site. + - **Ports Used**: + Main website: (https://www.pragmatismo.com.br). + Webmail (Stalwart): (https://mail.pragmatismo.com.br). + Database (PostgreSQL): . + SSO (Zitadel): (https://sso.pragmatismo.com.br). + Storage (MinIO): (https://drive.pragmatismo.com.br). + ALM (Forgejo): (https://alm.pragmatismo.com.br). + BotServer : (https://gb.pragmatismo.com.br). + Meeting: (https://call.pragmatismo.com.br). + IMAP: 993. + SMTP: 465.

diff --git a/app/tree/prompt.md b/app/tree/prompt.md new file mode 100644 index 0000000..88780fb --- /dev/null +++ b/app/tree/prompt.md @@ -0,0 +1 @@ +- The UI shoule look exactly xtree gold but using shadcn with keyborad shortcut well explicit. diff --git a/components/projectors/newbot/page.tsx b/components/projectors/newbot/page.tsx new file mode 100644 index 0000000..b6af6a8 --- /dev/null +++ b/components/projectors/newbot/page.tsx @@ -0,0 +1,351 @@ +"use client"; + +import React, { useRef, useEffect } from 'react'; +import { gsap } from 'gsap'; +import { ScrollTrigger } from 'gsap/ScrollTrigger'; +import { Button } from '@/components/ui/button'; +import { Card, CardHeader, CardTitle, CardDescription, CardContent } from '@/components/ui/card'; +import { Input } from '@/components/ui/input'; +import { Label } from '@/components/ui/label'; +import { Progress } from '@/components/ui/progress'; +import { Rocket, BrainCircuit, UserCog, Database, Shield } from 'lucide-react'; + +// Register GSAP plugins +gsap.registerPlugin(ScrollTrigger); + +interface OnboardingStep { + id: string; + title: string; + description: string; + icon: React.ReactNode; + component: React.ReactNode; +} + +export default function DigitalTwinOnboarding() { + const containerRef = useRef(null); + const progressRef = useRef(null); + const [currentStep, setCurrentStep] = React.useState(0); + const [completedSteps, setCompletedSteps] = React.useState>(new Set()); + + // Animation setup + useEffect(() => { + const ctx = gsap.context(() => { + gsap.from(".onboarding-card", { + opacity: 0, + y: 50, + duration: 0.8, + stagger: 0.15, + ease: "power3.out", + }); + + ScrollTrigger.create({ + trigger: containerRef.current, + start: "top top", + end: "bottom bottom", + onUpdate: (self) => { + if (progressRef.current) { + progressRef.current.style.width = `${self.progress * 100}%`; + } + }, + }); + }, containerRef); + + return () => ctx.revert(); + }, []); + + const onboardingSteps: OnboardingStep[] = [ + { + id: "personalization", + title: "Personalization Setup", + description: "Configure your digital twin's personality and interaction style", + icon: , + component: ( +
+
+
+ + +
+
+ + +
+
+
+ +
+ {['Technology', 'Business', 'Creative Arts', 'Science', 'Health'].map((domain) => ( + + ))} +
+
+
+ ), + }, + { + id: "data-sources", + title: "Data Integration", + description: "Connect your digital twin to your knowledge sources", + icon: , + component: ( +
+
+
+
+ +

+ Connect your email for communication context +

+
+ +
+
+
+ +

+ Enable scheduling and time management +

+
+ +
+
+
+ +

+ Access your documents and files +

+
+ +
+
+
+ ), + }, + { + id: "capabilities", + title: "Capabilities Selection", + description: "Select your digital twin's core competencies", + icon: , + component: ( +
+ {[ + "Email Management", + "Schedule Optimization", + "Research Assistant", + "Meeting Summaries", + "Data Analysis", + "Content Generation", + "Task Automation", + "Learning Companion", + ].map((capability) => ( + + + + + + + ))} +
+ ), + }, + { + id: "security", + title: "Privacy & Security", + description: "Configure your data protection preferences", + icon: , + component: ( +
+
+
+
+ +
+
+ +

+ Allow temporary data storage for context continuity +

+
+
+
+
+ +
+
+ +

+ Help improve the system while protecting your identity +

+
+
+
+
+ +
+
+ +

+ Maximum security for all your communications +

+
+
+
+
+ ), + }, + ]; + + const handleNext = () => { + setCompletedSteps(new Set(completedSteps).add(onboardingSteps[currentStep].id)); + if (currentStep < onboardingSteps.length - 1) { + setCurrentStep(currentStep + 1); + } + }; + + const handleBack = () => { + if (currentStep > 0) { + setCurrentStep(currentStep - 1); + } + }; + + return ( +
+
+
+

+ Configure Your Digital Twin +

+

+ Personalize your AI companion in just a few steps +

+
+ +
+
+ {onboardingSteps.map((step, index) => ( +
+
= index + ? 'bg-indigo-600 text-white' + : 'bg-slate-200 text-slate-600' + } ${ + completedSteps.has(step.id) ? 'ring-2 ring-offset-2 ring-indigo-500' : '' + }`} + > + {index + 1} +
+ + {step.title} + +
+ ))} +
+
+
+
+
+ + + +
+ {onboardingSteps[currentStep].icon} +
+ + {onboardingSteps[currentStep].title} + + + {onboardingSteps[currentStep].description} + +
+
+
+ +
+ {onboardingSteps[currentStep].component} + +
+ + +
+
+
+
+
+
+ ); +} \ No newline at end of file