apple-liquid-glass-react-ui-kit 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,235 @@
1
+ import * as React from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+
4
+ declare const colors: {
5
+ readonly primary: "#0066A1";
6
+ readonly secondary: "#00B2A9";
7
+ readonly text: {
8
+ readonly primary: "#111827";
9
+ readonly secondary: "#6B7280";
10
+ };
11
+ readonly surface: {
12
+ readonly base: "rgba(255,255,255,0.72)";
13
+ readonly strong: "rgba(255,255,255,0.88)";
14
+ readonly dark: "rgba(20,20,25,0.65)";
15
+ };
16
+ readonly border: {
17
+ readonly glass: "rgba(255,255,255,0.35)";
18
+ };
19
+ readonly status: {
20
+ readonly info: "#0EA5E9";
21
+ readonly success: "#22C55E";
22
+ readonly warning: "#F59E0B";
23
+ readonly error: "#EF4444";
24
+ };
25
+ };
26
+ type ColorTokens = typeof colors;
27
+
28
+ declare const spacing: {
29
+ readonly 0: "0px";
30
+ readonly 1: "4px";
31
+ readonly 2: "8px";
32
+ readonly 3: "12px";
33
+ readonly 4: "16px";
34
+ readonly 6: "24px";
35
+ readonly 8: "32px";
36
+ readonly 12: "48px";
37
+ };
38
+ type SpacingTokens = typeof spacing;
39
+
40
+ declare const typography: {
41
+ readonly fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, 'SF Pro Display', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, 'Apple Color Emoji', 'Segoe UI Emoji'";
42
+ readonly display: {
43
+ readonly fontSize: "40px";
44
+ readonly lineHeight: "48px";
45
+ readonly fontWeight: 700;
46
+ };
47
+ readonly h1: {
48
+ readonly fontSize: "32px";
49
+ readonly lineHeight: "40px";
50
+ readonly fontWeight: 700;
51
+ };
52
+ readonly h2: {
53
+ readonly fontSize: "24px";
54
+ readonly lineHeight: "32px";
55
+ readonly fontWeight: 600;
56
+ };
57
+ readonly body: {
58
+ readonly fontSize: "16px";
59
+ readonly lineHeight: "24px";
60
+ readonly fontWeight: 400;
61
+ };
62
+ readonly caption: {
63
+ readonly fontSize: "13px";
64
+ readonly lineHeight: "18px";
65
+ readonly fontWeight: 400;
66
+ };
67
+ };
68
+ type TypographyTokens = typeof typography;
69
+
70
+ declare const radius: {
71
+ readonly sm: "8px";
72
+ readonly md: "12px";
73
+ readonly lg: "20px";
74
+ readonly xl: "28px";
75
+ readonly full: "999px";
76
+ };
77
+ type RadiusTokens = typeof radius;
78
+
79
+ declare const shadows: {
80
+ readonly glass: "0 8px 32px rgba(0,0,0,0.12)";
81
+ readonly floating: "0 16px 48px rgba(0,0,0,0.18)";
82
+ readonly modal: "0 24px 64px rgba(0,0,0,0.22)";
83
+ };
84
+ type ShadowTokens = typeof shadows;
85
+
86
+ type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'glass' | 'danger';
87
+ declare const Button: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & {
88
+ variant?: ButtonVariant;
89
+ size?: "sm" | "md" | "lg";
90
+ leftIcon?: React.ReactNode;
91
+ rightIcon?: React.ReactNode;
92
+ } & React.RefAttributes<HTMLButtonElement>>;
93
+
94
+ declare const Input: React.ForwardRefExoticComponent<React.InputHTMLAttributes<HTMLInputElement> & {
95
+ state?: "default" | "focused" | "error" | "disabled";
96
+ } & React.RefAttributes<HTMLInputElement>>;
97
+
98
+ type Variant$1 = 'info' | 'success' | 'warning' | 'error';
99
+ type Props$2 = {
100
+ variant?: Variant$1;
101
+ children: React.ReactNode;
102
+ style?: React.CSSProperties;
103
+ };
104
+ declare function Badge({ variant, children, style }: Props$2): react_jsx_runtime.JSX.Element;
105
+
106
+ type AvatarProps = {
107
+ src?: string;
108
+ alt?: string;
109
+ initials?: string;
110
+ size?: number;
111
+ style?: React.CSSProperties;
112
+ };
113
+ declare function Avatar({ src, alt, initials, size, style }: AvatarProps): react_jsx_runtime.JSX.Element;
114
+
115
+ type Variant = 'default' | 'glass' | 'active';
116
+ declare const IconButton: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & {
117
+ variant?: Variant;
118
+ icon: React.ReactNode;
119
+ size?: number;
120
+ } & React.RefAttributes<HTMLButtonElement>>;
121
+
122
+ type Props$1 = React.HTMLAttributes<HTMLDivElement> & {
123
+ tone?: 'light' | 'dark';
124
+ strength?: 'base' | 'strong';
125
+ floating?: boolean;
126
+ };
127
+ declare function GlassCard({ tone, strength, floating, style, ...rest }: Props$1): react_jsx_runtime.JSX.Element;
128
+
129
+ type Props = {
130
+ label: string;
131
+ value: string | number;
132
+ delta?: string;
133
+ icon?: React.ReactNode;
134
+ tone?: 'light' | 'dark';
135
+ style?: React.CSSProperties;
136
+ };
137
+ declare function StatCard({ label, value, delta, icon, tone, style }: Props): react_jsx_runtime.JSX.Element;
138
+
139
+ type SearchBarProps = {
140
+ value: string;
141
+ onChange: (value: string) => void;
142
+ placeholder?: string;
143
+ onClear?: () => void;
144
+ leadingIcon?: React.ReactNode;
145
+ clearIcon?: React.ReactNode;
146
+ };
147
+ declare function SearchBar({ value, onChange, placeholder, onClear, leadingIcon, clearIcon }: SearchBarProps): react_jsx_runtime.JSX.Element;
148
+
149
+ type FormFieldProps = {
150
+ label: string;
151
+ hint?: string;
152
+ error?: string;
153
+ children: React.ReactNode;
154
+ };
155
+ declare function FormField({ label, hint, error, children }: FormFieldProps): react_jsx_runtime.JSX.Element;
156
+
157
+ type ToastVariant = 'success' | 'error' | 'info' | 'warning';
158
+ type ToastProps = {
159
+ title: string;
160
+ message?: string;
161
+ variant?: ToastVariant;
162
+ onDismiss?: () => void;
163
+ };
164
+ declare function Toast({ title, message, variant, onDismiss }: ToastProps): react_jsx_runtime.JSX.Element;
165
+
166
+ type AppShellProps = {
167
+ sidebar?: React.ReactNode;
168
+ header?: React.ReactNode;
169
+ children: React.ReactNode;
170
+ };
171
+ declare function AppShell({ sidebar, header, children }: AppShellProps): react_jsx_runtime.JSX.Element;
172
+
173
+ type DashboardGridProps = {
174
+ stats?: React.ReactNode;
175
+ main?: React.ReactNode;
176
+ side?: React.ReactNode;
177
+ };
178
+ declare function DashboardGrid({ stats, main, side }: DashboardGridProps): react_jsx_runtime.JSX.Element;
179
+
180
+ type ModalProps = {
181
+ open: boolean;
182
+ title?: React.ReactNode;
183
+ children: React.ReactNode;
184
+ footer?: React.ReactNode;
185
+ onClose: () => void;
186
+ };
187
+ declare function Modal({ open, title, children, footer, onClose }: ModalProps): react_jsx_runtime.JSX.Element | null;
188
+
189
+ type Column<T> = {
190
+ key: string;
191
+ header: string;
192
+ render: (row: T) => React.ReactNode;
193
+ width?: string;
194
+ };
195
+ type DataTableProps<T> = {
196
+ columns: Column<T>[];
197
+ rows: T[];
198
+ rowKey: (row: T) => string;
199
+ emptyState?: React.ReactNode;
200
+ };
201
+ declare function DataTable<T>({ columns, rows, rowKey, emptyState }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
202
+
203
+ type Step = {
204
+ id: string;
205
+ title: string;
206
+ content: React.ReactNode;
207
+ };
208
+ type FormWizardProps = {
209
+ steps: Step[];
210
+ activeStepId: string;
211
+ onBack?: () => void;
212
+ onNext?: () => void;
213
+ onFinish?: () => void;
214
+ isLast?: boolean;
215
+ };
216
+ declare function FormWizard({ steps, activeStepId, onBack, onNext, onFinish, isLast }: FormWizardProps): react_jsx_runtime.JSX.Element;
217
+
218
+ type PageContainerProps = React.HTMLAttributes<HTMLDivElement> & {
219
+ maxWidth?: number;
220
+ };
221
+ declare function PageContainer({ maxWidth, style, ...rest }: PageContainerProps): react_jsx_runtime.JSX.Element;
222
+
223
+ type SectionProps = React.HTMLAttributes<HTMLElement> & {
224
+ title?: React.ReactNode;
225
+ actions?: React.ReactNode;
226
+ };
227
+ declare function Section({ title, actions, children, style, ...rest }: SectionProps): react_jsx_runtime.JSX.Element;
228
+
229
+ type GridProps = React.HTMLAttributes<HTMLDivElement> & {
230
+ columns?: string;
231
+ gap?: keyof typeof spacing;
232
+ };
233
+ declare function Grid({ columns, gap, style, ...rest }: GridProps): react_jsx_runtime.JSX.Element;
234
+
235
+ export { AppShell, type AppShellProps, Avatar, type AvatarProps, Badge, Button, type ColorTokens, type Column, DashboardGrid, type DashboardGridProps, DataTable, type DataTableProps, FormField, type FormFieldProps, FormWizard, type FormWizardProps, GlassCard, Grid, type GridProps, IconButton, Input, Modal, type ModalProps, PageContainer, type PageContainerProps, type RadiusTokens, SearchBar, type SearchBarProps, Section, type SectionProps, type ShadowTokens, type SpacingTokens, StatCard, type Step, Toast, type ToastProps, type ToastVariant, type TypographyTokens, colors, radius, shadows, spacing, typography };
@@ -0,0 +1,235 @@
1
+ import * as React from 'react';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+
4
+ declare const colors: {
5
+ readonly primary: "#0066A1";
6
+ readonly secondary: "#00B2A9";
7
+ readonly text: {
8
+ readonly primary: "#111827";
9
+ readonly secondary: "#6B7280";
10
+ };
11
+ readonly surface: {
12
+ readonly base: "rgba(255,255,255,0.72)";
13
+ readonly strong: "rgba(255,255,255,0.88)";
14
+ readonly dark: "rgba(20,20,25,0.65)";
15
+ };
16
+ readonly border: {
17
+ readonly glass: "rgba(255,255,255,0.35)";
18
+ };
19
+ readonly status: {
20
+ readonly info: "#0EA5E9";
21
+ readonly success: "#22C55E";
22
+ readonly warning: "#F59E0B";
23
+ readonly error: "#EF4444";
24
+ };
25
+ };
26
+ type ColorTokens = typeof colors;
27
+
28
+ declare const spacing: {
29
+ readonly 0: "0px";
30
+ readonly 1: "4px";
31
+ readonly 2: "8px";
32
+ readonly 3: "12px";
33
+ readonly 4: "16px";
34
+ readonly 6: "24px";
35
+ readonly 8: "32px";
36
+ readonly 12: "48px";
37
+ };
38
+ type SpacingTokens = typeof spacing;
39
+
40
+ declare const typography: {
41
+ readonly fontFamily: "Inter, ui-sans-serif, system-ui, -apple-system, 'SF Pro Display', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, 'Apple Color Emoji', 'Segoe UI Emoji'";
42
+ readonly display: {
43
+ readonly fontSize: "40px";
44
+ readonly lineHeight: "48px";
45
+ readonly fontWeight: 700;
46
+ };
47
+ readonly h1: {
48
+ readonly fontSize: "32px";
49
+ readonly lineHeight: "40px";
50
+ readonly fontWeight: 700;
51
+ };
52
+ readonly h2: {
53
+ readonly fontSize: "24px";
54
+ readonly lineHeight: "32px";
55
+ readonly fontWeight: 600;
56
+ };
57
+ readonly body: {
58
+ readonly fontSize: "16px";
59
+ readonly lineHeight: "24px";
60
+ readonly fontWeight: 400;
61
+ };
62
+ readonly caption: {
63
+ readonly fontSize: "13px";
64
+ readonly lineHeight: "18px";
65
+ readonly fontWeight: 400;
66
+ };
67
+ };
68
+ type TypographyTokens = typeof typography;
69
+
70
+ declare const radius: {
71
+ readonly sm: "8px";
72
+ readonly md: "12px";
73
+ readonly lg: "20px";
74
+ readonly xl: "28px";
75
+ readonly full: "999px";
76
+ };
77
+ type RadiusTokens = typeof radius;
78
+
79
+ declare const shadows: {
80
+ readonly glass: "0 8px 32px rgba(0,0,0,0.12)";
81
+ readonly floating: "0 16px 48px rgba(0,0,0,0.18)";
82
+ readonly modal: "0 24px 64px rgba(0,0,0,0.22)";
83
+ };
84
+ type ShadowTokens = typeof shadows;
85
+
86
+ type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'glass' | 'danger';
87
+ declare const Button: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & {
88
+ variant?: ButtonVariant;
89
+ size?: "sm" | "md" | "lg";
90
+ leftIcon?: React.ReactNode;
91
+ rightIcon?: React.ReactNode;
92
+ } & React.RefAttributes<HTMLButtonElement>>;
93
+
94
+ declare const Input: React.ForwardRefExoticComponent<React.InputHTMLAttributes<HTMLInputElement> & {
95
+ state?: "default" | "focused" | "error" | "disabled";
96
+ } & React.RefAttributes<HTMLInputElement>>;
97
+
98
+ type Variant$1 = 'info' | 'success' | 'warning' | 'error';
99
+ type Props$2 = {
100
+ variant?: Variant$1;
101
+ children: React.ReactNode;
102
+ style?: React.CSSProperties;
103
+ };
104
+ declare function Badge({ variant, children, style }: Props$2): react_jsx_runtime.JSX.Element;
105
+
106
+ type AvatarProps = {
107
+ src?: string;
108
+ alt?: string;
109
+ initials?: string;
110
+ size?: number;
111
+ style?: React.CSSProperties;
112
+ };
113
+ declare function Avatar({ src, alt, initials, size, style }: AvatarProps): react_jsx_runtime.JSX.Element;
114
+
115
+ type Variant = 'default' | 'glass' | 'active';
116
+ declare const IconButton: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & {
117
+ variant?: Variant;
118
+ icon: React.ReactNode;
119
+ size?: number;
120
+ } & React.RefAttributes<HTMLButtonElement>>;
121
+
122
+ type Props$1 = React.HTMLAttributes<HTMLDivElement> & {
123
+ tone?: 'light' | 'dark';
124
+ strength?: 'base' | 'strong';
125
+ floating?: boolean;
126
+ };
127
+ declare function GlassCard({ tone, strength, floating, style, ...rest }: Props$1): react_jsx_runtime.JSX.Element;
128
+
129
+ type Props = {
130
+ label: string;
131
+ value: string | number;
132
+ delta?: string;
133
+ icon?: React.ReactNode;
134
+ tone?: 'light' | 'dark';
135
+ style?: React.CSSProperties;
136
+ };
137
+ declare function StatCard({ label, value, delta, icon, tone, style }: Props): react_jsx_runtime.JSX.Element;
138
+
139
+ type SearchBarProps = {
140
+ value: string;
141
+ onChange: (value: string) => void;
142
+ placeholder?: string;
143
+ onClear?: () => void;
144
+ leadingIcon?: React.ReactNode;
145
+ clearIcon?: React.ReactNode;
146
+ };
147
+ declare function SearchBar({ value, onChange, placeholder, onClear, leadingIcon, clearIcon }: SearchBarProps): react_jsx_runtime.JSX.Element;
148
+
149
+ type FormFieldProps = {
150
+ label: string;
151
+ hint?: string;
152
+ error?: string;
153
+ children: React.ReactNode;
154
+ };
155
+ declare function FormField({ label, hint, error, children }: FormFieldProps): react_jsx_runtime.JSX.Element;
156
+
157
+ type ToastVariant = 'success' | 'error' | 'info' | 'warning';
158
+ type ToastProps = {
159
+ title: string;
160
+ message?: string;
161
+ variant?: ToastVariant;
162
+ onDismiss?: () => void;
163
+ };
164
+ declare function Toast({ title, message, variant, onDismiss }: ToastProps): react_jsx_runtime.JSX.Element;
165
+
166
+ type AppShellProps = {
167
+ sidebar?: React.ReactNode;
168
+ header?: React.ReactNode;
169
+ children: React.ReactNode;
170
+ };
171
+ declare function AppShell({ sidebar, header, children }: AppShellProps): react_jsx_runtime.JSX.Element;
172
+
173
+ type DashboardGridProps = {
174
+ stats?: React.ReactNode;
175
+ main?: React.ReactNode;
176
+ side?: React.ReactNode;
177
+ };
178
+ declare function DashboardGrid({ stats, main, side }: DashboardGridProps): react_jsx_runtime.JSX.Element;
179
+
180
+ type ModalProps = {
181
+ open: boolean;
182
+ title?: React.ReactNode;
183
+ children: React.ReactNode;
184
+ footer?: React.ReactNode;
185
+ onClose: () => void;
186
+ };
187
+ declare function Modal({ open, title, children, footer, onClose }: ModalProps): react_jsx_runtime.JSX.Element | null;
188
+
189
+ type Column<T> = {
190
+ key: string;
191
+ header: string;
192
+ render: (row: T) => React.ReactNode;
193
+ width?: string;
194
+ };
195
+ type DataTableProps<T> = {
196
+ columns: Column<T>[];
197
+ rows: T[];
198
+ rowKey: (row: T) => string;
199
+ emptyState?: React.ReactNode;
200
+ };
201
+ declare function DataTable<T>({ columns, rows, rowKey, emptyState }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
202
+
203
+ type Step = {
204
+ id: string;
205
+ title: string;
206
+ content: React.ReactNode;
207
+ };
208
+ type FormWizardProps = {
209
+ steps: Step[];
210
+ activeStepId: string;
211
+ onBack?: () => void;
212
+ onNext?: () => void;
213
+ onFinish?: () => void;
214
+ isLast?: boolean;
215
+ };
216
+ declare function FormWizard({ steps, activeStepId, onBack, onNext, onFinish, isLast }: FormWizardProps): react_jsx_runtime.JSX.Element;
217
+
218
+ type PageContainerProps = React.HTMLAttributes<HTMLDivElement> & {
219
+ maxWidth?: number;
220
+ };
221
+ declare function PageContainer({ maxWidth, style, ...rest }: PageContainerProps): react_jsx_runtime.JSX.Element;
222
+
223
+ type SectionProps = React.HTMLAttributes<HTMLElement> & {
224
+ title?: React.ReactNode;
225
+ actions?: React.ReactNode;
226
+ };
227
+ declare function Section({ title, actions, children, style, ...rest }: SectionProps): react_jsx_runtime.JSX.Element;
228
+
229
+ type GridProps = React.HTMLAttributes<HTMLDivElement> & {
230
+ columns?: string;
231
+ gap?: keyof typeof spacing;
232
+ };
233
+ declare function Grid({ columns, gap, style, ...rest }: GridProps): react_jsx_runtime.JSX.Element;
234
+
235
+ export { AppShell, type AppShellProps, Avatar, type AvatarProps, Badge, Button, type ColorTokens, type Column, DashboardGrid, type DashboardGridProps, DataTable, type DataTableProps, FormField, type FormFieldProps, FormWizard, type FormWizardProps, GlassCard, Grid, type GridProps, IconButton, Input, Modal, type ModalProps, PageContainer, type PageContainerProps, type RadiusTokens, SearchBar, type SearchBarProps, Section, type SectionProps, type ShadowTokens, type SpacingTokens, StatCard, type Step, Toast, type ToastProps, type ToastVariant, type TypographyTokens, colors, radius, shadows, spacing, typography };