aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/examples/kitchen-sink/packages/ui
diff options
context:
space:
mode:
Diffstat (limited to 'examples/kitchen-sink/packages/ui')
-rw-r--r--examples/kitchen-sink/packages/ui/.eslintrc.js4
-rw-r--r--examples/kitchen-sink/packages/ui/package.json39
-rw-r--r--examples/kitchen-sink/packages/ui/src/CounterButton.tsx45
-rw-r--r--examples/kitchen-sink/packages/ui/src/NewTabLink.tsx15
-rw-r--r--examples/kitchen-sink/packages/ui/src/__tests__/index.test.tsx11
-rw-r--r--examples/kitchen-sink/packages/ui/src/__tests__/tsconfig.json7
-rw-r--r--examples/kitchen-sink/packages/ui/src/index.tsx3
-rw-r--r--examples/kitchen-sink/packages/ui/tsconfig.json8
8 files changed, 132 insertions, 0 deletions
diff --git a/examples/kitchen-sink/packages/ui/.eslintrc.js b/examples/kitchen-sink/packages/ui/.eslintrc.js
new file mode 100644
index 0000000..c8df607
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/.eslintrc.js
@@ -0,0 +1,4 @@
+module.exports = {
+ root: true,
+ extends: ["custom"],
+};
diff --git a/examples/kitchen-sink/packages/ui/package.json b/examples/kitchen-sink/packages/ui/package.json
new file mode 100644
index 0000000..2241c40
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/package.json
@@ -0,0 +1,39 @@
+{
+ "name": "ui",
+ "version": "0.0.0",
+ "private": true,
+ "license": "MIT",
+ "sideEffects": false,
+ "main": "./dist/index.js",
+ "module": "./dist/index.mjs",
+ "types": "./dist/index.d.ts",
+ "files": [
+ "dist/**"
+ ],
+ "scripts": {
+ "build": "tsup src/index.tsx --format esm,cjs --dts --external react",
+ "clean": "rm -rf dist",
+ "dev": "tsup src/index.tsx --format esm,cjs --watch --dts --external react",
+ "lint": "eslint \"src/**/*.ts*\"",
+ "test": "jest"
+ },
+ "jest": {
+ "preset": "jest-presets/jest/node"
+ },
+ "devDependencies": {
+ "@types/jest": "^26.0.22",
+ "@types/react": "^17.0.13",
+ "@types/react-dom": "^17.0.8",
+ "eslint": "^7.32.0",
+ "eslint-config-custom": "workspace:*",
+ "jest": "^26.6.3",
+ "jest-presets": "workspace:*",
+ "react": "^18.2.0",
+ "tsconfig": "workspace:*",
+ "tsup": "^6.2.3",
+ "typescript": "^4.8.3"
+ },
+ "dependencies": {
+ "react-dom": "^18.2.0"
+ }
+}
diff --git a/examples/kitchen-sink/packages/ui/src/CounterButton.tsx b/examples/kitchen-sink/packages/ui/src/CounterButton.tsx
new file mode 100644
index 0000000..ec99b39
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/CounterButton.tsx
@@ -0,0 +1,45 @@
+import * as React from "react";
+
+export const CounterButton = () => {
+ const [count, setCount] = React.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
+ style={{
+ background: "black",
+ color: "white",
+ border: "none",
+ padding: "0.5rem 1rem",
+ borderRadius: "0.25rem",
+ display: "inline-block",
+ cursor: "pointer",
+ }}
+ type="button"
+ onClick={() => setCount((c) => c + 1)}
+ >
+ Count: {count}
+ </button>
+ </div>
+ </div>
+ );
+};
diff --git a/examples/kitchen-sink/packages/ui/src/NewTabLink.tsx b/examples/kitchen-sink/packages/ui/src/NewTabLink.tsx
new file mode 100644
index 0000000..e8a00a0
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/NewTabLink.tsx
@@ -0,0 +1,15 @@
+import * as React from "react";
+export const NewTabLink = ({
+ children,
+ href,
+ ...other
+}: {
+ children: React.ReactNode;
+ href: string;
+}) => {
+ return (
+ <a target="_blank" rel="noreferrer" href={href} {...other}>
+ {children}
+ </a>
+ );
+};
diff --git a/examples/kitchen-sink/packages/ui/src/__tests__/index.test.tsx b/examples/kitchen-sink/packages/ui/src/__tests__/index.test.tsx
new file mode 100644
index 0000000..8956208
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/__tests__/index.test.tsx
@@ -0,0 +1,11 @@
+import * as React from "react";
+import * as ReactDOM from "react-dom";
+import { CounterButton } from "../CounterButton";
+
+describe("CounterButton", () => {
+ it("renders without crashing", () => {
+ const div = document.createElement("div");
+ ReactDOM.render(<CounterButton />, div);
+ ReactDOM.unmountComponentAtNode(div);
+ });
+});
diff --git a/examples/kitchen-sink/packages/ui/src/__tests__/tsconfig.json b/examples/kitchen-sink/packages/ui/src/__tests__/tsconfig.json
new file mode 100644
index 0000000..10f19c1
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/__tests__/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": [".", "../."],
+ "compilerOptions": {
+ "jsx": "react"
+ }
+}
diff --git a/examples/kitchen-sink/packages/ui/src/index.tsx b/examples/kitchen-sink/packages/ui/src/index.tsx
new file mode 100644
index 0000000..4880f34
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/src/index.tsx
@@ -0,0 +1,3 @@
+import * as React from "react";
+export { NewTabLink } from "./NewTabLink";
+export { CounterButton } from "./CounterButton";
diff --git a/examples/kitchen-sink/packages/ui/tsconfig.json b/examples/kitchen-sink/packages/ui/tsconfig.json
new file mode 100644
index 0000000..46c4f7b
--- /dev/null
+++ b/examples/kitchen-sink/packages/ui/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "compilerOptions": {
+ "lib": ["dom", "ES2015"]
+ },
+ "extends": "tsconfig/react-library.json",
+ "include": ["."],
+ "exclude": ["dist", "build", "node_modules"]
+}