diff --git a/apps/todo/20260130-181927/.npmrc b/apps/todo/20260130-181927/.npmrc new file mode 100644 index 0000000..6c57d5c --- /dev/null +++ b/apps/todo/20260130-181927/.npmrc @@ -0,0 +1 @@ +registry=https://npm.nose.space diff --git a/apps/todo/20260130-181927/bun.lock b/apps/todo/20260130-181927/bun.lock new file mode 100644 index 0000000..b136c8a --- /dev/null +++ b/apps/todo/20260130-181927/bun.lock @@ -0,0 +1,43 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "todo", + "dependencies": { + "@because/forge": "*", + "@because/howl": "*", + "@because/hype": "*", + }, + "devDependencies": { + "@types/bun": "latest", + }, + "peerDependencies": { + "typescript": "^5.9.2", + }, + }, + }, + "packages": { + "@because/forge": ["@because/forge@0.0.1", "https://npm.nose.space/@because/forge/-/forge-0.0.1.tgz", { "peerDependencies": { "typescript": "^5" } }, "sha512-QS5CK51gcWma91i4uECWe4HPJeNHcE+Af4SQHOcfEovyzOEa7VOTAjei+jIWr2i+abGWqQCEC9wIuFgPgyr2Bg=="], + + "@because/howl": ["@because/howl@0.0.2", "https://npm.nose.space/@because/howl/-/howl-0.0.2.tgz", { "dependencies": { "lucide-static": "^0.555.0" }, "peerDependencies": { "@because/forge": "*", "typescript": "^5" } }, "sha512-Z4okzEa282LKkBk9DQwEUU6FT+PeThfQ6iQAY41LIEjs8B2kfXRZnbWLs7tgpwCfYORxb0RO4Hr7KiyEqnfTvQ=="], + + "@because/hype": ["@because/hype@0.0.1", "https://npm.nose.space/@because/hype/-/hype-0.0.1.tgz", { "dependencies": { "hono": "^4.10.4", "kleur": "^4.1.5" }, "peerDependencies": { "typescript": "^5" } }, "sha512-i92DNUXJOwt3J8dN1x8sh7i86blelcTCk8XDpwD839Ic8oe710lkDSVXJ7xYZb/i8YtzGhRg+L6eXDhaRiU2Pw=="], + + "@types/bun": ["@types/bun@1.3.8", "https://npm.nose.space/@types/bun/-/bun-1.3.8.tgz", { "dependencies": { "bun-types": "1.3.8" } }, "sha512-3LvWJ2q5GerAXYxO2mffLTqOzEu5qnhEAlh48Vnu8WQfnmSwbgagjGZV6BoHKJztENYEDn6QmVd949W4uESRJA=="], + + "@types/node": ["@types/node@25.1.0", "https://npm.nose.space/@types/node/-/node-25.1.0.tgz", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA=="], + + "bun-types": ["bun-types@1.3.8", "https://npm.nose.space/bun-types/-/bun-types-1.3.8.tgz", { "dependencies": { "@types/node": "*" } }, "sha512-fL99nxdOWvV4LqjmC+8Q9kW3M4QTtTR1eePs94v5ctGqU8OeceWrSUaRw3JYb7tU3FkMIAjkueehrHPPPGKi5Q=="], + + "hono": ["hono@4.11.7", "https://npm.nose.space/hono/-/hono-4.11.7.tgz", {}, "sha512-l7qMiNee7t82bH3SeyUCt9UF15EVmaBvsppY2zQtrbIhl/yzBTny+YUxsVjSjQ6gaqaeVtZmGocom8TzBlA4Yw=="], + + "kleur": ["kleur@4.1.5", "https://npm.nose.space/kleur/-/kleur-4.1.5.tgz", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], + + "lucide-static": ["lucide-static@0.555.0", "https://npm.nose.space/lucide-static/-/lucide-static-0.555.0.tgz", {}, "sha512-FMMaYYsEYsUA6xlEzIMoKEV3oGnxIIvAN+AtLmYXvlTJptJTveJjVBQwvtA/zZLrD6KLEu89G95dQYlhivw5jQ=="], + + "typescript": ["typescript@5.9.3", "https://npm.nose.space/typescript/-/typescript-5.9.3.tgz", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "undici-types": ["undici-types@7.16.0", "https://npm.nose.space/undici-types/-/undici-types-7.16.0.tgz", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], + } +} diff --git a/apps/todo/20260130-181927/index.tsx b/apps/todo/20260130-181927/index.tsx new file mode 100644 index 0000000..9b61e99 --- /dev/null +++ b/apps/todo/20260130-181927/index.tsx @@ -0,0 +1 @@ +export { default } from './src/server' diff --git a/apps/todo/20260130-181927/package.json b/apps/todo/20260130-181927/package.json new file mode 100644 index 0000000..4563ad6 --- /dev/null +++ b/apps/todo/20260130-181927/package.json @@ -0,0 +1,26 @@ +{ + "name": "todo", + "module": "index.tsx", + "type": "module", + "private": true, + "scripts": { + "toes": "bun run --watch index.tsx", + "start": "bun toes", + "dev": "bun run --hot index.tsx" + }, + "toes": { + "tool": "TODO", + "icon": "✅" + }, + "devDependencies": { + "@types/bun": "latest" + }, + "peerDependencies": { + "typescript": "^5.9.2" + }, + "dependencies": { + "@because/hype": "*", + "@because/forge": "*", + "@because/howl": "*" + } +} diff --git a/apps/todo/20260130-181927/pub/img/bite1.png b/apps/todo/20260130-181927/pub/img/bite1.png new file mode 100644 index 0000000..f452c1e Binary files /dev/null and b/apps/todo/20260130-181927/pub/img/bite1.png differ diff --git a/apps/todo/20260130-181927/pub/img/bite2.png b/apps/todo/20260130-181927/pub/img/bite2.png new file mode 100644 index 0000000..c075d53 Binary files /dev/null and b/apps/todo/20260130-181927/pub/img/bite2.png differ diff --git a/apps/todo/20260130-181927/pub/img/burger.png b/apps/todo/20260130-181927/pub/img/burger.png new file mode 100644 index 0000000..bc5e222 Binary files /dev/null and b/apps/todo/20260130-181927/pub/img/burger.png differ diff --git a/apps/todo/20260130-181927/src/client/App.tsx b/apps/todo/20260130-181927/src/client/App.tsx new file mode 100644 index 0000000..4cb5ef6 --- /dev/null +++ b/apps/todo/20260130-181927/src/client/App.tsx @@ -0,0 +1,36 @@ +import { render, useState } from 'hono/jsx/dom' +import { define } from '@because/forge' + +const Wrapper = define({ + margin: '0 auto', + marginTop: 50, + width: '50vw', + border: '1px solid black', + padding: 24, + textAlign: 'center' + +}) + +export default function App() { + const [count, setCount] = useState(0) + + try { + return ( + +

