@llmnative/react 1.41.0 → 1.42.0

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/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { a as e, c as t, d as n, i as r, n as i, o as a, r as o, s, t as c, u as l } from "./modelIdentity-D93fYZOo.mjs";
1
+ import { a as e, c as t, d as n, i as r, n as i, o as a, r as o, s, t as c, u as l } from "./modelIdentity-7FU6Fu1c.mjs";
2
2
  import { t as u } from "./logHeader-Busbc8OO.mjs";
3
3
  import d, { Children as f, Fragment as p, Suspense as m, createContext as h, forwardRef as g, useCallback as _, useContext as v, useEffect as y, useId as b, useImperativeHandle as x, useLayoutEffect as S, useMemo as C, useRef as w, useState as T, useSyncExternalStore as E } from "react";
4
4
  import { BrowserRouter as D, Link as O, Route as k, Routes as A, useLocation as j, useNavigate as M } from "react-router-dom";
@@ -4284,7 +4284,7 @@ var Vi = "rounded-lg border border-border bg-card text-card-foreground shadow-sm
4284
4284
  }))
4285
4285
  }, e);
4286
4286
  }, oa = ({ menuKey: e, as: t = "ul", badges: n = {}, before: r = void 0, after: i = void 0, wrapperClassName: a = void 0, className: o = void 0, headerClassName: s = void 0, itemClassName: c = void 0, linkClassName: l = void 0, iconClassName: u = void 0, textClassName: f = void 0, badgeClassName: p = void 0, arrowClassName: m = void 0, submenuClassName: h = void 0 }) => {
4287
- let g = Av(e), _ = J("menu"), v = ({ item: e, index: r }) => {
4287
+ let g = Rv(e), _ = J("menu"), v = ({ item: e, index: r }) => {
4288
4288
  let [i, a] = T(e.active);
4289
4289
  y(() => {
4290
4290
  a(e.active);
@@ -16121,7 +16121,7 @@ function Cm({ group: e, expanded: t, openItems: n, showIcons: r, onToggle: i })
16121
16121
  }))));
16122
16122
  }
