@naeil/ui 0.2.0 → 0.4.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.
- package/CHANGELOG.md +28 -0
- package/DESIGN.md +194 -0
- package/LICENSE +21 -0
- package/README.md +77 -53
- package/THIRD_PARTY_NOTICES.md +51 -0
- package/dist/{chunk-SYI3IKIC.js → chunk-QKVN6Q6C.js} +102 -19
- package/dist/components/index.d.ts +17 -8
- package/dist/components/index.js +1278 -251
- package/dist/components/ui/index.d.ts +27 -5
- package/dist/components/ui/index.js +288 -33
- package/dist/source/components/brand-artwork.generated.d.ts +162 -0
- package/dist/source/components/brand-artwork.generated.js +1103 -0
- package/dist/source/components/footer.d.ts +15 -0
- package/dist/source/components/footer.js +128 -0
- package/dist/source/components/index.d.ts +11 -0
- package/dist/source/components/index.js +26 -0
- package/dist/source/components/locale-switcher.d.ts +17 -0
- package/dist/source/components/locale-switcher.js +66 -0
- package/dist/source/components/logo.d.ts +18 -0
- package/dist/source/components/logo.js +91 -0
- package/dist/source/components/nav.d.ts +39 -0
- package/dist/source/components/nav.js +375 -0
- package/dist/source/components/theme-provider.d.ts +6 -0
- package/dist/source/components/theme-provider.js +45 -0
- package/dist/source/components/theme-toggle-icon.d.ts +5 -0
- package/dist/source/components/theme-toggle-icon.js +62 -0
- package/dist/source/components/theme-toggle.d.ts +5 -0
- package/dist/source/components/theme-toggle.js +34 -0
- package/dist/source/components/typography.d.ts +12 -0
- package/dist/source/components/typography.js +49 -0
- package/dist/source/components/ui/avatar.d.ts +14 -0
- package/dist/source/components/ui/avatar.js +137 -0
- package/dist/source/components/ui/badge.d.ts +13 -0
- package/dist/source/components/ui/badge.js +76 -0
- package/dist/source/components/ui/button.d.ts +14 -0
- package/dist/source/components/ui/button.js +88 -0
- package/dist/source/components/ui/card.d.ts +13 -0
- package/dist/source/components/ui/card.js +135 -0
- package/dist/source/components/ui/checkbox.d.ts +7 -0
- package/dist/source/components/ui/checkbox.js +58 -0
- package/dist/source/components/ui/dialog.d.ts +20 -0
- package/dist/source/components/ui/dialog.js +182 -0
- package/dist/source/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/source/components/ui/dropdown-menu.js +282 -0
- package/dist/source/components/ui/index.d.ts +19 -0
- package/dist/source/components/ui/index.js +131 -0
- package/dist/source/components/ui/input.d.ts +6 -0
- package/dist/source/components/ui/input.js +49 -0
- package/dist/source/components/ui/select.d.ts +16 -0
- package/dist/source/components/ui/select.js +197 -0
- package/dist/source/components/ui/sonner.d.ts +6 -0
- package/dist/source/components/ui/sonner.js +80 -0
- package/dist/source/components/ui/switch.d.ts +7 -0
- package/dist/source/components/ui/switch.js +54 -0
- package/dist/source/components/ui/tabs.d.ts +10 -0
- package/dist/source/components/ui/tabs.js +57 -0
- package/dist/source/components/ui/textarea.d.ts +6 -0
- package/dist/source/components/ui/textarea.js +46 -0
- package/dist/source/i18n/config.d.ts +6 -0
- package/dist/source/i18n/config.js +12 -0
- package/dist/source/i18n/routing.d.ts +371 -0
- package/dist/source/i18n/routing.js +17 -0
- package/dist/source/lib/design/modal-inert.d.ts +6 -0
- package/dist/source/lib/design/modal-inert.js +73 -0
- package/dist/source/lib/utils.d.ts +5 -0
- package/dist/source/lib/utils.js +8 -0
- package/dist/tokens.ts +217 -0
- package/docs/components/README.md +21 -0
- package/docs/components/avatar.md +47 -0
- package/docs/components/badge.md +29 -0
- package/docs/components/button.md +39 -0
- package/docs/components/card.md +32 -0
- package/docs/components/checkbox.md +35 -0
- package/docs/components/common.md +31 -0
- package/docs/components/composition.md +68 -0
- package/docs/components/dialog.md +41 -0
- package/docs/components/dropdown-menu.md +38 -0
- package/docs/components/input.md +32 -0
- package/docs/components/select.md +39 -0
- package/docs/components/sonner.md +37 -0
- package/docs/components/switch.md +33 -0
- package/docs/components/tabs.md +40 -0
- package/docs/components/textarea.md +35 -0
- package/docs/design/component-demand.md +30 -0
- package/docs/design/public-ui-final-verification.md +96 -0
- package/docs/design/public-ui-release-validation.md +86 -0
- package/docs/design/public-ui-stage3-verification.md +98 -0
- package/docs/design/public-ui-stage4-verification.md +129 -0
- package/docs/design/public-ui-support.md +42 -0
- package/docs/design/v2-migration.md +229 -0
- package/docs/package-release.md +108 -0
- package/licenses/Lato-OFL.txt +93 -0
- package/licenses/Noto-Sans-JP-OFL.txt +93 -0
- package/licenses/Nunito-Sans-OFL.txt +93 -0
- package/licenses/Pretendard-OFL.txt +94 -0
- package/licenses/React-MIT.txt +21 -0
- package/licenses/Storybook-MIT.txt +21 -0
- package/licenses/popper-MIT.txt +25 -0
- package/licenses/react-remove-scroll-bar-MIT.txt +21 -0
- package/licenses/store2-MIT.txt +22 -0
- package/licenses/toggle-selection-MIT.txt +21 -0
- package/package.json +184 -34
- package/src/styles/components.css +276 -0
- package/src/styles/globals.css +18 -0
- package/src/styles/theme.css +185 -98
- package/messages/en.json +0 -221
- package/messages/ja.json +0 -221
- package/messages/ko.json +0 -221
- package/src/app/globals.css +0 -32
package/messages/ja.json
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"common": {
|
|
3
|
-
"appName": "naeil",
|
|
4
|
-
"home": "ホーム",
|
|
5
|
-
"projects": "プロジェクト",
|
|
6
|
-
"design": "デザインシステム",
|
|
7
|
-
"loading": "読み込み中..."
|
|
8
|
-
},
|
|
9
|
-
"nav": {
|
|
10
|
-
"home": "ホーム",
|
|
11
|
-
"projects": "プロジェクト",
|
|
12
|
-
"blog": "ブログ"
|
|
13
|
-
},
|
|
14
|
-
"hero": {
|
|
15
|
-
"title": ".naeil",
|
|
16
|
-
"subtitle": "Build · Ship · Iterate"
|
|
17
|
-
},
|
|
18
|
-
"projects": {
|
|
19
|
-
"title": "プロジェクト",
|
|
20
|
-
"subtitle": "実用のために作った個人ツール。",
|
|
21
|
-
"cc": {
|
|
22
|
-
"name": "Content Collector",
|
|
23
|
-
"description": "RSS、YouTube、Redditの自動収集 + AI要約"
|
|
24
|
-
},
|
|
25
|
-
"pkm": {
|
|
26
|
-
"name": "PKM",
|
|
27
|
-
"description": "個人ナレッジ管理 — ドキュメント解析、埋め込み、セマンティック検索"
|
|
28
|
-
},
|
|
29
|
-
"naeilUi": {
|
|
30
|
-
"name": "naeil-ui",
|
|
31
|
-
"description": "ミニマルデザインシステム — OKLCHトークン、Tailwind v4、shadcn"
|
|
32
|
-
},
|
|
33
|
-
"babyAgent": {
|
|
34
|
-
"name": "Baby Agent",
|
|
35
|
-
"description": "育児AIエージェント — LINE Q&A、記録、リマインダー"
|
|
36
|
-
},
|
|
37
|
-
"status": {
|
|
38
|
-
"active": "アクティブ",
|
|
39
|
-
"coming": "準備中"
|
|
40
|
-
},
|
|
41
|
-
"sa": {
|
|
42
|
-
"name": "Sustainability Analyzer",
|
|
43
|
-
"description": "ESGレポートAI分析 — PDF解析、定性評価、比較表の自動生成"
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"stack": {
|
|
47
|
-
"label": "使用技術"
|
|
48
|
-
},
|
|
49
|
-
"cc": {
|
|
50
|
-
"name": "Content Collector",
|
|
51
|
-
"description": "ローカルAI自動パイプライン — 散在する技術情報を毎日のダイジェストに",
|
|
52
|
-
"overview": "ローカルAI処理による自動コンテンツパイプライン。\n\nGitHub、Reddit、Threadsなど複数ソースのテックコンテンツをローカルAIパイプラインで処理。埋め込み、分類、クラスタリング、要約。生コンテンツから日次編集ダイジェストへの変換。\n\nOllama+無料APIによる全処理のローカル実行。PostgreSQL+pgvectorに構造化データ保存。セマンティック検索内蔵。",
|
|
53
|
-
"features": {
|
|
54
|
-
"collect": {
|
|
55
|
-
"title": "マルチソース収集",
|
|
56
|
-
"desc": "RSS・Reddit・Threads — 一つのパイプラインで収集・正規化"
|
|
57
|
-
},
|
|
58
|
-
"classify": {
|
|
59
|
-
"title": "ローカルAI分類",
|
|
60
|
-
"desc": "Qwen3 14Bオンデバイス — 関連度判定、トピックラベリング、優先度ランキング"
|
|
61
|
-
},
|
|
62
|
-
"embed": {
|
|
63
|
-
"title": "ベクトル埋め込み検索",
|
|
64
|
-
"desc": "BGE-M3 + pgvector — 高速な意味ベース類似検索と再発見"
|
|
65
|
-
},
|
|
66
|
-
"digest": {
|
|
67
|
-
"title": "デイリーダイジェスト",
|
|
68
|
-
"desc": "Gemini編集要約 — LINEメッセージ + 詳細HTMLレポート"
|
|
69
|
-
},
|
|
70
|
-
"zeroCost": {
|
|
71
|
-
"title": "月額ゼロ運用",
|
|
72
|
-
"desc": "ローカルMac Mini、オープンモデル、無料API — 固定インフラ費用なし"
|
|
73
|
-
},
|
|
74
|
-
"alerts": {
|
|
75
|
-
"title": "リアルタイムアラート",
|
|
76
|
-
"desc": "優先度の高いシグナル検知で即時通知 — 数時間後ではなく、その場で"
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
"workflow": {
|
|
80
|
-
"github": {
|
|
81
|
-
"desc": "RSSフィードを通じたGitHubリリースとディスカッション収集",
|
|
82
|
-
"meta": "30分間隔"
|
|
83
|
-
},
|
|
84
|
-
"reddit": {
|
|
85
|
-
"desc": "RSSとJSON検索APIを通じたサブレディット投稿収集",
|
|
86
|
-
"meta": "30分間隔"
|
|
87
|
-
},
|
|
88
|
-
"threads": {
|
|
89
|
-
"desc": "Playwrightヘッドレスブラウザでプロフィールスクレイピング",
|
|
90
|
-
"meta": "30分間隔"
|
|
91
|
-
},
|
|
92
|
-
"collector": {
|
|
93
|
-
"desc": "ソース別ディスパッチ、コンテンツハッシュ重複排除",
|
|
94
|
-
"meta": "SHA-256重複排除"
|
|
95
|
-
},
|
|
96
|
-
"postgres": {
|
|
97
|
-
"desc": "生アイテム、分類、埋め込み、クラスター、ダイジェスト履歴を保存"
|
|
98
|
-
},
|
|
99
|
-
"embed": {
|
|
100
|
-
"desc": "類似検索のための1024次元多言語ベクター生成",
|
|
101
|
-
"meta": "アイテムあたり~2秒"
|
|
102
|
-
},
|
|
103
|
-
"classify": {
|
|
104
|
-
"desc": "トピック、重要度、コンテンツタイプ、タグ — 自動ラベリング",
|
|
105
|
-
"meta": "アイテムあたり~18秒"
|
|
106
|
-
},
|
|
107
|
-
"cluster": {
|
|
108
|
-
"desc": "コサイン類似度グルーピング、ホットスコアランキング"
|
|
109
|
-
},
|
|
110
|
-
"digest": {
|
|
111
|
-
"desc": "上位コンテンツから編集LINE要約 + 詳細HTMLレポート生成",
|
|
112
|
-
"meta": "無料API"
|
|
113
|
-
},
|
|
114
|
-
"line": {
|
|
115
|
-
"desc": "LINEグループに簡潔なデイリー要約をプッシュ"
|
|
116
|
-
},
|
|
117
|
-
"html": {
|
|
118
|
-
"desc": "リンクとスコア付きカテゴリ別詳細レポート"
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
"pkm": {
|
|
123
|
-
"name": "PKM",
|
|
124
|
-
"description": "個人ナレッジベース — ドキュメント解析、埋め込み、セマンティック検索"
|
|
125
|
-
},
|
|
126
|
-
"babyAgent": {
|
|
127
|
-
"name": "Baby Agent",
|
|
128
|
-
"description": "LINE育児AIコンパニオン — Q&A、成長記録、スケジュールリマインダー"
|
|
129
|
-
},
|
|
130
|
-
"design": {
|
|
131
|
-
"title": "naeil-ui",
|
|
132
|
-
"subtitle": "デザインシステムショーケース — トークン · コンポーネント · テーマ"
|
|
133
|
-
},
|
|
134
|
-
"blogPage": {
|
|
135
|
-
"title": "ブログ",
|
|
136
|
-
"subtitle": "ビルド記録、リサーチ、反復改善ログ。",
|
|
137
|
-
"comingSoon": "準備中"
|
|
138
|
-
},
|
|
139
|
-
"footer": {
|
|
140
|
-
"tagline": "Tomorrow starts here.",
|
|
141
|
-
"navigation": "ナビゲーション",
|
|
142
|
-
"projects": "プロジェクト",
|
|
143
|
-
"blog": "ブログ",
|
|
144
|
-
"social": "ソーシャル"
|
|
145
|
-
},
|
|
146
|
-
"auth": {
|
|
147
|
-
"login": "ログイン",
|
|
148
|
-
"loginWithGoogle": "Googleでログイン",
|
|
149
|
-
"loginWithGithub": "GitHubでログイン",
|
|
150
|
-
"loginDescription": "すべての機能を利用するにはログインしてください",
|
|
151
|
-
"redirecting": "リダイレクト中...",
|
|
152
|
-
"logout": "ログアウト",
|
|
153
|
-
"profile": "プロフィール"
|
|
154
|
-
},
|
|
155
|
-
"locale": {
|
|
156
|
-
"switchLabel": "言語"
|
|
157
|
-
},
|
|
158
|
-
"sa": {
|
|
159
|
-
"name": "Sustainability Analyzer",
|
|
160
|
-
"description": "ESGレポートをAIで分析 — トピック発見、定性評価、企業間比較表を自動生成",
|
|
161
|
-
"overview": "企業ESGレポートPDFを解析し、AIで体系的な定性評価を行う分析パイプライン。\n\nDoclingレイアウトパーサーで表・テキスト構造を保持したまま階層的にチャンキング。BGE-M3エンベディング(Dense+Sparse)でハイブリッドセマンティック検索。Claudeが41のESGトピックを自動発見し、415のチェックリスト項目で定性評価を実施。\n\nローカルエンベディング+無料API基盤。PostgreSQL+pgvectorに構造化保存。",
|
|
162
|
-
"features": {
|
|
163
|
-
"ingest": {
|
|
164
|
-
"title": "PDF構造保存パーシング",
|
|
165
|
-
"desc": "Doclingレイアウトパーサー — 表・セクション境界を保持した階層チャンキング"
|
|
166
|
-
},
|
|
167
|
-
"embed": {
|
|
168
|
-
"title": "ハイブリッド検索",
|
|
169
|
-
"desc": "BGE-M3 Dense+Sparseエンベディング — pgvectorハイブリッドセマンティック検索"
|
|
170
|
-
},
|
|
171
|
-
"topics": {
|
|
172
|
-
"title": "トピック自動発見",
|
|
173
|
-
"desc": "Claude Sonnet — ESGレポートから41トピック・415チェックリスト自動生成"
|
|
174
|
-
},
|
|
175
|
-
"assess": {
|
|
176
|
-
"title": "AI定性評価",
|
|
177
|
-
"desc": "トピック別チェックリスト基盤の自動評価 — 根拠引用・スコア・コメント"
|
|
178
|
-
},
|
|
179
|
-
"compare": {
|
|
180
|
-
"title": "企業間比較表",
|
|
181
|
-
"desc": "セクター別フィルタリング — トピック×企業マトリクス自動生成"
|
|
182
|
-
},
|
|
183
|
-
"zeroCost": {
|
|
184
|
-
"title": "ローカル+無料",
|
|
185
|
-
"desc": "BGE-M3オンデバイスエンベディング、Claude・Gemini無料ティア活用"
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
"workflow": {
|
|
189
|
-
"pdf": {
|
|
190
|
-
"desc": "企業ESG/サステナビリティレポートPDF入力",
|
|
191
|
-
"meta": "年次レポート"
|
|
192
|
-
},
|
|
193
|
-
"docling": {
|
|
194
|
-
"desc": "レイアウト基盤の構造解析 — 表単一チャンク、セクション境界保持",
|
|
195
|
-
"meta": "表+テキスト"
|
|
196
|
-
},
|
|
197
|
-
"chunk": {
|
|
198
|
-
"desc": "Parent-Child階層チャンキング — コンテキスト保持+精密検索",
|
|
199
|
-
"meta": "parent 1K / child 512"
|
|
200
|
-
},
|
|
201
|
-
"bgem3": {
|
|
202
|
-
"desc": "Dense(1024次元)+ Sparse(学習済みBM25)同時エンベディング生成",
|
|
203
|
-
"meta": "FlagEmbedding"
|
|
204
|
-
},
|
|
205
|
-
"pgvector": {
|
|
206
|
-
"desc": "チャンク、エンベディング、評価、比較表 — 全構造化保存"
|
|
207
|
-
},
|
|
208
|
-
"search": {
|
|
209
|
-
"desc": "Dense+Sparseハイブリッド検索、Parentコンテキスト展開"
|
|
210
|
-
},
|
|
211
|
-
"claude": {
|
|
212
|
-
"desc": "トピック発見、チェックリスト生成、根拠ベース定性評価",
|
|
213
|
-
"meta": "Sonnet"
|
|
214
|
-
},
|
|
215
|
-
"report": {
|
|
216
|
-
"desc": "トピック×企業比較表HTMLレポート自動生成",
|
|
217
|
-
"meta": "セクターフィルタ"
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
package/messages/ko.json
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"common": {
|
|
3
|
-
"appName": "naeil",
|
|
4
|
-
"home": "홈",
|
|
5
|
-
"projects": "프로젝트",
|
|
6
|
-
"design": "디자인 시스템",
|
|
7
|
-
"loading": "로딩 중..."
|
|
8
|
-
},
|
|
9
|
-
"nav": {
|
|
10
|
-
"home": "홈",
|
|
11
|
-
"projects": "프로젝트",
|
|
12
|
-
"blog": "블로그"
|
|
13
|
-
},
|
|
14
|
-
"hero": {
|
|
15
|
-
"title": ".naeil",
|
|
16
|
-
"subtitle": "Build · Ship · Iterate"
|
|
17
|
-
},
|
|
18
|
-
"projects": {
|
|
19
|
-
"title": "프로젝트",
|
|
20
|
-
"subtitle": "실사용을 위해 만든 개인 도구들.",
|
|
21
|
-
"cc": {
|
|
22
|
-
"name": "Content Collector",
|
|
23
|
-
"description": "RSS, YouTube, Reddit 자동 수집 + AI 요약"
|
|
24
|
-
},
|
|
25
|
-
"pkm": {
|
|
26
|
-
"name": "PKM",
|
|
27
|
-
"description": "개인 지식 관리 — 문서 파싱, 임베딩, 시맨틱 검색"
|
|
28
|
-
},
|
|
29
|
-
"naeilUi": {
|
|
30
|
-
"name": "naeil-ui",
|
|
31
|
-
"description": "미니멀 디자인 시스템 — OKLCH 토큰, Tailwind v4, shadcn"
|
|
32
|
-
},
|
|
33
|
-
"babyAgent": {
|
|
34
|
-
"name": "Baby Agent",
|
|
35
|
-
"description": "육아 AI 에이전트 — LINE 기반 Q&A, 기록, 리마인더"
|
|
36
|
-
},
|
|
37
|
-
"status": {
|
|
38
|
-
"active": "활성",
|
|
39
|
-
"coming": "준비 중"
|
|
40
|
-
},
|
|
41
|
-
"sa": {
|
|
42
|
-
"name": "Sustainability Analyzer",
|
|
43
|
-
"description": "ESG 리포트 AI 분석 — PDF 파싱, 정성평가, 비교표 자동 생성"
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"stack": {
|
|
47
|
-
"label": "사용 기술"
|
|
48
|
-
},
|
|
49
|
-
"cc": {
|
|
50
|
-
"name": "Content Collector",
|
|
51
|
-
"description": "로컬 AI 자동 파이프라인 — 흩어진 테크 소스, 하루 한 장으로",
|
|
52
|
-
"overview": "GitHub, Reddit, Threads — 여러 소스의 테크 콘텐츠를 수집하고 로컬 AI로 처리.\n\n임베딩, 분류, 클러스터링, 요약. 원시 콘텐츠에서 매일 편집된 다이제스트로.\n\nOllama + 무료 API 기반 전부 로컬 실행. PostgreSQL + pgvector 구조화 저장. 시맨틱 검색 내장.",
|
|
53
|
-
"features": {
|
|
54
|
-
"collect": {
|
|
55
|
-
"title": "멀티 소스 수집",
|
|
56
|
-
"desc": "RSS, Reddit, Threads — 한 파이프라인으로 수집·정규화"
|
|
57
|
-
},
|
|
58
|
-
"classify": {
|
|
59
|
-
"title": "로컬 AI 분류",
|
|
60
|
-
"desc": "Qwen3 14B 온디바이스 — 관련도 판별, 토픽 라벨링, 우선순위 랭킹"
|
|
61
|
-
},
|
|
62
|
-
"embed": {
|
|
63
|
-
"title": "벡터 임베딩 검색",
|
|
64
|
-
"desc": "BGE-M3 + pgvector — 의미 기반 유사 검색과 주제 추적"
|
|
65
|
-
},
|
|
66
|
-
"digest": {
|
|
67
|
-
"title": "데일리 다이제스트",
|
|
68
|
-
"desc": "Gemini 편집 요약 — LINE 메시지 + 상세 HTML 리포트"
|
|
69
|
-
},
|
|
70
|
-
"zeroCost": {
|
|
71
|
-
"title": "월 비용 0원",
|
|
72
|
-
"desc": "로컬 Mac Mini, 오픈 모델, 무료 API — 고정 인프라 비용 없음"
|
|
73
|
-
},
|
|
74
|
-
"alerts": {
|
|
75
|
-
"title": "실시간 알림",
|
|
76
|
-
"desc": "우선순위 높은 신호 감지 즉시 알림 — 몇 시간 뒤가 아니라 바로"
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
"workflow": {
|
|
80
|
-
"github": {
|
|
81
|
-
"desc": "RSS 피드를 통한 GitHub 릴리즈 및 디스커션 수집",
|
|
82
|
-
"meta": "30분 간격"
|
|
83
|
-
},
|
|
84
|
-
"reddit": {
|
|
85
|
-
"desc": "RSS 및 JSON 검색 API를 통한 서브레딧 포스트 수집",
|
|
86
|
-
"meta": "30분 간격"
|
|
87
|
-
},
|
|
88
|
-
"threads": {
|
|
89
|
-
"desc": "Playwright 헤드리스 브라우저로 프로필 스크래핑",
|
|
90
|
-
"meta": "30분 간격"
|
|
91
|
-
},
|
|
92
|
-
"collector": {
|
|
93
|
-
"desc": "소스별 디스패치, 콘텐츠 해시 중복 제거",
|
|
94
|
-
"meta": "SHA-256 중복 제거"
|
|
95
|
-
},
|
|
96
|
-
"postgres": {
|
|
97
|
-
"desc": "원본 아이템, 분류, 임베딩, 클러스터, 다이제스트 이력 저장"
|
|
98
|
-
},
|
|
99
|
-
"embed": {
|
|
100
|
-
"desc": "유사 검색을 위한 1024차원 다국어 벡터 생성",
|
|
101
|
-
"meta": "아이템당 ~2초"
|
|
102
|
-
},
|
|
103
|
-
"classify": {
|
|
104
|
-
"desc": "토픽, 중요도, 콘텐츠 유형, 태그 — 자동 라벨링",
|
|
105
|
-
"meta": "아이템당 ~18초"
|
|
106
|
-
},
|
|
107
|
-
"cluster": {
|
|
108
|
-
"desc": "코사인 유사도 그룹화, 핫 스코어 랭킹"
|
|
109
|
-
},
|
|
110
|
-
"digest": {
|
|
111
|
-
"desc": "상위 콘텐츠에서 편집 LINE 요약 + 상세 HTML 리포트 생성",
|
|
112
|
-
"meta": "무료 API"
|
|
113
|
-
},
|
|
114
|
-
"line": {
|
|
115
|
-
"desc": "LINE 그룹에 간결한 일일 요약 푸시"
|
|
116
|
-
},
|
|
117
|
-
"html": {
|
|
118
|
-
"desc": "링크와 점수 포함 카테고리별 상세 리포트"
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
"pkm": {
|
|
123
|
-
"name": "PKM",
|
|
124
|
-
"description": "개인 지식 베이스 — 문서 파싱, 임베딩, 시맨틱 검색"
|
|
125
|
-
},
|
|
126
|
-
"babyAgent": {
|
|
127
|
-
"name": "Baby Agent",
|
|
128
|
-
"description": "LINE 기반 육아 AI — Q&A, 성장 기록, 일정 리마인더"
|
|
129
|
-
},
|
|
130
|
-
"design": {
|
|
131
|
-
"title": "naeil-ui",
|
|
132
|
-
"subtitle": "디자인 시스템 쇼케이스 — 토큰 · 컴포넌트 · 테마"
|
|
133
|
-
},
|
|
134
|
-
"blogPage": {
|
|
135
|
-
"title": "블로그",
|
|
136
|
-
"subtitle": "빌드 기록, 리서치, 반복 개선 로그.",
|
|
137
|
-
"comingSoon": "준비 중"
|
|
138
|
-
},
|
|
139
|
-
"footer": {
|
|
140
|
-
"tagline": "Tomorrow starts here.",
|
|
141
|
-
"navigation": "네비게이션",
|
|
142
|
-
"projects": "프로젝트",
|
|
143
|
-
"blog": "블로그",
|
|
144
|
-
"social": "소셜"
|
|
145
|
-
},
|
|
146
|
-
"auth": {
|
|
147
|
-
"login": "로그인",
|
|
148
|
-
"loginWithGoogle": "Google로 로그인",
|
|
149
|
-
"loginWithGithub": "GitHub로 로그인",
|
|
150
|
-
"loginDescription": "모든 기능을 이용하려면 로그인하세요",
|
|
151
|
-
"redirecting": "리다이렉트 중...",
|
|
152
|
-
"logout": "로그아웃",
|
|
153
|
-
"profile": "프로필"
|
|
154
|
-
},
|
|
155
|
-
"locale": {
|
|
156
|
-
"switchLabel": "언어"
|
|
157
|
-
},
|
|
158
|
-
"sa": {
|
|
159
|
-
"name": "Sustainability Analyzer",
|
|
160
|
-
"description": "ESG 리포트를 AI로 분석 — 주제 발견, 정성평가, 기업간 비교표 자동 생성",
|
|
161
|
-
"overview": "기업 ESG 리포트 PDF를 파싱하고, AI로 체계적 정성평가를 수행하는 분석 파이프라인.\n\nDocling 레이아웃 파서로 표·텍스트 구조를 보존한 채 청킹. BGE-M3 임베딩(Dense+Sparse)으로 하이브리드 시맨틱 검색. Claude가 41개 ESG 주제를 자동 발견하고 415개 체크리스트 항목으로 정성평가를 수행.\n\n로컬 임베딩 + 무료 API 기반. PostgreSQL + pgvector에 구조화 저장.",
|
|
162
|
-
"features": {
|
|
163
|
-
"ingest": {
|
|
164
|
-
"title": "PDF 구조 보존 파싱",
|
|
165
|
-
"desc": "Docling 레이아웃 파서 — 표·섹션 경계를 보존한 계층적 청킹"
|
|
166
|
-
},
|
|
167
|
-
"embed": {
|
|
168
|
-
"title": "하이브리드 검색",
|
|
169
|
-
"desc": "BGE-M3 Dense+Sparse 임베딩 — pgvector 하이브리드 시맨틱 검색"
|
|
170
|
-
},
|
|
171
|
-
"topics": {
|
|
172
|
-
"title": "주제 자동 발견",
|
|
173
|
-
"desc": "Claude Sonnet — ESG 리포트에서 41개 주제·415개 체크리스트 자동 생성"
|
|
174
|
-
},
|
|
175
|
-
"assess": {
|
|
176
|
-
"title": "AI 정성평가",
|
|
177
|
-
"desc": "주제별 체크리스트 기반 자동 평가 — 근거 인용·점수·코멘트"
|
|
178
|
-
},
|
|
179
|
-
"compare": {
|
|
180
|
-
"title": "기업간 비교표",
|
|
181
|
-
"desc": "섹터별 필터링 — 주제×기업 매트릭스 자동 생성"
|
|
182
|
-
},
|
|
183
|
-
"zeroCost": {
|
|
184
|
-
"title": "로컬 + 무료",
|
|
185
|
-
"desc": "BGE-M3 온디바이스 임베딩, Claude·Gemini 무료 티어 활용"
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
"workflow": {
|
|
189
|
-
"pdf": {
|
|
190
|
-
"desc": "기업 ESG/지속가능성 리포트 PDF 입력",
|
|
191
|
-
"meta": "연간 리포트"
|
|
192
|
-
},
|
|
193
|
-
"docling": {
|
|
194
|
-
"desc": "레이아웃 기반 구조 파싱 — 표 단일 청킹, 섹션 경계 보존",
|
|
195
|
-
"meta": "표+텍스트"
|
|
196
|
-
},
|
|
197
|
-
"chunk": {
|
|
198
|
-
"desc": "Parent-Child 계층 청킹 — 문맥 보존 + 세밀 검색",
|
|
199
|
-
"meta": "parent 1K / child 512"
|
|
200
|
-
},
|
|
201
|
-
"bgem3": {
|
|
202
|
-
"desc": "Dense(1024d) + Sparse(학습된 BM25) 동시 임베딩 생성",
|
|
203
|
-
"meta": "FlagEmbedding"
|
|
204
|
-
},
|
|
205
|
-
"pgvector": {
|
|
206
|
-
"desc": "청크, 임베딩, 평가, 비교표 — 전체 구조화 저장"
|
|
207
|
-
},
|
|
208
|
-
"search": {
|
|
209
|
-
"desc": "Dense+Sparse 하이브리드 검색, Parent Context 확장"
|
|
210
|
-
},
|
|
211
|
-
"claude": {
|
|
212
|
-
"desc": "주제 발견, 체크리스트 생성, 근거 기반 정성평가",
|
|
213
|
-
"meta": "Sonnet"
|
|
214
|
-
},
|
|
215
|
-
"report": {
|
|
216
|
-
"desc": "주제×기업 비교표 HTML 리포트 자동 생성",
|
|
217
|
-
"meta": "섹터 필터"
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
package/src/app/globals.css
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
@import "tailwindcss";
|
|
2
|
-
@import "tw-animate-css";
|
|
3
|
-
@import "shadcn/tailwind.css";
|
|
4
|
-
@import "../styles/theme.css";
|
|
5
|
-
|
|
6
|
-
@custom-variant dark (&:is(.dark *));
|
|
7
|
-
|
|
8
|
-
/* Register float animation as Tailwind utility */
|
|
9
|
-
@theme inline {
|
|
10
|
-
--animate-float: float 4s ease-in-out infinite;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@layer base {
|
|
14
|
-
* {
|
|
15
|
-
@apply border-border outline-ring/50;
|
|
16
|
-
}
|
|
17
|
-
body {
|
|
18
|
-
@apply bg-background text-foreground font-sans;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/* Float keyframes */
|
|
23
|
-
@keyframes float {
|
|
24
|
-
0%, 100% { transform: translateY(0); }
|
|
25
|
-
50% { transform: translateY(-12px); }
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
@media (prefers-reduced-motion: reduce) {
|
|
29
|
-
.animate-float {
|
|
30
|
-
animation: none;
|
|
31
|
-
}
|
|
32
|
-
}
|