@geekapps/silo-elements-nextjs 0.0.1 → 0.0.2
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/dist/index.d.ts +220 -12
- package/dist/index.js +1696 -10
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/dist/FileUploader.d.ts +0 -3
- package/dist/FileUploader.d.ts.map +0 -1
- package/dist/FileUploader.js +0 -43
- package/dist/FileUploader.js.map +0 -1
- package/dist/ImageUploader.d.ts +0 -3
- package/dist/ImageUploader.d.ts.map +0 -1
- package/dist/ImageUploader.js +0 -71
- package/dist/ImageUploader.js.map +0 -1
- package/dist/MediaUploader.d.ts +0 -3
- package/dist/MediaUploader.d.ts.map +0 -1
- package/dist/MediaUploader.js +0 -47
- package/dist/MediaUploader.js.map +0 -1
- package/dist/VideoPlayer.d.ts +0 -56
- package/dist/VideoPlayer.d.ts.map +0 -1
- package/dist/VideoPlayer.js +0 -738
- package/dist/VideoPlayer.js.map +0 -1
- package/dist/VideoUploader.d.ts +0 -3
- package/dist/VideoUploader.d.ts.map +0 -1
- package/dist/VideoUploader.js +0 -48
- package/dist/VideoUploader.js.map +0 -1
- package/dist/components/DropZone.d.ts +0 -17
- package/dist/components/DropZone.d.ts.map +0 -1
- package/dist/components/DropZone.js +0 -52
- package/dist/components/DropZone.js.map +0 -1
- package/dist/components/ProgressBar.d.ts +0 -9
- package/dist/components/ProgressBar.d.ts.map +0 -1
- package/dist/components/ProgressBar.js +0 -18
- package/dist/components/ProgressBar.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/types.d.ts +0 -129
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/format.d.ts +0 -3
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js +0 -29
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/theme.d.ts +0 -5
- package/dist/utils/theme.d.ts.map +0 -1
- package/dist/utils/theme.js +0 -34
- package/dist/utils/theme.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,220 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { UploadResult } from '@geekapps/silo-nextjs';
|
|
3
|
+
export { SiloProvider, useFileStatus, useSignedUrl, useSiloClient, useUpload } from '@geekapps/silo-nextjs';
|
|
4
|
+
import { ReactNode, CSSProperties } from 'react';
|
|
5
|
+
|
|
6
|
+
interface BaseUploaderProps {
|
|
7
|
+
/** Bucket to upload to */
|
|
8
|
+
bucket?: string;
|
|
9
|
+
/** Seconds until file expires (optional) */
|
|
10
|
+
expiresIn?: number;
|
|
11
|
+
/** Keep file private (default: true) */
|
|
12
|
+
private?: boolean;
|
|
13
|
+
/** Called when upload completes */
|
|
14
|
+
onUpload?: (result: UploadResult) => void;
|
|
15
|
+
/** Called when upload fails */
|
|
16
|
+
onError?: (error: Error) => void;
|
|
17
|
+
/** Custom className for the root element */
|
|
18
|
+
className?: string;
|
|
19
|
+
/** Custom styles */
|
|
20
|
+
style?: React.CSSProperties;
|
|
21
|
+
/** Disable the uploader */
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/** Max file size in bytes */
|
|
24
|
+
maxSize?: number;
|
|
25
|
+
/** Custom label/content slot */
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
/** Override inner icon slot */
|
|
28
|
+
renderIcon?: () => React.ReactNode;
|
|
29
|
+
/** Override progress bar slot */
|
|
30
|
+
renderProgress?: (progress: number) => React.ReactNode;
|
|
31
|
+
/** Override success state slot */
|
|
32
|
+
renderSuccess?: (result: UploadResult) => React.ReactNode;
|
|
33
|
+
/** Override error state slot */
|
|
34
|
+
renderError?: (error: Error, retry: () => void) => React.ReactNode;
|
|
35
|
+
/** Theme tokens */
|
|
36
|
+
theme?: SiloTheme;
|
|
37
|
+
}
|
|
38
|
+
interface SiloTheme {
|
|
39
|
+
borderColor?: string;
|
|
40
|
+
borderColorActive?: string;
|
|
41
|
+
backgroundColor?: string;
|
|
42
|
+
backgroundColorHover?: string;
|
|
43
|
+
textColor?: string;
|
|
44
|
+
textColorMuted?: string;
|
|
45
|
+
accentColor?: string;
|
|
46
|
+
accentColorHover?: string;
|
|
47
|
+
errorColor?: string;
|
|
48
|
+
successColor?: string;
|
|
49
|
+
borderRadius?: string;
|
|
50
|
+
fontFamily?: string;
|
|
51
|
+
}
|
|
52
|
+
interface ImageUploaderProps extends BaseUploaderProps {
|
|
53
|
+
/** Allow cropping before upload */
|
|
54
|
+
allowCrop?: boolean;
|
|
55
|
+
/** Crop aspect ratio (e.g. 16/9) */
|
|
56
|
+
cropAspectRatio?: number;
|
|
57
|
+
/** Show preview after selection */
|
|
58
|
+
showPreview?: boolean;
|
|
59
|
+
/** Accept string (default: image/*) */
|
|
60
|
+
accept?: string;
|
|
61
|
+
}
|
|
62
|
+
interface VideoUploaderProps extends BaseUploaderProps {
|
|
63
|
+
/** Show video preview after selection */
|
|
64
|
+
showPreview?: boolean;
|
|
65
|
+
/** Accept string (default: video/*) */
|
|
66
|
+
accept?: string;
|
|
67
|
+
}
|
|
68
|
+
interface FileUploaderProps extends BaseUploaderProps {
|
|
69
|
+
/** Accepted MIME types or extensions */
|
|
70
|
+
accept?: string;
|
|
71
|
+
/** Allow multiple files */
|
|
72
|
+
multiple?: boolean;
|
|
73
|
+
}
|
|
74
|
+
interface MediaUploaderProps extends BaseUploaderProps {
|
|
75
|
+
/** Which tabs to show */
|
|
76
|
+
tabs?: Array<"image" | "video" | "file">;
|
|
77
|
+
/** Default active tab */
|
|
78
|
+
defaultTab?: "image" | "video" | "file";
|
|
79
|
+
imageProps?: Partial<ImageUploaderProps>;
|
|
80
|
+
videoProps?: Partial<VideoUploaderProps>;
|
|
81
|
+
fileProps?: Partial<FileUploaderProps>;
|
|
82
|
+
}
|
|
83
|
+
interface VideoPlayerProps {
|
|
84
|
+
/** HLS playlist URL or direct MP4 URL */
|
|
85
|
+
src: string;
|
|
86
|
+
/** Poster/thumbnail image URL */
|
|
87
|
+
poster?: string;
|
|
88
|
+
/** Signed URL for private streams */
|
|
89
|
+
token?: string;
|
|
90
|
+
/** Auto play */
|
|
91
|
+
autoPlay?: boolean;
|
|
92
|
+
/** Loop */
|
|
93
|
+
loop?: boolean;
|
|
94
|
+
/** Mute */
|
|
95
|
+
muted?: boolean;
|
|
96
|
+
/** Show native controls (default: true) */
|
|
97
|
+
controls?: boolean;
|
|
98
|
+
/** Custom controls slot — disables native controls */
|
|
99
|
+
renderControls?: (player: VideoPlayerControls) => React.ReactNode;
|
|
100
|
+
/** Custom className */
|
|
101
|
+
className?: string;
|
|
102
|
+
/** Custom styles */
|
|
103
|
+
style?: React.CSSProperties;
|
|
104
|
+
/** Subtitle tracks */
|
|
105
|
+
tracks?: Array<{
|
|
106
|
+
src: string;
|
|
107
|
+
label: string;
|
|
108
|
+
srcLang: string;
|
|
109
|
+
default?: boolean;
|
|
110
|
+
}>;
|
|
111
|
+
/** Theme */
|
|
112
|
+
theme?: SiloTheme;
|
|
113
|
+
/** Called when playback starts */
|
|
114
|
+
onPlay?: () => void;
|
|
115
|
+
/** Called when playback pauses */
|
|
116
|
+
onPause?: () => void;
|
|
117
|
+
/** Called on time update */
|
|
118
|
+
onTimeUpdate?: (currentTime: number, duration: number) => void;
|
|
119
|
+
}
|
|
120
|
+
interface VideoPlayerControls {
|
|
121
|
+
playing: boolean;
|
|
122
|
+
currentTime: number;
|
|
123
|
+
duration: number;
|
|
124
|
+
volume: number;
|
|
125
|
+
muted: boolean;
|
|
126
|
+
play: () => void;
|
|
127
|
+
pause: () => void;
|
|
128
|
+
seek: (time: number) => void;
|
|
129
|
+
setVolume: (vol: number) => void;
|
|
130
|
+
toggleMute: () => void;
|
|
131
|
+
requestFullscreen: () => void;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
declare function ImageUploader({ bucket, expiresIn, private: isPrivate, onUpload, onError, className, style, disabled, maxSize, accept, showPreview, theme, renderIcon, renderProgress, renderSuccess, renderError, children, }: ImageUploaderProps): react_jsx_runtime.JSX.Element;
|
|
135
|
+
|
|
136
|
+
declare function VideoUploader({ bucket, expiresIn, private: isPrivate, onUpload, onError, className, style, disabled, maxSize, accept, showPreview, theme, renderIcon, renderProgress, renderSuccess, renderError, children, }: VideoUploaderProps): react_jsx_runtime.JSX.Element;
|
|
137
|
+
|
|
138
|
+
declare function FileUploader({ bucket, expiresIn, private: isPrivate, onUpload, onError, className, style, disabled, maxSize, accept, multiple, theme, renderIcon, renderProgress, renderSuccess, renderError, children, }: FileUploaderProps): react_jsx_runtime.JSX.Element;
|
|
139
|
+
|
|
140
|
+
declare function MediaUploader({ tabs, defaultTab, imageProps, videoProps, fileProps, className, style, theme, onUpload, onError, ...shared }: MediaUploaderProps): react_jsx_runtime.JSX.Element;
|
|
141
|
+
|
|
142
|
+
type VideoSourceType = "dash" | "hls" | "file";
|
|
143
|
+
type SourceProps = {
|
|
144
|
+
id?: string;
|
|
145
|
+
src: string;
|
|
146
|
+
label?: string;
|
|
147
|
+
type?: VideoSourceType;
|
|
148
|
+
default?: boolean;
|
|
149
|
+
};
|
|
150
|
+
type SourcesProps = {
|
|
151
|
+
children: ReactNode;
|
|
152
|
+
};
|
|
153
|
+
type SubtitleProps = {
|
|
154
|
+
src: string;
|
|
155
|
+
srclang: string;
|
|
156
|
+
label: string;
|
|
157
|
+
default?: boolean;
|
|
158
|
+
};
|
|
159
|
+
type SubtitlesProps = {
|
|
160
|
+
children: ReactNode;
|
|
161
|
+
};
|
|
162
|
+
type StoryboardFrameProps = {
|
|
163
|
+
start: number;
|
|
164
|
+
end: number;
|
|
165
|
+
image: string;
|
|
166
|
+
x?: number;
|
|
167
|
+
y?: number;
|
|
168
|
+
w?: number;
|
|
169
|
+
h?: number;
|
|
170
|
+
};
|
|
171
|
+
type StoryboardProps = {
|
|
172
|
+
src?: string;
|
|
173
|
+
fallbackImage?: string;
|
|
174
|
+
width?: number;
|
|
175
|
+
height?: number;
|
|
176
|
+
children?: ReactNode;
|
|
177
|
+
};
|
|
178
|
+
type VideoProps = {
|
|
179
|
+
title?: string;
|
|
180
|
+
description?: string;
|
|
181
|
+
poster?: string;
|
|
182
|
+
children: ReactNode;
|
|
183
|
+
className?: string;
|
|
184
|
+
autoHideControls?: boolean;
|
|
185
|
+
defaultVolume?: number;
|
|
186
|
+
};
|
|
187
|
+
declare function Sources(_props: SourcesProps): null;
|
|
188
|
+
declare function Source(_props: SourceProps): null;
|
|
189
|
+
declare function Subtitles(_props: SubtitlesProps): null;
|
|
190
|
+
declare function Subtitle(_props: SubtitleProps): null;
|
|
191
|
+
declare function Storyboard(_props: StoryboardProps): null;
|
|
192
|
+
declare function StoryboardFrame(_props: StoryboardFrameProps): null;
|
|
193
|
+
declare function Video({ title, description, poster, children, className, autoHideControls, defaultVolume, }: VideoProps): react_jsx_runtime.JSX.Element;
|
|
194
|
+
declare const VideoPlayer: typeof Video;
|
|
195
|
+
|
|
196
|
+
interface DropZoneProps {
|
|
197
|
+
accept?: string;
|
|
198
|
+
multiple?: boolean;
|
|
199
|
+
disabled?: boolean;
|
|
200
|
+
maxSize?: number;
|
|
201
|
+
onFiles: (files: File[]) => void;
|
|
202
|
+
onError?: (error: Error) => void;
|
|
203
|
+
className?: string;
|
|
204
|
+
style?: CSSProperties;
|
|
205
|
+
theme?: SiloTheme;
|
|
206
|
+
children: ReactNode;
|
|
207
|
+
}
|
|
208
|
+
declare function DropZone({ accept, multiple, disabled, maxSize, onFiles, onError, className, style, theme, children, }: DropZoneProps): react_jsx_runtime.JSX.Element;
|
|
209
|
+
|
|
210
|
+
interface ProgressBarProps {
|
|
211
|
+
progress: number;
|
|
212
|
+
className?: string;
|
|
213
|
+
style?: CSSProperties;
|
|
214
|
+
}
|
|
215
|
+
declare function ProgressBar({ progress, className, style }: ProgressBarProps): react_jsx_runtime.JSX.Element;
|
|
216
|
+
|
|
217
|
+
declare const defaultTheme: Required<SiloTheme>;
|
|
218
|
+
declare function resolveTheme(theme?: SiloTheme): Required<SiloTheme>;
|
|
219
|
+
|
|
220
|
+
export { type BaseUploaderProps, DropZone, FileUploader, type FileUploaderProps, ImageUploader, type ImageUploaderProps, MediaUploader, type MediaUploaderProps, ProgressBar, type SiloTheme, Source, type SourceProps, Sources, type SourcesProps, Storyboard, StoryboardFrame, type StoryboardFrameProps, type StoryboardProps, Subtitle, type SubtitleProps, Subtitles, type SubtitlesProps, Video, VideoPlayer, type VideoPlayerControls, type VideoPlayerProps, type VideoSourceType, VideoUploader, type VideoUploaderProps, defaultTheme, resolveTheme };
|