@webdevarif/dashui 1.2.6 → 1.2.8

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/hooks.js ADDED
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/hooks.ts
32
+ var hooks_exports = {};
33
+ __export(hooks_exports, {
34
+ useAuth: () => useAuth,
35
+ useFetch: () => useFetch
36
+ });
37
+ module.exports = __toCommonJS(hooks_exports);
38
+
39
+ // src/setup/hooks/use-fetch.ts
40
+ var import_swr = __toESM(require("swr"));
41
+ function useFetch(url, options) {
42
+ const { data, error, isLoading, isValidating, mutate } = (0, import_swr.default)(
43
+ options?.enabled === false ? null : url,
44
+ options?.fetcher,
45
+ {
46
+ revalidateOnFocus: options?.revalidateOnFocus,
47
+ refreshInterval: options?.refreshInterval
48
+ }
49
+ );
50
+ return {
51
+ data,
52
+ isLoading,
53
+ isValidating,
54
+ error,
55
+ isError: !!error,
56
+ mutate
57
+ };
58
+ }
59
+
60
+ // src/setup/hooks/use-auth.ts
61
+ var import_react = require("next-auth/react");
62
+ function useAuth() {
63
+ return (0, import_react.useSession)();
64
+ }
65
+ // Annotate the CommonJS export names for ESM import in node:
66
+ 0 && (module.exports = {
67
+ useAuth,
68
+ useFetch
69
+ });
70
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks.ts","../src/setup/hooks/use-fetch.ts","../src/setup/hooks/use-auth.ts"],"sourcesContent":["/**\n * @webdevarif/dashui/hooks - Client-only hooks\n * \n * Import separately to avoid server-side bundling issues:\n * import { useFetch } from '@webdevarif/dashui/hooks'\n */\n\n'use client'\n\nexport { useFetch } from './setup/hooks/use-fetch'\nexport { useAuth } from './setup/hooks/use-auth'\n","import useSWR from 'swr'\n\ninterface UseFetchOptions {\n /** Custom fetcher override */\n fetcher?: (url: string) => Promise<any>\n /** SWR options */\n revalidateOnFocus?: boolean\n refreshInterval?: number\n /** Don't fetch until condition is true */\n enabled?: boolean\n}\n\n/**\n * useFetch - SWR-powered data fetching hook\n * \n * Uses global SWR config by default (from SWRProvider)\n * Supports fetch, axios, or any custom fetcher\n * \n * Basic:\n * ```tsx\n * const { data, isLoading } = useFetch('/api/users')\n * ```\n * \n * With axios:\n * ```tsx\n * import axios from 'axios'\n * const { data } = useFetch('/api/users', { \n * fetcher: (url) => axios.get(url).then(r => r.data) \n * })\n * ```\n * \n * Conditional:\n * ```tsx\n * const { data } = useFetch(userId ? `/api/users/${userId}` : null)\n * ```\n */\nexport function useFetch<T = any>(url: string | null, options?: UseFetchOptions) {\n const { data, error, isLoading, isValidating, mutate } = useSWR<T>(\n options?.enabled === false ? null : url,\n options?.fetcher,\n {\n revalidateOnFocus: options?.revalidateOnFocus,\n refreshInterval: options?.refreshInterval,\n }\n )\n\n return {\n data,\n isLoading,\n isValidating,\n error,\n isError: !!error,\n mutate,\n }\n}\n","import { useSession } from 'next-auth/react'\n\n/**\n * useAuth - Hook to access current session and auth methods\n * \n * Returns the NextAuth useSession hook result\n * \n * Usage:\n * ```tsx\n * import { useAuth } from '@webdevarif/dashui-setup/hooks'\n * \n * function Profile() {\n * const { data: session, status } = useAuth()\n * \n * if (status === 'loading') return <div>Loading...</div>\n * if (status === 'unauthenticated') return <div>Not logged in</div>\n * \n * return <div>Welcome {session?.user?.name}</div>\n * }\n * ```\n */\nexport function useAuth() {\n return useSession()\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,iBAAmB;AAoCZ,SAAS,SAAkB,KAAoB,SAA2B;AAC/E,QAAM,EAAE,MAAM,OAAO,WAAW,cAAc,OAAO,QAAI,WAAAA;AAAA,IACvD,SAAS,YAAY,QAAQ,OAAO;AAAA,IACpC,SAAS;AAAA,IACT;AAAA,MACE,mBAAmB,SAAS;AAAA,MAC5B,iBAAiB,SAAS;AAAA,IAC5B;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,CAAC,CAAC;AAAA,IACX;AAAA,EACF;AACF;;;ACtDA,mBAA2B;AAqBpB,SAAS,UAAU;AACxB,aAAO,yBAAW;AACpB;","names":["useSWR"]}
package/dist/hooks.mjs ADDED
@@ -0,0 +1,33 @@
1
+ "use client";
2
+
3
+ // src/setup/hooks/use-fetch.ts
4
+ import useSWR from "swr";
5
+ function useFetch(url, options) {
6
+ const { data, error, isLoading, isValidating, mutate } = useSWR(
7
+ options?.enabled === false ? null : url,
8
+ options?.fetcher,
9
+ {
10
+ revalidateOnFocus: options?.revalidateOnFocus,
11
+ refreshInterval: options?.refreshInterval
12
+ }
13
+ );
14
+ return {
15
+ data,
16
+ isLoading,
17
+ isValidating,
18
+ error,
19
+ isError: !!error,
20
+ mutate
21
+ };
22
+ }
23
+
24
+ // src/setup/hooks/use-auth.ts
25
+ import { useSession } from "next-auth/react";
26
+ function useAuth() {
27
+ return useSession();
28
+ }
29
+ export {
30
+ useAuth,
31
+ useFetch
32
+ };
33
+ //# sourceMappingURL=hooks.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/setup/hooks/use-fetch.ts","../src/setup/hooks/use-auth.ts"],"sourcesContent":["import useSWR from 'swr'\n\ninterface UseFetchOptions {\n /** Custom fetcher override */\n fetcher?: (url: string) => Promise<any>\n /** SWR options */\n revalidateOnFocus?: boolean\n refreshInterval?: number\n /** Don't fetch until condition is true */\n enabled?: boolean\n}\n\n/**\n * useFetch - SWR-powered data fetching hook\n * \n * Uses global SWR config by default (from SWRProvider)\n * Supports fetch, axios, or any custom fetcher\n * \n * Basic:\n * ```tsx\n * const { data, isLoading } = useFetch('/api/users')\n * ```\n * \n * With axios:\n * ```tsx\n * import axios from 'axios'\n * const { data } = useFetch('/api/users', { \n * fetcher: (url) => axios.get(url).then(r => r.data) \n * })\n * ```\n * \n * Conditional:\n * ```tsx\n * const { data } = useFetch(userId ? `/api/users/${userId}` : null)\n * ```\n */\nexport function useFetch<T = any>(url: string | null, options?: UseFetchOptions) {\n const { data, error, isLoading, isValidating, mutate } = useSWR<T>(\n options?.enabled === false ? null : url,\n options?.fetcher,\n {\n revalidateOnFocus: options?.revalidateOnFocus,\n refreshInterval: options?.refreshInterval,\n }\n )\n\n return {\n data,\n isLoading,\n isValidating,\n error,\n isError: !!error,\n mutate,\n }\n}\n","import { useSession } from 'next-auth/react'\n\n/**\n * useAuth - Hook to access current session and auth methods\n * \n * Returns the NextAuth useSession hook result\n * \n * Usage:\n * ```tsx\n * import { useAuth } from '@webdevarif/dashui-setup/hooks'\n * \n * function Profile() {\n * const { data: session, status } = useAuth()\n * \n * if (status === 'loading') return <div>Loading...</div>\n * if (status === 'unauthenticated') return <div>Not logged in</div>\n * \n * return <div>Welcome {session?.user?.name}</div>\n * }\n * ```\n */\nexport function useAuth() {\n return useSession()\n}\n"],"mappings":";;;AAAA,OAAO,YAAY;AAoCZ,SAAS,SAAkB,KAAoB,SAA2B;AAC/E,QAAM,EAAE,MAAM,OAAO,WAAW,cAAc,OAAO,IAAI;AAAA,IACvD,SAAS,YAAY,QAAQ,OAAO;AAAA,IACpC,SAAS;AAAA,IACT;AAAA,MACE,mBAAmB,SAAS;AAAA,MAC5B,iBAAiB,SAAS;AAAA,IAC5B;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,CAAC,CAAC;AAAA,IACX;AAAA,EACF;AACF;;;ACtDA,SAAS,kBAAkB;AAqBpB,SAAS,UAAU;AACxB,SAAO,WAAW;AACpB;","names":[]}
package/dist/i18n.js ADDED
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/i18n.ts
21
+ var i18n_exports = {};
22
+ __export(i18n_exports, {
23
+ I18nProvider: () => I18nProvider
24
+ });
25
+ module.exports = __toCommonJS(i18n_exports);
26
+
27
+ // src/setup/providers/i18n-provider.tsx
28
+ var import_next_intl = require("next-intl");
29
+ var import_jsx_runtime = require("react/jsx-runtime");
30
+ function I18nProvider({
31
+ children,
32
+ locale,
33
+ messages,
34
+ timeZone = "UTC",
35
+ now
36
+ }) {
37
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
38
+ import_next_intl.NextIntlClientProvider,
39
+ {
40
+ locale,
41
+ messages,
42
+ timeZone,
43
+ now,
44
+ children
45
+ }
46
+ );
47
+ }
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ I18nProvider
51
+ });
52
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n.ts","../src/setup/providers/i18n-provider.tsx"],"sourcesContent":["// Separate i18n entry point - optional, import only when needed\n// This avoids next-intl server/client module conflicts in the main setup bundle\nexport { I18nProvider } from './setup/providers/i18n-provider'\n","'use client'\n\nimport { ReactNode } from 'react'\nimport { NextIntlClientProvider } from 'next-intl'\n\ninterface I18nProviderProps {\n children: ReactNode\n locale: string\n messages: Record<string, any>\n timeZone?: string\n now?: Date\n}\n\n/**\n * I18nProvider - Optional wrapper for next-intl\n * \n * Usage:\n * ```tsx\n * import { I18nProvider } from '@webdevarif/dashui/i18n'\n * \n * <I18nProvider locale=\"en\" messages={messages} timeZone=\"Asia/Dhaka\">\n * {children}\n * </I18nProvider>\n * ```\n */\nexport function I18nProvider({ \n children, \n locale, \n messages, \n timeZone = 'UTC',\n now,\n}: I18nProviderProps) {\n return (\n <NextIntlClientProvider\n locale={locale}\n messages={messages}\n timeZone={timeZone}\n now={now}\n >\n {children}\n </NextIntlClientProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGA,uBAAuC;AA8BnC;AARG,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AACF,GAAsB;AACpB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;","names":[]}
package/dist/i18n.mjs ADDED
@@ -0,0 +1,25 @@
1
+ // src/setup/providers/i18n-provider.tsx
2
+ import { NextIntlClientProvider } from "next-intl";
3
+ import { jsx } from "react/jsx-runtime";
4
+ function I18nProvider({
5
+ children,
6
+ locale,
7
+ messages,
8
+ timeZone = "UTC",
9
+ now
10
+ }) {
11
+ return /* @__PURE__ */ jsx(
12
+ NextIntlClientProvider,
13
+ {
14
+ locale,
15
+ messages,
16
+ timeZone,
17
+ now,
18
+ children
19
+ }
20
+ );
21
+ }
22
+ export {
23
+ I18nProvider
24
+ };
25
+ //# sourceMappingURL=i18n.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/setup/providers/i18n-provider.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode } from 'react'\nimport { NextIntlClientProvider } from 'next-intl'\n\ninterface I18nProviderProps {\n children: ReactNode\n locale: string\n messages: Record<string, any>\n timeZone?: string\n now?: Date\n}\n\n/**\n * I18nProvider - Optional wrapper for next-intl\n * \n * Usage:\n * ```tsx\n * import { I18nProvider } from '@webdevarif/dashui/i18n'\n * \n * <I18nProvider locale=\"en\" messages={messages} timeZone=\"Asia/Dhaka\">\n * {children}\n * </I18nProvider>\n * ```\n */\nexport function I18nProvider({ \n children, \n locale, \n messages, \n timeZone = 'UTC',\n now,\n}: I18nProviderProps) {\n return (\n <NextIntlClientProvider\n locale={locale}\n messages={messages}\n timeZone={timeZone}\n now={now}\n >\n {children}\n </NextIntlClientProvider>\n )\n}\n"],"mappings":";AAGA,SAAS,8BAA8B;AA8BnC;AARG,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AACF,GAAsB;AACpB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;","names":[]}
package/dist/index.js CHANGED
@@ -28,8 +28,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
30
  // src/index.ts
