import type React from 'react'; import { AstroIcon } from './icons/astro-icon'; import { ExpressIcon } from './icons/express-icon'; import { HtmlIcon } from './icons/html-icon'; import { KotlinIcon } from './icons/kotlin-icon'; import { LaravelIcon } from './icons/laravel-icon'; import { NextjsIcon } from './icons/nextjs-icon'; import { NodeIcon } from './icons/node-icon'; import { ReactIcon } from './icons/react-icon'; import { RemixIcon } from './icons/remix-icon'; import { RestIcon } from './icons/rest-icon'; import { SwiftIcon } from './icons/swift-icon'; import { VueIcon } from './icons/vue-icon'; import { RustIcon } from './icons/rust-icon'; import { RubyIcon } from './icons/ruby-icon'; export type Framework = { key: string; IconComponent: React.ComponentType>; name: string; href: string; type: ('website' | 'app' | 'backend')[]; }; export const frameworks: Framework[] = [ { key: 'html', IconComponent: HtmlIcon, name: 'HTML / Script', href: 'https://openpanel.dev/docs/sdks/script', type: ['website'], }, { key: 'react', IconComponent: ReactIcon, name: 'React', href: 'https://openpanel.dev/docs/sdks/react', type: ['website'], }, { key: 'nextjs', IconComponent: NextjsIcon, name: 'Next.js', href: 'https://openpanel.dev/docs/sdks/nextjs', type: ['website'], }, { key: 'remix', IconComponent: RemixIcon, name: 'Remix', href: 'https://openpanel.dev/docs/sdks/remix', type: ['website'], }, { key: 'vue', IconComponent: VueIcon, name: 'Vue', href: 'https://openpanel.dev/docs/sdks/vue', type: ['website'], }, { key: 'astro', IconComponent: AstroIcon, name: 'Astro', href: 'https://openpanel.dev/docs/sdks/astro', type: ['website'], }, { key: 'rest', IconComponent: RestIcon, name: 'Rest API', href: 'https://openpanel.dev/docs/api/track', type: ['backend', 'app', 'website'], }, { key: 'react-native', IconComponent: ReactIcon, name: 'React-Native', href: 'https://openpanel.dev/docs/sdks/react-native', type: ['app'], }, { key: 'node', IconComponent: NodeIcon, name: 'Node', href: 'https://openpanel.dev/docs/sdks/javascript', type: ['backend'], }, { key: 'express', IconComponent: ExpressIcon, name: 'Express', href: 'https://openpanel.dev/docs/sdks/express', type: ['backend'], }, { key: 'laravel', IconComponent: LaravelIcon, name: 'Laravel', href: 'https://github.com/tbleckert/openpanel-laravel/tree/main', type: ['backend'], }, { key: 'rust', IconComponent: RustIcon, name: 'Rust', href: 'https://openpanel.dev/docs/sdks/rust', type: ['backend'], }, { key: 'ruby', IconComponent: RubyIcon, name: 'Ruby', href: 'https://openpanel.dev/docs/sdks/ruby', type: ['backend'], }, { key: 'ios', IconComponent: SwiftIcon, name: 'iOS (swift)', href: 'https://openpanel.dev/docs/sdks/swift', type: ['app'], }, { key: 'android', IconComponent: KotlinIcon, name: 'Android (kotlin)', href: 'https://openpanel.dev/docs/sdks/kotlin', type: ['app'], }, ];