@levo-so/react 0.1.85 → 0.1.105

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 (34) hide show
  1. package/dist/audience/components/block.js +31 -0
  2. package/dist/audience/components/component.js +19 -0
  3. package/dist/audience/components/page.js +16 -0
  4. package/dist/components/Dialog.js +57 -0
  5. package/dist/components/DialogWrapper.js +20 -0
  6. package/dist/components/Sonner.d.ts +1 -1
  7. package/dist/components/Sonner.d.ts.map +1 -1
  8. package/dist/components/Sonner.js +32 -0
  9. package/dist/components/Spinner.js +7 -0
  10. package/dist/components/Tabs.js +27 -0
  11. package/dist/components/Tooltip.js +24 -0
  12. package/dist/components/button/Button.js +24 -0
  13. package/dist/components/button/buttonVariants.d.ts +1 -1
  14. package/dist/components/button/buttonVariants.d.ts.map +1 -1
  15. package/dist/components/button/buttonVariants.js +38 -0
  16. package/dist/constants/fileUploadPresets.js +80 -0
  17. package/dist/index.js +24 -495
  18. package/dist/membership/components/Button.js +22 -0
  19. package/dist/membership/components/Container.js +59 -0
  20. package/dist/membership/components/Core.js +18 -0
  21. package/dist/membership/components/Popup.js +37 -0
  22. package/dist/membership/index.js +10 -0
  23. package/dist/membership/useLevoOAuth.js +57 -0
  24. package/dist/providers/LevoProvider.js +20 -0
  25. package/dist/styles/index.css +2 -0
  26. package/dist/utils/byteToSize.js +18 -0
  27. package/dist/utils/cn.js +6 -0
  28. package/dist/utils/errorHandler.js +9 -0
  29. package/dist/utils/isDateObject.js +4 -0
  30. package/dist/utils/isEmptyObject.js +5 -0
  31. package/dist/utils/isNullOrUndefined.js +4 -0
  32. package/dist/utils/isObject.js +6 -0
  33. package/package.json +32 -32
  34. package/dist/index.css +0 -2
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { useLevo as e, useLevoInsights as t } from "../../providers/LevoProvider.js";
3
+ import { getLevoError as n } from "@levo-so/core";
4
+ import { useEffect as r, useRef as i } from "react";
5
+ //#region src/audience/components/block.tsx
6
+ var a = ({ id: a, properties: o = {} }) => {
7
+ let { logger: s } = e(), c = t(), l = i(!1), u = i(o);
8
+ return u.current = o, r(() => {
9
+ if (l.current || typeof c?.track != "function") return;
10
+ let e = document.getElementById(a);
11
+ if (!e) return;
12
+ let t = new IntersectionObserver((e) => {
13
+ for (let r of e) if (r.isIntersecting && !l.current) try {
14
+ c.track("block.view", {
15
+ ...u.current,
16
+ resource: "block",
17
+ identifier: a
18
+ }), l.current = !0, t.disconnect();
19
+ } catch (e) {
20
+ s?.error("[LevoAudienceBlock] track failed", { exception: n(e) });
21
+ }
22
+ }, { threshold: 0 });
23
+ return t.observe(e), () => t.disconnect();
24
+ }, [
25
+ c,
26
+ a,
27
+ s
28
+ ]), null;
29
+ };
30
+ //#endregion
31
+ export { a as default };
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { useLevo as e, useLevoInsights as t } from "../../providers/LevoProvider.js";
3
+ import { getLevoError as n } from "@levo-so/core";
4
+ import { useEffect as r, useRef as i } from "react";
5
+ //#region src/audience/components/component.tsx
6
+ var a = ({ event: a, properties: o }) => {
7
+ let { logger: s } = e(), c = t(), l = i(!1), u = i(a);
8
+ u.current = a;
9
+ let d = i(o);
10
+ return d.current = o, r(() => {
11
+ if (!(l.current || !c)) try {
12
+ c.track(u.current, d.current), l.current = !0;
13
+ } catch (e) {
14
+ s?.error("[LevoAudienceComponent] track failed", { exception: n(e) });
15
+ }
16
+ }, [c, s]), null;
17
+ };
18
+ //#endregion
19
+ export { a as default };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import { useLevo as e, useLevoInsights as t } from "../../providers/LevoProvider.js";
3
+ import { useEffect as n } from "react";
4
+ //#region src/audience/components/page.tsx
5
+ var r = ({ id: r }) => {
6
+ let i = e(), a = t();
7
+ return n(() => {
8
+ i && typeof window < "u" && (window.levo_client = i);
9
+ }, [i]), n(() => {
10
+ a && typeof window < "u" && (window.levo_insights = a);
11
+ }, [a]), n(() => {
12
+ a && a.init({ pageId: r });
13
+ }, [a, r]), null;
14
+ };
15
+ //#endregion
16
+ export { r as default };
@@ -0,0 +1,57 @@
1
+ "use client";
2
+ import e from "../utils/cn.js";
3
+ import * as t from "react";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ import { Dialog as i } from "radix-ui";
6
+ import { X as a } from "lucide-react";
7
+ //#region src/components/Dialog.tsx
8
+ var o = i.Root, s = i.Trigger, c = i.Portal, l = i.Close, u = t.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ n(i.Overlay, {
9
+ ref: a,
10
+ className: e("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 grid max-h-screen place-items-center overflow-y-auto bg-background/80 py-10 backdrop-blur-sm data-[state=closed]:animate-out data-[state=open]:animate-in", t),
11
+ ...r
12
+ }));
13
+ u.displayName = i.Overlay.displayName;
14
+ var d = t.forwardRef(({ className: t, children: o, container: s, hideCloseButton: l, overlayStyles: d, ...f }, p) => /* @__PURE__ */ n(c, {
15
+ container: s,
16
+ children: /* @__PURE__ */ n(u, {
17
+ className: d,
18
+ children: /* @__PURE__ */ r(i.Content, {
19
+ ref: p,
20
+ className: e("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 relative z-50 grid w-full max-w-lg gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:rounded-lg", t),
21
+ ...f,
22
+ children: [o, !l && /* @__PURE__ */ r(i.Close, {
23
+ type: "button",
24
+ className: "absolute top-4 right-4 rounded-sm p-1 opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",
25
+ children: [/* @__PURE__ */ n(a, { className: "h-4 w-4" }), /* @__PURE__ */ n("span", {
26
+ className: "sr-only",
27
+ children: "Close"
28
+ })]
29
+ })]
30
+ })
31
+ })
32
+ }));
33
+ d.displayName = i.Content.displayName;
34
+ var f = ({ className: t, ...r }) => /* @__PURE__ */ n("div", {
35
+ className: e("flex flex-col space-y-1.5 text-center sm:text-left", t),
36
+ ...r
37
+ });
38
+ f.displayName = "DialogHeader";
39
+ var p = ({ className: t, ...r }) => /* @__PURE__ */ n("div", {
40
+ className: e("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t),
41
+ ...r
42
+ });
43
+ p.displayName = "DialogFooter";
44
+ var m = t.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ n(i.Title, {
45
+ ref: a,
46
+ className: e("font-semibold text-lg leading-none tracking-tight", t),
47
+ ...r
48
+ }));
49
+ m.displayName = i.Title.displayName;
50
+ var h = t.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ n(i.Description, {
51
+ ref: a,
52
+ className: e("text-muted-foreground text-sm", t),
53
+ ...r
54
+ }));
55
+ h.displayName = i.Description.displayName;
56
+ //#endregion
57
+ export { o as Dialog, l as DialogClose, d as DialogContent, h as DialogDescription, p as DialogFooter, f as DialogHeader, u as DialogOverlay, c as DialogPortal, m as DialogTitle, s as DialogTrigger };
@@ -0,0 +1,20 @@
1
+ import { Dialog as e, DialogContent as t, DialogDescription as n, DialogHeader as r, DialogTitle as i } from "./Dialog.js";
2
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
3
+ //#region src/components/DialogWrapper.tsx
4
+ var s = ({ isOpen: s, onClose: c, children: l, title: u, description: d = "", contentClassName: f, modal: p = !0 }) => /* @__PURE__ */ a(e, {
5
+ open: s,
6
+ onOpenChange: c,
7
+ modal: p,
8
+ children: /* @__PURE__ */ o(t, {
9
+ className: f,
10
+ children: [u && /* @__PURE__ */ o(r, {
11
+ className: "flex-1 font-medium",
12
+ children: [/* @__PURE__ */ a(i, { children: u }), /* @__PURE__ */ a(n, { children: d })]
13
+ }), /* @__PURE__ */ a("div", {
14
+ className: "w-full",
15
+ children: l
16
+ })]
17
+ })
18
+ });
19
+ //#endregion
20
+ export { s as DialogWrapper };
@@ -2,6 +2,6 @@ import { ExternalToast, Toaster as Sonner, toast } from 'sonner';
2
2
  type ToasterProps = React.ComponentProps<typeof Sonner>;
