create-einja-app 0.2.17 → 0.2.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/package.json +2 -2
  2. package/templates/default/.claude/hooks/einja/playwright-resize.sh +12 -2
  3. package/templates/default/.claude/settings.json +15 -0
  4. package/templates/default/.cursor/commands/task-vibe-kanban-loop.md +107 -42
  5. package/templates/default/.env.develop +0 -4
  6. package/templates/default/.env.example +1 -0
  7. package/templates/default/.env.preview +0 -4
  8. package/templates/default/.env.staging +19 -0
  9. package/templates/default/.github/actions/ci/action.yml +39 -0
  10. package/templates/default/.github/actions/migrate/action.yml +39 -0
  11. package/templates/default/.github/actions/neon-export-env/action.yml +28 -0
  12. package/templates/default/.github/actions/setup/action.yml +20 -0
  13. package/templates/default/.github/workflows/claude.yml +1 -0
  14. package/templates/default/.github/workflows/{cleanup-neon-branches.yml → cleanup-pr-preview-db.yml} +28 -24
  15. package/templates/default/.github/workflows/cleanup-pr-preview-on-close.yml +50 -0
  16. package/templates/default/.github/workflows/deploy-pr-preview.yml +398 -0
  17. package/templates/default/.github/workflows/deploy-stable-branches.yml +259 -0
  18. package/templates/default/.github/workflows/release-create-einja-app.yml +95 -0
  19. package/templates/default/.mcp.json +6 -9
  20. package/templates/default/CLAUDE.md +46 -9
  21. package/templates/default/README.md +5 -14
  22. package/templates/default/apps/admin/next.config.ts +11 -0
  23. package/templates/default/apps/admin/package.json +55 -0
  24. package/templates/default/apps/admin/postcss.config.cjs +5 -0
  25. package/templates/default/apps/admin/src/app/(auth)/forgot-password/page.tsx +97 -0
  26. package/templates/default/apps/admin/src/app/(auth)/layout.tsx +18 -0
  27. package/templates/default/apps/admin/src/app/(auth)/otp/page.tsx +121 -0
  28. package/templates/default/apps/admin/src/app/(auth)/sign-in/page.tsx +145 -0
  29. package/templates/default/apps/admin/src/app/(auth)/sign-up/page.tsx +199 -0
  30. package/templates/default/apps/admin/src/app/(errors)/401/page.tsx +27 -0
  31. package/templates/default/apps/admin/src/app/(errors)/403/page.tsx +28 -0
  32. package/templates/default/apps/admin/src/app/(errors)/500/page.tsx +29 -0
  33. package/templates/default/apps/admin/src/app/(errors)/layout.tsx +7 -0
  34. package/templates/default/apps/admin/src/app/(errors)/maintenance/page.tsx +25 -0
  35. package/templates/default/apps/admin/src/app/dashboard/_components/analytics-chart.tsx +68 -0
  36. package/templates/default/apps/admin/src/app/dashboard/_components/analytics.tsx +182 -0
  37. package/templates/default/apps/admin/src/app/dashboard/_components/dashboard-page.tsx +74 -0
  38. package/templates/default/apps/admin/src/app/dashboard/_components/metric-cards.tsx +49 -0
  39. package/templates/default/apps/admin/src/app/dashboard/_components/overview-chart.tsx +73 -0
  40. package/templates/default/apps/admin/src/app/dashboard/_components/recent-sales.tsx +75 -0
  41. package/templates/default/apps/admin/src/app/dashboard/apps/_components/apps-page.tsx +135 -0
  42. package/templates/default/apps/admin/src/app/dashboard/apps/page.tsx +10 -0
  43. package/templates/default/apps/admin/src/app/dashboard/chats/_components/chat-list.tsx +82 -0
  44. package/templates/default/apps/admin/src/app/dashboard/chats/_components/chat-messages.tsx +194 -0
  45. package/templates/default/apps/admin/src/app/dashboard/chats/_components/chats-page.tsx +99 -0
  46. package/templates/default/apps/admin/src/app/dashboard/chats/_components/new-chat.tsx +118 -0
  47. package/templates/default/apps/admin/src/app/dashboard/chats/page.tsx +10 -0
  48. package/templates/default/apps/admin/src/app/dashboard/layout.tsx +9 -0
  49. package/templates/default/apps/admin/src/app/dashboard/not-found.tsx +14 -0
  50. package/templates/default/apps/admin/src/app/dashboard/page.tsx +10 -0
  51. package/templates/default/apps/admin/src/app/dashboard/settings/_components/content-section.tsx +20 -0
  52. package/templates/default/apps/admin/src/app/dashboard/settings/_components/sidebar-nav.tsx +66 -0
  53. package/templates/default/apps/admin/src/app/dashboard/settings/account/page.tsx +173 -0
  54. package/templates/default/apps/admin/src/app/dashboard/settings/appearance/page.tsx +156 -0
  55. package/templates/default/apps/admin/src/app/dashboard/settings/display/page.tsx +125 -0
  56. package/templates/default/apps/admin/src/app/dashboard/settings/layout.tsx +30 -0
  57. package/templates/default/apps/admin/src/app/dashboard/settings/notifications/page.tsx +196 -0
  58. package/templates/default/apps/admin/src/app/dashboard/settings/page.tsx +5 -0
  59. package/templates/default/apps/admin/src/app/dashboard/settings/profile/page.tsx +176 -0
  60. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/data-table-bulk-actions.tsx +183 -0
  61. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/data-table-row-actions.tsx +79 -0
  62. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/tasks-columns.tsx +107 -0
  63. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/tasks-dialogs.tsx +71 -0
  64. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/tasks-import-dialog.tsx +106 -0
  65. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/tasks-multi-delete-dialog.tsx +90 -0
  66. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/tasks-mutate-drawer.tsx +207 -0
  67. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/tasks-page.tsx +31 -0
  68. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/tasks-primary-buttons.tsx +19 -0
  69. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/tasks-provider.tsx +37 -0
  70. package/templates/default/apps/admin/src/app/dashboard/tasks/_components/tasks-table.tsx +155 -0
  71. package/templates/default/apps/admin/src/app/dashboard/tasks/page.tsx +14 -0
  72. package/templates/default/apps/admin/src/app/dashboard/users/_components/data-table-bulk-actions.tsx +136 -0
  73. package/templates/default/apps/admin/src/app/dashboard/users/_components/data-table-row-actions.tsx +62 -0
  74. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-action-dialog.tsx +297 -0
  75. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-columns.tsx +121 -0
  76. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-delete-dialog.tsx +72 -0
  77. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-dialogs.tsx +49 -0
  78. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-invite-dialog.tsx +139 -0
  79. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-multi-delete-dialog.tsx +89 -0
  80. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-page.tsx +30 -0
  81. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-primary-buttons.tsx +19 -0
  82. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-provider.tsx +35 -0
  83. package/templates/default/apps/admin/src/app/dashboard/users/_components/users-table.tsx +157 -0
  84. package/templates/default/apps/admin/src/app/dashboard/users/page.tsx +10 -0
  85. package/templates/default/apps/admin/src/app/globals.css +109 -0
  86. package/templates/default/apps/admin/src/app/layout.tsx +32 -0
  87. package/templates/default/apps/admin/src/app/not-found.tsx +14 -0
  88. package/templates/default/apps/admin/src/app/page.tsx +5 -0
  89. package/templates/default/apps/admin/src/components/layout/admin-layout.tsx +16 -0
  90. package/templates/default/apps/admin/src/components/layout/app-sidebar.tsx +52 -0
  91. package/templates/default/apps/admin/src/components/layout/nav-config.ts +131 -0
  92. package/templates/default/apps/admin/src/components/providers/theme-provider.tsx +10 -0
  93. package/templates/default/apps/admin/src/components/shared/long-text.tsx +78 -0
  94. package/templates/default/apps/admin/src/components/shared/search-input.tsx +16 -0
  95. package/templates/default/apps/admin/src/components/shared/select-dropdown.tsx +64 -0
  96. package/templates/default/apps/admin/src/data/apps.tsx +116 -0
  97. package/templates/default/apps/admin/src/data/chats.ts +114 -0
  98. package/templates/default/apps/admin/src/data/tasks.ts +114 -0
  99. package/templates/default/apps/admin/src/data/users.ts +90 -0
  100. package/templates/default/apps/admin/src/hooks/use-dialog-state.ts +17 -0
  101. package/templates/default/apps/admin/src/hooks/use-table-url-state.ts +243 -0
  102. package/templates/default/apps/admin/src/lib/show-submitted-data.tsx +12 -0
  103. package/templates/default/apps/admin/src/types/table.d.ts +9 -0
  104. package/templates/default/apps/admin/tsconfig.json +32 -0
  105. package/templates/default/apps/web/next.config.ts +1 -0
  106. package/templates/default/apps/web/package.json +0 -22
  107. package/templates/default/apps/web/postcss.config.cjs +0 -1
  108. package/templates/default/apps/web/src/app/(authenticated)/dashboard/page.tsx +4 -20
  109. package/templates/default/apps/web/src/app/(authenticated)/data/_components/UserTable.tsx +4 -4
  110. package/templates/default/apps/web/src/app/(authenticated)/data/page.tsx +1 -1
  111. package/templates/default/apps/web/src/app/(authenticated)/profile/page.tsx +1 -1
  112. package/templates/default/apps/web/src/app/error.tsx +8 -70
  113. package/templates/default/apps/web/src/app/global-error.tsx +8 -70
  114. package/templates/default/apps/web/src/app/globals.css +20 -0
  115. package/templates/default/apps/web/src/app/not-found.tsx +5 -39
  116. package/templates/default/apps/web/src/app/page.tsx +27 -203
  117. package/templates/default/apps/web/src/app/signin/page.tsx +27 -191
  118. package/templates/default/apps/web/src/app/signup/page.tsx +33 -240
  119. package/templates/default/apps/web/src/components/dashboard/dashboard-stats.tsx +11 -75
  120. package/templates/default/apps/web/src/components/shared/Sidebar.tsx +3 -3
  121. package/templates/default/apps/web/src/components/shared/header.tsx +17 -112
  122. package/templates/default/apps/web/tsconfig.json +0 -6
  123. package/templates/default/biome.json +1 -2
  124. package/templates/default/components.json +2 -2
  125. package/templates/default/docker-compose.yml +1 -1
  126. package/templates/default/gitignore +4 -0
  127. package/templates/default/package.json +1 -0
  128. package/templates/default/packages/admin-ui/catalog/catalog.css +54 -0
  129. package/templates/default/packages/admin-ui/catalog/catalog.tsx +401 -0
  130. package/templates/default/packages/admin-ui/catalog/index.html +12 -0
  131. package/templates/default/packages/admin-ui/catalog/main.tsx +9 -0
  132. package/templates/default/packages/admin-ui/components.json +21 -0
  133. package/templates/default/packages/admin-ui/package.json +105 -0
  134. package/templates/default/packages/admin-ui/src/command-menu/index.tsx +174 -0
  135. package/templates/default/packages/admin-ui/src/data-table/bulk-actions.tsx +215 -0
  136. package/templates/default/packages/admin-ui/src/data-table/column-header.tsx +73 -0
  137. package/templates/default/packages/admin-ui/src/data-table/data-table.tsx +127 -0
  138. package/templates/default/packages/admin-ui/src/data-table/faceted-filter.tsx +148 -0
  139. package/templates/default/packages/admin-ui/src/data-table/index.tsx +9 -0
  140. package/templates/default/packages/admin-ui/src/data-table/pagination.tsx +101 -0
  141. package/templates/default/packages/admin-ui/src/data-table/toolbar.tsx +87 -0
  142. package/templates/default/packages/admin-ui/src/data-table/view-options.tsx +57 -0
  143. package/templates/default/packages/admin-ui/src/hooks/use-mobile.tsx +23 -0
  144. package/templates/default/packages/admin-ui/src/layout/header.tsx +55 -0
  145. package/templates/default/packages/admin-ui/src/layout/index.ts +10 -0
  146. package/templates/default/packages/admin-ui/src/layout/main.tsx +23 -0
  147. package/templates/default/packages/admin-ui/src/layout/nav-group.tsx +111 -0
  148. package/templates/default/packages/admin-ui/src/layout/nav-user.tsx +114 -0
  149. package/templates/default/packages/admin-ui/src/layout/theme-switch.tsx +40 -0
  150. package/templates/default/packages/admin-ui/src/layout/types.ts +21 -0
  151. package/templates/default/packages/admin-ui/src/lib/utils.ts +6 -0
  152. package/templates/default/packages/admin-ui/src/styles/base.css +65 -0
  153. package/templates/default/packages/admin-ui/src/styles/tokens.css +91 -0
  154. package/templates/default/packages/admin-ui/src/tanstack-table.d.ts +10 -0
  155. package/templates/default/packages/admin-ui/src/ui/alert-dialog.tsx +157 -0
  156. package/templates/default/packages/admin-ui/src/ui/alert.tsx +66 -0
  157. package/templates/default/packages/admin-ui/src/ui/avatar.tsx +53 -0
  158. package/templates/default/packages/admin-ui/src/ui/badge.tsx +46 -0
  159. package/templates/default/packages/admin-ui/src/ui/breadcrumb.tsx +108 -0
  160. package/templates/default/packages/admin-ui/src/ui/button.tsx +59 -0
  161. package/templates/default/packages/admin-ui/src/ui/calendar.tsx +69 -0
  162. package/templates/default/packages/admin-ui/src/ui/card.tsx +92 -0
  163. package/templates/default/packages/admin-ui/src/ui/chart.tsx +345 -0
  164. package/templates/default/packages/admin-ui/src/ui/checkbox.tsx +32 -0
  165. package/templates/default/packages/admin-ui/src/ui/collapsible.tsx +27 -0
  166. package/templates/default/packages/admin-ui/src/ui/command.tsx +161 -0
  167. package/templates/default/packages/admin-ui/src/ui/confirm-dialog.tsx +72 -0
  168. package/templates/default/packages/admin-ui/src/ui/date-picker.tsx +53 -0
  169. package/templates/default/packages/admin-ui/src/ui/dialog.tsx +143 -0
  170. package/templates/default/packages/admin-ui/src/ui/dropdown-menu.tsx +257 -0
  171. package/templates/default/packages/admin-ui/src/ui/form.tsx +168 -0
  172. package/templates/default/packages/admin-ui/src/ui/input-otp.tsx +84 -0
  173. package/templates/default/packages/admin-ui/src/ui/input.tsx +21 -0
  174. package/templates/default/packages/admin-ui/src/ui/label.tsx +24 -0
  175. package/templates/default/packages/admin-ui/src/ui/pagination.tsx +126 -0
  176. package/templates/default/packages/admin-ui/src/ui/password-input.tsx +46 -0
  177. package/templates/default/packages/admin-ui/src/ui/popover.tsx +48 -0
  178. package/templates/default/packages/admin-ui/src/ui/progress.tsx +31 -0
  179. package/templates/default/packages/admin-ui/src/ui/radio-group.tsx +45 -0
  180. package/templates/default/packages/admin-ui/src/ui/scroll-area.tsx +52 -0
  181. package/templates/default/packages/admin-ui/src/ui/select.tsx +185 -0
  182. package/templates/default/packages/admin-ui/src/ui/separator.tsx +28 -0
  183. package/templates/default/packages/admin-ui/src/ui/sheet.tsx +149 -0
  184. package/templates/default/packages/admin-ui/src/ui/sidebar.tsx +728 -0
  185. package/templates/default/packages/admin-ui/src/ui/skeleton.tsx +13 -0
  186. package/templates/default/packages/admin-ui/src/ui/sonner.tsx +25 -0
  187. package/templates/default/packages/admin-ui/src/ui/switch.tsx +31 -0
  188. package/templates/default/packages/admin-ui/src/ui/table.tsx +116 -0
  189. package/templates/default/packages/admin-ui/src/ui/tabs.tsx +66 -0
  190. package/templates/default/packages/admin-ui/src/ui/textarea.tsx +18 -0
  191. package/templates/default/packages/admin-ui/src/ui/toggle-group.tsx +60 -0
  192. package/templates/default/packages/admin-ui/src/ui/toggle.tsx +44 -0
  193. package/templates/default/packages/admin-ui/src/ui/tooltip.tsx +61 -0
  194. package/templates/default/packages/admin-ui/tsconfig.json +8 -0
  195. package/templates/default/packages/admin-ui/vite.config.ts +11 -0
  196. package/templates/default/packages/config/package.json +0 -2
  197. package/templates/default/packages/server-core/package.json +1 -0
  198. package/templates/default/packages/ui/components.json +21 -0
  199. package/templates/default/packages/ui/package.json +42 -5
  200. package/templates/default/packages/ui/src/accordion.tsx +1 -1
  201. package/templates/default/packages/ui/src/alert-dialog.tsx +4 -4
  202. package/templates/default/packages/ui/src/alert.tsx +1 -1
  203. package/templates/default/packages/ui/src/avatar.tsx +1 -1
  204. package/templates/default/packages/ui/src/badge.tsx +1 -1
  205. package/templates/default/packages/ui/src/breadcrumb.tsx +1 -1
  206. package/templates/default/packages/ui/src/button.tsx +1 -1
  207. package/templates/default/packages/ui/src/card.tsx +1 -1
  208. package/templates/default/packages/ui/src/checkbox.tsx +1 -1
  209. package/templates/default/packages/ui/src/dialog.tsx +3 -3
  210. package/templates/default/packages/ui/src/drawer.tsx +3 -3
  211. package/templates/default/packages/ui/src/dropdown-menu.tsx +3 -3
  212. package/templates/default/packages/ui/src/form.tsx +2 -2
  213. package/templates/default/packages/ui/src/hover-card.tsx +2 -2
  214. package/templates/default/packages/ui/src/input.tsx +1 -1
  215. package/templates/default/packages/ui/src/label.tsx +1 -1
  216. package/templates/default/packages/ui/src/pagination.tsx +2 -2
  217. package/templates/default/packages/ui/src/popover.tsx +2 -2
  218. package/templates/default/packages/ui/src/progress.tsx +1 -1
  219. package/templates/default/packages/ui/src/select.tsx +2 -2
  220. package/templates/default/packages/ui/src/separator.tsx +1 -1
  221. package/templates/default/packages/ui/src/skeleton.tsx +1 -1
  222. package/templates/default/packages/ui/src/table.tsx +1 -1
  223. package/templates/default/packages/ui/src/tabs.tsx +1 -1
  224. package/templates/default/packages/ui/src/textarea.tsx +1 -1
  225. package/templates/default/packages/ui/src/tooltip.tsx +3 -3
  226. package/templates/default/packages/ui/src/typography.tsx +1 -1
  227. package/templates/default/packages/ui/tsconfig.json +1 -6
  228. package/templates/default/pnpm-lock.yaml +1319 -936
  229. package/templates/default/postcss.config.cjs +0 -1
  230. package/templates/default/turbo.json +11 -5
  231. package/templates/default/worktree.config.json +5 -0
  232. package/templates/default/.env.ci +0 -32
  233. package/templates/default/.github/workflows/ci.yml +0 -96
  234. package/templates/default/.github/workflows/preview-db.yml +0 -134
  235. package/templates/default/.playwright-mcp/dashboard.png +0 -0
  236. package/templates/default/.playwright-mcp/web-home.png +0 -0
  237. package/templates/default/apps/web/panda.config.ts +0 -114
  238. package/templates/default/apps/web/src/components/ui/accordion.tsx +0 -64
  239. package/templates/default/apps/web/src/components/ui/alert-dialog.tsx +0 -135
  240. package/templates/default/apps/web/src/components/ui/alert.tsx +0 -60
  241. package/templates/default/apps/web/src/components/ui/aspect-ratio.tsx +0 -9
  242. package/templates/default/apps/web/src/components/ui/avatar.tsx +0 -41
  243. package/templates/default/apps/web/src/components/ui/badge.tsx +0 -39
  244. package/templates/default/apps/web/src/components/ui/breadcrumb.tsx +0 -101
  245. package/templates/default/apps/web/src/components/ui/button.tsx +0 -56
  246. package/templates/default/apps/web/src/components/ui/card.tsx +0 -75
  247. package/templates/default/apps/web/src/components/ui/checkbox.tsx +0 -29
  248. package/templates/default/apps/web/src/components/ui/data-table.tsx +0 -189
  249. package/templates/default/apps/web/src/components/ui/dialog-hook.tsx +0 -210
  250. package/templates/default/apps/web/src/components/ui/dialog.tsx +0 -129
  251. package/templates/default/apps/web/src/components/ui/drawer.tsx +0 -124
  252. package/templates/default/apps/web/src/components/ui/dropdown-menu.tsx +0 -228
  253. package/templates/default/apps/web/src/components/ui/form.tsx +0 -152
  254. package/templates/default/apps/web/src/components/ui/hover-card.tsx +0 -38
  255. package/templates/default/apps/web/src/components/ui/input.tsx +0 -21
  256. package/templates/default/apps/web/src/components/ui/label.tsx +0 -21
  257. package/templates/default/apps/web/src/components/ui/pagination.tsx +0 -105
  258. package/templates/default/apps/web/src/components/ui/popover.tsx +0 -42
  259. package/templates/default/apps/web/src/components/ui/progress.tsx +0 -28
  260. package/templates/default/apps/web/src/components/ui/select.tsx +0 -170
  261. package/templates/default/apps/web/src/components/ui/separator.tsx +0 -28
  262. package/templates/default/apps/web/src/components/ui/skeleton.tsx +0 -13
  263. package/templates/default/apps/web/src/components/ui/sonner.tsx +0 -25
  264. package/templates/default/apps/web/src/components/ui/table.tsx +0 -92
  265. package/templates/default/apps/web/src/components/ui/tabs.tsx +0 -54
  266. package/templates/default/apps/web/src/components/ui/textarea.tsx +0 -18
  267. package/templates/default/apps/web/src/components/ui/tooltip.tsx +0 -57
  268. package/templates/default/apps/web/src/components/ui/typography.tsx +0 -158
  269. package/templates/default/packages/config/panda.config.ts +0 -114
  270. package/templates/default/panda.config.ts +0 -114
