@stackframe/stack 2.7.18 → 2.7.20

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 (82) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/components/credential-sign-in.js +2 -1
  3. package/dist/components/credential-sign-in.js.map +1 -1
  4. package/dist/components/elements/sidebar-layout.js +10 -7
  5. package/dist/components/elements/sidebar-layout.js.map +1 -1
  6. package/dist/components/link.d.mts +14 -0
  7. package/dist/components/link.d.ts +14 -0
  8. package/dist/components/link.js +63 -0
  9. package/dist/components/link.js.map +1 -0
  10. package/dist/components/oauth-button.js +17 -7
  11. package/dist/components/oauth-button.js.map +1 -1
  12. package/dist/components/selected-team-switcher.js +4 -5
  13. package/dist/components/selected-team-switcher.js.map +1 -1
  14. package/dist/components-page/account-settings.js +2 -3
  15. package/dist/components-page/account-settings.js.map +1 -1
  16. package/dist/components-page/auth-page.js +3 -2
  17. package/dist/components-page/auth-page.js.map +1 -1
  18. package/dist/components-page/forgot-password.js +2 -1
  19. package/dist/components-page/forgot-password.js.map +1 -1
  20. package/dist/components-page/oauth-callback.js +4 -4
  21. package/dist/components-page/oauth-callback.js.map +1 -1
  22. package/dist/components-page/stack-handler.d.mts +5 -3
  23. package/dist/components-page/stack-handler.d.ts +5 -3
  24. package/dist/components-page/stack-handler.js +173 -157
  25. package/dist/components-page/stack-handler.js.map +1 -1
  26. package/dist/components-page/team-creation.js +2 -3
  27. package/dist/components-page/team-creation.js.map +1 -1
  28. package/dist/esm/components/credential-sign-in.js +2 -1
  29. package/dist/esm/components/credential-sign-in.js.map +1 -1
  30. package/dist/esm/components/elements/sidebar-layout.js +10 -7
  31. package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
  32. package/dist/esm/components/link.js +28 -0
  33. package/dist/esm/components/link.js.map +1 -0
  34. package/dist/esm/components/oauth-button.js +18 -8
  35. package/dist/esm/components/oauth-button.js.map +1 -1
  36. package/dist/esm/components/selected-team-switcher.js +4 -5
  37. package/dist/esm/components/selected-team-switcher.js.map +1 -1
  38. package/dist/esm/components-page/account-settings.js +2 -3
  39. package/dist/esm/components-page/account-settings.js.map +1 -1
  40. package/dist/esm/components-page/auth-page.js +2 -1
  41. package/dist/esm/components-page/auth-page.js.map +1 -1
  42. package/dist/esm/components-page/forgot-password.js +2 -1
  43. package/dist/esm/components-page/forgot-password.js.map +1 -1
  44. package/dist/esm/components-page/oauth-callback.js +4 -4
  45. package/dist/esm/components-page/oauth-callback.js.map +1 -1
  46. package/dist/esm/components-page/stack-handler.js +173 -157
  47. package/dist/esm/components-page/stack-handler.js.map +1 -1
  48. package/dist/esm/components-page/team-creation.js +2 -3
  49. package/dist/esm/components-page/team-creation.js.map +1 -1
  50. package/dist/esm/generated/global-css.js +1 -1
  51. package/dist/esm/generated/global-css.js.map +1 -1
  52. package/dist/esm/lib/stack-app.js +35 -16
  53. package/dist/esm/lib/stack-app.js.map +1 -1
  54. package/dist/esm/providers/stack-provider-client.js +1 -2
  55. package/dist/esm/providers/stack-provider-client.js.map +1 -1
  56. package/dist/esm/providers/stack-provider.js +8 -7
  57. package/dist/esm/providers/stack-provider.js.map +1 -1
  58. package/dist/esm/providers/translation-provider.js +1 -1
  59. package/dist/esm/providers/translation-provider.js.map +1 -1
  60. package/dist/generated/global-css.d.mts +1 -1
  61. package/dist/generated/global-css.d.ts +1 -1
  62. package/dist/generated/global-css.js +1 -1
  63. package/dist/generated/global-css.js.map +1 -1
  64. package/dist/generated/quetzal-translations.d.mts +2 -2
  65. package/dist/generated/quetzal-translations.d.ts +2 -2
  66. package/dist/lib/stack-app.d.mts +5 -3
  67. package/dist/lib/stack-app.d.ts +5 -3
  68. package/dist/lib/stack-app.js +35 -16
  69. package/dist/lib/stack-app.js.map +1 -1
  70. package/dist/providers/stack-provider-client.d.mts +2 -1
  71. package/dist/providers/stack-provider-client.d.ts +2 -1
  72. package/dist/providers/stack-provider-client.js +1 -2
  73. package/dist/providers/stack-provider-client.js.map +1 -1
  74. package/dist/providers/stack-provider.d.mts +2 -2
  75. package/dist/providers/stack-provider.d.ts +2 -2
  76. package/dist/providers/stack-provider.js +8 -7
  77. package/dist/providers/stack-provider.js.map +1 -1
  78. package/dist/providers/translation-provider.d.mts +1 -1
  79. package/dist/providers/translation-provider.d.ts +1 -1
  80. package/dist/providers/translation-provider.js +1 -1
  81. package/dist/providers/translation-provider.js.map +1 -1
  82. package/package.json +5 -5