3
3
  export declare const Toaster: ({ ...props }: ToasterProps) => import("react/jsx-runtime").JSX.Element;
4
4
  export declare const errorToast: (message: string, title?: string, options?: ExternalToast) => void;
5
- export declare const successToast: (message: string, title?: string, options?: ExternalToast) => void;
5
+ export declare const successToast: (message: string | React.ReactNode, title?: string, options?: ExternalToast) => void;
6
6
  export { toast, type ExternalToast };
7
7
  //# sourceMappingURL=Sonner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sonner.d.ts","sourceRoot":"","sources":["../../src/components/Sonner.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEtE,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,OAAO,GAAI,cAAc,YAAY,4CAgBjD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,cAAe,EAAE,UAAS,aAAkB,SAOvF,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,cAAiB,EAAE,UAAS,aAAkB,SAW3F,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,KAAK,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"Sonner.d.ts","sourceRoot":"","sources":["../../src/components/Sonner.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAEtE,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,OAAO,GAAI,cAAc,YAAY,4CAgBjD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,cAAe,EAAE,UAAS,aAAkB,SAOvF,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,SAAS,MAAM,GAAG,KAAK,CAAC,SAAS,EACjC,cAAiB,EACjB,UAAS,aAAkB,SAY5B,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,KAAK,aAAa,EAAE,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { jsx as e } from "react/jsx-runtime";