It works!

+

Count: {count}

+
+ +   + +
+
+ ) + } catch (error) { + console.error('Render error:', error) + return <>

Error

{error instanceof Error ? error : new Error(String(error))}
+ } +} + +const root = document.getElementById('root')! +render(, root) diff --git a/apps/todo/20260130-181927/src/css/main.css b/apps/todo/20260130-181927/src/css/main.css new file mode 100644 index 0000000..62bcd77 --- /dev/null +++ b/apps/todo/20260130-181927/src/css/main.css @@ -0,0 +1,40 @@ +section { + max-width: 500px; + margin: 0 auto; + text-align: center; + font-size: 200%; +} + +h1 { + margin-top: 0; +} + +.hype { + display: inline-block; + padding: 0.3rem 0.8rem; + background: linear-gradient(45deg, + #ff00ff 0%, + #00ffff 33%, + #ffff00 66%, + #ff00ff 100%); + background-size: 400% 400%; + animation: gradientShift 15s ease infinite; + color: black; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + font-weight: 700; + border-radius: 4px; +} + +@keyframes gradientShift { + 0% { + background-position: 0% 50%; + } + + 100% { + background-position: 100% 50%; + } +} + +ul { + list-style-type: none; +} \ No newline at end of file diff --git a/apps/todo/20260130-181927/src/pages/index.tsx b/apps/todo/20260130-181927/src/pages/index.tsx new file mode 100644 index 0000000..126eeb5 --- /dev/null +++ b/apps/todo/20260130-181927/src/pages/index.tsx @@ -0,0 +1,31 @@ +import { $ } from 'bun' + +const GIT_HASH = process.env.RENDER_GIT_COMMIT?.slice(0, 7) + || await $`git rev-parse --short HEAD`.text().then(s => s.trim()).catch(() => 'unknown') + +export default () => <> + + + hype + + + + + +