@yyc3/music-ui 0.0.0-stage → 2.0.1
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/LICENSE +27 -0
- package/README.md +77 -2
- package/dist/dmusic/DMusicShowcase.d.ts +17 -0
- package/dist/dmusic/DMusicShowcase.d.ts.map +1 -0
- package/dist/dmusic/DMusicUI.d.ts +214 -0
- package/dist/dmusic/DMusicUI.d.ts.map +1 -0
- package/dist/dmusic/DPanel.d.ts +49 -0
- package/dist/dmusic/DPanel.d.ts.map +1 -0
- package/dist/dmusic/DataViz.d.ts +127 -0
- package/dist/dmusic/DataViz.d.ts.map +1 -0
- package/dist/dmusic/index.d.ts +12 -0
- package/dist/dmusic/index.d.ts.map +1 -0
- package/dist/figma/ImageWithFallback.d.ts +3 -0
- package/dist/figma/ImageWithFallback.d.ts.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5962 -0
- package/dist/index.js.map +1 -0
- package/dist/ui/accordion.d.ts +8 -0
- package/dist/ui/accordion.d.ts.map +1 -0
- package/dist/ui/alert-dialog.d.ts +15 -0
- package/dist/ui/alert-dialog.d.ts.map +1 -0
- package/dist/ui/alert.d.ts +10 -0
- package/dist/ui/alert.d.ts.map +1 -0
- package/dist/ui/aspect-ratio.d.ts +4 -0
- package/dist/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/ui/avatar.d.ts +7 -0
- package/dist/ui/avatar.d.ts.map +1 -0
- package/dist/ui/badge.d.ts +10 -0
- package/dist/ui/badge.d.ts.map +1 -0
- package/dist/ui/breadcrumb.d.ts +12 -0
- package/dist/ui/breadcrumb.d.ts.map +1 -0
- package/dist/ui/button.d.ts +11 -0
- package/dist/ui/button.d.ts.map +1 -0
- package/dist/ui/calendar.d.ts +5 -0
- package/dist/ui/calendar.d.ts.map +1 -0
- package/dist/ui/card.d.ts +10 -0
- package/dist/ui/card.d.ts.map +1 -0
- package/dist/ui/carousel.d.ts +20 -0
- package/dist/ui/carousel.d.ts.map +1 -0
- package/dist/ui/chart.d.ts +49 -0
- package/dist/ui/chart.d.ts.map +1 -0
- package/dist/ui/checkbox.d.ts +5 -0
- package/dist/ui/checkbox.d.ts.map +1 -0
- package/dist/ui/collapsible.d.ts +6 -0
- package/dist/ui/collapsible.d.ts.map +1 -0
- package/dist/ui/command.d.ts +17 -0
- package/dist/ui/command.d.ts.map +1 -0
- package/dist/ui/context-menu.d.ts +26 -0
- package/dist/ui/context-menu.d.ts.map +1 -0
- package/dist/ui/dialog.d.ts +14 -0
- package/dist/ui/dialog.d.ts.map +1 -0
- package/dist/ui/drawer.d.ts +14 -0
- package/dist/ui/drawer.d.ts.map +1 -0
- package/dist/ui/dropdown-menu.d.ts +26 -0
- package/dist/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/ui/form.d.ts +25 -0
- package/dist/ui/form.d.ts.map +1 -0
- package/dist/ui/hover-card.d.ts +7 -0
- package/dist/ui/hover-card.d.ts.map +1 -0
- package/dist/ui/input-otp.d.ts +12 -0
- package/dist/ui/input-otp.d.ts.map +1 -0
- package/dist/ui/input.d.ts +4 -0
- package/dist/ui/input.d.ts.map +1 -0
- package/dist/ui/label.d.ts +5 -0
- package/dist/ui/label.d.ts.map +1 -0
- package/dist/ui/menubar.d.ts +27 -0
- package/dist/ui/menubar.d.ts.map +1 -0
- package/dist/ui/navigation-menu.d.ts +15 -0
- package/dist/ui/navigation-menu.d.ts.map +1 -0
- package/dist/ui/pagination.d.ts +14 -0
- package/dist/ui/pagination.d.ts.map +1 -0
- package/dist/ui/popover.d.ts +8 -0
- package/dist/ui/popover.d.ts.map +1 -0
- package/dist/ui/progress.d.ts +5 -0
- package/dist/ui/progress.d.ts.map +1 -0
- package/dist/ui/radio-group.d.ts +6 -0
- package/dist/ui/radio-group.d.ts.map +1 -0
- package/dist/ui/resizable.d.ts +9 -0
- package/dist/ui/resizable.d.ts.map +1 -0
- package/dist/ui/scroll-area.d.ts +6 -0
- package/dist/ui/scroll-area.d.ts.map +1 -0
- package/dist/ui/select.d.ts +16 -0
- package/dist/ui/select.d.ts.map +1 -0
- package/dist/ui/separator.d.ts +5 -0
- package/dist/ui/separator.d.ts.map +1 -0
- package/dist/ui/sheet.d.ts +14 -0
- package/dist/ui/sheet.d.ts.map +1 -0
- package/dist/ui/sidebar.d.ts +70 -0
- package/dist/ui/sidebar.d.ts.map +1 -0
- package/dist/ui/skeleton.d.ts +3 -0
- package/dist/ui/skeleton.d.ts.map +1 -0
- package/dist/ui/slider.d.ts +5 -0
- package/dist/ui/slider.d.ts.map +1 -0
- package/dist/ui/sonner.d.ts +4 -0
- package/dist/ui/sonner.d.ts.map +1 -0
- package/dist/ui/switch.d.ts +5 -0
- package/dist/ui/switch.d.ts.map +1 -0
- package/dist/ui/table.d.ts +11 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/tabs.d.ts +8 -0
- package/dist/ui/tabs.d.ts.map +1 -0
- package/dist/ui/textarea.d.ts +4 -0
- package/dist/ui/textarea.d.ts.map +1 -0
- package/dist/ui/toggle-group.d.ts +8 -0
- package/dist/ui/toggle-group.d.ts.map +1 -0
- package/dist/ui/toggle.d.ts +10 -0
- package/dist/ui/toggle.d.ts.map +1 -0
- package/dist/ui/tooltip.d.ts +8 -0
- package/dist/ui/tooltip.d.ts.map +1 -0
- package/dist/ui/use-mobile.d.ts +2 -0
- package/dist/ui/use-mobile.d.ts.map +1 -0
- package/dist/ui/utils.d.ts +3 -0
- package/dist/ui/utils.d.ts.map +1 -0
- package/package.json +89 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 YanYuCloudCube™ (YYC³)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
YYC³(YanYuCloudCube™)· 言启象限 | 语枢未来
|
|
26
|
+
Words Initiate Quadrants, Language Serves as Core for Future
|
|
27
|
+
万象归元于云枢 | 深栈智启新纪元
|
package/README.md
CHANGED
|
@@ -1,3 +1,78 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @yyc3/music-ui
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> shadcn/ui + Radix UI 基件与 D-Music 设计层(DButton / DCard / 数据可视化等),六主题可切换。
|
|
4
|
+
|
|
5
|
+
| 属性 | 值 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| 版本 | 2.0.0 |
|
|
8
|
+
| 定位 | UI 基础组件库 |
|
|
9
|
+
| 许可证 | MIT |
|
|
10
|
+
| 仓库 | https://github.com/YYC-Cube/YYC3-MusAI |
|
|
11
|
+
|
|
12
|
+
## 安装
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pnpm add @yyc3/music-ui react react-dom
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## 快速开始
|
|
19
|
+
|
|
20
|
+
```tsx
|
|
21
|
+
import { DButton, DCard, DBadge, StarPowerChart } from '@yyc3/music-ui'
|
|
22
|
+
|
|
23
|
+
export function Demo() {
|
|
24
|
+
return (
|
|
25
|
+
<DCard variant="glass" padding="md">
|
|
26
|
+
<DBadge variant="accent" size="sm">Pro</DBadge>
|
|
27
|
+
<DButton variant="primary" onClick={() => console.log('play')}>开始播放</DButton>
|
|
28
|
+
<StarPowerChart data={[{ name: 'Mon', value: 12 }, { name: 'Tue', value: 18 }]} />
|
|
29
|
+
</DCard>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 导出清单
|
|
35
|
+
|
|
36
|
+
- 48 个 shadcn/Radix 基件:accordion、alert、dialog、dropdown-menu、form、select、sheet、sidebar、table、tabs、tooltip 等
|
|
37
|
+
- D-Music 设计层:DButton、DInput、DCard、DMusicCard、DUserCard、DAchievementCard、DProgress、AchievementRing、DFeedback、DSpinner、DBadge、DTag、DEmptyState、DList、DModal、DTabBar、DToast、DBreadcrumb、DPanel、DMusicShowcase
|
|
38
|
+
- 数据可视化:StarPowerChart、EmotionPieChart、PlayStatsChart、AchievementGrid、SparklineChart、StatCard、RankingList、DataExportButton
|
|
39
|
+
- 工具:ImageWithFallback、ChartConfig(类型)
|
|
40
|
+
|
|
41
|
+
## 关键 API
|
|
42
|
+
|
|
43
|
+
| 名称 | 说明 |
|
|
44
|
+
| --- | --- |
|
|
45
|
+
| `DButton` | variant: 'primary' | 'secondary' | 'ghost' | 'danger';透传原生 button 属性 |
|
|
46
|
+
| `DCard` | variant: 'default' | 'glass';interactive、padding |
|
|
47
|
+
| `DBadge` | variant: 'accent' | 'emotion' 等;size: 'xs' | 'sm' | 'md' |
|
|
48
|
+
| `StarPowerChart` | data: Array<{ name: string; value: number }>,基于 Recharts |
|
|
49
|
+
| `ChartConfig` | 图表颜色与标签配置类型 |
|
|
50
|
+
|
|
51
|
+
## 说明
|
|
52
|
+
|
|
53
|
+
组件使用 Tailwind CSS 原子类,宿主应用需启用 Tailwind(推荐 v4)。主题令牌来自 `@yyc3/music-design-tokens`,暗色模式通过 `next-themes` 的 class 策略切换。
|
|
54
|
+
|
|
55
|
+
## 兼容性
|
|
56
|
+
|
|
57
|
+
- React 19+(组件包 peer 依赖)
|
|
58
|
+
- TypeScript 5.6+ / Node.js 20.19+
|
|
59
|
+
- 现代浏览器(Chrome/Edge/Safari/Firefox 最近两个大版本)
|
|
60
|
+
|
|
61
|
+
## 开发与验证
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pnpm --filter @yyc3/music-ui build
|
|
65
|
+
pnpm --filter @yyc3/music-ui typecheck
|
|
66
|
+
pnpm --filter @yyc3/music-ui lint
|
|
67
|
+
pnpm test:coverage
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 许可证
|
|
71
|
+
|
|
72
|
+
MIT © 2026 YanYuCloudCube™(YYC³)
|
|
73
|
+
|
|
74
|
+
<p align="center">
|
|
75
|
+
<b>YYC³</b>(YanYuCloudCube™ · 注册商标)<br>
|
|
76
|
+
言启象限 | 语枢未来 — Words Initiate Quadrants, Language Serves as Core for Future<br>
|
|
77
|
+
<sub>© 2026 YanYuCloudCube™(YYC³)· <a href="mailto:admin@0379.email">admin@0379.email</a></sub>
|
|
78
|
+
</p>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D-Music §1.x — Component Showcase / Test Page
|
|
3
|
+
*
|
|
4
|
+
* Renders all D-Music design system components for visual verification.
|
|
5
|
+
* Categories tested:
|
|
6
|
+
* §1.1 — Buttons, Inputs, Cards, Progress, Feedback, Badges, Tags, Lists
|
|
7
|
+
* §1.2 — Panel (DPanel)
|
|
8
|
+
* §1.3 — Charts (StarPower, Emotion, PlayStats, Achievement, Sparkline, StatCard)
|
|
9
|
+
* §1.4 — Theme integration (all components use CSS custom properties)
|
|
10
|
+
*/
|
|
11
|
+
import React from 'react';
|
|
12
|
+
interface ShowcaseProps {
|
|
13
|
+
lang?: 'zh' | 'en';
|
|
14
|
+
}
|
|
15
|
+
export declare const DMusicShowcase: React.FC<ShowcaseProps>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=DMusicShowcase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DMusicShowcase.d.ts","sourceRoot":"","sources":["../../src/dmusic/DMusicShowcase.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAC;AAqDxC,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqXlD,CAAC"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D-Music §1.1 — Component Library
|
|
3
|
+
*
|
|
4
|
+
* Material Design 3.0 inspired, adapted for D-Music's deep-space aesthetic.
|
|
5
|
+
* All components:
|
|
6
|
+
* - Use CSS custom properties from §1.4 Theme System
|
|
7
|
+
* - WCAG 2.1 AA compliant (aria-*, focus-visible, contrast ratios)
|
|
8
|
+
* - Support keyboard navigation
|
|
9
|
+
* - 60fps animations (GPU-accelerated transform/opacity)
|
|
10
|
+
* - Responsive (mobile/tablet/desktop)
|
|
11
|
+
*
|
|
12
|
+
* Component Categories:
|
|
13
|
+
* 1. DButton — Primary/Secondary/Ghost/Danger variants
|
|
14
|
+
* 2. DInput — Text/Password/Search inputs
|
|
15
|
+
* 3. DCard — Music/User/Achievement cards
|
|
16
|
+
* 4. DProgress — Linear and ring progress indicators
|
|
17
|
+
* 5. DFeedback — Loading/Success/Error/Warning states
|
|
18
|
+
* 6. DBadge — Status/count badges
|
|
19
|
+
* 7. DTooltip — Accessible tooltip wrapper
|
|
20
|
+
* 8. DTag — Genre/mood/status tags
|
|
21
|
+
*/
|
|
22
|
+
import React from 'react';
|
|
23
|
+
type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'accent';
|
|
24
|
+
type ButtonSize = 'sm' | 'md' | 'lg';
|
|
25
|
+
interface DButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
26
|
+
variant?: ButtonVariant;
|
|
27
|
+
size?: ButtonSize;
|
|
28
|
+
loading?: boolean;
|
|
29
|
+
icon?: React.ReactNode;
|
|
30
|
+
iconRight?: React.ReactNode;
|
|
31
|
+
fullWidth?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare const DButton: React.FC<DButtonProps>;
|
|
34
|
+
type InputVariant = 'default' | 'search' | 'password';
|
|
35
|
+
interface DInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
|
|
36
|
+
variant?: InputVariant;
|
|
37
|
+
label?: string;
|
|
38
|
+
error?: string;
|
|
39
|
+
hint?: string;
|
|
40
|
+
inputSize?: ButtonSize;
|
|
41
|
+
leftIcon?: React.ReactNode;
|
|
42
|
+
}
|
|
43
|
+
export declare const DInput: React.FC<DInputProps>;
|
|
44
|
+
type CardVariant = 'default' | 'music' | 'user' | 'achievement' | 'glass';
|
|
45
|
+
interface DCardProps {
|
|
46
|
+
variant?: CardVariant;
|
|
47
|
+
className?: string;
|
|
48
|
+
children: React.ReactNode;
|
|
49
|
+
onClick?: () => void;
|
|
50
|
+
interactive?: boolean;
|
|
51
|
+
glowColor?: string;
|
|
52
|
+
padding?: 'sm' | 'md' | 'lg' | 'none';
|
|
53
|
+
}
|
|
54
|
+
export declare const DCard: React.FC<DCardProps>;
|
|
55
|
+
/** Music card — specialized for track/album display */
|
|
56
|
+
interface DMusicCardProps {
|
|
57
|
+
title: string;
|
|
58
|
+
artist: string;
|
|
59
|
+
coverUrl?: string;
|
|
60
|
+
duration?: string;
|
|
61
|
+
emotion?: string;
|
|
62
|
+
isPlaying?: boolean;
|
|
63
|
+
onClick?: () => void;
|
|
64
|
+
className?: string;
|
|
65
|
+
}
|
|
66
|
+
export declare const DMusicCard: React.FC<DMusicCardProps>;
|
|
67
|
+
/** User card — for creator/profile display */
|
|
68
|
+
interface DUserCardProps {
|
|
69
|
+
name: string;
|
|
70
|
+
avatar?: string;
|
|
71
|
+
subtitle?: string;
|
|
72
|
+
badge?: string;
|
|
73
|
+
onClick?: () => void;
|
|
74
|
+
className?: string;
|
|
75
|
+
}
|
|
76
|
+
export declare const DUserCard: React.FC<DUserCardProps>;
|
|
77
|
+
/** Achievement card — with progress ring */
|
|
78
|
+
interface DAchievementCardProps {
|
|
79
|
+
title: string;
|
|
80
|
+
description?: string;
|
|
81
|
+
icon: string;
|
|
82
|
+
progress: number;
|
|
83
|
+
unlocked?: boolean;
|
|
84
|
+
rarity?: 'common' | 'rare' | 'epic' | 'legendary';
|
|
85
|
+
className?: string;
|
|
86
|
+
}
|
|
87
|
+
export declare const DAchievementCard: React.FC<DAchievementCardProps>;
|
|
88
|
+
interface DProgressProps {
|
|
89
|
+
value: number;
|
|
90
|
+
size?: 'sm' | 'md' | 'lg';
|
|
91
|
+
variant?: 'default' | 'gradient' | 'success' | 'warning' | 'error';
|
|
92
|
+
showLabel?: boolean;
|
|
93
|
+
className?: string;
|
|
94
|
+
'aria-label'?: string;
|
|
95
|
+
}
|
|
96
|
+
export declare const DProgress: React.FC<DProgressProps>;
|
|
97
|
+
/** SVG Achievement Ring — §1.3 */
|
|
98
|
+
interface AchievementRingProps {
|
|
99
|
+
progress: number;
|
|
100
|
+
size?: number;
|
|
101
|
+
strokeWidth?: number;
|
|
102
|
+
color?: string;
|
|
103
|
+
bgColor?: string;
|
|
104
|
+
children?: React.ReactNode;
|
|
105
|
+
className?: string;
|
|
106
|
+
}
|
|
107
|
+
export declare const AchievementRing: React.FC<AchievementRingProps>;
|
|
108
|
+
type FeedbackType = 'loading' | 'success' | 'error' | 'warning' | 'info';
|
|
109
|
+
interface DFeedbackProps {
|
|
110
|
+
type: FeedbackType;
|
|
111
|
+
message: string;
|
|
112
|
+
description?: string;
|
|
113
|
+
className?: string;
|
|
114
|
+
onDismiss?: () => void;
|
|
115
|
+
}
|
|
116
|
+
export declare const DFeedback: React.FC<DFeedbackProps>;
|
|
117
|
+
/** Inline loading spinner */
|
|
118
|
+
interface DSpinnerProps {
|
|
119
|
+
size?: 'sm' | 'md' | 'lg';
|
|
120
|
+
className?: string;
|
|
121
|
+
}
|
|
122
|
+
export declare const DSpinner: React.FC<DSpinnerProps>;
|
|
123
|
+
type BadgeVariant = 'default' | 'accent' | 'success' | 'warning' | 'error' | 'info';
|
|
124
|
+
interface DBadgeProps {
|
|
125
|
+
variant?: BadgeVariant;
|
|
126
|
+
size?: 'sm' | 'md';
|
|
127
|
+
children: React.ReactNode;
|
|
128
|
+
className?: string;
|
|
129
|
+
dot?: boolean;
|
|
130
|
+
}
|
|
131
|
+
export declare const DBadge: React.FC<DBadgeProps>;
|
|
132
|
+
interface DTagProps {
|
|
133
|
+
variant?: 'default' | 'emotion' | 'outline';
|
|
134
|
+
size?: 'xs' | 'sm' | 'md';
|
|
135
|
+
children: React.ReactNode;
|
|
136
|
+
onRemove?: () => void;
|
|
137
|
+
className?: string;
|
|
138
|
+
style?: React.CSSProperties;
|
|
139
|
+
}
|
|
140
|
+
export declare const DTag: React.FC<DTagProps>;
|
|
141
|
+
interface DEmptyStateProps {
|
|
142
|
+
icon?: string;
|
|
143
|
+
title: string;
|
|
144
|
+
description?: string;
|
|
145
|
+
action?: React.ReactNode;
|
|
146
|
+
className?: string;
|
|
147
|
+
}
|
|
148
|
+
export declare const DEmptyState: React.FC<DEmptyStateProps>;
|
|
149
|
+
interface DListProps {
|
|
150
|
+
children: React.ReactNode;
|
|
151
|
+
label?: string;
|
|
152
|
+
className?: string;
|
|
153
|
+
divided?: boolean;
|
|
154
|
+
}
|
|
155
|
+
export declare const DList: React.FC<DListProps>;
|
|
156
|
+
interface DListItemProps {
|
|
157
|
+
children: React.ReactNode;
|
|
158
|
+
onClick?: () => void;
|
|
159
|
+
className?: string;
|
|
160
|
+
active?: boolean;
|
|
161
|
+
}
|
|
162
|
+
export declare const DListItem: React.FC<DListItemProps>;
|
|
163
|
+
interface DModalProps {
|
|
164
|
+
isOpen: boolean;
|
|
165
|
+
onClose: () => void;
|
|
166
|
+
title: string;
|
|
167
|
+
description?: string;
|
|
168
|
+
children: React.ReactNode;
|
|
169
|
+
footer?: React.ReactNode;
|
|
170
|
+
size?: 'sm' | 'md' | 'lg';
|
|
171
|
+
className?: string;
|
|
172
|
+
closeOnBackdrop?: boolean;
|
|
173
|
+
}
|
|
174
|
+
export declare const DModal: React.FC<DModalProps>;
|
|
175
|
+
interface DTabItem {
|
|
176
|
+
id: string;
|
|
177
|
+
label: string;
|
|
178
|
+
icon?: React.ReactNode;
|
|
179
|
+
badge?: number;
|
|
180
|
+
disabled?: boolean;
|
|
181
|
+
}
|
|
182
|
+
interface DTabBarProps {
|
|
183
|
+
tabs: DTabItem[];
|
|
184
|
+
activeTab: string;
|
|
185
|
+
onTabChange: (id: string) => void;
|
|
186
|
+
variant?: 'default' | 'pills' | 'underline';
|
|
187
|
+
size?: 'sm' | 'md';
|
|
188
|
+
className?: string;
|
|
189
|
+
fullWidth?: boolean;
|
|
190
|
+
}
|
|
191
|
+
export declare const DTabBar: React.FC<DTabBarProps>;
|
|
192
|
+
type ToastVariant = 'success' | 'error' | 'warning' | 'info';
|
|
193
|
+
interface DToastProps {
|
|
194
|
+
variant: ToastVariant;
|
|
195
|
+
message: string;
|
|
196
|
+
description?: string;
|
|
197
|
+
duration?: number;
|
|
198
|
+
onDismiss: () => void;
|
|
199
|
+
className?: string;
|
|
200
|
+
}
|
|
201
|
+
export declare const DToast: React.FC<DToastProps>;
|
|
202
|
+
interface DBreadcrumbItem {
|
|
203
|
+
label: string;
|
|
204
|
+
href?: string;
|
|
205
|
+
onClick?: () => void;
|
|
206
|
+
}
|
|
207
|
+
interface DBreadcrumbProps {
|
|
208
|
+
items: DBreadcrumbItem[];
|
|
209
|
+
separator?: React.ReactNode;
|
|
210
|
+
className?: string;
|
|
211
|
+
}
|
|
212
|
+
export declare const DBreadcrumb: React.FC<DBreadcrumbProps>;
|
|
213
|
+
export {};
|
|
214
|
+
//# sourceMappingURL=DMusicUI.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DMusicUI.d.ts","sourceRoot":"","sources":["../../src/dmusic/DMusicUI.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D-Music §1.2 — Unified Panel Component
|
|
3
|
+
*
|
|
4
|
+
* A standardized panel shell for all D-Music side panels/drawers/modals.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Unified visual style (glassmorphism, theme-aware)
|
|
8
|
+
* - Clear information hierarchy (header → body → optional footer)
|
|
9
|
+
* - Smooth spring animation (enter from right)
|
|
10
|
+
* - Mobile: fullscreen panel / bottom drawer
|
|
11
|
+
* - Desktop: side drawer (right) with backdrop
|
|
12
|
+
* - Keyboard: Escape to close, focus trap
|
|
13
|
+
* - WCAG 2.1 AA: role="dialog", aria-modal, aria-label
|
|
14
|
+
*
|
|
15
|
+
* Panel Types Supported:
|
|
16
|
+
* playlist, profile, community, analytics, ai-lyrics, leaderboard,
|
|
17
|
+
* recommendations, creation-studio, mv-creator, space-time, star-power,
|
|
18
|
+
* ip-matrix, achievements, discover-hub, copyright, shop, challenge,
|
|
19
|
+
* fork-tree, mheart, smart-playlist, live-session, comments
|
|
20
|
+
*
|
|
21
|
+
* Usage:
|
|
22
|
+
* <DPanel isOpen={show} onClose={close} title="播放列表" icon={<Music />}>
|
|
23
|
+
* <PlaylistContent />
|
|
24
|
+
* </DPanel>
|
|
25
|
+
*/
|
|
26
|
+
import React from 'react';
|
|
27
|
+
export type PanelSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
28
|
+
interface DPanelProps {
|
|
29
|
+
isOpen: boolean;
|
|
30
|
+
onClose: () => void;
|
|
31
|
+
title: string;
|
|
32
|
+
subtitle?: string;
|
|
33
|
+
icon?: React.ReactNode;
|
|
34
|
+
children: React.ReactNode;
|
|
35
|
+
footer?: React.ReactNode;
|
|
36
|
+
size?: PanelSize;
|
|
37
|
+
/** Section label (e.g., "§19.x") shown in bottom hint */
|
|
38
|
+
sectionLabel?: string;
|
|
39
|
+
className?: string;
|
|
40
|
+
/** If true, panel enters from bottom on mobile */
|
|
41
|
+
mobileBottomSheet?: boolean;
|
|
42
|
+
/** If true, no backdrop blur */
|
|
43
|
+
noBackdrop?: boolean;
|
|
44
|
+
/** Custom header-right actions */
|
|
45
|
+
headerActions?: React.ReactNode;
|
|
46
|
+
}
|
|
47
|
+
export declare const DPanel: React.FC<DPanelProps>;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=DPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DPanel.d.ts","sourceRoot":"","sources":["../../src/dmusic/DPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE3D,UAAU,WAAW;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gCAAgC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kCAAkC;IAClC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACjC;AAUD,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAqLxC,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D-Music §1.3 — Data Visualization Components
|
|
3
|
+
*
|
|
4
|
+
* Unified visualization library:
|
|
5
|
+
* 1. StarPowerChart — Star Power growth curve (Recharts)
|
|
6
|
+
* 2. EmotionPieChart — Emotion distribution pie chart
|
|
7
|
+
* 3. PlayStatsChart — Play count bar chart with trend line
|
|
8
|
+
* 4. AchievementGrid — Achievement progress ring grid
|
|
9
|
+
* 5. SparklineChart — Inline mini sparkline for compact display
|
|
10
|
+
* 6. DataExportButton — Export data as CSV/JSON
|
|
11
|
+
*
|
|
12
|
+
* Design Requirements:
|
|
13
|
+
* - Real-time update capable
|
|
14
|
+
* - 60fps (Recharts + SVG, no forced reflows)
|
|
15
|
+
* - Clear data labels
|
|
16
|
+
* - WCAG 2.1 AA accessible (aria-labels, screen-reader text)
|
|
17
|
+
* - Unified color palette from design-tokens.ts
|
|
18
|
+
*
|
|
19
|
+
* Technology:
|
|
20
|
+
* - Canvas API for AudioVisualizer (existing)
|
|
21
|
+
* - Recharts for data charts
|
|
22
|
+
* - SVG for progress rings (AchievementRing from DMusicUI)
|
|
23
|
+
* - CSS animations for transitions
|
|
24
|
+
*/
|
|
25
|
+
import React from 'react';
|
|
26
|
+
export declare const DATA_VIZ_PALETTE: {
|
|
27
|
+
readonly primary: readonly ["#8B5CF6", "#EC4899", "#06B6D4", "#F59E0B", "#22C55E", "#3B82F6", "#EF4444", "#A855F7"];
|
|
28
|
+
readonly emotion: Record<string, string>;
|
|
29
|
+
readonly semantic: {
|
|
30
|
+
readonly success: "#22C55E";
|
|
31
|
+
readonly warning: "#F59E0B";
|
|
32
|
+
readonly error: "#EF4444";
|
|
33
|
+
readonly info: "#3B82F6";
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
interface StarPowerChartProps {
|
|
37
|
+
data: {
|
|
38
|
+
date: string;
|
|
39
|
+
value: number;
|
|
40
|
+
earned?: number;
|
|
41
|
+
spent?: number;
|
|
42
|
+
}[];
|
|
43
|
+
height?: number;
|
|
44
|
+
className?: string;
|
|
45
|
+
lang?: 'zh' | 'en';
|
|
46
|
+
}
|
|
47
|
+
export declare const StarPowerChart: React.FC<StarPowerChartProps>;
|
|
48
|
+
interface EmotionPieChartProps {
|
|
49
|
+
data: {
|
|
50
|
+
emotion: string;
|
|
51
|
+
count: number;
|
|
52
|
+
pct?: number;
|
|
53
|
+
}[];
|
|
54
|
+
size?: number;
|
|
55
|
+
className?: string;
|
|
56
|
+
lang?: 'zh' | 'en';
|
|
57
|
+
}
|
|
58
|
+
export declare const EmotionPieChart: React.FC<EmotionPieChartProps>;
|
|
59
|
+
interface PlayStatsChartProps {
|
|
60
|
+
data: {
|
|
61
|
+
name: string;
|
|
62
|
+
plays: number;
|
|
63
|
+
likes?: number;
|
|
64
|
+
}[];
|
|
65
|
+
height?: number;
|
|
66
|
+
className?: string;
|
|
67
|
+
lang?: 'zh' | 'en';
|
|
68
|
+
}
|
|
69
|
+
export declare const PlayStatsChart: React.FC<PlayStatsChartProps>;
|
|
70
|
+
interface AchievementGridItem {
|
|
71
|
+
id: string;
|
|
72
|
+
title: string;
|
|
73
|
+
icon: string;
|
|
74
|
+
progress: number;
|
|
75
|
+
color?: string;
|
|
76
|
+
}
|
|
77
|
+
interface AchievementGridProps {
|
|
78
|
+
items: AchievementGridItem[];
|
|
79
|
+
columns?: number;
|
|
80
|
+
className?: string;
|
|
81
|
+
}
|
|
82
|
+
export declare const AchievementGrid: React.FC<AchievementGridProps>;
|
|
83
|
+
interface SparklineChartProps {
|
|
84
|
+
data: number[];
|
|
85
|
+
width?: number;
|
|
86
|
+
height?: number;
|
|
87
|
+
color?: string;
|
|
88
|
+
showDot?: boolean;
|
|
89
|
+
className?: string;
|
|
90
|
+
}
|
|
91
|
+
export declare const SparklineChart: React.FC<SparklineChartProps>;
|
|
92
|
+
interface DataExportButtonProps {
|
|
93
|
+
data: any[];
|
|
94
|
+
filename?: string;
|
|
95
|
+
format?: 'csv' | 'json';
|
|
96
|
+
label?: string;
|
|
97
|
+
className?: string;
|
|
98
|
+
}
|
|
99
|
+
export declare const DataExportButton: React.FC<DataExportButtonProps>;
|
|
100
|
+
interface StatCardProps {
|
|
101
|
+
label: string;
|
|
102
|
+
value: string | number;
|
|
103
|
+
change?: number;
|
|
104
|
+
trend?: number[];
|
|
105
|
+
icon?: React.ReactNode;
|
|
106
|
+
className?: string;
|
|
107
|
+
}
|
|
108
|
+
export declare const StatCard: React.FC<StatCardProps>;
|
|
109
|
+
interface RankingItem {
|
|
110
|
+
rank: number;
|
|
111
|
+
name: string;
|
|
112
|
+
score: number;
|
|
113
|
+
avatar?: string;
|
|
114
|
+
change?: 'up' | 'down' | 'same' | 'new';
|
|
115
|
+
highlight?: boolean;
|
|
116
|
+
}
|
|
117
|
+
interface RankingListProps {
|
|
118
|
+
items: RankingItem[];
|
|
119
|
+
maxItems?: number;
|
|
120
|
+
valueLabel?: string;
|
|
121
|
+
className?: string;
|
|
122
|
+
lang?: 'zh' | 'en';
|
|
123
|
+
onItemClick?: (item: RankingItem) => void;
|
|
124
|
+
}
|
|
125
|
+
export declare const RankingList: React.FC<RankingListProps>;
|
|
126
|
+
export {};
|
|
127
|
+
//# sourceMappingURL=DataViz.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataViz.d.ts","sourceRoot":"","sources":["../../src/dmusic/DataViz.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* D-Music §1.1/§1.2/§1.3/§1.4 — Component Library Barrel Export
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* import { DButton, DCard, StarPowerChart } from './components/dmusic';
|
|
6
|
+
*/
|
|
7
|
+
export { DButton, DInput, DCard, DMusicCard, DUserCard, DAchievementCard, DProgress, AchievementRing, DFeedback, DSpinner, DBadge, DTag, DEmptyState, DList, DListItem, DModal, DTabBar, DToast, DBreadcrumb, } from './DMusicUI';
|
|
8
|
+
export { DPanel } from './DPanel';
|
|
9
|
+
export type { PanelSize } from './DPanel';
|
|
10
|
+
export { DATA_VIZ_PALETTE, StarPowerChart, EmotionPieChart, PlayStatsChart, AchievementGrid, SparklineChart, DataExportButton, StatCard, RankingList, } from './DataViz';
|
|
11
|
+
export { DMusicShowcase } from './DMusicShowcase';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dmusic/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,OAAO,EACP,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,SAAS,EACT,QAAQ,EACR,MAAM,EACN,IAAI,EACJ,WAAW,EACX,KAAK,EACL,SAAS,EACT,MAAM,EACN,OAAO,EACP,MAAM,EACN,WAAW,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,WAAW,GACZ,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageWithFallback.d.ts","sourceRoot":"","sources":["../../src/figma/ImageWithFallback.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,qBAqBjF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export * from './ui/accordion';
|
|
2
|
+
export * from './ui/alert';
|
|
3
|
+
export * from './ui/alert-dialog';
|
|
4
|
+
export * from './ui/aspect-ratio';
|
|
5
|
+
export * from './ui/avatar';
|
|
6
|
+
export * from './ui/badge';
|
|
7
|
+
export * from './ui/breadcrumb';
|
|
8
|
+
export * from './ui/button';
|
|
9
|
+
export * from './ui/calendar';
|
|
10
|
+
export * from './ui/card';
|
|
11
|
+
export * from './ui/carousel';
|
|
12
|
+
export * from './ui/chart';
|
|
13
|
+
export * from './ui/checkbox';
|
|
14
|
+
export * from './ui/collapsible';
|
|
15
|
+
export * from './ui/command';
|
|
16
|
+
export * from './ui/context-menu';
|
|
17
|
+
export * from './ui/dialog';
|
|
18
|
+
export * from './ui/drawer';
|
|
19
|
+
export * from './ui/dropdown-menu';
|
|
20
|
+
export * from './ui/form';
|
|
21
|
+
export * from './ui/hover-card';
|
|
22
|
+
export * from './ui/input';
|
|
23
|
+
export * from './ui/input-otp';
|
|
24
|
+
export * from './ui/label';
|
|
25
|
+
export * from './ui/menubar';
|
|
26
|
+
export * from './ui/navigation-menu';
|
|
27
|
+
export * from './ui/pagination';
|
|
28
|
+
export * from './ui/popover';
|
|
29
|
+
export * from './ui/progress';
|
|
30
|
+
export * from './ui/radio-group';
|
|
31
|
+
export * from './ui/resizable';
|
|
32
|
+
export * from './ui/scroll-area';
|
|
33
|
+
export * from './ui/select';
|
|
34
|
+
export * from './ui/separator';
|
|
35
|
+
export * from './ui/sheet';
|
|
36
|
+
export * from './ui/sidebar';
|
|
37
|
+
export * from './ui/skeleton';
|
|
38
|
+
export * from './ui/slider';
|
|
39
|
+
export * from './ui/sonner';
|
|
40
|
+
export * from './ui/switch';
|
|
41
|
+
export * from './ui/table';
|
|
42
|
+
export * from './ui/tabs';
|
|
43
|
+
export * from './ui/textarea';
|
|
44
|
+
export * from './ui/toggle';
|
|
45
|
+
export * from './ui/toggle-group';
|
|
46
|
+
export * from './ui/tooltip';
|
|
47
|
+
export * from './ui/use-mobile';
|
|
48
|
+
export * from './ui/utils';
|
|
49
|
+
export * from './dmusic';
|
|
50
|
+
export * from './figma/ImageWithFallback';
|
|
51
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAE7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAE3B,cAAc,UAAU,CAAC;AAEzB,cAAc,2BAA2B,CAAC"}
|