refactor folder
36
frontend/README.md
Normal file
@ -0,0 +1,36 @@
|
||||
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
|
||||
|
||||
## Getting Started
|
||||
|
||||
First, run the development server:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
# or
|
||||
yarn dev
|
||||
# or
|
||||
pnpm dev
|
||||
# or
|
||||
bun dev
|
||||
```
|
||||
|
||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||
|
||||
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
||||
|
||||
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
|
||||
|
||||
## Learn More
|
||||
|
||||
To learn more about Next.js, take a look at the following resources:
|
||||
|
||||
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
||||
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
||||
|
||||
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
|
||||
|
||||
## Deploy on Vercel
|
||||
|
||||
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
||||
|
||||
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
|
11
frontend/app/(auth)/layout.tsx
Normal file
@ -0,0 +1,11 @@
|
||||
export default function AuthLayout({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode
|
||||
}) {
|
||||
return (
|
||||
<div className="w-screen flex items-center justify-center h-screen">
|
||||
{children}
|
||||
</div>
|
||||
)
|
||||
}
|
17
frontend/app/(auth)/sign-in/[[...sign-in]]/page.tsx
Normal file
@ -0,0 +1,17 @@
|
||||
import { SignIn } from "@clerk/nextjs"
|
||||
import { dark } from "@clerk/themes"
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<SignIn
|
||||
appearance={{
|
||||
baseTheme: dark,
|
||||
elements: {
|
||||
footerActionLink: {
|
||||
color: "#fff",
|
||||
},
|
||||
},
|
||||
}}
|
||||
/>
|
||||
)
|
||||
}
|
17
frontend/app/(auth)/sign-up/[[...sign-up]]/page.tsx
Normal file
@ -0,0 +1,17 @@
|
||||
import { SignUp } from "@clerk/nextjs"
|
||||
import { dark } from "@clerk/themes"
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<SignUp
|
||||
appearance={{
|
||||
baseTheme: dark,
|
||||
elements: {
|
||||
footerActionLink: {
|
||||
color: "#A3A3A3",
|
||||
},
|
||||
},
|
||||
}}
|
||||
/>
|
||||
)
|
||||
}
|
22
frontend/app/code/[id]/page.tsx
Normal file
@ -0,0 +1,22 @@
|
||||
"use client"
|
||||
|
||||
import Navbar from "@/components/editor/navbar"
|
||||
import { useClerk } from "@clerk/nextjs"
|
||||
import dynamic from "next/dynamic"
|
||||
|
||||
const CodeEditor = dynamic(() => import("@/components/editor"), {
|
||||
ssr: false,
|
||||
})
|
||||
|
||||
export default function CodePage() {
|
||||
const clerk = useClerk()
|
||||
|
||||
return (
|
||||
<div className="overflow-hidden overscroll-none w-screen flex flex-col h-screen bg-background">
|
||||
<Navbar />
|
||||
<div className="w-screen flex grow">
|
||||
{clerk.loaded ? <CodeEditor /> : null}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
5
frontend/app/code/page.tsx
Normal file
@ -0,0 +1,5 @@
|
||||
import { redirect } from "next/navigation"
|
||||
|
||||
export default function Page() {
|
||||
redirect("/")
|
||||
}
|
19
frontend/app/dashboard/page.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import { UserButton, currentUser } from "@clerk/nextjs"
|
||||
import { redirect } from "next/navigation"
|
||||
import Dashboard from "@/components/dashboard"
|
||||
import Navbar from "@/components/dashboard/navbar"
|
||||
|
||||
export default async function DashboardPage() {
|
||||
const user = await currentUser()
|
||||
|
||||
if (!user) {
|
||||
redirect("/")
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="w-screen h-screen flex flex-col overflow-hidden overscroll-none">
|
||||
<Navbar />
|
||||
<Dashboard />
|
||||
</div>
|
||||
)
|
||||
}
|
BIN
frontend/app/favicon.ico
Normal file
After Width: | Height: | Size: 25 KiB |
100
frontend/app/globals.css
Normal file
@ -0,0 +1,100 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
--background: 0 0% 100%;
|
||||
--foreground: 0 0% 3.9%;
|
||||
|
||||
--card: 0 0% 100%;
|
||||
--card-foreground: 0 0% 3.9%;
|
||||
|
||||
--popover: 0 0% 100%;
|
||||
--popover-foreground: 0 0% 3.9%;
|
||||
|
||||
--primary: 0 0% 9%;
|
||||
--primary-foreground: 0 0% 98%;
|
||||
|
||||
--secondary: 0 0% 96.1%;
|
||||
--secondary-foreground: 0 0% 9%;
|
||||
|
||||
--muted: 0 0% 96.1%;
|
||||
--muted-foreground: 0 0% 45.1%;
|
||||
|
||||
--accent: 0 0% 96.1%;
|
||||
--accent-foreground: 0 0% 9%;
|
||||
|
||||
--destructive: 0 84.2% 60.2%;
|
||||
--destructive-foreground: 0 0% 98%;
|
||||
|
||||
--border: 0 0% 89.8%;
|
||||
--input: 0 0% 89.8%;
|
||||
--ring: 0 0% 3.9%;
|
||||
|
||||
--radius: 0.5rem;
|
||||
}
|
||||
|
||||
.dark {
|
||||
--background: 0 0% 3.9%;
|
||||
--foreground: 0 0% 98%;
|
||||
|
||||
--card: 0 0% 3.9%;
|
||||
--card-foreground: 0 0% 98%;
|
||||
|
||||
--popover: 0 0% 3.9%;
|
||||
--popover-foreground: 0 0% 98%;
|
||||
|
||||
--primary: 0 0% 98%;
|
||||
--primary-foreground: 0 0% 9%;
|
||||
|
||||
--secondary: 0 0% 14.9%;
|
||||
--secondary-foreground: 0 0% 98%;
|
||||
|
||||
--muted: 0 0% 14.9%;
|
||||
--muted-foreground: 0 0% 63.9%;
|
||||
|
||||
--accent: 0 0% 14.9%;
|
||||
--accent-foreground: 0 0% 98%;
|
||||
|
||||
--destructive: 0 62.8% 30.6%;
|
||||
--destructive-foreground: 0 0% 98%;
|
||||
|
||||
--border: 0 0% 14.9%;
|
||||
--input: 0 0% 14.9%;
|
||||
--ring: 0 0% 83.1%;
|
||||
}
|
||||
}
|
||||
|
||||
@layer base {
|
||||
* {
|
||||
@apply border-border;
|
||||
}
|
||||
body {
|
||||
@apply bg-background text-foreground;
|
||||
}
|
||||
}
|
||||
|
||||
.gradient-button-bg {
|
||||
background: radial-gradient(circle at top, #a5b4fc -25%, #3730a3 50%); /* violet 300 -> 800 */
|
||||
}
|
||||
|
||||
.gradient-button {
|
||||
background: radial-gradient(circle at bottom, #312e81 0%, hsl(0 0% 3.9%) 80%); /* violet 900 -> bg */
|
||||
}
|
||||
|
||||
.gradient-button-bg > div:hover {
|
||||
background: radial-gradient(circle at bottom, #312e81 0%, hsl(0 0% 3.9%) 130%); /* violet 900 -> bg */
|
||||
}
|
||||
|
||||
.gradient-project-card-bg {
|
||||
background: radial-gradient(circle at bottom right, #a5b4fc -15%, #3730a3 25%, hsl(0 0% 3.9%) 50%); /* violet 300 -> 800 */
|
||||
}
|
||||
|
||||
.gradient-project-card {
|
||||
background: radial-gradient(circle at bottom right, #312e81 -50%, hsl(0 0% 3.9%) 50%); /* violet 900 -> bg */
|
||||
}
|
||||
|
||||
.gradient-project-card-bg > div:hover {
|
||||
background: radial-gradient(circle at bottom right, #312e81 -50%, hsl(0 0% 3.9%) 60%); /* violet 900 -> bg */
|
||||
}
|
34
frontend/app/layout.tsx
Normal file
@ -0,0 +1,34 @@
|
||||
import type { Metadata } from "next"
|
||||
import { GeistSans } from "geist/font/sans"
|
||||
import { GeistMono } from "geist/font/mono"
|
||||
import "./globals.css"
|
||||
import { ThemeProvider } from "@/components/layout/themeProvider"
|
||||
import { ClerkProvider } from "@clerk/nextjs"
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Sandbox",
|
||||
description: "A collaborative, AI-powered, auto-scaling code sandbox",
|
||||
}
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode
|
||||
}>) {
|
||||
return (
|
||||
<ClerkProvider>
|
||||
<html lang="en" className={`${GeistSans.variable} ${GeistMono.variable}`}>
|
||||
<body>
|
||||
<ThemeProvider
|
||||
attribute="class"
|
||||
defaultTheme="dark"
|
||||
forcedTheme="dark"
|
||||
disableTransitionOnChange
|
||||
>
|
||||
{children}
|
||||
</ThemeProvider>
|
||||
</body>
|
||||
</html>
|
||||
</ClerkProvider>
|
||||
)
|
||||
}
|
62
frontend/app/page.tsx
Normal file
@ -0,0 +1,62 @@
|
||||
import Image from "next/image"
|
||||
import Logo from "@/assets/logo.svg"
|
||||
import XLogo from "@/assets/x.svg"
|
||||
import Button from "@/components/ui/customButton"
|
||||
import { ChevronRight } from "lucide-react"
|
||||
import Link from "next/link"
|
||||
import { currentUser } from "@clerk/nextjs"
|
||||
import { redirect } from "next/navigation"
|
||||
|
||||
export default async function Home() {
|
||||
const user = await currentUser()
|
||||
|
||||
if (user) {
|
||||
redirect("/dashboard")
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="w-screen h-screen flex justify-center overflow-hidden overscroll-none">
|
||||
<div className="w-full max-w-screen-md px-8 flex flex-col items-center">
|
||||
<div className="w-full flex items-center justify-between py-8">
|
||||
<div className="flex items-center font-medium">
|
||||
<Image
|
||||
src={Logo}
|
||||
alt="Logo"
|
||||
width={36}
|
||||
height={36}
|
||||
className="mr-2"
|
||||
/>
|
||||
</div>
|
||||
<div className="flex items-center space-x-4">
|
||||
<a href="https://www.x.com/ishaandey_" target="_blank">
|
||||
<Image src={XLogo} alt="X Logo" width={18} height={18} />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<h1 className="text-2xl font-medium text-center mt-16">
|
||||
A Collaborative, AI-Powered, Auto-Scaling Code Editor
|
||||
</h1>
|
||||
<div className="text-muted-foreground mt-4 text-center ">
|
||||
Sandbox is an open-source cloud-based code editing environment with
|
||||
custom AI code autocompletion and real-time collaboration. The
|
||||
infrastructure runs on Docker and Kubernetes to scale automatically
|
||||
based on resource usage.
|
||||
</div>
|
||||
<div className="mt-8 flex space-x-4">
|
||||
<Link href="/sign-up">
|
||||
<Button>Go To App</Button>
|
||||
</Link>
|
||||
<a
|
||||
href="https://github.com/ishaan1013/sandbox"
|
||||
target="_blank"
|
||||
className="group h-9 px-4 py-2 inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"
|
||||
>
|
||||
GitHub Repository
|
||||
<ChevronRight className="h-4 w-4 ml-1 transition-all group-hover:translate-x-1" />
|
||||
</a>
|
||||
</div>
|
||||
<div className="aspect-video w-full rounded-lg bg-neutral-800 mt-12"></div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
18
frontend/assets/logo.svg
Normal file
@ -0,0 +1,18 @@
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8.75" fill="url(#paint0_radial_1_21)"/>
|
||||
<rect x="1.25" y="1.25" width="37.5" height="37.5" rx="7.5" fill="url(#paint1_radial_1_21)"/>
|
||||
<path d="M12.6953 29.1797H25.8203C26.3176 29.1797 26.7945 28.9821 27.1461 28.6305C27.4978 28.2789 27.6953 27.802 27.6953 27.3047V15.1172L23.0078 10.4297H14.5703C14.073 10.4297 13.5961 10.6272 13.2445 10.9789C12.8929 11.3305 12.6953 11.8074 12.6953 12.3047V16.0547" stroke="white" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M22.0703 10.4297V14.1797C22.0703 14.677 22.2679 15.1539 22.6195 15.5055C22.9711 15.8571 23.448 16.0547 23.9453 16.0547H27.6953" stroke="white" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M12.6953 19.8047C12.4467 19.8047 12.2082 19.9035 12.0324 20.0793C11.8566 20.2551 11.7578 20.4935 11.7578 20.7422V21.6797C11.7578 21.9283 11.659 22.1668 11.4832 22.3426C11.3074 22.5184 11.069 22.6172 10.8203 22.6172C11.069 22.6172 11.3074 22.716 11.4832 22.8918C11.659 23.0676 11.7578 23.306 11.7578 23.5547V24.4922C11.7578 24.7408 11.8566 24.9793 12.0324 25.1551C12.2082 25.3309 12.4467 25.4297 12.6953 25.4297" stroke="white" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M16.4453 25.4297C16.694 25.4297 16.9324 25.3309 17.1082 25.1551C17.284 24.9793 17.3828 24.7408 17.3828 24.4922V23.5547C17.3828 23.306 17.4816 23.0676 17.6574 22.8918C17.8332 22.716 18.0717 22.6172 18.3203 22.6172C18.0717 22.6172 17.8332 22.5184 17.6574 22.3426C17.4816 22.1668 17.3828 21.9283 17.3828 21.6797V20.7422C17.3828 20.4935 17.284 20.2551 17.1082 20.0793C16.9324 19.9035 16.694 19.8047 16.4453 19.8047" stroke="white" stroke-width="1.125" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<defs>
|
||||
<radialGradient id="paint0_radial_1_21" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(20) rotate(90) scale(40)">
|
||||
<stop stop-color="#A5B4FC"/>
|
||||
<stop offset="0.5" stop-color="#3730A3"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint1_radial_1_21" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(20 38.75) rotate(-90) scale(50.75)">
|
||||
<stop stop-color="#312E81"/>
|
||||
<stop offset="0.5"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
3
frontend/assets/x.svg
Normal file
@ -0,0 +1,3 @@
|
||||
<svg width="1200" height="1227" viewBox="0 0 1200 1227" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z" fill="white"/>
|
||||
</svg>
|
After Width: | Height: | Size: 430 B |
17
frontend/components.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema.json",
|
||||
"style": "new-york",
|
||||
"rsc": true,
|
||||
"tsx": true,
|
||||
"tailwind": {
|
||||
"config": "tailwind.config.ts",
|
||||
"css": "app/globals.css",
|
||||
"baseColor": "neutral",
|
||||
"cssVariables": true,
|
||||
"prefix": ""
|
||||
},
|
||||
"aliases": {
|
||||
"components": "@/components",
|
||||
"utils": "@/lib/utils"
|
||||
}
|
||||
}
|
99
frontend/components/dashboard/index.tsx
Normal file
@ -0,0 +1,99 @@
|
||||
"use client"
|
||||
|
||||
import CustomButton from "@/components/ui/customButton"
|
||||
import { Button } from "@/components/ui/button"
|
||||
import {
|
||||
Bolt,
|
||||
Clock,
|
||||
Code2,
|
||||
FolderDot,
|
||||
FolderOpenDot,
|
||||
Globe,
|
||||
HelpCircle,
|
||||
Plus,
|
||||
Settings,
|
||||
User,
|
||||
Users,
|
||||
} from "lucide-react"
|
||||
import { useState } from "react"
|
||||
import { Card } from "../ui/card"
|
||||
import ProjectCard from "./projectCard"
|
||||
|
||||
type TScreen = "projects" | "shared" | "settings" | "search"
|
||||
|
||||
export default function Dashboard() {
|
||||
const [screen, setScreen] = useState<TScreen>("projects")
|
||||
|
||||
const activeScreen = (s: TScreen) => {
|
||||
if (screen === s) return "justify-start"
|
||||
else return "justify-start font-normal text-muted-foreground"
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="flex grow w-full">
|
||||
<div className="w-56 shrink-0 border-r border-border p-4 justify-between flex flex-col">
|
||||
<div className="flex flex-col">
|
||||
<CustomButton className="mb-4">
|
||||
<Plus className="w-4 h-4 mr-2" />
|
||||
New Project
|
||||
</CustomButton>
|
||||
<Button
|
||||
variant="ghost"
|
||||
onClick={() => setScreen("projects")}
|
||||
className={activeScreen("projects")}
|
||||
>
|
||||
<FolderDot className="w-4 h-4 mr-2" />
|
||||
My Projects
|
||||
</Button>
|
||||
<Button
|
||||
variant="ghost"
|
||||
onClick={() => setScreen("shared")}
|
||||
className={activeScreen("shared")}
|
||||
>
|
||||
<Users className="w-4 h-4 mr-2" />
|
||||
Shared Rooms
|
||||
</Button>
|
||||
<Button
|
||||
variant="ghost"
|
||||
onClick={() => setScreen("settings")}
|
||||
className={activeScreen("settings")}
|
||||
>
|
||||
<Settings className="w-4 h-4 mr-2" />
|
||||
Settings
|
||||
</Button>
|
||||
</div>
|
||||
<div className="flex flex-col">
|
||||
<Button
|
||||
variant="ghost"
|
||||
className="justify-start font-normal text-muted-foreground"
|
||||
>
|
||||
<Code2 className="w-4 h-4 mr-2" />
|
||||
GitHub Repository
|
||||
</Button>
|
||||
<Button
|
||||
variant="ghost"
|
||||
className="justify-start font-normal text-muted-foreground"
|
||||
>
|
||||
<HelpCircle className="w-4 h-4 mr-2" />
|
||||
About
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
<div className="grow p-4 grid lg:grid-cols-4 xl:grid-cols-5 md:grid-cols-3 gap-4">
|
||||
<ProjectCard>
|
||||
<div className="font-medium flex items-center whitespace-nowrap w-full text-ellipsis overflow-hidden">
|
||||
React Project 1
|
||||
</div>
|
||||
<div className="flex flex-col text-muted-foreground space-y-0.5 text-sm">
|
||||
<div className="flex items-center">
|
||||
<Globe className="w-3 h-3 mr-2" /> Public
|
||||
</div>
|
||||
<div className="flex items-center">
|
||||
<Clock className="w-3 h-3 mr-2" /> 3d ago
|
||||
</div>
|
||||
</div>
|
||||
</ProjectCard>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
37
frontend/components/dashboard/navbar/index.tsx
Normal file
@ -0,0 +1,37 @@
|
||||
"use client"
|
||||
|
||||
import { UserButton } from "@clerk/nextjs"
|
||||
import { dark } from "@clerk/themes"
|
||||
import Image from "next/image"
|
||||
import Link from "next/link"
|
||||
import Logo from "@/assets/logo.svg"
|
||||
import { Input } from "../../ui/input"
|
||||
import { Search } from "lucide-react"
|
||||
import { Suspense, useCallback, useEffect, useState } from "react"
|
||||
import { useRouter, useSearchParams } from "next/navigation"
|
||||
import DashboardNavbarSearch from "./search"
|
||||
|
||||
export default function DashboardNavbar() {
|
||||
return (
|
||||
<div className="h-16 px-4 w-full flex items-center justify-between border-b border-border">
|
||||
<div className="flex items-center space-x-4">
|
||||
<Link
|
||||
href="/"
|
||||
className="ring-offset-2 ring-offset-background focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none rounded-sm"
|
||||
>
|
||||
<Image src={Logo} alt="Logo" width={36} height={36} />
|
||||
</Link>
|
||||
<div className="text-sm font-medium flex items-center">Sandbox</div>
|
||||
</div>
|
||||
<div className="flex items-center space-x-4">
|
||||
<DashboardNavbarSearch />
|
||||
<UserButton
|
||||
appearance={{
|
||||
baseTheme: dark,
|
||||
}}
|
||||
afterSignOutUrl="/"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
36
frontend/components/dashboard/navbar/search.tsx
Normal file
@ -0,0 +1,36 @@
|
||||
"use client"
|
||||
|
||||
import { Input } from "../../ui/input"
|
||||
import { Search } from "lucide-react"
|
||||
import { useCallback, useEffect, useState } from "react"
|
||||
import { useRouter, useSearchParams } from "next/navigation"
|
||||
|
||||
export default function DashboardNavbarSearch() {
|
||||
const [search, setSearch] = useState("")
|
||||
const router = useRouter()
|
||||
|
||||
useEffect(() => {
|
||||
const delayDebounceFn = setTimeout(() => {
|
||||
console.log("SEARCH", search)
|
||||
if (search) {
|
||||
router.push(`/dashboard?q=${search}`)
|
||||
} else {
|
||||
router.push(`/dashboard`)
|
||||
}
|
||||
}, 300)
|
||||
|
||||
return () => clearTimeout(delayDebounceFn)
|
||||
}, [search])
|
||||
|
||||
return (
|
||||
<div className="relative h-9 w-44 flex items-center justify-start">
|
||||
<Search className="w-4 h-4 absolute left-2 text-muted-foreground" />
|
||||
<Input
|
||||
value={search}
|
||||
onChange={(e) => setSearch(e.target.value)}
|
||||
placeholder="Search projects..."
|
||||
className="pl-8"
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
}
|
22
frontend/components/dashboard/projectCard.tsx
Normal file
@ -0,0 +1,22 @@
|
||||
import { cn } from "@/lib/utils"
|
||||
|
||||
export default function ProjectCard({
|
||||
children,
|
||||
className,
|
||||
}: {
|
||||
children: React.ReactNode
|
||||
className?: string
|
||||
}) {
|
||||
return (
|
||||
<div
|
||||
tabIndex={0}
|
||||
className={cn(
|
||||
"rounded-lg border bg-card text-card-foreground shadow h-48 p-[1px] gradient-project-card-bg cursor-pointer transition-all focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"
|
||||
)}
|
||||
>
|
||||
<div className="rounded-[7px] p-4 h-full flex flex-col justify-between gradient-project-card">
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
146
frontend/components/editor/index.tsx
Normal file
@ -0,0 +1,146 @@
|
||||
"use client"
|
||||
|
||||
import Editor, { OnMount } from "@monaco-editor/react"
|
||||
import monaco from "monaco-editor"
|
||||
import { useRef, useState } from "react"
|
||||
import theme from "./theme.json"
|
||||
|
||||
import {
|
||||
ResizableHandle,
|
||||
ResizablePanel,
|
||||
ResizablePanelGroup,
|
||||
} from "@/components/ui/resizable"
|
||||
import { Button } from "../ui/button"
|
||||
import {
|
||||
ChevronLeft,
|
||||
ChevronRight,
|
||||
RotateCcw,
|
||||
RotateCw,
|
||||
Terminal,
|
||||
TerminalSquare,
|
||||
X,
|
||||
} from "lucide-react"
|
||||
import Tab from "../ui/tab"
|
||||
import Sidebar from "./sidebar"
|
||||
|
||||
export default function CodeEditor() {
|
||||
const editorRef = useRef<null | monaco.editor.IStandaloneCodeEditor>(null)
|
||||
const [code, setCode] = useState([
|
||||
{
|
||||
language: "css",
|
||||
name: "style.css",
|
||||
value: `body { background-color: #282c34; color: white; }`,
|
||||
},
|
||||
{
|
||||
language: "html",
|
||||
name: "index.html",
|
||||
value: `<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello, world!</h1>
|
||||
<script src="script.js"></script>
|
||||
</body>
|
||||
</html>`,
|
||||
},
|
||||
{
|
||||
language: "javascript",
|
||||
name: "script.js",
|
||||
value: `console.log("Hello, world!")`,
|
||||
},
|
||||
])
|
||||
|
||||
const handleEditorMount: OnMount = (editor, monaco) => {
|
||||
editorRef.current = editor
|
||||
|
||||
// import("monaco-themes/themes/Blackboard.json").then((data) => {
|
||||
// monaco.editor.defineTheme(
|
||||
// "Blackboard",
|
||||
// data as monaco.editor.IStandaloneThemeData
|
||||
// )
|
||||
// })
|
||||
// monaco.editor.setTheme("Blackboard")
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Sidebar />
|
||||
<ResizablePanelGroup direction="horizontal">
|
||||
<ResizablePanel
|
||||
className="p-2 flex flex-col"
|
||||
maxSize={75}
|
||||
minSize={30}
|
||||
defaultSize={60}
|
||||
>
|
||||
<div className="h-10 w-full flex gap-2">
|
||||
<Tab>index.html</Tab>
|
||||
<Tab>style.css</Tab>
|
||||
</div>
|
||||
<div className="grow w-full overflow-hidden rounded-md">
|
||||
<Editor
|
||||
height="100%"
|
||||
defaultLanguage="typescript"
|
||||
onMount={handleEditorMount}
|
||||
options={{
|
||||
minimap: {
|
||||
enabled: false,
|
||||
},
|
||||
padding: {
|
||||
bottom: 4,
|
||||
top: 4,
|
||||
},
|
||||
scrollBeyondLastLine: false,
|
||||
}}
|
||||
theme="vs-dark"
|
||||
/>
|
||||
</div>
|
||||
</ResizablePanel>
|
||||
<ResizableHandle />
|
||||
<ResizablePanel defaultSize={40}>
|
||||
<ResizablePanelGroup direction="vertical">
|
||||
<ResizablePanel
|
||||
defaultSize={50}
|
||||
minSize={20}
|
||||
className="p-2 flex flex-col"
|
||||
>
|
||||
<div className="h-10 select-none w-full flex gap-2">
|
||||
<div className="h-8 rounded-md px-3 text-xs bg-secondary flex items-center w-full justify-between">
|
||||
Preview
|
||||
<div className="flex space-x-1 translate-x-1">
|
||||
<div className="p-0.5 h-5 w-5 ml-0.5 flex items-center justify-center transition-colors bg-transparent hover:bg-muted-foreground/25 cursor-pointer rounded-sm">
|
||||
<TerminalSquare className="w-4 h-4" />
|
||||
</div>
|
||||
<div className="p-0.5 h-5 w-5 ml-0.5 flex items-center justify-center transition-colors bg-transparent hover:bg-muted-foreground/25 cursor-pointer rounded-sm">
|
||||
<ChevronLeft className="w-4 h-4" />
|
||||
</div>
|
||||
<div className="p-0.5 h-5 w-5 ml-0.5 flex items-center justify-center transition-colors bg-transparent hover:bg-muted-foreground/25 cursor-pointer rounded-sm">
|
||||
<ChevronRight className="w-4 h-4" />
|
||||
</div>
|
||||
<div className="p-0.5 h-5 w-5 ml-0.5 flex items-center justify-center transition-colors bg-transparent hover:bg-muted-foreground/25 cursor-pointer rounded-sm">
|
||||
<RotateCw className="w-3 h-3" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full grow rounded-md bg-foreground"></div>
|
||||
</ResizablePanel>
|
||||
<ResizableHandle />
|
||||
<ResizablePanel
|
||||
defaultSize={50}
|
||||
minSize={20}
|
||||
className="p-2 flex flex-col"
|
||||
>
|
||||
<div className="h-10 w-full flex gap-2">
|
||||
<Tab>Node</Tab>
|
||||
<Tab>Console</Tab>
|
||||
</div>
|
||||
<div className="w-full grow rounded-md bg-secondary"></div>
|
||||
</ResizablePanel>
|
||||
</ResizablePanelGroup>
|
||||
</ResizablePanel>
|
||||
</ResizablePanelGroup>
|
||||
</>
|
||||
)
|
||||
}
|
33
frontend/components/editor/navbar/index.tsx
Normal file
@ -0,0 +1,33 @@
|
||||
import Image from "next/image"
|
||||
import Logo from "@/assets/logo.svg"
|
||||
import { Pencil } from "lucide-react"
|
||||
import { UserButton } from "@clerk/nextjs"
|
||||
import Link from "next/link"
|
||||
import { dark } from "@clerk/themes"
|
||||
|
||||
export default function Navbar() {
|
||||
return (
|
||||
<div className="h-14 px-2 w-full flex items-center justify-between border-b border-border">
|
||||
<div className="flex items-center space-x-4">
|
||||
<Link
|
||||
href="/"
|
||||
className="ring-offset-2 ring-offset-background focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none rounded-sm"
|
||||
>
|
||||
<Image src={Logo} alt="Logo" width={36} height={36} />
|
||||
</Link>
|
||||
<div className="text-sm font-medium flex items-center">
|
||||
My React Project{" "}
|
||||
<div className="h-7 w-7 ml-2 flex items-center justify-center transition-colors bg-transparent hover:bg-muted-foreground/25 cursor-pointer rounded-md">
|
||||
<Pencil className="w-4 h-4" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<UserButton
|
||||
appearance={{
|
||||
baseTheme: dark,
|
||||
}}
|
||||
afterSignOutUrl="/"
|
||||
/>
|
||||
</div>
|
||||
)
|
||||
}
|
20
frontend/components/editor/sidebar/file.tsx
Normal file
@ -0,0 +1,20 @@
|
||||
"use client"
|
||||
|
||||
import Image from "next/image"
|
||||
import { getIconForFile } from "vscode-icons-js"
|
||||
import { TFile } from "./types"
|
||||
|
||||
export default function SidebarFile({ data }: { data: TFile }) {
|
||||
return (
|
||||
<div className="w-full flex items-center h-7 px-1 transition-colors hover:bg-secondary rounded-sm cursor-pointer">
|
||||
<Image
|
||||
src={`/icons/${getIconForFile(data.name)}`}
|
||||
alt="File Icon"
|
||||
width={18}
|
||||
height={18}
|
||||
className="mr-2"
|
||||
/>
|
||||
{data.name}
|
||||
</div>
|
||||
)
|
||||
}
|
46
frontend/components/editor/sidebar/folder.tsx
Normal file
@ -0,0 +1,46 @@
|
||||
"use client"
|
||||
|
||||
import Image from "next/image"
|
||||
import { useState } from "react"
|
||||
import { getIconForFolder, getIconForOpenFolder } from "vscode-icons-js"
|
||||
import { TFolder } from "./types"
|
||||
import SidebarFile from "./file"
|
||||
|
||||
export default function SidebarFolder({ data }: { data: TFolder }) {
|
||||
const [isOpen, setIsOpen] = useState(false)
|
||||
const folder = isOpen
|
||||
? getIconForOpenFolder(data.name)
|
||||
: getIconForFolder(data.name)
|
||||
|
||||
return (
|
||||
<>
|
||||
<div
|
||||
onClick={() => setIsOpen((prev) => !prev)}
|
||||
className="w-full flex items-center h-7 px-1 transition-colors hover:bg-secondary rounded-sm cursor-pointer"
|
||||
>
|
||||
<Image
|
||||
src={`/icons/${folder}`}
|
||||
alt="Folder icon"
|
||||
width={18}
|
||||
height={18}
|
||||
className="mr-2"
|
||||
/>
|
||||
{data.name}
|
||||
</div>
|
||||
{isOpen ? (
|
||||
<div className="flex w-full items-stretch">
|
||||
<div className="w-[1px] bg-border mx-2 h-full"></div>
|
||||
<div className="flex flex-col grow">
|
||||
{data.children.map((child) =>
|
||||
child.type === "file" ? (
|
||||
<SidebarFile key={child.id} data={child} />
|
||||
) : (
|
||||
<SidebarFolder key={child.id} data={child} />
|
||||
)
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
) : null}
|
||||
</>
|
||||
)
|
||||
}
|
95
frontend/components/editor/sidebar/index.tsx
Normal file
@ -0,0 +1,95 @@
|
||||
import { FilePlus, FolderPlus, Search } from "lucide-react"
|
||||
import SidebarFile from "./file"
|
||||
import SidebarFolder from "./folder"
|
||||
import { TFile, TFolder } from "./types"
|
||||
|
||||
const data: (TFile | TFolder)[] = [
|
||||
{
|
||||
id: "index.tsx",
|
||||
type: "file",
|
||||
name: "index.tsx",
|
||||
},
|
||||
{
|
||||
id: "components",
|
||||
type: "folder",
|
||||
name: "components",
|
||||
children: [
|
||||
{
|
||||
id: "navbar.tsx",
|
||||
type: "file",
|
||||
name: "navbar.tsx",
|
||||
},
|
||||
{
|
||||
id: "ui",
|
||||
type: "folder",
|
||||
name: "ui",
|
||||
children: [
|
||||
{
|
||||
id: "Button.tsx",
|
||||
type: "file",
|
||||
name: "Button.tsx",
|
||||
},
|
||||
{
|
||||
id: "Input.tsx",
|
||||
type: "file",
|
||||
name: "Input.tsx",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: "App.tsx",
|
||||
type: "file",
|
||||
name: "App.tsx",
|
||||
},
|
||||
{
|
||||
id: "styles",
|
||||
type: "folder",
|
||||
name: "styles",
|
||||
children: [
|
||||
{
|
||||
id: "style.css",
|
||||
type: "file",
|
||||
name: "style.css",
|
||||
},
|
||||
{
|
||||
id: "index.css",
|
||||
type: "file",
|
||||
name: "index.css",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
export default function Sidebar() {
|
||||
return (
|
||||
<div className="h-full w-56 select-none flex flex-col text-sm items-start p-2">
|
||||
<div className="flex w-full items-center justify-between h-8 mb-1 ">
|
||||
<div className="text-muted-foreground">EXPLORER</div>
|
||||
<div className="flex space-x-1">
|
||||
<div className="h-6 w-6 text-muted-foreground ml-0.5 flex items-center justify-center translate-x-1 transition-colors bg-transparent hover:bg-muted-foreground/25 cursor-pointer rounded-sm">
|
||||
<FilePlus className="w-4 h-4" />
|
||||
</div>
|
||||
<div className="h-6 w-6 text-muted-foreground ml-0.5 flex items-center justify-center translate-x-1 transition-colors bg-transparent hover:bg-muted-foreground/25 cursor-pointer rounded-sm">
|
||||
<FolderPlus className="w-4 h-4" />
|
||||
</div>
|
||||
<div className="h-6 w-6 text-muted-foreground ml-0.5 flex items-center justify-center translate-x-1 transition-colors bg-transparent hover:bg-muted-foreground/25 cursor-pointer rounded-sm">
|
||||
<Search className="w-4 h-4" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full mt-1 flex flex-col">
|
||||
{/* <SidebarFile name="index.tsx" />
|
||||
<SidebarFolder name="styles" /> */}
|
||||
{data.map((child) =>
|
||||
child.type === "file" ? (
|
||||
<SidebarFile key={child.id} data={child} />
|
||||
) : (
|
||||
<SidebarFolder key={child.id} data={child} />
|
||||
)
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
12
frontend/components/editor/sidebar/types.ts
Normal file
@ -0,0 +1,12 @@
|
||||
export type TFolder = {
|
||||
id: string
|
||||
type: "folder"
|
||||
name: string
|
||||
children: (TFile | TFolder)[]
|
||||
}
|
||||
|
||||
export type TFile = {
|
||||
id: string
|
||||
type: "file"
|
||||
name: string
|
||||
}
|
697
frontend/components/editor/theme.json
Normal file
@ -0,0 +1,697 @@
|
||||
{
|
||||
"inherit": true,
|
||||
"base": "vs-dark",
|
||||
"colors": {
|
||||
"editor.background": "101010",
|
||||
"editor.foreground": "FFFFFF",
|
||||
"editor.selectionBackground": "FFFFFF25",
|
||||
"editor.selectionHighlightBackground": "FFFFFF25",
|
||||
"editorLineNumber.foreground": "505050",
|
||||
"editorWidget.background": "101010",
|
||||
"editorWarning.foreground": "FFC799",
|
||||
"editorError.foreground": "FF8080",
|
||||
"editorOverviewRuler.border": "101010",
|
||||
"editorGutter.addedBackground": "99FFE4",
|
||||
"editorGutter.deletedBackground": "FF8080",
|
||||
"editorGutter.modifiedBackground": "FFC799",
|
||||
"diffEditor.insertedTextBackground": "99FFE440",
|
||||
"diffEditor.insertedLineBackground": "99FFE440",
|
||||
"diffEditor.removedTextBackground": "FF808040",
|
||||
"diffEditor.removedLineBackground": "FF808040",
|
||||
"sideBar.background": "101010",
|
||||
"sideBarTitle.foreground": "A0A0A0",
|
||||
"sideBarSectionHeader.foreground": "A0A0A0",
|
||||
"sideBarSectionHeader.background": "101010",
|
||||
"activityBar.background": "101010",
|
||||
"activityBar.foreground": "A0A0A0",
|
||||
"activityBarBadge.background": "FFC799",
|
||||
"activityBarBadge.foreground": "000",
|
||||
"titleBar.activeBackground": "101010",
|
||||
"titleBar.inactiveBackground": "101010",
|
||||
"titleBar.activeForeground": "7E7E7E",
|
||||
"titleBar.inactiveForeground": "707070",
|
||||
"tab.activeBorderTop": "FFC799",
|
||||
"statusBar.debuggingForeground": "FFFFFF",
|
||||
"statusBar.debuggingBackground": "FF7300",
|
||||
"statusBar.background": "101010",
|
||||
"statusBar.foreground": "A0A0A0",
|
||||
"statusBarItem.remoteBackground": "FFC799",
|
||||
"statusBarItem.remoteForeground": "000",
|
||||
"list.activeSelectionForeground": "FFC799",
|
||||
"list.inactiveSelectionBackground": "232323",
|
||||
"badge.background": "FFC799",
|
||||
"badge.foreground": "000",
|
||||
"button.background": "FFC799",
|
||||
"button.hoverBackground": "FFCFA8",
|
||||
"button.foreground": "000",
|
||||
"focusBorder": "FFC799",
|
||||
"icon.foreground": "A0A0A0",
|
||||
"input.background": "1C1C1C",
|
||||
"list.activeSelectionBackground": "232323",
|
||||
"list.hoverBackground": "282828",
|
||||
"list.errorForeground": "FF8080",
|
||||
"list.highlightForeground": "FFC799",
|
||||
"selection.background": "666",
|
||||
"editorBracketHighlight.foreground1": "A0A0A0",
|
||||
"editorBracketHighlight.foreground2": "A0A0A0",
|
||||
"editorBracketHighlight.foreground3": "A0A0A0",
|
||||
"editorBracketHighlight.foreground4": "A0A0A0",
|
||||
"editorBracketHighlight.foreground5": "A0A0A0",
|
||||
"editorBracketHighlight.foreground6": "A0A0A0",
|
||||
"editorBracketHighlight.unexpectedBracket.foreground": "FF8080",
|
||||
"textLink.foreground": "FFC799",
|
||||
"textLink.activeForeground": "FFCFA8",
|
||||
"editorHoverWidget.background": "161616",
|
||||
"editorHoverWidget.border": "282828",
|
||||
"scrollbarSlider.background": "34343480",
|
||||
"scrollbarSlider.hoverBackground": "343434",
|
||||
"gitDecoration.addedResourceForeground": "99FFE4",
|
||||
"gitDecoration.untrackedResourceForeground": "99FFE4",
|
||||
"gitDecoration.modifiedResourceForeground": "FFC799",
|
||||
"gitDecoration.deletedResourceForeground": "FF8080",
|
||||
"gitDecoration.ignoredResourceForeground": "595959",
|
||||
"gitDecoration.conflictingResourceForeground": "FF8080",
|
||||
"gitDecoration.submoduleResourceForeground": "A0A0A0",
|
||||
"settings.modifiedItemIndicator": "FFC799",
|
||||
"terminal.ansiBlack": "101010",
|
||||
"terminal.ansiBlue": "FFC799",
|
||||
"terminal.ansiBrightBlack": "101010",
|
||||
"terminal.ansiBrightBlue": "FFC799",
|
||||
"terminal.ansiBrightCyan": "99FFE4",
|
||||
"terminal.ansiBrightGreen": "99FFE4",
|
||||
"terminal.ansiBrightMagenta": "FBADFF",
|
||||
"terminal.ansiBrightRed": "FF8080",
|
||||
"terminal.ansiBrightWhite": "f8f8f2",
|
||||
"terminal.ansiBrightYellow": "FFC799",
|
||||
"terminal.ansiCyan": "99FFE4",
|
||||
"terminal.ansiGreen": "99FFE4",
|
||||
"terminal.ansiMagenta": "FBADFF",
|
||||
"terminal.ansiRed": "FF8080",
|
||||
"terminal.ansiWhite": "e3e3dd",
|
||||
"terminal.ansiYellow": "FFC799",
|
||||
"terminal.background": "101010",
|
||||
"editorGroup.border": "FFC799",
|
||||
"editorGroupHeader.tabsBackground": "101010",
|
||||
"tab.inactiveBackground": "1C1C1C",
|
||||
"tab.border": "1C1C1C"
|
||||
},
|
||||
"rules": [
|
||||
{
|
||||
"foreground": "595959",
|
||||
"token": "comment"
|
||||
},
|
||||
{
|
||||
"foreground": "595959",
|
||||
"token": "punctuation.definition.comment"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "variable"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "string constant.other.placeholder"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "entity.name.tag"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "constant.other.color"
|
||||
},
|
||||
{
|
||||
"foreground": "FF8080",
|
||||
"token": "invalid"
|
||||
},
|
||||
{
|
||||
"foreground": "FF8080",
|
||||
"token": "invalid.illegal"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "keyword"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "storage.modifier"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "keyword.control"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "constant.other.color"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "punctuation.separator.inheritance.php"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "punctuation.definition.tag.html"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "punctuation.definition.tag.begin.html"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "punctuation.definition.tag.end.html"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "punctuation.section.embedded"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "keyword.other.template"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "keyword.other.rust"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "keyword.other.fn.rust"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "keyword.other.substitution"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "storage.type"
|
||||
},
|
||||
{
|
||||
"foreground": "FBADFF",
|
||||
"token": "keyword.other.import.java"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "storage.modifier.import.java"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "entity.name.tag"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "meta.tag.sgml"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "markup.deleted.git_gutter"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "entity.name.function"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "variable.function"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "support.function"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "keyword.other.special-method"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "meta.block variable.other"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "support.other.variable"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "string.other.link"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "constant.numeric"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "support.constant"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "constant.character"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "constant.escape"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "keyword.other.unit"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "keyword.other"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "constant.language.boolean"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "string"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "constant.other.symbol"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "constant.other.key"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "keyword.other.fn.rust"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "entity.name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "support.type"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "support.class"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "support.other.namespace.use.php"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "meta.use.php"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "support.other.namespace.php"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "markup.changed.git_gutter"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "support.type.sys-types"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "source.css support.type.property-name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "source.sass support.type.property-name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "source.scss support.type.property-name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "source.less support.type.property-name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "source.stylus support.type.property-name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "source.postcss support.type.property-name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "source.postcss support.type.property-name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "support.type.vendored.property-name.css"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "source.css.scss entity.name.tag"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "variable.parameter.keyframe-list.css"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "meta.property-name.css"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "variable.parameter.url.scss"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "meta.property-value.scss"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "meta.property-value.css"
|
||||
},
|
||||
{
|
||||
"foreground": "FF8080",
|
||||
"token": "entity.name.module.js"
|
||||
},
|
||||
{
|
||||
"foreground": "FF8080",
|
||||
"token": "variable.import.parameter.js"
|
||||
},
|
||||
{
|
||||
"foreground": "FF8080",
|
||||
"token": "variable.other.class.js"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "variable.other.constant"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "variable.language"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "entity.name.method.js"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "meta.class-method.js entity.name.function.js"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "variable.function.constructor"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "entity.other.attribute-name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "meta.property-list.scss"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "meta.attribute-selector.scss"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "meta.property-value.css"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "entity.other.keyframe-offset.css"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "meta.selector.css"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "entity.name.tag.reference.scss"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "entity.name.tag.nesting.css"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "punctuation.separator.key-value.css"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "text.html.basic entity.other.attribute-name.html"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "text.html.basic entity.other.attribute-name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "entity.other.attribute-name.class"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "entity.other.attribute-name.id"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "meta.attribute-selector.scss"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "variable.parameter.misc.css"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "source.sass keyword.control"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "meta.attribute-selector.scss"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "markup.inserted"
|
||||
},
|
||||
{
|
||||
"foreground": "FF8080",
|
||||
"token": "markup.deleted"
|
||||
},
|
||||
{
|
||||
"foreground": "A0A0A0",
|
||||
"token": "markup.changed"
|
||||
},
|
||||
{
|
||||
"foreground": "A0A0A0",
|
||||
"token": "string.regexp"
|
||||
},
|
||||
{
|
||||
"foreground": "A0A0A0",
|
||||
"token": "constant.character.escape"
|
||||
},
|
||||
{
|
||||
"fontStyle": "underline",
|
||||
"token": "*url*"
|
||||
},
|
||||
{
|
||||
"fontStyle": "underline",
|
||||
"token": "*link*"
|
||||
},
|
||||
{
|
||||
"fontStyle": "underline",
|
||||
"token": "*uri*"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "tag.decorator.js entity.name.tag.js"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "tag.decorator.js punctuation.definition.tag.js"
|
||||
},
|
||||
{
|
||||
"fontStyle": "italic",
|
||||
"foreground": "FF8080",
|
||||
"token": "source.js constant.other.object.key.js string.unquoted.label.js"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "source.json meta.structure.dictionary.json support.type.property-name.json"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "text.html.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "punctuation.definition.list_item.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "A0A0A0",
|
||||
"token": "text.html.markdown markup.inline.raw.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "markdown.heading"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "markup.heading | markup.heading entity.name"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "markup.heading.markdown punctuation.definition.heading.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "markup.heading"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "markup.inserted.git_gutter"
|
||||
},
|
||||
{
|
||||
"fontStyle": "italic",
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.italic"
|
||||
},
|
||||
{
|
||||
"fontStyle": "bold",
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.bold"
|
||||
},
|
||||
{
|
||||
"fontStyle": "bold",
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.bold string"
|
||||
},
|
||||
{
|
||||
"fontStyle": "bold",
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.bold markup.italic"
|
||||
},
|
||||
{
|
||||
"fontStyle": "bold",
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.italic markup.bold"
|
||||
},
|
||||
{
|
||||
"fontStyle": "bold",
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.quote markup.bold"
|
||||
},
|
||||
{
|
||||
"fontStyle": "bold",
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.bold markup.italic string"
|
||||
},
|
||||
{
|
||||
"fontStyle": "bold",
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.italic markup.bold string"
|
||||
},
|
||||
{
|
||||
"fontStyle": "bold",
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.quote markup.bold string"
|
||||
},
|
||||
{
|
||||
"fontStyle": "underline",
|
||||
"foreground": "FFC799",
|
||||
"token": "markup.underline"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.quote punctuation.definition.blockquote.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "99FFE4",
|
||||
"token": "markup.quote"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "string.other.link.title.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "A0A0A0",
|
||||
"token": "string.other.link.description.title.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "FFC799",
|
||||
"token": "constant.other.reference.link.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "A0A0A0",
|
||||
"token": "markup.raw.block"
|
||||
},
|
||||
{
|
||||
"foreground": "00000050",
|
||||
"token": "markup.raw.block.fenced.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "00000050",
|
||||
"token": "punctuation.definition.fenced.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.raw.block.fenced.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "variable.language.fenced.markdown"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "punctuation.section.class.end"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "variable.language.fenced.markdown"
|
||||
},
|
||||
{
|
||||
"fontStyle": "bold",
|
||||
"foreground": "65737E",
|
||||
"token": "meta.separator"
|
||||
},
|
||||
{
|
||||
"foreground": "FFFFFF",
|
||||
"token": "markup.table"
|
||||
}
|
||||
],
|
||||
"encodedTokensColors": []
|
||||
}
|
9
frontend/components/layout/themeProvider.tsx
Normal file
@ -0,0 +1,9 @@
|
||||
"use client"
|
||||
|
||||
import * as React from "react"
|
||||
import { ThemeProvider as NextThemesProvider } from "next-themes"
|
||||
import { type ThemeProviderProps } from "next-themes/dist/types"
|
||||
|
||||
export function ThemeProvider({ children, ...props }: ThemeProviderProps) {
|
||||
return <NextThemesProvider {...props}>{children}</NextThemesProvider>
|
||||
}
|
57
frontend/components/ui/button.tsx
Normal file
@ -0,0 +1,57 @@
|
||||
import * as React from "react"
|
||||
import { Slot } from "@radix-ui/react-slot"
|
||||
import { cva, type VariantProps } from "class-variance-authority"
|
||||
|
||||
import { cn } from "@/lib/utils"
|
||||
|
||||
const buttonVariants = cva(
|
||||
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
|
||||
{
|
||||
variants: {
|
||||
variant: {
|
||||
default:
|
||||
"bg-primary text-primary-foreground shadow hover:bg-primary/90",
|
||||
destructive:
|
||||
"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
|
||||
outline:
|
||||
"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
|
||||
secondary:
|
||||
"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
|
||||
ghost: "hover:bg-accent hover:text-accent-foreground",
|
||||
link: "text-primary underline-offset-4 hover:underline",
|
||||
},
|
||||
size: {
|
||||
default: "h-9 px-4 py-2",
|
||||
sm: "h-8 rounded-md px-3 text-xs",
|
||||
lg: "h-10 rounded-md px-8",
|
||||
icon: "h-9 w-9",
|
||||
},
|
||||
},
|
||||
defaultVariants: {
|
||||
variant: "default",
|
||||
size: "default",
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
export interface ButtonProps
|
||||
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
|
||||
VariantProps<typeof buttonVariants> {
|
||||
asChild?: boolean
|
||||
}
|
||||
|
||||
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
|
||||
({ className, variant, size, asChild = false, ...props }, ref) => {
|
||||
const Comp = asChild ? Slot : "button"
|
||||
return (
|
||||
<Comp
|
||||
className={cn(buttonVariants({ variant, size, className }))}
|
||||
ref={ref}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
)
|
||||
Button.displayName = "Button"
|
||||
|
||||
export { Button, buttonVariants }
|
76
frontend/components/ui/card.tsx
Normal file
@ -0,0 +1,76 @@
|
||||
import * as React from "react"
|
||||
|
||||
import { cn } from "@/lib/utils"
|
||||
|
||||
const Card = React.forwardRef<
|
||||
HTMLDivElement,
|
||||
React.HTMLAttributes<HTMLDivElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<div
|
||||
ref={ref}
|
||||
className={cn(
|
||||
"rounded-xl border bg-card text-card-foreground shadow",
|
||||
className
|
||||
)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
Card.displayName = "Card"
|
||||
|
||||
const CardHeader = React.forwardRef<
|
||||
HTMLDivElement,
|
||||
React.HTMLAttributes<HTMLDivElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<div
|
||||
ref={ref}
|
||||
className={cn("flex flex-col space-y-1.5 p-6", className)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
CardHeader.displayName = "CardHeader"
|
||||
|
||||
const CardTitle = React.forwardRef<
|
||||
HTMLParagraphElement,
|
||||
React.HTMLAttributes<HTMLHeadingElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<h3
|
||||
ref={ref}
|
||||
className={cn("font-semibold leading-none tracking-tight", className)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
CardTitle.displayName = "CardTitle"
|
||||
|
||||
const CardDescription = React.forwardRef<
|
||||
HTMLParagraphElement,
|
||||
React.HTMLAttributes<HTMLParagraphElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<p
|
||||
ref={ref}
|
||||
className={cn("text-sm text-muted-foreground", className)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
CardDescription.displayName = "CardDescription"
|
||||
|
||||
const CardContent = React.forwardRef<
|
||||
HTMLDivElement,
|
||||
React.HTMLAttributes<HTMLDivElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<div ref={ref} className={cn("p-6 pt-0", className)} {...props} />
|
||||
))
|
||||
CardContent.displayName = "CardContent"
|
||||
|
||||
const CardFooter = React.forwardRef<
|
||||
HTMLDivElement,
|
||||
React.HTMLAttributes<HTMLDivElement>
|
||||
>(({ className, ...props }, ref) => (
|
||||
<div
|
||||
ref={ref}
|
||||
className={cn("flex items-center p-6 pt-0", className)}
|
||||
{...props}
|
||||
/>
|
||||
))
|
||||
CardFooter.displayName = "CardFooter"
|
||||
|
||||
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }
|
30
frontend/components/ui/customButton.tsx
Normal file
@ -0,0 +1,30 @@
|
||||
import * as React from "react"
|
||||
import { Plus } from "lucide-react"
|
||||
import { cn } from "@/lib/utils"
|
||||
|
||||
const Button = ({
|
||||
children,
|
||||
className,
|
||||
onClick,
|
||||
}: {
|
||||
children: React.ReactNode
|
||||
className?: string
|
||||
onClick?: () => void
|
||||
}) => {
|
||||
return (
|
||||
<button
|
||||
onClick={onClick}
|
||||
className={cn(
|
||||
className,
|
||||
"gradient-button-bg p-[1px] inline-flex group rounded-md text-sm font-medium focus-visible:ring-offset-1 focus-visible:ring-offset-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"
|
||||
)}
|
||||
>
|
||||
<div className="rounded-[6px] w-full gradient-button flex items-center justify-center whitespace-nowrap px-4 py-2 h-9">
|
||||
<Plus className="w-4 h-4 mr-2" />
|
||||
New Project
|
||||
</div>
|
||||
</button>
|
||||
)
|
||||
}
|
||||
|
||||
export default Button
|
25
frontend/components/ui/input.tsx
Normal file
@ -0,0 +1,25 @@
|
||||
import * as React from "react"
|
||||
|
||||
import { cn } from "@/lib/utils"
|
||||
|
||||
export interface InputProps
|
||||
extends React.InputHTMLAttributes<HTMLInputElement> {}
|
||||
|
||||
const Input = React.forwardRef<HTMLInputElement, InputProps>(
|
||||
({ className, type, ...props }, ref) => {
|
||||
return (
|
||||
<input
|
||||
type={type}
|
||||
className={cn(
|
||||
"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
|
||||
className
|
||||
)}
|
||||
ref={ref}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
)
|
||||
Input.displayName = "Input"
|
||||
|
||||
export { Input }
|
45
frontend/components/ui/resizable.tsx
Normal file
@ -0,0 +1,45 @@
|
||||
"use client"
|
||||
|
||||
import { DragHandleDots2Icon } from "@radix-ui/react-icons"
|
||||
import * as ResizablePrimitive from "react-resizable-panels"
|
||||
|
||||
import { cn } from "@/lib/utils"
|
||||
|
||||
const ResizablePanelGroup = ({
|
||||
className,
|
||||
...props
|
||||
}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (
|
||||
<ResizablePrimitive.PanelGroup
|
||||
className={cn(
|
||||
"flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
|
||||
className
|
||||
)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
|
||||
const ResizablePanel = ResizablePrimitive.Panel
|
||||
|
||||
const ResizableHandle = ({
|
||||
withHandle,
|
||||
className,
|
||||
...props
|
||||
}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
|
||||
withHandle?: boolean
|
||||
}) => (
|
||||
<ResizablePrimitive.PanelResizeHandle
|
||||
className={cn(
|
||||
"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90",
|
||||
className
|
||||
)}
|
||||
{...props}
|
||||
>
|
||||
{withHandle && (
|
||||
<div className="z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border">
|
||||
<DragHandleDots2Icon className="h-2.5 w-2.5" />
|
||||
</div>
|
||||
)}
|
||||
</ResizablePrimitive.PanelResizeHandle>
|
||||
)
|
||||
|
||||
export { ResizablePanelGroup, ResizablePanel, ResizableHandle }
|
31
frontend/components/ui/tab.tsx
Normal file
@ -0,0 +1,31 @@
|
||||
"use client"
|
||||
|
||||
import { X } from "lucide-react"
|
||||
import { Button } from "./button"
|
||||
|
||||
export default function Tab({
|
||||
children,
|
||||
onClick,
|
||||
onClose,
|
||||
}: {
|
||||
children: React.ReactNode
|
||||
onClick?: () => void
|
||||
onClose?: () => void
|
||||
}) {
|
||||
return (
|
||||
<Button
|
||||
onClick={onClick ?? undefined}
|
||||
size="sm"
|
||||
variant="secondary"
|
||||
className="group select-none"
|
||||
>
|
||||
{children}
|
||||
<div
|
||||
onClick={onClose ?? undefined}
|
||||
className="h-5 w-5 ml-0.5 flex items-center justify-center translate-x-1 transition-colors bg-transparent hover:bg-muted-foreground/25 cursor-pointer rounded-sm"
|
||||
>
|
||||
<X className="w-3 h-3" />
|
||||
</div>
|
||||
</Button>
|
||||
)
|
||||
}
|
6
frontend/lib/utils.ts
Normal file
@ -0,0 +1,6 @@
|
||||
import { type ClassValue, clsx } from "clsx"
|
||||
import { twMerge } from "tailwind-merge"
|
||||
|
||||
export function cn(...inputs: ClassValue[]) {
|
||||
return twMerge(clsx(inputs))
|
||||
}
|
10
frontend/middleware.ts
Normal file
@ -0,0 +1,10 @@
|
||||
import { authMiddleware } from "@clerk/nextjs"
|
||||
|
||||
export default authMiddleware({
|
||||
publicRoutes: (req) =>
|
||||
!req.url.includes("/dashboard") && !req.url.includes("/code"),
|
||||
})
|
||||
|
||||
export const config = {
|
||||
matcher: ["/((?!.+\\.[\\w]+$|_next).*)", "/", "/(api|trpc)(.*)"],
|
||||
}
|
12
frontend/next.config.mjs
Normal file
@ -0,0 +1,12 @@
|
||||
/** @type {import('next').NextConfig} */
|
||||
const nextConfig = {
|
||||
images: {
|
||||
remotePatterns: [
|
||||
{
|
||||
hostname: "cdn.simpleicons.org",
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
export default nextConfig
|
2628
frontend/package-lock.json
generated
Normal file
40
frontend/package.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "sandbox",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "next dev",
|
||||
"build": "next build",
|
||||
"start": "next start",
|
||||
"lint": "next lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@clerk/nextjs": "^4.29.12",
|
||||
"@clerk/themes": "^1.7.12",
|
||||
"@monaco-editor/react": "^4.6.0",
|
||||
"@radix-ui/react-icons": "^1.3.0",
|
||||
"@radix-ui/react-slot": "^1.0.2",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "^2.1.0",
|
||||
"geist": "^1.3.0",
|
||||
"lucide-react": "^0.365.0",
|
||||
"monaco-themes": "^0.4.4",
|
||||
"next": "14.1.3",
|
||||
"next-themes": "^0.3.0",
|
||||
"react": "^18",
|
||||
"react-dom": "^18",
|
||||
"react-resizable-panels": "^2.0.16",
|
||||
"tailwind-merge": "^2.2.2",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"vscode-icons-js": "^11.6.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^20",
|
||||
"@types/react": "^18",
|
||||
"@types/react-dom": "^18",
|
||||
"autoprefixer": "^10.0.1",
|
||||
"postcss": "^8",
|
||||
"tailwindcss": "^3.3.0",
|
||||
"typescript": "^5"
|
||||
}
|
||||
}
|
6
frontend/postcss.config.js
Normal file
@ -0,0 +1,6 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
};
|
1
frontend/public/icons/default_file.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>default_file</title><path d="M20.75,2H4.35V30h23.3V9Zm4.6,25.7H6.75V4.3h11.7v7h7V27.7Z" style="fill:#c5c5c5"/></svg>
|
After Width: | Height: | Size: 183 B |
1
frontend/public/icons/default_folder.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>default_folder</title><path d="M27.5,5.5H18.2L16.1,9.7H4.4V26.5H29.6V5.5Zm0,4.2H19.3l1.1-2.1h7.1Z" style="fill:#c09553"/></svg>
|
After Width: | Height: | Size: 194 B |
1
frontend/public/icons/default_folder_opened.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>default_folder_opened</title><path d="M27.4,5.5H18.2L16.1,9.7H4.3V26.5H29.5V5.5Zm0,18.7H6.6V11.8H27.4Zm0-14.5H19.2l1-2.1h7.1V9.7Z" style="fill:#dcb67a"/><polygon points="25.7 13.7 0.5 13.7 4.3 26.5 29.5 26.5 25.7 13.7" style="fill:#dcb67a"/></svg>
|
After Width: | Height: | Size: 314 B |
1
frontend/public/icons/default_root_folder.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>default_root_folder</title><path d="M27.5,5.5H18.2L16.1,9.7H4.4V26.5H29.6V5.5Zm0,4.2H19.3l1.1-2.1h7.1Z" style="fill:#c09553"/><polygon points="19.735 31.25 13.811 31.25 23.605 9.75 29.59 9.75 19.735 31.25" style="fill:#c09553"/><path d="M23.766,10H29.2L19.575,31H14.2Z" style="fill:#ffeebe"/></svg>
|
After Width: | Height: | Size: 365 B |
1
frontend/public/icons/default_root_folder_opened.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>default_root_folder_opened</title><path d="M27.4,5.5H18.2L16.1,9.7H4.3V26.5H29.5V5.5Zm0,18.7H6.6V11.8H27.4Zm0-14.5H19.2l1-2.1h7.1V9.7Z" style="fill:#dcb67a"/><polygon points="25.7 13.7 0.5 13.7 4.3 26.5 29.5 26.5 25.7 13.7" style="fill:#dcb67a"/><polygon points="19.635 31.25 13.711 31.25 23.505 9.75 29.49 9.75 19.635 31.25" style="fill:#dcb67a"/><path d="M23.666,10H29.1L19.475,31H14.1Z" style="fill:#ffeebe"/></svg>
|
After Width: | Height: | Size: 485 B |
1
frontend/public/icons/file_type_access.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_access</title><path d="M16.639,2.317h1.9V5.092a20.123,20.123,0,0,1,9.237.681c1.111.379,2.32,1.244,2.212,2.568q.019,7.336,0,14.679c.111,1.34-1.13,2.2-2.253,2.574a20.217,20.217,0,0,1-9.2.662v3.427H16.558C11.712,28.8,6.853,27.99,2,27.137V4.869c4.878-.853,9.763-1.683,14.638-2.552" style="fill:#a12935"/><path d="M18.541,6.059a20.047,20.047,0,0,1,8.563.465c.76.283,1.779.624,1.951,1.531-.127.741-.9,1.076-1.511,1.343a19.25,19.25,0,0,1-9,.614V6.059" style="fill:#fff"/><path d="M25.058,11.011a8.1,8.1,0,0,0,3.993-1.419c-.07,1.368.108,2.752-.1,4.108a4.4,4.4,0,0,1-2.288,1.152,22.8,22.8,0,0,1-8.127.3V11.023a25.527,25.527,0,0,0,6.517-.013" style="fill:#fff"/><path d="M8.5,10.683c.741-.054,1.48-.1,2.224-.162,1.066,3.564,2.078,7.147,3.131,10.714-.735-.048-1.47-.1-2.2-.169-.194-.8-.4-1.591-.611-2.383-.977,0-1.954-.035-2.927-.083q-.282,1.131-.573,2.256-.936-.072-1.865-.134c.929-3.351,1.9-6.689,2.819-10.04" style="fill:#fff"/><path d="M8.511,16.882c.321-1.489.8-2.943,1.012-4.455.286,1.508.729,2.978,1.091,4.468q-1.055,0-2.1-.013" style="fill:#a12935"/><path d="M25.077,16.1a8.049,8.049,0,0,0,3.974-1.416c-.064,1.365.1,2.743-.089,4.1a4.3,4.3,0,0,1-2.272,1.155,22.857,22.857,0,0,1-8.149.305V16.114a25.387,25.387,0,0,0,6.536-.016" style="fill:#fff"/><path d="M25.065,21.19a8.075,8.075,0,0,0,3.987-1.416c-.067,1.365.105,2.749-.1,4.1-.9.98-2.329,1.161-3.567,1.413a23.386,23.386,0,0,1-6.861.025c.022-1.371.013-2.74.013-4.111a25.292,25.292,0,0,0,6.523-.016" style="fill:#fff"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
frontend/public/icons/file_type_actionscript.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_actionscript</title><path d="M2,15.281c1.918,0,2.11-1.055,2.11-1.918a17.119,17.119,0,0,0-.192-2.205,18.723,18.723,0,0,1-.192-2.205c0-2.4,1.63-3.452,3.836-3.452h.575V6.938H7.658c-1.534,0-2.11.767-2.11,2.205a14.412,14.412,0,0,0,.192,1.918,14.306,14.306,0,0,1,.192,2.014c0,1.726-.671,2.493-1.918,2.877v.1c1.151.288,1.918,1.151,1.918,2.877a14.306,14.306,0,0,1-.192,2.014,13,13,0,0,0-.192,1.918c0,1.438.575,2.3,2.11,2.3h.479V26.6H7.562c-2.205,0-3.836-.959-3.836-3.644a18.723,18.723,0,0,1,.192-2.205,15.68,15.68,0,0,0,.192-2.11c0-.863-.288-1.918-2.11-1.918Z" style="fill:#c41718"/><path d="M9.479,18.062,8.233,21.8H6.6L10.63,9.911h1.822L16.479,21.8H14.945L13.7,18.062Zm3.932-1.151L12.26,13.459a9.364,9.364,0,0,1-.575-2.205h0c-.192.671-.384,1.438-.575,2.11L9.959,16.815h3.452Z" style="fill:#c41718"/><path d="M17.918,19.979a5.941,5.941,0,0,0,2.781.767c1.534,0,2.493-.863,2.493-2.014s-.671-1.726-2.205-2.4c-1.918-.671-3.164-1.726-3.164-3.356,0-1.822,1.534-3.26,3.836-3.26a5.135,5.135,0,0,1,2.589.575l-.384,1.247a5.519,5.519,0,0,0-2.3-.479c-1.63,0-2.205.959-2.205,1.822,0,1.151.767,1.63,2.4,2.3,2.014.767,3.068,1.726,3.068,3.452,0,1.822-1.342,3.452-4.123,3.452a5.807,5.807,0,0,1-3.068-.767Z" style="fill:#c41718"/><path d="M30,16.623c-1.918,0-2.11,1.151-2.11,1.918a15.68,15.68,0,0,0,.192,2.11,15.738,15.738,0,0,1,.192,2.205c0,2.685-1.63,3.644-3.836,3.644h-.575V25.062h.479c1.438,0,2.11-.863,2.11-2.3a13,13,0,0,0-.192-1.918,14.306,14.306,0,0,1-.192-2.014c0-1.726.767-2.589,1.918-2.877v-.1c-1.151-.288-1.918-1.151-1.918-2.877a14.306,14.306,0,0,1,.192-2.014,13,13,0,0,0,.192-1.918c0-1.438-.575-2.205-2.11-2.3h-.479V5.4h.575c2.205,0,3.836,1.055,3.836,3.452a17.119,17.119,0,0,1-.192,2.205,17.119,17.119,0,0,0-.192,2.205c0,.959.288,1.918,2.11,1.918Z" style="fill:#c41718"/></svg>
|
After Width: | Height: | Size: 1.8 KiB |
1
frontend/public/icons/file_type_ai.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_ai</title><path d="M3.169,3.517H28.835V28.483H3.169Z" style="fill:#1c0a00"/><path d="M3.169,3.517H28.835V28.483H3.169ZM2,29.65H30V2.35H2Zm18.34-17.57c0-.093.035-.14.14-.14h1.832c.093,0,.14.035.14.14v9.205c0,.093-.023.14-.14.14H20.505c-.117,0-.152-.058-.152-.152V12.08h-.012Zm-.128-2.648a1.19,1.19,0,0,1,2.38,0,1.115,1.115,0,0,1-1.213,1.19A1.1,1.1,0,0,1,20.214,9.432Zm-5.25,6.487c-.327-1.3-1.1-4.118-1.388-5.483h-.023c-.245,1.365-.863,3.675-1.353,5.483Zm-3.243,1.89-.922,3.5c-.023.093-.058.117-.175.117H8.909c-.117,0-.14-.035-.117-.175l3.313-11.6a3.779,3.779,0,0,0,.117-.968c0-.082.035-.117.093-.117h2.45c.082,0,.117.023.14.117l3.71,12.588c.023.093,0,.152-.093.152H16.585c-.093,0-.152-.023-.175-.1l-.957-3.512H11.72Z" style="fill:#ff7f18"/></svg>
|
After Width: | Height: | Size: 822 B |
1
frontend/public/icons/file_type_ai2.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_ai2</title><path d="M24.037,2.072h0l5.564,5.8V29.928H8.814V30H29.67V7.945L24.037,2.072" style="fill:#909090"/><path d="M23.965,2H8.742V29.928H29.6V7.873L23.965,2" style="fill:#231612"/><path d="M23.893,2.072V7.946h5.633L23.893,2.072" style="fill:#4c4442"/><path d="M23.965,2V7.873H29.6L23.965,2Z" style="fill:#f36617"/><path d="M2.384,10.264H8.743V3.432H2.384v6.832Z" style="fill:#909090"/><path d="M8.743,10.264H22.461V3.432H8.743v6.832Z" style="fill:#4c4442"/><path d="M22.407,10.211H2.33V3.379H22.407v6.832" style="fill:#f36617"/><path d="M18.1,20.619c-.275-1.07-.948-3.226-1.223-4.344h-.014c-.206,1.054-.769,2.859-1.181,4.344H18.1Zm-2.775,1.566-.838,2.779c-.014.1-.055.128-.137.128h-1.4c-.1,0-.124-.048-.1-.16.742-2.444,1.992-6.516,2.871-9.279a3.686,3.686,0,0,0,.11-.878.086.086,0,0,1,.082-.1h1.9c.069,0,.082.016.11.08,1.016,3.274,2.129,6.884,3.173,10.19q.041.144-.082.144H19.472c-.069,0-.1-.032-.124-.1l-.879-2.811H15.323" style="fill:#f46c25"/><path d="M22.29,17.547c0-.1.027-.128.094-.128h1.431c.081,0,.108.016.108.128v7.506c0,.08-.027.128-.108.128h-1.4c-.081,0-.121-.032-.121-.144v-7.49ZM22.2,15.374a.918.918,0,0,1,.918-.99.884.884,0,0,1,.891.99.908.908,0,1,1-1.809,0" style="fill:#f46c25"/><path d="M11.238,5.279h-.013L10.9,7.352h.652ZM9.5,9.3,10.56,4.44h1.355L12.948,9.3H11.81l-.15-1.133h-.882L10.634,9.3H9.5" style="fill:#231612"/><path d="M13.438,9.3V4.44h1.086V9.3H13.438" style="fill:#231612"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
frontend/public/icons/file_type_al.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_al</title><path d="M23.425,2.937,30,2.94l0,6.573-1.951-.029L28.07,5.77,18.827,15,11.4,8.656,3.382,16.077,2,14.727l9.379-8.614,7.439,6.116,7.344-7.362-2.73.005-.008-1.935Z" style="fill:#3a96dd"/><path d="M24.365,11.708l1.911-1.884,0,19.227H24.352l.013-17.342Z" style="fill:#3a96dd"/><path d="M9.468,12.7l1.922-1.783-.016,18.148-1.906-.016V12.7Z" style="fill:#3a96dd"/><path d="M13.2,12.5l1.908,1.619L15.1,29.058l-1.911-.008L13.2,12.5Z" style="fill:#3a96dd"/><path d="M20.645,15.583l1.908-2.039.005,15.5-1.927,0,.013-13.467Z" style="fill:#3a96dd"/><path d="M5.742,16.191l1.924-1.826.027,14.682H5.748L5.742,16.191Z" style="fill:#3a96dd"/><path d="M16.918,15.66l1.914,1.64.005,11.748-1.927,0,.008-13.39Z" style="fill:#3a96dd"/></svg>
|
After Width: | Height: | Size: 806 B |
1
frontend/public/icons/file_type_angular.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_angular</title><polygon points="16 2 16 2 16 2 2.966 6.648 4.954 23.882 16 30 16 30 16 30 27.046 23.882 29.034 6.648 16 2" style="fill:#dd0031"/><polygon points="16 2 16 5.108 16 5.094 16 19.276 16 19.276 16 30 16 30 27.046 23.882 29.034 6.648 16 2" style="fill:#c3002f"/><path d="M16,5.094,7.852,23.364H10.89l1.638-4.088h6.916l1.638,4.088H24.12L16,5.094Zm2.38,11.662H13.62L16,11.03Z" style="fill:#fff"/></svg>
|
After Width: | Height: | Size: 487 B |
1
frontend/public/icons/file_type_ansible.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_ansible</title><path d="M16,29.951a13.952,13.952,0,1,1,.193-27.9A13.951,13.951,0,0,1,16,29.951Zm-2.221-13.13c.1.1.1.1.193.1C16,18.559,18.027,20.1,19.958,21.745a10.928,10.928,0,0,0,1.255.965.99.99,0,0,0,1.545-.676,1.643,1.643,0,0,0-.1-.676L18.9,12.38c-.579-1.352-1.159-2.8-1.738-4.151a.87.87,0,0,0-.579-.579c-.579-.193-.965.1-1.255.676-2.027,4.731-3.958,9.558-5.986,14.289,0,.1-.1.193-.1.29h1.931c.193,0,.193-.1.29-.193.386-.869.676-1.834,1.062-2.7A31.234,31.234,0,0,1,13.779,16.821Z"/><path d="M13.779,16.821c-.386,1.062-.869,2.124-1.255,3.186-.386.869-.772,1.834-1.062,2.7a.355.355,0,0,1-.29.1H9.242c0-.1.1-.193.1-.29,2.027-4.731,3.958-9.558,5.986-14.289.29-.579.676-.869,1.255-.676a.87.87,0,0,1,.579.579c.579,1.352,1.159,2.8,1.738,4.151l3.765,8.979a2.978,2.978,0,0,1,.1.869.99.99,0,0,1-1.545.676,14.191,14.191,0,0,1-1.255-.965c-2.027-1.641-4.055-3.186-5.986-4.827C13.876,16.821,13.876,16.821,13.779,16.821Zm2.51-6.275c-.579,1.545-1.159,2.993-1.834,4.441-.1.1,0,.193.1.29C16,16.435,17.448,17.5,18.9,18.656c.29.193.579.483.869.676h0C18.607,16.435,17.448,13.539,16.29,10.546Z" style="fill:#fff"/><path d="M16.29,10.546c1.159,2.993,2.414,5.889,3.572,8.786h0c-.29-.193-.579-.483-.869-.676-1.448-1.159-2.9-2.221-4.344-3.379-.1-.1-.193-.1-.1-.29C15.035,13.539,15.614,12.091,16.29,10.546Z"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
1
frontend/public/icons/file_type_antlr.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_antlr</title><path d="M14.177,7.278a2.08,2.08,0,0,1,3.041-.8A3.571,3.571,0,0,1,18.2,8.022c1.356,3.122,2.9,6.165,4.119,9.345.645,1.5,1.429,2.938,1.994,4.468a1.455,1.455,0,0,1-2.258,1.376c-2.8-1.572-5.628-3.094-8.385-4.731,2.009.008,4.018-.008,6.025.013a19.707,19.707,0,0,0-1.288-2.918c-.781-1.858-1.6-3.7-2.358-5.565a9.783,9.783,0,0,0-1.032,2.125c-1.3,3.182-2.87,6.241-4.136,9.435-.281.59-.424,1.344-1.035,1.69a1.447,1.447,0,0,1-2.094-.738c-.241-.61.151-1.2.382-1.743.779-1.725,1.645-3.413,2.283-5.2C11.65,12.8,12.916,10.041,14.177,7.278Z" style="fill:#fefefe"/><path d="M13.817,2.2A13.923,13.923,0,0,1,29.526,12.549a13.733,13.733,0,0,1-2.082,11.519A14.074,14.074,0,0,1,7.738,27.293a13.852,13.852,0,0,1-5.615-9.483A14.152,14.152,0,0,1,3.451,9.85,13.961,13.961,0,0,1,13.817,2.2m.359,5.08c-1.261,2.762-2.526,5.525-3.762,8.3-.638,1.786-1.5,3.473-2.283,5.2-.231.542-.623,1.133-.382,1.743a1.447,1.447,0,0,0,2.094.738c.61-.347.753-1.1,1.035-1.69,1.266-3.194,2.833-6.253,4.136-9.435a9.783,9.783,0,0,1,1.032-2.125c.756,1.868,1.577,3.707,2.358,5.565a19.707,19.707,0,0,1,1.288,2.918c-2.007-.02-4.016-.005-6.025-.013,2.757,1.637,5.588,3.159,8.385,4.731a1.455,1.455,0,0,0,2.258-1.376c-.565-1.529-1.349-2.971-1.994-4.468-1.22-3.179-2.762-6.223-4.119-9.345a3.571,3.571,0,0,0-.982-1.544A2.08,2.08,0,0,0,14.177,7.278Z" style="fill:#e44a32"/></svg>
|
After Width: | Height: | Size: 1.4 KiB |
1
frontend/public/icons/file_type_anyscript.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_anyscript</title><path d="M19.666,11.545H18.305a.333.333,0,0,0-.182.078.225.225,0,0,0-.078.182L18.1,19.69l-3.679-7.97c-.02-.059-.033-.117-.091-.13-.02-.046-.072-.046-.13-.046H12.484a.295.295,0,0,0-.26.26v10.77a.319.319,0,0,0,.091.189.189.189,0,0,0,.169.072h1.38a.24.24,0,0,0,.182-.072.391.391,0,0,0,.078-.189l-.078-7.846,3.685,7.964c0,.046.059.072.072.085a.293.293,0,0,0,.163.059h1.7a.215.215,0,0,0,.182-.072.266.266,0,0,0,.078-.189V11.8a.225.225,0,0,0-.078-.182.3.3,0,0,0-.182-.078" style="fill:#96092b"/><path d="M5.327,17l1.25-5.17L7.789,17Zm.26-8.244a.348.348,0,0,0-.1.156L2,22.574v.163a.319.319,0,0,1,.02.046.252.252,0,0,0,.163.091l1.361.391c.039,0,.072.033.13,0a.189.189,0,0,0,.13-.072.148.148,0,0,0,.059-.117L4.9,18.745H8.238l1.055,4.33a.229.229,0,0,0,.039.117.159.159,0,0,0,.13.072.1.1,0,0,0,.13,0l1.354-.358a.376.376,0,0,0,.15-.124.313.313,0,0,0,.052-.208L7.658,8.913a.339.339,0,0,0-.1-.156A.334.334,0,0,0,7.4,8.711H5.731a.208.208,0,0,0-.143.046" style="fill:#96092b"/><path d="M22.948,11.414a.669.669,0,0,0-.15-.13.217.217,0,0,0-.2.046l-1.3.664a.165.165,0,0,0-.13.15.209.209,0,0,0,.039.208l3.438,6.153v4.07a.287.287,0,0,0,.072.189.2.2,0,0,0,.169.072h1.38a.24.24,0,0,0,.182-.072.266.266,0,0,0,.078-.189v-4.07l3.458-6.153a.317.317,0,0,0,.02-.13.289.289,0,0,0-.02-.13.269.269,0,0,0-.111-.1l-1.3-.664a.193.193,0,0,0-.189-.046c-.072.046-.13.059-.15.13l-2.637,5.1Z" style="fill:#96092b"/><path d="M25.515,10.3a1.469,1.469,0,1,0,1.335,2.222A1.483,1.483,0,0,0,25.515,10.3Z" style="fill:#fff"/><path d="M25.592,10.49a1.269,1.269,0,0,0-.912.371,1.325,1.325,0,0,0-.358.892,1.246,1.246,0,0,0,.358.912,1.212,1.212,0,0,0,.912.391,1.267,1.267,0,0,0,1.263-1.3,1.235,1.235,0,0,0-1.263-1.263" style="fill:#a7a6a6"/></svg>
|
After Width: | Height: | Size: 1.7 KiB |
1
frontend/public/icons/file_type_apache.svg
Normal file
After Width: | Height: | Size: 6.9 KiB |
1
frontend/public/icons/file_type_apex.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_apex</title><path d="M13.652,8.338A4.906,4.906,0,0,1,17.2,6.814a4.957,4.957,0,0,1,4.32,2.56,5.972,5.972,0,0,1,2.442-.519,6.089,6.089,0,1,1-1.189,12.06,4.412,4.412,0,0,1-5.782,1.816A5.034,5.034,0,0,1,7.634,22.5a4.646,4.646,0,0,1-.96.1,4.732,4.732,0,0,1-2.337-8.812,5.438,5.438,0,0,1,9.315-5.453" style="fill:#0f9bd7"/><path d="M25.376,30.966h-.561a4.658,4.658,0,0,1-1.284-.137,1.9,1.9,0,0,1-.818-.482,1.726,1.726,0,0,1-.455-.843,6.77,6.77,0,0,1-.106-1.413,5.889,5.889,0,0,0-.084-1.33,1,1,0,0,0-.3-.544,1.223,1.223,0,0,0-.66-.179l-.236-.014V24.145l.236-.014a1.482,1.482,0,0,0,.549-.1.706.706,0,0,0,.273-.264,1.394,1.394,0,0,0,.181-.529,6.683,6.683,0,0,0,.044-.939,8.132,8.132,0,0,1,.112-1.643,1.7,1.7,0,0,1,.448-.841,2.144,2.144,0,0,1,.906-.492,4.514,4.514,0,0,1,1.2-.116h.561v1.9h-.25a2.589,2.589,0,0,0-.743.056.284.284,0,0,0-.148.117.839.839,0,0,0-.054.386q0,.372-.053,1.413a3.74,3.74,0,0,1-.166,1.009,1.945,1.945,0,0,1-.693,1,2.01,2.01,0,0,1,.7,1.044,4.627,4.627,0,0,1,.163,1.079c.027.657.041,1.074.041,1.256a.871.871,0,0,0,.057.408A.343.343,0,0,0,24.4,29a2.382,2.382,0,0,0,.728.06h.25Z" style="fill:#fff"/><path d="M21.118,25.788V24.382a1.752,1.752,0,0,0,.645-.129.936.936,0,0,0,.375-.354,1.621,1.621,0,0,0,.217-.624A6.88,6.88,0,0,0,22.4,22.3a8,8,0,0,1,.105-1.585,1.456,1.456,0,0,1,.381-.721,1.9,1.9,0,0,1,.8-.431,4.336,4.336,0,0,1,1.125-.105h.311v1.4a2.876,2.876,0,0,0-.835.073.53.53,0,0,0-.272.223,1.079,1.079,0,0,0-.088.513q0,.369-.053,1.4a3.531,3.531,0,0,1-.152.94,1.918,1.918,0,0,1-.313.595,2.47,2.47,0,0,1-.583.486,2.045,2.045,0,0,1,.565.466,1.869,1.869,0,0,1,.337.647,4.41,4.41,0,0,1,.152,1.02q.041.973.041,1.242a1.1,1.1,0,0,0,.094.539.584.584,0,0,0,.284.231,2.649,2.649,0,0,0,.823.079v1.406h-.311A4.474,4.474,0,0,1,23.6,30.59a1.644,1.644,0,0,1-.712-.419,1.478,1.478,0,0,1-.39-.724,6.621,6.621,0,0,1-.1-1.356,6.374,6.374,0,0,0-.094-1.4,1.232,1.232,0,0,0-.39-.671A1.431,1.431,0,0,0,21.118,25.788Z" style="fill:#0072a0"/><path d="M27.011,30.966H26.45V29.059h.25A2.329,2.329,0,0,0,27.426,29a.323.323,0,0,0,.165-.127.812.812,0,0,0,.058-.379q0-.36.05-1.375a3.725,3.725,0,0,1,.173-1.047,2.223,2.223,0,0,1,.387-.7,2.145,2.145,0,0,1,.3-.292,2.141,2.141,0,0,1-.4-.4,2.612,2.612,0,0,1-.421-1.092,17.525,17.525,0,0,1-.1-1.841,1.357,1.357,0,0,0-.053-.479c-.008-.016-.031-.062-.136-.106a2.524,2.524,0,0,0-.757-.06h-.25V19.2h.561a4.793,4.793,0,0,1,1.283.133,1.841,1.841,0,0,1,.818.485,1.781,1.781,0,0,1,.453.843,6.6,6.6,0,0,1,.109,1.414,6.359,6.359,0,0,0,.079,1.336.992.992,0,0,0,.3.537,1.226,1.226,0,0,0,.664.18l.236.014v1.879l-.236.014a1.482,1.482,0,0,0-.549.1.686.686,0,0,0-.27.262,1.484,1.484,0,0,0-.186.534,6.743,6.743,0,0,0-.043.931,8.383,8.383,0,0,1-.108,1.644,1.694,1.694,0,0,1-.446.846,2.143,2.143,0,0,1-.913.492A4.5,4.5,0,0,1,27.011,30.966Z" style="fill:#fff"/><path d="M30.708,25.788a1.752,1.752,0,0,0-.645.129.918.918,0,0,0-.372.354,1.725,1.725,0,0,0-.22.624,6.82,6.82,0,0,0-.047.973,8.27,8.27,0,0,1-.1,1.588,1.439,1.439,0,0,1-.378.724,1.9,1.9,0,0,1-.809.431,4.336,4.336,0,0,1-1.125.105H26.7V29.31a2.652,2.652,0,0,0,.82-.079A.572.572,0,0,0,27.8,29,1.05,1.05,0,0,0,27.9,28.5q0-.357.05-1.365a3.53,3.53,0,0,1,.158-.976,1.976,1.976,0,0,1,.343-.621A2.038,2.038,0,0,1,29,25.085a2.416,2.416,0,0,1-.633-.551,2.339,2.339,0,0,1-.375-.984,17.564,17.564,0,0,1-.094-1.8,1.571,1.571,0,0,0-.079-.586.487.487,0,0,0-.264-.226,2.8,2.8,0,0,0-.853-.079v-1.4h.311a4.576,4.576,0,0,1,1.213.123,1.587,1.587,0,0,1,.709.419,1.529,1.529,0,0,1,.39.727,6.436,6.436,0,0,1,.1,1.356,6.842,6.842,0,0,0,.088,1.4,1.223,1.223,0,0,0,.393.671,1.447,1.447,0,0,0,.8.231Z" style="fill:#0072a0"/></svg>
|
After Width: | Height: | Size: 3.6 KiB |
1
frontend/public/icons/file_type_apib.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_apib</title><path d="M18.053,12.267l4.76,7.467.373.56,1.12-.653-.373-.56-4.76-7.467L18.8,10.96l-1.12.653.373.653Zm-5.227-.747-4.76,7.467-.373.56,1.12.653.373-.467,4.76-7.467.373-.56L13.2,10.96l-.373.56Z" style="fill:#a0b3c1"/><path d="M16,13.107A4.979,4.979,0,0,0,20.947,8.16,5.061,5.061,0,0,0,16,3.12a4.979,4.979,0,0,0-4.947,4.947A5.061,5.061,0,0,0,16,13.107ZM16,11.8a3.644,3.644,0,0,1-3.64-3.64,3.64,3.64,0,1,1,7.28,0A3.644,3.644,0,0,1,16,11.8Z" style="fill:#a0b3c1"/><path d="M25.053,28.88a4.947,4.947,0,1,0-4.947-4.947A4.979,4.979,0,0,0,25.053,28.88Zm0-1.307a3.644,3.644,0,0,1-3.64-3.64,3.64,3.64,0,1,1,7.28,0A3.644,3.644,0,0,1,25.053,27.573Z" style="fill:#a0b3c1"/><path d="M6.947,28.88a4.947,4.947,0,1,0,0-9.893,4.947,4.947,0,1,0,0,9.893Zm0-1.307a3.644,3.644,0,0,1-3.64-3.64,3.706,3.706,0,0,1,3.64-3.64,3.706,3.706,0,0,1,3.64,3.64A3.644,3.644,0,0,1,6.947,27.573Z" style="fill:#a0b3c1"/><circle cx="6.947" cy="23.933" r="1.68" style="fill:#5e9cff"/></svg>
|
After Width: | Height: | Size: 1.0 KiB |
1
frontend/public/icons/file_type_apib2.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_apib2</title><path d="M18.053,12.267l4.76,7.467.373.56,1.12-.653-.373-.56-4.76-7.467L18.8,10.96l-1.12.653.373.653Zm-5.227-.747-4.76,7.467-.373.56,1.12.653.373-.467,4.76-7.467.373-.56L13.2,10.96l-.373.56Z" style="fill:#5e9cff"/><path d="M16,13.107A4.979,4.979,0,0,0,20.947,8.16,5.061,5.061,0,0,0,16,3.12a4.979,4.979,0,0,0-4.947,4.947A5.061,5.061,0,0,0,16,13.107ZM16,11.8a3.644,3.644,0,0,1-3.64-3.64,3.64,3.64,0,1,1,7.28,0A3.644,3.644,0,0,1,16,11.8Z" style="fill:#5e9cff"/><path d="M25.053,28.88a4.947,4.947,0,1,0-4.947-4.947A4.979,4.979,0,0,0,25.053,28.88Zm0-1.307a3.644,3.644,0,0,1-3.64-3.64,3.64,3.64,0,1,1,7.28,0A3.644,3.644,0,0,1,25.053,27.573Z" style="fill:#5e9cff"/><path d="M6.947,28.88a4.947,4.947,0,1,0,0-9.893,4.947,4.947,0,1,0,0,9.893Zm0-1.307a3.644,3.644,0,0,1-3.64-3.64,3.706,3.706,0,0,1,3.64-3.64,3.706,3.706,0,0,1,3.64,3.64A3.644,3.644,0,0,1,6.947,27.573Z" style="fill:#5e9cff"/><circle cx="6.947" cy="23.933" r="1.68" style="fill:#fff"/></svg>
|
After Width: | Height: | Size: 1.0 KiB |
1
frontend/public/icons/file_type_applescript.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_applescript</title><path d="M17.181,4.437A5.993,5.993,0,0,1,21.579,2a5.979,5.979,0,0,1-1.447,4.476,4.729,4.729,0,0,1-4.17,1.961A5.2,5.2,0,0,1,17.181,4.437Z" style="fill:#a8c2ab"/><path d="M16.2,10.034c.946,0,2.7-1.3,4.989-1.3a6.249,6.249,0,0,1,5.484,2.8,6.08,6.08,0,0,0-3.028,5.3,6.235,6.235,0,0,0,3.772,5.7s-2.637,7.422-6.2,7.422c-1.636,0-2.908-1.1-4.631-1.1-1.757,0-3.5,1.144-4.635,1.144C8.7,30,4.587,22.959,4.587,17.3c0-5.568,3.478-8.489,6.74-8.489C13.448,8.811,15.093,10.034,16.2,10.034Z" style="fill:#a8c2ab"/></svg>
|
After Width: | Height: | Size: 598 B |
1
frontend/public/icons/file_type_appveyor.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_appveyor</title><path d="M15.958,2a14,14,0,0,1,.091,28h-.091a14,14,0,0,1,0-28Z" style="fill:#00b3e0"/><path d="M11.971,27.829l5.346-5.165a6.515,6.515,0,0,1-5.709-1.269,6.744,6.744,0,0,1-2.447-6.162l-4.8,5.256a9.265,9.265,0,0,1-.815-3.353l8.427-6.615a7.068,7.068,0,0,1,8.427,0,6.849,6.849,0,0,1,1.269,9.152L15.5,28.463a11.6,11.6,0,0,1-3.534-.634Z" style="fill:#fff"/><path d="M19.4,18.676a4.389,4.389,0,1,1-6.887-5.437,4.686,4.686,0,0,1,6.343-.815,4.362,4.362,0,0,1,.544,6.252Z" style="fill:#00b3e0"/></svg>
|
After Width: | Height: | Size: 583 B |
1
frontend/public/icons/file_type_arduino.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><radialGradient id="a" cx="767.179" cy="5169.543" r="14.989" gradientTransform="translate(-718.112 -4953.917) scale(0.955 0.962)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#36bac0"/><stop offset="1" stop-color="#2d9094"/></radialGradient></defs><title>file_type_arduino</title><path d="M29.645,15.925A13.77,13.77,0,1,1,15.876,2.056,13.819,13.819,0,0,1,29.645,15.925Z" style="stroke:#02797e;stroke-linejoin:round;stroke-width:1.1367228454969267px;fill:url(#a)"/><path d="M10.581,11.648c2.41-.076,3.359.834,4.605,2.069.285.282.579.59.9.921l.922-.991a6.223,6.223,0,0,1,3.256-1.93c1.939-.211,3.119-.122,4.311.814a5.023,5.023,0,0,1,2.245,3.9,5.653,5.653,0,0,1-3.25,5.156,5.975,5.975,0,0,1-3.913.135,7.656,7.656,0,0,1-3.541-2.987c-1.678,2.142-3.187,3.253-5.235,3.155-7.452-.354-6.842-10.075-.3-10.247Zm1.657,7.994a9.193,9.193,0,0,0,2.856-2.9c-.74-1.243-2.209-2.824-3.455-3.134a4.328,4.328,0,0,0-3.224.777,3.384,3.384,0,0,0-.762,3.686,3.674,3.674,0,0,0,4.585,1.57Zm-2.98-3.487,3.278.005v1.21l-3.283.005Zm13.448,3.6A3.843,3.843,0,0,0,24.937,17a3.458,3.458,0,0,0-1.863-3.109,3.648,3.648,0,0,0-4.2.728,7.364,7.364,0,0,0-1.649,2.151A8.936,8.936,0,0,0,19.2,19.252,4.022,4.022,0,0,0,22.706,19.754Zm-1.955-2.376-1.088-.008,0-1.217,1.091,0V15.075l1.107-.008-.007,1.093,1.085,0v1.165l-1.021-.008v1.12H20.753Z" style="stroke:#000;stroke-width:0.12103096480927482px;opacity:0.1680999994277954;isolation:isolate"/><path d="M4.917,16.337c0,5.348,7.354,7.34,10.987,1.894,3.765,5.647,10.824,3.28,10.824-1.9S19.7,8.656,15.9,14.441c-3.6-5.719-10.987-3.453-10.987,1.9Zm1.931,0c0-3.86,5.455-5.078,7.992,0-2.588,4.889-7.992,3.859-7.992,0Zm10.119,0c2.286-5.178,7.889-3.751,7.872.008S19.186,21.277,16.967,16.337Z" style="fill:#fff;stroke:#000;stroke-width:0.24206192961854964px"/><rect x="8.898" y="15.795" width="3.237" height="1.067" style="fill:#fff"/><polygon points="20.644 16.846 19.576 16.846 19.576 15.712 20.644 15.712 20.644 14.644 21.779 14.644 21.779 15.712 22.847 15.712 22.847 16.846 21.779 16.846 21.779 17.914 20.644 17.914 20.644 16.846" style="fill:#fff"/></svg>
|
After Width: | Height: | Size: 2.1 KiB |
1
frontend/public/icons/file_type_asp.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_asp</title><path d="M12.786,23.5H9.852L9.01,20.342H5.676l-.8,3.158H2L6.053,8.49H8.619ZM6.555,16.891H8.1L7.32,13.867Z" style="fill:#0088b6"/><path d="M16.742,23.749a3.706,3.706,0,0,1-3.05-1.349,7.1,7.1,0,0,1-1.3-3.909l-.046-.566,2.622-.368.062.5a3.409,3.409,0,0,0,.565,1.693,1.425,1.425,0,0,0,1.169.515,1.454,1.454,0,0,0,1.179-.448,1.36,1.36,0,0,0,.338-.911.919.919,0,0,0-.11-.478,1.251,1.251,0,0,0-.537-.438c-.147-.074-.534-.238-1.524-.592a5.006,5.006,0,0,1-2.355-1.5,5.121,5.121,0,0,1-1.016-3.216,5.536,5.536,0,0,1,.481-2.3,3.553,3.553,0,0,1,1.368-1.6,3.834,3.834,0,0,1,2.042-.527A3.6,3.6,0,0,1,19.6,9.532,5.645,5.645,0,0,1,20.7,13l.014.552-2.651.168L18,13.238a2.26,2.26,0,0,0-.395-1.2,1.274,1.274,0,0,0-1-.353,1.47,1.47,0,0,0-1.11.4.535.535,0,0,0-.15.409.612.612,0,0,0,.152.415,3.877,3.877,0,0,0,1.634.817,7.9,7.9,0,0,1,2.188,1.048,3.917,3.917,0,0,1,1.211,1.61,6.386,6.386,0,0,1,.443,2.517,6.254,6.254,0,0,1-.521,2.542A3.757,3.757,0,0,1,18.98,23.2,4.286,4.286,0,0,1,16.742,23.749Z" style="fill:#0088b6"/><path d="M24.56,23.5h-2.7V8.49h3.5a7.985,7.985,0,0,1,2.41.227,3.122,3.122,0,0,1,1.587,1.555A6.479,6.479,0,0,1,30,13.322a7.047,7.047,0,0,1-.368,2.419A4.29,4.29,0,0,1,28.69,17.3a2.854,2.854,0,0,1-1.142.743,7.929,7.929,0,0,1-2.1.211h-.892Zm0-8.717h.688a3.214,3.214,0,0,0,1.4-.182,1.038,1.038,0,0,0,.434-.482,1.752,1.752,0,0,0,.152-.762,1.616,1.616,0,0,0-.209-.875.946.946,0,0,0-.571-.446,6.032,6.032,0,0,0-1.335-.086h-.563Z" style="fill:#0088b6"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
frontend/public/icons/file_type_aspx.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_aspx</title><polygon points="22.75 2 6.35 2 6.35 30 29.65 30 29.65 9 22.75 2" style="fill:#c5c5c5"/><polygon points="27.35 27.7 8.75 27.7 8.75 4.3 20.45 4.3 20.45 11.3 27.45 11.3 27.45 27.7 27.35 27.7" style="fill:#f5f5f5"/><path d="M12.1,30.994A11.094,11.094,0,1,1,23.194,19.9,11.106,11.106,0,0,1,12.1,30.994Zm0-20.3A9.2,9.2,0,1,0,21.3,19.9,9.216,9.216,0,0,0,12.1,10.7Z" style="fill:#33a9dc"/><rect x="2.099" y="19.455" width="20.003" height="0.89" style="fill:#33a9dc;stroke:#33a9dc;stroke-miterlimit:10"/><path d="M12.325,15.763a31.93,31.93,0,0,1-8.484-1.11l.242-.807a31.374,31.374,0,0,0,15.992,0l.239.807A28.076,28.076,0,0,1,12.325,15.763Z" style="fill:#33a9dc;stroke:#33a9dc;stroke-miterlimit:10"/><path d="M4.1,25.724l-.239-.807a31.652,31.652,0,0,1,16.472,0l-.242.807A31.38,31.38,0,0,0,4.1,25.724Z" style="fill:#33a9dc;stroke:#33a9dc;stroke-miterlimit:10"/><path d="M8.536,29.055A25.438,25.438,0,0,1,8,10.608l.776.331a24.558,24.558,0,0,0,.533,17.783Z" style="fill:#33a9dc;stroke:#33a9dc;stroke-miterlimit:10"/><path d="M15.6,29.055l-.776-.333a24.559,24.559,0,0,0,.531-17.783l.776-.331A25.443,25.443,0,0,1,15.6,29.055Z" style="fill:#33a9dc;stroke:#33a9dc;stroke-miterlimit:10"/><rect x="11.655" y="9.898" width="0.889" height="20.371" style="fill:#33a9dc;stroke:#33a9dc;stroke-miterlimit:10"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
1
frontend/public/icons/file_type_assembly.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><linearGradient id="a" x1="836.63" y1="36.205" x2="843.802" y2="14.48" gradientTransform="translate(525.922 30.249) rotate(180) scale(0.607 0.607)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0"/><stop offset="1" stop-color="#fff" stop-opacity="0.275"/></linearGradient></defs><title>file_type_assembly</title><path d="M16,2c-1.246,3.056-2,5.057-3.391,8.022A21.884,21.884,0,0,0,16.2,13.156a14.858,14.858,0,0,1-4-2.283C10.43,14.579,7.646,19.855,2,30c5.186-2.994,9.012-4.648,12.691-4.966V24.2h-.834v-.837h.834V24.2h1.675V22.521H14.691v-.834h-.834V20.013h.834v-.834h1.675v.834H17.2v.837h-.837v-.837H14.691v1.675h1.675v.834H17.2V24.2h-.837v.783c3.98.1,8.006,1.772,13.634,5.021-.863-1.589-1.636-3.021-2.372-4.385a25.526,25.526,0,0,0-4.833-3.333A14.436,14.436,0,0,1,26.65,23.8C19.17,9.872,18.565,8.02,16,2ZM10.511,19.179h1.671v.834h.837v5.021h-.837V22.521H10.511v2.512H9.673V20.013h.837Zm0,.834v1.675h1.671V20.013Zm7.526-.834h.837v.834h.837v.837h.834v-.837h.837v-.834h.837v5.855h-.837V20.85h-.837v.837h-.834V20.85h-.837v4.184h-.837Z" style="fill:#0000bf"/><path d="M23.881,18.642c-6.069-8.237-7.476-14.876-7.832-16.461A175.217,175.217,0,0,0,23.881,18.642Z" style="fill:#fff;fill-opacity:0.165680468082428"/><path d="M16.051,2.12,15.6,3.227c-.159.391-.311.765-.461,1.131s-.3.724-.448,1.077-.3.7-.448,1.053-.3.706-.465,1.066-.329.729-.506,1.111-.362.778-.561,1.193c-.028.057-.061.123-.089.181A21.872,21.872,0,0,0,16.2,13.156a14.879,14.879,0,0,1-3.989-2.276l-.14.287c-.065.133-.144.283-.212.42l-.106.219c-.878,1.793-2.006,3.984-3.524,6.822,3.551-2,7.381-4.887,14.338-2.4-.349-.661-.67-1.28-.971-1.863s-.581-1.128-.841-1.644-.5-1-.725-1.463-.433-.9-.629-1.313-.38-.818-.554-1.2-.339-.754-.5-1.118S18.047,6.9,17.9,6.546s-.291-.709-.434-1.066c-.036-.091-.073-.186-.109-.277C16.949,4.247,16.536,3.258,16.051,2.12Z" style="fill:url(#a)"/></svg>
|
After Width: | Height: | Size: 1.9 KiB |
1
frontend/public/icons/file_type_audio.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_audio</title><path d="M17.229,4a.9.9,0,0,0-.569.232l-7.6,6.32a1.158,1.158,0,0,1-.955.328H3.208A1.2,1.2,0,0,0,2,12.088v7.826A1.2,1.2,0,0,0,3.208,21.12H8.1a1.158,1.158,0,0,1,.955.328l7.6,6.32c.521.433,1.081.224,1.081-.289V4.522A.494.494,0,0,0,17.229,4ZM27,6.3,25.209,8.093a14.708,14.708,0,0,1,0,15.844l1.785,1.776A17.19,17.19,0,0,0,27,6.3Zm-4.333,4.323L20.905,12.4a6.035,6.035,0,0,1,0,7.237l1.756,1.756a8.554,8.554,0,0,0,.01-10.769Z" style="fill:#00007f"/></svg>
|
After Width: | Height: | Size: 537 B |
1
frontend/public/icons/file_type_aurelia.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><linearGradient id="a" x1="-73.299" y1="-36.757" x2="-69.112" y2="-40.601" gradientTransform="matrix(7.886, 0, 0, -8.589, 578.084, -327.095)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#c06fbb"/><stop offset="1" stop-color="#6e4d9b"/></linearGradient><linearGradient id="b" x1="-75.72" y1="-29.976" x2="-76.857" y2="-28.423" gradientTransform="matrix(15.701, 0, 0, -16.956, 1213.064, -480.525)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#6e4d9b"/><stop offset="0.14" stop-color="#77327a"/><stop offset="0.29" stop-color="#b31777"/><stop offset="0.84" stop-color="#cd0f7e"/><stop offset="1" stop-color="#ed2c89"/></linearGradient><linearGradient id="c" x1="-74.781" y1="-34.695" x2="-70.958" y2="-40.015" gradientTransform="matrix(8.637, 0, 0, -7.94, 632.817, -284.546)" xlink:href="#a"/><linearGradient id="d" x1="-3.96" y1="41.901" x2="31.012" y2="13.213" gradientTransform="matrix(1, 0, 0, 1, 0, 0)" xlink:href="#a"/><linearGradient id="e" x1="-72.241" y1="-41.388" x2="-69.334" y2="-43.773" gradientTransform="matrix(6.504, 0, 0, -6.517, 478.263, -265.393)" xlink:href="#a"/><linearGradient id="f" x1="-74.154" y1="-34.519" x2="-70.411" y2="-37.816" gradientTransform="matrix(10.02, 0, 0, -10.013, 732.69, -346.247)" xlink:href="#a"/><linearGradient id="g" x1="-74.562" y1="-31.575" x2="-75.704" y2="-30.013" gradientTransform="matrix(15.678, 0, 0, -16.922, 1195.287, -503.63)" xlink:href="#b"/><linearGradient id="h" x1="-73.124" y1="-36.529" x2="-68.938" y2="-41.164" gradientTransform="matrix(7.887, 0, 0, -8.589, 578.148, -327.094)" xlink:href="#a"/><linearGradient id="i" x1="-78.108" y1="-25.063" x2="-77.58" y2="-24.54" gradientTransform="matrix(37.627, 7.508, 7.477, -37.474, 3130.474, -328.745)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#6e4d9b"/><stop offset="0.14" stop-color="#77327a"/><stop offset="0.53" stop-color="#b31777"/><stop offset="0.79" stop-color="#cd0f7e"/><stop offset="1" stop-color="#ed2c89"/></linearGradient></defs><title>file_type_aurelia</title><path d="M20.336,7.408l-2.6,1.734L15.06,5.131l2.6-1.734,2.677,4.012Z" style="fill:url(#a)"/><path d="M22.449,19.461l4.44,6.654L21.6,29.644l-4.44-6.654-.775-1.161,5.289-3.53.775,1.161Z" style="fill:url(#b)"/><path d="M15.787,23.907l.978,1.465-4.026,2.687-1.752-2.626.88-.587,3.147-2.1.775,1.161Z" style="fill:url(#c)"/><polygon points="24.648 16.316 25.777 15.562 27.529 18.188 24.93 19.922 23.953 18.457 25.423 17.476 24.648 16.316 24.648 16.316" style="fill:url(#d)"/><polygon points="23.953 18.457 23.178 17.296 24.648 16.316 25.423 17.476 23.953 18.457 23.953 18.457" style="fill:url(#e)"/><path d="M6.424,16.692l-.879.587L2.868,13.267,6.894,10.58,8.77,13.393l-3.146,2.1,3.146-2.1.8,1.2-3.147,2.1Z" style="fill:url(#f)"/><path d="M15.432,8.947l.8,1.2-5.289,3.53-.8-1.2-4.4-6.591,5.289-3.53,4.4,6.591Z" style="fill:url(#g)"/><path d="M19.207,8.162l-1.47.981-.8-1.2L15.06,5.131l2.6-1.734,2.677,4.012-1.129.754Z" style="fill:url(#h)"/><path d="M12.64,26.006l-.775-1.161,3.147-2.1.775,1.161-3.146,2.1Z" style="fill:#714896"/><path d="M23.953,18.457,23.178,17.3l1.47-.981.775,1.161-1.47.981Z" style="fill:#6f4795"/><path d="M6.424,16.692l-.8-1.2,3.146-2.1.8,1.2-3.147,2.1Z" style="fill:#88519f"/><path d="M17.737,9.143l-.8-1.2,1.47-.981.8,1.2-1.47.981Z" style="fill:#85509e"/><path d="M22.449,19.461l-5.289,3.53-.775-1.161,5.289-3.53.775,1.161Z" style="fill:#8d166a"/><path d="M15.432,8.947l.8,1.2-5.289,3.53-.8-1.2,5.289-3.53Z" style="fill:#a70d6f"/><rect x="3.776" y="8.336" width="1.799" height="1.799" transform="translate(-4.34 4.149) rotate(-33.716)" style="fill:#9e61ad"/><rect x="9.168" y="26.271" width="1.799" height="1.799" transform="translate(-13.388 10.158) rotate(-33.716)" style="fill:#8053a3"/><path d="M6.38,27.43,2,20.813,25.407,5.157,30,11.668,6.38,27.43Z" style="fill:url(#i)"/></svg>
|
After Width: | Height: | Size: 3.9 KiB |
1
frontend/public/icons/file_type_autohotkey.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><linearGradient id="a" x1="54.604" y1="168.388" x2="54.604" y2="194.885" gradientTransform="translate(-38.604 -165.636)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d8d8d8"/><stop offset="1" stop-color="#a3a3a3"/></linearGradient><linearGradient id="b" x1="68.756" y1="209.152" x2="91.638" y2="209.152" gradientTransform="translate(-50.601 -159.449) scale(0.832 0.837)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#d7d7d7"/><stop offset="0.5" stop-color="#e7e7e7"/><stop offset="1" stop-color="#d7d7d7"/></linearGradient></defs><title>file_type_autohotkey</title><rect x="2" y="2.824" width="28" height="26.353" rx="3.088" ry="3.088" style="fill:url(#a)"/><path d="M26.856,29.181H5.144A3.148,3.148,0,0,1,2,26.037V5.963A3.148,3.148,0,0,1,5.144,2.819H26.856A3.148,3.148,0,0,1,30,5.963V26.037A3.148,3.148,0,0,1,26.856,29.181ZM5.144,2.963a3,3,0,0,0-3,3h0V26.037a3,3,0,0,0,3,3H26.856a3,3,0,0,0,3-3V5.963a3,3,0,0,0-3-3Z" style="fill:#8d8d8d"/><rect x="4.313" y="4.641" width="23.169" height="21.94" rx="2.571" ry="2.571" style="fill:url(#b)"/><path d="M24.911,26.641H6.884A2.634,2.634,0,0,1,4.253,24.01V7.212A2.634,2.634,0,0,1,6.884,4.581H24.911a2.634,2.634,0,0,1,2.631,2.631v16.8A2.634,2.634,0,0,1,24.911,26.641ZM6.884,4.7A2.514,2.514,0,0,0,4.373,7.212v16.8a2.514,2.514,0,0,0,2.511,2.511H24.911a2.514,2.514,0,0,0,2.511-2.511V7.212A2.514,2.514,0,0,0,24.911,4.7Z" style="fill:#f8f8f8"/><path d="M6.145,23.9l2.343-6.1h.87l2.5,6.1h-.92l-.712-1.848H7.673L7,23.9ZM7.9,21.4H9.974l-.637-1.7q-.291-.77-.433-1.265A7.776,7.776,0,0,1,8.576,19.6Z"/><path d="M13.607,23.9V17.8h.807v2.5h3.171V17.8h.807v6.1h-.807V21.021h-3.17V23.9Z"/><path d="M20.478,23.9V17.8h.807v3.025l3.03-3.025h1.094L22.85,20.267,25.522,23.9H24.456l-2.172-3.088-1,.974V23.9Z"/></svg>
|
After Width: | Height: | Size: 1.8 KiB |
1
frontend/public/icons/file_type_autoit.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_autoit</title><circle cx="16" cy="16" r="12.551" style="fill:#5d83ac"/><path d="M2,16A14,14,0,1,1,16,30,14,14,0,0,1,2,16ZM16,4.789A11.211,11.211,0,1,0,27.211,16,11.211,11.211,0,0,0,16,4.789Z" style="fill:#f0f0f0"/><path d="M24.576,20.156l-6.4-9.264a3.131,3.131,0,0,0-.819-.819,2.36,2.36,0,0,0-2.442.023,3.543,3.543,0,0,0-.812.8L7.533,20.156h3.752l4.808-6.8,1.838,2.71q.26.368.544.789t.5.7q-.368-.031-.865-.031h-3.53l-1.914,2.634Z" style="fill:#f0f0f0"/></svg>
|
After Width: | Height: | Size: 536 B |
1
frontend/public/icons/file_type_avro.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_avro</title><path d="M2,11.649h.025a4.785,4.785,0,0,0,2.911,1.336c2.308.221,4.59-.485,6.9-.326a7.03,7.03,0,0,1,2.68.664c.5-.319.989-.662,1.486-.989.5.327.984.674,1.488.989a6.834,6.834,0,0,1,2.487-.65c1.995-.167,3.967.308,5.957.359a5.2,5.2,0,0,0,4.026-1.383H30v.236c-.178.747-.882,1.176-1.284,1.79a4.948,4.948,0,0,1-.731.791,3.8,3.8,0,0,1-.565.748,2.551,2.551,0,0,0-.594.541,2.181,2.181,0,0,1-.96.749,1.149,1.149,0,0,1-.565.56,6.69,6.69,0,0,1-1.94.184c.723.548,1.5,1.02,2.246,1.535.782.513,1.54,1.061,2.326,1.568H4.089c1.5-1.058,3.057-2.035,4.55-3.1A6.8,6.8,0,0,1,6.7,17.065a1.155,1.155,0,0,1-.569-.562,2.28,2.28,0,0,1-1.043-.86c-.268-.3-.67-.466-.853-.843-.2-.436-.658-.664-.909-1.067-.4-.642-1.137-1.076-1.327-1.846v-.239m2.939,8.528q11.059.009,22.12,0c-3.668-2.51-7.376-4.961-11.059-7.448-3.684,2.487-7.392,4.941-11.061,7.449M4.167,13.2a7.842,7.842,0,0,0,2.84.731c1.163.123,2.341.046,3.5.236a2.7,2.7,0,0,1,1.607.781c.659-.452,1.332-.885,1.987-1.342l.012-.064a5.294,5.294,0,0,0-1.877-.5c-2.693-.316-5.387.712-8.067.16m13.652.356c.688.466,1.382.925,2.07,1.392a2.488,2.488,0,0,1,1.3-.719,19.859,19.859,0,0,1,3.137-.248,9.105,9.105,0,0,0,3.5-.768c-2.582.5-5.168-.409-7.761-.2a6.256,6.256,0,0,0-2.245.545M3.339,13.166a7.264,7.264,0,0,0,2.723,1.3c-.219-.153-.376-.416-.657-.457a7.955,7.955,0,0,1-2.066-.844m23.333.825c-.317.023-.5.3-.733.473a7.232,7.232,0,0,0,2.724-1.3,8.106,8.106,0,0,1-1.991.824m-22.5.126a5.121,5.121,0,0,0,2.589,1.1c-.115-.128-.209-.312-.4-.334a10.459,10.459,0,0,1-2.19-.771m21.467.768c-.189.022-.284.2-.394.336a5.187,5.187,0,0,0,2.6-1.109,10.477,10.477,0,0,1-2.2.773M6.3,14.206a3.243,3.243,0,0,0,2.445.352c-.1-.08-.181-.215-.325-.206q-1.063-.04-2.12-.146m17.351.139c-.171-.019-.291.1-.406.211a3.108,3.108,0,0,0,2.42-.352q-1,.112-2.014.141m-16.741.538a3.669,3.669,0,0,0,2.482.319,1.107,1.107,0,0,0-.281-.376,5.158,5.158,0,0,1-2.2.057m15.7.318a3.678,3.678,0,0,0,2.487-.319,5.127,5.127,0,0,1-2.2-.057,1.1,1.1,0,0,0-.283.376M4.838,14.977a4.11,4.11,0,0,0,2.133.841c-.057-.084-.114-.168-.171-.254a6.948,6.948,0,0,1-1.962-.587m20.361.589-.169.253a4.141,4.141,0,0,0,2.136-.843,7.015,7.015,0,0,1-1.967.59m-18.1-.13a.8.8,0,0,0,.534.31,7.579,7.579,0,0,0,2.037-.073c-.009-.03-.027-.09-.036-.12-.457-.051-.923.074-1.385.047A7.054,7.054,0,0,1,7.1,15.437m16.191.151a6.28,6.28,0,0,0-.913-.041l-.042.126a7.416,7.416,0,0,0,2.045.072.7.7,0,0,0,.522-.331,4.349,4.349,0,0,1-1.613.174m-17.52.327a3.12,3.12,0,0,0,1.754.481c-.065-.24-.334-.2-.523-.236-.419-.041-.816-.186-1.231-.246M25,16.163c-.188.041-.452-.006-.521.232a2.874,2.874,0,0,0,1.732-.482c-.4.079-.8.207-1.211.251M7.735,16.119a1,1,0,0,0,.789.275,9.331,9.331,0,0,0,1.325-.158c-.021-.093-.009-.278-.163-.228a9.983,9.983,0,0,1-1.951.111m14.415.118a8.157,8.157,0,0,0,1.412.154.9.9,0,0,0,.7-.274,9.387,9.387,0,0,1-1.934-.11c-.16-.06-.155.132-.176.23m-15.438.44a1.962,1.962,0,0,0,1.3.181l-.091-.126c-.4.006-.807-.022-1.209-.055m1.615.043a1.03,1.03,0,0,0,.716.294c.179-.125.358-.252.531-.386a5.747,5.747,0,0,1-1.247.092m14.1-.093c.237.144.467.477.782.345.166-.05.369-.089.461-.257a5.271,5.271,0,0,1-1.243-.088m1.713.263a2.007,2.007,0,0,0,1.145-.213,10.269,10.269,0,0,1-1.144.049C23.993,16.667,23.984,16.961,24.138,16.89Z" style="fill:#0040ff"/><path d="M7.435,18.886Q11.719,16.013,16,13.137l9.3,6.244c.221.147.439.3.648.464q-9.947-.01-19.894,0c.443-.344.92-.64,1.383-.958m8.255-5.066c-.457,1.859-.907,3.719-1.375,5.576.52.015,1.041.012,1.562,0q-.013-2.841,0-5.68l-.184.1m-2.5,1.684c.255.859.48,1.728.763,2.579.289-1.238.6-2.471.9-3.707-.55.386-1.114.75-1.668,1.129m3.357-.873c-.006.682,0,1.364,0,2.046a2.1,2.1,0,0,0,1.014-.254c.193-.145.1-.409.011-.586a4.276,4.276,0,0,0-1.024-1.207M18.327,16.4c-.1.544-.666.792-1.151.9.474.7.96,1.389,1.416,2.1.469.024.94.011,1.411.009a1.631,1.631,0,0,1,.16-2.976c-.834-.6-1.7-1.14-2.544-1.727.349.5.831,1.037.708,1.7m-6.822.242c.267.921.529,1.845.794,2.767.44,0,.88.008,1.321-.007-.339-1.161-.685-2.319-1.009-3.484-.385.215-.737.482-1.1.724m8.8.452a.946.946,0,0,0,.057,1.7c.533.09.855-.533.779-.99-.026-.4-.4-.861-.836-.714M7.4,19.4q1.324.018,2.65,0c.256-.7.413-1.468.629-2.2-1.1.715-2.187,1.461-3.279,2.194m14.377-1.9a1.616,1.616,0,0,1-.876,1.9c1.233.018,2.465.015,3.7,0-.934-.644-1.883-1.266-2.822-1.9m-5.223.115c-.01.6,0,1.2,0,1.8.415,0,.831,0,1.248,0-.419-.6-.8-1.219-1.243-1.794m-5.546.941h.346c-.055-.187-.108-.376-.166-.562a3.751,3.751,0,0,0-.181.563m-.18.693c-.015.04-.045.119-.061.159.275-.026.59.071.842-.05C11.453,19.112,11.074,19.275,10.826,19.244Z" style="fill:#0040ff"/></svg>
|
After Width: | Height: | Size: 4.4 KiB |
1
frontend/public/icons/file_type_aws.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_aws</title><path d="M30,19.152v1.273c0,2.307-2.545,4.693-5.648,4.693H7.648C4.506,25.118,2,22.771,2,20.424V19.152Z" style="fill:#9d5125"/><path d="M12.778,6.782A7.112,7.112,0,0,1,19.3,11a3.638,3.638,0,0,1,2.068-.636,3.583,3.583,0,0,1,3.619,3.5A5.69,5.69,0,0,1,30,18.993v.477c0,2.347-2.545,4.693-5.688,4.693H7.648C4.506,24.163,2,21.816,2,19.47v-.477A5.527,5.527,0,0,1,5.619,14.14v-.2A7.129,7.129,0,0,1,12.778,6.782Z" style="fill:#f58535"/><path d="M9,15.095,7.131,21.618H8.244l.438-1.591h1.909l.4,1.591H12.1l-1.75-6.523Zm-.159,4.1.8-3.222h0l.756,3.222Z" style="fill:#fff"/><polygon points="16.795 20.226 16.756 20.226 15.881 15.095 14.767 15.095 13.932 20.186 13.892 20.186 13.017 15.095 11.983 15.095 13.256 21.657 14.449 21.657 15.284 16.726 15.324 16.726 16.159 21.657 17.392 21.657 18.705 15.095 17.631 15.095 16.795 20.226" style="fill:#fff"/><path d="M22.085,18.078l-.716-.239c-.716-.278-.994-.6-.994-1.153a.9.9,0,1,1,1.79,0v.119H23.2v-.159c0-.676-.159-1.71-1.869-1.71A1.8,1.8,0,0,0,19.3,16.805a1.729,1.729,0,0,0,1.392,1.79l.716.239a1.1,1.1,0,0,1,.955,1.153.928.928,0,0,1-.994.955q-1.074,0-1.074-1.193v-.159H19.261v.159a1.786,1.786,0,0,0,1.989,1.989c1.312,0,2.187-.557,2.187-1.949A1.728,1.728,0,0,0,22.085,18.078Z" style="fill:#fff"/></svg>
|
After Width: | Height: | Size: 1.3 KiB |
1
frontend/public/icons/file_type_babel.svg
Normal file
After Width: | Height: | Size: 18 KiB |
1
frontend/public/icons/file_type_babel2.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_babel2</title><path d="M13.016,4.025A26.109,26.109,0,0,1,10.17,5.82V6a.762.762,0,0,0,.281-.11c.123,0,.2.037.2.158l.2-.11h.1v.086A10.967,10.967,0,0,1,8.95,7.58l.11.171h-.1l-.209-.072c0,.062-.086.1-.281.11v.1l.219.243A.781.781,0,0,1,8.4,8.069a1.9,1.9,0,0,0-1.271.942l.11.171a2.611,2.611,0,0,1,.634-.5l.024.267a.851.851,0,0,0-.281.11l.233.342A6.837,6.837,0,0,1,9.3,8.192c.267.072.4.147.4.243h.2a15.493,15.493,0,0,1,4.25-2.3v.185c-.267.391-.439.586-.535.6a.741.741,0,0,0,.134.353,32.729,32.729,0,0,1-1.9,4.815,136.039,136.039,0,0,1-7.364,15.34.725.725,0,0,0,.11.267,2.557,2.557,0,0,0,.942-.353h.11v.185h.185l.206-.142c0,.062.072.086.2.072v.185a1.642,1.642,0,0,1-.318.843,4.395,4.395,0,0,0-.647,1.428V30h.185a11.737,11.737,0,0,0,1.819-2.627,29.214,29.214,0,0,0,5.35-2.017,5.013,5.013,0,0,0,2.822-.966v-.1l-.465.134h-.11v-.1a4.237,4.237,0,0,0,1.872-.61c1.771-1.367,3.1-2.332,4.012-2.908,2.8-2.052,4.117-4.031,3.959-5.911a11.058,11.058,0,0,0-1.846-2.308c-.024-.267.4-.623,1.257-1.113l2.431-2.14a6.315,6.315,0,0,0,.976-3.37L27.484,5.6c-.1-1.086-.88-1.966-2.37-2.637a9.2,9.2,0,0,0-4.721-.942,28.928,28.928,0,0,0-7.366,2Zm2.14,7.682c.185-1,.391-1.575.623-1.709L17.807,5.45c-.024-.281.4-.5,1.295-.647l.294-.024.024.267c.88-.134,1.418-.209,1.624-.233,1.6-.134,2.442.185,2.517.976h.185l-.037-.465h.2a1.217,1.217,0,0,1,.757.952,1.426,1.426,0,0,1-.415.952c-.123,0-.2-.072-.209-.267h-.2l-.048.551c-.818,1.222-1.4,1.846-1.771,1.872q-.495.677-.623.7a11.181,11.181,0,0,1-2.1,1.565,27.388,27.388,0,0,0-4.216,1.637.7.7,0,0,0-.391-.062V13.05a2.263,2.263,0,0,1,.476-1.337Zm-6.6-3.443V8.35a.851.851,0,0,0-.281.11h-.1V8.288Zm5.879-.136.024.267c-.086,0-.209.134-.353.391V8.6a.907.907,0,0,0,.267-.476Zm-.9,1.9.037.366h-.1l-.029-.364Zm-.233.661c-.024.3-.1.465-.267.476h-.1a.934.934,0,0,0,.158-.465Zm-.4.952v.086l-.171.294h-.185V11.94a.243.243,0,0,0,.267-.294h.088Zm-.415.856-.048.452h-.1l-.037-.452Zm2.14,1.367v.171l-.38.037v-.171ZM12.81,16.481A21.476,21.476,0,0,0,18,14.943l.575-.048a3.325,3.325,0,0,1,2.675.685l.037.366c-.439,1.271-.928,2-1.452,2.236l-2.442,1.942a23.881,23.881,0,0,1-2.942,1.808,21.859,21.859,0,0,1-5.4,2.48h-.11c.1-.342,1.38-2.98,3.873-7.942Zm2.637-1.038v.086l-.391.037v-.086Zm-6.083,5.9c-.123.623-.267.942-.391.952v-.086a1.041,1.041,0,0,1,.4-.867Zm2.442,3.445a31.3,31.3,0,0,0,5.839-3.055v.171c0,.072-.267.3-.818.709a14.845,14.845,0,0,0-2.859,1.624c-1.76.61-2.627.99-2.613,1.137a29.423,29.423,0,0,0-3.079,1.356,1.126,1.126,0,0,1-.5-.134.8.8,0,0,1,.428-.781,1.554,1.554,0,0,1,.781.123,7.543,7.543,0,0,1,1.514-.489v-.185l-.575.048a8.223,8.223,0,0,1,1.674-.781l.294-.024V24.6c-.489.037-.77.2-.832.452a.16.16,0,0,0,.2.158,2.362,2.362,0,0,0,.535-.415Zm-3-2.22v.086a.171.171,0,0,1-.171.209v-.086a.182.182,0,0,1,.153-.207Zm4.569,1.246a4.336,4.336,0,0,0-1.308.575h-.1v-.185a1.854,1.854,0,0,0,1.2-.551.183.183,0,0,1,.209.169ZM8.624,25.145l.294-.024v.1a.762.762,0,0,0-.281.11H8.453A.212.212,0,0,1,8.624,25.145Z" style="fill:#f4d44b"/></svg>
|
After Width: | Height: | Size: 2.9 KiB |
1
frontend/public/icons/file_type_bat.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><radialGradient id="a" cx="22.737" cy="22.737" r="3.628" gradientTransform="translate(-4.708 41.626) rotate(-81.5) scale(1 1.071)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#bedcdc"/><stop offset="0.5" stop-color="#8e9e9e" stop-opacity="0.74"/><stop offset="1" stop-color="#404f5c" stop-opacity="0.84"/></radialGradient><radialGradient id="b" cx="11.336" cy="11.336" r="5.201" gradientTransform="translate(-2.347 20.753) rotate(-81.5) scale(1 1.071)" xlink:href="#a"/></defs><title>file_type_bat</title><polygon points="24.811 27.318 27.215 24.914 28.417 27.318 27.215 28.52 24.811 27.318" style="fill:silver"/><polygon points="20.964 27.443 24.365 27.443 23.515 29.993 21.815 29.993 20.964 27.443" style="fill:silver"/><polygon points="18.157 24.811 20.561 27.215 18.157 28.417 16.954 27.215 18.157 24.811" style="fill:silver"/><polygon points="18.032 20.964 18.032 24.365 15.482 23.515 15.482 21.815 18.032 20.964" style="fill:silver"/><polygon points="20.664 18.157 18.26 20.561 17.058 18.157 18.26 16.954 20.664 18.157" style="fill:silver"/><polygon points="24.51 18.032 21.11 18.032 21.96 15.482 23.66 15.482 24.51 18.032" style="fill:silver"/><polygon points="27.318 20.664 24.914 18.26 27.318 17.058 28.52 18.26 27.318 20.664" style="fill:silver"/><polygon points="27.443 24.51 27.443 21.11 29.993 21.96 29.993 23.66 27.443 24.51" style="fill:silver"/><path d="M27.776,22.737A5.039,5.039,0,1,1,26.3,19.175,5.023,5.023,0,0,1,27.776,22.737Zm-5.039-1.9a1.9,1.9,0,1,0,1.344.557A1.894,1.894,0,0,0,22.737,20.837Z" style="fill:silver"/><path d="M22.656,18.074A4.664,4.664,0,1,0,27.4,22.656,4.664,4.664,0,0,0,22.656,18.074Zm.15,8.61a3.947,3.947,0,1,1,3.877-4.015A3.947,3.947,0,0,1,22.806,26.684Z" style="fill:#a9a9a9"/><path d="M22.674,19.11a3.628,3.628,0,1,0,3.69,3.564A3.628,3.628,0,0,0,22.674,19.11Zm.1,5.7A2.073,2.073,0,1,1,24.811,22.7,2.073,2.073,0,0,1,22.774,24.81Z" style="fill:url(#a)"/><path d="M22.7,20.665A2.073,2.073,0,1,0,24.81,22.7,2.073,2.073,0,0,0,22.7,20.665Zm.067,3.826a1.754,1.754,0,1,1,1.723-1.784A1.754,1.754,0,0,1,22.768,24.491Z" style="fill:#a9a9a9"/><polygon points="6.563 16.976 8.838 18.238 7.374 19.806 6.009 19.049 6.563 16.976" style="fill:silver"/><polygon points="4.382 13.834 5.722 16.064 3.67 16.69 2.866 15.352 4.382 13.834" style="fill:silver"/><polygon points="4.065 10.023 4.11 12.624 2.02 12.14 1.993 10.579 4.065 10.023" style="fill:silver"/><polygon points="5.696 6.563 4.434 8.838 2.866 7.374 3.623 6.009 5.696 6.563" style="fill:silver"/><polygon points="8.838 4.382 6.608 5.722 5.982 3.67 7.32 2.866 8.838 4.382" style="fill:silver"/><polygon points="12.65 4.065 10.048 4.11 10.532 2.02 12.093 1.993 12.65 4.065" style="fill:silver"/><polygon points="16.109 5.696 13.834 4.434 15.298 2.866 16.663 3.623 16.109 5.696" style="fill:silver"/><polygon points="18.29 8.838 16.95 6.608 19.002 5.982 19.806 7.32 18.29 8.838" style="fill:silver"/><polygon points="18.607 12.65 18.562 10.048 20.652 10.532 20.679 12.093 18.607 12.65" style="fill:silver"/><polygon points="16.976 16.109 18.238 13.834 19.806 15.298 19.049 16.663 16.976 16.109" style="fill:silver"/><polygon points="13.834 18.29 16.064 16.95 16.69 19.002 15.352 19.806 13.834 18.29" style="fill:silver"/><polygon points="10.023 18.607 12.624 18.562 12.14 20.652 10.579 20.679 10.023 18.607" style="fill:silver"/><path d="M11.467,18.831a7.5,7.5,0,1,1,5.261-2.288A7.473,7.473,0,0,1,11.467,18.831Zm2.682-7.544a2.814,2.814,0,1,0-.789,2A2.8,2.8,0,0,0,14.149,11.287Z" style="fill:silver"/><path d="M11.218,4.6a6.737,6.737,0,1,0,6.854,6.619A6.737,6.737,0,0,0,11.218,4.6Zm.217,12.436a5.7,5.7,0,1,1,5.6-5.8A5.7,5.7,0,0,1,11.436,17.036Z" style="fill:#a9a9a9"/><path d="M11.245,6.136a5.2,5.2,0,1,0,5.29,5.109A5.2,5.2,0,0,0,11.245,6.136Zm.14,8.036a2.837,2.837,0,1,1,2.787-2.886A2.837,2.837,0,0,1,11.386,14.172Z" style="fill:url(#b)"/><path d="M11.282,8.227a3.109,3.109,0,1,0,3.163,3.055A3.109,3.109,0,0,0,11.282,8.227Zm.1,5.74a2.631,2.631,0,1,1,2.585-2.677A2.631,2.631,0,0,1,11.382,13.967Z" style="fill:#a9a9a9"/></svg>
|
After Width: | Height: | Size: 4.0 KiB |
1
frontend/public/icons/file_type_bazaar.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_bazaar</title><path d="M23.418,8.449C17.727,2.634,16.918,2,16.17,2s-1.576.659-7.416,6.706c-6.364,6.59-7.034,7.359-6.18,8.7.235.37,6.168,6.374,6.228,6.435C14.477,29.586,15.2,30,15.72,30c.219,0,.492,0,2.8-2.155,1.276-1.192,2.922-2.812,4.636-4.563s3.3-3.433,4.466-4.736c2.1-2.352,2.1-2.625,2.1-2.845C29.725,15.245,29.26,14.42,23.418,8.449Z" style="fill:#fce94f"/><path d="M19.315,18.638c-1.455-2.081-2.193-4.1-1.969-4.683.084-.219.516-.344,1.184-.344.126,0,1.237-.01,1.237-.375,0-.6-3.321-5.565-3.78-5.656-.324-.061-1.03.759-2.1,2.446l-.036.057c-1.44,2.271-1.875,2.957-1.685,3.3.122.222.447.225.984.225h1.085v4.877a40.929,40.929,0,0,0,.219,5.251h0a3.532,3.532,0,0,0,1.475.219H17.25v-1.88a7.71,7.71,0,0,1,.152-1.87,3.448,3.448,0,0,1,1.1.822c.833.813,1.166,1.063,1.632.677C20.9,21.074,20.659,20.56,19.315,18.638Z" style="fill:#c4a000"/><path d="M14.093,23.224a38.676,38.676,0,0,1-.186-5.173V13.064H12.759c-1.391,0-1.4.019.783-3.417.985-1.554,1.727-2.449,1.986-2.4.4.08,3.692,5.021,3.692,5.549,0,.146-.507.266-1.127.266-.738,0-1.182.143-1.286.414-.264.688.635,2.858,1.982,4.785,1.38,1.975,1.5,2.375.839,2.92-.365.3-.6.2-1.486-.671-.58-.566-1.14-.943-1.246-.837a6.159,6.159,0,0,0-.192,1.963V23.41H15.492A3.487,3.487,0,0,1,14.093,23.224Z" style="fill:#555753"/><path d="M16.813,23.52H15.492a3.533,3.533,0,0,1-1.475-.219h0a40.93,40.93,0,0,1-.218-5.251V13.173H12.735c-.56,0-.883,0-1.007-.225-.19-.345.245-1.031,1.685-3.3l.036-.057c1.07-1.687,1.776-2.507,2.1-2.446.459.091,3.78,5.06,3.78,5.656,0,.365-1.11.375-1.237.375-.669,0-1.1.125-1.184.344-.223.582.515,2.6,1.969,4.683,1.343,1.922,1.58,2.435.819,3.067-.466.387-.8.137-1.632-.677a3.447,3.447,0,0,0-1.1-.822,7.708,7.708,0,0,0-.152,1.87Zm-2.633-.367a4.035,4.035,0,0,0,1.311.149h1.1V21.639a6.117,6.117,0,0,1,.224-2.04c.25-.25,1.134.577,1.4.836.939.917,1.069.889,1.339.665.563-.467.55-.757-.859-2.773-1.377-1.971-2.272-4.163-1.994-4.887.123-.322.59-.485,1.389-.485a1.938,1.938,0,0,0,1.023-.176A26.993,26.993,0,0,0,15.5,7.355c-.121-.022-.667.456-1.868,2.35l-.036.057c-1.2,1.9-1.805,2.848-1.678,3.08.062.112.4.11.815.112h1.281v5.1A46.7,46.7,0,0,0,14.18,23.153Z" style="fill:#2e3436"/><path d="M9.113,23.535c-3.276-3.315-6.053-6.178-6.17-6.362C2.3,16.166,2.8,15.5,9.069,9.01c5.2-5.382,6.484-6.572,7.1-6.572s1.9,1.171,6.936,6.318c4.346,4.442,6.182,6.5,6.182,6.946,0,.918-12.668,13.861-13.567,13.861C15.244,29.562,13.475,27.949,9.113,23.535Zm13.3-.74c4.256-4.371,6.316-6.683,6.316-7.087,0-.691-11.907-13.017-12.56-13-.447.011-12.282,12.035-12.811,13.016-.439.814-.157,1.174,5.376,6.867,6.036,6.21,6.539,6.692,6.972,6.692A82.622,82.622,0,0,0,22.412,22.8Z" style="fill:#555753"/><path d="M15.72,29.781c-.492,0-1.673-.942-6.763-6.092h0c-2.9-2.93-6.052-6.168-6.2-6.4-.731-1.15-.271-1.781,6.153-8.433C14.3,3.274,15.457,2.219,16.17,2.219s1.9,1.074,7.092,6.384c5.222,5.337,6.244,6.645,6.244,7.1,0,.722-4.982,5.868-6.509,7.428S16.431,29.781,15.72,29.781Zm.462-26.836C15.039,3.707,4.047,14.907,3.55,15.828c-.362.671-.012,1.1,5.341,6.61,5.285,5.438,6.4,6.555,6.778,6.623.425-.267,3.113-2.85,6.586-6.418h0C27.457,17.3,28.418,16,28.5,15.719,28.07,14.7,17.353,3.6,16.182,2.945ZM3,16.307a.846.846,0,0,0,.124.75c.076.106.833.9,2.059,2.164C3.636,17.566,3.081,16.831,3,16.307ZM23.677,9.654c2.655,2.77,5.269,5.627,5.269,6.054,0,.1,0,.234-.447.816a3.384,3.384,0,0,0,.57-.839C29.01,15.172,25.562,11.588,23.677,9.654ZM15.03,3.379c-.724.623-1.8,1.681-3.387,3.3C13.328,4.987,14.375,3.979,15.03,3.379Zm1.1-.457Zm.1-.007Z" style="fill:#2e3436"/></svg>
|
After Width: | Height: | Size: 3.5 KiB |
1
frontend/public/icons/file_type_bazel.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_bazel</title><path d="M9,2l7,7L9,16,2,9Z" style="fill:#76d275"/><path d="M2,9v7l7,7V16Z" style="fill:#43a047"/><path d="M23,2l7,7-7,7L16,9Z" style="fill:#76d275"/><path d="M30,9v7l-7,7V16Z" style="fill:#43a047"/><path d="M16,9l7,7-7,7L9,16Z" style="fill:#43a047"/><path d="M16,23v7L9,23V16Z" style="fill:#00701a"/><path d="M16,23l7-7v7l-7,7Z" style="fill:#004300"/></svg>
|
After Width: | Height: | Size: 448 B |
1
frontend/public/icons/file_type_binary.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_binary</title><path d="M20.929,2H4.529V30h23.3V9Zm5.114,26.35H6.409V3.65H19.815l6.333,6.333V28.35ZM11.477,15.393c1.584,0,2.563-1.463,2.563-3.663,0-2.145-.8-3.443-2.4-3.443S9.068,9.75,9.068,11.95C9.068,14.1,9.871,15.393,11.477,15.393ZM10.234,11.73c0-1.562.429-2.453,1.32-2.453.649,0,1.045.55,1.221,1.474l-2.53,1.309A3.2,3.2,0,0,1,10.234,11.73ZM11.565,14.4c-.638,0-1.045-.528-1.221-1.43l2.53-1.309v.286C12.874,13.512,12.456,14.4,11.565,14.4Zm10.27.847.1-1.023h-1.65V8.21l-1.177.1v.8l-1.694.176.022.891,1.672-.044v4.092H17.259V15.25Zm-7.85,9.5.1-1.023h-1.65V17.71l-1.177.1v.8l-1.694.176.022.891,1.672-.044v4.092H9.409V24.75Zm5.442.143c1.584,0,2.563-1.463,2.563-3.663,0-2.145-.8-3.443-2.4-3.443s-2.574,1.463-2.574,3.663C17.018,23.595,17.821,24.893,19.427,24.893ZM18.184,21.23c0-1.562.429-2.453,1.32-2.453.649,0,1.045.55,1.221,1.474l-2.53,1.309A3.2,3.2,0,0,1,18.184,21.23ZM19.515,23.9c-.638,0-1.045-.528-1.221-1.43l2.53-1.309v.286C20.824,23.012,20.406,23.9,19.515,23.9Z" style="fill:#9f4246"/></svg>
|
After Width: | Height: | Size: 1.0 KiB |
1
frontend/public/icons/file_type_bithound.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_bithound</title><path d="M28.638,14.849a15.139,15.139,0,0,0-.7-3.244A19.659,19.659,0,0,0,22.75,3.478c-.1-.09-.5-.325-.641-.245-.384.212.34,1.684.429,1.95a9.25,9.25,0,0,1,.5,5.037A5.01,5.01,0,0,1,18.5,14.226c-1.259.106-2.527-.038-3.792.11a7.183,7.183,0,0,0-5.014,2.422,4.968,4.968,0,0,0-.38.581H9.284a2.15,2.15,0,0,1-1.161-.272l-.162-.092a8.407,8.407,0,0,1-3.067-3.941,11.352,11.352,0,0,1-.689-2.061,5.523,5.523,0,0,1-.1-.973,1.387,1.387,0,0,0-.091-.658c-.242-.386-.556-.017-.6.292a7.657,7.657,0,0,0-.133,1.525A8.183,8.183,0,0,0,3.871,13.7a11.119,11.119,0,0,0,1.934,3.273,11.849,11.849,0,0,0,1.112,1.133,5.633,5.633,0,0,1,1.073.971,2.609,2.609,0,0,1,.332,1.581A12.2,12.2,0,0,0,8.609,24.8a11.949,11.949,0,0,0,1.538,3.552,7.081,7.081,0,0,0,1.331,1.472c.339.266.98.3.609-.682a6.959,6.959,0,0,1,.384-6.424c1.067-1.684,2.955-3.18,5.092-2.913a6.051,6.051,0,0,1,5.164,6.347,8.481,8.481,0,0,1-.348,2.414,2.1,2.1,0,0,0-.112,1.074c.134.577.777.365,1.055-.014.757-1.033,1.56-2.034,2.274-3.1A17.622,17.622,0,0,0,28.638,14.849Z" style="fill:#c31230"/><path d="M11.074,6.374a4.679,4.679,0,0,1,.14.551.644.644,0,0,0,.073.254A2.262,2.262,0,0,0,12.379,8.21a8.338,8.338,0,0,0,1.038.432,4.738,4.738,0,0,0,1.6-.073c.9-.072,1.734-.392,2.562.088-4.234,4.968-.239,6.076,2.866,3.68,3.539-2.73.208-9.168.208-9.168s-.077-.5-1.415-.8c-.125-.064-.252-.123-.378-.181-1.329-.615-2.525.395-3.486,1.209-.277.234-.553.476-.845.693a7.376,7.376,0,0,1-1.277.754,4.373,4.373,0,0,1-1.554.493,2.408,2.408,0,0,0-.361.046c-.227.019-.346.081-.4.181a.349.349,0,0,0-.134.307.858.858,0,0,0,.2.456A.8.8,0,0,0,11.074,6.374Z" style="fill:#c31230"/></svg>
|
After Width: | Height: | Size: 1.6 KiB |
1
frontend/public/icons/file_type_blade.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_blade</title><path d="M24.851,15.957l-2.393-3.284c-.067-.095-.123-.19.045-.212s2.887-.514,3.01-.542.229-.061.38.145,2.22,2.826,2.3,2.926-.056.162-.235.2S24.851,15.957,24.851,15.957Zm2.511,5.165c-.23.084-7.748,2.621-7.894,2.684s-.261.084-.449-.188-2.634-4.5-2.634-4.5l7.97-2.074c.2-.063.261-.1.386.094s2.631,3.6,2.7,3.717S27.591,21.039,27.361,21.122ZM9.618,19.6c-.244.056-.244.028-.272-.056S3.9,8.3,3.827,8.159s-.071-.25,0-.25,4.323-.38,4.474-.388.135.024.19.119l6.1,10.534c.1.181.042.237-.056.258S9.862,19.548,9.618,19.6Zm16.693-8.03c-.436-.525-.648-.43-.916-.391s-3.4.564-3.758.625-.592.207-.369.519c.2.278,2.255,3.193,2.707,3.835L15.8,18.12,9.3,7.253c-.259-.384-.313-.518-.9-.491s-5.1.4-5.42.428-.674.17-.353.928,5.444,11.8,5.586,12.118a1.1,1.1,0,0,0,1.383.634c.89-.214,3.978-1.02,5.666-1.462.892,1.615,2.71,4.89,3.046,5.359.449.627.758.523,1.447.314.538-.163,8.42-3,8.775-3.144s.574-.251.334-.606c-.177-.261-2.256-3.047-3.345-4.5.746-.2,3.4-.9,3.681-.981.329-.089.374-.251.2-.452S26.746,12.1,26.311,11.573Z" style="fill:#fb503b;stroke:#fb503b;stroke-width:0.25px"/></svg>
|
After Width: | Height: | Size: 1.1 KiB |
1
frontend/public/icons/file_type_bolt.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_bolt</title><path d="M9.012,2H22.979q-2.787,5.6-5.593,11.194,2.8.014,5.6.009-4.9,8.4-9.794,16.8c-.019-4.192-.009-8.375-.009-12.567-1.391,0-2.782,0-4.173-.009Z" style="fill:#fbc02d"/></svg>
|
After Width: | Height: | Size: 265 B |
1
frontend/public/icons/file_type_bower.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_bower</title><path d="M29.465,15.715c-1.44-1.384-8.642-2.248-10.914-2.5a6.669,6.669,0,0,0,.281-.806,9.094,9.094,0,0,1,.99-.367c.042.124.241.6.354.826,4.569.126,4.8-3.4,4.99-4.36a5.447,5.447,0,0,1,1.74-3.521c-2.335-.68-5.693,1.055-6.818,3.637a7.015,7.015,0,0,0-1.265-.348,6.137,6.137,0,0,0-5.966-4.585A11.154,11.154,0,0,0,2,15.232c0,6.1,4.163,11.442,6.515,11.442a2.316,2.316,0,0,0,2.118-1.459c.174.473.708,1.943.883,2.317.259.553,1.457,1.032,1.981.458a1.93,1.93,0,0,0,2.585-.4,1.914,1.914,0,0,0,2.471-1.423c.637-.034.95-.928.81-1.641a17.5,17.5,0,0,0-1.625-3.056c.846.688,2.988.883,3.248,0,1.364,1.07,3.489.509,3.657-.362,1.657.431,3.558-.515,3.245-1.66C30.552,19.265,30.212,16.433,29.465,15.715Z" style="fill:#543729"/><path d="M22.053,9.675a10.185,10.185,0,0,1,2.2-3.148,5.71,5.71,0,0,0-2.575,2.9,9.019,9.019,0,0,0-.906-.506,5.878,5.878,0,0,1,4.8-3.308c-1.4,1.269-.9,3.906-2.053,5.3A15.066,15.066,0,0,0,22.053,9.675Zm-.9,1.852a4.627,4.627,0,0,1,.047-.533,4.837,4.837,0,0,0-.839-.11,3.157,3.157,0,0,0,.291,1.216,4.378,4.378,0,0,0,2.282-.633,7.638,7.638,0,0,0-1.54-.434C21.335,11.149,21.2,11.442,21.149,11.527Z" style="fill:#00acee"/><path d="M17.2,20.527v.005c-.135-.29-.278-.642-.449-1.1.665.968,2.75.469,2.641-.4,1.02.768,3.121-.128,2.643-1.2,1.022.476,2.189-.482,1.927-.9,1.743.336,3.413.671,3.937.805a2.032,2.032,0,0,1-2.337.69c.646.88-.608,1.936-2.355,1.354.385.864-1.171,1.642-2.939.741C20.291,21.383,18.076,21.482,17.2,20.527Zm3.457-4.369c2.023.155,5.367.457,7.438.747-.131-.674-.488-.866-1.612-1.168C25.274,15.866,22.206,16.167,20.657,16.158Z" style="fill:#2baf2b"/><path d="M19.393,19.031c1.02.768,3.121-.128,2.643-1.2,1.022.476,2.189-.482,1.927-.9-2.06-.4-4.222-.8-4.713-.866.3.016.791.05,1.406.1,1.55.009,4.617-.293,5.826-.422a58.716,58.716,0,0,0-8.714-1.4,3.964,3.964,0,0,1-.773.841c-1.208,2.555-3.4,4.253-5.816,4.253a7.8,7.8,0,0,1-2.38-.4c-.552.591-2.9,1.039-4.813.1A9.737,9.737,0,0,0,12.9,25.044c3.273,0,4.725-3.342,4.407-4.227-.077-.215-.382-.927-.553-1.387C17.417,20.4,19.5,19.9,19.393,19.031Z" style="fill:#ffcc2f"/><path d="M17.409,12.3a9.482,9.482,0,0,1,2.239-.99c-.015-.105-.026-.212-.033-.319-.624.15-1.8.654-2.476-.041,1.423.429,2.134-.383,3.18-.383a6.724,6.724,0,0,1,2.214.449,7.469,7.469,0,0,0-4.7-2.1A3.29,3.29,0,0,0,17.409,12.3Z" style="fill:#cecece"/><path d="M8.8,19.03a7.8,7.8,0,0,0,2.38.4c2.421,0,4.609-1.7,5.816-4.253a7.485,7.485,0,0,1-4.87,1.384,7.621,7.621,0,0,0,4.964-3.139,4.221,4.221,0,0,1,.44-5.249,4.931,4.931,0,0,0-4.674-3.284C7.575,4.891,3.2,9.31,3.2,15.232a9.893,9.893,0,0,0,.788,3.9C5.9,20.069,8.248,19.621,8.8,19.03Z" style="fill:#ef5734"/><path d="M10.384,10.013a2.439,2.439,0,1,0,2.439-2.439A2.439,2.439,0,0,0,10.384,10.013Z" style="fill:#ffcc2f"/><path d="M11.363,10.013a1.46,1.46,0,1,0,1.46-1.46A1.46,1.46,0,0,0,11.363,10.013Z" style="fill:#543729"/><ellipse cx="12.823" cy="9.365" rx="0.851" ry="0.529" style="fill:#fff"/></svg>
|
After Width: | Height: | Size: 2.9 KiB |
1
frontend/public/icons/file_type_bower2.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_bower2</title><path d="M29.465,15.715c-1.44-1.384-8.642-2.248-10.914-2.5a6.669,6.669,0,0,0,.281-.806,9.094,9.094,0,0,1,.99-.367c.042.124.241.6.354.826,4.569.126,4.8-3.4,4.99-4.36a5.447,5.447,0,0,1,1.74-3.521c-2.335-.68-5.693,1.055-6.818,3.637a7.015,7.015,0,0,0-1.265-.348,6.137,6.137,0,0,0-5.966-4.585A11.154,11.154,0,0,0,2,15.232c0,6.1,4.163,11.442,6.515,11.442a2.316,2.316,0,0,0,2.118-1.459c.174.473.708,1.943.883,2.317.259.553,1.457,1.032,1.981.458a1.93,1.93,0,0,0,2.585-.4,1.914,1.914,0,0,0,2.471-1.423c.637-.034.95-.928.81-1.641a17.5,17.5,0,0,0-1.625-3.056c.846.688,2.988.883,3.248,0,1.364,1.07,3.489.509,3.657-.362,1.657.431,3.558-.515,3.245-1.66C30.552,19.265,30.212,16.433,29.465,15.715Z" style="fill:#ee4d26"/><path d="M20.658,16.158h0c-.616-.047-1.109-.081-1.406-.1.49.07,2.652.468,4.713.866.262.418-.905,1.376-1.927.9.478,1.077-1.623,1.972-2.643,1.2a.658.658,0,0,1-.332.609,1.833,1.833,0,0,1-.73.285,1.834,1.834,0,0,0,.73-.285.658.658,0,0,0,.332-.609c1.02.768,3.121-.128,2.643-1.2,1.022.476,2.189-.482,1.927-.9,1.743.336,3.413.671,3.937.805a2.032,2.032,0,0,1-2.337.69c.646.88-.608,1.936-2.355,1.354.385.864-1.171,1.642-2.939.741.022.864-2.193.964-3.069.009v.005q-.038-.081-.076-.169c-.112-.274-.25-.609-.351-.875l-.021-.057a1.57,1.57,0,0,0,1.578.494,1.57,1.57,0,0,1-1.578-.495h0l.021.057c.13.348.244.633.351.875.082.2.15.367.181.454.318.884-1.134,4.227-4.407,4.227a9.737,9.737,0,0,1-8.912-5.912c1.909.937,4.261.489,4.813-.1a7.8,7.8,0,0,0,2.38.4c2.421,0,4.609-1.7,5.816-4.253a3.964,3.964,0,0,0,.773-.841,58.716,58.716,0,0,1,8.714,1.4c-1.209.129-4.276.43-5.826.422h0ZM17.409,12.3a9.482,9.482,0,0,1,2.239-.99c-.015-.105-.026-.212-.033-.319-.624.15-1.8.654-2.476-.041,1.423.429,2.134-.383,3.18-.383a6.724,6.724,0,0,1,2.214.449,7.469,7.469,0,0,0-4.7-2.1A3.29,3.29,0,0,0,17.409,12.3Zm3.739-.777a4.627,4.627,0,0,1,.047-.533,4.837,4.837,0,0,0-.839-.11,3.157,3.157,0,0,0,.291,1.216,4.378,4.378,0,0,0,2.282-.633,7.638,7.638,0,0,0-1.54-.434C21.335,11.149,21.2,11.442,21.149,11.527Zm.9-1.852a10.185,10.185,0,0,1,2.2-3.148,5.71,5.71,0,0,0-2.575,2.9,9.02,9.02,0,0,0-.906-.506,5.878,5.878,0,0,1,4.8-3.308c-1.4,1.269-.9,3.906-2.053,5.3A15.066,15.066,0,0,0,22.053,9.675Zm-11.669.338a2.439,2.439,0,1,0,2.439-2.439A2.439,2.439,0,0,0,10.384,10.013Z" style="fill:#fff"/><circle cx="12.823" cy="10.013" r="1.46" style="fill:#ee4d26"/><ellipse cx="12.823" cy="9.365" rx="0.851" ry="0.529" style="fill:#fff"/></svg>
|
After Width: | Height: | Size: 2.4 KiB |
1
frontend/public/icons/file_type_browserslist.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_browserslist</title><circle cx="16" cy="16" r="14" style="fill:#ffd539"/><path d="M21.247,7.264q.093-.026.185-.045l.182.223q-.02.078-.037.157a2.458,2.458,0,0,0-.432.12Q21.186,7.493,21.247,7.264Zm-3.938,4.221c-1.26,2-1.955,4.067-1.751,5.183a17.109,17.109,0,0,0,6.554-.142A13.775,13.775,0,0,0,26.06,15a2.466,2.466,0,0,0,.56-.44A8.435,8.435,0,0,1,22.8,12.442a5.117,5.117,0,0,1-1.651-4.724A9.283,9.283,0,0,0,17.309,11.485Zm4.378-4.3c-1.294,4.238,3.292,6.695,5.105,7.009.727.126.09.795-.531,1.159a16.1,16.1,0,0,1-11.026,1.67C14.383,14.51,18.565,7.481,21.688,7.18Z"/><path d="M20.382,12.652A.8.8,0,1,0,21,12.038a.5.5,0,1,1-.614.615Zm5.782,2.368a1.2,1.2,0,1,0-1.2-1.2C25.776,14.407,26.949,14.288,26.165,15.02Z"/><path d="M15.283,27.935c.276-3.157-.747-4.589-2.56-7.451s-1.04-8.122,3.885-7.691C24.581,13.491,21.419,25.291,15.283,27.935Z"/><path d="M11.065,26.748c1.389-2.848.948-4.552.28-7.874s1.94-7.955,6.383-5.788c7.194,3.509.013,13.393-6.663,13.662Z"/><path d="M7.562,24.141c2.317-2.161,2.516-3.91,3.083-7.251s4.662-6.731,8.033-3.116c5.459,5.854-4.787,12.508-11.117,10.366Z"/><path d="M5.2,20.479c2.938-1.187,3.75-2.749,5.477-5.664s6.764-4.614,8.616-.03c3,7.422-8.951,9.962-14.093,5.694Z"/><path d="M4.341,16.167c3.168-.055,4.486-1.222,7.143-3.325s7.968-1.883,8.055,3.06c.14,8-11.927,6.091-15.2.265Z"/><path d="M5.036,11.86c2.977,1.084,4.626.466,7.86-.545s8.114,1.1,6.423,5.743C16.582,24.58,6,18.471,5.036,11.86Z"/><path d="M7.281,8.1c2.392,2.079,4.152,2.093,7.534,2.308S22,14.338,18.753,18.069C13.5,24.11,5.813,14.615,7.281,8.1Z"/><path d="M10.679,5.363c1.488,2.8,3.126,3.442,6.206,4.855s5.3,6.245.93,8.566C10.748,22.542,6.973,10.923,10.679,5.363Z"/><path d="M14.868,4.056c.386,3.145,1.685,4.334,4.054,6.756s2.706,7.728-2.2,8.33C8.776,20.118,9.416,7.918,14.868,4.056Z"/><path d="M19.224,4.337c-.767,3.075.02,4.649,1.363,7.76s-.243,8.184-5.04,6.988C7.78,17.149,12.749,5.988,19.224,4.337Z"/><path d="M23.212,6.144c-4.288,3.251-1.826,5.6-1.826,11.811,0,5.689-2.842,3.476-6.892.64C7.937,14,16.576,5.366,23.212,6.144Z"/><path d="M21.365,16.5c-.013-.088-.037-.353-.053-.591-.026-.389-.172-1.651-.242-2.091l-.028-.173.224-.025a.816.816,0,0,0,.561-1.279A1.07,1.07,0,0,0,21.155,12h-.161l.171.162a.408.408,0,0,1,.171.314.527.527,0,0,1-.258.472c-.115.052-.123.047-.149-.1a11.32,11.32,0,0,1-.152-3.175,5.357,5.357,0,0,1,.17-.7l.094-.264,0,.216a4.774,4.774,0,0,0,.094.647,6.329,6.329,0,0,0,3.122,4.017,10.415,10.415,0,0,0,1.719.819,2.071,2.071,0,0,1,.4.163c.082.082-.012.2-.312.39A13.576,13.576,0,0,1,22.3,16.453C21.317,16.685,21.393,16.681,21.365,16.5Z" style="fill:#fff"/></svg>
|
After Width: | Height: | Size: 2.6 KiB |
1
frontend/public/icons/file_type_buckbuild.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_buckbuild</title><path d="M9.929,3.809H7.9V9.557l2.478,2.478H7.4L4.156,8.789V3.809H2v5.9l4.411,4.411h5.947l2.131,2.131h-5.7L13.6,21.2,6.559,28.191H9.335L16.372,21.1,13.7,18.428H27.919v.892l-6.145,3.667-5.154,5.2h2.924l3.518-3.568L30,20.46V16.248H23.458l-2.23-2.23,2.527-2.527V5.841H21.649v4.708l-2.056,2.032-1.834-1.92V5.841H15.777v5.749l4.635,4.658H17.584L9.929,8.665V3.809" style="fill:#4a69a5"/><path d="M20.683,19.717H17.908l1.338,1.437,1.437-1.437" style="fill:#4a69a5"/></svg>
|
After Width: | Height: | Size: 559 B |
1
frontend/public/icons/file_type_bundler.svg
Normal file
After Width: | Height: | Size: 45 KiB |
1
frontend/public/icons/file_type_c.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_c</title><path d="M10.676,15.973a10.052,10.052,0,0,0,1.175,5.151,5.446,5.446,0,0,0,6.306,2.408,4.284,4.284,0,0,0,3.09-3.6c.107-.6.109-.61.109-.61,1.737.251,4.537.658,6.274.906l-.11.44a11.256,11.256,0,0,1-2.7,5.39,9.439,9.439,0,0,1-5.366,2.688,14.61,14.61,0,0,1-8.277-.819A10.151,10.151,0,0,1,5.4,21.687a16.225,16.225,0,0,1,.019-11.45,10.538,10.538,0,0,1,8.963-7.054,13.353,13.353,0,0,1,6.666.555,9.571,9.571,0,0,1,6.167,6.9c.094.352.114.417.114.417-1.932.351-4.319.8-6.238,1.215-.362-1.915-1.265-3.428-3.2-3.9a5.263,5.263,0,0,0-6.616,3.57,10.49,10.49,0,0,0-.385,1.439A12.31,12.31,0,0,0,10.676,15.973Z" style="fill:#005f91"/></svg>
|
After Width: | Height: | Size: 707 B |
1
frontend/public/icons/file_type_c2.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_c2</title><path d="M23,19.418A6.971,6.971,0,1,1,22.95,12.5l6.093-3.509a14,14,0,1,0,.036,13.95Z" style="fill:#005f91"/></svg>
|
After Width: | Height: | Size: 201 B |
1
frontend/public/icons/file_type_c_al.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_c_al</title><path d="M15.62,2.83h.023c.206.113.416.218.626.323.011,1.142,0,2.285.005,3.428q0,5.56,0,11.12c0,1.486,0,2.972,0,4.457,0,.711,0,1.422,0,2.133-.213.053-.427.1-.639.151-.01-2.028,0-4.056-.006-6.084a38.321,38.321,0,0,1-4.88,4,40.761,40.761,0,0,1-6.042,3.459A28.663,28.663,0,0,1,2,26.92v-.032a29.479,29.479,0,0,0,2.72-2.552,35.528,35.528,0,0,0,3.954-5.108,59.927,59.927,0,0,0,3.148-5.6,49.117,49.117,0,0,0,2.858-6.987A26.7,26.7,0,0,0,15.62,2.83Z" style="fill:#ffc525"/><path d="M16.274,17.7A31.642,31.642,0,0,0,23.046,7.435q.293.191.583.386a3.874,3.874,0,0,1,.008.4q0,4.584,0,9.168,0,4.361,0,8.723c-.193.063-.389.119-.585.172,0-2.8,0-5.6,0-8.4a19.537,19.537,0,0,1-2.588,2.048,27.688,27.688,0,0,1-4.188,2.23C16.274,20.672,16.271,19.186,16.274,17.7Z" style="fill:#5090cd"/><path d="M26.329,14.989a37.484,37.484,0,0,0,3.167-3.2c.165.088.338.16.5.248q0,8.465,0,16.93c-.172.055-.341.119-.514.173a44.222,44.222,0,0,0-4.8-1.345A42.238,42.238,0,0,0,8.552,27.4a34,34,0,0,0-6.381,1.7l.007-.032a33.507,33.507,0,0,1,12.571-3.389c.081-.008.163-.006.245-.012a35.1,35.1,0,0,1,3.7.018c.615.03,1.227.1,1.839.156a18.726,18.726,0,0,1,2.519.442c.2-.053.392-.109.585-.172q0-4.361,0-8.723C24.55,16.6,25.44,15.8,26.329,14.989Z" style="fill:#73c267"/><path d="M20.46,19.928a19.537,19.537,0,0,0,2.588-2.048c.006,2.8,0,5.6,0,8.4a18.726,18.726,0,0,0-2.519-.442.415.415,0,0,0-.193-.04c-.885-.1-1.776-.161-2.667-.187-.714-.006-1.429-.016-2.143.022a5.071,5.071,0,0,0-.535.032c-.082.006-.164,0-.245.012A33.507,33.507,0,0,0,2.178,29.068l-.007.032c-.064,0-.112.051-.171.07v0a9.855,9.855,0,0,1,.886-.612A26.865,26.865,0,0,1,8.9,25.837a33.472,33.472,0,0,1,5.632-1.257c.366-.054.736-.086,1.1-.138.212-.054.426-.1.639-.151,0-.711,0-1.422,0-2.133A27.688,27.688,0,0,0,20.46,19.928Z" style="fill:#00477f"/><path d="M10.747,22.358a38.321,38.321,0,0,0,4.88-4c.008,2.028,0,4.056.006,6.084-.365.052-.735.084-1.1.138A33.472,33.472,0,0,0,8.9,25.837a26.865,26.865,0,0,0-6.014,2.717A9.855,9.855,0,0,0,2,29.166V26.92a28.663,28.663,0,0,0,2.705-1.1A40.761,40.761,0,0,0,10.747,22.358Z" style="fill:#f47835"/></svg>
|
After Width: | Height: | Size: 2.1 KiB |
1
frontend/public/icons/file_type_cabal.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_cabal</title><path d="M18.467,2.028,9.327,3.715A.787.787,0,0,0,8.8,5.072l8.935,11.854a2.45,2.45,0,0,0,2.195.854l9.14-1.687a.787.787,0,0,0,.528-1.357L20.662,2.883A2.45,2.45,0,0,0,18.467,2.028Z" style="fill:#6bc9dd"/><path d="M28.88,17.144l-9.636,1.672a3.714,3.714,0,0,0-2,1.322L10.681,29.07c-.453.616-.289,1.024.365.911l9.636-1.672a3.714,3.714,0,0,0,2-1.322l6.558-8.933C29.7,17.438,29.534,17.03,28.88,17.144Z" style="fill:#6a6bd7"/><path d="M5.065,15.183c-.151.4-2.957,2.615-2.9,3.068s3.353,1.8,3.6,2.14,1.186,4.687,1.53,4.78,2.118-3.518,2.424-3.7,3.69.282,3.841-.114-2.044-3.976-2.106-4.429,1.095-4.513.844-4.851-3.381,1.06-3.725.967-3.014-3.071-3.32-2.884S5.216,14.787,5.065,15.183Z" style="fill:#567dd9"/></svg>
|
After Width: | Height: | Size: 790 B |
1
frontend/public/icons/file_type_cake.svg
Normal file
After Width: | Height: | Size: 6.7 KiB |
1
frontend/public/icons/file_type_cakephp.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_cakephp</title><path d="M16,13.819l10.949,2.719C28.855,15.792,30,14.846,30,13.819V9.445c0-2.409-6.27-4.369-14-4.369S2,7.035,2,9.445v4.375c0,2.411,6.267,4.369,14,4.369V13.819Z" style="fill:#d33e44"/><path d="M26.948,16.538,16,13.818v4.37l10.949,2.72C28.854,20.16,30,19.216,30,18.188v-4.37C30,14.846,28.854,15.791,26.948,16.538Z" style="fill:#fff"/><path d="M2,13.818v4.37c0,2.411,6.267,4.366,14,4.366V18.188C8.267,18.188,2,16.228,2,13.818Z" style="fill:#fff"/><path d="M26.948,20.908,16,18.188v4.37l10.949,2.72C28.854,24.531,30,23.586,30,22.558v-4.37C30,19.216,28.854,20.161,26.948,20.908Z" style="fill:#d33e44"/><path d="M2,18.188v4.37c0,2.411,6.267,4.366,14,4.366V22.558C8.267,22.558,2,20.6,2,18.188Z" style="fill:#d33e44"/></svg>
|
After Width: | Height: | Size: 808 B |
1
frontend/public/icons/file_type_cargo.svg
Normal file
After Width: | Height: | Size: 21 KiB |
1
frontend/public/icons/file_type_cert.svg
Normal file
After Width: | Height: | Size: 14 KiB |
1
frontend/public/icons/file_type_cf.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_cf</title><rect x="3.167" y="3.517" width="25.667" height="24.967" style="fill:#26424e"/><path d="M2,2.35v27.3H30V2.35ZM3.167,3.517H28.834V28.483H3.167ZM16.81,21.066a.194.194,0,0,1-.135.212,6.028,6.028,0,0,1-2.125.288c-3,0-5.653-1.961-5.653-6.576,0-3.961,2.346-6.615,5.922-6.615a5.234,5.234,0,0,1,1.991.269c.1.038.115.1.115.212V10.51c0,.154-.077.154-.135.135a4.529,4.529,0,0,0-1.953-.365c-2.25,0-3.75,1.711-3.75,4.653,0,3.634,2.057,4.711,3.75,4.711a5.239,5.239,0,0,0,1.836-.25c.077-.038.135-.038.135.1v1.577Zm.746-6.975c-.077,0-.076-.038-.076-.135V12.371c0-.1.019-.115.1-.115h1.069v-.6a3.946,3.946,0,0,1,.385-1.842,2.521,2.521,0,0,1,2.481-1.423,2.126,2.126,0,0,1,.777.1.15.15,0,0,1,.115.173V10.2c0,.1-.038.135-.135.115a2.45,2.45,0,0,0-.526-.058c-.673,0-1,.481-1,1.4v.593H22.27c.1,0,.133.019.133.1v1.6c0,.1-.019.115-.115.135H20.743v7.183c0,.077-.019.129-.135.129H18.78a.121.121,0,0,1-.135-.135V14.091H17.556Z" style="fill:#e5f3fc"/></svg>
|
After Width: | Height: | Size: 1014 B |
1
frontend/public/icons/file_type_cf2.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_cf2</title><path d="M24.037,2.072h0l5.564,5.8V29.928H8.814V30H29.67V7.945L24.037,2.072" style="fill:#909090"/><path d="M23.965,2H8.742V29.928H29.6V7.873L23.965,2" style="fill:#27434f"/><path d="M23.893,2.072V7.945h5.633L23.893,2.072" style="fill:#4c4442"/><path d="M23.965,2V7.873H29.6L23.965,2Z" style="fill:#e5f3fc"/><path d="M2.384,10.264H8.742V3.432H2.384Z" style="fill:#909090"/><path d="M8.742,10.264H22.461V3.432H8.742v6.832Z" style="fill:#4c4442"/><path d="M22.407,10.211H2.33V3.378H22.407v6.832" style="fill:#e5f3fc"/><path d="M18.267,14.686a3.907,3.907,0,0,1,1.692.2c.054.032.068.063.068.158v1.374c0,.126-.054.126-.095.095a3.561,3.561,0,0,0-1.611-.273c-1.751,0-2.945,1.358-2.945,3.648,0,2.906,1.683,3.617,2.9,3.617a3.5,3.5,0,0,0,1.643-.244c.068-.032.1-.016.1.079V24.68a.19.19,0,0,1-.081.189,4.142,4.142,0,0,1-1.928.23c-2.172.016-4.248-1.408-4.248-5.167,0-2.985,1.765-5.246,4.506-5.246" style="fill:#e5f3fc"/><path d="M24.8,14.376c-1.625,0-2.582,1.12-2.582,3.079V17.7h-.9a.08.08,0,0,0-.091.091V18.9a.106.106,0,0,0,.091.121l.9.015v6.017c0,.091.03.121.106.121h1.534c.091,0,.121-.046.121-.121v-6l1.291-.03c.076,0,.091-.03.091-.106V17.788c0-.061-.015-.091-.091-.091H23.976v-.349c0-1.276.516-1.484,1.108-1.484a1.548,1.548,0,0,1,.268.024v-1.46a2.968,2.968,0,0,0-.556-.052" style="fill:#e5f3fc"/><path d="M14.215,9.237c0,.045-.013.06-.051.06h-.686c-.026,0-.038-.022-.038-.06V4.489c0-.045.006-.052.045-.052h2.468c.038,0,.051.007.058.052l.058.6c.006.045-.006.067-.045.067H14.215V6.576h1.622c.038,0,.051.015.051.052v.619a.046.046,0,0,1-.051.052H14.215V9.237" style="fill:#27434f"/><path d="M11.862,4.437a1.824,1.824,0,0,1,.79.092c.025.015.032.029.032.074v.641c0,.059-.025.059-.044.044a1.662,1.662,0,0,0-.752-.127c-.817,0-1.375.634-1.375,1.7,0,1.356.785,1.688,1.356,1.688a1.635,1.635,0,0,0,.767-.114c.032-.015.044-.007.044.037V9.1a.088.088,0,0,1-.038.088,1.933,1.933,0,0,1-.9.107c-1.014.007-1.983-.657-1.983-2.411a2.2,2.2,0,0,1,2.1-2.448" style="fill:#27434f"/></svg>
|
After Width: | Height: | Size: 2.0 KiB |
1
frontend/public/icons/file_type_cfc.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><radialGradient id="a" cx="26.508" cy="-543.31" r="12.833" gradientTransform="matrix(1.293, 0.001, 0.001, -1.234, -20.084, -658.573)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#576e71" stop-opacity="0.98"/><stop offset="1" stop-color="#26424e"/></radialGradient></defs><title>file_type_cfc</title><rect x="3.167" y="3.517" width="25.667" height="24.967" style="fill:url(#a)"/><path d="M2,2.35v27.3H30V2.35ZM3.167,3.517H28.834V28.483H3.167ZM13.836,21.066a.194.194,0,0,1-.135.212,6.028,6.028,0,0,1-2.125.288c-3,0-5.653-1.961-5.653-6.576,0-3.961,2.346-6.615,5.922-6.615a5.234,5.234,0,0,1,1.991.269c.1.038.115.1.115.212V10.51c0,.154-.077.154-.135.135a4.529,4.529,0,0,0-1.953-.365c-2.25,0-3.75,1.711-3.75,4.653,0,3.634,2.057,4.711,3.75,4.711a5.239,5.239,0,0,0,1.836-.25c.077-.038.135-.038.135.1v1.577Zm.746-6.975c-.077,0-.076-.038-.076-.135V12.371c0-.1.019-.115.1-.115h1.069v-.6a3.946,3.946,0,0,1,.385-1.842,2.521,2.521,0,0,1,2.481-1.423,2.126,2.126,0,0,1,.777.1.15.15,0,0,1,.115.173V10.2c0,.1-.038.135-.135.115a2.45,2.45,0,0,0-.526-.058c-.673,0-1,.481-1,1.4v.593H19.3c.1,0,.133.019.133.1v1.6c0,.1-.019.115-.115.135H17.77v7.183c0,.077-.019.129-.135.129H15.806a.121.121,0,0,1-.135-.135V14.091H14.583Zm11.5,6.881A.169.169,0,0,1,26,21.14a4.416,4.416,0,0,1-2.066.247c-2.654,0-4.012-2.1-4.012-4.731,0-2.758,1.782-4.806,4.338-4.806a4.085,4.085,0,0,1,1.7.227c.065.037.081.075.081.186l-.016,1.509c0,.112-.049.13-.114.093a3.352,3.352,0,0,0-1.521-.227c-1.465,0-2.393,1.209-2.393,2.961,0,2.068,1.14,2.942,2.344,2.942a3.943,3.943,0,0,0,1.626-.173c.081-.019.114.019.114.093v1.509" style="fill:#e5f3fc"/></svg>
|
After Width: | Height: | Size: 1.7 KiB |
1
frontend/public/icons/file_type_cfc2.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_cfc2</title><path d="M24.037,2.072h0l5.564,5.8V29.928H8.814V30H29.67V7.945L24.037,2.072" style="fill:#909090"/><path d="M23.965,2H8.742V29.928H29.6V7.873L23.965,2" style="fill:#27434f"/><path d="M23.893,2.072V7.945h5.633L23.893,2.072" style="fill:#4c4442"/><path d="M23.965,2V7.873H29.6L23.965,2Z" style="fill:#e5f3fc"/><path d="M2.384,10.264H8.742V3.432H2.384Z" style="fill:#909090"/><path d="M8.742,10.264H22.461V3.432H8.742v6.832Z" style="fill:#4c4442"/><path d="M22.407,10.211H2.33V3.378H22.407v6.832" style="fill:#e5f3fc"/><path d="M14.953,14.686a3.907,3.907,0,0,1,1.692.2c.054.032.068.063.068.158v1.374c0,.126-.054.126-.095.095a3.561,3.561,0,0,0-1.611-.273c-1.751,0-2.945,1.358-2.945,3.648,0,2.906,1.683,3.617,2.9,3.617a3.5,3.5,0,0,0,1.643-.244c.068-.032.1-.016.1.079V24.68a.19.19,0,0,1-.081.189,4.142,4.142,0,0,1-1.928.23c-2.172.016-4.248-1.408-4.248-5.167,0-2.985,1.765-5.246,4.506-5.246" style="fill:#e5f3fc"/><path d="M21.482,14.376c-1.625,0-2.582,1.12-2.582,3.079V17.7H18a.08.08,0,0,0-.091.091V18.9a.106.106,0,0,0,.091.121l.9.015v6.017c0,.091.03.121.106.121H20.54c.091,0,.121-.046.121-.121v-6l1.291-.03c.076,0,.091-.03.091-.106V17.788c0-.061-.015-.091-.091-.091H20.662v-.349c0-1.276.516-1.484,1.108-1.484a1.548,1.548,0,0,1,.268.024v-1.46a2.968,2.968,0,0,0-.556-.052" style="fill:#e5f3fc"/><path d="M28.019,24.848a.133.133,0,0,1-.064.132,3.486,3.486,0,0,1-1.631.2c-2.095,0-3.167-1.661-3.167-3.735a3.5,3.5,0,0,1,3.424-3.794,3.225,3.225,0,0,1,1.342.179c.051.029.064.059.064.147l-.013,1.191c0,.088-.039.1-.09.074a2.646,2.646,0,0,0-1.2-.179c-1.157,0-1.889.955-1.889,2.337,0,1.633.9,2.323,1.851,2.323a3.113,3.113,0,0,0,1.284-.136c.064-.015.09.015.09.074v1.191" style="fill:#e6f3fc"/><path d="M9.653,4.437a1.824,1.824,0,0,1,.79.092c.025.015.032.029.032.074v.641c0,.059-.025.059-.044.044a1.662,1.662,0,0,0-.752-.127c-.817,0-1.375.634-1.375,1.7,0,1.356.785,1.688,1.356,1.688a1.635,1.635,0,0,0,.767-.114c.032-.015.044-.007.044.037V9.1a.088.088,0,0,1-.038.088,1.933,1.933,0,0,1-.9.107C8.519,9.3,7.55,8.639,7.55,6.885a2.2,2.2,0,0,1,2.1-2.448" style="fill:#27434f"/><path d="M12.006,9.237c0,.045-.013.06-.051.06h-.686c-.026,0-.038-.022-.038-.06V4.489c0-.045.006-.052.045-.052h2.468c.038,0,.051.007.058.052l.058.6c.006.045-.006.067-.045.067H12.006V6.576h1.622c.038,0,.051.015.051.052v.619a.046.046,0,0,1-.051.052H12.006V9.237" style="fill:#27434f"/><path d="M16.435,4.424a1.824,1.824,0,0,1,.79.092c.025.015.032.029.032.074v.641c0,.059-.025.059-.044.044a1.662,1.662,0,0,0-.752-.127c-.817,0-1.375.634-1.375,1.7,0,1.356.785,1.688,1.356,1.688a1.635,1.635,0,0,0,.767-.114c.032-.015.044-.007.044.037v.627a.088.088,0,0,1-.038.088,1.933,1.933,0,0,1-.9.107c-1.014.007-1.983-.657-1.983-2.411a2.2,2.2,0,0,1,2.1-2.448" style="fill:#27434f"/></svg>
|
After Width: | Height: | Size: 2.7 KiB |
1
frontend/public/icons/file_type_cfm.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32"><defs><radialGradient id="a" cx="10.925" cy="-543.261" r="12.833" gradientTransform="matrix(1.293, 0, 0, -1.234, -0.634, -658.475)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff" stop-opacity="0.98"/><stop offset="1" stop-color="#e5f3fc"/></radialGradient></defs><title>file_type_cfm</title><rect x="3.167" y="3.517" width="25.667" height="24.967" style="fill:url(#a)"/><path d="M2,2.35v27.3H30V2.35ZM3.167,3.517H28.834V28.483H3.167ZM11.073,21.09a.185.185,0,0,1-.128.2,5.745,5.745,0,0,1-2.025.275c-2.859,0-5.387-1.869-5.387-6.267,0-3.775,2.236-6.3,5.644-6.3a4.988,4.988,0,0,1,1.9.257c.092.037.11.092.11.2V11.03c0,.147-.073.147-.128.128a4.316,4.316,0,0,0-1.861-.348c-2.144,0-3.573,1.631-3.573,4.434,0,3.463,1.961,4.489,3.573,4.489a4.993,4.993,0,0,0,1.75-.238c.073-.037.128-.037.128.092v1.5Zm.711-6.647c-.073,0-.073-.037-.073-.128V12.8c0-.092.018-.11.092-.11h1.019v-.568a3.76,3.76,0,0,1,.366-1.756,2.4,2.4,0,0,1,2.364-1.356,2.026,2.026,0,0,1,.741.092.143.143,0,0,1,.11.165v1.466c0,.092-.037.128-.128.11a2.335,2.335,0,0,0-.5-.055c-.641,0-.953.458-.953,1.338v.565h1.455c.092,0,.127.018.127.092v1.529c0,.092-.018.11-.11.128H14.821v6.845c0,.073-.018.123-.128.123H12.95a.116.116,0,0,1-.128-.128v-6.84H11.784Zm9.005-2.378a15.574,15.574,0,0,0-3.686.653c-.091,0-.107.053-.107.149.032.374.005.918.005,1.558h.011v6.8c0,.133.027.171.107.171h1.627c.091,0,.123-.037.123-.149V14.2a2.754,2.754,0,0,1,1.446-.384c.929,0,1.436.838,1.436,2.06v5.358a.193.193,0,0,0,.038.13.079.079,0,0,0,.068.038h0l.017,0H23.5c.091,0,.123-.037.123-.149V14.2a2.754,2.754,0,0,1,1.446-.384c.929,0,1.436.838,1.436,2.06v5.358c0,.112.048.171.139.171h1.612c.075,0,.123-.053.123-.149V15.893c0-3.047-1.355-3.72-2.545-3.816a12.021,12.021,0,0,0-3.385.478,2.6,2.6,0,0,0-1.37-.478c-.093-.007-.19-.011-.29-.012Z" style="fill:#28434f"/></svg>
|
After Width: | Height: | Size: 1.9 KiB |
1
frontend/public/icons/file_type_cfm2.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_cfm2</title><path d="M24.037,2.072h0l5.564,5.8V29.928H8.814V30H29.67V7.945L24.037,2.072" style="fill:#909090"/><path d="M23.965,2H8.742V29.928H29.6V7.873L23.965,2" style="fill:#e5f3fc"/><path d="M23.893,2.072V7.945h5.633L23.893,2.072" style="fill:#4c4442"/><path d="M23.965,2V7.873H29.6L23.965,2Z" style="fill:#27434f"/><path d="M2.384,10.264H8.742V3.432H2.384Z" style="fill:#909090"/><path d="M8.742,10.264H22.461V3.432H8.742v6.832Z" style="fill:#4c4442"/><path d="M22.407,10.211H2.33V3.378H22.407v6.832" style="fill:#27434f"/><path d="M13.25,15.507a3.6,3.6,0,0,1,1.56.181c.05.029.063.058.063.146V17.1c0,.116-.05.116-.088.087a3.282,3.282,0,0,0-1.485-.252c-1.614,0-2.715,1.252-2.715,3.363,0,2.679,1.551,3.334,2.677,3.334a3.229,3.229,0,0,0,1.514-.225c.063-.029.088-.015.088.073v1.237a.175.175,0,0,1-.075.175,3.818,3.818,0,0,1-1.777.212c-2,.015-3.916-1.3-3.916-4.762,0-2.751,1.626-4.835,4.154-4.835" style="fill:#28434f"/><path d="M19.268,15.221c-1.5,0-2.379,1.032-2.379,2.838v.224h-.826a.074.074,0,0,0-.084.084v1.022a.1.1,0,0,0,.084.112l.826.014V25.06c0,.084.028.112.1.112H18.4c.084,0,.112-.042.112-.112V19.528L19.7,19.5c.07,0,.084-.028.084-.1V18.366c0-.056-.014-.084-.084-.084h-1.19V17.96c0-1.176.476-1.368,1.022-1.368a1.426,1.426,0,0,1,.247.022V15.268a2.735,2.735,0,0,0-.513-.048" style="fill:#28434f"/><path d="M23.582,18.221a11.581,11.581,0,0,0-2.741.485c-.067,0-.079.04-.079.111.024.278,0,.682,0,1.159h.008v5.059c0,.1.02.127.079.127h1.21c.067,0,.091-.028.091-.111V19.805a2.048,2.048,0,0,1,1.075-.286c.69,0,1.067.623,1.067,1.532v3.984a.143.143,0,0,0,.029.1.059.059,0,0,0,.051.028h0l.012,0H25.6c.067,0,.091-.028.091-.111V19.805a2.048,2.048,0,0,1,1.075-.286c.69,0,1.067.623,1.067,1.532v3.984c0,.083.036.127.1.127h1.2c.056,0,.091-.04.091-.111V21.067c0-2.266-1.008-2.766-1.893-2.837a8.938,8.938,0,0,0-2.517.355A1.931,1.931,0,0,0,23.8,18.23c-.069-.005-.141-.008-.216-.009Z" style="fill:#28434f"/><path d="M9.162,4.437a1.824,1.824,0,0,1,.79.092c.025.015.032.029.032.074v.641c0,.059-.025.059-.044.044a1.662,1.662,0,0,0-.752-.127c-.817,0-1.375.634-1.375,1.7,0,1.356.785,1.688,1.356,1.688a1.635,1.635,0,0,0,.767-.114c.032-.015.044-.007.044.037V9.1a.088.088,0,0,1-.038.088,1.933,1.933,0,0,1-.9.107C8.028,9.3,7.059,8.639,7.059,6.885a2.2,2.2,0,0,1,2.1-2.448" style="fill:#e5f3fc"/><path d="M11.515,9.237c0,.045-.013.06-.051.06h-.686c-.026,0-.038-.022-.038-.06V4.489c0-.045.006-.052.045-.052h2.468c.038,0,.051.007.058.052l.058.6c.006.045-.006.067-.045.067H11.515V6.576h1.622c.038,0,.051.015.051.052v.619a.046.046,0,0,1-.051.052H11.515V9.237" style="fill:#e5f3fc"/><path d="M14.315,4.432h1.033c.036,0,.051.008.058.044.182.676.706,2.873.829,3.615h.007c.138-.677.749-2.9.938-3.613.007-.036.022-.046.058-.046h1c.036,0,.044.007.051.036l.175,4.765c.007.044-.015.058-.051.058H17.7c-.044,0-.051-.02-.051-.056-.029-1.557-.029-3.757-.029-4.142h-.007c-.124.618-.763,3.1-1.04,4.142-.007.044-.029.056-.058.056h-.64a.057.057,0,0,1-.065-.049c-.269-1.083-.764-3.328-.931-4.149h-.015c0,.575-.058,2.564-.116,4.142,0,.044-.022.056-.051.056h-.64c-.044,0-.058-.014-.058-.051l.262-4.765c.007-.036.014-.044.051-.044" style="fill:#e5f3fc"/></svg>
|
After Width: | Height: | Size: 3.1 KiB |
1
frontend/public/icons/file_type_cheader.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_cheader</title><path d="M8.329,29V3h3.192v9.329a7.132,7.132,0,0,1,5.64-2.589,7.605,7.605,0,0,1,3.636.825,4.842,4.842,0,0,1,2.208,2.279,10.506,10.506,0,0,1,.665,4.221V29H20.478V17.064a4.932,4.932,0,0,0-1.038-3.485,3.858,3.858,0,0,0-2.935-1.091,5.176,5.176,0,0,0-2.669.736,4.157,4.157,0,0,0-1.782,2,9.164,9.164,0,0,0-.532,3.476V29Z" style="fill:#005f91"/></svg>
|
After Width: | Height: | Size: 436 B |
1
frontend/public/icons/file_type_chef.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_chef</title><path d="M11.791,20.247a6.1,6.1,0,0,0,4.265,1.773V19.5a3.438,3.438,0,0,1-2.483-1.027Z" style="fill:#3f5364"/><path d="M18.249,10.4l-.933,2.333A3.771,3.771,0,0,1,19.1,14.227h2.716A6.073,6.073,0,0,0,18.249,10.4Z" style="fill:#3f5364"/><path d="M10.008,16a6.114,6.114,0,0,0,.513,2.427l2.3-1.027a3.41,3.41,0,0,1-.28-1.4,3.534,3.534,0,0,1,3.509-3.5V9.98A6.045,6.045,0,0,0,10.008,16Z" style="fill:#f18b21"/><path d="M17.307,19.267,18.24,21.6a6.048,6.048,0,0,0,3.6-3.873H19.127A3.587,3.587,0,0,1,17.307,19.267Z" style="fill:#f18b21"/><path d="M16.047,22.3a6.3,6.3,0,1,1,6.085-8.027h2.436a8.657,8.657,0,1,0,0,3.5H22.132A6.3,6.3,0,0,1,16.047,22.3Z" style="fill:#3f5364"/><path d="M16.047,7.04h0V4.66h0A11.325,11.325,0,0,0,5.463,11.893l2.2.84A9.048,9.048,0,0,1,16.047,7.04Z" style="fill:#3f5364"/><path d="M16.047,24.96v2.38a11.373,11.373,0,0,0,11.237-9.567H24.848A8.936,8.936,0,0,1,16.047,24.96Z" style="fill:#3f5364"/><path d="M24.895,14.273h2.389a11.4,11.4,0,0,0-7.121-8.82l-.84,2.193A9.112,9.112,0,0,1,24.895,14.273Z" style="fill:#f18b21"/><path d="M7.059,16H4.669a11.361,11.361,0,0,0,7.168,10.547l.887-2.193A9.029,9.029,0,0,1,7.059,16Z" style="fill:#f18b21"/><path d="M27.564,14.273h2.389a14.463,14.463,0,0,0-2.016-5.647l-2.016,1.26A10.461,10.461,0,0,1,27.564,14.273Z" style="fill:#3f5364"/><path d="M2,16.009a14.74,14.74,0,0,0,1.241,6.048l2.315-.952a12.448,12.448,0,0,1-1.148-5.1" style="fill:#3f5364"/><path d="M16.047,27.62a11.632,11.632,0,0,1-8.241-3.407l-1.689,1.68A13.846,13.846,0,0,0,16.047,30,14.082,14.082,0,0,0,30,17.727H27.611A11.719,11.719,0,0,1,16.047,27.62Z" style="fill:#f18b21"/><path d="M16.047,4.38a11.38,11.38,0,0,1,6.972,2.333L24.475,4.8A13.96,13.96,0,0,0,16.047,2,14.1,14.1,0,0,0,2.933,10.913l2.249.887A11.686,11.686,0,0,1,16.047,4.38Z" style="fill:#f18b21"/></svg>
|
After Width: | Height: | Size: 1.8 KiB |
1
frontend/public/icons/file_type_circleci.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_circleci</title><path d="M12.458,16a3.332,3.332,0,1,1,3.332,3.332A3.331,3.331,0,0,1,12.458,16ZM15.79,2A14.015,14.015,0,0,0,2.224,12.528a.432.432,0,0,0-.014.14.672.672,0,0,0,.672.672H8.524a.645.645,0,0,0,.6-.392h0a7.336,7.336,0,1,1,0,6.1h0a.684.684,0,0,0-.6-.392H2.882a.672.672,0,0,0-.672.672c0,.042.014.084.014.14A14,14,0,1,0,15.79,2Z" style="fill:#064c64"/></svg>
|
After Width: | Height: | Size: 441 B |
1
frontend/public/icons/file_type_class.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><title>file_type_class</title><path d="M11.7,23.56s-1.07.622.761.833a16.023,16.023,0,0,0,5.8-.246A10.088,10.088,0,0,0,19.8,24.9c-5.481,2.349-12.405-.136-8.1-1.339" style="fill:#e76f00"/><path d="M11.026,20.494s-1.2.888.633,1.078a22.618,22.618,0,0,0,7.481-.359,3.32,3.32,0,0,0,1.152.7c-6.627,1.938-14.009.153-9.266-1.421" style="fill:#e76f00"/><path d="M16.673,15.294a2.051,2.051,0,0,1-.355,2.954s3.429-1.77,1.854-3.987c-1.471-2.067-2.6-3.095,3.508-6.636,0,0-9.586,2.394-5.007,7.669" style="fill:#e76f00"/><path d="M23.922,25.827s.792.652-.872,1.157c-3.164.958-13.168,1.248-15.948.038-1-.435.874-1.038,1.464-1.164a3.8,3.8,0,0,1,.966-.108c-1.111-.783-7.181,1.537-3.083,2.2,11.176,1.812,20.372-.816,17.473-2.124" style="fill:#e76f00"/><path d="M12.211,17.318s-5.089,1.209-1.8,1.648a38.225,38.225,0,0,0,6.731-.072c2.106-.178,4.221-.555,4.221-.555a8.934,8.934,0,0,0-1.28.685C14.913,20.382,4.93,19.75,7.8,18.359a9.629,9.629,0,0,1,4.407-1.042" style="fill:#e76f00"/><path d="M21.34,22.421c5.253-2.73,2.824-5.353,1.129-5a3.932,3.932,0,0,0-.6.161.957.957,0,0,1,.449-.346c3.354-1.179,5.933,3.478-1.083,5.322a.458.458,0,0,0,.106-.138" style="fill:#e76f00"/><path d="M18.172,1.906s2.909,2.91-2.759,7.386c-4.546,3.59-1.037,5.637,0,7.975-2.653-2.394-4.6-4.5-3.294-6.463,1.917-2.879,7.229-4.275,6.056-8.9" style="fill:#e76f00"/><path d="M12.727,29.818c5.042.323,12.786-.179,12.969-2.565,0,0-.353.9-4.167,1.623a41.458,41.458,0,0,1-12.76.2s.645.533,3.959.746" style="fill:#e76f00"/></svg>
|
After Width: | Height: | Size: 1.5 KiB |