132 lines
3.2 KiB
TypeScript
132 lines
3.2 KiB
TypeScript
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<React.SVGProps<SVGSVGElement>>;
|
|
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'],
|
|
},
|
|
];
|