@naeil/ui 0.1.0

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 (67) hide show
  1. package/README.md +36 -0
  2. package/messages/en.json +221 -0
  3. package/messages/ja.json +221 -0
  4. package/messages/ko.json +221 -0
  5. package/package.json +73 -0
  6. package/postcss.config.mjs +7 -0
  7. package/src/app/[locale]/(content)/baby-agent/page.tsx +30 -0
  8. package/src/app/[locale]/(content)/blog/page.tsx +68 -0
  9. package/src/app/[locale]/(content)/cc/page.tsx +216 -0
  10. package/src/app/[locale]/(content)/design/page.tsx +703 -0
  11. package/src/app/[locale]/(content)/layout.tsx +7 -0
  12. package/src/app/[locale]/(content)/pkm/page.tsx +31 -0
  13. package/src/app/[locale]/(content)/projects/page.tsx +100 -0
  14. package/src/app/[locale]/(content)/sa/page.tsx +179 -0
  15. package/src/app/[locale]/(landing)/page.tsx +157 -0
  16. package/src/app/[locale]/layout.tsx +72 -0
  17. package/src/app/[locale]/login/actions.ts +10 -0
  18. package/src/app/[locale]/login/oauth-buttons.tsx +78 -0
  19. package/src/app/[locale]/login/page.tsx +85 -0
  20. package/src/app/auth/callback/route.ts +78 -0
  21. package/src/app/favicon.ico +0 -0
  22. package/src/app/globals.css +32 -0
  23. package/src/app/layout.tsx +22 -0
  24. package/src/app/sitemap.ts +26 -0
  25. package/src/components/accent-picker.tsx +62 -0
  26. package/src/components/auth-slot.tsx +96 -0
  27. package/src/components/footer-wrapper.tsx +8 -0
  28. package/src/components/footer.tsx +193 -0
  29. package/src/components/hero-scene.tsx +948 -0
  30. package/src/components/hero-section.tsx +57 -0
  31. package/src/components/locale-switcher.tsx +74 -0
  32. package/src/components/logo.tsx +51 -0
  33. package/src/components/nav-server-wrapper.tsx +22 -0
  34. package/src/components/nav-wrapper.tsx +45 -0
  35. package/src/components/nav.tsx +550 -0
  36. package/src/components/paraglider-cursor.tsx +112 -0
  37. package/src/components/project-layout.tsx +194 -0
  38. package/src/components/theme-provider.tsx +10 -0
  39. package/src/components/theme-toggle-icon.tsx +62 -0
  40. package/src/components/theme-toggle.tsx +39 -0
  41. package/src/components/typography.tsx +27 -0
  42. package/src/components/ui/avatar.tsx +109 -0
  43. package/src/components/ui/badge.tsx +47 -0
  44. package/src/components/ui/button.tsx +65 -0
  45. package/src/components/ui/card.tsx +106 -0
  46. package/src/components/ui/dialog.tsx +158 -0
  47. package/src/components/ui/dropdown-menu.tsx +257 -0
  48. package/src/components/ui/input.tsx +21 -0
  49. package/src/components/ui/sonner.tsx +54 -0
  50. package/src/components/workflow-diagram.tsx +414 -0
  51. package/src/i18n/config.ts +8 -0
  52. package/src/i18n/request.ts +16 -0
  53. package/src/i18n/routing.ts +12 -0
  54. package/src/lib/supabase/client.ts +18 -0
  55. package/src/lib/supabase/middleware.ts +42 -0
  56. package/src/lib/supabase/server.ts +37 -0
  57. package/src/lib/utils.ts +6 -0
  58. package/src/proxy.ts +62 -0
  59. package/src/tokens/.gitkeep +0 -0
  60. package/src/tokens/color.json +56 -0
  61. package/src/tokens/radius.json +9 -0
  62. package/src/tokens/semantic.json +81 -0
  63. package/src/tokens/shadow.json +7 -0
  64. package/src/tokens/spacing.json +16 -0
  65. package/src/tokens/typography.json +34 -0
  66. package/src/types/i18n.d.ts +6 -0
  67. package/src/utils/.gitkeep +0 -0