@@ -9,8 +9,7 @@ import { StackClientApp, stackAppInternalsSymbol } from "../lib/stack-app";
9
9
  import { jsx } from "react/jsx-runtime";
10
10
  var StackContext = React.createContext(null);
11
11
  function StackProviderClient(props) {
12
- const appJson = props.appJson;
13
- const app = StackClientApp[stackAppInternalsSymbol].fromClientJson(appJson);
12
+ const app = props.serialized ? StackClientApp[stackAppInternalsSymbol].fromClientJson(props.app) : props.app;
14
13
  globalVar.__STACK_AUTH__ = { app };
15
14
  return /* @__PURE__ */ jsx(StackContext.Provider, { value: { app }, children: props.children });
16
15
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/stack-provider-client.tsx"],"sourcesContent":["\"use client\";\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\n\nimport { CurrentUserCrud } from \"@stackframe/stack-shared/dist/interface/crud/current-user\";\nimport { globalVar } from \"@stackframe/stack-shared/dist/utils/globals\";\nimport React, { useEffect } from \"react\";\nimport { useStackApp } from \"..\";\nimport { StackClientApp, StackClientAppJson, stackAppInternalsSymbol } from \"../lib/stack-app\";\n\nexport const StackContext = React.createContext<null | {\n app: StackClientApp<true>,\n}>(null);\n\nexport function StackProviderClient(props: {\n appJson: StackClientAppJson<true, string>,\n children?: React.ReactNode,\n}) {\n const appJson = props.appJson;\n const app = StackClientApp[stackAppInternalsSymbol].fromClientJson(appJson);\n\n globalVar.__STACK_AUTH__ = { app };\n\n return (\n <StackContext.Provider value={{ app }}>\n {props.children}\n </StackContext.Provider>\n );\n}\n\nexport function UserSetter(props: { userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null> }) {\n const app = useStackApp();\n useEffect(() => {\n const promise = (async () => await props.userJsonPromise)(); // there is a Next.js bug where Promises passed by server components return `undefined` as their `then` value, so wrap it in a normal promise\n app[stackAppInternalsSymbol].setCurrentUser(promise);\n }, []);\n return null;\n}\n"],"mappings":";;;AAQA,SAAS,iBAAiB;AAC1B,OAAO,SAAS,iBAAiB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,gBAAoC,+BAA+B;AAgBxE;AAdG,IAAM,eAAe,MAAM,cAE/B,IAAI;AAEA,SAAS,oBAAoB,OAGjC;AACD,QAAM,UAAU,MAAM;AACtB,QAAM,MAAM,eAAe,uBAAuB,EAAE,eAAe,OAAO;AAE1E,YAAU,iBAAiB,EAAE,IAAI;AAEjC,SACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,IAAI,GACjC,gBAAM,UACT;AAEJ;AAEO,SAAS,WAAW,OAA+E;AACxG,QAAM,MAAM,YAAY;AACxB,YAAU,MAAM;AACd,UAAM,WAAW,YAAY,MAAM,MAAM,iBAAiB;AAC1D,QAAI,uBAAuB,EAAE,eAAe,OAAO;AAAA,EACrD,GAAG,CAAC,CAAC;AACL,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../src/providers/stack-provider-client.tsx"],"sourcesContent":["\"use client\";\n\n//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\n\nimport { CurrentUserCrud } from \"@stackframe/stack-shared/dist/interface/crud/current-user\";\nimport { globalVar } from \"@stackframe/stack-shared/dist/utils/globals\";\nimport React, { useEffect } from \"react\";\nimport { useStackApp } from \"..\";\nimport { StackClientApp, StackClientAppJson, stackAppInternalsSymbol } from \"../lib/stack-app\";\n\nexport const StackContext = React.createContext<null | {\n app: StackClientApp<true>,\n}>(null);\n\nexport function StackProviderClient(props: {\n app: StackClientAppJson<true, string> | StackClientApp<true>,\n serialized: boolean,\n children?: React.ReactNode,\n}) {\n const app = props.serialized\n ? StackClientApp[stackAppInternalsSymbol].fromClientJson(props.app as StackClientAppJson<true, string>)\n : props.app as StackClientApp<true>;\n\n globalVar.__STACK_AUTH__ = { app };\n\n return (\n <StackContext.Provider value={{ app }}>\n {props.children}\n </StackContext.Provider>\n );\n}\n\nexport function UserSetter(props: { userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null> }) {\n const app = useStackApp();\n useEffect(() => {\n const promise = (async () => await props.userJsonPromise)(); // there is a Next.js bug where Promises passed by server components return `undefined` as their `then` value, so wrap it in a normal promise\n app[stackAppInternalsSymbol].setCurrentUser(promise);\n }, []);\n return null;\n}\n"],"mappings":";;;AAQA,SAAS,iBAAiB;AAC1B,OAAO,SAAS,iBAAiB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,gBAAoC,+BAA+B;AAkBxE;AAhBG,IAAM,eAAe,MAAM,cAE/B,IAAI;AAEA,SAAS,oBAAoB,OAIjC;AACD,QAAM,MAAM,MAAM,aACd,eAAe,uBAAuB,EAAE,eAAe,MAAM,GAAuC,IACpG,MAAM;AAEV,YAAU,iBAAiB,EAAE,IAAI;AAEjC,SACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,IAAI,GACjC,gBAAM,UACT;AAEJ;AAEO,SAAS,WAAW,OAA+E;AACxG,QAAM,MAAM,YAAY;AACxB,YAAU,MAAM;AACd,UAAM,WAAW,YAAY,MAAM,MAAM,iBAAiB;AAC1D,QAAI,uBAAuB,EAAE,eAAe,OAAO;AAAA,EACrD,GAAG,CAAC,CAAC;AACL,SAAO;AACT;","names":[]}
@@ -4,22 +4,23 @@ import { stackAppInternalsSymbol } from "../lib/stack-app";
4
4
  import { StackProviderClient, UserSetter } from "./stack-provider-client";