31
- var index_exports = {};
32
- __export(index_exports, {
31
+ var src_exports = {};
32
+ __export(src_exports, {
33
33
  Alert: () => Alert,
34
34
  AppShell: () => AppShell,
35
35
  AuthButton: () => AuthButton,
@@ -39,6 +39,7 @@ __export(index_exports, {
39
39
  AuthFootnote: () => AuthFootnote,
40
40
  AuthHeader: () => AuthHeader,
41
41
  AuthLogo: () => AuthLogo,
42
+ AuthProvider: () => AuthProvider,
42
43
  AuthShell: () => AuthShell,
43
44
  Badge: () => Badge,
44
45
  Button: () => Button,
@@ -114,6 +115,8 @@ __export(index_exports, {
114
115
  PostStatusBadge: () => PostStatusBadge,
115
116
  ResponsiveSizeDeviceIcon: () => ResponsiveSizeDeviceIcon,
116
117
  ResponsiveSizeField: () => ResponsiveSizeField,
118
+ RootProvider: () => RootProvider,
119
+ SWRProvider: () => SWRProvider,
117
120
  SearchBar: () => SearchBar,
118
121
  Select: () => Select,
119
122
  SelectContent: () => SelectContent,
@@ -152,12 +155,12 @@ __export(index_exports, {
152
155
  badgeVariants: () => badgeVariants,
153
156
  buttonVariants: () => buttonVariants,
154
157
  cn: () => cn,
158
+ useAuth: () => useAuth,
155
159
  useColorPicker: () => useColorPicker,
156
- useDisclosure: () => useDisclosure,
157
- usePagination: () => usePagination,
160
+ useFetch: () => useFetch,
158
161
  useTheme: () => import_next_themes2.useTheme
159
162
  });
160
- module.exports = __toCommonJS(index_exports);
163
+ module.exports = __toCommonJS(src_exports);
161
164
 
162
165
  // src/components/primitives/button.tsx
163
166
  var React = __toESM(require("react"));
@@ -4209,22 +4212,31 @@ function TypographyPanel({
4209
4212
  ] });
4210
4213
  }
4211
4214
 
4212
- // src/hooks/index.ts
4213
- var import_react11 = require("react");
4214
- function useDisclosure(initial = false) {
4215
- const [isOpen, setIsOpen] = (0, import_react11.useState)(initial);
4215
+ // src/setup/hooks/use-fetch.ts
4216
+ var import_swr = __toESM(require("swr"));
4217
+ function useFetch(url, options) {
4218
+ const { data, error, isLoading, isValidating, mutate } = (0, import_swr.default)(
4219
+ options?.enabled === false ? null : url,
4220
+ options?.fetcher,
4221
+ {
4222
+ revalidateOnFocus: options?.revalidateOnFocus,
4223
+ refreshInterval: options?.refreshInterval
4224
+ }
4225
+ );
4216
4226
  return {
4217
- isOpen,
4218
- open: () => setIsOpen(true),
4219
- close: () => setIsOpen(false),
4220
- toggle: () => setIsOpen((prev) => !prev),
4221
- onOpenChange: setIsOpen
4227
+ data,
4228
+ isLoading,
4229
+ isValidating,
4230
+ error,
4231
+ isError: !!error,
4232
+ mutate
4222
4233
  };
4223
4234
  }
4224
- function usePagination(total, pageSize = 20) {
4225
- const [page, setPage] = (0, import_react11.useState)(1);
4226
- const totalPages = Math.ceil(total / pageSize);
4227
- return { page, setPage, pageSize, total, totalPages };
4235
+
4236
+ // src/setup/hooks/use-auth.ts
4237
+ var import_react11 = require("next-auth/react");
4238
+ function useAuth() {
4239
+ return (0, import_react11.useSession)();
4228
4240
  }
4229
4241
 
4230
4242
  // src/components/auth/AuthShell.tsx
@@ -4549,6 +4561,40 @@ function AuthFootnote({ text, linkText, linkHref }) {
4549
4561
 
4550
4562
  // src/index.ts
4551
4563
  var import_next_themes2 = require("next-themes");
4564
+
4565
+ // src/setup/providers/auth-provider.tsx
4566
+ var import_react12 = require("next-auth/react");
4567
+ var import_jsx_runtime67 = require("react/jsx-runtime");
4568
+ function AuthProvider({ children, session }) {
4569
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_react12.SessionProvider, { session, children });
4570
+ }
4571
+
4572
+ // src/setup/providers/swr-provider.tsx
4573
+ var import_swr2 = require("swr");
4574
+ var import_jsx_runtime68 = require("react/jsx-runtime");
4575
+ var fetchFetcher = (url) => fetch(url).then((r) => r.json());
4576
+ var DEFAULT_SWR_CONFIG = {
4577
+ revalidateOnFocus: false,
4578
+ revalidateOnReconnect: true,
4579
+ dedupingInterval: 6e4,
4580
+ focusThrottleInterval: 3e5
4581
+ };
4582
+ function SWRProvider({ children, fetcher, config }) {
4583
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_swr2.SWRConfig, { value: {
4584
+ fetcher: fetcher ?? fetchFetcher,
4585
+ ...DEFAULT_SWR_CONFIG,
4586
+ ...config
4587
+ }, children });
4588
+ }
4589
+
4590
+ // src/setup/providers/root-provider.tsx
4591
+ var import_jsx_runtime69 = require("react/jsx-runtime");
4592
+ function RootProvider({
4593
+ children,
4594
+ session
4595
+ }) {
4596
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(AuthProvider, { session, children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SWRProvider, { children }) });
4597
+ }
4552
4598
  // Annotate the CommonJS export names for ESM import in node:
4553
4599
  0 && (module.exports = {
4554
4600
  Alert,
@@ -4560,6 +4606,7 @@ var import_next_themes2 = require("next-themes");
4560
4606
  AuthFootnote,
4561
4607
  AuthHeader,
4562
4608
  AuthLogo,
4609
+ AuthProvider,
4563
4610
  AuthShell,
4564
4611
  Badge,
4565
4612
  Button,
@@ -4635,6 +4682,8 @@ var import_next_themes2 = require("next-themes");
4635
4682
  PostStatusBadge,
4636
4683
  ResponsiveSizeDeviceIcon,
4637
4684
  ResponsiveSizeField,
4685
+ RootProvider,
4686
+ SWRProvider,
4638
4687
  SearchBar,
4639
4688
  Select,
4640
4689
  SelectContent,
@@ -4673,9 +4722,9 @@ var import_next_themes2 = require("next-themes");
4673
4722
  badgeVariants,
4674
4723
  buttonVariants,
4675
4724
  cn,
4725
+ useAuth,
4676
4726
  useColorPicker,
4677
- useDisclosure,
4678
- usePagination,
4727
+ useFetch,
4679
4728
  useTheme
4680
4729
  });
4681
4730
  //# sourceMappingURL=index.js.map