diff --git a/components/shared/Icon/Icon.tsx b/components/shared/Icon/Icon.tsx
index c0eeb700..10ec75ed 100644
--- a/components/shared/Icon/Icon.tsx
+++ b/components/shared/Icon/Icon.tsx
@@ -1,30 +1,15 @@
-import type { ClassValue } from "clsx";
-import { cn } from "@/lib/utils";
-import icons, { IconName } from "./icons";
+import * as icons from "./icons";
+import type { IconName } from "./icons";
type IconProps = {
name: IconName;
- className?: ClassValue;
+ className?: string;
};
-/**
- * 新增 Svg 可以將檔案放至 `@/components/shared/Icon/icons/svgs` 裡,
- * 在 `@/components/shared/Icon/icons/index.ts` 引入 svg
- * 並放入 **icons** 這個物件,即可使用
- */
-const Icon = (props: IconProps) => {
- const { className, name, ...rest } = props;
- const transformClassName = cn("stroke-primary-100", className);
- const SvgIcon = name && icons[name];
+const Icon = ({ name, className }: Readonly
) => {
+ const GenerateIcon = icons[name];
- return (
-
- );
+ return ;
};
export default Icon;
diff --git a/components/shared/Icon/icon.stories.tsx b/components/shared/Icon/icon.stories.tsx
index 19f7063a..03e835a4 100644
--- a/components/shared/Icon/icon.stories.tsx
+++ b/components/shared/Icon/icon.stories.tsx
@@ -1,11 +1,11 @@
import type { Meta, StoryObj } from "@storybook/react";
-import { useState } from "react";
+import { MouseEventHandler, useState } from "react";
-import Icon from ".";
-import icons from "./icons";
-import Input from "../Input";
import { keys } from "@/lib/utils";
-import { ToastQueueProvider, useToast } from "../Toast";
+import { Input } from "@/components/shared/Input";
+import { ToastQueueProvider, useToast } from "@/components/shared/Toast";
+import * as icons from "./icons";
+import Icon from "./Icon";
const meta: Meta = {
title: "General/Icon",
@@ -31,7 +31,7 @@ export const Playground: Story = {
};
Playground.args = {
- name: "check",
+ name: "Arcade",
className: "w-9 h-9",
};
@@ -39,20 +39,22 @@ const AllIcons = () => {
const [value, setValue] = useState("");
const toast = useToast();
- const handleClick = (iconName: string) => () => {
- const cb = navigator.clipboard;
- const text = ``;
+ const handleClick =
+ (iconName: string): MouseEventHandler =>
+ (e) => {
+ e.stopPropagation();
- toast({ children: "已複製成功!!" }, { duration: 1000 });
+ const cb = navigator.clipboard;
+ const text = ``;
- cb.writeText(text);
- };
+ toast({ children: "已複製成功!!" }, { duration: 1000 });
+
+ cb.writeText(text).then();
+ };
return (
<>
-
- 點擊 icon 即可複製
-
+ 點擊 icon 即可複製
{
inputClassName="border-white/90"
/>
{keys(icons)
.filter((iconName) => iconName.includes(value))
.map((iconName) => (
-
+
+
{iconName}
+
))}
>
diff --git a/components/shared/Icon/icon.test.tsx b/components/shared/Icon/icon.test.tsx
index edae04e7..c2c9e1d2 100644
--- a/components/shared/Icon/icon.test.tsx
+++ b/components/shared/Icon/icon.test.tsx
@@ -1,27 +1,24 @@
import React from "react";
import { render } from "@testing-library/react";
-import "@testing-library/jest-dom";
-import Icon from "./index";
+import Icon from "./Icon";
import type { IconName } from "./icons";
-jest.mock("path/to/image.svg", () => "svg");
-
-describe("Icon", () => {
- const TEST_ICON_NAME: IconName = "arcade";
- it("render Icon with correct name", () => {
+describe("IconV2", () => {
+ const TEST_ICON_NAME: IconName = "Arcade";
+ it("should render Icon with correct name", () => {
const { container } = render();
const svg = container.querySelector("svg");
expect(svg).toBeInTheDocument();
});
- it("Icon has correct className", () => {
- const className = "test class";
+ it("should render Icon with correct class name", () => {
const { container } = render(
-
+
);
const svg = container.querySelector("svg");
- expect(svg).toHaveClass(className);
+ expect(svg).toHaveClass("stroke-red-500");
+ expect(svg).toHaveClass("fill-black");
});
});
diff --git a/components/shared/Icon/icons/generate/arcade.tsx b/components/shared/Icon/icons/generate/arcade.tsx
new file mode 100644
index 00000000..08c93418
--- /dev/null
+++ b/components/shared/Icon/icons/generate/arcade.tsx
@@ -0,0 +1,46 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ArcadeProps = {
+ className?: string;
+};
+
+export default function Arcade({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/archery.tsx b/components/shared/Icon/icons/generate/archery.tsx
new file mode 100644
index 00000000..6f0349bb
--- /dev/null
+++ b/components/shared/Icon/icons/generate/archery.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ArcheryProps = {
+ className?: string;
+};
+
+export default function Archery({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/arrow-left.tsx b/components/shared/Icon/icons/generate/arrow-left.tsx
new file mode 100644
index 00000000..a28fe07e
--- /dev/null
+++ b/components/shared/Icon/icons/generate/arrow-left.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ArrowLeftProps = {
+ className?: string;
+};
+
+export default function ArrowLeft({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/arrow-right.tsx b/components/shared/Icon/icons/generate/arrow-right.tsx
new file mode 100644
index 00000000..e286e0d9
--- /dev/null
+++ b/components/shared/Icon/icons/generate/arrow-right.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ArrowRightProps = {
+ className?: string;
+};
+
+export default function ArrowRight({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/badge.tsx b/components/shared/Icon/icons/generate/badge.tsx
new file mode 100644
index 00000000..85d8e99e
--- /dev/null
+++ b/components/shared/Icon/icons/generate/badge.tsx
@@ -0,0 +1,25 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type BadgeProps = {
+ className?: string;
+};
+
+export default function Badge({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/bright-crown.tsx b/components/shared/Icon/icons/generate/bright-crown.tsx
new file mode 100644
index 00000000..81c04a9f
--- /dev/null
+++ b/components/shared/Icon/icons/generate/bright-crown.tsx
@@ -0,0 +1,44 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type BrightCrownProps = {
+ className?: string;
+};
+
+export default function BrightCrown({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/calendar.tsx b/components/shared/Icon/icons/generate/calendar.tsx
new file mode 100644
index 00000000..a8981033
--- /dev/null
+++ b/components/shared/Icon/icons/generate/calendar.tsx
@@ -0,0 +1,45 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type CalendarProps = {
+ className?: string;
+};
+
+export default function Calendar({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/chat.tsx b/components/shared/Icon/icons/generate/chat.tsx
new file mode 100644
index 00000000..6e5579c0
--- /dev/null
+++ b/components/shared/Icon/icons/generate/chat.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ChatProps = {
+ className?: string;
+};
+
+export default function Chat({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/check.tsx b/components/shared/Icon/icons/generate/check.tsx
new file mode 100644
index 00000000..34ad7cf3
--- /dev/null
+++ b/components/shared/Icon/icons/generate/check.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type CheckProps = {
+ className?: string;
+};
+
+export default function Check({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/chess-rook.tsx b/components/shared/Icon/icons/generate/chess-rook.tsx
new file mode 100644
index 00000000..e7669ad3
--- /dev/null
+++ b/components/shared/Icon/icons/generate/chess-rook.tsx
@@ -0,0 +1,23 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ChessRookProps = {
+ className?: string;
+};
+
+export default function ChessRook({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/clock.tsx b/components/shared/Icon/icons/generate/clock.tsx
new file mode 100644
index 00000000..80d5c3cb
--- /dev/null
+++ b/components/shared/Icon/icons/generate/clock.tsx
@@ -0,0 +1,31 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ClockProps = {
+ className?: string;
+};
+
+export default function Clock({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/collectbook.tsx b/components/shared/Icon/icons/generate/collectbook.tsx
new file mode 100644
index 00000000..a39a6c7b
--- /dev/null
+++ b/components/shared/Icon/icons/generate/collectbook.tsx
@@ -0,0 +1,50 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type CollectbookProps = {
+ className?: string;
+};
+
+export default function Collectbook({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/discord.tsx b/components/shared/Icon/icons/generate/discord.tsx
new file mode 100644
index 00000000..257bbb3e
--- /dev/null
+++ b/components/shared/Icon/icons/generate/discord.tsx
@@ -0,0 +1,21 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type DiscordProps = {
+ className?: string;
+};
+
+export default function Discord({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/edit-mode.tsx b/components/shared/Icon/icons/generate/edit-mode.tsx
new file mode 100644
index 00000000..bc06f198
--- /dev/null
+++ b/components/shared/Icon/icons/generate/edit-mode.tsx
@@ -0,0 +1,52 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type EditModeProps = {
+ className?: string;
+};
+
+export default function EditMode({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/edit.tsx b/components/shared/Icon/icons/generate/edit.tsx
new file mode 100644
index 00000000..bb6a4c93
--- /dev/null
+++ b/components/shared/Icon/icons/generate/edit.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type EditProps = {
+ className?: string;
+};
+
+export default function Edit({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/explore.tsx b/components/shared/Icon/icons/generate/explore.tsx
new file mode 100644
index 00000000..fdf3e760
--- /dev/null
+++ b/components/shared/Icon/icons/generate/explore.tsx
@@ -0,0 +1,38 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ExploreProps = {
+ className?: string;
+};
+
+export default function Explore({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/full-screen.tsx b/components/shared/Icon/icons/generate/full-screen.tsx
new file mode 100644
index 00000000..592558d8
--- /dev/null
+++ b/components/shared/Icon/icons/generate/full-screen.tsx
@@ -0,0 +1,45 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type FullScreenProps = {
+ className?: string;
+};
+
+export default function FullScreen({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/gamepad.tsx b/components/shared/Icon/icons/generate/gamepad.tsx
new file mode 100644
index 00000000..a3d3c6ab
--- /dev/null
+++ b/components/shared/Icon/icons/generate/gamepad.tsx
@@ -0,0 +1,31 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type GamepadProps = {
+ className?: string;
+};
+
+export default function Gamepad({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/github.tsx b/components/shared/Icon/icons/generate/github.tsx
new file mode 100644
index 00000000..b6de2649
--- /dev/null
+++ b/components/shared/Icon/icons/generate/github.tsx
@@ -0,0 +1,21 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type GithubProps = {
+ className?: string;
+};
+
+export default function Github({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/google.tsx b/components/shared/Icon/icons/generate/google.tsx
new file mode 100644
index 00000000..98b83367
--- /dev/null
+++ b/components/shared/Icon/icons/generate/google.tsx
@@ -0,0 +1,33 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type GoogleProps = {
+ className?: string;
+};
+
+export default function Google({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/heart.tsx b/components/shared/Icon/icons/generate/heart.tsx
new file mode 100644
index 00000000..c7273455
--- /dev/null
+++ b/components/shared/Icon/icons/generate/heart.tsx
@@ -0,0 +1,23 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type HeartProps = {
+ className?: string;
+};
+
+export default function Heart({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/help-circle.tsx b/components/shared/Icon/icons/generate/help-circle.tsx
new file mode 100644
index 00000000..67c460ee
--- /dev/null
+++ b/components/shared/Icon/icons/generate/help-circle.tsx
@@ -0,0 +1,38 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type HelpCircleProps = {
+ className?: string;
+};
+
+export default function HelpCircle({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/home.tsx b/components/shared/Icon/icons/generate/home.tsx
new file mode 100644
index 00000000..1b65451c
--- /dev/null
+++ b/components/shared/Icon/icons/generate/home.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type HomeProps = {
+ className?: string;
+};
+
+export default function Home({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/host.tsx b/components/shared/Icon/icons/generate/host.tsx
new file mode 100644
index 00000000..1e191e7f
--- /dev/null
+++ b/components/shared/Icon/icons/generate/host.tsx
@@ -0,0 +1,155 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type HostProps = {
+ className?: string;
+};
+
+export default function Host({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/hot-air-balloon.tsx b/components/shared/Icon/icons/generate/hot-air-balloon.tsx
new file mode 100644
index 00000000..b3cce344
--- /dev/null
+++ b/components/shared/Icon/icons/generate/hot-air-balloon.tsx
@@ -0,0 +1,39 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type HotAirBalloonProps = {
+ className?: string;
+};
+
+export default function HotAirBalloon({
+ className,
+}: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/house-lock.tsx b/components/shared/Icon/icons/generate/house-lock.tsx
new file mode 100644
index 00000000..dea4751d
--- /dev/null
+++ b/components/shared/Icon/icons/generate/house-lock.tsx
@@ -0,0 +1,38 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type HouseLockProps = {
+ className?: string;
+};
+
+export default function HouseLock({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/house.tsx b/components/shared/Icon/icons/generate/house.tsx
new file mode 100644
index 00000000..a77a6517
--- /dev/null
+++ b/components/shared/Icon/icons/generate/house.tsx
@@ -0,0 +1,38 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type HouseProps = {
+ className?: string;
+};
+
+export default function House({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/leave-game.tsx b/components/shared/Icon/icons/generate/leave-game.tsx
new file mode 100644
index 00000000..78031fc8
--- /dev/null
+++ b/components/shared/Icon/icons/generate/leave-game.tsx
@@ -0,0 +1,31 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type LeaveGameProps = {
+ className?: string;
+};
+
+export default function LeaveGame({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/linkedin.tsx b/components/shared/Icon/icons/generate/linkedin.tsx
new file mode 100644
index 00000000..2b78af9a
--- /dev/null
+++ b/components/shared/Icon/icons/generate/linkedin.tsx
@@ -0,0 +1,25 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type LinkedinProps = {
+ className?: string;
+};
+
+export default function Linkedin({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/log-out.tsx b/components/shared/Icon/icons/generate/log-out.tsx
new file mode 100644
index 00000000..acd7406f
--- /dev/null
+++ b/components/shared/Icon/icons/generate/log-out.tsx
@@ -0,0 +1,45 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type LogOutProps = {
+ className?: string;
+};
+
+export default function LogOut({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/logo.tsx b/components/shared/Icon/icons/generate/logo.tsx
new file mode 100644
index 00000000..c5c406ee
--- /dev/null
+++ b/components/shared/Icon/icons/generate/logo.tsx
@@ -0,0 +1,47 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type LogoProps = {
+ className?: string;
+};
+
+export default function Logo({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/long-arrow-up-left.tsx b/components/shared/Icon/icons/generate/long-arrow-up-left.tsx
new file mode 100644
index 00000000..f843895c
--- /dev/null
+++ b/components/shared/Icon/icons/generate/long-arrow-up-left.tsx
@@ -0,0 +1,33 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type LongArrowUpLeftProps = {
+ className?: string;
+};
+
+export default function LongArrowUpLeft({
+ className,
+}: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/menu.tsx b/components/shared/Icon/icons/generate/menu.tsx
new file mode 100644
index 00000000..eacab00e
--- /dev/null
+++ b/components/shared/Icon/icons/generate/menu.tsx
@@ -0,0 +1,41 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type MenuProps = {
+ className?: string;
+};
+
+export default function Menu({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/move.tsx b/components/shared/Icon/icons/generate/move.tsx
new file mode 100644
index 00000000..1104aa27
--- /dev/null
+++ b/components/shared/Icon/icons/generate/move.tsx
@@ -0,0 +1,45 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type MoveProps = {
+ className?: string;
+};
+
+export default function Move({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/nav-arrow-down.tsx b/components/shared/Icon/icons/generate/nav-arrow-down.tsx
new file mode 100644
index 00000000..40abe5b4
--- /dev/null
+++ b/components/shared/Icon/icons/generate/nav-arrow-down.tsx
@@ -0,0 +1,26 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type NavArrowDownProps = {
+ className?: string;
+};
+
+export default function NavArrowDown({
+ className,
+}: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/nav-arrow-left.tsx b/components/shared/Icon/icons/generate/nav-arrow-left.tsx
new file mode 100644
index 00000000..b08ca596
--- /dev/null
+++ b/components/shared/Icon/icons/generate/nav-arrow-left.tsx
@@ -0,0 +1,26 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type NavArrowLeftProps = {
+ className?: string;
+};
+
+export default function NavArrowLeft({
+ className,
+}: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/nav-arrow-right.tsx b/components/shared/Icon/icons/generate/nav-arrow-right.tsx
new file mode 100644
index 00000000..1be52839
--- /dev/null
+++ b/components/shared/Icon/icons/generate/nav-arrow-right.tsx
@@ -0,0 +1,26 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type NavArrowRightProps = {
+ className?: string;
+};
+
+export default function NavArrowRight({
+ className,
+}: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/nonpublic.tsx b/components/shared/Icon/icons/generate/nonpublic.tsx
new file mode 100644
index 00000000..ea03b118
--- /dev/null
+++ b/components/shared/Icon/icons/generate/nonpublic.tsx
@@ -0,0 +1,31 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type NonpublicProps = {
+ className?: string;
+};
+
+export default function Nonpublic({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/notification.tsx b/components/shared/Icon/icons/generate/notification.tsx
new file mode 100644
index 00000000..89ceb74e
--- /dev/null
+++ b/components/shared/Icon/icons/generate/notification.tsx
@@ -0,0 +1,26 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type NotificationProps = {
+ className?: string;
+};
+
+export default function Notification({
+ className,
+}: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/play.tsx b/components/shared/Icon/icons/generate/play.tsx
new file mode 100644
index 00000000..6a08d14d
--- /dev/null
+++ b/components/shared/Icon/icons/generate/play.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type PlayProps = {
+ className?: string;
+};
+
+export default function Play({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/player.tsx b/components/shared/Icon/icons/generate/player.tsx
new file mode 100644
index 00000000..27c01e92
--- /dev/null
+++ b/components/shared/Icon/icons/generate/player.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type PlayerProps = {
+ className?: string;
+};
+
+export default function Player({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/plus.tsx b/components/shared/Icon/icons/generate/plus.tsx
new file mode 100644
index 00000000..15cf1b06
--- /dev/null
+++ b/components/shared/Icon/icons/generate/plus.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type PlusProps = {
+ className?: string;
+};
+
+export default function Plus({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/preview.tsx b/components/shared/Icon/icons/generate/preview.tsx
new file mode 100644
index 00000000..f883fcf9
--- /dev/null
+++ b/components/shared/Icon/icons/generate/preview.tsx
@@ -0,0 +1,32 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type PreviewProps = {
+ className?: string;
+};
+
+export default function Preview({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/refresh.tsx b/components/shared/Icon/icons/generate/refresh.tsx
new file mode 100644
index 00000000..630f0ec9
--- /dev/null
+++ b/components/shared/Icon/icons/generate/refresh.tsx
@@ -0,0 +1,45 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type RefreshProps = {
+ className?: string;
+};
+
+export default function Refresh({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/report-question.tsx b/components/shared/Icon/icons/generate/report-question.tsx
new file mode 100644
index 00000000..57e01c5b
--- /dev/null
+++ b/components/shared/Icon/icons/generate/report-question.tsx
@@ -0,0 +1,33 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ReportQuestionProps = {
+ className?: string;
+};
+
+export default function ReportQuestion({
+ className,
+}: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/search.tsx b/components/shared/Icon/icons/generate/search.tsx
new file mode 100644
index 00000000..d0af92df
--- /dev/null
+++ b/components/shared/Icon/icons/generate/search.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type SearchProps = {
+ className?: string;
+};
+
+export default function Search({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/sent.tsx b/components/shared/Icon/icons/generate/sent.tsx
new file mode 100644
index 00000000..1457dfe9
--- /dev/null
+++ b/components/shared/Icon/icons/generate/sent.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type SentProps = {
+ className?: string;
+};
+
+export default function Sent({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/sharing.tsx b/components/shared/Icon/icons/generate/sharing.tsx
new file mode 100644
index 00000000..dccb0955
--- /dev/null
+++ b/components/shared/Icon/icons/generate/sharing.tsx
@@ -0,0 +1,48 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type SharingProps = {
+ className?: string;
+};
+
+export default function Sharing({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/show-chat.tsx b/components/shared/Icon/icons/generate/show-chat.tsx
new file mode 100644
index 00000000..17284164
--- /dev/null
+++ b/components/shared/Icon/icons/generate/show-chat.tsx
@@ -0,0 +1,22 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ShowChatProps = {
+ className?: string;
+};
+
+export default function ShowChat({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/show-ui.tsx b/components/shared/Icon/icons/generate/show-ui.tsx
new file mode 100644
index 00000000..e968f643
--- /dev/null
+++ b/components/shared/Icon/icons/generate/show-ui.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type ShowUiProps = {
+ className?: string;
+};
+
+export default function ShowUi({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/sort.tsx b/components/shared/Icon/icons/generate/sort.tsx
new file mode 100644
index 00000000..a176d00b
--- /dev/null
+++ b/components/shared/Icon/icons/generate/sort.tsx
@@ -0,0 +1,52 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type SortProps = {
+ className?: string;
+};
+
+export default function Sort({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/spiral.tsx b/components/shared/Icon/icons/generate/spiral.tsx
new file mode 100644
index 00000000..15ab52cd
--- /dev/null
+++ b/components/shared/Icon/icons/generate/spiral.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type SpiralProps = {
+ className?: string;
+};
+
+export default function Spiral({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/star.tsx b/components/shared/Icon/icons/generate/star.tsx
new file mode 100644
index 00000000..04020eb8
--- /dev/null
+++ b/components/shared/Icon/icons/generate/star.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type StarProps = {
+ className?: string;
+};
+
+export default function Star({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/upload.tsx b/components/shared/Icon/icons/generate/upload.tsx
new file mode 100644
index 00000000..68616aa8
--- /dev/null
+++ b/components/shared/Icon/icons/generate/upload.tsx
@@ -0,0 +1,31 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type UploadProps = {
+ className?: string;
+};
+
+export default function Upload({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/user.tsx b/components/shared/Icon/icons/generate/user.tsx
new file mode 100644
index 00000000..c2534db5
--- /dev/null
+++ b/components/shared/Icon/icons/generate/user.tsx
@@ -0,0 +1,154 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type UserProps = {
+ className?: string;
+};
+
+export default function User({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/user_host.tsx b/components/shared/Icon/icons/generate/user_host.tsx
new file mode 100644
index 00000000..2988a0de
--- /dev/null
+++ b/components/shared/Icon/icons/generate/user_host.tsx
@@ -0,0 +1,161 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type User_hostProps = {
+ className?: string;
+};
+
+export default function User_host({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/generate/x.tsx b/components/shared/Icon/icons/generate/x.tsx
new file mode 100644
index 00000000..8f806b53
--- /dev/null
+++ b/components/shared/Icon/icons/generate/x.tsx
@@ -0,0 +1,24 @@
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+
+type XProps = {
+ className?: string;
+};
+
+export default function X({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/components/shared/Icon/icons/index.ts b/components/shared/Icon/icons/index.ts
index ece942ba..64155418 100644
--- a/components/shared/Icon/icons/index.ts
+++ b/components/shared/Icon/icons/index.ts
@@ -1,130 +1,116 @@
-import check from "./svgs/check.svg";
-import error from "./svgs/error.svg";
-import logo from "./svgs/logo.svg";
-import pending from "./svgs/pending.svg";
-import discord from "./svgs/discord.svg";
-import github from "./svgs/github.svg";
-import google from "./svgs/google.svg";
-import linkedin from "./svgs/linkedin.svg";
-import padlock from "./svgs/padlock.svg";
-import kickUser from "./svgs/kick_user.svg";
-
-import arcade from "./svgs/arcade.svg";
-import archeryMatch from "./svgs/archery-match.svg";
-import archery from "./svgs/archery.svg";
-import arrowLeftCircle from "./svgs/arrow-left-circle.svg";
-import arrowLeft from "./svgs/arrow-left.svg";
-import arrowRightCircle from "./svgs/arrow-right-circle.svg";
-import arrowRight from "./svgs/arrow-right.svg";
-import bounceRight from "./svgs/bounce-right.svg";
-import brightCrown from "./svgs/bright-crown.svg";
-import brightStar from "./svgs/bright-star.svg";
-import cellar from "./svgs/cellar.svg";
-import chatLines from "./svgs/chat-lines.svg";
-import chessRook from "./svgs/chess-rook.svg";
-import collectbook from "./svgs/collectbook.svg";
-import community from "./svgs/community.svg";
-import crown from "./svgs/crown.svg";
-import droplet from "./svgs/droplet.svg";
-import editPencil from "./svgs/edit-pencil.svg";
-import edit from "./svgs/edit.svg";
-import emoji from "./svgs/emoji.svg";
-import explore from "./svgs/explore.svg";
-import gamepadSimple from "./svgs/gamepad-simple.svg";
-import gamepad from "./svgs/gamepad.svg";
-import globe from "./svgs/globe.svg";
-import heart from "./svgs/heart.svg";
-import home from "./svgs/home.svg";
-import hotAirBalloon from "./svgs/hot-air-balloon.svg";
-import label from "./svgs/label.svg";
-import layout from "./svgs/layout.svg";
-import leaderboard from "./svgs/leaderboard.svg";
-import lens from "./svgs/lens.svg";
-import navArrowLeft from "./svgs/nav-arrow-left.svg";
-import navArrowRight from "./svgs/nav-arrow-right.svg";
-import neighbourhood from "./svgs/neighbourhood.svg";
-import pageLeft from "./svgs/page-left.svg";
-import pageRight from "./svgs/page-right.svg";
-import planimetry from "./svgs/planimetry.svg";
-import play from "./svgs/play.svg";
-import player from "./svgs/player.svg";
-import players from "./svgs/players.svg";
-import search from "./svgs/search.svg";
-import sendDiagonal from "./svgs/send-diagonal.svg";
-import sent from "./svgs/sent.svg";
-import sleeperChair from "./svgs/sleeper-chair.svg";
-import spiral from "./svgs/spiral.svg";
-import starDashed from "./svgs/star-dashed.svg";
-import starHalfDashed from "./svgs/star-half-dashed.svg";
-import star from "./svgs/star.svg";
-import tower from "./svgs/tower.svg";
-import trophy from "./svgs/trophy.svg";
-import tunnel from "./svgs/tunnel.svg";
-const icons = {
- logo,
- check,
- padlock,
- error,
- kickUser,
- pending,
- discord,
- google,
- linkedin,
- github,
-
- arcade,
- archeryMatch,
- archery,
- arrowLeftCircle,
- arrowLeft,
- arrowRightCircle,
- arrowRight,
- bounceRight,
- brightCrown,
- brightStar,
- cellar,
- chatLines,
- chessRook,
- collectbook,
- community,
- crown,
- droplet,
- editPencil,
- edit,
- emoji,
- explore,
- gamepadSimple,
- gamepad,
- globe,
- heart,
- home,
- hotAirBalloon,
- label,
- layout,
- leaderboard,
- lens,
- navArrowLeft,
- navArrowRight,
- neighbourhood,
- pageLeft,
- pageRight,
- planimetry,
- play,
- player,
- players,
- search,
- sendDiagonal,
- sent,
- sleeperChair,
- spiral,
- starDashed,
- starHalfDashed,
- star,
- tower,
- trophy,
- tunnel,
-};
-
-export type IconName = keyof typeof icons;
-
-export default icons;
+/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */
+export { default as Arcade } from "./generate/arcade";
+export { default as Archery } from "./generate/archery";
+export { default as ArrowLeft } from "./generate/arrow-left";
+export { default as ArrowRight } from "./generate/arrow-right";
+export { default as Badge } from "./generate/badge";
+export { default as BrightCrown } from "./generate/bright-crown";
+export { default as Calendar } from "./generate/calendar";
+export { default as Chat } from "./generate/chat";
+export { default as Check } from "./generate/check";
+export { default as ChessRook } from "./generate/chess-rook";
+export { default as Clock } from "./generate/clock";
+export { default as Collectbook } from "./generate/collectbook";
+export { default as Discord } from "./generate/discord";
+export { default as EditMode } from "./generate/edit-mode";
+export { default as Edit } from "./generate/edit";
+export { default as Explore } from "./generate/explore";
+export { default as FullScreen } from "./generate/full-screen";
+export { default as Gamepad } from "./generate/gamepad";
+export { default as Github } from "./generate/github";
+export { default as Google } from "./generate/google";
+export { default as Heart } from "./generate/heart";
+export { default as HelpCircle } from "./generate/help-circle";
+export { default as Home } from "./generate/home";
+export { default as Host } from "./generate/host";
+export { default as HotAirBalloon } from "./generate/hot-air-balloon";
+export { default as HouseLock } from "./generate/house-lock";
+export { default as House } from "./generate/house";
+export { default as LeaveGame } from "./generate/leave-game";
+export { default as Linkedin } from "./generate/linkedin";
+export { default as LogOut } from "./generate/log-out";
+export { default as Logo } from "./generate/logo";
+export { default as LongArrowUpLeft } from "./generate/long-arrow-up-left";
+export { default as Menu } from "./generate/menu";
+export { default as Move } from "./generate/move";
+export { default as NavArrowDown } from "./generate/nav-arrow-down";
+export { default as NavArrowLeft } from "./generate/nav-arrow-left";
+export { default as NavArrowRight } from "./generate/nav-arrow-right";
+export { default as Nonpublic } from "./generate/nonpublic";
+export { default as Notification } from "./generate/notification";
+export { default as Play } from "./generate/play";
+export { default as Player } from "./generate/player";
+export { default as Plus } from "./generate/plus";
+export { default as Preview } from "./generate/preview";
+export { default as Refresh } from "./generate/refresh";
+export { default as ReportQuestion } from "./generate/report-question";
+export { default as Search } from "./generate/search";
+export { default as Sent } from "./generate/sent";
+export { default as Sharing } from "./generate/sharing";
+export { default as ShowChat } from "./generate/show-chat";
+export { default as ShowUi } from "./generate/show-ui";
+export { default as Sort } from "./generate/sort";
+export { default as Spiral } from "./generate/spiral";
+export { default as Star } from "./generate/star";
+export { default as Upload } from "./generate/upload";
+export { default as User } from "./generate/user";
+export { default as User_host } from "./generate/user_host";
+export { default as X } from "./generate/x";
+export type IconName =
+ | "Arcade"
+ | "Archery"
+ | "ArrowLeft"
+ | "ArrowRight"
+ | "Badge"
+ | "BrightCrown"
+ | "Calendar"
+ | "Chat"
+ | "Check"
+ | "ChessRook"
+ | "Clock"
+ | "Collectbook"
+ | "Discord"
+ | "EditMode"
+ | "Edit"
+ | "Explore"
+ | "FullScreen"
+ | "Gamepad"
+ | "Github"
+ | "Google"
+ | "Heart"
+ | "HelpCircle"
+ | "Home"
+ | "Host"
+ | "HotAirBalloon"
+ | "HouseLock"
+ | "House"
+ | "LeaveGame"
+ | "Linkedin"
+ | "LogOut"
+ | "Logo"
+ | "LongArrowUpLeft"
+ | "Menu"
+ | "Move"
+ | "NavArrowDown"
+ | "NavArrowLeft"
+ | "NavArrowRight"
+ | "Nonpublic"
+ | "Notification"
+ | "Play"
+ | "Player"
+ | "Plus"
+ | "Preview"
+ | "Refresh"
+ | "ReportQuestion"
+ | "Search"
+ | "Sent"
+ | "Sharing"
+ | "ShowChat"
+ | "ShowUi"
+ | "Sort"
+ | "Spiral"
+ | "Star"
+ | "Upload"
+ | "User"
+ | "User_host"
+ | "X";
diff --git a/components/shared/Icon/icons/svgs/archery-match.svg b/components/shared/Icon/icons/svgs/archery-match.svg
deleted file mode 100644
index 5c7b52f4..00000000
--- a/components/shared/Icon/icons/svgs/archery-match.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/arrow-left-circle.svg b/components/shared/Icon/icons/svgs/arrow-left-circle.svg
deleted file mode 100644
index cef1962c..00000000
--- a/components/shared/Icon/icons/svgs/arrow-left-circle.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/arrow-right-circle.svg b/components/shared/Icon/icons/svgs/arrow-right-circle.svg
deleted file mode 100644
index 8e7ce11e..00000000
--- a/components/shared/Icon/icons/svgs/arrow-right-circle.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/arrow-right.svg b/components/shared/Icon/icons/svgs/arrow-right.svg
deleted file mode 100644
index 05ba6e59..00000000
--- a/components/shared/Icon/icons/svgs/arrow-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/bounce-right.svg b/components/shared/Icon/icons/svgs/bounce-right.svg
deleted file mode 100644
index b4e06605..00000000
--- a/components/shared/Icon/icons/svgs/bounce-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/bright-star.svg b/components/shared/Icon/icons/svgs/bright-star.svg
deleted file mode 100644
index 7a7ade4b..00000000
--- a/components/shared/Icon/icons/svgs/bright-star.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/cellar.svg b/components/shared/Icon/icons/svgs/cellar.svg
deleted file mode 100644
index 81935d2f..00000000
--- a/components/shared/Icon/icons/svgs/cellar.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/chat-lines.svg b/components/shared/Icon/icons/svgs/chat-lines.svg
deleted file mode 100644
index 7238253e..00000000
--- a/components/shared/Icon/icons/svgs/chat-lines.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/check.svg b/components/shared/Icon/icons/svgs/check.svg
deleted file mode 100644
index af453c48..00000000
--- a/components/shared/Icon/icons/svgs/check.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/components/shared/Icon/icons/svgs/collectbook.svg b/components/shared/Icon/icons/svgs/collectbook.svg
deleted file mode 100644
index 4ade3e06..00000000
--- a/components/shared/Icon/icons/svgs/collectbook.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/community.svg b/components/shared/Icon/icons/svgs/community.svg
deleted file mode 100644
index 2997f7b4..00000000
--- a/components/shared/Icon/icons/svgs/community.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/crown.svg b/components/shared/Icon/icons/svgs/crown.svg
deleted file mode 100644
index 9ae1a1e9..00000000
--- a/components/shared/Icon/icons/svgs/crown.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/discord.svg b/components/shared/Icon/icons/svgs/discord.svg
deleted file mode 100644
index 02cd9e67..00000000
--- a/components/shared/Icon/icons/svgs/discord.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/components/shared/Icon/icons/svgs/droplet.svg b/components/shared/Icon/icons/svgs/droplet.svg
deleted file mode 100644
index 74666767..00000000
--- a/components/shared/Icon/icons/svgs/droplet.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/edit-pencil.svg b/components/shared/Icon/icons/svgs/edit-pencil.svg
deleted file mode 100644
index d2688598..00000000
--- a/components/shared/Icon/icons/svgs/edit-pencil.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/edit.svg b/components/shared/Icon/icons/svgs/edit.svg
deleted file mode 100644
index 680bf061..00000000
--- a/components/shared/Icon/icons/svgs/edit.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/emoji.svg b/components/shared/Icon/icons/svgs/emoji.svg
deleted file mode 100644
index 8921b36d..00000000
--- a/components/shared/Icon/icons/svgs/emoji.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/error.svg b/components/shared/Icon/icons/svgs/error.svg
deleted file mode 100644
index 62e8784c..00000000
--- a/components/shared/Icon/icons/svgs/error.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/components/shared/Icon/icons/svgs/gamepad-simple.svg b/components/shared/Icon/icons/svgs/gamepad-simple.svg
deleted file mode 100644
index 1011e31e..00000000
--- a/components/shared/Icon/icons/svgs/gamepad-simple.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/gamepad.svg b/components/shared/Icon/icons/svgs/gamepad.svg
deleted file mode 100644
index 8a12ef7f..00000000
--- a/components/shared/Icon/icons/svgs/gamepad.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/github.svg b/components/shared/Icon/icons/svgs/github.svg
deleted file mode 100644
index 40e8178e..00000000
--- a/components/shared/Icon/icons/svgs/github.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/components/shared/Icon/icons/svgs/globe.svg b/components/shared/Icon/icons/svgs/globe.svg
deleted file mode 100644
index 2cf1d099..00000000
--- a/components/shared/Icon/icons/svgs/globe.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/google.svg b/components/shared/Icon/icons/svgs/google.svg
deleted file mode 100644
index 2c272733..00000000
--- a/components/shared/Icon/icons/svgs/google.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/components/shared/Icon/icons/svgs/heart.svg b/components/shared/Icon/icons/svgs/heart.svg
deleted file mode 100644
index 3d069cfc..00000000
--- a/components/shared/Icon/icons/svgs/heart.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/kick_user.svg b/components/shared/Icon/icons/svgs/kick_user.svg
deleted file mode 100644
index 1162b676..00000000
--- a/components/shared/Icon/icons/svgs/kick_user.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/label.svg b/components/shared/Icon/icons/svgs/label.svg
deleted file mode 100644
index 5638ec16..00000000
--- a/components/shared/Icon/icons/svgs/label.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/layout.svg b/components/shared/Icon/icons/svgs/layout.svg
deleted file mode 100644
index e5b2d189..00000000
--- a/components/shared/Icon/icons/svgs/layout.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/leaderboard.svg b/components/shared/Icon/icons/svgs/leaderboard.svg
deleted file mode 100644
index a8dfa5d8..00000000
--- a/components/shared/Icon/icons/svgs/leaderboard.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/lens.svg b/components/shared/Icon/icons/svgs/lens.svg
deleted file mode 100644
index 4db5a1af..00000000
--- a/components/shared/Icon/icons/svgs/lens.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/linkedin.svg b/components/shared/Icon/icons/svgs/linkedin.svg
deleted file mode 100644
index 3b9cc056..00000000
--- a/components/shared/Icon/icons/svgs/linkedin.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/components/shared/Icon/icons/svgs/logo.svg b/components/shared/Icon/icons/svgs/logo.svg
deleted file mode 100644
index 422e9ed5..00000000
--- a/components/shared/Icon/icons/svgs/logo.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/nav-arrow-left.svg b/components/shared/Icon/icons/svgs/nav-arrow-left.svg
deleted file mode 100644
index 97b6816f..00000000
--- a/components/shared/Icon/icons/svgs/nav-arrow-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/nav-arrow-right.svg b/components/shared/Icon/icons/svgs/nav-arrow-right.svg
deleted file mode 100644
index 44cd88d4..00000000
--- a/components/shared/Icon/icons/svgs/nav-arrow-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/neighbourhood.svg b/components/shared/Icon/icons/svgs/neighbourhood.svg
deleted file mode 100644
index 0888aa3a..00000000
--- a/components/shared/Icon/icons/svgs/neighbourhood.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/padlock.svg b/components/shared/Icon/icons/svgs/padlock.svg
deleted file mode 100644
index 274a1783..00000000
--- a/components/shared/Icon/icons/svgs/padlock.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/components/shared/Icon/icons/svgs/page-left.svg b/components/shared/Icon/icons/svgs/page-left.svg
deleted file mode 100644
index 9910ff48..00000000
--- a/components/shared/Icon/icons/svgs/page-left.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/page-right.svg b/components/shared/Icon/icons/svgs/page-right.svg
deleted file mode 100644
index 5f64ab35..00000000
--- a/components/shared/Icon/icons/svgs/page-right.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/pending.svg b/components/shared/Icon/icons/svgs/pending.svg
deleted file mode 100644
index 25e83812..00000000
--- a/components/shared/Icon/icons/svgs/pending.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/components/shared/Icon/icons/svgs/planimetry.svg b/components/shared/Icon/icons/svgs/planimetry.svg
deleted file mode 100644
index d4b66304..00000000
--- a/components/shared/Icon/icons/svgs/planimetry.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/play.svg b/components/shared/Icon/icons/svgs/play.svg
deleted file mode 100644
index ac9c3099..00000000
--- a/components/shared/Icon/icons/svgs/play.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/players.svg b/components/shared/Icon/icons/svgs/players.svg
deleted file mode 100644
index ed11bc41..00000000
--- a/components/shared/Icon/icons/svgs/players.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/send-diagonal.svg b/components/shared/Icon/icons/svgs/send-diagonal.svg
deleted file mode 100644
index 4b901a59..00000000
--- a/components/shared/Icon/icons/svgs/send-diagonal.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/sent.svg b/components/shared/Icon/icons/svgs/sent.svg
deleted file mode 100644
index e919193c..00000000
--- a/components/shared/Icon/icons/svgs/sent.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/sleeper-chair.svg b/components/shared/Icon/icons/svgs/sleeper-chair.svg
deleted file mode 100644
index 2eed7eb4..00000000
--- a/components/shared/Icon/icons/svgs/sleeper-chair.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/star-dashed.svg b/components/shared/Icon/icons/svgs/star-dashed.svg
deleted file mode 100644
index 42111d21..00000000
--- a/components/shared/Icon/icons/svgs/star-dashed.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/star-half-dashed.svg b/components/shared/Icon/icons/svgs/star-half-dashed.svg
deleted file mode 100644
index a06412da..00000000
--- a/components/shared/Icon/icons/svgs/star-half-dashed.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/tower.svg b/components/shared/Icon/icons/svgs/tower.svg
deleted file mode 100644
index 3a92c57c..00000000
--- a/components/shared/Icon/icons/svgs/tower.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/trophy.svg b/components/shared/Icon/icons/svgs/trophy.svg
deleted file mode 100644
index f649cd24..00000000
--- a/components/shared/Icon/icons/svgs/trophy.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/icons/svgs/tunnel.svg b/components/shared/Icon/icons/svgs/tunnel.svg
deleted file mode 100644
index 36a49943..00000000
--- a/components/shared/Icon/icons/svgs/tunnel.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/components/shared/Icon/index.tsx b/components/shared/Icon/index.tsx
index 86b8c417..3b6e79cb 100644
--- a/components/shared/Icon/index.tsx
+++ b/components/shared/Icon/index.tsx
@@ -1,2 +1,2 @@
-import Icon from "./Icon";
-export default Icon;
+export type { IconName } from "./icons";
+export { default } from "./Icon";
diff --git a/components/shared/Icon/v2/Icon.tsx b/components/shared/Icon/v2/Icon.tsx
deleted file mode 100644
index 01d560d7..00000000
--- a/components/shared/Icon/v2/Icon.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-import type { ClassValue } from "clsx";
-import { cn } from "@/lib/utils";
-import icons, { IconNameV2 } from "./icons";
-import { HTMLProps } from "react";
-
-type IconProps = {
- name: IconNameV2;
- className?: ClassValue;
- style?: React.CSSProperties;
-};
-
-/**
- * 新增 Svg 可以將檔案放至 `@/components/shared/Icon/v2/icons/svgs` 裡,
- * 在 `@/components/shared/Icon/v2/icons/index.ts` 引入 svg
- * 並放入 **icons** 這個物件,即可使用
- */
-const Icon = (props: IconProps) => {
- const { className, name, ...rest } = props;
- const transformClassName = cn("stroke-basic-black", className);
- const SvgIcon: React.FC> = name && icons[name];
-
- return ;
-};
-
-export default Icon;
diff --git a/components/shared/Icon/v2/icon.stories.tsx b/components/shared/Icon/v2/icon.stories.tsx
deleted file mode 100644
index 579a7d10..00000000
--- a/components/shared/Icon/v2/icon.stories.tsx
+++ /dev/null
@@ -1,92 +0,0 @@
-import type { Meta, StoryObj } from "@storybook/react";
-import { MouseEventHandler, useState } from "react";
-
-import IconV2 from ".";
-import icons from "./icons";
-import { keys } from "@/lib/utils";
-import { Input } from "@/components/shared/Input";
-import { ToastQueueProvider, useToast } from "@/components/shared/Toast";
-
-const meta: Meta = {
- title: "General/IconV2",
- component: IconV2,
- tags: ["autodocs"],
- decorators: [
- (Story) => (
-
-
-
-
-
- ),
- ],
-};
-
-export default meta;
-
-type Story = StoryObj;
-
-export const Playground: Story = {
- render: (args) => ,
-};
-
-Playground.args = {
- name: "arcade",
- className: "w-9 h-9",
-};
-
-const AllIcons = () => {
- const [value, setValue] = useState("");
- const toast = useToast();
-
- const handleClick =
- (iconName: string): MouseEventHandler =>
- (e) => {
- e.stopPropagation();
-
- const cb = navigator.clipboard;
- const text = ``;
-
- toast({ children: "已複製成功!!" }, { duration: 1000 });
-
- cb.writeText(text).then();
- };
-
- return (
- <>
-
- 點擊 icon 即可複製
-
-
-
- {keys(icons)
- .filter((iconName) => iconName.includes(value))
- .map((iconName) => (
-
- ))}
-
- >
- );
-};
-
-export const All: Story = {
- render: () => ,
-};
diff --git a/components/shared/Icon/v2/icon.test.tsx b/components/shared/Icon/v2/icon.test.tsx
deleted file mode 100644
index 67d0484e..00000000
--- a/components/shared/Icon/v2/icon.test.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-import React from "react";
-import { render } from "@testing-library/react";
-import "@testing-library/jest-dom";
-import Icon from "./index";
-import type { IconNameV2 } from "./icons";
-
-jest.mock("path/to/image.svg", () => "svg");
-
-describe("IconV2", () => {
- const TEST_ICON_NAME: IconNameV2 = "arcade";
- it("should render Icon with correct name", () => {
- const { container } = render();
-
- const svg = container.querySelector("svg");
- expect(svg).toBeInTheDocument();
- });
-
- it("should render Icon with correct class name", () => {
- const { container } = render(
-
- );
-
- const svg = container.querySelector("svg");
- expect(svg).toHaveClass("stroke-red-500");
- expect(svg).toHaveClass("fill-black");
- });
-
- it("should render Icon with correct style", () => {
- const { container } = render(
-
- );
-
- const svg = container.querySelector("svg");
- expect(svg).toHaveStyle("width: 20px");
- expect(svg).toHaveStyle("height: 20px");
- expect(svg).toHaveStyle("stroke: red");
- expect(svg).toHaveStyle("fill: aqua");
- });
-});
diff --git a/components/shared/Icon/v2/icons/index.ts b/components/shared/Icon/v2/icons/index.ts
deleted file mode 100644
index 1f8f3d46..00000000
--- a/components/shared/Icon/v2/icons/index.ts
+++ /dev/null
@@ -1,95 +0,0 @@
-import arcade from "./svgs/arcade.svg";
-import archery from "./svgs/archery.svg";
-import arrowLeft from "./svgs/arrow-left.svg";
-import arrowRight from "./svgs/arrow-right.svg";
-import brightCrown from "./svgs/bright-crown.svg";
-import calendar from "./svgs/calendar.svg";
-import chatDefault from "./svgs/chat-default.svg";
-import chatUpdates from "./svgs/chat-updates.svg";
-import chessRook from "./svgs/chess-rook.svg";
-import clock from "./svgs/clock.svg";
-import collectbook from "./svgs/collectbook.svg";
-import discord from "./svgs/discord.svg";
-import edit from "./svgs/edit.svg";
-import editMode from "./svgs/edit-mode.svg";
-import explore from "./svgs/explore.svg";
-import frame from "./svgs/frame.svg";
-import gamepad from "./svgs/gamepad.svg";
-import github from "./svgs/github.svg";
-import google from "./svgs/google.svg";
-import heart from "./svgs/heart.svg";
-import helpCircle from "./svgs/help-circle.svg";
-import home from "./svgs/home.svg";
-import hotAirBalloon from "./svgs/hot-air-balloon.svg";
-import house from "./svgs/house.svg";
-import houseLock from "./svgs/house-lock.svg";
-import leadingIcon from "./svgs/leading-icon.svg";
-import linkedin from "./svgs/linkedin.svg";
-import logOut from "./svgs/log-out.svg";
-import longArrowUpLeft from "./svgs/long-arrow-up-left.svg";
-import navArrowLeft from "./svgs/nav-arrow-left.svg";
-import navArrowRight from "./svgs/nav-arrow-right.svg";
-import nonpublic from "./svgs/nonpublic.svg";
-import notificationDefault from "./svgs/notification-default.svg";
-import notificationUpdates from "./svgs/notification-updates.svg";
-import player from "./svgs/player.svg";
-import preview from "./svgs/preview.svg";
-import refresh from "./svgs/refresh.svg";
-import search from "./svgs/search.svg";
-import sent from "./svgs/sent.svg";
-import sharing from "./svgs/sharing.svg";
-import sort from "./svgs/sort.svg";
-import spiral from "./svgs/spiral.svg";
-import star from "./svgs/star.svg";
-import x from "./svgs/x.svg";
-
-const icons = {
- arcade,
- archery,
- arrowLeft,
- arrowRight,
- brightCrown,
- calendar,
- chatDefault,
- chatUpdates,
- chessRook,
- clock,
- collectbook,
- discord,
- edit,
- editMode,
- explore,
- frame,
- gamepad,
- github,
- google,
- heart,
- helpCircle,
- home,
- hotAirBalloon,
- house,
- houseLock,
- leadingIcon,
- linkedin,
- logOut,
- longArrowUpLeft,
- navArrowLeft,
- navArrowRight,
- nonpublic,
- notificationDefault,
- notificationUpdates,
- player,
- preview,
- refresh,
- search,
- sent,
- sharing,
- sort,
- spiral,
- star,
- x,
-};
-
-export type IconNameV2 = keyof typeof icons;
-
-export default icons;
diff --git a/components/shared/Icon/v2/icons/svgs/arcade.svg b/components/shared/Icon/v2/icons/svgs/arcade.svg
deleted file mode 100644
index c74677c0..00000000
--- a/components/shared/Icon/v2/icons/svgs/arcade.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/archery.svg b/components/shared/Icon/v2/icons/svgs/archery.svg
deleted file mode 100644
index 22e6cd32..00000000
--- a/components/shared/Icon/v2/icons/svgs/archery.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/arrow-left.svg b/components/shared/Icon/v2/icons/svgs/arrow-left.svg
deleted file mode 100644
index 0d407538..00000000
--- a/components/shared/Icon/v2/icons/svgs/arrow-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/arrow-right.svg b/components/shared/Icon/v2/icons/svgs/arrow-right.svg
deleted file mode 100644
index c51c7c37..00000000
--- a/components/shared/Icon/v2/icons/svgs/arrow-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/bright-crown.svg b/components/shared/Icon/v2/icons/svgs/bright-crown.svg
deleted file mode 100644
index b1480d27..00000000
--- a/components/shared/Icon/v2/icons/svgs/bright-crown.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/calendar.svg b/components/shared/Icon/v2/icons/svgs/calendar.svg
deleted file mode 100644
index 116d3253..00000000
--- a/components/shared/Icon/v2/icons/svgs/calendar.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/chat-default.svg b/components/shared/Icon/v2/icons/svgs/chat-default.svg
deleted file mode 100644
index c6b2b78e..00000000
--- a/components/shared/Icon/v2/icons/svgs/chat-default.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/chat-updates.svg b/components/shared/Icon/v2/icons/svgs/chat-updates.svg
deleted file mode 100644
index dae6033a..00000000
--- a/components/shared/Icon/v2/icons/svgs/chat-updates.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/chess-rook.svg b/components/shared/Icon/v2/icons/svgs/chess-rook.svg
deleted file mode 100644
index 65486c08..00000000
--- a/components/shared/Icon/v2/icons/svgs/chess-rook.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/clock.svg b/components/shared/Icon/v2/icons/svgs/clock.svg
deleted file mode 100644
index a68132c4..00000000
--- a/components/shared/Icon/v2/icons/svgs/clock.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/collectbook.svg b/components/shared/Icon/v2/icons/svgs/collectbook.svg
deleted file mode 100644
index 9b12e6ab..00000000
--- a/components/shared/Icon/v2/icons/svgs/collectbook.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/explore.svg b/components/shared/Icon/v2/icons/svgs/explore.svg
deleted file mode 100644
index 4b4660e1..00000000
--- a/components/shared/Icon/v2/icons/svgs/explore.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/frame.svg b/components/shared/Icon/v2/icons/svgs/frame.svg
deleted file mode 100644
index 0a313b10..00000000
--- a/components/shared/Icon/v2/icons/svgs/frame.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/gamepad.svg b/components/shared/Icon/v2/icons/svgs/gamepad.svg
deleted file mode 100644
index 8cc582c3..00000000
--- a/components/shared/Icon/v2/icons/svgs/gamepad.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/help-circle.svg b/components/shared/Icon/v2/icons/svgs/help-circle.svg
deleted file mode 100644
index a90e5809..00000000
--- a/components/shared/Icon/v2/icons/svgs/help-circle.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/home.svg b/components/shared/Icon/v2/icons/svgs/home.svg
deleted file mode 100644
index ce4e78fd..00000000
--- a/components/shared/Icon/v2/icons/svgs/home.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/hot-air-balloon.svg b/components/shared/Icon/v2/icons/svgs/hot-air-balloon.svg
deleted file mode 100644
index 9c107ff3..00000000
--- a/components/shared/Icon/v2/icons/svgs/hot-air-balloon.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/house-lock.svg b/components/shared/Icon/v2/icons/svgs/house-lock.svg
deleted file mode 100644
index fb497c6e..00000000
--- a/components/shared/Icon/v2/icons/svgs/house-lock.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/house.svg b/components/shared/Icon/v2/icons/svgs/house.svg
deleted file mode 100644
index ecba2774..00000000
--- a/components/shared/Icon/v2/icons/svgs/house.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/log-out.svg b/components/shared/Icon/v2/icons/svgs/log-out.svg
deleted file mode 100644
index 68d98a61..00000000
--- a/components/shared/Icon/v2/icons/svgs/log-out.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/long-arrow-up-left.svg b/components/shared/Icon/v2/icons/svgs/long-arrow-up-left.svg
deleted file mode 100644
index 350137b3..00000000
--- a/components/shared/Icon/v2/icons/svgs/long-arrow-up-left.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/nav-arrow-left.svg b/components/shared/Icon/v2/icons/svgs/nav-arrow-left.svg
deleted file mode 100644
index 94c664fa..00000000
--- a/components/shared/Icon/v2/icons/svgs/nav-arrow-left.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/nav-arrow-right.svg b/components/shared/Icon/v2/icons/svgs/nav-arrow-right.svg
deleted file mode 100644
index 892847de..00000000
--- a/components/shared/Icon/v2/icons/svgs/nav-arrow-right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/nonpublic.svg b/components/shared/Icon/v2/icons/svgs/nonpublic.svg
deleted file mode 100644
index e069f361..00000000
--- a/components/shared/Icon/v2/icons/svgs/nonpublic.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/notification-updates.svg b/components/shared/Icon/v2/icons/svgs/notification-updates.svg
deleted file mode 100644
index 7ee73e64..00000000
--- a/components/shared/Icon/v2/icons/svgs/notification-updates.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/player.svg b/components/shared/Icon/v2/icons/svgs/player.svg
deleted file mode 100644
index ef9bbdee..00000000
--- a/components/shared/Icon/v2/icons/svgs/player.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/preview.svg b/components/shared/Icon/v2/icons/svgs/preview.svg
deleted file mode 100644
index 544056ae..00000000
--- a/components/shared/Icon/v2/icons/svgs/preview.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/refresh.svg b/components/shared/Icon/v2/icons/svgs/refresh.svg
deleted file mode 100644
index 49df0a37..00000000
--- a/components/shared/Icon/v2/icons/svgs/refresh.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/search.svg b/components/shared/Icon/v2/icons/svgs/search.svg
deleted file mode 100644
index e6adfbe5..00000000
--- a/components/shared/Icon/v2/icons/svgs/search.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/sent.svg b/components/shared/Icon/v2/icons/svgs/sent.svg
deleted file mode 100644
index a19eeb04..00000000
--- a/components/shared/Icon/v2/icons/svgs/sent.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/sharing.svg b/components/shared/Icon/v2/icons/svgs/sharing.svg
deleted file mode 100644
index a3a47c39..00000000
--- a/components/shared/Icon/v2/icons/svgs/sharing.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/sort.svg b/components/shared/Icon/v2/icons/svgs/sort.svg
deleted file mode 100644
index 532b21e0..00000000
--- a/components/shared/Icon/v2/icons/svgs/sort.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/spiral.svg b/components/shared/Icon/v2/icons/svgs/spiral.svg
deleted file mode 100644
index ab64bda6..00000000
--- a/components/shared/Icon/v2/icons/svgs/spiral.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/star.svg b/components/shared/Icon/v2/icons/svgs/star.svg
deleted file mode 100644
index fb86baa5..00000000
--- a/components/shared/Icon/v2/icons/svgs/star.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/icons/svgs/x.svg b/components/shared/Icon/v2/icons/svgs/x.svg
deleted file mode 100644
index 5339d36e..00000000
--- a/components/shared/Icon/v2/icons/svgs/x.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/components/shared/Icon/v2/index.tsx b/components/shared/Icon/v2/index.tsx
deleted file mode 100644
index 900bb84a..00000000
--- a/components/shared/Icon/v2/index.tsx
+++ /dev/null
@@ -1,2 +0,0 @@
-import IconV2 from "./Icon";
-export default IconV2;
diff --git a/components/shared/SearchBar/SearchBar.tsx b/components/shared/SearchBar/SearchBar.tsx
index 3ad93817..cbeceb31 100644
--- a/components/shared/SearchBar/SearchBar.tsx
+++ b/components/shared/SearchBar/SearchBar.tsx
@@ -1,5 +1,5 @@
import { ReactNode, useState } from "react";
-import Icon from "../Icon/v2/Icon";
+import Icon from "@/components/shared/Icon";
interface SearchBarProps {
/** The placeholder text displayed in the search bar when it is empty */
@@ -23,7 +23,7 @@ export const SearchBar = ({
leftSlot,
buttonSlot = (
),
diff --git a/components/shared/Sidebar.tsx b/components/shared/Sidebar.tsx
index 8d4b2232..9637b068 100644
--- a/components/shared/Sidebar.tsx
+++ b/components/shared/Sidebar.tsx
@@ -1,8 +1,7 @@
import Link from "next/link";
import { useRouter } from "next/router";
-import type { IconNameV2 } from "@/components/shared/Icon/v2/icons";
-import Icon from "@/components/shared/Icon/v2";
+import Icon, { IconName } from "@/components/shared/Icon";
import Button from "@/components/shared/Button";
import useAuth from "@/hooks/context/useAuth";
import useUser from "@/hooks/useUser";
@@ -15,7 +14,7 @@ enum SidebarRoutes {
interface RouteProps {
text: string;
- iconName: IconNameV2;
+ iconName: IconName;
route: `${SidebarRoutes}${string}`;
isShow: boolean;
}
@@ -33,19 +32,19 @@ export default function Sidebar({ className }: SidebarProps) {
const routes: RouteProps[] = [
{
text: "遊戲大廳",
- iconName: "home",
+ iconName: "Home",
route: SidebarRoutes.HOME,
isShow: true,
},
{
text: "遊戲房間",
- iconName: "arcade",
+ iconName: "Arcade",
route: SidebarRoutes.ROOMS,
isShow: !roomId,
},
{
text: "遊戲房間",
- iconName: "arcade",
+ iconName: "Arcade",
route: `${SidebarRoutes.ROOMS}/${roomId}`,
isShow: !!roomId,
},
@@ -93,7 +92,7 @@ export default function Sidebar({ className }: SidebarProps) {
className="mt-auto bg-transparent px-0 justify-center opacity-[0.3] hover:shadow-none hover:opacity-100"
onClick={logout}
>
-
+
登出
)}
diff --git a/components/util/history/ApiHistoryItem.tsx b/components/util/history/ApiHistoryItem.tsx
index c783c9bd..6dedc5de 100644
--- a/components/util/history/ApiHistoryItem.tsx
+++ b/components/util/history/ApiHistoryItem.tsx
@@ -1,21 +1,20 @@
import { ApiHistory, Status } from "@/contexts/HistoryContext";
-import Icon from "@/components/shared/Icon";
-import { IconName } from "@/components/shared/Icon/icons";
+import Icon, { IconName } from "@/components/shared/Icon";
const ApiHistoryItem = (props: ApiHistory) => {
let color = "";
let iconName: IconName;
switch (props.status) {
case Status.RESOLVED:
- iconName = "check";
+ iconName = "Check";
color = "text-green-500";
break;
case Status.REJECTED:
- iconName = "error";
+ iconName = "X";
color = "text-red-500";
break;
default:
- iconName = "pending";
+ iconName = "Nonpublic";
color = "text-zinc-400";
}
diff --git a/components/util/history/WsHistoryItem.tsx b/components/util/history/WsHistoryItem.tsx
index e8e187a5..b223d0cf 100644
--- a/components/util/history/WsHistoryItem.tsx
+++ b/components/util/history/WsHistoryItem.tsx
@@ -19,7 +19,7 @@ const WsHistoryItem = (props: WebSocketHistory) => {
const arrowIcon = {
[WebSocketHistoryType.SEND]: (
{
),
[WebSocketHistoryType.RECEIVE]: (
{
),
[WebSocketHistoryType.CONNECTION]: (
{
@@ -103,7 +102,7 @@ const Login: NextPageWithProps = () => {
) : null}
-
+
遊戲微服務大平台
{!bye ? (
diff --git a/scripts/generateIconExports/index.ts b/scripts/generateIconExports/index.ts
new file mode 100644
index 00000000..8f4dd1f6
--- /dev/null
+++ b/scripts/generateIconExports/index.ts
@@ -0,0 +1,28 @@
+import fs from "fs";
+import path from "path";
+
+const rootDir = path.join(__dirname, "../../");
+const iconsDir = path.join(rootDir, "/components/shared/Icon/icons/generate");
+const exportFile = path.join(rootDir, "/components/shared/Icon/icons/index.ts");
+
+(async () => {
+ const files = await fs.promises.readdir(iconsDir);
+ const iconComponents = files.filter((file) => file.endsWith(".tsx"));
+
+ const exportNames: string[] = [];
+ let exportString =
+ "/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */\n";
+
+ iconComponents.forEach((component) => {
+ const fileName = component.split(".")[0];
+ const upperCaseFileName = fileName
+ .replace(/-([a-z])/g, (_, letter) => letter.toUpperCase())
+ .replace(/^[a-z]/, (match) => match.toUpperCase());
+ exportString += `export { default as ${upperCaseFileName} } from "./generate/${fileName}";\n`;
+ exportNames.push(`"${upperCaseFileName}"`);
+ });
+
+ exportString += `export type IconName = ${exportNames.join(" | ")}\n`;
+
+ await fs.promises.writeFile(exportFile, exportString, "utf-8");
+})();
diff --git a/scripts/iconConverter/IconTemplate.tsx b/scripts/iconConverter/IconTemplate.tsx
new file mode 100644
index 00000000..7f56b478
--- /dev/null
+++ b/scripts/iconConverter/IconTemplate.tsx
@@ -0,0 +1,11 @@
+type IconNameProps = {
+ className?: string;
+};
+
+export default function IconName({ className }: Readonly) {
+ return (
+
+ );
+}
diff --git a/scripts/iconConverter/index.ts b/scripts/iconConverter/index.ts
new file mode 100644
index 00000000..4513351f
--- /dev/null
+++ b/scripts/iconConverter/index.ts
@@ -0,0 +1,86 @@
+import fs from "fs";
+import path from "path";
+import { parse } from "node-html-parser";
+
+const rootDir = path.join(__dirname, "../../");
+const iconsDir = path.join(rootDir, "/assets/icons");
+const outputDir = path.join(rootDir, "/components/shared/Icon/icons/generate");
+const iconTemplate = fs.readFileSync(
+ path.join(__dirname, "iconTemplate.tsx"),
+ "utf-8"
+);
+
+const convertHtmlToJsx = (htmlString: string) => {
+ let jsxString = htmlString.replace(
+ /style="([^"]*)"/g,
+ (_, styles: string) => {
+ const styleObject = Object.fromEntries(
+ styles.split(";").map((style) => {
+ const [key, value] = style.split(":");
+ const camelCaseKey = key.replace(/-([a-z])/g, (_, letter: string) =>
+ letter.toUpperCase()
+ );
+ return [camelCaseKey, value];
+ })
+ );
+
+ return `style={${JSON.stringify(styleObject)}}`;
+ }
+ );
+
+ jsxString = jsxString.replace(
+ /([a-z])-([a-z])/g,
+ (_, p1, p2) => p1 + p2.toUpperCase()
+ );
+
+ return jsxString;
+};
+
+(async () => {
+ const files = await fs.promises.readdir(iconsDir);
+ const iconFiles = files.filter((file) => file.endsWith(".svg"));
+
+ await Promise.all(
+ iconFiles.map(async (file) => {
+ const fileName = file.split(".")[0];
+ const inputFile = path.join(iconsDir, file);
+ const html = await fs.promises.readFile(inputFile, "utf-8");
+ const svg = parse(html).querySelector("svg");
+
+ if (!svg) {
+ console.error(`No SVG found in ${inputFile}`);
+ return;
+ }
+
+ const wrapperAttributes = Object.entries(svg.attributes)
+ .filter(([key]) => !["width", "height"].includes(key))
+ .map(([key, value]) => `${key}="${value}"`)
+ .join(" ");
+
+ const content = svg.childNodes.map((node) => node.toString()).join("");
+ const outputFile = path.join(outputDir, `${fileName}.tsx`);
+ const upperCaseFileName = fileName
+ .replace(/-([a-z])/g, (_, letter) => letter.toUpperCase())
+ .replace(/^[a-z]/, (match) => match.toUpperCase());
+ let iconString = iconTemplate
+ .replace("replace-attributes", wrapperAttributes)
+ .replace("replace-content", convertHtmlToJsx(content))
+ .replace(/black/g, "currentColor")
+ .replace(/IconName/g, upperCaseFileName);
+
+ iconString = `/** This file is auto-generated by icon-convert script. Do not modify directly as changes may be overwritten. */\n\n${iconString}`;
+
+ try {
+ await fs.promises.readdir(outputDir);
+ } catch {
+ await fs.promises.mkdir(outputDir);
+ }
+
+ try {
+ await fs.promises.writeFile(outputFile, iconString, "utf-8");
+ } catch {
+ await fs.promises.appendFile(outputFile, iconString, "utf-8");
+ }
+ })
+ );
+})();
diff --git a/yarn.lock b/yarn.lock
index 7cbcc155..3e5422d3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1385,116 +1385,236 @@
resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963"
integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==
+"@esbuild/aix-ppc64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353"
+ integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==
+
"@esbuild/android-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
+"@esbuild/android-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018"
+ integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==
+
"@esbuild/android-arm@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
+"@esbuild/android-arm@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee"
+ integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==
+
"@esbuild/android-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
+"@esbuild/android-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517"
+ integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==
+
"@esbuild/darwin-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
+"@esbuild/darwin-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16"
+ integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==
+
"@esbuild/darwin-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
+"@esbuild/darwin-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931"
+ integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==
+
"@esbuild/freebsd-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
+"@esbuild/freebsd-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc"
+ integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==
+
"@esbuild/freebsd-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
+"@esbuild/freebsd-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730"
+ integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==
+
"@esbuild/linux-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
+"@esbuild/linux-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383"
+ integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==
+
"@esbuild/linux-arm@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
+"@esbuild/linux-arm@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771"
+ integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==
+
"@esbuild/linux-ia32@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
+"@esbuild/linux-ia32@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333"
+ integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==
+
"@esbuild/linux-loong64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
+"@esbuild/linux-loong64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac"
+ integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==
+
"@esbuild/linux-mips64el@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
+"@esbuild/linux-mips64el@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6"
+ integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==
+
"@esbuild/linux-ppc64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
+"@esbuild/linux-ppc64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96"
+ integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==
+
"@esbuild/linux-riscv64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
+"@esbuild/linux-riscv64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7"
+ integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==
+
"@esbuild/linux-s390x@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
+"@esbuild/linux-s390x@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f"
+ integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==
+
"@esbuild/linux-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
+"@esbuild/linux-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24"
+ integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==
+
"@esbuild/netbsd-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
+"@esbuild/netbsd-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653"
+ integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==
+
+"@esbuild/openbsd-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7"
+ integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==
+
"@esbuild/openbsd-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
+"@esbuild/openbsd-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273"
+ integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==
+
"@esbuild/sunos-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
+"@esbuild/sunos-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403"
+ integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==
+
"@esbuild/win32-arm64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
+"@esbuild/win32-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2"
+ integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==
+
"@esbuild/win32-ia32@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
+"@esbuild/win32-ia32@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac"
+ integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==
+
"@esbuild/win32-x64@0.18.20":
version "0.18.20"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
+"@esbuild/win32-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699"
+ integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==
+
"@eslint-community/eslint-utils@^4.2.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
@@ -6482,6 +6602,36 @@ esbuild@^0.18.0:
"@esbuild/win32-ia32" "0.18.20"
"@esbuild/win32-x64" "0.18.20"
+esbuild@~0.23.0:
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.1.tgz#40fdc3f9265ec0beae6f59824ade1bd3d3d2dab8"
+ integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==
+ optionalDependencies:
+ "@esbuild/aix-ppc64" "0.23.1"
+ "@esbuild/android-arm" "0.23.1"
+ "@esbuild/android-arm64" "0.23.1"
+ "@esbuild/android-x64" "0.23.1"
+ "@esbuild/darwin-arm64" "0.23.1"
+ "@esbuild/darwin-x64" "0.23.1"
+ "@esbuild/freebsd-arm64" "0.23.1"
+ "@esbuild/freebsd-x64" "0.23.1"
+ "@esbuild/linux-arm" "0.23.1"
+ "@esbuild/linux-arm64" "0.23.1"
+ "@esbuild/linux-ia32" "0.23.1"
+ "@esbuild/linux-loong64" "0.23.1"
+ "@esbuild/linux-mips64el" "0.23.1"
+ "@esbuild/linux-ppc64" "0.23.1"
+ "@esbuild/linux-riscv64" "0.23.1"
+ "@esbuild/linux-s390x" "0.23.1"
+ "@esbuild/linux-x64" "0.23.1"
+ "@esbuild/netbsd-x64" "0.23.1"
+ "@esbuild/openbsd-arm64" "0.23.1"
+ "@esbuild/openbsd-x64" "0.23.1"
+ "@esbuild/sunos-x64" "0.23.1"
+ "@esbuild/win32-arm64" "0.23.1"
+ "@esbuild/win32-ia32" "0.23.1"
+ "@esbuild/win32-x64" "0.23.1"
+
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@@ -7296,6 +7446,11 @@ fsevents@^2.3.2, fsevents@~2.3.2:
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+fsevents@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
+
function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
@@ -7383,6 +7538,13 @@ get-tsconfig@^4.5.0:
dependencies:
resolve-pkg-maps "^1.0.0"
+get-tsconfig@^4.7.5:
+ version "4.8.1"
+ resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471"
+ integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==
+ dependencies:
+ resolve-pkg-maps "^1.0.0"
+
getos@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5"
@@ -7651,7 +7813,7 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
-he@^1.2.0:
+he@1.2.0, he@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
@@ -9607,6 +9769,14 @@ node-fetch@^2.0.0:
dependencies:
whatwg-url "^5.0.0"
+node-html-parser@6.1.13:
+ version "6.1.13"
+ resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-6.1.13.tgz#a1df799b83df5c6743fcd92740ba14682083b7e4"
+ integrity sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==
+ dependencies:
+ css-select "^5.1.0"
+ he "1.2.0"
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -12135,6 +12305,16 @@ tsutils@^3.21.0:
dependencies:
tslib "^1.8.1"
+tsx@4.19.1:
+ version "4.19.1"
+ resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.1.tgz#b7bffdf4b565813e4dea14b90872af279cd0090b"
+ integrity sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==
+ dependencies:
+ esbuild "~0.23.0"
+ get-tsconfig "^4.7.5"
+ optionalDependencies:
+ fsevents "~2.3.3"
+
tty-browserify@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811"