5
5
  import { TranslationProvider } from "./translation-provider";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
- function StackProvider({
7
+ function UserFetcher(props) {
8
+ const userPromise = props.app.getUser().then((user) => user?.toClientJson() ?? null);
9
+ return /* @__PURE__ */ jsx(UserSetter, { userJsonPromise: userPromise });
10
+ }
11
+ function NextStackProvider({
8
12
  children,
9
13
  app,
10
14
  lang,
11
15
  translationOverrides
12
16
  }) {
13
- return /* @__PURE__ */ jsxs(StackProviderClient, { appJson: app[stackAppInternalsSymbol].toClientJson(), children: [
17
+ return /* @__PURE__ */ jsxs(StackProviderClient, { app: app[stackAppInternalsSymbol].toClientJson(), serialized: true, children: [
14
18
  /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(UserFetcher, { app }) }),
15
19
  /* @__PURE__ */ jsx(TranslationProvider, { lang, translationOverrides, children })
16
20
  ] });
17
21
  }
18
- function UserFetcher(props) {
19
- const userPromise = props.app.getUser().then((user) => user?.toClientJson() ?? null);
20
- return /* @__PURE__ */ jsx(UserSetter, { userJsonPromise: userPromise });
21
- }
22
+ var stack_provider_default = NextStackProvider;
22
23
  export {
23
- StackProvider as default
24
+ stack_provider_default as default
24
25
  };
25
26
  //# sourceMappingURL=stack-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/stack-provider.tsx"],"sourcesContent":["//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\nimport React, { Suspense } from 'react';\nimport { StackAdminApp, StackClientApp, StackServerApp, stackAppInternalsSymbol } from '../lib/stack-app';\nimport { StackProviderClient, UserSetter } from './stack-provider-client';\nimport { TranslationProvider } from './translation-provider';\n\n\nexport default function StackProvider({\n children,\n app,\n lang,\n translationOverrides,\n}: {\n lang?: React.ComponentProps<typeof TranslationProvider>['lang'],\n /**\n * A mapping of English translations to translated equivalents.\n *\n * These will take priority over the translations from the language specified in the `lang` property. Note that the\n * keys are case-sensitive.\n */\n translationOverrides?: Record<string, string>,\n children: React.ReactNode,\n // list all three types of apps even though server and admin are subclasses of client so it's clear that you can pass any\n app: StackClientApp<true> | StackServerApp<true> | StackAdminApp<true>,\n}) {\n return (\n <StackProviderClient appJson={app[stackAppInternalsSymbol].toClientJson()}>\n <Suspense fallback={null}>\n <UserFetcher app={app} />\n </Suspense>\n <TranslationProvider lang={lang} translationOverrides={translationOverrides}>\n {children}\n </TranslationProvider>\n </StackProviderClient>\n );\n}\n\nfunction UserFetcher(props: { app: StackClientApp<true> }) {\n const userPromise = props.app.getUser().then((user) => user?.toClientJson() ?? null);\n return <UserSetter userJsonPromise={userPromise} />;\n}\n"],"mappings":";AAIA,SAAgB,gBAAgB;AAChC,SAAwD,+BAA+B;AACvF,SAAS,qBAAqB,kBAAkB;AAChD,SAAS,2BAA2B;AAsBhC,SAEI,KAFJ;AAnBW,SAAR,cAA+B;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAYG;AACD,SACE,qBAAC,uBAAoB,SAAS,IAAI,uBAAuB,EAAE,aAAa,GACtE;AAAA,wBAAC,YAAS,UAAU,MAClB,8BAAC,eAAY,KAAU,GACzB;AAAA,IACA,oBAAC,uBAAoB,MAAY,sBAC9B,UACH;AAAA,KACF;AAEJ;AAEA,SAAS,YAAY,OAAsC;AACzD,QAAM,cAAc,MAAM,IAAI,QAAQ,EAAE,KAAK,CAAC,SAAS,MAAM,aAAa,KAAK,IAAI;AACnF,SAAO,oBAAC,cAAW,iBAAiB,aAAa;AACnD;","names":[]}
1
+ {"version":3,"sources":["../../../src/providers/stack-provider.tsx"],"sourcesContent":["//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\nimport React, { Suspense } from 'react';\nimport { StackAdminApp, StackClientApp, StackServerApp, stackAppInternalsSymbol } from '../lib/stack-app';\nimport { StackProviderClient, UserSetter } from './stack-provider-client';\nimport { TranslationProvider } from './translation-provider';\n\nfunction UserFetcher(props: { app: StackClientApp<true> }) {\n const userPromise = props.app.getUser().then((user) => user?.toClientJson() ?? null);\n return <UserSetter userJsonPromise={userPromise} />;\n}\n\nfunction NextStackProvider({\n children,\n app,\n lang,\n translationOverrides,\n}: {\n lang?: React.ComponentProps<typeof TranslationProvider>['lang'],\n /**\n * A mapping of English translations to translated equivalents.\n *\n * These will take priority over the translations from the language specified in the `lang` property. Note that the\n * keys are case-sensitive.\n */\n translationOverrides?: Record<string, string>,\n children: React.ReactNode,\n // list all three types of apps even though server and admin are subclasses of client so it's clear that you can pass any\n app: StackClientApp<true> | StackServerApp<true> | StackAdminApp<true>,\n}) {\n return (\n <StackProviderClient app={app[stackAppInternalsSymbol].toClientJson()} serialized={true}>\n <Suspense fallback={null}>\n <UserFetcher app={app} />\n </Suspense>\n <TranslationProvider lang={lang} translationOverrides={translationOverrides}>\n {children}\n </TranslationProvider>\n </StackProviderClient>\n );\n}\n\nexport default NextStackProvider;\n"],"mappings":";AAIA,SAAgB,gBAAgB;AAChC,SAAwD,+BAA+B;AACvF,SAAS,qBAAqB,kBAAkB;AAChD,SAAS,2BAA2B;AAI3B,cAsBL,YAtBK;AAFT,SAAS,YAAY,OAAsC;AACzD,QAAM,cAAc,MAAM,IAAI,QAAQ,EAAE,KAAK,CAAC,SAAS,MAAM,aAAa,KAAK,IAAI;AACnF,SAAO,oBAAC,cAAW,iBAAiB,aAAa;AACnD;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAYG;AACD,SACE,qBAAC,uBAAoB,KAAK,IAAI,uBAAuB,EAAE,aAAa,GAAG,YAAY,MACjF;AAAA,wBAAC,YAAS,UAAU,MAClB,8BAAC,eAAY,KAAU,GACzB;AAAA,IACA,oBAAC,uBAAoB,MAAY,sBAC9B,UACH;AAAA,KACF;AAEJ;AAEA,IAAO,yBAAQ;","names":[]}
@@ -3,7 +3,7 @@ import { throwErr } from "@stackframe/stack-shared/dist/utils/errors";
3
3
  import { quetzalKeys, quetzalLocales } from "../generated/quetzal-translations";
4
4
  import { TranslationProviderClient } from "./translation-provider-client";
5
5
  import { jsx } from "react/jsx-runtime";
6
- async function TranslationProvider({ lang, translationOverrides, children }) {
6
+ function TranslationProvider({ lang, translationOverrides, children }) {
7
7
  const locale = quetzalLocales.get(lang ?? void 0);
8
8
  const localeWithOverrides = new Map(locale);
9
9
  for (const [orig, override] of Object.entries(translationOverrides ?? {})) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/translation-provider.tsx"],"sourcesContent":["//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\nimport { throwErr } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { quetzalKeys, quetzalLocales } from \"../generated/quetzal-translations\";\nimport { TranslationProviderClient } from \"./translation-provider-client\";\n\nexport async function TranslationProvider({ lang, translationOverrides, children }: {\n lang: Parameters<typeof quetzalLocales.get>[0] | undefined,\n translationOverrides?: Record<string, string>,\n children: React.ReactNode,\n}) {\n const locale = quetzalLocales.get(lang ?? (undefined as never));\n\n const localeWithOverrides = new Map<string, string>(locale);\n for (const [orig, override] of Object.entries(translationOverrides ?? {})) {\n const key = quetzalKeys.get(orig as never) ?? throwErr(new Error(`Invalid translation override: Original key ${JSON.stringify(orig)} not found. Make sure you are passing the correct values into the translationOverrides property of the component.`));\n localeWithOverrides.set(key, override);\n }\n\n return <TranslationProviderClient quetzalKeys={quetzalKeys} quetzalLocale={localeWithOverrides}>\n {children}\n </TranslationProviderClient>;\n}\n"],"mappings":";AAIA,SAAS,gBAAgB;AACzB,SAAS,aAAa,sBAAsB;AAC5C,SAAS,iCAAiC;AAejC;AAbT,eAAsB,oBAAoB,EAAE,MAAM,sBAAsB,SAAS,GAI9E;AACD,QAAM,SAAS,eAAe,IAAI,QAAS,MAAmB;AAE9D,QAAM,sBAAsB,IAAI,IAAoB,MAAM;AAC1D,aAAW,CAAC,MAAM,QAAQ,KAAK,OAAO,QAAQ,wBAAwB,CAAC,CAAC,GAAG;AACzE,UAAM,MAAM,YAAY,IAAI,IAAa,KAAK,SAAS,IAAI,MAAM,8CAA8C,KAAK,UAAU,IAAI,CAAC,mHAAmH,CAAC;AACvP,wBAAoB,IAAI,KAAK,QAAQ;AAAA,EACvC;AAEA,SAAO,oBAAC,6BAA0B,aAA0B,eAAe,qBACxE,UACH;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/providers/translation-provider.tsx"],"sourcesContent":["//===========================================\n// THIS FILE IS AUTO-GENERATED FROM TEMPLATE. DO NOT EDIT IT DIRECTLY\n//===========================================\n\nimport { throwErr } from \"@stackframe/stack-shared/dist/utils/errors\";\nimport { quetzalKeys, quetzalLocales } from \"../generated/quetzal-translations\";\nimport { TranslationProviderClient } from \"./translation-provider-client\";\n\nexport function TranslationProvider({ lang, translationOverrides, children }: {\n lang: Parameters<typeof quetzalLocales.get>[0] | undefined,\n translationOverrides?: Record<string, string>,\n children: React.ReactNode,\n}) {\n const locale = quetzalLocales.get(lang ?? (undefined as never));\n\n const localeWithOverrides = new Map<string, string>(locale);\n for (const [orig, override] of Object.entries(translationOverrides ?? {})) {\n const key = quetzalKeys.get(orig as never) ?? throwErr(new Error(`Invalid translation override: Original key ${JSON.stringify(orig)} not found. Make sure you are passing the correct values into the translationOverrides property of the component.`));\n localeWithOverrides.set(key, override);\n }\n\n return <TranslationProviderClient quetzalKeys={quetzalKeys} quetzalLocale={localeWithOverrides}>\n {children}\n </TranslationProviderClient>;\n}\n"],"mappings":";AAIA,SAAS,gBAAgB;AACzB,SAAS,aAAa,sBAAsB;AAC5C,SAAS,iCAAiC;AAejC;AAbF,SAAS,oBAAoB,EAAE,MAAM,sBAAsB,SAAS,GAIxE;AACD,QAAM,SAAS,eAAe,IAAI,QAAS,MAAmB;AAE9D,QAAM,sBAAsB,IAAI,IAAoB,MAAM;AAC1D,aAAW,CAAC,MAAM,QAAQ,KAAK,OAAO,QAAQ,wBAAwB,CAAC,CAAC,GAAG;AACzE,UAAM,MAAM,YAAY,IAAI,IAAa,KAAK,SAAS,IAAI,MAAM,8CAA8C,KAAK,UAAU,IAAI,CAAC,mHAAmH,CAAC;AACvP,wBAAoB,IAAI,KAAK,QAAQ;AAAA,EACvC;AAEA,SAAO,oBAAC,6BAA0B,aAA0B,eAAe,qBACxE,UACH;AACF;","names":[]}