16123
16123
  function wm({ menuKey: e, items: t, bottomItems: n = [], defaultCollapsed: r = !1, collapsed: i, onCollapsedChange: a, showIcons: o = !0, showCollapseButton: s = !0, footer: c, header: l, embedded: u = !1 }) {
16124
- let { pathname: f } = j(), p = J("sideNav"), m = Y("sideNav"), h = Av(e ?? ""), g = t ?? (e ? _m(h) : []), v = i !== void 0, [b, x] = T(r), S = i === void 0 ? b : i, C = _((e) => {
16124
+ let { pathname: f } = j(), p = J("sideNav"), m = Y("sideNav"), h = Rv(e ?? ""), g = t ?? (e ? _m(h) : []), v = i !== void 0, [b, x] = T(r), S = i === void 0 ? b : i, C = _((e) => {
16125
16125
  let t = typeof e == "function" ? e(S) : e;
16126
16126
  v ? a?.(t) : x(t);
16127
16127
  }, [
@@ -20195,47 +20195,88 @@ var Q_ = {
20195
20195
  let t = await tn(rv, { headers: { Authorization: `Bearer ${e}` } }, Pu);
20196
20196
  return (Array.isArray(t?.data) ? t.data : Array.isArray(t?.models) ? t.models : Array.isArray(t) ? t : []).map((e) => e.id).filter((e) => typeof e == "string" && e.length > 0).filter((e) => !lv(e));
20197
20197
  },
20198
- complete: async (e, t) => {
20199
- let n = t.attachments ?? [], r = n.length > 0 ? n.map((e) => e.mimeType.startsWith("image/") ? {
20200
- type: "image_url",
20201
- image_url: { url: `data:${e.mimeType};base64,${e.base64}` }
20202
- } : Qu.isTextAttachment(e.mimeType) ? {
20203
- type: "text",
20204
- text: `[File: ${e.name}]\n${Qu.decodeBase64Text(e.base64)}`
20205
- } : {
20206
- type: "text",
20207
- text: `[File attached: ${e.name} (${e.mimeType})]`
20208
- }).concat({
20209
- type: "text",
20210
- text: t.prompt
20211
- }) : t.prompt, i = await tn(iv, {
20212
- method: "POST",
20213
- headers: {
20214
- Authorization: `Bearer ${e}`,
20215
- ...t.logId ? { [u]: t.logId } : {}
20216
- },
20217
- body: {
20218
- model: t.model,
20219
- messages: [
20220
- ...t.role ? [{
20221
- role: "system",
20222
- content: bu.parseRole(t.role, t)
20223
- }] : [],
20224
- ...(t.history ?? []).flatMap(k_),
20225
- ...t.prompt ? [{
20226
- role: "user",
20227
- content: r
20228
- }] : []
20229
- ],
20230
- ...t.tools?.length ? { tools: t.tools.map(D_) } : {},
20231
- ...typeof t.temperature == "number" ? { temperature: t.temperature } : {}
20232
- },
20233
- signal: t.signal
20234
- }, Pu);
20235
- if (!i) throw Bu("OpenCode");
20236
- return A_(i);
20237
- }
20238
- }, dv = (e) => {
20198
+ complete: (e, t) => dv(iv, "OpenCode", e, t)
20199
+ };
20200
+ async function dv(e, t, n, r, i = {}) {
20201
+ let a = r.attachments ?? [], o = a.length > 0 ? a.map((e) => e.mimeType.startsWith("image/") ? {
20202
+ type: "image_url",
20203
+ image_url: { url: `data:${e.mimeType};base64,${e.base64}` }
20204
+ } : Qu.isTextAttachment(e.mimeType) ? {
20205
+ type: "text",
20206
+ text: `[File: ${e.name}]\n${Qu.decodeBase64Text(e.base64)}`
20207
+ } : {
20208
+ type: "text",
20209
+ text: `[File attached: ${e.name} (${e.mimeType})]`
20210
+ }).concat({
20211
+ type: "text",
20212
+ text: r.prompt
20213
+ }) : r.prompt, s = await tn(e, {
20214
+ method: "POST",
20215
+ headers: {
20216
+ Authorization: `Bearer ${n}`,
20217
+ ...r.logId ? { [u]: r.logId } : {},
20218
+ ...i
20219
+ },
20220
+ body: {
20221
+ model: r.model,
20222
+ messages: [
20223
+ ...r.role ? [{
20224
+ role: "system",
20225
+ content: bu.parseRole(r.role, r)
20226
+ }] : [],
20227
+ ...(r.history ?? []).flatMap(k_),
20228
+ ...r.prompt ? [{
20229
+ role: "user",
20230
+ content: o
20231
+ }] : []
20232
+ ],
20233
+ ...r.tools?.length ? { tools: r.tools.map(D_) } : {},
20234
+ ...typeof r.temperature == "number" ? { temperature: r.temperature } : {}
20235
+ },
20236
+ signal: r.signal
20237
+ }, Pu);
20238
+ if (!s) throw Bu(t);
20239
+ return A_(s);
20240
+ }
20241
+ //#endregion
20242
+ //#region src/providers/ai/opencodeGo.ts
20243
+ var fv = "https://opencode.ai/zen/go/v1/models", pv = "https://opencode.ai/zen/go/v1/chat/completions", mv = "x-opencode-session", hv = "kimi-k3", gv = [
20244
+ hv,
20245
+ "kimi-k3.1-pro",
20246
+ "glm-5.3",
20247
+ "glm-5.3-flash",
20248
+ "deepseek-v4.1-flash",
20249
+ "deepseek-v4-pro",
20250
+ "qwen3.8-max",
20251
+ "qwen3.8-flash",
20252
+ "minimax-m3",
20253
+ "claude-haiku-5-5",
20254
+ "gemini-4-argon"
20255
+ ], _v = () => typeof crypto < "u" && "randomUUID" in crypto ? crypto.randomUUID() : `s-${Date.now()}-${Math.random().toString(36).slice(2)}`, vv = {
20256
+ id: "opencode-go",
20257
+ label: "OpenCode Go",
20258
+ description: "OpenCode Go — a monthly subscription to open and frontier coding models, with an API key.",
20259
+ configKey: "openCodeGoApiKey",
20260
+ defaultModel: hv,
20261
+ fallbackModels: gv,
20262
+ dashboardUrl: "https://opencode.ai/go",
20263
+ credentialsHint: "OpenCode Console → subscribe to Go → API key.",
20264
+ credentialFields: [{
20265
+ key: "apiKey",
20266
+ label: "API Key",
20267
+ type: "password"
20268
+ }],
20269
+ capabilities: {
20270
+ supportsTemperature: !0,
20271
+ supportsVision: !0,
20272
+ supportsDocuments: !0
20273
+ },
20274
+ discoverModels: async (e) => {
20275
+ let t = await tn(fv, { headers: { Authorization: `Bearer ${e}` } }, Pu);
20276
+ return (Array.isArray(t?.data) ? t.data : []).map((e) => e.id).filter((e) => typeof e == "string" && e.length > 0).filter((e) => !lv(e));
20277
+ },
20278
+ complete: (e, t) => dv(pv, "OpenCode Go", e, t, { [mv]: t.logId || _v() })
20279
+ }, yv = (e) => {
20239
20280
  if (!e || typeof e != "object") return;
20240
20281
  let { prompt: t, completion: n } = e, r = Number(t), i = Number(n);
20241
20282
  if (t === void 0 || n === void 0 || !Number.isFinite(r) || !Number.isFinite(i) || r < 0 || i < 0) return;
@@ -20246,7 +20287,7 @@ var Q_ = {
20246
20287
  currency: "USD",
20247
20288
  source: "provider"
20248
20289
  };
20249
- }, fv = j_({
20290
+ }, bv = j_({
20250
20291
  id: "openrouter",
20251
20292
  label: "OpenRouter",
20252
20293
  description: "Unified access to many model providers through one API.",
@@ -20262,7 +20303,7 @@ var Q_ = {
20262
20303
  credentialsHint: "OpenRouter → Settings → API Keys → Create Key.",
20263
20304
  mapModelEntry: (e) => typeof e.id == "string" ? {
20264
20305
  model: e.id,
20265
- pricing: dv(e.pricing)
20306
+ pricing: yv(e.pricing)
20266
20307
  } : void 0,
20267
20308
  validateApiKey: async (e) => {
20268
20309
  try {
@@ -20284,7 +20325,7 @@ var Q_ = {
20284
20325
  };
20285
20326
  }
20286
20327
  }
20287
- }), pv = {
20328
+ }), xv = {
20288
20329
  dbRealtime: {
20289
20330
  service: "data",
20290
20331
  create: () => new e_()
@@ -20301,7 +20342,7 @@ var Q_ = {
20301
20342
  service: "auth",
20302
20343
  create: () => new i_()
20303
20344
  }
20304
- }, mv = {
20345
+ }, Sv = {
20305
20346
  googleAuth: {
20306
20347
  service: "auth",
20307
20348
  create: () => new Fg()
@@ -20315,14 +20356,14 @@ var Q_ = {
20315
20356
  create: (e) => new l_(e.serviceAccount),
20316
20357
  when: (e) => !!e.serviceAccount
20317
20358
  }
20318
- }, hv = { dropboxAuth: {
20359
+ }, Cv = { dropboxAuth: {
20319
20360
  service: "auth",
20320
20361
  create: (e) => new d_(e)
20321
- } }, gv = { githubAuth: {
20362
+ } }, wv = { githubAuth: {
20322
20363
  service: "auth",
20323
20364
  create: (e) => new p_(e),
20324
20365
  when: (e) => !!e?.sessionUrl?.trim()
20325
- } }, _v = {
20366
+ } }, Tv = {
20326
20367
  supabaseDb: {
20327
20368
  service: "data",
20328
20369
  create: (e) => new Po(e)
@@ -20335,29 +20376,30 @@ var Q_ = {
20335
20376
  service: "auth",
20336
20377
  create: (e) => new v_(e)
20337
20378
  }
20338
- }, vv = { mock: {
20379
+ }, Ev = { mock: {
20339
20380
  service: "data",
20340
20381
  create: (e) => new Vo(e?.data)
20341
- } }, yv = (e, t) => ({
20382
+ } }, Dv = (e, t) => ({
20342
20383
  service: "ai",
20343
20384
  create: (n) => new Ku(e, n?.[t] || ""),
20344
20385
  when: (e) => !!e?.[t]
20345
- }), bv = {
20346
- firebase: pv,
20347
- google: mv,
20348
- dropbox: hv,
20349
- github: gv,
20350
- supabase: _v,
20351
- mock: vv,
20386
+ }), Ov = {
20387
+ firebase: xv,
20388
+ google: Sv,
20389
+ dropbox: Cv,
20390
+ github: wv,
20391
+ supabase: Tv,
20392
+ mock: Ev,
20352
20393
  ai: {
20353
- openai: yv(nv, "openaiApiKey"),
20354
- openrouter: yv(fv, "openRouterApiKey"),
20355
- opencode: yv(uv, "openCodeApiKey"),
20356
- deepseek: yv(K_, "deepSeekApiKey"),
20357
- gemini: yv(Q_, "geminiApiKey"),
20358
- anthropic: yv(w_, "anthropicApiKey"),
20359
- mistral: yv($_, "mistralApiKey"),
20360
- groq: yv(tv, "groqApiKey"),
20394
+ openai: Dv(nv, "openaiApiKey"),
20395
+ openrouter: Dv(bv, "openRouterApiKey"),
20396
+ opencode: Dv(uv, "openCodeApiKey"),
20397
+ "opencode-go": Dv(vv, "openCodeGoApiKey"),
20398
+ deepseek: Dv(K_, "deepSeekApiKey"),
20399
+ gemini: Dv(Q_, "geminiApiKey"),
20400
+ anthropic: Dv(w_, "anthropicApiKey"),
20401
+ mistral: Dv($_, "mistralApiKey"),
20402
+ groq: Dv(tv, "groqApiKey"),
20361
20403
  cloudflare: {
20362
20404
  service: "ai",
20363
20405
  create: (e) => new Ku(W_({
@@ -20368,8 +20410,8 @@ var Q_ = {
20368
20410
  when: (e) => !!e?.cloudflare?.apiToken?.trim() && !!e?.cloudflare?.accountId?.trim()
20369
20411
  }
20370
20412
  }
20371
- }, xv = () => /* @__PURE__ */ d.createElement("div", { className: "flex min-h-[calc(100vh-4rem)] items-center justify-center" }, /* @__PURE__ */ d.createElement("div", { className: "h-8 w-8 animate-spin rounded-full border-2 border-muted border-t-primary" }));
20372
- function Sv(e, t) {
20413
+ }, kv = () => /* @__PURE__ */ d.createElement("div", { className: "flex min-h-[calc(100vh-4rem)] items-center justify-center" }, /* @__PURE__ */ d.createElement("div", { className: "h-8 w-8 animate-spin rounded-full border-2 border-muted border-t-primary" }));
20414
+ function Av(e, t) {
20373
20415
  if (!t) return;
20374
20416
  let n = t, r = typeof t == "object" && !Array.isArray(t) ? Object.entries(n) : [];
20375
20417
  if (r.length > 0 && r.every(([, e]) => typeof e == "object" && !!e)) {
@@ -20378,10 +20420,10 @@ function Sv(e, t) {
20378
20420
  }
20379
20421
  e.custom = t;
20380
20422
  }
20381
- function Cv(e, t, n = "default") {
20423
+ function jv(e, t, n = "default") {
20382
20424
  return t && e[t] ? t : Object.keys(e)[0] ?? n;
20383
20425
  }
20384
- function wv(e = {}) {
20426
+ function Mv(e = {}) {
20385
20427
  let t = {
20386
20428
  data: {},
20387
20429
  storage: {},
@@ -20390,24 +20432,24 @@ function wv(e = {}) {
20390
20432
  ai: {},
20391
20433
  credentials: {}
20392
20434
  }, n = (e) => t[e] ??= {};
20393
- for (let [t, r] of Object.entries(bv)) {
20435
+ for (let [t, r] of Object.entries(Ov)) {
20394
20436
  let i = e[t];
20395
20437
  if (i !== void 0) for (let [e, t] of Object.entries(r)) (!t.when || t.when(i)) && (n(t.service)[e] = t.create(i));
20396
20438
  }
20397
- for (let [t, r] of Object.entries(e.custom ?? {})) Sv(n(t), r);
20439
+ for (let [t, r] of Object.entries(e.custom ?? {})) Av(n(t), r);
20398
20440
  Object.keys(t.data).length === 0 && (t.data.mock = new Vo()), Object.keys(t.auth).length === 0 && (t.auth.googleAuth = new Fg());
20399
20441
  let r = e.services ?? {}, i = {};
20400
20442
  for (let [e, n] of Object.entries(t)) i[e] = {
20401
20443
  registry: n,
20402
- defaultKey: Cv(n, r[e])
20444
+ defaultKey: jv(n, r[e])
20403
20445
  };
20404
20446
  return i;
20405
20447
  }
20406
- var Tv = {}, Ev = (e) => {
20407
- Tv = e;
20408
- }, Dv = (e) => Tv[e] || [];
20409
- function Ov({ contextProviders: e, providers: t = {}, appName: n = "LLM Native", scrapeConfig: r, iconProvider: i, googleMaps: a, themeProvider: o, i18n: s, children: c, errorReportUrl: l, debug: u, basename: f }) {
20410
- let [p, m] = T(() => wv(t)), h = w(p);
20448
+ var Nv = {}, Pv = (e) => {
20449
+ Nv = e;
20450
+ }, Fv = (e) => Nv[e] || [];
20451
+ function Iv({ contextProviders: e, providers: t = {}, appName: n = "LLM Native", scrapeConfig: r, iconProvider: i, googleMaps: a, themeProvider: o, i18n: s, children: c, errorReportUrl: l, debug: u, basename: f }) {
20452
+ let [p, m] = T(() => Mv(t)), h = w(p);
20411
20453
  h.current = p;
20412
20454
  let g = w(void 0);
20413
20455
  g.current ||= (async (e, t, n) => {
@@ -20448,8 +20490,8 @@ function Ov({ contextProviders: e, providers: t = {}, appName: n = "LLM Native",
20448
20490
  setProvider: _
20449
20491
  }, /* @__PURE__ */ d.createElement(hi, p.auth, /* @__PURE__ */ d.createElement(Bg, p.credentials, /* @__PURE__ */ d.createElement(Ri, p.data, /* @__PURE__ */ d.createElement(Pl, p.storage, /* @__PURE__ */ d.createElement(Lg, p.email, /* @__PURE__ */ d.createElement(Tu, p.ai, /* @__PURE__ */ d.createElement(Ir, { config: i }, /* @__PURE__ */ d.createElement(Qp, { config: a }, /* @__PURE__ */ d.createElement(ch, { appName: n }, /* @__PURE__ */ d.createElement(qn, { config: s }, /* @__PURE__ */ d.createElement(Pn, { config: o }, /* @__PURE__ */ d.createElement(v, null, c))))))))))))))));
20450
20492
  }
20451
- function kv({ importPage: e, LayoutDefault: t = void 0, menuConfig: n = {}, children: r, ...i }) {
20452
- Ev(n);
20493
+ function Lv({ importPage: e, LayoutDefault: t = void 0, menuConfig: n = {}, children: r, ...i }) {
20494
+ Pv(n);
20453
20495
  let a = ({ children: e }) => /* @__PURE__ */ d.createElement(d.Fragment, null, e), o = ({ pageSource: e, message: t }) => /* @__PURE__ */ d.createElement(ss, { variant: "warning" }, "Missing Page: ", e, t && /* @__PURE__ */ d.createElement("code", { className: "ml-2" }, t));
20454
20496
  function s(n, r, s) {
20455
20497
  let c = `./pages${r.component ? "/" + r.component : r.path === "/" ? "/Home" : dt.toCamel(r.path.split("*")[0])}.js`, l = r.page || d.lazy(() => e(c).then((e) => typeof e.default == "function" ? { default: e.default } : (console.warn(`⚠️ Invalid default export in ${c}`), { default: () => /* @__PURE__ */ d.createElement(o, { pageSource: c }) })).catch((e) => (console.error(`❌ Failed to load ${c}:`, e), { default: () => /* @__PURE__ */ d.createElement(o, {
@@ -20463,16 +20505,16 @@ function kv({ importPage: e, LayoutDefault: t = void 0, menuConfig: n = {}, chil
20463
20505
  key: r.path,
20464
20506
  reportUrl: i.errorReportUrl,
20465
20507
  debug: i.debug
20466
- }, /* @__PURE__ */ d.createElement(m, { fallback: /* @__PURE__ */ d.createElement(xv, null) }, /* @__PURE__ */ d.createElement(l, null))))
20508
+ }, /* @__PURE__ */ d.createElement(m, { fallback: /* @__PURE__ */ d.createElement(kv, null) }, /* @__PURE__ */ d.createElement(l, null))))
20467
20509
  });
20468
20510
  }
20469
- let c = (e) => Object.keys(e).flatMap((t) => e[t].flatMap((e, n) => [e.path && s(t, e, n), e.children && c({ children: e.children })].filter(Boolean))), l = (e, t) => e.some((e) => e.path === t || !!e.children && l(e.children, t)), u = Object.values(Tv).some((e) => l(e, "/")) ? {} : { default: [{ path: "/" }] };
20470
- return /* @__PURE__ */ d.createElement(Ov, i, r, /* @__PURE__ */ d.createElement(A, null, /* @__PURE__ */ d.createElement(k, {
20511
+ let c = (e) => Object.keys(e).flatMap((t) => e[t].flatMap((e, n) => [e.path && s(t, e, n), e.children && c({ children: e.children })].filter(Boolean))), l = (e, t) => e.some((e) => e.path === t || !!e.children && l(e.children, t)), u = Object.values(Nv).some((e) => l(e, "/")) ? {} : { default: [{ path: "/" }] };
20512
+ return /* @__PURE__ */ d.createElement(Iv, i, r, /* @__PURE__ */ d.createElement(A, null, /* @__PURE__ */ d.createElement(k, {
20471
20513
  path: Si,
20472
20514
  element: /* @__PURE__ */ d.createElement(ki, null)
20473
20515
  }), /* @__PURE__ */ d.createElement(d.Fragment, null, c({
20474
20516
  ...u,
20475
- ...Tv,
20517
+ ...Nv,
20476
20518
  _auth: [{
20477
20519
  path: "/users",
20478
20520
  page: Cg,
@@ -20483,8 +20525,8 @@ function kv({ importPage: e, LayoutDefault: t = void 0, menuConfig: n = {}, chil
20483
20525
  element: /* @__PURE__ */ d.createElement(wg, null)
20484
20526
  })));
20485
20527
  }
20486
- var Av = (e) => {
20487
- let t = Dv(e), n = j(), r = (e) => e.map((e) => {
20528
+ var Rv = (e) => {
20529
+ let t = Fv(e), n = j(), r = (e) => e.map((e) => {
20488
20530
  let t = n.pathname === e.path, i = e.children ? r(e.children) : [], a = t || i.some((e) => e.active);
20489
20531
  return {
20490
20532
  ...e,
@@ -20493,7 +20535,7 @@ var Av = (e) => {
20493
20535
  };
20494
20536
  });
20495
20537
  return C(() => r(t), [n.pathname]);
20496
- }, jv = {
20538
+ }, zv = {
20497
20539
  common: {
20498
20540
  save: "Salva",
20499
20541
  cancel: "Annulla",
@@ -20837,7 +20879,7 @@ var Av = (e) => {
20837
20879
  dataTable: "Dati del grafico",
20838
20880
  sequence: "Sequenza"
20839
20881
  }
20840
- }, Mv = {
20882
+ }, Bv = {
20841
20883
  common: {
20842
20884
  save: "Speichern",
20843
20885
  cancel: "Abbrechen",
@@ -21181,7 +21223,7 @@ var Av = (e) => {
21181
21223
  dataTable: "Diagrammdaten",
21182
21224
  sequence: "Abfolge"
21183
21225
  }
21184
- }, Nv = {
21226
+ }, Vv = {
21185
21227
  common: {
21186
21228
  save: "Сохранить",
21187
21229
  cancel: "Отменить",
@@ -21525,7 +21567,7 @@ var Av = (e) => {
21525
21567
  dataTable: "Данные диаграммы",
21526
21568
  sequence: "Последовательность"
21527
21569
  }
21528
- }, Pv = {
21570
+ }, Hv = {
21529
21571
  common: {
21530
21572
  save: "保存",
21531
21573
  cancel: "取消",
@@ -21869,7 +21911,7 @@ var Av = (e) => {
21869
21911
  dataTable: "图表数据",
21870
21912
  sequence: "顺序"
21871
21913
  }
21872
- }, Fv = {
21914
+ }, Uv = {
21873
21915
  common: {
21874
21916
  save: "حفظ",
21875
21917
  cancel: "إلغاء",
@@ -22213,22 +22255,22 @@ var Av = (e) => {
22213
22255
  dataTable: "بيانات المخطط",
22214
22256
  sequence: "التسلسل"
22215
22257
  }
22216
- }, Iv = /* @__PURE__ */ at({
22217
- ar: () => Fv,
22218
- de: () => Mv,
22258
+ }, Wv = /* @__PURE__ */ at({
22259
+ ar: () => Uv,
22260
+ de: () => Bv,
22219
22261
  en: () => Ln,
22220
- it: () => jv,
22221
- ru: () => Nv,
22222
- zh: () => Pv
22223
- }), Lv = (e) => Wa("api", e);
22262
+ it: () => zv,
22263
+ ru: () => Vv,
22264
+ zh: () => Hv
22265
+ }), Gv = (e) => Wa("api", e);
22224
22266
  //#endregion
22225
22267
  //#region src/providers/api/direct.ts
22226
- async function Rv(e) {
22268
+ async function Kv(e) {
22227
22269
  if (!e.ok) throw Error(`ApiProvider request failed: ${e.status} ${e.statusText}`);
22228
22270
  let t = await e.text();
22229
22271
  return t ? JSON.parse(t) : void 0;
22230
22272
  }
22231
- var zv = class {
22273
+ var qv = class {
22232
22274
  config;
22233
22275
  constructor(e) {
22234
22276
  this.config = e;
@@ -22243,7 +22285,7 @@ var zv = class {
22243
22285
  ...e.body,
22244
22286
  ...this.config.body
22245
22287
  };
22246
- return Rv(await Pu(n.toString(), {
22288
+ return Kv(await Pu(n.toString(), {
22247
22289
  method: t,
22248
22290
  headers: {
22249
22291
  "Content-Type": "application/json",
@@ -22252,7 +22294,7 @@ var zv = class {
22252
22294
  body: t === "GET" || t === "HEAD" ? void 0 : JSON.stringify(r)
22253
22295
  }));
22254
22296
  }
22255
- }, Bv = class {
22297
+ }, Jv = class {
22256
22298
  resolver;
22257
22299
  constructor(e) {
22258
22300
  this.resolver = e;
@@ -22260,7 +22302,7 @@ var zv = class {
22260
22302
  async fetch(e) {
22261
22303
  return this.resolver(e);
22262
22304
  }
22263
- }, Vv = class {
22305
+ }, Yv = class {
22264
22306
  config;
22265
22307
  constructor(e) {
22266
22308
  this.config = e;
@@ -22271,7 +22313,7 @@ var zv = class {
22271
22313
  request: e
22272
22314
  }, void 0, this.config.region);
22273
22315
  }
22274
- }, Hv = class {
22316
+ }, Xv = class {
22275
22317
  config;
22276
22318
  constructor(e) {
22277
22319
  this.config = e;
@@ -22284,7 +22326,7 @@ var zv = class {
22284
22326
  if (n) throw n;
22285
22327
  return t;
22286
22328
  }
22287
- }, Uv = [
22329
+ }, Zv = [
22288
22330
  {
22289
22331
  id: "resend",
22290
22332
  label: "Resend",
@@ -22395,7 +22437,7 @@ var zv = class {
22395
22437
  ],
22396
22438
  credentialsHint: "Ask your mail host or hosting provider for the SMTP host, port, and credentials."
22397
22439
  }
22398
- ], Wv = [
22440
+ ], Qv = [
22399
22441
  {
22400
22442
  id: "cloudflare_pages",
22401
22443
  label: "Cloudflare Pages",
@@ -22625,10 +22667,11 @@ var zv = class {
22625
22667
  description: "No vendor — packages the build as a downloadable archive for self-hosting anywhere else.",
22626
22668
  credentialFields: []
22627
22669
  }
22628
- ], Gv = [
22670
+ ], $v = [
22629
22671
  nv,
22630
- fv,
22672
+ bv,
22631
22673
  uv,
22674
+ vv,
22632
22675
  K_,
22633
22676
  Q_,
22634
22677
  w_,
@@ -22651,7 +22694,7 @@ var zv = class {
22651
22694
  credentialsHint: "Zhipu BigModel → User Center → API Keys → Create Key."
22652
22695
  }),
22653
22696
  tv
22654
- ], Kv = (e) => ({
22697
+ ], ey = (e) => ({
22655
22698
  id: e.id,
22656
22699
  label: e.label,
22657
22700
  description: e.description ?? "",
@@ -22662,7 +22705,7 @@ var zv = class {
22662
22705
  }],
22663
22706
  credentialsUrl: e.dashboardUrl,
22664
22707
  credentialsHint: e.credentialsHint
22665
- }), qv = [...Gv.map(Kv), G_], Jv = {
22708
+ }), ty = [...$v.map(ey), G_], ny = {
22666
22709
  id: "openai-compatible",
22667
22710
  label: "OpenAI-compatible",
22668
22711
  description: "Any OpenAI-compatible endpoint (self-hosted or third-party).",
@@ -22676,7 +22719,7 @@ var zv = class {
22676
22719
  type: "text",
22677
22720
  placeholder: "https://api.example.com/v1"
22678
22721
  }]
22679
- }, Yv = (e) => {
22722
+ }, ry = (e) => {
22680
22723
  let t = [], n = e?.cloudflare?.accountId?.trim();
22681
22724
  n && t.push(W_({
22682
22725
  accountId: n,
@@ -22696,10 +22739,10 @@ var zv = class {
22696
22739
  modelsUrl: e?.openAICompatible?.modelsUrl?.trim() || void 0,
22697
22740
  chatCompletionsUrl: e?.openAICompatible?.chatCompletionsUrl?.trim() || void 0
22698
22741
  })] : t;
22699
- }, Xv = (e) => e ? [...Gv, ...Yv(e)].reduce((t, n) => {
22742
+ }, iy = (e) => e ? [...$v, ...ry(e)].reduce((t, n) => {
22700
22743
  let r = n.id === "openai-compatible" ? e.openAICompatible?.apiKey?.trim() || "" : n.id === "cloudflare" ? e.cloudflare?.apiToken?.trim() || "" : typeof n.configKey == "string" && typeof e[n.configKey] == "string" ? String(e[n.configKey] || "").trim() : "";
22701
22744
  return r && (t[n.id] = new Ku(n, r)), t;
22702
- }, {}) : {}, Zv = (e, { scope: t }) => Xv(e.reduce((e, r) => {
22745
+ }, {}) : {}, ay = (e, { scope: t }) => iy(e.reduce((e, r) => {
22703
22746
  let i = n(t, r.id);
22704
22747
  if (r.id === "openai-compatible") return r.baseUrl ? {
22705
22748
  ...e,
@@ -22717,37 +22760,37 @@ var zv = class {
22717
22760
  accountId: r.accountId
22718
22761
  }
22719
22762
  } : e;
22720
- let a = Gv.find((e) => e.id === r.id)?.configKey;
22763
+ let a = $v.find((e) => e.id === r.id)?.configKey;
22721
22764
  return a ? {
22722
22765
  ...e,
22723
22766
  [a]: i
22724
22767
  } : e;
22725
- }, {})), Qv = void 0;
22768
+ }, {})), oy = void 0;
22726
22769
  typeof Ya == "function" && Ya((e) => {
22727
- Qv = e.google;
22770
+ oy = e.google;
22728
22771
  });
22729
- var $v = {
22772
+ var sy = {
22730
22773
  ita: "geoTargetConstants/2380",
22731
22774
  rome: "geoTargetConstants/1033236",
22732
22775
  mil: "geoTargetConstants/1033239",
22733
22776
  nap: "geoTargetConstants/1033245",
22734
22777
  tor: "geoTargetConstants/1033247"
22735
- }, ey = {
22778
+ }, cy = {
22736
22779
  it: "languageConstants/1000",
22737
22780
  en: "languageConstants/1001",
22738
22781
  fr: "languageConstants/1002",
22739
22782
  es: "languageConstants/1003",
22740
22783
  de: "languageConstants/1005"
22741
22784
  };
22742
- function ty(e) {
22743
- return $v[e.toLowerCase()] || "geoTargetConstants/2380";
22785
+ function ly(e) {
22786
+ return sy[e.toLowerCase()] || "geoTargetConstants/2380";
22744
22787
  }
22745
- function ny(e) {
22746
- return ey[e.toLowerCase()] || "languageConstants/1000";
22788
+ function uy(e) {
22789
+ return cy[e.toLowerCase()] || "languageConstants/1000";
22747
22790
  }
22748
- async function ry({ keyword: e, googleAdsAccountId: t, geoCode: n = "ita", languageCode: r = "it" }) {
22749
- if (!Qv?.developerToken) return console.error("\n❌ Google Ads API: developerToken non configurato.\n\nPer ottenere un developerToken segui questi passaggi:\n\n1️⃣ Vai su https://ads.google.com/aw/apicenter\n2️⃣ Seleziona o crea un account Google Ads Manager (MCC) se non ne hai uno.\n3️⃣ Vai alla sezione \"Strumenti e impostazioni\" → \"Accesso API\" (o \"API Center\").\n4️⃣ Clicca su \"Richiedi accesso API\" se non l'hai ancora fatto.\n5️⃣ Copia il valore del tuo Developer Token (è un identificatore simile a: 'ABc123456789xyz').\n6️⃣ Inseriscilo nel tuo file di configurazione, nella sezione:\n config.google.developerToken\n\nℹ️ Attenzione: Inizialmente il token sarà in modalità di test. Per usarlo in produzione, dovrai richiedere l'approvazione da Google Ads.\n"), [];
22750
- let i = await m_(["https://www.googleapis.com/auth/adwords"]), a = ty(n), o = ny(r), s = `https://googleads.googleapis.com/v13/customers/${t}:generateKeywordIdeas`, c = {
22791
+ async function dy({ keyword: e, googleAdsAccountId: t, geoCode: n = "ita", languageCode: r = "it" }) {
22792
+ if (!oy?.developerToken) return console.error("\n❌ Google Ads API: developerToken non configurato.\n\nPer ottenere un developerToken segui questi passaggi:\n\n1️⃣ Vai su https://ads.google.com/aw/apicenter\n2️⃣ Seleziona o crea un account Google Ads Manager (MCC) se non ne hai uno.\n3️⃣ Vai alla sezione \"Strumenti e impostazioni\" → \"Accesso API\" (o \"API Center\").\n4️⃣ Clicca su \"Richiedi accesso API\" se non l'hai ancora fatto.\n5️⃣ Copia il valore del tuo Developer Token (è un identificatore simile a: 'ABc123456789xyz').\n6️⃣ Inseriscilo nel tuo file di configurazione, nella sezione:\n config.google.developerToken\n\nℹ️ Attenzione: Inizialmente il token sarà in modalità di test. Per usarlo in produzione, dovrai richiedere l'approvazione da Google Ads.\n"), [];
22793
+ let i = await m_(["https://www.googleapis.com/auth/adwords"]), a = ly(n), o = uy(r), s = `https://googleads.googleapis.com/v13/customers/${t}:generateKeywordIdeas`, c = {
22751
22794
  keywordSeed: { keywords: [e] },
22752
22795
  geoTargetConstants: [a],
22753
22796
  language: o
@@ -22755,7 +22798,7 @@ async function ry({ keyword: e, googleAdsAccountId: t, geoCode: n = "ita", langu
22755
22798
  method: "POST",
22756
22799
  headers: {
22757
22800
  Authorization: `Bearer ${i}`,
22758
- "developer-token": Qv.developerToken,
22801
+ "developer-token": oy.developerToken,
22759
22802
  "Content-Type": "application/json"
22760
22803
  },
22761
22804
  body: JSON.stringify(c)
@@ -22773,7 +22816,7 @@ async function ry({ keyword: e, googleAdsAccountId: t, geoCode: n = "ita", langu
22773
22816
  }
22774
22817
  //#endregion
22775
22818
  //#region src/providers/seo/google/trend.ts
22776
- async function iy(e, t = "IT", n = "today 12-m") {
22819
+ async function fy(e, t = "IT", n = "today 12-m") {
22777
22820
  let r = `https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({
22778
22821
  comparisonItem: [{
22779
22822
  keyword: e,
@@ -22793,7 +22836,7 @@ async function iy(e, t = "IT", n = "today 12-m") {
22793
22836
  }))
22794
22837
  };
22795
22838
  }
22796
- async function ay(e, t = "IT", n = "today 12-m") {
22839
+ async function py(e, t = "IT", n = "today 12-m") {
22797
22840
  let r = `https://trends.google.com/trends/api/explore?hl=en-US&tz=0&req=${encodeURIComponent(JSON.stringify({
22798
22841
  comparisonItem: [{
22799
22842
  keyword: e,
@@ -22819,13 +22862,13 @@ async function ay(e, t = "IT", n = "today 12-m") {
22819
22862
  }
22820
22863
  //#endregion
22821
22864
  //#region src/providers/storage/dropbox.tsx
22822
- var oy = 5e3, sy = "https://www.dropbox.com/home", cy = void 0;
22865
+ var my = 5e3, hy = "https://www.dropbox.com/home", gy = void 0;
22823
22866
  typeof Ya == "function" && Ya((e) => {
22824
- cy = e.dropbox;
22867
+ gy = e.dropbox;
22825
22868
  });
22826
- var ly = async (e, t, n = {}) => {
22827
- if (!cy) return console.error("DropBox: Config not found"), null;
22828
- let r = await Pi(cy.clientId);
22869
+ var _y = async (e, t, n = {}) => {
22870
+ if (!gy) return console.error("DropBox: Config not found"), null;
22871
+ let r = await Pi(gy.clientId);
22829
22872
  if (!r) throw Error("DropBox: Access token not found");
22830
22873
  return await fetch(e, {
22831
22874
  method: "POST",
@@ -22838,12 +22881,12 @@ var ly = async (e, t, n = {}) => {
22838
22881
  }).catch((e) => (console.error("There was a problem with the fetch operation:", e), null)).finally(() => {
22839
22882
  console.log("DropBox: Fetch operation completed");
22840
22883
  });
22841
- }, uy = async (e, t, n = {}) => {
22842
- if (!cy) {
22884
+ }, vy = async (e, t, n = {}) => {
22885
+ if (!gy) {
22843
22886
  console.error("DropBox: Config not found");
22844
22887
  return;
22845
22888
  }
22846
- let r = await Pi(cy.clientId);
22889
+ let r = await Pi(gy.clientId);
22847
22890
  if (!r) {
22848
22891
  console.error("DropBox: Access token not found");
22849
22892
  return;
@@ -22868,47 +22911,47 @@ var ly = async (e, t, n = {}) => {
22868
22911
  }).finally(() => {
22869
22912
  console.log("DropBox: Fetch operation completed", e, t);
22870
22913
  });
22871
- }, dy = (e, t = !1) => {
22872
- let n = cy?.rootPath || "";
22873
- return (t ? sy : "") + (e.startsWith(n) ? e : n + e);
22874
- }, fy = async (e, t = "", n = !1) => {
22914
+ }, yy = (e, t = !1) => {
22915
+ let n = gy?.rootPath || "";
22916
+ return (t ? hy : "") + (e.startsWith(n) ? e : n + e);
22917
+ }, by = async (e, t = "", n = !1) => {
22875
22918
  let r = {};
22876
- return (await Ey.listFolders({
22919
+ return (await Py.listFolders({
22877
22920
  path: `${e + t}`,
22878
22921
  recursive: !0
22879
22922
  })).forEach((e) => {
22880
22923
  e[".tag"] !== "folder" && (r[n ? _i.changeFilename(e.path_display, { ext: "" }) : e.path_display] = e.name);
22881
22924
  }), r;
22882
- }, py = async (e, t) => {
22925
+ }, xy = async (e, t) => {
22883
22926
  if (!e.async_job_id) return Promise.reject(e);
22884
22927
  let n, r = !0;
22885
- for (; r;) await xt(100), n = await uy(`https://api.dropboxapi.com/2/${t}/check`, { async_job_id: e.async_job_id }), console.log("DropBox: Check folders response: ", n), n?.[".tag"] !== "in_progress" && (r = !1);
22928
+ for (; r;) await xt(100), n = await vy(`https://api.dropboxapi.com/2/${t}/check`, { async_job_id: e.async_job_id }), console.log("DropBox: Check folders response: ", n), n?.[".tag"] !== "in_progress" && (r = !1);
22886
22929
  return n?.[".tag"] === "complete" ? Promise.resolve(n.entries) : Promise.reject(n);
22887
- }, my = async (e, t = "") => {
22888
- let n = "files/create_folder_batch", r = await uy(`https://api.dropboxapi.com/2/${n}`, {
22930
+ }, Sy = async (e, t = "") => {
22931
+ let n = "files/create_folder_batch", r = await vy(`https://api.dropboxapi.com/2/${n}`, {
22889
22932
  autorename: !1,
22890
22933
  force_async: !0,
22891
- paths: e.map((e) => dy(t + e))
22934
+ paths: e.map((e) => yy(t + e))
22892
22935
  });
22893
- return r ? py(r, n) : void 0;
22894
- }, hy = async (e, t = "") => {
22895
- let n = "files/create_folder_batch", r = await uy(`https://api.dropboxapi.com/2/${n}`, { entries: e.map((e) => ({ path: dy(t + e) })) });
22896
- return r ? py(r, n) : void 0;
22897
- }, gy = async (e, t) => uy("https://api.dropboxapi.com/2/files/tags/add", {
22936
+ return r ? xy(r, n) : void 0;
22937
+ }, Cy = async (e, t = "") => {
22938
+ let n = "files/create_folder_batch", r = await vy(`https://api.dropboxapi.com/2/${n}`, { entries: e.map((e) => ({ path: yy(t + e) })) });
22939
+ return r ? xy(r, n) : void 0;
22940
+ }, wy = async (e, t) => vy("https://api.dropboxapi.com/2/files/tags/add", {
22898
22941
  path: e,
22899
22942
  tag_text: t.toLowerCase().replaceAll(/[^a-z0-9]/g, "")
22900
- }), _y = async (e, t = "") => {
22901
- for (let n in e) for (let r of e[n]) await gy(dy(t + n), r);
22902
- }, vy = async ({ path: e = "", recursive: t = !1 } = {}) => {
22903
- let n = [], r = async ({ path: e, cursor: t, recursive: n }) => e ? await uy("https://api.dropboxapi.com/2/files/list_folder", {
22943
+ }), Ty = async (e, t = "") => {
22944
+ for (let n in e) for (let r of e[n]) await wy(yy(t + n), r);
22945
+ }, Ey = async ({ path: e = "", recursive: t = !1 } = {}) => {
22946
+ let n = [], r = async ({ path: e, cursor: t, recursive: n }) => e ? await vy("https://api.dropboxapi.com/2/files/list_folder", {
22904
22947
  include_deleted: !1,
22905
22948
  include_has_explicit_shared_members: !1,
22906
22949
  include_media_info: !1,
22907
22950
  include_mounted_folders: !0,
22908
22951
  include_non_downloadable_files: !0,
22909
- path: dy(e),
22952
+ path: yy(e),
22910
22953
  recursive: n
22911
- }) : await uy("https://api.dropboxapi.com/2/files/list_folder/continue", { cursor: t }), i = {
22954
+ }) : await vy("https://api.dropboxapi.com/2/files/list_folder/continue", { cursor: t }), i = {
22912
22955
  has_more: !0,
22913
22956
  cursor: "",
22914
22957
  entries: []
@@ -22921,44 +22964,44 @@ var ly = async (e, t, n = {}) => {
22921
22964
  recursive: t
22922
22965
  }), i && n.push(...i.entries);
22923
22966
  return n;
22924
- }, yy = async (e) => {
22925
- let t = async (e) => await uy("https://api.dropboxapi.com/2/files/copy_batch_v2", {
22967
+ }, Dy = async (e) => {
22968
+ let t = async (e) => await vy("https://api.dropboxapi.com/2/files/copy_batch_v2", {
22926
22969
  entries: e,
22927
22970
  autorename: !1
22928
- }), n = async (e) => await uy("https://api.dropboxapi.com/2/files/copy_batch/check_v2", { async_job_id: e }), r = [], i = [];
22971
+ }), n = async (e) => await vy("https://api.dropboxapi.com/2/files/copy_batch/check_v2", { async_job_id: e }), r = [], i = [];
22929
22972
  for (let a = 0; a < e.length; a += 900) {
22930
22973
  i = e.slice(a, a + 900).map((e) => ({
22931
- from_path: dy(e.from),
22932
- to_path: dy(e.to)
22974
+ from_path: yy(e.from),
22975
+ to_path: yy(e.to)
22933
22976
  }));
22934
22977
  let o = await t(i);
22935
22978
  if (!o) continue;
22936
22979
  if (o.error) throw Error(`Error starting copy: ${o.error}`);
22937
22980
  let s = o;
22938
- for (; s?.[".tag"] === "async_job_id" || s?.[".tag"] === "in_progress";) await xt(oy), s = await n(o.async_job_id ?? "");
22981
+ for (; s?.[".tag"] === "async_job_id" || s?.[".tag"] === "in_progress";) await xt(my), s = await n(o.async_job_id ?? "");
22939
22982
  if (s?.[".tag"] === "failed") throw Error(`Copy operation failed: ${s[".tag"]}`);
22940
22983
  s?.[".tag"] === "complete" && s.entries && r.push(...s.entries);
22941
22984
  }
22942
22985
  return r.filter((e) => e[".tag"] === "failure").map((e) => e.failure);
22943
- }, by = async (e) => {
22944
- let t = async (e) => await uy("https://api.dropboxapi.com/2/files/move_v2", {
22986
+ }, Oy = async (e) => {
22987
+ let t = async (e) => await vy("https://api.dropboxapi.com/2/files/move_v2", {
22945
22988
  ...e,
22946
22989
  autorename: !0
22947
22990
  });
22948
22991
  for (let n of e) await t({
22949
- from_path: dy(n.from),
22950
- to_path: dy(n.to)
22992
+ from_path: yy(n.from),
22993
+ to_path: yy(n.to)
22951
22994
  });
22952
- }, xy = async ({ thumbnailsRequest: e = [], size: t = "w64h64", format: n = "jpeg", mode: r = "strict" }, i) => {
22995
+ }, ky = async ({ thumbnailsRequest: e = [], size: t = "w64h64", format: n = "jpeg", mode: r = "strict" }, i) => {
22953
22996
  let a = {}, o = [];
22954
22997
  for (let s = 0; s < e.length; s += 25) {
22955
22998
  let c = e.slice(s, s + 25), l = c.map((e) => ({
22956
- path: dy(e.path),
22999
+ path: yy(e.path),
22957
23000
  format: n,
22958
23001
  size: t,
22959
23002
  mode: r
22960
23003
  }));
22961
- await xt(100), o.push(uy("https://content.dropboxapi.com/2/files/get_thumbnail_batch", { entries: l }).then((e) => {
23004
+ await xt(100), o.push(vy("https://content.dropboxapi.com/2/files/get_thumbnail_batch", { entries: l }).then((e) => {
22962
23005
  if (!e) return;
22963
23006
  let n = e.entries.reduce((e, n, r) => {
22964
23007
  let i = c[r].path, [a, o] = t.replace("w", "").split("h").map(Number), s = n;
@@ -22977,7 +23020,7 @@ var ly = async (e, t, n = {}) => {
22977
23020
  }));
22978
23021
  }
22979
23022
  return Promise.all(o).then(() => a);
22980
- }, Sy = (e, t = "application/octet-stream", n = 512) => {
23023
+ }, Ay = (e, t = "application/octet-stream", n = 512) => {
22981
23024
  let r = atob(e), i = [];
22982
23025
  for (let e = 0; e < r.length; e += n) {
22983
23026
  let t = r.slice(e, e + n), a = Array(t.length);
@@ -22986,11 +23029,11 @@ var ly = async (e, t, n = {}) => {
22986
23029
  i.push(o);
22987
23030
  }
22988
23031
  return new Blob(i, { type: t });
22989
- }, Cy = async (e, t) => {
23032
+ }, jy = async (e, t) => {
22990
23033
  try {
22991
23034
  let n = t.split(",")[1];
22992
- ly("https://content.dropboxapi.com/2/files/upload", Sy(n, "application/octet-stream"), { "Dropbox-API-Arg": JSON.stringify({
22993
- path: dy(e),
23035
+ _y("https://content.dropboxapi.com/2/files/upload", Ay(n, "application/octet-stream"), { "Dropbox-API-Arg": JSON.stringify({
23036
+ path: yy(e),
22994
23037
  mode: "overwrite",
22995
23038
  autorename: !0,
22996
23039
  mute: !1
@@ -23000,12 +23043,12 @@ var ly = async (e, t, n = {}) => {
23000
23043
  } catch (e) {
23001
23044
  console.error("Errore durante il caricamento su Dropbox:", e);
23002
23045
  }
23003
- }, wy = (e = !1) => cy ? ji(cy.clientId, e) : !1, Ty = (e = {}) => {
23004
- if (!cy) return /* @__PURE__ */ d.createElement("div", {
23046
+ }, My = (e = !1) => gy ? ji(gy.clientId, e) : !1, Ny = (e = {}) => {
23047
+ if (!gy) return /* @__PURE__ */ d.createElement("div", {
23005
23048
  title: "DropBox: configurazione mancante. Recupera il \"Client ID\" accedendo a https://www.dropbox.com/developers, vai su \"App Console\", seleziona un'app esistente o chiedi il Client ID a chi ha configurato il sistema.",
23006
23049
  className: "text-danger flex items-center gap-2"
23007
23050
  }, /* @__PURE__ */ d.createElement(Q, { name: "warning" }), /* @__PURE__ */ d.createElement("span", null, "Dropbox non configurato"));
23008
- let t = wy(!0);
23051
+ let t = My(!0);
23009
23052
  return /* @__PURE__ */ d.createElement(Ii, {
23010
23053
  provider: "dropboxAuth",
23011
23054
  intent: "connect",
@@ -23017,33 +23060,33 @@ var ly = async (e, t, n = {}) => {
23017
23060
  title: t ? "DropBox Connected" : "DropBox Disconnected"
23018
23061
  }
23019
23062
  });
23020
- }, Ey = {
23063
+ }, Py = {
23021
23064
  setRootPath: (e) => {
23022
- cy && (cy.rootPath = e);
23023
- },
23024
- resolvePath: dy,
23025
- createFolders: my,
23026
- deleteBulk: hy,
23027
- addTags: _y,
23028
- listFolders: vy,
23029
- getThumbnails: xy,
23030
- search: fy,
23031
- upload: Cy,
23032
- copy: yy,
23033
- move: by
23034
- }, Dy = "https://api.serpapi.com/search", Oy = "google", ky = "google_images", Ay = "google_autocomplete", jy = "google_trends", My = "google_maps", Ny = "google_maps_photos", Py = "google_maps_reviews", Fy = {
23065
+ gy && (gy.rootPath = e);
23066
+ },
23067
+ resolvePath: yy,
23068
+ createFolders: Sy,
23069
+ deleteBulk: Cy,
23070
+ addTags: Ty,
23071
+ listFolders: Ey,
23072
+ getThumbnails: ky,
23073
+ search: by,
23074
+ upload: jy,
23075
+ copy: Dy,
23076
+ move: Oy
23077
+ }, Fy = "https://api.serpapi.com/search", Iy = "google", Ly = "google_images", Ry = "google_autocomplete", zy = "google_trends", By = "google_maps", Vy = "google_maps_photos", Hy = "google_maps_reviews", Uy = {
23035
23078
  engine: null,
23036
23079
  device: null,
23037
23080
  no_cache: !1,
23038
23081
  async: !1,
23039
23082
  output: "json"
23040
- }, Iy = { q: null }, Ly = {
23083
+ }, Wy = { q: null }, Gy = {
23041
23084
  tbs: null,
23042
23085
  safe: "active",
23043
23086
  nfpr: 0,
23044
23087
  filter: 1
23045
23088
  };
23046
- function Ry(e) {
23089
+ function Ky(e) {
23047
23090
  let t = uu(), n = uu(!0), r = du(!0), i = {
23048
23091
  location: t,
23049
23092
  uule: null
@@ -23061,13 +23104,13 @@ function Ry(e) {
23061
23104
  hl: r
23062
23105
  };
23063
23106
  return {
23064
- [Oy]: {
23065
- ...Fy,
23107
+ [Iy]: {
23108
+ ...Uy,
23066
23109
  ...i,
23067
23110
  ...o,
23068
- ...Ly,
23069
- ...Iy,
23070
- engine: Oy,
23111
+ ...Gy,
23112
+ ...Wy,
23113
+ engine: Iy,
23071
23114
  ludocid: null,
23072
23115
  lsig: null,
23073
23116
  kgmid: null,
@@ -23076,29 +23119,29 @@ function Ry(e) {
23076
23119
  start: null,
23077
23120
  num: null
23078
23121
  },
23079
- [ky]: {
23080
- ...Fy,
23122
+ [Ly]: {
23123
+ ...Uy,
23081
23124
  ...i,
23082
23125
  ...o,
23083
- ...Ly,
23084
- ...Iy,
23085
- engine: ky,
23126
+ ...Gy,
23127
+ ...Wy,
23128
+ engine: Ly,
23086
23129
  chips: null,
23087
23130
  ijn: null
23088
23131
  },
23089
- [Ay]: {
23090
- ...Fy,
23132
+ [Ry]: {
23133
+ ...Uy,
23091
23134
  ...o,
23092
- ...Iy,
23093
- engine: Ay,
23135
+ ...Wy,
23136
+ engine: Ry,
23094
23137
  cp: null,
23095
23138
  client: null
23096
23139
  },
23097
- [jy]: {
23098
- ...Fy,
23140
+ [zy]: {
23141
+ ...Uy,
23099
23142
  ...a,
23100
- ...Iy,
23101
- engine: jy,
23143
+ ...Wy,
23144
+ engine: zy,
23102
23145
  data_type: null,
23103
23146
  tz: null,
23104
23147
  cat: null,
@@ -23106,73 +23149,73 @@ function Ry(e) {
23106
23149
  date: null,
23107
23150
  csv: null
23108
23151
  },
23109
- [My]: {
23110
- ...Fy,
23152
+ [By]: {
23153
+ ...Uy,
23111
23154
  ...i,
23112
23155
  ...o,
23113
- ...Ly,
23114
- ...Iy,
23115
- engine: My
23156
+ ...Gy,
23157
+ ...Wy,
23158
+ engine: By
23116
23159
  },
23117
- [Ny]: {
23118
- ...Fy,
23160
+ [Vy]: {
23161
+ ...Uy,
23119
23162
  ...s,
23120
- engine: Ny
23163
+ engine: Vy
23121
23164
  },
23122
- [Py]: {
23123
- ...Fy,
23165
+ [Hy]: {
23166
+ ...Uy,
23124
23167
  ...s,
23125
- engine: Py
23168
+ engine: Hy
23126
23169
  }
23127
23170
  }[e] ?? {};
23128
23171
  }
23129
- var zy = void 0;
23172
+ var qy = void 0;
23130
23173
  typeof Ya == "function" && Ya((e) => {
23131
- zy = e.scrape;
23174
+ qy = e.scrape;
23132
23175
  });
23133
- function By(e) {
23176
+ function Jy(e) {
23134
23177
  let t = {};
23135
23178
  for (let n in e) e[n] !== null && (t[n] = e[n]);
23136
23179
  return t;
23137
23180
  }
23138
- var Vy = 0;
23139
- function Hy(e = !1) {
23140
- let t = zy?.serpApiKey?.split(",").map((e) => e.trim()).filter(Boolean) || [];
23141
- return t.length === 0 ? null : (e && Vy++, Vy < t.length ? t[Vy] : null);
23181
+ var Yy = 0;
23182
+ function Xy(e = !1) {
23183
+ let t = qy?.serpApiKey?.split(",").map((e) => e.trim()).filter(Boolean) || [];
23184
+ return t.length === 0 ? null : (e && Yy++, Yy < t.length ? t[Yy] : null);
23142
23185
  }
23143
- var Uy = async (e, t) => {
23186
+ var Zy = async (e, t) => {
23144
23187
  let n = (n) => {
23145
- let r = By({
23146
- ...Ry(t),
23188
+ let r = Jy({
23189
+ ...Ky(t),
23147
23190
  api_key: n,
23148
23191
  q: e
23149
23192
  });
23150
- return console.log(Dy, r), `${Dy}?${new URLSearchParams(r)}`;
23151
- }, r = Hy();
23193
+ return console.log(Fy, r), `${Fy}?${new URLSearchParams(r)}`;
23194
+ }, r = Xy();
23152
23195
  for (; r;) try {
23153
23196
  return await tn(n(r));
23154
23197
  } catch (e) {
23155
23198
  if (e?.error === "quota_exceeded") {
23156
- console.warn(`SerpApi: invalid api key: ${r}`, e), r = Hy(!0);
23199
+ console.warn(`SerpApi: invalid api key: ${r}`, e), r = Xy(!0);
23157
23200
  continue;
23158
23201
  }
23159
23202
  throw console.error(`SerpApi: ${r}`, e), e;
23160
23203
  }
23161
23204
  return null;
23162
- }, Wy = async (e, t, n) => {
23205
+ }, Qy = async (e, t, n) => {
23163
23206
  let r = `${eo}/${yt(t)}/${yt(e)}`, i = await n.read(r);
23164
23207
  if (i) return i;
23165
- let a = await Uy(e, t);
23208
+ let a = await Zy(e, t);
23166
23209
  return a ? n.set(r, a) : console.warn(`SerpApi ${t}: No Result`), a ?? {};
23167
- }, Gy = (e) => ({
23168
- googleSearch: async (t) => Wy(t, Oy, e),
23169
- googleImages: async (t) => Wy(t, ky, e),
23170
- googleAutocomplete: async (t) => Wy(t, Ay, e),
23171
- googleTrends: async (t) => Wy(t, jy, e),
23172
- googleMaps: async (t) => Wy(t, My, e),
23173
- googleMapsPhotos: async (t) => Wy(t, Ny, e),
23174
- googleMapsReviews: async (t) => Wy(t, Py, e)
23175
- }), Ky = {
23210
+ }, $y = (e) => ({
23211
+ googleSearch: async (t) => Qy(t, Iy, e),
23212
+ googleImages: async (t) => Qy(t, Ly, e),
23213
+ googleAutocomplete: async (t) => Qy(t, Ry, e),
23214
+ googleTrends: async (t) => Qy(t, zy, e),
23215
+ googleMaps: async (t) => Qy(t, By, e),
23216
+ googleMapsPhotos: async (t) => Qy(t, Vy, e),
23217
+ googleMapsReviews: async (t) => Qy(t, Hy, e)
23218
+ }), eb = {
23176
23219
  "+": "+",
23177
23220
  "﹢": "+",
23178
23221
  "-": "-",
@@ -23247,7 +23290,7 @@ var Uy = async (e, t) => {
23247
23290
  x: "x",
23248
23291
  y: "y",
23249
23292
  z: "z"
23250
- }, qy = {
23293
+ }, tb = {
23251
23294
  email: {
23252
23295
  description: "Email: no spaces -> Lower/Trim",
23253
23296
  transformations: [{
@@ -23293,7 +23336,7 @@ var Uy = async (e, t) => {
23293
23336
  transformations: [],
23294
23337
  mask: ["toSlug"]
23295
23338
  }
23296
- }, Jy = [
23339
+ }, nb = [
23297
23340
  {
23298
23341
  pattern: "email*",
23299
23342
  use: "email"
@@ -23310,24 +23353,24 @@ var Uy = async (e, t) => {
23310
23353
  pattern: "date*",
23311
23354
  use: "date"
23312
23355
  }
23313
- ], Yy = new RegExp(Object.keys(Ky).join("|"), "g");
23314
- function Xy(e) {
23315
- return e ? e.normalize("NFKC").replace(Yy, (e) => Ky[e] ?? e) : "";
23356
+ ], rb = new RegExp(Object.keys(eb).join("|"), "g");
23357
+ function ib(e) {
23358
+ return e ? e.normalize("NFKC").replace(rb, (e) => eb[e] ?? e) : "";
23316
23359
  }
23317
- var Zy = class {
23360
+ var ab = class {
23318
23361
  config;
23319
23362
  matches;
23320
23363
  constructor(e = {}, t = []) {
23321
23364
  this.config = {
23322
- ...qy,
23365
+ ...tb,
23323
23366
  ...e
23324
- }, this.matches = [...Jy, ...t];
23367
+ }, this.matches = [...nb, ...t];
23325
23368
  }
23326
23369
  apply(e, t, n = !1) {
23327
23370
  let r = this.config[e];
23328
23371
  if (!r) return n ? qt(t) : t;
23329
23372
  let i = t;
23330
- i = Xy(String(i ?? ""));
23373
+ i = ib(String(i ?? ""));
23331
23374
  let a = r.exclusions;
23332
23375
  if (Array.isArray(a) && a.length) {
23333
23376
  let e = String(i).toLowerCase();
@@ -23386,7 +23429,7 @@ var Zy = class {
23386
23429
  };
23387
23430
  //#endregion
23388
23431
  //#region src/libs/csv.ts
23389
- function Qy(e, t) {
23432
+ function ob(e, t) {
23390
23433
  let n = Re.parse(e, {
23391
23434
  header: !0,
23392
23435
  skipEmptyLines: !0,
@@ -23399,6 +23442,6 @@ function Qy(e, t) {
23399
23442
  };
23400
23443
  }
23401
23444
  //#endregion
23402
- export { Tu as AIProvider, Gv as AI_PROVIDER_DEFINITIONS, qv as AI_PROVIDER_DESCRIPTORS, a as AI_PROVIDER_HOSTS, ni as ActionButton, dm as AddressAutocomplete, ss as Alert, hc as AnimatedNumber, kv as App, Ov as AppProvider, ac as AreaChart, la as AsyncDropdown, Ii as AuthButton, hi as AuthProvider, bl as Autocomplete, bn as BUILT_IN_THEMES, gn as BUILT_IN_THEME_IDS, ri as BackLink, fr as Badge, dr as BadgeOverlay, lc as BarList, ga as Brand, wa as Breadcrumbs, G_ as CLOUDFLARE_PROVIDER_DESCRIPTOR, $u as CONTEXT_MENU_SEARCH_THRESHOLD, pc as CalendarHeatmap, Gi as Card, Ta as Carousel, Js as ChartDataTable, Ks as ChartLegend, Gh as ChatMarkdown, ig as ChatQuestions, qh as ChatReasoning, kd as Chatbot, tl as Checkbox, xl as Checklist, Os as Code, _f as CodeEditor, Zd as CodeSyntaxError, cr as Col, Kc as Color, Zs as ColumnChart, Hf as Component, Uf as ComponentBlock, or as Container, gd as ContextMenu, Gl as CropImage, Wm as DEFAULT_DOCUMENT_HEAD, Um as DEFAULT_HEAD_APP_NAME, Gm as DEFAULT_LANGUAGE_HEAD, ol as DEFAULT_ORDER, Ri as DataProvider, qc as Date, Yc as DateTime, us as DescriptionList, zv as DirectApiProviderAdapter, ec as DivergingBarChart, Ty as DropBoxConnectButton, d_ as DropboxAuthProvider, ca as Dropdown, ua as DropdownButton, pa as DropdownDivider, fa as DropdownHeader, da as DropdownItem, ma as DropdownMenu, Uv as EMAIL_PROVIDER_DEFINITIONS, Wc as Email, Lg as EmailProvider, zc as FieldError, Ql as FileNameEditor, Vv as FirebaseApiProviderAdapter, i_ as FirebaseAuthProvider, e_ as FirebaseDataProvider, qo as FirebaseStorageProvider, xo as FirestoreDataProvider, _p as Form, np as FormControllerContext, sg as Gallery, p_ as GitHubAuthProvider, g_ as GmailEmailProvider, ii as GoSite, Fg as GoogleAuthProvider, Qp as GoogleMapsProvider, l_ as GoogleServiceAccountProvider, Sg as Grid, xg as GridArray, bg as GridCore, Dm as GridDB, cg as GridGalleryView, Bm as GridTableView, bh as Head, ch as HeadProvider, dc as Heatmap, el as Hidden, qn as I18nProvider, Q as Icon, Ir as IconProvider, Ms as Identicon, ha as Image, vi as ImageAvatar, Ll as ImageEditor, zl as ImageField, Vc as Input, rl as Label, Xp as LayoutBuilder, ic as LineChart, mm as ListCard, al as ListGroup, Bi as Loader, ti as LoadingButton, _c as LocaleSwitcher, Tr as LucideIconProvider, Oh as MarkdownReader, uc as MeasureBarList, oa as Menu, Bv as MockApiProviderAdapter, Vo as MockDataProvider, na as Modal, aa as ModalOk, ia as ModalYesNo, Zc as Month, Ky as NORMALIZE_MAP, Da as Notifications, Uc as Number, Jv as OPENAI_COMPATIBLE_PROVIDER_DESCRIPTOR, ll as Order, Wv as PUBLISH_PROVIDER_DEFINITIONS, Cg as PageUsers, og as Pagination, Gc as Password, Cc as Percentage, Or as PhosphorIconProvider, Vd as Prompt, Ad as PromptMode, Qu as PromptUtils, is as ProviderSwitcher, Qc as Range, ai as ReferSite, Op as Repeat, zf as RichText, sr as Row, s as SERVER_CREDENTIAL_PREFIX, Zy as Sanitizer, sc as ScatterChart, ka as Search, vl as Select, $s as SequenceColumnChart, wm as SideNav, oc as Sparkline, Qs as StackedColumnChart, Pl as StorageProvider, Hc as String, Hv as SupabaseApiProviderAdapter, v_ as SupabaseAuthProvider, Po as SupabaseDataProvider, Jo as SupabaseStorageProvider, nl as Switch, Ip as Tab, ag as TabDynamic, Pp as TabItem, Np as TabLayouts, zp as Table, il as TextArea, za as ThemeSwitcher, Jc as Time, Ma as Toolbar, ms as Tree, fm as UploadCSV, ou as UploadDocument, su as UploadImage, $c as Url, Xc as Week, Z as Wrapper, Mt as arrayUnique, Lt as arraysEqual, It as base64Encode, Vt as base64ToBlob, Ht as base64ToUrl, _a as buildBreadcrumbSchema, c as buildModelIdentityIndex, fd as buildTextCommandContext, Br as buttonBaseClass, Ur as buttonDangerClass, Jr as buttonDarkClass, Kr as buttonInfoClass, qr as buttonLightClass, $r as buttonLinkClass, Zr as buttonOutlineDangerClass, Yr as buttonOutlinePrimaryClass, Xr as buttonOutlineSecondaryClass, Qr as buttonOutlineSuccessClass, Vr as buttonPrimaryClass, Hr as buttonSecondaryClass, Wr as buttonSuccessClass, Gr as buttonWarningClass, lo as callFirebaseFunction, i as canonicalModelName, Ps as chartFill, Ns as chartToken, Et as checkConditions, Wt as cleanRecord, X as cn, ju as configureProxy, dt as converter, ht as copyToClipboard, Dt as crc32, Xv as createAIProviderRegistry, W_ as createCloudflareProviderDefinition, _r as createMotionTransition, Zv as createServerCredentialAIRegistry, zn as createTranslations, mt as decodeJWT, Rn as defineLocaleMessages, bt as dirname, Ey as dropBox, Ct as eventClosest, tn as fetchJson, en as fetchRest, nn as fetchWithRetry, jc as fieldAddonClass, Oc as fieldControlBaseClass, Dc as fieldFeedbackClass, Ac as fieldGroupClass, Ec as fieldLabelClass, kc as fieldTextAreaBaseClass, Su as formatAIModelRef, St as generateUniqueId, Gu as getAIModelCatalog, Pi as getAccessToken, ld as getAutoClosedSuffixLength, cf as getCodeValidationResult, au as getFileUrl, di as getGlobalVars, iy as getGoogleTrendsData, ay as getGoogleTrendsRelated, ry as getKeywordIdeas, xi as getProviderConfigurationState, Ut as getRecordValue, Ap as getTabLayoutConfig, Mp as getTabPaneClassName, jp as getTabTriggerClassName, m_ as googleGetAccessToken, _d as groupModelOptions, cd as hasAutoClosedSuffix, js as identiconPattern, Bn as interpolate, At as intersectObjects, l as isAIProviderTarget, lr as isBadgeDescriptor, Nt as isEmpty, xu as isFreeAIModel, yd as isFreeModelOption, zt as isInteractiveElement, Iu as isProxyEnabled, ul as labelText, nm as loadGoogleMaps, o as loadModelIdentityIndex, kt as loadScripts, Iv as locales, ud as matchCommandTrigger, Ls as niceMax, ur as normalizeBadgeProps, yt as normalizeKey, _t as normalizePath, Xy as normalizeVisualChars, Cu as parseAIModelRef, Qy as parseCsvText, _i as path, Pu as proxyFetch, Kt as recordsEqual, Xo as registerProviderSessionFactory, pi as removeGlobalVars, Bt as render2Base64, Lh as repairStreamingMarkdown, Tt as replacePlaceholders, jt as replaceVariables, r as resolveModel, vr as resolveMotionEffect, Xd as runPrompt, Ft as safeClone, Rt as sanitizeKey, Gy as scrape, h_ as sendEmail, n as serverCredential, fi as setGlobalVars, xt as sleep, qt as smartTypeCast, wt as substrCount, Rs as ticks, Kv as toProviderDescriptor, hs as treeFromPaths, gt as trimPath, vt as trimSlash, Ot as ucfirst, Eu as useAIProvider, Du as useAIProviderRegistry, ji as useAccessToken, Hs as useAnimatedValues, Lv as useApiProvider, _h as useAssetsHead, gi as useAuthProvider, zs as useChartFormat, qs as useChartTooltip, Gs as useChartWidth, Vg as useCredentialsProvider, zi as useDataProvider, gh as useDocumentHead, wy as useDropBoxConnect, Tc as useEditorHeight, Rg as useEmailProvider, Sr as useEnterMotion, $l as useFileUploadCore, ip as useFormActions, pp as useFormContext, rp as useFormController, ui as useGlobalVars, $p as useGoogleMapsConfig, dh as useHead, ph as useHeadLinks, Y as useI18n, Rr as useIconController, Lr as useIconProvider, El as useImage, hh as useLanguageHead, Av as useMenu, yr as useMotionEffect, br as useMotionState, mh as usePaginationHead, xr as usePressMotion, Wa as useProvider, ns as useProviderSession, Fu as useProxy, vh as usePwaHead, Us as useReveal, yh as useSchemaOrgHead, Ua as useSetProvider, fh as useSocialHead, Fl as useStorageProvider, J as useTheme, In as useThemeController, sf as validateCodeSyntax };
23445
+ export { Tu as AIProvider, $v as AI_PROVIDER_DEFINITIONS, ty as AI_PROVIDER_DESCRIPTORS, a as AI_PROVIDER_HOSTS, ni as ActionButton, dm as AddressAutocomplete, ss as Alert, hc as AnimatedNumber, Lv as App, Iv as AppProvider, ac as AreaChart, la as AsyncDropdown, Ii as AuthButton, hi as AuthProvider, bl as Autocomplete, bn as BUILT_IN_THEMES, gn as BUILT_IN_THEME_IDS, ri as BackLink, fr as Badge, dr as BadgeOverlay, lc as BarList, ga as Brand, wa as Breadcrumbs, G_ as CLOUDFLARE_PROVIDER_DESCRIPTOR, $u as CONTEXT_MENU_SEARCH_THRESHOLD, pc as CalendarHeatmap, Gi as Card, Ta as Carousel, Js as ChartDataTable, Ks as ChartLegend, Gh as ChatMarkdown, ig as ChatQuestions, qh as ChatReasoning, kd as Chatbot, tl as Checkbox, xl as Checklist, Os as Code, _f as CodeEditor, Zd as CodeSyntaxError, cr as Col, Kc as Color, Zs as ColumnChart, Hf as Component, Uf as ComponentBlock, or as Container, gd as ContextMenu, Gl as CropImage, Wm as DEFAULT_DOCUMENT_HEAD, Um as DEFAULT_HEAD_APP_NAME, Gm as DEFAULT_LANGUAGE_HEAD, ol as DEFAULT_ORDER, Ri as DataProvider, qc as Date, Yc as DateTime, us as DescriptionList, qv as DirectApiProviderAdapter, ec as DivergingBarChart, Ny as DropBoxConnectButton, d_ as DropboxAuthProvider, ca as Dropdown, ua as DropdownButton, pa as DropdownDivider, fa as DropdownHeader, da as DropdownItem, ma as DropdownMenu, Zv as EMAIL_PROVIDER_DEFINITIONS, Wc as Email, Lg as EmailProvider, zc as FieldError, Ql as FileNameEditor, Yv as FirebaseApiProviderAdapter, i_ as FirebaseAuthProvider, e_ as FirebaseDataProvider, qo as FirebaseStorageProvider, xo as FirestoreDataProvider, _p as Form, np as FormControllerContext, sg as Gallery, p_ as GitHubAuthProvider, g_ as GmailEmailProvider, ii as GoSite, Fg as GoogleAuthProvider, Qp as GoogleMapsProvider, l_ as GoogleServiceAccountProvider, Sg as Grid, xg as GridArray, bg as GridCore, Dm as GridDB, cg as GridGalleryView, Bm as GridTableView, bh as Head, ch as HeadProvider, dc as Heatmap, el as Hidden, qn as I18nProvider, Q as Icon, Ir as IconProvider, Ms as Identicon, ha as Image, vi as ImageAvatar, Ll as ImageEditor, zl as ImageField, Vc as Input, rl as Label, Xp as LayoutBuilder, ic as LineChart, mm as ListCard, al as ListGroup, Bi as Loader, ti as LoadingButton, _c as LocaleSwitcher, Tr as LucideIconProvider, Oh as MarkdownReader, uc as MeasureBarList, oa as Menu, Jv as MockApiProviderAdapter, Vo as MockDataProvider, na as Modal, aa as ModalOk, ia as ModalYesNo, Zc as Month, eb as NORMALIZE_MAP, Da as Notifications, Uc as Number, ny as OPENAI_COMPATIBLE_PROVIDER_DESCRIPTOR, ll as Order, Qv as PUBLISH_PROVIDER_DEFINITIONS, Cg as PageUsers, og as Pagination, Gc as Password, Cc as Percentage, Or as PhosphorIconProvider, Vd as Prompt, Ad as PromptMode, Qu as PromptUtils, is as ProviderSwitcher, Qc as Range, ai as ReferSite, Op as Repeat, zf as RichText, sr as Row, s as SERVER_CREDENTIAL_PREFIX, ab as Sanitizer, sc as ScatterChart, ka as Search, vl as Select, $s as SequenceColumnChart, wm as SideNav, oc as Sparkline, Qs as StackedColumnChart, Pl as StorageProvider, Hc as String, Xv as SupabaseApiProviderAdapter, v_ as SupabaseAuthProvider, Po as SupabaseDataProvider, Jo as SupabaseStorageProvider, nl as Switch, Ip as Tab, ag as TabDynamic, Pp as TabItem, Np as TabLayouts, zp as Table, il as TextArea, za as ThemeSwitcher, Jc as Time, Ma as Toolbar, ms as Tree, fm as UploadCSV, ou as UploadDocument, su as UploadImage, $c as Url, Xc as Week, Z as Wrapper, Mt as arrayUnique, Lt as arraysEqual, It as base64Encode, Vt as base64ToBlob, Ht as base64ToUrl, _a as buildBreadcrumbSchema, c as buildModelIdentityIndex, fd as buildTextCommandContext, Br as buttonBaseClass, Ur as buttonDangerClass, Jr as buttonDarkClass, Kr as buttonInfoClass, qr as buttonLightClass, $r as buttonLinkClass, Zr as buttonOutlineDangerClass, Yr as buttonOutlinePrimaryClass, Xr as buttonOutlineSecondaryClass, Qr as buttonOutlineSuccessClass, Vr as buttonPrimaryClass, Hr as buttonSecondaryClass, Wr as buttonSuccessClass, Gr as buttonWarningClass, lo as callFirebaseFunction, i as canonicalModelName, Ps as chartFill, Ns as chartToken, Et as checkConditions, Wt as cleanRecord, X as cn, ju as configureProxy, dt as converter, ht as copyToClipboard, Dt as crc32, iy as createAIProviderRegistry, W_ as createCloudflareProviderDefinition, _r as createMotionTransition, ay as createServerCredentialAIRegistry, zn as createTranslations, mt as decodeJWT, Rn as defineLocaleMessages, bt as dirname, Py as dropBox, Ct as eventClosest, tn as fetchJson, en as fetchRest, nn as fetchWithRetry, jc as fieldAddonClass, Oc as fieldControlBaseClass, Dc as fieldFeedbackClass, Ac as fieldGroupClass, Ec as fieldLabelClass, kc as fieldTextAreaBaseClass, Su as formatAIModelRef, St as generateUniqueId, Gu as getAIModelCatalog, Pi as getAccessToken, ld as getAutoClosedSuffixLength, cf as getCodeValidationResult, au as getFileUrl, di as getGlobalVars, fy as getGoogleTrendsData, py as getGoogleTrendsRelated, dy as getKeywordIdeas, xi as getProviderConfigurationState, Ut as getRecordValue, Ap as getTabLayoutConfig, Mp as getTabPaneClassName, jp as getTabTriggerClassName, m_ as googleGetAccessToken, _d as groupModelOptions, cd as hasAutoClosedSuffix, js as identiconPattern, Bn as interpolate, At as intersectObjects, l as isAIProviderTarget, lr as isBadgeDescriptor, Nt as isEmpty, xu as isFreeAIModel, yd as isFreeModelOption, zt as isInteractiveElement, Iu as isProxyEnabled, ul as labelText, nm as loadGoogleMaps, o as loadModelIdentityIndex, kt as loadScripts, Wv as locales, ud as matchCommandTrigger, Ls as niceMax, ur as normalizeBadgeProps, yt as normalizeKey, _t as normalizePath, ib as normalizeVisualChars, Cu as parseAIModelRef, ob as parseCsvText, _i as path, Pu as proxyFetch, Kt as recordsEqual, Xo as registerProviderSessionFactory, pi as removeGlobalVars, Bt as render2Base64, Lh as repairStreamingMarkdown, Tt as replacePlaceholders, jt as replaceVariables, r as resolveModel, vr as resolveMotionEffect, Xd as runPrompt, Ft as safeClone, Rt as sanitizeKey, $y as scrape, h_ as sendEmail, n as serverCredential, fi as setGlobalVars, xt as sleep, qt as smartTypeCast, wt as substrCount, Rs as ticks, ey as toProviderDescriptor, hs as treeFromPaths, gt as trimPath, vt as trimSlash, Ot as ucfirst, Eu as useAIProvider, Du as useAIProviderRegistry, ji as useAccessToken, Hs as useAnimatedValues, Gv as useApiProvider, _h as useAssetsHead, gi as useAuthProvider, zs as useChartFormat, qs as useChartTooltip, Gs as useChartWidth, Vg as useCredentialsProvider, zi as useDataProvider, gh as useDocumentHead, My as useDropBoxConnect, Tc as useEditorHeight, Rg as useEmailProvider, Sr as useEnterMotion, $l as useFileUploadCore, ip as useFormActions, pp as useFormContext, rp as useFormController, ui as useGlobalVars, $p as useGoogleMapsConfig, dh as useHead, ph as useHeadLinks, Y as useI18n, Rr as useIconController, Lr as useIconProvider, El as useImage, hh as useLanguageHead, Rv as useMenu, yr as useMotionEffect, br as useMotionState, mh as usePaginationHead, xr as usePressMotion, Wa as useProvider, ns as useProviderSession, Fu as useProxy, vh as usePwaHead, Us as useReveal, yh as useSchemaOrgHead, Ua as useSetProvider, fh as useSocialHead, Fl as useStorageProvider, J as useTheme, In as useThemeController, sf as validateCodeSyntax };
23403
23446
 
23404
23447
  //# sourceMappingURL=index.mjs.map