@geekapps/silo-elements-nextjs 0.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.
Files changed (45) hide show
  1. package/dist/FileUploader.d.ts +3 -0
  2. package/dist/FileUploader.d.ts.map +1 -0
  3. package/dist/FileUploader.js +43 -0
  4. package/dist/FileUploader.js.map +1 -0
  5. package/dist/ImageUploader.d.ts +3 -0
  6. package/dist/ImageUploader.d.ts.map +1 -0
  7. package/dist/ImageUploader.js +71 -0
  8. package/dist/ImageUploader.js.map +1 -0
  9. package/dist/MediaUploader.d.ts +3 -0
  10. package/dist/MediaUploader.d.ts.map +1 -0
  11. package/dist/MediaUploader.js +47 -0
  12. package/dist/MediaUploader.js.map +1 -0
  13. package/dist/VideoPlayer.d.ts +56 -0
  14. package/dist/VideoPlayer.d.ts.map +1 -0
  15. package/dist/VideoPlayer.js +738 -0
  16. package/dist/VideoPlayer.js.map +1 -0
  17. package/dist/VideoUploader.d.ts +3 -0
  18. package/dist/VideoUploader.d.ts.map +1 -0
  19. package/dist/VideoUploader.js +48 -0
  20. package/dist/VideoUploader.js.map +1 -0
  21. package/dist/components/DropZone.d.ts +17 -0
  22. package/dist/components/DropZone.d.ts.map +1 -0
  23. package/dist/components/DropZone.js +52 -0
  24. package/dist/components/DropZone.js.map +1 -0
  25. package/dist/components/ProgressBar.d.ts +9 -0
  26. package/dist/components/ProgressBar.d.ts.map +1 -0
  27. package/dist/components/ProgressBar.js +18 -0
  28. package/dist/components/ProgressBar.js.map +1 -0
  29. package/dist/index.d.ts +12 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +11 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/types.d.ts +129 -0
  34. package/dist/types.d.ts.map +1 -0
  35. package/dist/types.js +2 -0
  36. package/dist/types.js.map +1 -0
  37. package/dist/utils/format.d.ts +3 -0
  38. package/dist/utils/format.d.ts.map +1 -0
  39. package/dist/utils/format.js +29 -0
  40. package/dist/utils/format.js.map +1 -0
  41. package/dist/utils/theme.d.ts +5 -0
  42. package/dist/utils/theme.d.ts.map +1 -0
  43. package/dist/utils/theme.js +34 -0
  44. package/dist/utils/theme.js.map +1 -0
  45. package/package.json +39 -0
