feat(create-turbo): create kitchen-sink

This commit is contained in:
Turbobot 2025-06-19 02:40:01 +08:00 committed by afiqzudinhadi
commit 4625c93980
80 changed files with 11572 additions and 0 deletions

View file

@ -0,0 +1,12 @@
import { describe, it } from "@jest/globals";
import { createRoot } from "react-dom/client";
import { CounterButton } from ".";
describe("CounterButton", () => {
it("renders without crashing", () => {
const div = document.createElement("div");
const root = createRoot(div);
root.render(<CounterButton />);
root.unmount();
});
});

View file

@ -0,0 +1,50 @@
"use client";
import { useState } from "react";
export function CounterButton() {
const [count, setCount] = useState(0);
return (
<div
style={{
background: `rgba(0,0,0,0.05)`,
borderRadius: `8px`,
padding: "1.5rem",
fontWeight: 500,
}}
>
<p style={{ margin: "0 0 1.5rem 0" }}>
This component is from{" "}
<code
style={{
padding: "0.2rem 0.3rem",
background: `rgba(0,0,0,0.1)`,
borderRadius: "0.25rem",
}}
>
ui
</code>
</p>
<div>
<button
onClick={() => {
setCount((c) => c + 1);
}}
style={{
background: "black",
color: "white",
border: "none",
padding: "0.5rem 1rem",
borderRadius: "0.25rem",
display: "inline-block",
cursor: "pointer",
}}
type="button"
>
Count: {count}
</button>
</div>
</div>
);
}

View file

@ -0,0 +1,12 @@
import { describe, it } from "@jest/globals";
import { createRoot } from "react-dom/client";
import { Link } from ".";
describe("Link", () => {
it("renders without crashing", () => {
const div = document.createElement("div");
const root = createRoot(div);
root.render(<Link href="https://turborepo.com">Turborepo Docs</Link>);
root.unmount();
});
});

View file

@ -0,0 +1,20 @@
import type { AnchorHTMLAttributes, ReactNode } from "react";
interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
children: ReactNode;
newTab?: boolean;
href: string;
}
export function Link({ children, href, newTab, ...other }: LinkProps) {
return (
<a
href={href}
rel={newTab ? "noreferrer" : undefined}
target={newTab ? "_blank" : undefined}
{...other}
>
{children}
</a>
);
}