@hua-labs/ui 2.0.2 → 2.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.
- package/README.md +67 -182
- package/dist/advanced-emotion.js +1 -1
- package/dist/advanced-emotion.js.map +1 -1
- package/dist/advanced-emotion.mjs +1 -1
- package/dist/advanced-motion.js +1 -1
- package/dist/advanced-motion.js.map +1 -1
- package/dist/advanced-motion.mjs +1 -1
- package/dist/advanced.js +1 -1
- package/dist/advanced.js.map +1 -1
- package/dist/advanced.mjs +1 -1
- package/dist/chunk-BXX2TZUB.mjs +3 -0
- package/dist/chunk-BXX2TZUB.mjs.map +1 -0
- package/dist/{chunk-5BMH7223.mjs → chunk-PYBYZVSL.mjs} +2 -2
- package/dist/{chunk-5BMH7223.mjs.map → chunk-PYBYZVSL.mjs.map} +1 -1
- package/dist/components/Card.d.ts.map +1 -1
- package/dist/iconsax-extended.js +1 -1
- package/dist/iconsax-extended.js.map +1 -1
- package/dist/iconsax-extended.mjs +1 -1
- package/dist/iconsax-extended.mjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/sdui.js +1 -1
- package/dist/sdui.js.map +1 -1
- package/dist/sdui.mjs +1 -1
- package/package.json +6 -1
- package/dist/chunk-FSL373O6.mjs +0 -3
- package/dist/chunk-FSL373O6.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -1,31 +1,42 @@
|
|
|
1
1
|
# @hua-labs/ui
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Modern React UI component library — accessible, themeable, production-ready.
|
|
4
|
+
모던 React UI 컴포넌트 라이브러리 — 접근성, 테마, 프로덕션 레디.
|
|
4
5
|
|
|
5
6
|
[](https://www.npmjs.com/package/@hua-labs/ui)
|
|
6
|
-
[](https://www.npmjs.com/package/@hua-labs/ui)
|
|
7
8
|
[](https://github.com/HUA-Labs/HUA-Labs-public/blob/main/LICENSE)
|
|
8
9
|
[](https://www.typescriptlang.org/)
|
|
9
10
|
[](https://reactjs.org/)
|
|
10
11
|
|
|
12
|
+
> **Alpha**: APIs may change before stable release. | **알파**: 안정 릴리스 전 API가 변경될 수 있습니다.
|
|
13
|
+
|
|
14
|
+
## Overview | 개요
|
|
15
|
+
|
|
16
|
+
Accessible, TypeScript-first component library for React applications. Provides 50+ production-ready components with modular entry points for optimal bundle size, dark mode support, and Tailwind CSS integration.
|
|
17
|
+
|
|
18
|
+
React 애플리케이션을 위한 접근성 우선 TypeScript 컴포넌트 라이브러리입니다. 50개 이상의 프로덕션 레디 컴포넌트를 모듈식 진입점, 다크 모드, Tailwind CSS 통합과 함께 제공합니다.
|
|
19
|
+
|
|
11
20
|
## Features
|
|
12
21
|
|
|
13
|
-
- **
|
|
14
|
-
- **Modular entry points — Import only what you need for optimal bundle size
|
|
15
|
-
- **Accessible — ARIA attributes, keyboard navigation, WCAG compliant
|
|
16
|
-
- **Dark mode — Built-in dark mode support
|
|
17
|
-
- **Tailwind CSS — Utility-first styling with class variance authority
|
|
18
|
-
- **Tree-shakeable — Side-effect free (except CSS)
|
|
22
|
+
- **50+ components** — Buttons, forms, tables, modals, overlays, and more
|
|
23
|
+
- **Modular entry points** — Import only what you need for optimal bundle size
|
|
24
|
+
- **Accessible** — ARIA attributes, keyboard navigation, WCAG compliant
|
|
25
|
+
- **Dark mode** — Built-in dark mode support
|
|
26
|
+
- **Tailwind CSS** — Utility-first styling with class variance authority
|
|
27
|
+
- **Tree-shakeable** — Side-effect free (except CSS)
|
|
19
28
|
|
|
20
|
-
## Installation
|
|
29
|
+
## Installation | 설치
|
|
21
30
|
|
|
22
31
|
```bash
|
|
23
32
|
pnpm add @hua-labs/ui
|
|
24
33
|
```
|
|
25
34
|
|
|
26
|
-
|
|
35
|
+
Peer dependencies: `react >= 19.0.0`, `react-dom >= 19.0.0`
|
|
27
36
|
|
|
28
|
-
|
|
37
|
+
Optional peers: `@dnd-kit/core`, `@dnd-kit/sortable`, `@dnd-kit/utilities` (for drag-and-drop)
|
|
38
|
+
|
|
39
|
+
## Quick Start | 빠른 시작
|
|
29
40
|
|
|
30
41
|
```tsx
|
|
31
42
|
import { Button, Card, CardHeader, CardTitle, CardContent } from '@hua-labs/ui';
|
|
@@ -44,179 +55,53 @@ function App() {
|
|
|
44
55
|
</Card>
|
|
45
56
|
);
|
|
46
57
|
}
|
|
47
|
-
|
|
48
58
|
```
|
|
49
59
|
|
|
50
|
-
##
|
|
51
|
-
|
|
52
|
-
|
|
|
53
|
-
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
|
|
|
64
|
-
| `
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
|
69
|
-
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
| `
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
| `SkeletonCard` | component | |
|
|
95
|
-
| `SkeletonAvatar` | component | |
|
|
96
|
-
| `SkeletonImage` | component | |
|
|
97
|
-
| `SkeletonUserProfile` | component | |
|
|
98
|
-
| `SkeletonList` | component | |
|
|
99
|
-
| `SkeletonTable` | component | |
|
|
100
|
-
| `Alert` | component | |
|
|
101
|
-
| `AlertSuccess` | component | |
|
|
102
|
-
| `AlertWarning` | component | |
|
|
103
|
-
| `AlertError` | component | |
|
|
104
|
-
| `AlertInfo` | component | |
|
|
105
|
-
| `ToastProvider` | component | |
|
|
106
|
-
| `useToast` | hook | |
|
|
107
|
-
| `useToastSafe` | hook | |
|
|
108
|
-
| `LoadingSpinner` | component | |
|
|
109
|
-
| `Tooltip` | component | |
|
|
110
|
-
| `TooltipLight` | component | |
|
|
111
|
-
| `TooltipDark` | component | |
|
|
112
|
-
| `Label` | component | |
|
|
113
|
-
| `Switch` | component | |
|
|
114
|
-
| `Toggle` | component | |
|
|
115
|
-
| `ScrollArea` | component | |
|
|
116
|
-
| `ScrollToTop` | component | |
|
|
117
|
-
| `ThemeProvider` | component | |
|
|
118
|
-
| `ThemeToggle` | component | |
|
|
119
|
-
| `useTheme` | hook | |
|
|
120
|
-
| `iconCategories` | function | |
|
|
121
|
-
| `emotionIcons` | function | |
|
|
122
|
-
| `statusIcons` | function | |
|
|
123
|
-
| `iconNames` | function | |
|
|
124
|
-
| `iconProviderMapping` | function | |
|
|
125
|
-
| `isValidIconName` | function | |
|
|
126
|
-
| `getIconNameForProvider` | function | |
|
|
127
|
-
| `ICON_ALIASES` | component | |
|
|
128
|
-
| `resolveIconAlias` | function | |
|
|
129
|
-
| `getIconAliases` | function | |
|
|
130
|
-
| `IconProvider` | component | |
|
|
131
|
-
| `useIconContext` | hook | |
|
|
132
|
-
| `defaultIconConfig` | function | |
|
|
133
|
-
| `getDefaultStrokeWidth` | function | |
|
|
134
|
-
| `merge` | function | |
|
|
135
|
-
| `mergeIf` | function | |
|
|
136
|
-
| `mergeMap` | function | |
|
|
137
|
-
| `cn` | function | |
|
|
138
|
-
| `formatRelativeTime` | function | |
|
|
139
|
-
| `Slot` | component | |
|
|
140
|
-
| `composeRefs` | function | |
|
|
141
|
-
| `mergeProps` | function | |
|
|
142
|
-
| `createColorStyles` | function | |
|
|
143
|
-
| `useColorStyles` | hook | |
|
|
144
|
-
| `createVariantStyles` | function | |
|
|
145
|
-
| `createSizeStyles` | function | |
|
|
146
|
-
| `createRoundedStyles` | function | |
|
|
147
|
-
| `createShadowStyles` | function | |
|
|
148
|
-
| `createHoverStyles` | function | |
|
|
149
|
-
| `HUA_SPRING_EASING` | component | |
|
|
150
|
-
| `withDarkMode` | function | |
|
|
151
|
-
| `createGradient` | function | |
|
|
152
|
-
| `withOpacity` | function | |
|
|
153
|
-
| `isTextWhite` | function | |
|
|
154
|
-
| `isGradientVariant` | function | |
|
|
155
|
-
| `responsive` | function | |
|
|
156
|
-
| `conditionalClass` | function | |
|
|
157
|
-
| `useMicroMotion` | hook | |
|
|
158
|
-
| `getMicroMotionClasses` | function | |
|
|
159
|
-
| `EASING_FUNCTIONS` | component | |
|
|
160
|
-
| `DURATIONS` | component | |
|
|
161
|
-
| `COMPONENT_MOTION_DEFAULTS` | component | |
|
|
162
|
-
| `CSS_MOTION_VARS` | component | |
|
|
163
|
-
| `useInView` | hook | |
|
|
164
|
-
| `useScrollProgress` | hook | |
|
|
165
|
-
| `useMouse` | hook | |
|
|
166
|
-
| `useReducedMotion` | hook | |
|
|
167
|
-
| `useWindowSize` | hook | |
|
|
168
|
-
| `ButtonProps` | type | |
|
|
169
|
-
| `NumberInputProps` | type | |
|
|
170
|
-
| `IconProps` | type | |
|
|
171
|
-
| `ModalProps` | type | |
|
|
172
|
-
| `CardProps` | type | |
|
|
173
|
-
| `CardHeaderProps` | type | |
|
|
174
|
-
| `CardTitleProps` | type | |
|
|
175
|
-
| `CardDescriptionProps` | type | |
|
|
176
|
-
| `CardContentProps` | type | |
|
|
177
|
-
| `CardFooterProps` | type | |
|
|
178
|
-
| `ActionToolbarProps` | type | |
|
|
179
|
-
| `ActionButton` | type | |
|
|
180
|
-
| `Toast` | type | |
|
|
181
|
-
| `ToggleProps` | type | |
|
|
182
|
-
| `ThemeProviderProps` | type | |
|
|
183
|
-
| `ThemeProviderState` | type | |
|
|
184
|
-
| `IconName` | type | |
|
|
185
|
-
| `ProjectIconName` | type | |
|
|
186
|
-
| `AllIconName` | type | |
|
|
187
|
-
| `IconProviderProps` | type | |
|
|
188
|
-
| `IconSet` | type | |
|
|
189
|
-
| `PhosphorWeight` | type | |
|
|
190
|
-
| `IconConfig` | type | |
|
|
191
|
-
| `SlotProps` | type | |
|
|
192
|
-
| `ColorStyleConfig` | type | |
|
|
193
|
-
| `ColorStyles` | type | |
|
|
194
|
-
| `SizeStyles` | type | |
|
|
195
|
-
| `Rounded` | type | |
|
|
196
|
-
| `Shadow` | type | |
|
|
197
|
-
| `HoverEffect` | type | |
|
|
198
|
-
| `MicroMotionConfig` | type | |
|
|
199
|
-
| `MicroMotionPreset` | type | |
|
|
200
|
-
| `MicroMotionState` | type | |
|
|
201
|
-
| `Color` | type | |
|
|
202
|
-
| `Size` | type | |
|
|
203
|
-
| `BaseVariant` | type | |
|
|
204
|
-
| `ExtendedVariant` | type | |
|
|
205
|
-
| `UseInViewOptions` | type | |
|
|
206
|
-
| `UseInViewReturn` | type | |
|
|
207
|
-
| `UseScrollProgressOptions` | type | |
|
|
208
|
-
| `UseScrollProgressReturn` | type | |
|
|
209
|
-
| `UseMouseOptions` | type | |
|
|
210
|
-
| `UseMouseReturn` | type | |
|
|
211
|
-
| `UseWindowSizeOptions` | type | |
|
|
212
|
-
| `UseWindowSizeReturn` | type | |
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
## Related Packages
|
|
216
|
-
|
|
217
|
-
- [`@hua-labs/hua`](https://www.npmjs.com/package/@hua-labs/hua)
|
|
218
|
-
- [`@hua-labs/ui-dashboard`](https://www.npmjs.com/package/@hua-labs/ui-dashboard)
|
|
60
|
+
## Entry Points | 진입점
|
|
61
|
+
|
|
62
|
+
| Path | Components |
|
|
63
|
+
|------|------------|
|
|
64
|
+
| `@hua-labs/ui` | Button, Card, Badge, Alert, Modal, Drawer, Table, Avatar, etc. |
|
|
65
|
+
| `@hua-labs/ui/form` | Input, Select, DatePicker, Upload, Autocomplete, ColorPicker, etc. |
|
|
66
|
+
| `@hua-labs/ui/navigation` | PageNavigation, PageTransition |
|
|
67
|
+
| `@hua-labs/ui/feedback` | ToastProvider, useToast |
|
|
68
|
+
| `@hua-labs/ui/overlay` | Modal, Drawer, Popover, Dropdown, BottomSheet, ConfirmModal |
|
|
69
|
+
| `@hua-labs/ui/data` | Table, Badge, Progress, Skeleton |
|
|
70
|
+
| `@hua-labs/ui/interactive` | Accordion, Tabs, Menu, ContextMenu, Command |
|
|
71
|
+
| `@hua-labs/ui/sdui` | Server-driven UI components |
|
|
72
|
+
| `@hua-labs/ui/advanced` | Advanced components (dashboard, motion, emotion) |
|
|
73
|
+
| `@hua-labs/ui/styles/*` | CSS files (base, toast, codeblock, theme) |
|
|
74
|
+
| `@hua-labs/ui/icons` | Icon components |
|
|
75
|
+
|
|
76
|
+
## API Overview | API 개요
|
|
77
|
+
|
|
78
|
+
| Category | Components |
|
|
79
|
+
|----------|------------|
|
|
80
|
+
| Basic UI | Button, Icon, Avatar, Link, Badge |
|
|
81
|
+
| Layout | Container, Grid, Stack, Card, Panel, Divider |
|
|
82
|
+
| Form | Input, NumberInput, Select, Checkbox, Radio, Switch, Slider, Textarea, DatePicker, Upload, Autocomplete, ColorPicker |
|
|
83
|
+
| Overlay | Modal, Drawer, Popover, Dropdown, BottomSheet, ConfirmModal |
|
|
84
|
+
| Data | Table, Progress, Skeleton |
|
|
85
|
+
| Feedback | Alert, Toast, LoadingSpinner, Tooltip |
|
|
86
|
+
| Interactive | Accordion, Tabs, Menu, ContextMenu, Command |
|
|
87
|
+
| Navigation | Breadcrumb, Pagination, PageNavigation, PageTransition |
|
|
88
|
+
| Theme | ThemeProvider, ThemeToggle |
|
|
89
|
+
| Utilities | `cn`, `merge`, `mergeIf`, `mergeMap` |
|
|
90
|
+
|
|
91
|
+
## Documentation | 문서
|
|
92
|
+
|
|
93
|
+
- [📚 Documentation Site | 문서 사이트](https://docs.hua-labs.com)
|
|
94
|
+
|
|
95
|
+
## Related Packages | 관련 패키지
|
|
96
|
+
|
|
97
|
+
- [`@hua-labs/hua`](https://www.npmjs.com/package/@hua-labs/hua) — Framework (UI + Motion + i18n)
|
|
98
|
+
- [`@hua-labs/ui-dashboard`](https://www.npmjs.com/package/@hua-labs/ui-dashboard) — Dashboard domain components
|
|
99
|
+
- [`@hua-labs/motion-core`](https://www.npmjs.com/package/@hua-labs/motion-core) — Animation hooks
|
|
100
|
+
|
|
101
|
+
## Requirements | 요구사항
|
|
102
|
+
|
|
103
|
+
React >= 19.0.0 · React DOM >= 19.0.0 · Tailwind CSS · TypeScript >= 5.9
|
|
219
104
|
|
|
220
105
|
## License
|
|
221
106
|
|
|
222
|
-
MIT — [HUA Labs](https://
|
|
107
|
+
MIT — [HUA Labs](https://github.com/HUA-Labs/HUA-Labs-public)
|
package/dist/advanced-emotion.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var y=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var y__default=/*#__PURE__*/_interopDefault(y);function n(...s){return tailwindMerge.twMerge(clsx.clsx(s))}var g=y__default.default.forwardRef(({className:s,value:a,max:o=100,size:l="md",color:c="blue",...d},u)=>{let v={sm:"h-2",md:"h-3",lg:"h-4"},N={blue:"bg-indigo-500",green:"bg-green-500",yellow:"bg-yellow-500",red:"bg-red-500",purple:"bg-purple-500",orange:"bg-orange-500",indigo:"bg-indigo-500",pink:"bg-pink-500",gray:"bg-gray-500"},p=Math.min(Math.max(a/o*100,0),100);return jsxRuntime.jsx("div",{ref:u,className:n("w-full bg-muted rounded-full",v[l],s),...d,children:jsxRuntime.jsx("div",{className:n("h-full rounded-full transition-all duration-300",N[c]||N.blue),style:{width:`${p}%`}})})});g.displayName="EmotionMeter";var H=y__default.default.forwardRef(({className:s,emotion:a,isSelected:o=false,size:l="md",...c},d)=>jsxRuntime.jsx("button",{ref:d,className:n("rounded-full border-2 transition-all duration-200 hover:scale-105 focus:outline-none focus:ring-1 focus:ring-ring",{sm:"w-8 h-8 text-sm",md:"w-12 h-12 text-lg",lg:"w-16 h-16 text-xl"}[l],o?"border-indigo-500 bg-indigo-50 dark:bg-indigo-900/20":"border-border bg-background",s),...c,children:a}));H.displayName="EmotionButton";var G=[{key:"joy",label:"\uAE30\uC068",icon:"smile",color:"yellow"},{key:"sadness",label:"\uC2AC\uD514",icon:"frown",color:"blue"},{key:"anger",label:"\uD654\uB0A8",icon:"angry",color:"red"},{key:"calm",label:"\uD3C9\uC628",icon:"heart",color:"green"},{key:"excitement",label:"\uC124\uB818",icon:"star",color:"pink"},{key:"worry",label:"\uAC71\uC815",icon:"meh",color:"gray"},{key:"gratitude",label:"\uAC10\uC0AC",icon:"heart",color:"purple"},{key:"loneliness",label:"\uC678\uB85C\uC6C0",icon:"user",color:"indigo"}],B=y__default.default.forwardRef(({className:s,selectedEmotion:a,onEmotionSelect:o,layout:l="grid",showIntensity:c=false,intensity:d=50,onIntensityChange:u,emotions:v=G,size:N="md",variant:p="button",...C},T)=>{let b=r=>{o==null||o(r);},w=r=>{let f=a===r.key;return p==="button"?jsxRuntime.jsx(H,{emotion:r.key,isSelected:f,size:N,onClick:()=>b(r.key),className:n("transition-all duration-200",f&&"ring-1 ring-offset-2 ring-primary"),children:r.label},r.key):p==="card"?jsxRuntime.jsx("div",{className:n("p-4 rounded-lg border-2 cursor-pointer transition-all duration-200 hover:shadow-md",f?"border-primary bg-primary/5":"border-border hover:border-primary/50"),onClick:()=>b(r.key),children:jsxRuntime.jsxs("div",{className:"flex items-center space-x-3",children:[jsxRuntime.jsx("div",{className:n("w-8 h-8 rounded-full flex items-center justify-center",f?"bg-primary text-primary-foreground":"bg-muted"),children:r.icon&&jsxRuntime.jsxs("span",{className:"text-lg",children:[r.icon==="smile"&&"\u{1F60A}",r.icon==="frown"&&"\u{1F622}",r.icon==="angry"&&"\u{1F620}",r.icon==="heart"&&"\u2764\uFE0F",r.icon==="star"&&"\u2B50",r.icon==="meh"&&"\u{1F610}",r.icon==="user"&&"\u{1F464}"]})}),jsxRuntime.jsx("span",{className:"font-medium truncate max-w-[120px]",children:r.label})]})},r.key):p==="chip"?jsxRuntime.jsx("div",{className:n("px-3 py-1 rounded-full cursor-pointer transition-all duration-200 text-sm font-medium",f?"bg-primary text-primary-foreground":"bg-muted hover:bg-muted/80"),onClick:()=>b(r.key),children:jsxRuntime.jsx("span",{className:"truncate max-w-[100px]",children:r.label})},r.key):null},M={grid:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-2 md:gap-3",list:"space-y-2",compact:"flex flex-wrap gap-1"};return jsxRuntime.jsxs("div",{ref:T,className:n("space-y-4",s),...C,children:[jsxRuntime.jsx("div",{className:M[l],children:v.map(w)}),c&&a&&jsxRuntime.jsxs("div",{className:"space-y-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4"}),jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[d,"%"]})]}),jsxRuntime.jsx("input",{type:"range",min:"0",max:"100",value:d,onChange:r=>u==null?void 0:u(Number(r.target.value)),className:"w-full h-2 bg-muted rounded-lg appearance-none cursor-pointer slider"}),jsxRuntime.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[jsxRuntime.jsx("span",{children:"\uC57D\uD568"}),jsxRuntime.jsx("span",{children:"\uBCF4\uD1B5"}),jsxRuntime.jsx("span",{children:"\uAC15\uD568"})]})]}),a&&c&&jsxRuntime.jsx("div",{className:"flex justify-center",children:jsxRuntime.jsx(g,{value:d,size:"md",color:"blue"})})]})});B.displayName="EmotionSelector";var Q=classVarianceAuthority.cva("rounded-lg",{variants:{variant:{default:"bg-card text-card-foreground border border-border",outline:"bg-transparent border-2 border-border",elevated:"bg-card text-card-foreground shadow-lg border border-border"},shadow:{none:"shadow-none",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg"},padding:{none:"",sm:"p-3",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"default",padding:"none"}}),L=y__default.default.forwardRef(({className:s,variant:a="default",shadow:o,padding:l="none",hoverable:c,...d},u)=>jsxRuntime.jsx("div",{ref:u,className:n(Q({variant:a,shadow:o,padding:l}),c&&"transition-shadow hover:shadow-lg cursor-pointer",s),...d}));L.displayName="Card";var R=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("div",{ref:o,className:n("flex flex-col space-y-1 p-3",s),...a}));R.displayName="CardHeader";var k=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("h3",{ref:o,className:n("text-base md:text-lg font-semibold leading-tight tracking-tight",s),...a}));k.displayName="CardTitle";var P=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("p",{ref:o,className:n("text-sm text-muted-foreground",s),...a}));P.displayName="CardDescription";var D=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("div",{ref:o,className:n("px-3 pb-3",s),...a}));D.displayName="CardContent";var U=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("div",{ref:o,className:n("flex items-center px-3 pb-3",s),...a}));U.displayName="CardFooter";var X=classVarianceAuthority.cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors duration-200 ease-in-out focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",{variants:{variant:{default:"bg-[var(--badge-default-bg)] text-[var(--badge-default-text)] hover:opacity-80",secondary:"bg-[var(--badge-secondary-bg)] text-[var(--badge-secondary-text)] hover:opacity-80",destructive:"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80",error:"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80",outline:"bg-transparent text-[var(--badge-outline-text)] border border-[var(--badge-outline-border)] hover:bg-[var(--badge-outline-hover-bg)]",glass:"bg-[var(--badge-glass-bg)] backdrop-blur-sm border border-[var(--badge-glass-border)] text-[var(--badge-glass-text)] hover:opacity-80"}},defaultVariants:{variant:"default"}}),E=y__default.default.memo(y__default.default.forwardRef(({className:s,variant:a="default",...o},l)=>jsxRuntime.jsx("div",{ref:l,className:n(X({variant:a}),s),...o})));E.displayName="Badge";var S=y__default.default.forwardRef(({className:s,primaryEmotion:a,emotionDistribution:o=[],keywords:l=[],intensity:c=50,positivity:d=70,energy:u=60,showMeter:v=true,showDistribution:N=true,showKeywords:p=true,showMetrics:C=true,layout:T="detailed",...b},w)=>{let M=i=>i<30?"\uC57D\uD568":i<70?"\uBCF4\uD1B5":"\uAC15\uD568",r=i=>i<30?"\uBD80\uC815\uC801":i<70?"\uC911\uB9BD\uC801":"\uAE0D\uC815\uC801",f=i=>i<30?"\uB0AE\uC74C":i<70?"\uBCF4\uD1B5":"\uB192\uC74C";return T==="compact"?jsxRuntime.jsxs("div",{ref:w,className:n("space-y-3",s),...b,children:[a&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uC8FC\uC694 \uAC10\uC815:"}),jsxRuntime.jsxs("div",{className:"flex items-center space-x-2",children:[jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[a.name," (",a.intensity,"%)"]}),v&&jsxRuntime.jsx(g,{value:a.intensity,size:"sm",color:"blue"})]})]}),C&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:M(c)})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAE0D\uC815\uC131:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:r(d)})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uC5D0\uB108\uC9C0:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:f(u)})]})]}),p&&l.length>0&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uD0A4\uC6CC\uB4DC:"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:l.map(i=>jsxRuntime.jsx(E,{variant:"secondary",className:"text-xs",children:i},i))})]})]}):T==="card"?jsxRuntime.jsxs(L,{ref:w,className:n("",s),...b,children:[jsxRuntime.jsxs(R,{children:[jsxRuntime.jsxs(k,{className:"flex items-center",children:[jsxRuntime.jsx("span",{className:"text-2xl mr-2",children:"\u2728"}),"AI \uBD84\uC11D"]}),jsxRuntime.jsx(P,{children:"\uAC10\uC815 \uBD84\uC11D \uACB0\uACFC"})]}),jsxRuntime.jsxs(D,{className:"space-y-4",children:[a&&jsxRuntime.jsxs("div",{className:"space-y-3",children:[jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uC8FC\uC694 \uAC10\uC815:"}),jsxRuntime.jsxs("span",{className:"ml-2 text-muted-foreground",children:[a.name," (",a.intensity,"%)"]})]}),v&&jsxRuntime.jsx("div",{className:"flex justify-center",children:jsxRuntime.jsx(g,{value:a.intensity,size:"md",color:"blue"})})]}),C&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uAC10\uC815 \uAC15\uB3C4:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:M(c)})]}),jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uAE0D\uC815\uC131:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:r(d)})]}),jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uC5D0\uB108\uC9C0:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:f(u)})]})]}),p&&l.length>0&&jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uD0A4\uC6CC\uB4DC:"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:l.map(i=>jsxRuntime.jsx(E,{variant:"secondary",className:"text-xs",children:i},i))})]})]})]}):jsxRuntime.jsxs("div",{ref:w,className:n("space-y-6",s),...b,children:[a&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uC8FC\uC694 \uAC10\uC815"}),jsxRuntime.jsxs("div",{className:"flex items-center space-x-4",children:[jsxRuntime.jsxs("div",{className:"text-center",children:[jsxRuntime.jsx("div",{className:"text-2xl font-bold text-primary",children:a.name}),jsxRuntime.jsxs("div",{className:"text-sm text-muted-foreground",children:[a.intensity,"% \uAC15\uB3C4"]})]}),v&&jsxRuntime.jsx(g,{value:a.intensity,size:"lg",color:"blue"})]})]}),N&&o.length>0&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uAC10\uC815 \uBD84\uD3EC"}),jsxRuntime.jsx("div",{className:"space-y-3",children:o.map((i,V)=>jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:i.emotion}),jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[i.percentage,"%"]})]}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:`${i.color} h-2 rounded-full transition-all duration-300`,style:{width:`${i.percentage}%`}})})]},V))})]}),C&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uBD84\uC11D \uC9C0\uD45C"}),jsxRuntime.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-primary",children:M(c)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-primary h-2 rounded-full transition-all duration-300",style:{width:`${c}%`}})})]}),jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uAE0D\uC815\uC131"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-green-600",children:r(d)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-green-500 h-2 rounded-full transition-all duration-300",style:{width:`${d}%`}})})]}),jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uC5D0\uB108\uC9C0"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-orange-600",children:f(u)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-orange-500 h-2 rounded-full transition-all duration-300",style:{width:`${u}%`}})})]})]})]}),p&&l.length>0&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uAC10\uC815 \uD0A4\uC6CC\uB4DC"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-2",children:l.map(i=>jsxRuntime.jsx(E,{variant:"outline",className:"text-sm",children:i},i))})]})]})});S.displayName="EmotionAnalysis";exports.EmotionAnalysis=S;exports.EmotionButton=H;exports.EmotionMeter=g;exports.EmotionSelector=B;//# sourceMappingURL=advanced-emotion.js.map
|
|
1
|
+
'use strict';var y=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),classVarianceAuthority=require('class-variance-authority');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var y__default=/*#__PURE__*/_interopDefault(y);function n(...s){return tailwindMerge.twMerge(clsx.clsx(s))}var g=y__default.default.forwardRef(({className:s,value:a,max:o=100,size:l="md",color:c="blue",...d},u)=>{let v={sm:"h-2",md:"h-3",lg:"h-4"},N={blue:"bg-indigo-500",green:"bg-green-500",yellow:"bg-yellow-500",red:"bg-red-500",purple:"bg-purple-500",orange:"bg-orange-500",indigo:"bg-indigo-500",pink:"bg-pink-500",gray:"bg-gray-500"},p=Math.min(Math.max(a/o*100,0),100);return jsxRuntime.jsx("div",{ref:u,className:n("w-full bg-muted rounded-full",v[l],s),...d,children:jsxRuntime.jsx("div",{className:n("h-full rounded-full transition-all duration-300",N[c]||N.blue),style:{width:`${p}%`}})})});g.displayName="EmotionMeter";var H=y__default.default.forwardRef(({className:s,emotion:a,isSelected:o=false,size:l="md",...c},d)=>jsxRuntime.jsx("button",{ref:d,className:n("rounded-full border-2 transition-all duration-200 hover:scale-105 focus:outline-none focus:ring-1 focus:ring-ring",{sm:"w-8 h-8 text-sm",md:"w-12 h-12 text-lg",lg:"w-16 h-16 text-xl"}[l],o?"border-indigo-500 bg-indigo-50 dark:bg-indigo-900/20":"border-border bg-background",s),...c,children:a}));H.displayName="EmotionButton";var G=[{key:"joy",label:"\uAE30\uC068",icon:"smile",color:"yellow"},{key:"sadness",label:"\uC2AC\uD514",icon:"frown",color:"blue"},{key:"anger",label:"\uD654\uB0A8",icon:"angry",color:"red"},{key:"calm",label:"\uD3C9\uC628",icon:"heart",color:"green"},{key:"excitement",label:"\uC124\uB818",icon:"star",color:"pink"},{key:"worry",label:"\uAC71\uC815",icon:"meh",color:"gray"},{key:"gratitude",label:"\uAC10\uC0AC",icon:"heart",color:"purple"},{key:"loneliness",label:"\uC678\uB85C\uC6C0",icon:"user",color:"indigo"}],B=y__default.default.forwardRef(({className:s,selectedEmotion:a,onEmotionSelect:o,layout:l="grid",showIntensity:c=false,intensity:d=50,onIntensityChange:u,emotions:v=G,size:N="md",variant:p="button",...w},T)=>{let b=r=>{o==null||o(r);},C=r=>{let f=a===r.key;return p==="button"?jsxRuntime.jsx(H,{emotion:r.key,isSelected:f,size:N,onClick:()=>b(r.key),className:n("transition-all duration-200",f&&"ring-1 ring-offset-2 ring-primary"),children:r.label},r.key):p==="card"?jsxRuntime.jsx("div",{className:n("p-4 rounded-lg border-2 cursor-pointer transition-all duration-200 hover:shadow-md",f?"border-primary bg-primary/5":"border-border hover:border-primary/50"),onClick:()=>b(r.key),children:jsxRuntime.jsxs("div",{className:"flex items-center space-x-3",children:[jsxRuntime.jsx("div",{className:n("w-8 h-8 rounded-full flex items-center justify-center",f?"bg-primary text-primary-foreground":"bg-muted"),children:r.icon&&jsxRuntime.jsxs("span",{className:"text-lg",children:[r.icon==="smile"&&"\u{1F60A}",r.icon==="frown"&&"\u{1F622}",r.icon==="angry"&&"\u{1F620}",r.icon==="heart"&&"\u2764\uFE0F",r.icon==="star"&&"\u2B50",r.icon==="meh"&&"\u{1F610}",r.icon==="user"&&"\u{1F464}"]})}),jsxRuntime.jsx("span",{className:"font-medium truncate max-w-[120px]",children:r.label})]})},r.key):p==="chip"?jsxRuntime.jsx("div",{className:n("px-3 py-1 rounded-full cursor-pointer transition-all duration-200 text-sm font-medium",f?"bg-primary text-primary-foreground":"bg-muted hover:bg-muted/80"),onClick:()=>b(r.key),children:jsxRuntime.jsx("span",{className:"truncate max-w-[100px]",children:r.label})},r.key):null},M={grid:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-2 md:gap-3",list:"space-y-2",compact:"flex flex-wrap gap-1"};return jsxRuntime.jsxs("div",{ref:T,className:n("space-y-4",s),...w,children:[jsxRuntime.jsx("div",{className:M[l],children:v.map(C)}),c&&a&&jsxRuntime.jsxs("div",{className:"space-y-3",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4"}),jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[d,"%"]})]}),jsxRuntime.jsx("input",{type:"range",min:"0",max:"100",value:d,onChange:r=>u==null?void 0:u(Number(r.target.value)),className:"w-full h-2 bg-muted rounded-lg appearance-none cursor-pointer slider"}),jsxRuntime.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[jsxRuntime.jsx("span",{children:"\uC57D\uD568"}),jsxRuntime.jsx("span",{children:"\uBCF4\uD1B5"}),jsxRuntime.jsx("span",{children:"\uAC15\uD568"})]})]}),a&&c&&jsxRuntime.jsx("div",{className:"flex justify-center",children:jsxRuntime.jsx(g,{value:d,size:"md",color:"blue"})})]})});B.displayName="EmotionSelector";var Q=classVarianceAuthority.cva("rounded-lg",{variants:{variant:{default:"bg-card text-card-foreground border border-border",outline:"bg-transparent border-2 border-border",elevated:"bg-card text-card-foreground shadow-lg border border-border"},shadow:{none:"shadow-none",sm:"shadow-sm",md:"shadow-md",lg:"shadow-lg"},padding:{none:"",sm:"p-3",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"default",padding:"none"}}),L=y__default.default.forwardRef(({className:s,variant:a="default",shadow:o,padding:l="none",hoverable:c,...d},u)=>jsxRuntime.jsx("div",{ref:u,className:n(Q({variant:a,shadow:o,padding:l}),"transition-[transform,box-shadow,border-color] duration-200 ease-out",c&&"hover:-translate-y-0.5 hover:shadow-lg hover:border-primary/30 cursor-pointer active:translate-y-0 active:shadow-md",s),...d}));L.displayName="Card";var R=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("div",{ref:o,className:n("flex flex-col space-y-1 p-3",s),...a}));R.displayName="CardHeader";var k=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("h3",{ref:o,className:n("text-base md:text-lg font-semibold leading-tight tracking-tight",s),...a}));k.displayName="CardTitle";var P=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("p",{ref:o,className:n("text-sm text-muted-foreground",s),...a}));P.displayName="CardDescription";var D=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("div",{ref:o,className:n("px-3 pb-3",s),...a}));D.displayName="CardContent";var U=y__default.default.forwardRef(({className:s,...a},o)=>jsxRuntime.jsx("div",{ref:o,className:n("flex items-center px-3 pb-3",s),...a}));U.displayName="CardFooter";var X=classVarianceAuthority.cva("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors duration-200 ease-in-out focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2",{variants:{variant:{default:"bg-[var(--badge-default-bg)] text-[var(--badge-default-text)] hover:opacity-80",secondary:"bg-[var(--badge-secondary-bg)] text-[var(--badge-secondary-text)] hover:opacity-80",destructive:"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80",error:"bg-[var(--badge-destructive-bg)] text-slate-50 hover:opacity-80",outline:"bg-transparent text-[var(--badge-outline-text)] border border-[var(--badge-outline-border)] hover:bg-[var(--badge-outline-hover-bg)]",glass:"bg-[var(--badge-glass-bg)] backdrop-blur-sm border border-[var(--badge-glass-border)] text-[var(--badge-glass-text)] hover:opacity-80"}},defaultVariants:{variant:"default"}}),E=y__default.default.memo(y__default.default.forwardRef(({className:s,variant:a="default",...o},l)=>jsxRuntime.jsx("div",{ref:l,className:n(X({variant:a}),s),...o})));E.displayName="Badge";var S=y__default.default.forwardRef(({className:s,primaryEmotion:a,emotionDistribution:o=[],keywords:l=[],intensity:c=50,positivity:d=70,energy:u=60,showMeter:v=true,showDistribution:N=true,showKeywords:p=true,showMetrics:w=true,layout:T="detailed",...b},C)=>{let M=i=>i<30?"\uC57D\uD568":i<70?"\uBCF4\uD1B5":"\uAC15\uD568",r=i=>i<30?"\uBD80\uC815\uC801":i<70?"\uC911\uB9BD\uC801":"\uAE0D\uC815\uC801",f=i=>i<30?"\uB0AE\uC74C":i<70?"\uBCF4\uD1B5":"\uB192\uC74C";return T==="compact"?jsxRuntime.jsxs("div",{ref:C,className:n("space-y-3",s),...b,children:[a&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uC8FC\uC694 \uAC10\uC815:"}),jsxRuntime.jsxs("div",{className:"flex items-center space-x-2",children:[jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[a.name," (",a.intensity,"%)"]}),v&&jsxRuntime.jsx(g,{value:a.intensity,size:"sm",color:"blue"})]})]}),w&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:M(c)})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uAE0D\uC815\uC131:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:r(d)})]}),jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uC5D0\uB108\uC9C0:"}),jsxRuntime.jsx("span",{className:"text-sm text-muted-foreground",children:f(u)})]})]}),p&&l.length>0&&jsxRuntime.jsxs("div",{children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:"\uD0A4\uC6CC\uB4DC:"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:l.map(i=>jsxRuntime.jsx(E,{variant:"secondary",className:"text-xs",children:i},i))})]})]}):T==="card"?jsxRuntime.jsxs(L,{ref:C,className:n("",s),...b,children:[jsxRuntime.jsxs(R,{children:[jsxRuntime.jsxs(k,{className:"flex items-center",children:[jsxRuntime.jsx("span",{className:"text-2xl mr-2",children:"\u2728"}),"AI \uBD84\uC11D"]}),jsxRuntime.jsx(P,{children:"\uAC10\uC815 \uBD84\uC11D \uACB0\uACFC"})]}),jsxRuntime.jsxs(D,{className:"space-y-4",children:[a&&jsxRuntime.jsxs("div",{className:"space-y-3",children:[jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uC8FC\uC694 \uAC10\uC815:"}),jsxRuntime.jsxs("span",{className:"ml-2 text-muted-foreground",children:[a.name," (",a.intensity,"%)"]})]}),v&&jsxRuntime.jsx("div",{className:"flex justify-center",children:jsxRuntime.jsx(g,{value:a.intensity,size:"md",color:"blue"})})]}),w&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uAC10\uC815 \uAC15\uB3C4:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:M(c)})]}),jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uAE0D\uC815\uC131:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:r(d)})]}),jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uC5D0\uB108\uC9C0:"}),jsxRuntime.jsx("span",{className:"ml-2 text-muted-foreground",children:f(u)})]})]}),p&&l.length>0&&jsxRuntime.jsxs("div",{className:"text-sm",children:[jsxRuntime.jsx("span",{className:"font-medium",children:"\uD0A4\uC6CC\uB4DC:"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-1 mt-1",children:l.map(i=>jsxRuntime.jsx(E,{variant:"secondary",className:"text-xs",children:i},i))})]})]})]}):jsxRuntime.jsxs("div",{ref:C,className:n("space-y-6",s),...b,children:[a&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uC8FC\uC694 \uAC10\uC815"}),jsxRuntime.jsxs("div",{className:"flex items-center space-x-4",children:[jsxRuntime.jsxs("div",{className:"text-center",children:[jsxRuntime.jsx("div",{className:"text-2xl font-bold text-primary",children:a.name}),jsxRuntime.jsxs("div",{className:"text-sm text-muted-foreground",children:[a.intensity,"% \uAC15\uB3C4"]})]}),v&&jsxRuntime.jsx(g,{value:a.intensity,size:"lg",color:"blue"})]})]}),N&&o.length>0&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uAC10\uC815 \uBD84\uD3EC"}),jsxRuntime.jsx("div",{className:"space-y-3",children:o.map((i,V)=>jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("span",{className:"text-sm font-medium",children:i.emotion}),jsxRuntime.jsxs("span",{className:"text-sm text-muted-foreground",children:[i.percentage,"%"]})]}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:`${i.color} h-2 rounded-full transition-all duration-300`,style:{width:`${i.percentage}%`}})})]},V))})]}),w&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uBD84\uC11D \uC9C0\uD45C"}),jsxRuntime.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uAC10\uC815 \uAC15\uB3C4"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-primary",children:M(c)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-primary h-2 rounded-full transition-all duration-300",style:{width:`${c}%`}})})]}),jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uAE0D\uC815\uC131"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-green-600",children:r(d)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-green-500 h-2 rounded-full transition-all duration-300",style:{width:`${d}%`}})})]}),jsxRuntime.jsxs("div",{className:"space-y-2",children:[jsxRuntime.jsx("div",{className:"text-sm font-medium",children:"\uC5D0\uB108\uC9C0"}),jsxRuntime.jsx("div",{className:"text-2xl font-bold text-orange-600",children:f(u)}),jsxRuntime.jsx("div",{className:"w-full bg-muted rounded-full h-2",children:jsxRuntime.jsx("div",{className:"bg-orange-500 h-2 rounded-full transition-all duration-300",style:{width:`${u}%`}})})]})]})]}),p&&l.length>0&&jsxRuntime.jsxs("div",{className:"space-y-4",children:[jsxRuntime.jsx("h3",{className:"text-lg font-semibold",children:"\uAC10\uC815 \uD0A4\uC6CC\uB4DC"}),jsxRuntime.jsx("div",{className:"flex flex-wrap gap-2",children:l.map(i=>jsxRuntime.jsx(E,{variant:"outline",className:"text-sm",children:i},i))})]})]})});S.displayName="EmotionAnalysis";exports.EmotionAnalysis=S;exports.EmotionButton=H;exports.EmotionMeter=g;exports.EmotionSelector=B;//# sourceMappingURL=advanced-emotion.js.map
|
|
2
2
|
//# sourceMappingURL=advanced-emotion.js.map
|