@@ -1,8 +1,5 @@
1
1
  "use client";
2
2
 
3
- import { css } from "@/styled-system/css";
4
- import { flex } from "@/styled-system/patterns";
5
-
6
3
  type ErrorPageProps = {
7
4
  error: Error & { digest?: string };
8
5
  reset: () => void;
@@ -14,89 +11,30 @@ export default function ErrorPage({ error, reset }: ErrorPageProps) {
14
11
  };
15
12
 
16
13
  return (
17
- <div
18
- className={css({
19
- minH: "100vh",
20
- display: "flex",
21
- flexDir: "column",
22
- alignItems: "center",
23
- justifyContent: "center",
24
- p: "4",
25
- bg: "white",
26
- })}
27
- >
28
- <div
29
- className={css({
30
- textAlign: "center",
31
- })}
32
- >
33
- <h1 className={css({ mb: "4" })}>エラーが発生しました</h1>
34
- <p
35
- className={css({
36
- color: "gray.600",
37
- mb: "8",
38
- fontSize: "lg",
39
- })}
40
- >
14
+ <div className="min-h-screen flex flex-col items-center justify-center p-4 bg-white">
15
+ <div className="text-center">
16
+ <h1 className="mb-4">エラーが発生しました</h1>
17
+ <p className="text-gray-600 mb-8 text-lg">
41
18
  申し訳ありません。予期せぬエラーが発生しました。
42
19
  </p>
43
- <div className={flex({ gap: "4", justify: "center" })}>
20
+ <div className="flex gap-4 justify-center">
44
21
  <button
45
22
  type="button"
46
23
  onClick={reset}
47
- className={css({
48
- display: "inline-flex",
49
- alignItems: "center",
50
- justifyContent: "center",
51
- px: "6",
52
- py: "3",
53
- bg: "blue.500",
54
- color: "white",
55
- fontWeight: "semibold",
56
- rounded: "md",
57
- _hover: { bg: "blue.600" },
58
- _active: { bg: "blue.700" },
59
- transition: "all 0.2s",
60
- })}
24
+ className="inline-flex items-center justify-center px-6 py-3 bg-blue-500 text-white font-semibold rounded-md hover:bg-blue-600 active:bg-blue-700 transition-all duration-200"
61
25
  >
62
26
  もう一度試す
63
27
  </button>
64
28
  <button
65
29
  type="button"
66
30
  onClick={handleHomeClick}
67
- className={css({
68
- display: "inline-flex",
69
- alignItems: "center",
70
- justifyContent: "center",
71
- px: "6",
72
- py: "3",
73
- border: "1px solid",
74
- borderColor: "blue.500",
75
- color: "blue.500",
76
- fontWeight: "semibold",
77
- rounded: "md",
78
- _hover: { bg: "blue.50" },
79
- _active: { bg: "blue.100" },
80
- transition: "all 0.2s",
81
- })}
31
+ className="inline-flex items-center justify-center px-6 py-3 border border-blue-500 text-blue-500 font-semibold rounded-md hover:bg-blue-50 active:bg-blue-100 transition-all duration-200"
82
32
  >
83
33
  トップページへ戻る
84
34
  </button>
85
35
  </div>
86
36
  {process.env.NODE_ENV === "development" && (
87
- <pre
88
- className={css({
89
- mt: "8",
90
- p: "4",
91
- bg: "gray.100",
92
- rounded: "md",
93
- textAlign: "left",
94
- overflow: "auto",
95
- maxW: "full",
96
- fontFamily: "mono",
97
- fontSize: "sm",
98
- })}
99
- >
37
+ <pre className="mt-8 p-4 bg-gray-100 rounded-md text-left overflow-auto max-w-full font-mono text-sm">
100
38
  {error.message}
101
39
  </pre>
102
40
  )}
@@ -1,8 +1,5 @@
1
1
  "use client";
2
2
 
3
- import { css } from "@/styled-system/css";
4
- import { flex } from "@/styled-system/patterns";
5
-
6
3
  type GlobalErrorPageProps = {
7
4
  error: Error & { digest?: string };
8
5
  reset: () => void;
@@ -16,89 +13,30 @@ export default function GlobalError({ error, reset }: GlobalErrorPageProps) {
16
13
  return (
17
14
  <html lang="ja">
18
15
  <body>
19
- <div
20
- className={css({
21
- minH: "100vh",
22
- display: "flex",
23
- flexDir: "column",
24
- alignItems: "center",
25
- justifyContent: "center",
26
- p: "4",
27
- bg: "gray.50",
28
- })}
29
- >
30
- <div
31
- className={css({
32
- textAlign: "center",
33
- })}
34
- >
35
- <h1 className={css({ mb: "4" })}>システムエラー</h1>
36
- <p
37
- className={css({
38
- color: "gray.600",
39
- mb: "8",
40
- fontSize: "lg",
41
- })}
42
- >
16
+ <div className="min-h-screen flex flex-col items-center justify-center p-4 bg-gray-50">
17
+ <div className="text-center">
18
+ <h1 className="mb-4">システムエラー</h1>
19
+ <p className="text-gray-600 mb-8 text-lg">
43
20
  申し訳ありません。システムエラーが発生しました。
44
21
  </p>
45
- <div className={flex({ gap: "4", justify: "center" })}>
22
+ <div className="flex gap-4 justify-center">
46
23
  <button
47
24
  type="button"
48
25
  onClick={reset}
49
- className={css({
50
- display: "inline-flex",
51
- alignItems: "center",
52
- justifyContent: "center",
53
- px: "6",
54
- py: "3",
55
- bg: "blue.500",
56
- color: "white",
57
- fontWeight: "semibold",
58
- rounded: "md",
59
- _hover: { bg: "blue.600" },
60
- _active: { bg: "blue.700" },
61
- transition: "all 0.2s",
62
- })}
26
+ className="inline-flex items-center justify-center px-6 py-3 bg-blue-500 text-white font-semibold rounded-md hover:bg-blue-600 active:bg-blue-700 transition-all duration-200"
63
27
  >
64
28
  もう一度試す
65
29
  </button>
66
30
  <button
67
31
  type="button"
68
32
  onClick={handleHomeClick}
69
- className={css({
70
- display: "inline-flex",
71
- alignItems: "center",
72
- justifyContent: "center",
73
- px: "6",
74
- py: "3",
75
- border: "1px solid",
76
- borderColor: "blue.500",
77
- color: "blue.500",
78
- fontWeight: "semibold",
79
- rounded: "md",
80
- _hover: { bg: "blue.50" },
81
- _active: { bg: "blue.100" },
82
- transition: "all 0.2s",
83
- })}
33
+ className="inline-flex items-center justify-center px-6 py-3 border border-blue-500 text-blue-500 font-semibold rounded-md hover:bg-blue-50 active:bg-blue-100 transition-all duration-200"
84
34
  >
85
35
  トップページへ戻る
86
36
  </button>
87
37
  </div>
88
38
  {process.env.NODE_ENV === "development" && (
89
- <pre
90
- className={css({
91
- mt: "8",
92
- p: "4",
93
- bg: "gray.100",
94
- rounded: "md",
95
- textAlign: "left",
96
- overflow: "auto",
97
- maxW: "full",
98
- fontFamily: "mono",
99
- fontSize: "sm",
100
- })}
101
- >
39
+ <pre className="mt-8 p-4 bg-gray-100 rounded-md text-left overflow-auto max-w-full font-mono text-sm">
102
40
  {error.message}
103
41
  </pre>
104
42
  )}
@@ -1,5 +1,6 @@
1
1
  @import "tailwindcss";
2
2
  @import "tw-animate-css";
3
+ @source "../../../../packages/ui/src";
3
4
 
4
5
  @custom-variant dark (&:is(.dark *));
5
6
  @layer reset, base, tokens, recipes, utilities;
@@ -75,6 +76,25 @@
75
76
  --sidebar-accent-foreground: oklch(0.205 0 0);
76
77
  --sidebar-border: oklch(0.922 0 0);
77
78
  --sidebar-ring: oklch(0.708 0 0);
79
+
80
+ /* z-index階層トークン */
81
+ --z-base: 0;
82
+ /* コンポーネント内部レイヤー(低優先度のローカルスタッキング) */
83
+ --z-sticky: 10; /* sticky要素(テーブルカラム、セクションヘッダー) */
84
+ --z-sidebar: 10; /* サイドバー本体 */
85
+ --z-sidebar-rail: 20; /* サイドバーリサイズハンドル */
86
+ --z-mobile-panel: 30; /* モバイルスライドインパネル */
87
+ --z-header: 40;
88
+ --z-dropdown: 50;
89
+ --z-drawer-overlay: 59;
90
+ --z-drawer: 60;
91
+ --z-dialog-overlay: 69;
92
+ --z-dialog: 70;
93
+ --z-alert-dialog-overlay: 79;
94
+ --z-alert-dialog: 80;
95
+ /* 最上位レイヤー */
96
+ --z-toast: 90; /* トースト通知 */
97
+ --z-tooltip: 100; /* ツールチップ */
78
98
  }
79
99
 
80
100
  .dark {
@@ -1,50 +1,16 @@
1
- import { css } from "@/styled-system/css";
2
1
  import Link from "next/link";
3
2
 
4
3
  export default function NotFound() {
5
4
  return (
6
- <div
7
- className={css({
8
- minH: "100vh",
9
- display: "flex",
10
- flexDir: "column",
11
- alignItems: "center",
12
- justifyContent: "center",
13
- p: "4",
14
- bg: "white",
15
- })}
16
- >
17
- <div
18
- className={css({
19
- textAlign: "center",
20
- })}
21
- >
22
- <h1 className={css({ mb: "4" })}>404 - Page Not Found</h1>
23
- <p
24
- className={css({
25
- color: "gray.600",
26
- mb: "8",
27
- fontSize: "lg",
28
- })}
29
- >
5
+ <div className="min-h-screen flex flex-col items-center justify-center p-4 bg-white">
6
+ <div className="text-center">
7
+ <h1 className="mb-4">404 - Page Not Found</h1>
8
+ <p className="text-gray-600 mb-8 text-lg">
30
9
  申し訳ありません。お探しのページが見つかりませんでした。
31
10
  </p>
32
11
  <Link
33
12
  href="/"
34
- className={css({
35
- display: "inline-flex",
36
- alignItems: "center",
37
- justifyContent: "center",
38
- px: "6",
39
- py: "3",
40
- bg: "blue.500",
41
- color: "white",
42
- fontWeight: "semibold",
43
- rounded: "md",
44
- _hover: { bg: "blue.600" },
45
- _active: { bg: "blue.700" },
46
- transition: "all 0.2s",
47
- })}
13
+ className="inline-flex items-center justify-center px-6 py-3 bg-blue-500 text-white font-semibold rounded-md hover:bg-blue-600 active:bg-blue-700 transition-all duration-200"
48
14
  >
49
15
  トップページへ戻る
50
16
  </Link>
@@ -1,117 +1,42 @@
1
1
  import { UserAvatar } from "@/components/auth/user-avatar";
2
2
  import Link from "next/link";
3
3
  import React from "react";
4
- import { css } from "../../styled-system/css";
5
4
 
6
5
  export default function Home() {
7
6
  return (
8
7
  <main
9
- className={css({
10
- minHeight: "screen",
11
- padding: { base: "4", md: "8" },
12
- background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
13
- color: "white",
14
- })}
8
+ className="min-h-screen p-4 md:p-8 text-white"
9
+ style={{ background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)" }}
15
10
  >
16
- <header
17
- className={css({
18
- marginBottom: { base: "6", md: "12" },
19
- })}
20
- >
21
- <nav
22
- className={css({
23
- display: "flex",
24
- justifyContent: "space-between",
25
- alignItems: "center",
26
- padding: { base: "4", md: "6" },
27
- backgroundColor: "rgba(255, 255, 255, 0.1)",
28
- borderRadius: "lg",
29
- backdropFilter: "blur(10px)",
30
- })}
31
- >
32
- <h1
33
- className={css({
34
- fontSize: { base: "xl", md: "2xl" },
35
- fontWeight: "bold",
36
- })}
37
- >
38
- Einja Management Template
39
- </h1>
11
+ <header className="mb-6 md:mb-12">
12
+ <nav className="flex justify-between items-center p-4 md:p-6 bg-white/10 rounded-lg backdrop-blur">
13
+ <h1 className="text-xl md:text-2xl font-bold">Einja Management Template</h1>
40
14
  <UserAvatar />
41
15
  </nav>
42
16
  </header>
43
17
 
44
- <div
45
- className={css({
46
- maxWidth: "4xl",
47
- margin: "0 auto",
48
- padding: { base: "4", md: "8" },
49
- })}
50
- >
51
- <section
52
- className={css({
53
- textAlign: "center",
54
- marginBottom: { base: "8", md: "12" },
55
- })}
56
- >
18
+ <div className="max-w-4xl mx-auto p-4 md:p-8">
19
+ <section className="text-center mb-8 md:mb-12">
57
20
  <h2
58
- className={css({
59
- fontSize: { base: "2xl", md: "4xl" },
60
- fontWeight: "bold",
61
- marginBottom: "4",
62
- textShadow: "0 2px 4px rgba(0,0,0,0.3)",
63
- })}
21
+ className="text-2xl md:text-4xl font-bold mb-4"
22
+ style={{ textShadow: "0 2px 4px rgba(0,0,0,0.3)" }}
64
23
  >
65
24
  管理画面テンプレート
66
25
  </h2>
67
- <p
68
- className={css({
69
- fontSize: { base: "lg", md: "xl" },
70
- opacity: "0.9",
71
- lineHeight: "relaxed",
72
- })}
73
- >
74
- Next.js 15 + TypeScript + PandaCSS + NextAuth を使用した
26
+ <p className="text-lg md:text-xl opacity-90 leading-relaxed">
27
+ Next.js 15 + TypeScript + Tailwind CSS + NextAuth を使用した
75
28
  <br />
76
29
  モダンな管理画面テンプレートです
77
30
  </p>
78
31
  </section>
79
32
 
80
- <div
81
- className={css({
82
- display: "grid",
83
- gridTemplateColumns: { base: "1fr", md: "repeat(2, 1fr)" },
84
- gap: { base: "4", md: "8" },
85
- marginBottom: { base: "8", md: "12" },
86
- })}
87
- >
88
- <div
89
- className={css({
90
- backgroundColor: "rgba(255, 255, 255, 0.1)",
91
- padding: { base: "4", md: "6" },
92
- borderRadius: "lg",
93
- backdropFilter: "blur(10px)",
94
- })}
95
- >
96
- <h3
97
- className={css({
98
- fontSize: { base: "lg", md: "xl" },
99
- fontWeight: "semibold",
100
- marginBottom: "3",
101
- })}
102
- >
103
- 🚀 技術スタック
104
- </h3>
105
- <ul
106
- className={css({
107
- fontSize: "sm",
108
- lineHeight: "relaxed",
109
- opacity: "0.9",
110
- })}
111
- >
33
+ <div className="grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8 mb-8 md:mb-12">
34
+ <div className="bg-white/10 p-4 md:p-6 rounded-lg backdrop-blur">
35
+ <h3 className="text-lg md:text-xl font-semibold mb-3">🚀 技術スタック</h3>
36
+ <ul className="text-sm leading-relaxed opacity-90">
112
37
  <li>• Next.js 15 (App Router)</li>
113
38
  <li>• TypeScript (Strict Mode)</li>
114
- <li>• PandaCSS (CSS-in-JS)</li>
39
+ <li>• Tailwind CSS</li>
115
40
  <li>• NextAuth v5 (認証)</li>
116
41
  <li>• Prisma ORM + PostgreSQL</li>
117
42
  <li>• shadcn/ui コンポーネント</li>
@@ -119,30 +44,9 @@ export default function Home() {
119
44
  </ul>
120
45
  </div>
121
46
 
122
- <div
123
- className={css({
124
- backgroundColor: "rgba(255, 255, 255, 0.1)",
125
- padding: { base: "4", md: "6" },
126
- borderRadius: "lg",
127
- backdropFilter: "blur(10px)",
128
- })}
129
- >
130
- <h3
131
- className={css({
132
- fontSize: { base: "lg", md: "xl" },
133
- fontWeight: "semibold",
134
- marginBottom: "3",
135
- })}
136
- >
137
- ✨ 主な機能
138
- </h3>
139
- <ul
140
- className={css({
141
- fontSize: "sm",
142
- lineHeight: "relaxed",
143
- opacity: "0.9",
144
- })}
145
- >
47
+ <div className="bg-white/10 p-4 md:p-6 rounded-lg backdrop-blur">
48
+ <h3 className="text-lg md:text-xl font-semibold mb-3">✨ 主な機能</h3>
49
+ <ul className="text-sm leading-relaxed opacity-90">
146
50
  <li>• メール・パスワード認証</li>
147
51
  <li>• ユーザー登録・ログイン</li>
148
52
  <li>• 認証保護されたダッシュボード</li>
@@ -154,40 +58,10 @@ export default function Home() {
154
58
  </div>
155
59
  </div>
156
60
 
157
- <section
158
- className={css({
159
- backgroundColor: "rgba(255, 255, 255, 0.1)",
160
- padding: { base: "4", md: "6" },
161
- borderRadius: "lg",
162
- backdropFilter: "blur(10px)",
163
- marginBottom: { base: "6", md: "8" },
164
- })}
165
- >
166
- <h3
167
- className={css({
168
- fontSize: { base: "lg", md: "xl" },
169
- fontWeight: "semibold",
170
- marginBottom: "4",
171
- })}
172
- >
173
- 🔧 セットアップ手順
174
- </h3>
175
- <div
176
- className={css({
177
- fontSize: "sm",
178
- lineHeight: "relaxed",
179
- opacity: "0.9",
180
- })}
181
- >
182
- <ol
183
- className={css({
184
- listStyleType: "decimal",
185
- paddingLeft: "4",
186
- gap: "2",
187
- display: "flex",
188
- flexDirection: "column",
189
- })}
190
- >
61
+ <section className="bg-white/10 p-4 md:p-6 rounded-lg backdrop-blur mb-6 md:mb-8">
62
+ <h3 className="text-lg md:text-xl font-semibold mb-4">🔧 セットアップ手順</h3>
63
+ <div className="text-sm leading-relaxed opacity-90">
64
+ <ol className="list-decimal pl-4 flex flex-col gap-2">
191
65
  <li>
192
66
  <strong>依存関係のインストール:</strong> <code>npm install</code>
193
67
  </li>
@@ -208,72 +82,22 @@ export default function Home() {
208
82
  </div>
209
83
  </section>
210
84
 
211
- <div
212
- className={css({
213
- display: "flex",
214
- justifyContent: "center",
215
- gap: "4",
216
- flexWrap: "wrap",
217
- })}
218
- >
85
+ <div className="flex justify-center gap-4 flex-wrap">
219
86
  <Link
220
87
  href="/signup"
221
- className={css({
222
- backgroundColor: "white",
223
- color: "#667eea",
224
- padding: { base: "3 6", md: "4 8" },
225
- borderRadius: "lg",
226
- fontWeight: "semibold",
227
- fontSize: { base: "sm", md: "base" },
228
- textDecoration: "none",
229
- transition: "all 0.2s",
230
- boxShadow: "0 4px 6px rgba(0,0,0,0.1)",
231
- _hover: {
232
- transform: "translateY(-2px)",
233
- boxShadow: "0 6px 12px rgba(0,0,0,0.15)",
234
- },
235
- })}
88
+ className="bg-white text-[#667eea] px-6 py-3 md:px-8 md:py-4 rounded-lg font-semibold text-sm md:text-base no-underline transition-all duration-200 shadow-md hover:-translate-y-0.5 hover:shadow-lg"
236
89
  >
237
90
  新規登録
238
91
  </Link>
239
92
  <Link
240
93
  href="/signin"
241
- className={css({
242
- backgroundColor: "transparent",
243
- color: "white",
244
- padding: { base: "3 6", md: "4 8" },
245
- borderRadius: "lg",
246
- fontWeight: "semibold",
247
- fontSize: { base: "sm", md: "base" },
248
- textDecoration: "none",
249
- border: "2px solid white",
250
- transition: "all 0.2s",
251
- _hover: {
252
- backgroundColor: "white",
253
- color: "#667eea",
254
- transform: "translateY(-2px)",
255
- },
256
- })}
94
+ className="bg-transparent text-white px-6 py-3 md:px-8 md:py-4 rounded-lg font-semibold text-sm md:text-base no-underline border-2 border-white transition-all duration-200 hover:bg-white hover:text-[#667eea] hover:-translate-y-0.5"
257
95
  >
258
96
  ログイン
259
97
  </Link>
260
98
  <Link
261
99
  href="/dashboard"
262
- className={css({
263
- backgroundColor: "rgba(255, 255, 255, 0.2)",
264
- color: "white",
265
- padding: { base: "3 6", md: "4 8" },
266
- borderRadius: "lg",
267
- fontWeight: "semibold",
268
- fontSize: { base: "sm", md: "base" },
269
- textDecoration: "none",
270
- border: "1px solid rgba(255, 255, 255, 0.3)",
271
- transition: "all 0.2s",
272
- _hover: {
273
- backgroundColor: "rgba(255, 255, 255, 0.3)",
274
- transform: "translateY(-2px)",
275
- },
276
- })}
100
+ className="bg-white/20 text-white px-6 py-3 md:px-8 md:py-4 rounded-lg font-semibold text-sm md:text-base no-underline border border-white/30 transition-all duration-200 hover:bg-white/30 hover:-translate-y-0.5"
277
101
  >
278
102
  デモを見る
279
103
  </Link>