welcome-ui
Version:
Customizable design system with react, typescript, tailwindcss and ariakit.
131 lines (130 loc) • 3.63 kB
JavaScript
"use client";
const n = {
"7z": "application/x-7z-compressed",
aac: "audio/aac",
aif: "audio/x-aiff",
aifc: "audio/x-aiff",
aiff: "audio/x-aiff",
au: "audio/basic",
avi: "video/x-msvideo",
bmp: "image/x-ms-bmp",
bz: "application/x-bzip",
bz2: "application/x-bzip2",
csv: "text/csv",
doc: "application/msword",
docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
gif: "image/gif",
gz: "application/gzip",
ico: "image/x-icon",
jpe: "image/jpeg",
jpeg: "image/jpeg",
jpg: "image/jpeg",
m1v: "video/mpeg",
mid: "audio/midi",
midi: "audio/x-midi",
mov: "video/quicktime",
movie: "video/x-sgi-movie",
mp2: "audio/mpeg",
mp3: "audio/mpeg",
mp4: "video/mp4",
mpa: "video/mpeg",
mpe: "video/mpeg",
mpeg: "video/mpeg",
mpg: "video/mpeg",
pbm: "image/x-portable-bitmap",
pdf: "application/pdf",
pgm: "image/x-portable-graymap",
png: "image/png",
pnm: "image/x-portable-anymap",
pot: "application/vnd.ms-powerpoint",
ppa: "application/vnd.ms-powerpoint",
ppm: "image/x-portable-pixmap",
pps: "application/vnd.ms-powerpoint",
ppt: "application/vnd.ms-powerpoint",
pptx: "application/vnd.openxmlformats-officedocument.presentationml.presentation",
ps: "application/postscript",
pwz: "application/vnd.ms-powerpoint",
qt: "video/quicktime",
ra: "audio/x-pn-realaudio",
rar: "application/vnd.rar",
ras: "image/x-cmu-raster",
rgb: "image/x-rgb",
snd: "audio/basic",
svg: "image/svg+xml",
tif: "image/tiff",
tiff: "image/tiff",
wav: "audio/x-wav",
weba: "audio/webm",
webm: "video/webm",
webp: "image/webp",
wiz: "application/msword",
xbm: "image/x-xbitmap",
xls: "application/vnd.ms-excel",
xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
xpm: "image/x-xpixmap",
xwd: "image/x-xwindowdump",
zip: "application/zip"
}, m = (i, a = 2) => {
if (i === 0)
return "0 Bytes";
const e = 1024, t = a < 0 ? 0 : a, o = ["Bytes", "KB", "MB", "GB"], p = Math.floor(Math.log(i) / Math.log(e));
return parseFloat((i / Math.pow(e, p)).toFixed(t)) + " " + o[p];
};
function d(i, a) {
const e = r(i);
if (!a && !e)
return "paperclip";
if (a === "image" || e && e.startsWith("image/"))
return "camera";
if (a === "audio" || e && e.startsWith("audio/"))
return "music";
if (a === "video" || e && e.startsWith("video/"))
return "play";
switch (e) {
case "application/gzip":
case "application/vnd.rar":
case "application/x-7z-compressed":
case "application/x-bzip":
case "application/x-bzip2":
case "application/zip":
return "file";
case "application/msword":
return "file";
case "application/pdf":
return "file";
case "application/vnd.ms-excel":
return "file";
case "application/vnd.ms-powerpoint":
case "application/vnd.openxmlformats-officedocument.presentationml.presentation":
return "file";
case "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":
return "file";
case "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
return "file";
case "text/csv":
return "file";
default:
return "paperclip";
}
}
function s(i) {
return typeof i == "string" ? c(i).split("/").pop() : i.name;
}
function l(i) {
return i instanceof File && i.size ? m(i.size, 0) : null;
}
function r(i) {
if (typeof i == "string") {
const a = s(i).split(".").pop();
return n[a] || null;
} else
return i.type;
}
function c(i) {
return i.split("?")[0];
}
export {
l as a,
s as b,
d as g
};