@@ -0,0 +1,9 @@
1
+ {
2
+ "radius": {
3
+ "$description": "Border radius — mechanical aesthetic, no excessive rounding. lg(8px) is the maximum.",
4
+ "none": { "$type": "dimension", "$value": "0px" },
5
+ "sm": { "$type": "dimension", "$value": "2px" },
6
+ "md": { "$type": "dimension", "$value": "4px" },
7
+ "lg": { "$type": "dimension", "$value": "8px" }
8
+ }
9
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "semantic": {
3
+ "$description": "Semantic token mappings — references primitive tokens. Dark-first design.",
4
+ "light": {
5
+ "$description": "Light mode values (`:root`)",
6
+ "background": { "$type": "color", "$value": "{color.white}" },
7
+ "foreground": { "$type": "color", "$value": "{color.gray.950}" },
8
+ "card": { "$type": "color", "$value": "{color.white}" },
9
+ "card-foreground": { "$type": "color", "$value": "{color.gray.950}" },
10
+ "popover": { "$type": "color", "$value": "{color.white}" },
11
+ "popover-foreground": { "$type": "color", "$value": "{color.gray.950}" },
12
+ "primary": { "$type": "color", "$value": "{color.gray.900}" },
13
+ "primary-foreground": { "$type": "color", "$value": "{color.gray.50}" },
14
+ "secondary": { "$type": "color", "$value": "{color.gray.100}" },
15
+ "secondary-foreground": { "$type": "color", "$value": "{color.gray.900}" },
16
+ "muted": { "$type": "color", "$value": "{color.gray.100}" },
17
+ "muted-foreground": { "$type": "color", "$value": "{color.gray.500}" },
18
+ "accent": { "$type": "color", "$value": "{color.gray.100}" },
19
+ "accent-foreground": { "$type": "color", "$value": "{color.gray.900}" },
20
+ "destructive": { "$type": "color", "$value": "{color.destructive.600}" },
21
+ "destructive-foreground": { "$type": "color", "$value": "{color.gray.50}" },
22
+ "border": { "$type": "color", "$value": "{color.gray.200}" },
23
+ "border-subtle": { "$type": "color", "$value": "oklch(0 0 0 / 6%)" },
24
+ "border-subtle-hover": { "$type": "color", "$value": "oklch(0 0 0 / 12%)" },
25
+ "surface-subtle": { "$type": "color", "$value": "oklch(0 0 0 / 2%)" },
26
+ "input": { "$type": "color", "$value": "{color.gray.200}" },
27
+ "ring": { "$type": "color", "$value": "{color.gray.400}" },
28
+ "chart-1": { "$type": "color", "$value": "oklch(0.646 0.222 41.116)" },
29
+ "chart-2": { "$type": "color", "$value": "oklch(0.6 0.118 184.704)" },
30
+ "chart-3": { "$type": "color", "$value": "oklch(0.398 0.07 227.392)" },
31
+ "chart-4": { "$type": "color", "$value": "oklch(0.828 0.189 84.429)" },
32
+ "chart-5": { "$type": "color", "$value": "oklch(0.769 0.188 70.08)" },
33
+ "sidebar": { "$type": "color", "$value": "{color.gray.50}" },
34
+ "sidebar-foreground": { "$type": "color", "$value": "{color.gray.950}" },
35
+ "sidebar-primary": { "$type": "color", "$value": "{color.gray.900}" },
36
+ "sidebar-primary-foreground": { "$type": "color", "$value": "{color.gray.50}" },
37
+ "sidebar-accent": { "$type": "color", "$value": "{color.gray.100}" },
38
+ "sidebar-accent-foreground": { "$type": "color", "$value": "{color.gray.900}" },
39
+ "sidebar-border": { "$type": "color", "$value": "{color.gray.200}" },
40
+ "sidebar-ring": { "$type": "color", "$value": "{color.gray.400}" }
41
+ },
42
+ "dark": {
43
+ "$description": "Dark mode values (`.dark`) — default theme",
44
+ "background": { "$type": "color", "$value": "{color.gray.950}" },
45
+ "foreground": { "$type": "color", "$value": "{color.gray.50}" },
46
+ "card": { "$type": "color", "$value": "{color.gray.900}" },
47
+ "card-foreground": { "$type": "color", "$value": "{color.gray.50}" },
48
+ "popover": { "$type": "color", "$value": "{color.gray.900}" },
49
+ "popover-foreground": { "$type": "color", "$value": "{color.gray.50}" },
50
+ "primary": { "$type": "color", "$value": "{color.gray.200}" },
51
+ "primary-foreground": { "$type": "color", "$value": "{color.gray.900}" },
52
+ "secondary": { "$type": "color", "$value": "{color.gray.800}" },
53
+ "secondary-foreground": { "$type": "color", "$value": "{color.gray.50}" },
54
+ "muted": { "$type": "color", "$value": "{color.gray.800}" },
55
+ "muted-foreground": { "$type": "color", "$value": "{color.gray.400}" },
56
+ "accent": { "$type": "color", "$value": "{color.gray.800}" },
57
+ "accent-foreground": { "$type": "color", "$value": "{color.gray.50}" },
58
+ "destructive": { "$type": "color", "$value": "{color.destructive.600}" },
59
+ "destructive-foreground": { "$type": "color", "$value": "{color.gray.50}" },
60
+ "border": { "$type": "color", "$value": "oklch(1 0 0 / 10%)" },
61
+ "border-subtle": { "$type": "color", "$value": "oklch(1 0 0 / 6%)" },
62
+ "border-subtle-hover": { "$type": "color", "$value": "oklch(1 0 0 / 12%)" },
63
+ "surface-subtle": { "$type": "color", "$value": "oklch(1 0 0 / 3%)" },
64
+ "input": { "$type": "color", "$value": "oklch(1 0 0 / 15%)" },
65
+ "ring": { "$type": "color", "$value": "{color.gray.500}" },
66
+ "chart-1": { "$type": "color", "$value": "{color.accent.700}" },
67
+ "chart-2": { "$type": "color", "$value": "oklch(0.696 0.17 162.48)" },
68
+ "chart-3": { "$type": "color", "$value": "oklch(0.769 0.188 70.08)" },
69
+ "chart-4": { "$type": "color", "$value": "oklch(0.627 0.265 303.9)" },
70
+ "chart-5": { "$type": "color", "$value": "oklch(0.645 0.246 16.439)" },
71
+ "sidebar": { "$type": "color", "$value": "{color.gray.900}" },
72
+ "sidebar-foreground": { "$type": "color", "$value": "{color.gray.50}" },
73
+ "sidebar-primary": { "$type": "color", "$value": "{color.accent.700}" },
74
+ "sidebar-primary-foreground": { "$type": "color", "$value": "{color.gray.50}" },
75
+ "sidebar-accent": { "$type": "color", "$value": "{color.gray.800}" },
76
+ "sidebar-accent-foreground": { "$type": "color", "$value": "{color.gray.50}" },
77
+ "sidebar-border": { "$type": "color", "$value": "oklch(1 0 0 / 10%)" },
78
+ "sidebar-ring": { "$type": "color", "$value": "{color.gray.500}" }
79
+ }
80
+ }
81
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "shadow": {
3
+ "$description": "Minimal shadows for dark-first UI",
4
+ "sm": { "$type": "shadow", "$value": "0 1px 2px 0 oklch(0 0 0 / 0.05)" },
5
+ "md": { "$type": "shadow", "$value": "0 4px 6px -1px oklch(0 0 0 / 0.1), 0 2px 4px -2px oklch(0 0 0 / 0.1)" }
6
+ }
7
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "spacing": {
3
+ "$description": "4px-based spacing scale (non-linear, Tailwind-like gaps intentional)",
4
+ "0": { "$type": "dimension", "$value": "0px" },
5
+ "1": { "$type": "dimension", "$value": "4px" },
6
+ "2": { "$type": "dimension", "$value": "8px" },
7
+ "3": { "$type": "dimension", "$value": "12px" },
8
+ "4": { "$type": "dimension", "$value": "16px" },
9
+ "5": { "$type": "dimension", "$value": "20px" },
10
+ "6": { "$type": "dimension", "$value": "24px" },
11
+ "8": { "$type": "dimension", "$value": "32px" },
12
+ "10": { "$type": "dimension", "$value": "40px" },
13
+ "12": { "$type": "dimension", "$value": "48px" },
14
+ "16": { "$type": "dimension", "$value": "64px" }
15
+ }
16
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "font": {
3
+ "family": {
4
+ "sans": {
5
+ "$type": "fontFamily",
6
+ "$value": ["Pretendard Variable", "Pretendard", "-apple-system", "system-ui", "sans-serif"]
7
+ },
8
+ "mono": {
9
+ "$type": "fontFamily",
10
+ "$value": ["JetBrains Mono", "Geist Mono", "ui-monospace", "monospace"]
11
+ }
12
+ },
13
+ "size": {
14
+ "xs": { "$type": "dimension", "$value": "0.75rem" },
15
+ "sm": { "$type": "dimension", "$value": "0.875rem" },
16
+ "base": { "$type": "dimension", "$value": "1rem" },
17
+ "lg": { "$type": "dimension", "$value": "1.125rem" },
18
+ "xl": { "$type": "dimension", "$value": "1.25rem" },
19
+ "2xl": { "$type": "dimension", "$value": "1.5rem" },
20
+ "3xl": { "$type": "dimension", "$value": "1.875rem" },
21
+ "4xl": { "$type": "dimension", "$value": "2.25rem" }
22
+ },
23
+ "weight": {
24
+ "normal": { "$type": "number", "$value": 400 },
25
+ "medium": { "$type": "number", "$value": 500 },
26
+ "bold": { "$type": "number", "$value": 700 }
27
+ },
28
+ "lineHeight": {
29
+ "tight": { "$type": "number", "$value": 1.25 },
30
+ "normal": { "$type": "number", "$value": 1.5 },
31
+ "relaxed": { "$type": "number", "$value": 1.75 }
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,6 @@
1
+ type Messages = typeof import("../../messages/en.json");
2
+
3
+ declare global {
4
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
5
+ interface IntlMessages extends Messages {}
6
+ }
File without changes