3
+ import { Toaster as t, toast as n } from "sonner";
4
+ //#region src/components/Sonner.tsx
5
+ var r = ({ ...n }) => /* @__PURE__ */ e(t, {
6
+ closeButton: !0,
7
+ richColors: !0,
8
+ className: "toaster group",
9
+ toastOptions: { classNames: {
10
+ toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
11
+ description: "group-[.toast]:text-muted-foreground",
12
+ actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
13
+ cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
14
+ } },
15
+ ...n
16
+ }), i = (e, t = "Error", r = {}) => {
17
+ n.error(t, {
18
+ description: e,
19
+ duration: 4e3,
20
+ position: "bottom-right",
21
+ ...r
22
+ });
23
+ }, a = (e, t = "Success", r = {}) => {
24
+ r?.id && n.dismiss(r?.id), n.success(t, {
25
+ description: e,
26
+ duration: 4e3,
27
+ position: "bottom-right",
28
+ ...r
29
+ });
30
+ };
31
+ //#endregion
32
+ export { r as Toaster, i as errorToast, a as successToast, n as toast };
@@ -0,0 +1,7 @@
1
+ import e from "../utils/cn.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { BiLoaderAlt as n } from "react-icons/bi";
4
+ //#region src/components/Spinner.tsx
5
+ var r = ({ className: r }) => /* @__PURE__ */ t(n, { className: e("h-8 w-8 animate-spin font-light", r) });
6
+ //#endregion
7
+ export { r as default };
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import e from "../utils/cn.js";
3
+ import * as t from "react";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ import { Tabs as r } from "radix-ui";
6
+ //#region src/components/Tabs.tsx
7
+ var i = r.Root, a = t.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ n(r.List, {
8
+ ref: a,
9
+ className: e("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground", t),
10
+ ...i
11
+ }));
12
+ a.displayName = r.List.displayName;
13
+ var o = t.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ n(r.Trigger, {
14
+ ref: a,
15
+ className: e("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 font-medium text-sm ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm", t),
16
+ "data-levo-studio-interactive": "true",
17
+ ...i
18
+ }));
19
+ o.displayName = r.Trigger.displayName;
20
+ var s = t.forwardRef(({ className: t, ...i }, a) => /* @__PURE__ */ n(r.Content, {
21
+ ref: a,
22
+ className: e("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", t),
23
+ ...i
24
+ }));
25
+ s.displayName = r.Content.displayName;
26
+ //#endregion
27
+ export { i as Tabs, s as TabsContent, a as TabsList, o as TabsTrigger };
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import e from "../utils/cn.js";
3
+ import * as t from "react";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ import { Tooltip as i } from "radix-ui";
6
+ //#region src/components/Tooltip.tsx
7
+ var a = i.Provider, o = i.Root, s = i.Trigger, c = i.Portal, l = t.forwardRef(({ className: t, sideOffset: r = 4, ...a }, o) => /* @__PURE__ */ n(i.Content, {
8
+ ref: o,
9
+ sideOffset: r,
10
+ className: e("fade-in-0 zoom-in-95 data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 animate-in overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-popover-foreground text-xs shadow-md data-[state=closed]:animate-out", t),
11
+ ...a
12
+ }));
13
+ l.displayName = i.Content.displayName;
14
+ var u = ({ children: e, label: t, labelClassName: i, asChild: a = !0, contentProps: u = {}, side: d }) => /* @__PURE__ */ r(o, { children: [t && /* @__PURE__ */ n(c, { children: /* @__PURE__ */ n(l, {
15
+ side: d,
16
+ className: i,
17
+ ...u,
18
+ children: t
19
+ }) }), /* @__PURE__ */ n(s, {
20
+ asChild: a,
21
+ children: e
22
+ })] });
23
+ //#endregion
24
+ export { u as SimpleTooltipWrapper, o as Tooltip, l as TooltipContent, c as TooltipPortal, a as TooltipProvider, s as TooltipTrigger };
@@ -0,0 +1,24 @@
1
+ import e from "../../utils/cn.js";
2
+ import { buttonVariants as t } from "./buttonVariants.js";
3
+ import * as n from "react";
4
+ import { Fragment as r, jsx as i, jsxs as a } from "react/jsx-runtime";
5
+ import { Slot as o } from "radix-ui";
6
+ import { BiLoaderAlt as s } from "react-icons/bi";
7
+ import { twMerge as c } from "tailwind-merge";
8
+ //#region src/components/button/Button.tsx
9
+ var l = n.forwardRef(({ className: n, variant: l, size: u, rounded: d, asChild: f = !1, isLoading: p = !1, loadingText: m, disabled: h, ...g }, _) => /* @__PURE__ */ i(f ? o.Root : "button", {
10
+ className: e(t({
11
+ variant: l,
12
+ size: u,
13
+ rounded: d,
14
+ className: n
15
+ })),
16
+ ref: _,
17
+ disabled: h || p,
18
+ type: "button",
19
+ ...g,
20
+ children: p ? /* @__PURE__ */ a(r, { children: [/* @__PURE__ */ i(s, { className: c("h-4 w-4 animate-spin", m ? "mr-2" : "") }), m] }) : g.children
21
+ }));
22
+ l.displayName = "Button";
23
+ //#endregion
24
+ export { l as default };
@@ -1,5 +1,5 @@
1
1
  export declare const buttonVariants: (props?: ({
2
- variant?: "link" | "default" | "destructive" | "destructiveOutline" | "outline" | "secondary" | "secondaryOutline" | "ghost" | null | undefined;
2
+ variant?: "link" | "default" | "destructive" | "destructiveGhost" | "destructiveOutline" | "outline" | "secondary" | "secondaryOutline" | "ghost" | null | undefined;
3
3
  size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-small" | null | undefined;
4
4
  rounded?: "small" | "default" | "large" | "full" | null | undefined;
5
5
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
@@ -1 +1 @@
1
- {"version":3,"file":"buttonVariants.d.ts","sourceRoot":"","sources":["../../../src/components/button/buttonVariants.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;8EAqC1B,CAAC"}
1
+ {"version":3,"file":"buttonVariants.d.ts","sourceRoot":"","sources":["../../../src/components/button/buttonVariants.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;8EAsC1B,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { cva as e } from "class-variance-authority";
2
+ //#region src/components/button/buttonVariants.tsx
3
+ var t = e("inline-flex items-center justify-center font-medium text-sm ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50", {
4
+ variants: {
5
+ variant: {
6
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
7
+ destructive: "bg-destructive text-white hover:bg-destructive/90",
8
+ destructiveGhost: "text-destructive hover:bg-destructive/10",
9
+ destructiveOutline: "border border-red-500 bg-transparent text-destructive shadow-sm hover:bg-destructive hover:text-white",
10
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
11
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
12
+ secondaryOutline: "border border-white border-solid bg-transparent hover:border-input hover:bg-white",
13
+ ghost: "hover:bg-accent hover:text-accent-foreground",
14
+ link: "text-primary underline-offset-4 hover:underline"
15
+ },
16
+ size: {
17
+ default: "h-10 px-4 py-2",
18
+ xs: "h-8 px-3 text-xs",
19
+ sm: "h-9 px-3",
20
+ lg: "h-11 px-8",
21
+ icon: "h-10 w-10",
22
+ "icon-small": "h-8 w-8"
23
+ },
24
+ rounded: {
25
+ small: "rounded",
26
+ default: "rounded-md",
27
+ large: "rounded-lg",
28
+ full: "rounded-full"
29
+ }
30
+ },
31
+ defaultVariants: {
32
+ variant: "default",
33
+ size: "default",
34
+ rounded: "default"
35
+ }
36
+ });
37
+ //#endregion
38
+ export { t as buttonVariants };
@@ -0,0 +1,80 @@
1
+ //#region src/constants/fileUploadPresets.ts
2
+ var e = [
3
+ "pdf",
4
+ "txt",
5
+ "xml",
6
+ "xls",
7
+ "xlsx",
8
+ "ods",
9
+ "odt",
10
+ "doc",
11
+ "docx",
12
+ "csv",
13
+ "odp",
14
+ "ppt",
15
+ "pptx"
16
+ ], t = [
17
+ "svg",
18
+ "png",
19
+ "jpg",
20
+ "jpeg",
21
+ "gif",
22
+ "webp",
23
+ "avif"
24
+ ], n = [
25
+ "mp4",
26
+ "ogv",
27
+ "webm"
28
+ ], r = [
29
+ "mp3",
30
+ "ogg",
31
+ "opus"
32
+ ], i = {
33
+ "application/xml": [".xml"],
34
+ "text/plain": [".txt"],
35
+ "application/pdf": [".pdf"],
36
+ "application/msword": [".doc"],
37
+ "application/vnd.ms-excel": [".xls"],
38
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": [".xlsx"],
39
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document": [".docx"],
40
+ "text/csv": [".csv"]
41
+ }, a = {
42
+ "image/jpeg": [".jpeg", ".jpg"],
43
+ "image/jpg": [".jpg"],
44
+ "image/png": [".png"],
45
+ "image/gif": [".gif"],
46
+ "image/svg": [".svg"],
47
+ "image/svg+xml": [".svg"],
48
+ "image/webp": [".webp"],
49
+ "image/avif": [".avif"]
50
+ }, o = {
51
+ "video/mp4": [".mp4"],
52
+ "video/mpeg": [".mpeg"],
53
+ "video/webm": [".webm"]
54
+ }, s = {
55
+ "audio/mpeg": [".mp3"],
56
+ "audio/ogg": [".oga"],
57
+ "audio/opus": [".opus"]
58
+ }, c = {
59
+ audio: s,
60
+ document: i,
61
+ image: a,
62
+ video: o
63
+ }, l = {
64
+ audio: r,
65
+ document: e,
66
+ image: t,
67
+ video: n
68
+ }, u = [
69
+ ...l.audio,
70
+ ...l.document,
71
+ ...l.image,
72
+ ...l.video
73
+ ], d = {
74
+ ...c.audio,
75
+ ...c.document,
76
+ ...c.image,
77
+ ...c.video
78
+ };
79
+ //#endregion
80
+ export { u as allMediaFileExtensions, d as allMediaMimetypes, r as audioFileExtensions, s as audioMimetype, e as documentFileExtensions, i as documentMimetype, t as imageFileExtensions, a as imageMimetype, l as mediaExtensionsByKind, c as mediaMimetypeByKind, n as videoFileExtensions, o as videoMimetype };