@@ -0,0 +1,3 @@
1
+ import type { FileUploaderProps } from "./types.js";
2
+ export declare function FileUploader({ bucket, expiresIn, private: isPrivate, onUpload, onError, className, style, disabled, maxSize, accept, multiple, theme, renderIcon, renderProgress, renderSuccess, renderError, children, }: FileUploaderProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=FileUploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploader.d.ts","sourceRoot":"","sources":["../src/FileUploader.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAMpD,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,SAAS,EACT,OAAO,EAAE,SAAgB,EACzB,QAAQ,EACR,OAAO,EACP,SAAc,EACd,KAAK,EACL,QAAgB,EAChB,OAAO,EACP,MAAM,EACN,QAAgB,EAChB,KAAK,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,QAAQ,GACT,EAAE,iBAAiB,2CAwGnB"}
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useCallback } from "react";
4
+ import { useUpload } from "@silo/nextjs";
5
+ import { DropZone } from "./components/DropZone.js";
6
+ import { ProgressBar } from "./components/ProgressBar.js";
7
+ import { formatBytes } from "./utils/format.js";
8
+ import { resolveTheme, themeToVars } from "./utils/theme.js";
9
+ export function FileUploader({ bucket, expiresIn, private: isPrivate = true, onUpload, onError, className = "", style, disabled = false, maxSize, accept, multiple = false, theme, renderIcon, renderProgress, renderSuccess, renderError, children, }) {
10
+ const uploadOpts = { private: isPrivate, ...(bucket !== undefined && { bucket }), ...(expiresIn !== undefined && { expiresIn }) };
11
+ const { state, upload, reset } = useUpload(uploadOpts);
12
+ const t = resolveTheme(theme);
13
+ const vars = themeToVars(t);
14
+ const handleFiles = useCallback(async (files) => {
15
+ const file = files[0];
16
+ if (!file)
17
+ return;
18
+ try {
19
+ const result = await upload(file);
20
+ onUpload?.(result);
21
+ }
22
+ catch (err) {
23
+ onError?.(err instanceof Error ? err : new Error(String(err)));
24
+ }
25
+ }, [upload, onUpload, onError]);
26
+ const containerStyle = {
27
+ ...vars,
28
+ display: "flex",
29
+ flexDirection: "column",
30
+ gap: "12px",
31
+ width: "100%",
32
+ fontFamily: "var(--silo-font)",
33
+ ...style,
34
+ };
35
+ if (state.status === "error" && renderError) {
36
+ return _jsx("div", { style: containerStyle, children: renderError(state.error, reset) });
37
+ }
38
+ if (state.status === "done" && renderSuccess) {
39
+ return _jsx("div", { style: containerStyle, children: renderSuccess(state.result) });
40
+ }
41
+ return (_jsxs("div", { className: `silo-file-uploader${className ? ` ${className}` : ""}`, style: containerStyle, children: [_jsx(DropZone, { ...(accept !== undefined && { accept }), ...(maxSize !== undefined && { maxSize }), ...(onError !== undefined && { onError }), ...(theme !== undefined && { theme }), multiple: multiple, disabled: disabled || state.status === "uploading", onFiles: handleFiles, style: { padding: "28px 24px", textAlign: "center" }, children: _jsxs("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: "8px" }, children: [renderIcon ? renderIcon() : (_jsx("svg", { width: "40", height: "40", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", style: { color: "var(--silo-text-muted)", opacity: 0.6 }, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M9 13h6m-3-3v6m5 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" }) })), children ?? (_jsxs(_Fragment, { children: [_jsx("span", { style: { fontWeight: 600, color: "var(--silo-text)" }, children: multiple ? "Drop files here" : "Drop a file here" }), _jsx("span", { style: { fontSize: "13px", color: "var(--silo-text-muted)" }, children: "or click to browse" }), maxSize && _jsxs("span", { style: { fontSize: "12px", color: "var(--silo-text-muted)" }, children: ["Max ", formatBytes(maxSize)] })] }))] }) }), state.status === "uploading" && (_jsx("div", { style: { display: "flex", flexDirection: "column", gap: "6px" }, children: renderProgress ? renderProgress(state.progress) : (_jsxs(_Fragment, { children: [_jsxs("div", { style: { display: "flex", justifyContent: "space-between", fontSize: "13px", color: "var(--silo-text-muted)" }, children: [_jsx("span", { children: "Uploading\u2026" }), _jsxs("span", { children: [state.progress, "%"] })] }), _jsx(ProgressBar, { progress: state.progress })] })) })), state.status === "done" && !renderSuccess && (_jsxs("div", { style: { display: "flex", alignItems: "center", gap: "10px", padding: "10px 14px", borderRadius: "8px", backgroundColor: "rgba(34,197,94,0.08)", border: "1px solid rgba(34,197,94,0.2)", fontSize: "14px" }, children: [_jsx("svg", { width: "18", height: "18", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", style: { color: "#22c55e", flexShrink: 0 }, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }), _jsxs("div", { style: { flex: 1, minWidth: 0 }, children: [_jsx("div", { style: { fontWeight: 500, color: "var(--silo-text)", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: state.result.key }), _jsx("div", { style: { fontSize: "12px", color: "var(--silo-text-muted)" }, children: formatBytes(state.result.size) })] }), _jsx("button", { onClick: (e) => { e.stopPropagation(); reset(); }, style: { background: "none", border: "none", cursor: "pointer", fontSize: "12px", color: "var(--silo-text-muted)", flexShrink: 0 }, children: "Replace" })] })), state.status === "error" && !renderError && (_jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px", padding: "10px 14px", borderRadius: "8px", backgroundColor: "rgba(239,68,68,0.1)", color: "var(--silo-error, #ef4444)", fontSize: "14px" }, children: [_jsx("span", { children: state.error.message }), _jsx("button", { onClick: (e) => { e.stopPropagation(); reset(); }, style: { marginLeft: "auto", background: "none", border: "none", cursor: "pointer", fontSize: "12px" }, children: "Retry" })] }))] }));
42
+ }
43
+ //# sourceMappingURL=FileUploader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploader.js","sourceRoot":"","sources":["../src/FileUploader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ImageUploaderProps } from "./types.js";
2
+ export declare function ImageUploader({ bucket, expiresIn, private: isPrivate, onUpload, onError, className, style, disabled, maxSize, accept, showPreview, theme, renderIcon, renderProgress, renderSuccess, renderError, children, }: ImageUploaderProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ImageUploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageUploader.d.ts","sourceRoot":"","sources":["../src/ImageUploader.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMrD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,OAAO,EAAE,SAAgB,EACzB,QAAQ,EACR,OAAO,EACP,SAAc,EACd,KAAK,EACL,QAAgB,EAChB,OAAO,EACP,MAAkB,EAClB,WAAkB,EAClB,KAAK,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,QAAQ,GACT,EAAE,kBAAkB,2CAmKpB"}
@@ -0,0 +1,71 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useState, useCallback } from "react";
4
+ import { useUpload } from "@silo/nextjs";
5
+ import { DropZone } from "./components/DropZone.js";
6
+ import { ProgressBar } from "./components/ProgressBar.js";
7
+ import { formatBytes } from "./utils/format.js";
8
+ import { resolveTheme, themeToVars } from "./utils/theme.js";
9
+ export function ImageUploader({ bucket, expiresIn, private: isPrivate = true, onUpload, onError, className = "", style, disabled = false, maxSize, accept = "image/*", showPreview = true, theme, renderIcon, renderProgress, renderSuccess, renderError, children, }) {
10
+ const uploadOpts = { private: isPrivate, ...(bucket !== undefined && { bucket }), ...(expiresIn !== undefined && { expiresIn }) };
11
+ const { state, upload, reset } = useUpload(uploadOpts);
12
+ const [preview, setPreview] = useState(null);
13
+ const t = resolveTheme(theme);
14
+ const vars = themeToVars(t);
15
+ const handleFiles = useCallback(async (files) => {
16
+ const file = files[0];
17
+ if (!file)
18
+ return;
19
+ if (showPreview) {
20
+ const url = URL.createObjectURL(file);
21
+ setPreview(url);
22
+ }
23
+ try {
24
+ const result = await upload(file);
25
+ onUpload?.(result);
26
+ }
27
+ catch (err) {
28
+ onError?.(err instanceof Error ? err : new Error(String(err)));
29
+ }
30
+ }, [upload, onUpload, onError, showPreview]);
31
+ const containerStyle = {
32
+ ...vars,
33
+ display: "flex",
34
+ flexDirection: "column",
35
+ gap: "12px",
36
+ width: "100%",
37
+ fontFamily: "var(--silo-font)",
38
+ ...style,
39
+ };
40
+ if (state.status === "error" && renderError) {
41
+ return _jsx("div", { style: containerStyle, children: renderError(state.error, reset) });
42
+ }
43
+ if (state.status === "done" && renderSuccess) {
44
+ return _jsx("div", { style: containerStyle, children: renderSuccess(state.result) });
45
+ }
46
+ return (_jsxs("div", { className: `silo-image-uploader${className ? ` ${className}` : ""}`, style: containerStyle, children: [_jsx(DropZone, { ...(accept !== undefined && { accept }), ...(maxSize !== undefined && { maxSize }), ...(onError !== undefined && { onError }), ...(theme !== undefined && { theme }), disabled: disabled || state.status === "uploading", onFiles: handleFiles, style: { padding: "32px 24px", textAlign: "center" }, children: preview && state.status !== "uploading" ? (_jsxs("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: "8px" }, children: [_jsx("img", { src: preview, alt: "Preview", style: {
47
+ maxWidth: "100%",
48
+ maxHeight: "200px",
49
+ borderRadius: "8px",
50
+ objectFit: "contain",
51
+ } }), _jsx("span", { style: { fontSize: "12px", color: "var(--silo-text-muted)" }, children: "Click or drag to replace" })] })) : (_jsxs("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: "8px" }, children: [renderIcon ? renderIcon() : (_jsx("svg", { width: "40", height: "40", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", style: { color: "var(--silo-text-muted)", opacity: 0.6 }, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, d: "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z" }) })), children ?? (_jsxs(_Fragment, { children: [_jsx("span", { style: { fontWeight: 600, color: "var(--silo-text)" }, children: "Drop image here" }), _jsx("span", { style: { fontSize: "13px", color: "var(--silo-text-muted)" }, children: "or click to browse" }), maxSize && (_jsxs("span", { style: { fontSize: "12px", color: "var(--silo-text-muted)" }, children: ["Max ", formatBytes(maxSize)] }))] }))] })) }), state.status === "uploading" && (_jsx("div", { style: { display: "flex", flexDirection: "column", gap: "6px" }, children: renderProgress ? (renderProgress(state.progress)) : (_jsxs(_Fragment, { children: [_jsxs("div", { style: { display: "flex", justifyContent: "space-between", fontSize: "13px", color: "var(--silo-text-muted)" }, children: [_jsx("span", { children: "Uploading\u2026" }), _jsxs("span", { children: [state.progress, "%"] })] }), _jsx(ProgressBar, { progress: state.progress })] })) })), state.status === "done" && !renderSuccess && (_jsxs("div", { style: {
52
+ display: "flex",
53
+ alignItems: "center",
54
+ gap: "8px",
55
+ padding: "10px 14px",
56
+ borderRadius: "8px",
57
+ backgroundColor: "rgba(34,197,94,0.1)",
58
+ color: "var(--silo-success, #22c55e)",
59
+ fontSize: "14px",
60
+ }, children: [_jsx("svg", { width: "18", height: "18", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }), _jsx("span", { children: "Upload complete" }), _jsx("button", { onClick: (e) => { e.stopPropagation(); reset(); setPreview(null); }, style: { marginLeft: "auto", background: "none", border: "none", cursor: "pointer", fontSize: "12px", color: "var(--silo-text-muted)" }, children: "Upload another" })] })), state.status === "error" && !renderError && (_jsxs("div", { style: {
61
+ display: "flex",
62
+ alignItems: "center",
63
+ gap: "8px",
64
+ padding: "10px 14px",
65
+ borderRadius: "8px",
66
+ backgroundColor: "rgba(239,68,68,0.1)",
67
+ color: "var(--silo-error, #ef4444)",
68
+ fontSize: "14px",
69
+ }, children: [_jsx("svg", { width: "18", height: "18", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }), _jsx("span", { children: state.error.message }), _jsx("button", { onClick: (e) => { e.stopPropagation(); reset(); }, style: { marginLeft: "auto", background: "none", border: "none", cursor: "pointer", fontSize: "12px", color: "var(--silo-text-muted)" }, children: "Retry" })] }))] }));
70
+ }
71
+ //# sourceMappingURL=ImageUploader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageUploader.js","sourceRoot":"","sources":["../src/ImageUploader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { MediaUploaderProps } from "./types.js";
2
+ export declare function MediaUploader({ tabs, defaultTab, imageProps, videoProps, fileProps, className, style, theme, onUpload, onError, ...shared }: MediaUploaderProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=MediaUploader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaUploader.d.ts","sourceRoot":"","sources":["../src/MediaUploader.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAcrD,wBAAgB,aAAa,CAAC,EAC5B,IAAiC,EACjC,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAc,EACd,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,GAAG,MAAM,EACV,EAAE,kBAAkB,2CAkFpB"}
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { ImageUploader } from "./ImageUploader.js";
5
+ import { VideoUploader } from "./VideoUploader.js";
6
+ import { FileUploader } from "./FileUploader.js";
7
+ import { resolveTheme, themeToVars } from "./utils/theme.js";
8
+ const TAB_LABELS = {
9
+ image: { label: "Image", icon: "🖼️" },
10
+ video: { label: "Video", icon: "🎬" },
11
+ file: { label: "File", icon: "📎" },
12
+ };
13
+ export function MediaUploader({ tabs = ["image", "video", "file"], defaultTab, imageProps, videoProps, fileProps, className = "", style, theme, onUpload, onError, ...shared }) {
14
+ const [activeTab, setActiveTab] = useState(defaultTab ?? tabs[0] ?? "image");
15
+ const t = resolveTheme(theme);
16
+ const vars = themeToVars(t);
17
+ const containerStyle = {
18
+ ...vars,
19
+ display: "flex",
20
+ flexDirection: "column",
21
+ gap: "0",
22
+ width: "100%",
23
+ fontFamily: "var(--silo-font)",
24
+ border: "1px solid var(--silo-border)",
25
+ borderRadius: "var(--silo-radius)",
26
+ overflow: "hidden",
27
+ backgroundColor: "var(--silo-bg)",
28
+ ...style,
29
+ };
30
+ return (_jsxs("div", { className: `silo-media-uploader${className ? ` ${className}` : ""}`, style: containerStyle, children: [_jsx("div", { style: { display: "flex", borderBottom: "1px solid var(--silo-border)" }, children: tabs.map((tab) => (_jsxs("button", { onClick: () => setActiveTab(tab), style: {
31
+ flex: 1,
32
+ padding: "10px 8px",
33
+ background: "none",
34
+ border: "none",
35
+ borderBottom: `2px solid ${activeTab === tab ? "var(--silo-accent)" : "transparent"}`,
36
+ cursor: "pointer",
37
+ fontSize: "13px",
38
+ fontWeight: activeTab === tab ? 600 : 400,
39
+ color: activeTab === tab ? "var(--silo-accent)" : "var(--silo-text-muted)",
40
+ transition: "color 0.15s, border-color 0.15s",
41
+ display: "flex",
42
+ alignItems: "center",
43
+ justifyContent: "center",
44
+ gap: "6px",
45
+ }, children: [_jsx("span", { children: TAB_LABELS[tab].icon }), _jsx("span", { children: TAB_LABELS[tab].label })] }, tab))) }), _jsxs("div", { style: { padding: "16px" }, children: [activeTab === "image" && (_jsx(ImageUploader, { ...shared, ...imageProps, ...(theme !== undefined && { theme }), ...(onUpload !== undefined && { onUpload }), ...(onError !== undefined && { onError }) })), activeTab === "video" && (_jsx(VideoUploader, { ...shared, ...videoProps, ...(theme !== undefined && { theme }), ...(onUpload !== undefined && { onUpload }), ...(onError !== undefined && { onError }) })), activeTab === "file" && (_jsx(FileUploader, { ...shared, ...fileProps, ...(theme !== undefined && { theme }), ...(onUpload !== undefined && { onUpload }), ...(onError !== undefined && { onError }) }))] })] }));
46
+ }
47
+ //# sourceMappingURL=MediaUploader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaUploader.js","sourceRoot":"","sources":["../src/MediaUploader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { ReactNode } from "react";
2
+ export type VideoSourceType = "dash" | "hls" | "file";
3
+ export type SourceProps = {
4
+ id?: string;
5
+ src: string;
6
+ label?: string;
7
+ type?: VideoSourceType;
8
+ default?: boolean;
9
+ };
10
+ export type SourcesProps = {
11
+ children: ReactNode;
12
+ };
13
+ export type SubtitleProps = {
14
+ src: string;
15
+ srclang: string;
16
+ label: string;
17
+ default?: boolean;
18
+ };
19
+ export type SubtitlesProps = {
20
+ children: ReactNode;
21
+ };
22
+ export type StoryboardFrameProps = {
23
+ start: number;
24
+ end: number;
25
+ image: string;
26
+ x?: number;
27
+ y?: number;
28
+ w?: number;
29
+ h?: number;
30
+ };
31
+ export type StoryboardProps = {
32
+ src?: string;
33
+ fallbackImage?: string;
34
+ width?: number;
35
+ height?: number;
36
+ children?: ReactNode;
37
+ };
38
+ type VideoProps = {
39
+ title?: string;
40
+ description?: string;
41
+ poster?: string;
42
+ children: ReactNode;
43
+ className?: string;
44
+ autoHideControls?: boolean;
45
+ defaultVolume?: number;
46
+ };
47
+ export declare function Sources(_props: SourcesProps): null;
48
+ export declare function Source(_props: SourceProps): null;
49
+ export declare function Subtitles(_props: SubtitlesProps): null;
50
+ export declare function Subtitle(_props: SubtitleProps): null;
51
+ export declare function Storyboard(_props: StoryboardProps): null;
52
+ export declare function StoryboardFrame(_props: StoryboardFrameProps): null;
53
+ export declare function Video({ title, description, poster, children, className, autoHideControls, defaultVolume, }: VideoProps): import("react/jsx-runtime").JSX.Element;
54
+ export declare const VideoPlayer: typeof Video;
55
+ export {};
56
+ //# sourceMappingURL=VideoPlayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoPlayer.d.ts","sourceRoot":"","sources":["../src/VideoPlayer.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAIV,SAAS,EACV,MAAM,OAAO,CAAC;AAGf,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtD,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAmBF,KAAK,UAAU,GAAG;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAQF,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,QAE3C;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,WAAW,QAEzC;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,QAE/C;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,QAE7C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,eAAe,QAEjD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,oBAAoB,QAE3D;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,SAAS,EACT,gBAAuB,EACvB,aAAoB,GACrB,EAAE,UAAU,2CAw8BZ;AAED,eAAO,MAAM,WAAW,cAAQ,CAAC"}