@oneplatformdev/ui 0.1.99-beta.268 → 0.1.99-beta.269
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.
|
@@ -83,7 +83,7 @@ const C = (e) => {
|
|
|
83
83
|
{
|
|
84
84
|
src: l,
|
|
85
85
|
alt: m?.toString(),
|
|
86
|
-
className: "w-full h-full object-
|
|
86
|
+
className: "w-full h-full object-contain rounded-lg"
|
|
87
87
|
}
|
|
88
88
|
)
|
|
89
89
|
] }) : a ? null : /* @__PURE__ */ c("div", { className: "relative w-full h-64 sm:h-80 md:h-96 overflow-hidden outline-[#E4E4E7] outline-2 outline-dashed -outline-offset-1 rounded-lg", children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropzoneSinglePickPreview.js","sources":["../../src/Dropzone/DropzoneSinglePickPreview.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\r\nimport { DropzoneValueItem } from './Dropzone.types';\r\nimport { isFile } from './DropzoneUtils';\r\nimport { FileIcon, PencilIcon, Trash2, Video, X } from 'lucide-react';\r\nimport { MediaPlayer, MediaProvider } from '@vidstack/react';\r\nimport { defaultLayoutIcons, DefaultVideoLayout } from '@vidstack/react/player/layouts/default';\r\nimport { Button } from '../Button/Button';\r\n\r\nimport '@vidstack/react/player/styles/base.css';\r\nimport '@vidstack/react/player/styles/default/theme.css';\r\nimport '@vidstack/react/player/styles/default/layouts/video.css';\r\nimport './DropzoneSinglePickPreview.css';\r\nimport { ButtonIcon } from \"../ButtonIcon\";\r\n\r\nexport const transformImageToSrc = (preview?: string | File | null): string => {\r\n if (!preview) return '';\r\n switch (true) {\r\n case typeof preview === 'string' && !!preview.trim() && preview !== 'null':\r\n return preview;\r\n case preview instanceof File:\r\n return URL.createObjectURL(preview);\r\n case preview instanceof FileList:\r\n return preview[0] ? URL.createObjectURL(preview[0]) : '';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nconst isYoutubeUrl = (value?: string | null) => {\r\n if (!value) return false;\r\n try {\r\n const url = new URL(value);\r\n const hostname = url.hostname.toLowerCase();\r\n return hostname.includes('youtube.com') || hostname.includes('youtu.be');\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nconst extractYoutubeId = (value: string) => {\r\n try {\r\n const url = new URL(value);\r\n const hostname = url.hostname.toLowerCase();\r\n\r\n if (hostname.includes('youtu.be')) {\r\n return url.pathname.replace('/', '').trim();\r\n }\r\n\r\n const searchId = url.searchParams.get('v');\r\n if (searchId) return searchId.trim();\r\n\r\n const pathParts = url.pathname.split('/').filter(Boolean);\r\n const embedIndex = pathParts.findIndex((part) => part === 'embed');\r\n if (embedIndex >= 0 && pathParts[embedIndex + 1]) {\r\n return pathParts[embedIndex + 1].trim();\r\n }\r\n\r\n return '';\r\n } catch {\r\n return '';\r\n }\r\n};\r\n\r\ninterface SinglePickPreviewProps {\r\n item: DropzoneValueItem;\r\n disabled?: boolean;\r\n onRemoveClick: (e: React.MouseEvent<HTMLElement>) => void;\r\n onReplaceClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\r\n labelUploaded?: string;\r\n labelReplace?: string;\r\n}\r\n\r\nexport const DropzoneSinglePickPreview = ({\r\n item,\r\n disabled,\r\n onRemoveClick,\r\n onReplaceClick,\r\n labelReplace = 'Замінити',\r\n}: SinglePickPreviewProps) => {\r\n const [previewUrl, setPreviewUrl] = useState('');\r\n const isFileType = isFile(item);\r\n const fileName = isFileType ? item.name : item;\r\n\r\n const isYoutubeVideo = useMemo(\r\n () => typeof item === 'string' && isYoutubeUrl(item),\r\n [item]\r\n );\r\n const youtubeSource = useMemo(() => {\r\n if (!isYoutubeVideo || typeof item !== 'string') return '';\r\n const id = extractYoutubeId(item);\r\n return id ? `youtube/${id}` : item;\r\n }, [isYoutubeVideo, item]);\r\n\r\n const showImage = useMemo(() => {\r\n return (isFileType && item.type?.includes('image')) || (typeof item === 'string' && !isYoutubeVideo);\r\n }, [item, isFileType, isYoutubeVideo]);\r\n\r\n const showVideo = useMemo(() => {\r\n return (isFileType && item.type?.includes('video')) || isYoutubeVideo;\r\n }, [item, isFileType, isYoutubeVideo]);\r\n\r\n const fileSize = useMemo(() => {\r\n if (!isFileType) return '';\r\n return `${(item.size / (1024 * 1024)).toFixed(0)} MB`;\r\n }, [item, isFileType]);\r\n\r\n useEffect(() => {\r\n if (showImage || showVideo) {\r\n const nextPreview = transformImageToSrc(item);\r\n setPreviewUrl(nextPreview);\r\n\r\n if (isFileType && nextPreview) {\r\n return () => URL.revokeObjectURL(nextPreview);\r\n }\r\n } else {\r\n setPreviewUrl('');\r\n }\r\n\r\n return undefined;\r\n }, [item, isFileType, showImage, showVideo]);\r\n\r\n return (\r\n <div className=\"relative w-full overflow-hidden\">\r\n {showVideo && previewUrl ? (\r\n <div className=\"w-full h-64 sm:h-80 md:h-96 rounded-lg overflow-hidden bg-black\" onClick={(event) => event.stopPropagation()}>\r\n <MediaPlayer\r\n src={\r\n isYoutubeVideo\r\n ? youtubeSource\r\n : { src: previewUrl, type: isFileType ? item.type : undefined }\r\n }\r\n className={`h-full w-full bg-black text-white ${\r\n isYoutubeVideo ? 'dropzone-youtube-player' : ''\r\n }`}\r\n playsInline\r\n >\r\n <MediaProvider />\r\n <DefaultVideoLayout icons={defaultLayoutIcons} />\r\n </MediaPlayer>\r\n </div>\r\n ) : !showVideo && previewUrl ? (\r\n <div className=\"relative w-full h-64 sm:h-80 md:h-96 overflow-hidden outline-[#E4E4E7] outline-2 outline-dashed -outline-offset-1 rounded-lg\">\r\n {!disabled && (\r\n <div className=\"absolute top-2 right-2 cursor-pointer bg-white/70 rounded-[4px] p-1 shadow-sm\" onClick={onRemoveClick} >\r\n <X size={16} strokeWidth={2} color=\"black\" />\r\n </div>\r\n )}\r\n <img\r\n src={previewUrl}\r\n alt={fileName?.toString()}\r\n className=\"w-full h-full object-cover rounded-lg \"\r\n />\r\n </div>\r\n ) : !showVideo ? (\r\n <div className=\"relative w-full h-64 sm:h-80 md:h-96 overflow-hidden outline-[#E4E4E7] outline-2 outline-dashed -outline-offset-1 rounded-lg\">\r\n {!disabled && (\r\n <div className=\"absolute top-2 right-2 cursor-pointer bg-white/70 rounded-[4px] p-1 shadow-sm\" onClick={onRemoveClick} >\r\n <X size={16} strokeWidth={2} color=\"black\" />\r\n </div>\r\n )}\r\n <div className=\"w-full h-full flex flex-col items-center justify-center text-gray-600\">\r\n <FileIcon size={28} />\r\n <span className=\"text-sm mt-2 break-all px-2 text-center\">\r\n {fileName?.toString()}\r\n </span>\r\n </div>\r\n </div>\r\n ) : null}\r\n\r\n {showVideo && !isYoutubeVideo && (\r\n <div\r\n className=\"mt-2 w-full h-auto min-h-14 rounded-[8px] border border-[#E8E9EB] bg-[#FCFCFC] p-2 flex items-center gap-4\"\r\n onClick={(event) => event.stopPropagation()}\r\n >\r\n <div className=\"size-10 rounded-[8px] bg-[#9368FF1F] flex items-center justify-center shrink-0\">\r\n <Video className=\"size-6 text-[#06080D]\" />\r\n </div>\r\n\r\n <div className=\"flex flex-col items-start text-left gap-1 min-w-0 flex-1 justify-start\">\r\n <span className=\"w-full text-[14px] font-semibold leading-[125%] text-[#06080D] truncate text-left\">\r\n {fileName?.toString()}\r\n </span>\r\n <span className=\"w-full text-[12px] font-medium leading-[120%] text-[#363B4E] text-left\">\r\n {fileSize}\r\n </span>\r\n </div>\r\n\r\n {!disabled && (\r\n <Button\r\n type=\"button\"\r\n color=\"secondary\"\r\n startAdornment={PencilIcon}\r\n size=\"md\"\r\n onClick={(event) => {\r\n event.stopPropagation();\r\n onReplaceClick?.(event);\r\n }}\r\n >\r\n {labelReplace}\r\n </Button>\r\n )}\r\n\r\n {!disabled && (\r\n <ButtonIcon\r\n icon={Trash2}\r\n variant=\"outlined\"\r\n size=\"md\"\r\n color=\"secondary\"\r\n onClick={onRemoveClick}\r\n />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n"],"names":["transformImageToSrc","preview","isYoutubeUrl","value","hostname","extractYoutubeId","url","searchId","pathParts","embedIndex","part","DropzoneSinglePickPreview","item","disabled","onRemoveClick","onReplaceClick","labelReplace","previewUrl","setPreviewUrl","useState","isFileType","isFile","fileName","isYoutubeVideo","useMemo","youtubeSource","id","showImage","showVideo","fileSize","useEffect","nextPreview","jsxs","jsx","event","MediaPlayer","MediaProvider","DefaultVideoLayout","defaultLayoutIcons","X","FileIcon","Video","Button","PencilIcon","ButtonIcon","Trash2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DropzoneSinglePickPreview.js","sources":["../../src/Dropzone/DropzoneSinglePickPreview.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\r\nimport { DropzoneValueItem } from './Dropzone.types';\r\nimport { isFile } from './DropzoneUtils';\r\nimport { FileIcon, PencilIcon, Trash2, Video, X } from 'lucide-react';\r\nimport { MediaPlayer, MediaProvider } from '@vidstack/react';\r\nimport { defaultLayoutIcons, DefaultVideoLayout } from '@vidstack/react/player/layouts/default';\r\nimport { Button } from '../Button/Button';\r\n\r\nimport '@vidstack/react/player/styles/base.css';\r\nimport '@vidstack/react/player/styles/default/theme.css';\r\nimport '@vidstack/react/player/styles/default/layouts/video.css';\r\nimport './DropzoneSinglePickPreview.css';\r\nimport { ButtonIcon } from \"../ButtonIcon\";\r\n\r\nexport const transformImageToSrc = (preview?: string | File | null): string => {\r\n if (!preview) return '';\r\n switch (true) {\r\n case typeof preview === 'string' && !!preview.trim() && preview !== 'null':\r\n return preview;\r\n case preview instanceof File:\r\n return URL.createObjectURL(preview);\r\n case preview instanceof FileList:\r\n return preview[0] ? URL.createObjectURL(preview[0]) : '';\r\n default:\r\n return '';\r\n }\r\n};\r\n\r\nconst isYoutubeUrl = (value?: string | null) => {\r\n if (!value) return false;\r\n try {\r\n const url = new URL(value);\r\n const hostname = url.hostname.toLowerCase();\r\n return hostname.includes('youtube.com') || hostname.includes('youtu.be');\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nconst extractYoutubeId = (value: string) => {\r\n try {\r\n const url = new URL(value);\r\n const hostname = url.hostname.toLowerCase();\r\n\r\n if (hostname.includes('youtu.be')) {\r\n return url.pathname.replace('/', '').trim();\r\n }\r\n\r\n const searchId = url.searchParams.get('v');\r\n if (searchId) return searchId.trim();\r\n\r\n const pathParts = url.pathname.split('/').filter(Boolean);\r\n const embedIndex = pathParts.findIndex((part) => part === 'embed');\r\n if (embedIndex >= 0 && pathParts[embedIndex + 1]) {\r\n return pathParts[embedIndex + 1].trim();\r\n }\r\n\r\n return '';\r\n } catch {\r\n return '';\r\n }\r\n};\r\n\r\ninterface SinglePickPreviewProps {\r\n item: DropzoneValueItem;\r\n disabled?: boolean;\r\n onRemoveClick: (e: React.MouseEvent<HTMLElement>) => void;\r\n onReplaceClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\r\n labelUploaded?: string;\r\n labelReplace?: string;\r\n}\r\n\r\nexport const DropzoneSinglePickPreview = ({\r\n item,\r\n disabled,\r\n onRemoveClick,\r\n onReplaceClick,\r\n labelReplace = 'Замінити',\r\n}: SinglePickPreviewProps) => {\r\n const [previewUrl, setPreviewUrl] = useState('');\r\n const isFileType = isFile(item);\r\n const fileName = isFileType ? item.name : item;\r\n\r\n const isYoutubeVideo = useMemo(\r\n () => typeof item === 'string' && isYoutubeUrl(item),\r\n [item]\r\n );\r\n const youtubeSource = useMemo(() => {\r\n if (!isYoutubeVideo || typeof item !== 'string') return '';\r\n const id = extractYoutubeId(item);\r\n return id ? `youtube/${id}` : item;\r\n }, [isYoutubeVideo, item]);\r\n\r\n const showImage = useMemo(() => {\r\n return (isFileType && item.type?.includes('image')) || (typeof item === 'string' && !isYoutubeVideo);\r\n }, [item, isFileType, isYoutubeVideo]);\r\n\r\n const showVideo = useMemo(() => {\r\n return (isFileType && item.type?.includes('video')) || isYoutubeVideo;\r\n }, [item, isFileType, isYoutubeVideo]);\r\n\r\n const fileSize = useMemo(() => {\r\n if (!isFileType) return '';\r\n return `${(item.size / (1024 * 1024)).toFixed(0)} MB`;\r\n }, [item, isFileType]);\r\n\r\n useEffect(() => {\r\n if (showImage || showVideo) {\r\n const nextPreview = transformImageToSrc(item);\r\n setPreviewUrl(nextPreview);\r\n\r\n if (isFileType && nextPreview) {\r\n return () => URL.revokeObjectURL(nextPreview);\r\n }\r\n } else {\r\n setPreviewUrl('');\r\n }\r\n\r\n return undefined;\r\n }, [item, isFileType, showImage, showVideo]);\r\n\r\n return (\r\n <div className=\"relative w-full overflow-hidden\">\r\n {showVideo && previewUrl ? (\r\n <div className=\"w-full h-64 sm:h-80 md:h-96 rounded-lg overflow-hidden bg-black\" onClick={(event) => event.stopPropagation()}>\r\n <MediaPlayer\r\n src={\r\n isYoutubeVideo\r\n ? youtubeSource\r\n : { src: previewUrl, type: isFileType ? item.type : undefined }\r\n }\r\n className={`h-full w-full bg-black text-white ${\r\n isYoutubeVideo ? 'dropzone-youtube-player' : ''\r\n }`}\r\n playsInline\r\n >\r\n <MediaProvider />\r\n <DefaultVideoLayout icons={defaultLayoutIcons} />\r\n </MediaPlayer>\r\n </div>\r\n ) : !showVideo && previewUrl ? (\r\n <div className=\"relative w-full h-64 sm:h-80 md:h-96 overflow-hidden outline-[#E4E4E7] outline-2 outline-dashed -outline-offset-1 rounded-lg\">\r\n {!disabled && (\r\n <div className=\"absolute top-2 right-2 cursor-pointer bg-white/70 rounded-[4px] p-1 shadow-sm\" onClick={onRemoveClick} >\r\n <X size={16} strokeWidth={2} color=\"black\" />\r\n </div>\r\n )}\r\n <img\r\n src={previewUrl}\r\n alt={fileName?.toString()}\r\n className=\"w-full h-full object-contain rounded-lg\"\r\n />\r\n </div>\r\n ) : !showVideo ? (\r\n <div className=\"relative w-full h-64 sm:h-80 md:h-96 overflow-hidden outline-[#E4E4E7] outline-2 outline-dashed -outline-offset-1 rounded-lg\">\r\n {!disabled && (\r\n <div className=\"absolute top-2 right-2 cursor-pointer bg-white/70 rounded-[4px] p-1 shadow-sm\" onClick={onRemoveClick} >\r\n <X size={16} strokeWidth={2} color=\"black\" />\r\n </div>\r\n )}\r\n <div className=\"w-full h-full flex flex-col items-center justify-center text-gray-600\">\r\n <FileIcon size={28} />\r\n <span className=\"text-sm mt-2 break-all px-2 text-center\">\r\n {fileName?.toString()}\r\n </span>\r\n </div>\r\n </div>\r\n ) : null}\r\n\r\n {showVideo && !isYoutubeVideo && (\r\n <div\r\n className=\"mt-2 w-full h-auto min-h-14 rounded-[8px] border border-[#E8E9EB] bg-[#FCFCFC] p-2 flex items-center gap-4\"\r\n onClick={(event) => event.stopPropagation()}\r\n >\r\n <div className=\"size-10 rounded-[8px] bg-[#9368FF1F] flex items-center justify-center shrink-0\">\r\n <Video className=\"size-6 text-[#06080D]\" />\r\n </div>\r\n\r\n <div className=\"flex flex-col items-start text-left gap-1 min-w-0 flex-1 justify-start\">\r\n <span className=\"w-full text-[14px] font-semibold leading-[125%] text-[#06080D] truncate text-left\">\r\n {fileName?.toString()}\r\n </span>\r\n <span className=\"w-full text-[12px] font-medium leading-[120%] text-[#363B4E] text-left\">\r\n {fileSize}\r\n </span>\r\n </div>\r\n\r\n {!disabled && (\r\n <Button\r\n type=\"button\"\r\n color=\"secondary\"\r\n startAdornment={PencilIcon}\r\n size=\"md\"\r\n onClick={(event) => {\r\n event.stopPropagation();\r\n onReplaceClick?.(event);\r\n }}\r\n >\r\n {labelReplace}\r\n </Button>\r\n )}\r\n\r\n {!disabled && (\r\n <ButtonIcon\r\n icon={Trash2}\r\n variant=\"outlined\"\r\n size=\"md\"\r\n color=\"secondary\"\r\n onClick={onRemoveClick}\r\n />\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n"],"names":["transformImageToSrc","preview","isYoutubeUrl","value","hostname","extractYoutubeId","url","searchId","pathParts","embedIndex","part","DropzoneSinglePickPreview","item","disabled","onRemoveClick","onReplaceClick","labelReplace","previewUrl","setPreviewUrl","useState","isFileType","isFile","fileName","isYoutubeVideo","useMemo","youtubeSource","id","showImage","showVideo","fileSize","useEffect","nextPreview","jsxs","jsx","event","MediaPlayer","MediaProvider","DefaultVideoLayout","defaultLayoutIcons","X","FileIcon","Video","Button","PencilIcon","ButtonIcon","Trash2"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oneplatformdev/ui",
|
|
3
|
-
"version": "0.1.99-beta.
|
|
3
|
+
"version": "0.1.99-beta.269",
|
|
4
4
|
"description": "UI component library for OnePlatform",
|
|
5
5
|
"author": "One Platform Development Team",
|
|
6
6
|
"keywords": [
|
|
@@ -109,9 +109,9 @@
|
|
|
109
109
|
"recharts": "^3.2.0",
|
|
110
110
|
"sonner": "^2.0.7",
|
|
111
111
|
"vaul": "^1.1.2",
|
|
112
|
-
"@oneplatformdev/tokens": "^0.1.99-beta.
|
|
113
|
-
"@oneplatformdev/
|
|
114
|
-
"@oneplatformdev/
|
|
112
|
+
"@oneplatformdev/tokens": "^0.1.99-beta.269",
|
|
113
|
+
"@oneplatformdev/utils": "^0.1.99-beta.269",
|
|
114
|
+
"@oneplatformdev/hooks": "^0.1.99-beta.269"
|
|
115
115
|
},
|
|
116
116
|
"scripts": {
|
|
117
117
|
"chromatic": "chromatic"
|