@stackframe/stack 2.5.33 → 2.5.37
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/CHANGELOG.md +40 -0
- package/dist/components/credential-sign-in.js +14 -12
- package/dist/components/credential-sign-in.js.map +1 -1
- package/dist/components/credential-sign-up.js +17 -15
- package/dist/components/credential-sign-up.js.map +1 -1
- package/dist/components/elements/maybe-full-page.d.mts +2 -2
- package/dist/components/elements/maybe-full-page.d.ts +2 -2
- package/dist/components/elements/sidebar-layout.d.mts +5 -5
- package/dist/components/elements/sidebar-layout.d.ts +5 -5
- package/dist/components/elements/sidebar-layout.js +15 -7
- package/dist/components/elements/sidebar-layout.js.map +1 -1
- package/dist/components/elements/user-avatar.js +1 -1
- package/dist/components/elements/user-avatar.js.map +1 -1
- package/dist/components/magic-link-sign-in.js +11 -9
- package/dist/components/magic-link-sign-in.js.map +1 -1
- package/dist/components/message-cards/message-card.d.mts +2 -2
- package/dist/components/message-cards/message-card.d.ts +2 -2
- package/dist/components/oauth-button-group.js.map +1 -1
- package/dist/components/oauth-button.js +46 -2
- package/dist/components/oauth-button.js.map +1 -1
- package/dist/components/profile-image-editor.js +7 -5
- package/dist/components/profile-image-editor.js.map +1 -1
- package/dist/components/selected-team-switcher.js +7 -4
- package/dist/components/selected-team-switcher.js.map +1 -1
- package/dist/components/team-icon.js.map +1 -1
- package/dist/components/user-button.d.mts +2 -2
- package/dist/components/user-button.d.ts +2 -2
- package/dist/components/user-button.js +11 -11
- package/dist/components/user-button.js.map +1 -1
- package/dist/components-page/account-settings.d.mts +4 -2
- package/dist/components-page/account-settings.d.ts +4 -2
- package/dist/components-page/account-settings.js +406 -221
- package/dist/components-page/account-settings.js.map +1 -1
- package/dist/components-page/auth-page.js +11 -7
- package/dist/components-page/auth-page.js.map +1 -1
- package/dist/components-page/email-verification.js +4 -2
- package/dist/components-page/email-verification.js.map +1 -1
- package/dist/components-page/error-page.js +6 -4
- package/dist/components-page/error-page.js.map +1 -1
- package/dist/components-page/forgot-password.js +12 -8
- package/dist/components-page/forgot-password.js.map +1 -1
- package/dist/components-page/magic-link-callback.js +5 -3
- package/dist/components-page/magic-link-callback.js.map +1 -1
- package/dist/components-page/oauth-callback.js +6 -5
- package/dist/components-page/oauth-callback.js.map +1 -1
- package/dist/components-page/password-reset.js +25 -22
- package/dist/components-page/password-reset.js.map +1 -1
- package/dist/components-page/stack-handler.d.mts +1 -0
- package/dist/components-page/stack-handler.d.ts +1 -0
- package/dist/components-page/team-creation.js +9 -7
- package/dist/components-page/team-creation.js.map +1 -1
- package/dist/components-page/team-invitation.js +14 -11
- package/dist/components-page/team-invitation.js.map +1 -1
- package/dist/esm/components/credential-sign-in.js +14 -12
- package/dist/esm/components/credential-sign-in.js.map +1 -1
- package/dist/esm/components/credential-sign-up.js +17 -15
- package/dist/esm/components/credential-sign-up.js.map +1 -1
- package/dist/esm/components/elements/sidebar-layout.js +15 -7
- package/dist/esm/components/elements/sidebar-layout.js.map +1 -1
- package/dist/esm/components/elements/user-avatar.js +1 -1
- package/dist/esm/components/elements/user-avatar.js.map +1 -1
- package/dist/esm/components/magic-link-sign-in.js +11 -9
- package/dist/esm/components/magic-link-sign-in.js.map +1 -1
- package/dist/esm/components/oauth-button-group.js.map +1 -1
- package/dist/esm/components/oauth-button.js +46 -2
- package/dist/esm/components/oauth-button.js.map +1 -1
- package/dist/esm/components/profile-image-editor.js +7 -5
- package/dist/esm/components/profile-image-editor.js.map +1 -1
- package/dist/esm/components/selected-team-switcher.js +7 -4
- package/dist/esm/components/selected-team-switcher.js.map +1 -1
- package/dist/esm/components/team-icon.js.map +1 -1
- package/dist/esm/components/user-button.js +12 -15
- package/dist/esm/components/user-button.js.map +1 -1
- package/dist/esm/components-page/account-settings.js +406 -222
- package/dist/esm/components-page/account-settings.js.map +1 -1
- package/dist/esm/components-page/auth-page.js +11 -7
- package/dist/esm/components-page/auth-page.js.map +1 -1
- package/dist/esm/components-page/email-verification.js +4 -2
- package/dist/esm/components-page/email-verification.js.map +1 -1
- package/dist/esm/components-page/error-page.js +6 -4
- package/dist/esm/components-page/error-page.js.map +1 -1
- package/dist/esm/components-page/forgot-password.js +12 -8
- package/dist/esm/components-page/forgot-password.js.map +1 -1
- package/dist/esm/components-page/magic-link-callback.js +5 -3
- package/dist/esm/components-page/magic-link-callback.js.map +1 -1
- package/dist/esm/components-page/oauth-callback.js +6 -5
- package/dist/esm/components-page/oauth-callback.js.map +1 -1
- package/dist/esm/components-page/password-reset.js +25 -22
- package/dist/esm/components-page/password-reset.js.map +1 -1
- package/dist/esm/components-page/team-creation.js +9 -7
- package/dist/esm/components-page/team-creation.js.map +1 -1
- package/dist/esm/components-page/team-invitation.js +14 -11
- package/dist/esm/components-page/team-invitation.js.map +1 -1
- package/dist/esm/generated/global-css.js +1 -1
- package/dist/esm/generated/global-css.js.map +1 -1
- package/dist/esm/generated/quetzal-translations.js +1629 -0
- package/dist/esm/generated/quetzal-translations.js.map +1 -0
- package/dist/esm/lib/stack-app.js +8 -1
- package/dist/esm/lib/stack-app.js.map +1 -1
- package/dist/esm/lib/translations.js +20 -0
- package/dist/esm/lib/translations.js.map +1 -0
- package/dist/esm/providers/stack-provider.js +4 -2
- package/dist/esm/providers/stack-provider.js.map +1 -1
- package/dist/esm/providers/theme-provider.js.map +1 -1
- package/dist/esm/providers/translation-provider-client.js +18 -0
- package/dist/esm/providers/translation-provider-client.js.map +1 -0
- package/dist/esm/providers/translation-provider.js +12 -0
- package/dist/esm/providers/translation-provider.js.map +1 -0
- package/dist/esm/utils/browser-script.js +43 -8
- package/dist/esm/utils/browser-script.js.map +1 -1
- package/dist/generated/global-css.d.mts +1 -1
- package/dist/generated/global-css.d.ts +1 -1
- package/dist/generated/global-css.js +1 -1
- package/dist/generated/global-css.js.map +1 -1
- package/dist/generated/quetzal-translations.d.mts +4 -0
- package/dist/generated/quetzal-translations.d.ts +4 -0
- package/dist/generated/quetzal-translations.js +1655 -0
- package/dist/generated/quetzal-translations.js.map +1 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/lib/stack-app.d.mts +4 -1
- package/dist/lib/stack-app.d.ts +4 -1
- package/dist/lib/stack-app.js +8 -1
- package/dist/lib/stack-app.js.map +1 -1
- package/dist/lib/translations.d.mts +5 -0
- package/dist/lib/translations.d.ts +5 -0
- package/dist/lib/translations.js +55 -0
- package/dist/lib/translations.js.map +1 -0
- package/dist/providers/stack-provider-client.d.mts +3 -3
- package/dist/providers/stack-provider-client.d.ts +3 -3
- package/dist/providers/stack-provider.d.mts +6 -3
- package/dist/providers/stack-provider.d.ts +6 -3
- package/dist/providers/stack-provider.js +4 -2
- package/dist/providers/stack-provider.js.map +1 -1
- package/dist/providers/theme-provider.d.mts +2 -2
- package/dist/providers/theme-provider.d.ts +2 -2
- package/dist/providers/theme-provider.js.map +1 -1
- package/dist/providers/translation-provider-client.d.mts +14 -0
- package/dist/providers/translation-provider-client.d.ts +14 -0
- package/dist/providers/translation-provider-client.js +43 -0
- package/dist/providers/translation-provider-client.js.map +1 -0
- package/dist/providers/translation-provider.d.mts +9 -0
- package/dist/providers/translation-provider.d.ts +9 -0
- package/dist/providers/translation-provider.js +37 -0
- package/dist/providers/translation-provider.js.map +1 -0
- package/dist/utils/browser-script.js +43 -8
- package/dist/utils/browser-script.js.map +1 -1
- package/package.json +20 -12
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/lib/translations.tsx
|
|
31
|
+
var translations_exports = {};
|
|
32
|
+
__export(translations_exports, {
|
|
33
|
+
useTranslation: () => useTranslation
|
|
34
|
+
});
|
|
35
|
+
module.exports = __toCommonJS(translations_exports);
|
|
36
|
+
var import_client_only = require("client-only");
|
|
37
|
+
var import_react = __toESM(require("react"));
|
|
38
|
+
var import_translation_provider_client = require("../providers/translation-provider-client");
|
|
39
|
+
function useTranslation() {
|
|
40
|
+
const translationContext = import_react.default.useContext(import_translation_provider_client.TranslationContext);
|
|
41
|
+
if (!translationContext) {
|
|
42
|
+
throw new Error("Translation context not found; did you forget to wrap your app in a <StackProvider />?");
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
t: (str) => {
|
|
46
|
+
const { quetzalKeys, quetzalLocale } = translationContext;
|
|
47
|
+
return quetzalLocale.get(quetzalKeys.get(str) ?? void 0) ?? str;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
52
|
+
0 && (module.exports = {
|
|
53
|
+
useTranslation
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=translations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lib/translations.tsx"],"sourcesContent":["import \"client-only\";\nimport React from \"react\";\nimport { TranslationContext } from \"../providers/translation-provider-client\";\n\nexport function useTranslation() {\n const translationContext = React.useContext(TranslationContext);\n if (!translationContext) {\n throw new Error(\"Translation context not found; did you forget to wrap your app in a <StackProvider />?\");\n }\n return {\n t: (str: string) => {\n const { quetzalKeys, quetzalLocale } = translationContext;\n return quetzalLocale.get(quetzalKeys.get(str) ?? (undefined as never)) ?? str;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAO;AACP,mBAAkB;AAClB,yCAAmC;AAE5B,SAAS,iBAAiB;AAC/B,QAAM,qBAAqB,aAAAA,QAAM,WAAW,qDAAkB;AAC9D,MAAI,CAAC,oBAAoB;AACvB,UAAM,IAAI,MAAM,wFAAwF;AAAA,EAC1G;AACA,SAAO;AAAA,IACL,GAAG,CAAC,QAAgB;AAClB,YAAM,EAAE,aAAa,cAAc,IAAI;AACvC,aAAO,cAAc,IAAI,YAAY,IAAI,GAAG,KAAM,MAAmB,KAAK;AAAA,IAC5E;AAAA,EACF;AACF;","names":["React"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { CurrentUserCrud } from '@stackframe/stack-shared/dist/interface/crud/current-user';
|
|
3
|
-
import
|
|
3
|
+
import React__default from 'react';
|
|
4
4
|
import { StackClientApp, StackClientAppJson } from '../lib/stack-app.mjs';
|
|
5
5
|
import '@stackframe/stack-shared';
|
|
6
6
|
import '@stackframe/stack-shared/dist/helpers/production-mode';
|
|
@@ -12,12 +12,12 @@ import '@stackframe/stack-shared/dist/utils/json';
|
|
|
12
12
|
import '@stackframe/stack-shared/dist/utils/oauth';
|
|
13
13
|
import '@stackframe/stack-shared/dist/utils/results';
|
|
14
14
|
|
|
15
|
-
declare const StackContext:
|
|
15
|
+
declare const StackContext: React__default.Context<{
|
|
16
16
|
app: StackClientApp<true>;
|
|
17
17
|
} | null>;
|
|
18
18
|
declare function StackProviderClient(props: {
|
|
19
19
|
appJson: StackClientAppJson<true, string>;
|
|
20
|
-
children?:
|
|
20
|
+
children?: React__default.ReactNode;
|
|
21
21
|
}): react_jsx_runtime.JSX.Element;
|
|
22
22
|
declare function UserSetter(props: {
|
|
23
23
|
userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { CurrentUserCrud } from '@stackframe/stack-shared/dist/interface/crud/current-user';
|
|
3
|
-
import
|
|
3
|
+
import React__default from 'react';
|
|
4
4
|
import { StackClientApp, StackClientAppJson } from '../lib/stack-app.js';
|
|
5
5
|
import '@stackframe/stack-shared';
|
|
6
6
|
import '@stackframe/stack-shared/dist/helpers/production-mode';
|
|
@@ -12,12 +12,12 @@ import '@stackframe/stack-shared/dist/utils/json';
|
|
|
12
12
|
import '@stackframe/stack-shared/dist/utils/oauth';
|
|
13
13
|
import '@stackframe/stack-shared/dist/utils/results';
|
|
14
14
|
|
|
15
|
-
declare const StackContext:
|
|
15
|
+
declare const StackContext: React__default.Context<{
|
|
16
16
|
app: StackClientApp<true>;
|
|
17
17
|
} | null>;
|
|
18
18
|
declare function StackProviderClient(props: {
|
|
19
19
|
appJson: StackClientAppJson<true, string>;
|
|
20
|
-
children?:
|
|
20
|
+
children?: React__default.ReactNode;
|
|
21
21
|
}): react_jsx_runtime.JSX.Element;
|
|
22
22
|
declare function UserSetter(props: {
|
|
23
23
|
userJsonPromise: Promise<CurrentUserCrud['Client']['Read'] | null>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import React__default from 'react';
|
|
3
3
|
import { StackClientApp, StackServerApp, StackAdminApp } from '../lib/stack-app.mjs';
|
|
4
|
+
import { TranslationProvider } from './translation-provider.mjs';
|
|
4
5
|
import '@stackframe/stack-shared';
|
|
5
6
|
import '@stackframe/stack-shared/dist/helpers/production-mode';
|
|
6
7
|
import '@stackframe/stack-shared/dist/interface/crud/api-keys';
|
|
@@ -11,9 +12,11 @@ import '@stackframe/stack-shared/dist/sessions';
|
|
|
11
12
|
import '@stackframe/stack-shared/dist/utils/json';
|
|
12
13
|
import '@stackframe/stack-shared/dist/utils/oauth';
|
|
13
14
|
import '@stackframe/stack-shared/dist/utils/results';
|
|
15
|
+
import '../generated/quetzal-translations.mjs';
|
|
14
16
|
|
|
15
|
-
declare function StackProvider({ children, app, }: {
|
|
16
|
-
|
|
17
|
+
declare function StackProvider({ children, app, lang, }: {
|
|
18
|
+
lang?: React__default.ComponentProps<typeof TranslationProvider>['lang'];
|
|
19
|
+
children: React__default.ReactNode;
|
|
17
20
|
app: StackClientApp<true> | StackServerApp<true> | StackAdminApp<true>;
|
|
18
21
|
}): react_jsx_runtime.JSX.Element;
|
|
19
22
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import React__default from 'react';
|
|
3
3
|
import { StackClientApp, StackServerApp, StackAdminApp } from '../lib/stack-app.js';
|
|
4
|
+
import { TranslationProvider } from './translation-provider.js';
|
|
4
5
|
import '@stackframe/stack-shared';
|
|
5
6
|
import '@stackframe/stack-shared/dist/helpers/production-mode';
|
|
6
7
|
import '@stackframe/stack-shared/dist/interface/crud/api-keys';
|
|
@@ -11,9 +12,11 @@ import '@stackframe/stack-shared/dist/sessions';
|
|
|
11
12
|
import '@stackframe/stack-shared/dist/utils/json';
|
|
12
13
|
import '@stackframe/stack-shared/dist/utils/oauth';
|
|
13
14
|
import '@stackframe/stack-shared/dist/utils/results';
|
|
15
|
+
import '../generated/quetzal-translations.js';
|
|
14
16
|
|
|
15
|
-
declare function StackProvider({ children, app, }: {
|
|
16
|
-
|
|
17
|
+
declare function StackProvider({ children, app, lang, }: {
|
|
18
|
+
lang?: React__default.ComponentProps<typeof TranslationProvider>['lang'];
|
|
19
|
+
children: React__default.ReactNode;
|
|
17
20
|
app: StackClientApp<true> | StackServerApp<true> | StackAdminApp<true>;
|
|
18
21
|
}): react_jsx_runtime.JSX.Element;
|
|
19
22
|
|
|
@@ -26,14 +26,16 @@ module.exports = __toCommonJS(stack_provider_exports);
|
|
|
26
26
|
var import_react = require("react");
|
|
27
27
|
var import_stack_app = require("../lib/stack-app");
|
|
28
28
|
var import_stack_provider_client = require("./stack-provider-client");
|
|
29
|
+
var import_translation_provider = require("./translation-provider");
|
|
29
30
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
30
31
|
function StackProvider({
|
|
31
32
|
children,
|
|
32
|
-
app
|
|
33
|
+
app,
|
|
34
|
+
lang
|
|
33
35
|
}) {
|
|
34
36
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_stack_provider_client.StackProviderClient, { appJson: app[import_stack_app.stackAppInternalsSymbol].toClientJson(), children: [
|
|
35
37
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, { fallback: null, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UserFetcher, { app }) }),
|
|
36
|
-
children
|
|
38
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_translation_provider.TranslationProvider, { lang, children })
|
|
37
39
|
] });
|
|
38
40
|
}
|
|
39
41
|
function UserFetcher(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/providers/stack-provider.tsx"],"sourcesContent":["import React, { Suspense } from 'react';\nimport { StackAdminApp, StackClientApp, StackServerApp, stackAppInternalsSymbol } from '../lib/stack-app';\nimport { StackProviderClient, UserSetter } from './stack-provider-client';\n\n\nexport default function StackProvider({\n children,\n app,\n}: {\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 {children}\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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAgC;AAChC,uBAAuF;AACvF,mCAAgD;
|
|
1
|
+
{"version":3,"sources":["../../src/providers/stack-provider.tsx"],"sourcesContent":["import 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}: {\n lang?: React.ComponentProps<typeof TranslationProvider>['lang'],\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}>\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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAgC;AAChC,uBAAuF;AACvF,mCAAgD;AAChD,kCAAoC;AAchC;AAXW,SAAR,cAA+B;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AACF,GAKG;AACD,SACE,6CAAC,oDAAoB,SAAS,IAAI,wCAAuB,EAAE,aAAa,GACtE;AAAA,gDAAC,yBAAS,UAAU,MAClB,sDAAC,eAAY,KAAU,GACzB;AAAA,IACA,4CAAC,mDAAoB,MAClB,UACH;AAAA,KACF;AAEJ;AAEA,SAAS,YAAY,OAAsC;AACzD,QAAM,cAAc,MAAM,IAAI,QAAQ,EAAE,KAAK,CAAC,SAAS,MAAM,aAAa,KAAK,IAAI;AACnF,SAAO,4CAAC,2CAAW,iBAAiB,aAAa;AACnD;","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import React__default from 'react';
|
|
3
3
|
|
|
4
4
|
type Colors = {
|
|
5
5
|
background: string;
|
|
@@ -33,7 +33,7 @@ type ThemeConfig = {
|
|
|
33
33
|
} & Partial<Omit<Theme, 'light' | 'dark'>>;
|
|
34
34
|
declare function StackTheme({ theme, children, nonce, }: {
|
|
35
35
|
theme?: ThemeConfig;
|
|
36
|
-
children?:
|
|
36
|
+
children?: React__default.ReactNode;
|
|
37
37
|
nonce?: string;
|
|
38
38
|
}): react_jsx_runtime.JSX.Element;
|
|
39
39
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import React__default from 'react';
|
|
3
3
|
|
|
4
4
|
type Colors = {
|
|
5
5
|
background: string;
|
|
@@ -33,7 +33,7 @@ type ThemeConfig = {
|
|
|
33
33
|
} & Partial<Omit<Theme, 'light' | 'dark'>>;
|
|
34
34
|
declare function StackTheme({ theme, children, nonce, }: {
|
|
35
35
|
theme?: ThemeConfig;
|
|
36
|
-
children?:
|
|
36
|
+
children?: React__default.ReactNode;
|
|
37
37
|
nonce?: string;
|
|
38
38
|
}): react_jsx_runtime.JSX.Element;
|
|
39
39
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/providers/theme-provider.tsx"],"sourcesContent":["'use client';\n\nimport React from \"react\";\nimport { globalCSS } from \"../generated/global-css\";\nimport { BrowserScript } from \"../utils/browser-script\";\nimport { DEFAULT_THEME } from \"../utils/constants\";\nimport Color from \"color\";\nimport { deindent } from \"@stackframe/stack-shared/dist/utils/strings\";\n\ntype Colors = {\n background: string,\n foreground: string,\n card: string,\n cardForeground: string,\n popover: string,\n popoverForeground: string,\n primary: string,\n primaryForeground: string,\n secondary: string,\n secondaryForeground: string,\n muted: string,\n mutedForeground: string,\n accent: string,\n accentForeground: string,\n destructive: string,\n destructiveForeground: string,\n border: string,\n input: string,\n ring: string,\n}\n\nexport type Theme = {\n light: Colors,\n dark: Colors,\n radius: string,\n};\n\ntype ThemeConfig = {\n light?: Partial<Colors>,\n dark?: Partial<Colors>,\n} & Partial<Omit<Theme, 'light' | 'dark'>>;\n\nfunction convertColorToCSSVars(obj: Record<string, string>) {\n return Object.fromEntries(Object.entries(obj).map(([key, value]) => {\n const color = Color(value).hsl().array();\n return [\n // Convert camelCase key to dash-case\n key.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`),\n // Convert color to CSS HSL string\n `${color[0]} ${color[1]}% ${color[2]}%`\n ];\n }));\n}\n\nfunction convertColorsToCSS(theme: Theme) {\n const { dark, light, ...rest } = theme;\n const colors = {\n light: { ...convertColorToCSSVars(light), ...rest },\n dark: convertColorToCSSVars(dark),\n };\n\n function colorsToCSSVars(colors: Record<string, string>) {\n return Object.entries(colors).map((params) => {\n return `--${params[0]}: ${params[1]};\\n`;\n }).join('');\n }\n\n return deindent`\n .stack-scope {\n ${colorsToCSSVars(colors.light)}\n }\n [data-stack-theme=\"dark\"] .stack-scope {\n ${colorsToCSSVars(colors.dark)}\n }`;\n}\n\n\nexport function StackTheme({\n theme,\n children,\n nonce,\n} : {\n theme?: ThemeConfig,\n children?: React.ReactNode,\n nonce?: string,\n}) {\n const themeValue: Theme = {\n ...DEFAULT_THEME,\n ...theme,\n dark: { ...DEFAULT_THEME.dark, ...theme?.dark },\n light: { ...DEFAULT_THEME.light, ...theme?.light },\n };\n\n return (\n <>\n <BrowserScript nonce={nonce} />\n <style\n suppressHydrationWarning\n nonce={nonce}\n dangerouslySetInnerHTML={{\n __html: globalCSS + \"\\n\" + convertColorsToCSS(themeValue),\n }}\n />\n {children}\n </>\n );\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA0B;AAC1B,4BAA8B;AAC9B,uBAA8B;AAC9B,mBAAkB;AAClB,qBAAyB;AAuFrB;AApDJ,SAAS,sBAAsB,KAA6B;AAC1D,SAAO,OAAO,YAAY,OAAO,QAAQ,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAClE,UAAM,YAAQ,aAAAA,SAAM,KAAK,EAAE,IAAI,EAAE,MAAM;AACvC,WAAO;AAAA;AAAA,MAEL,IAAI,QAAQ,UAAU,OAAK,IAAI,EAAE,YAAY,CAAC,EAAE;AAAA;AAAA,MAEhD,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;AAAA,IACtC;AAAA,EACF,CAAC,CAAC;AACJ;AAEA,SAAS,mBAAmB,OAAc;AACxC,QAAM,EAAE,MAAM,OAAO,GAAG,KAAK,IAAI;AACjC,QAAM,SAAS;AAAA,IACb,OAAO,EAAE,GAAG,sBAAsB,KAAK,GAAG,GAAG,KAAK;AAAA,IAClD,MAAM,sBAAsB,IAAI;AAAA,EAClC;AAEA,WAAS,gBAAgBC,SAAgC;AACvD,WAAO,OAAO,QAAQA,OAAM,EAAE,IAAI,CAAC,WAAW;AAC5C,aAAO,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;AAAA;AAAA,IACrC,CAAC,EAAE,KAAK,EAAE;AAAA,EACZ;AAEA,SAAO;AAAA;AAAA,IAEL,gBAAgB,OAAO,KAAK,CAAC;AAAA;AAAA;AAAA,IAG7B,gBAAgB,OAAO,IAAI,CAAC;AAAA;AAEhC;AAGO,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,aAAoB;AAAA,IACxB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,MAAM,EAAE,GAAG,+BAAc,MAAM,GAAG,OAAO,KAAK;AAAA,IAC9C,OAAO,EAAE,GAAG,+BAAc,OAAO,GAAG,OAAO,MAAM;AAAA,EACnD;AAEA,SACE,4EACE;AAAA,gDAAC,uCAAc,OAAc;AAAA,IAC7B;AAAA,MAAC;AAAA;AAAA,QACC,0BAAwB;AAAA,QACxB;AAAA,QACA,yBAAyB;AAAA,UACvB,QAAQ,8BAAY,OAAO,mBAAmB,UAAU;AAAA,QAC1D;AAAA;AAAA,IACF;AAAA,IACC;AAAA,KACH;AAEJ;","names":["Color","colors"]}
|
|
1
|
+
{"version":3,"sources":["../../src/providers/theme-provider.tsx"],"sourcesContent":["'use client';\n\nimport React from \"react\";\nimport { globalCSS } from \"../generated/global-css\";\nimport { BrowserScript } from \"../utils/browser-script\";\nimport { DEFAULT_THEME } from \"../utils/constants\";\nimport Color from \"color\";\nimport { deindent } from \"@stackframe/stack-shared/dist/utils/strings\";\n\ntype Colors = {\n background: string,\n foreground: string,\n card: string,\n cardForeground: string,\n popover: string,\n popoverForeground: string,\n primary: string,\n primaryForeground: string,\n secondary: string,\n secondaryForeground: string,\n muted: string,\n mutedForeground: string,\n accent: string,\n accentForeground: string,\n destructive: string,\n destructiveForeground: string,\n border: string,\n input: string,\n ring: string,\n}\n\nexport type Theme = {\n light: Colors,\n dark: Colors,\n radius: string,\n};\n\ntype ThemeConfig = {\n light?: Partial<Colors>,\n dark?: Partial<Colors>,\n} & Partial<Omit<Theme, 'light' | 'dark'>>;\n\nfunction convertColorToCSSVars(obj: Record<string, string>) {\n return Object.fromEntries(Object.entries(obj).map(([key, value]) => {\n const color = Color(value).hsl().array();\n return [\n // Convert camelCase key to dash-case\n key.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`),\n // Convert color to CSS HSL string\n `${color[0]} ${color[1]}% ${color[2]}%`\n ];\n }));\n}\n\nfunction convertColorsToCSS(theme: Theme) {\n const { dark, light, ...rest } = theme;\n const colors = {\n light: { ...convertColorToCSSVars(light), ...rest },\n dark: convertColorToCSSVars(dark),\n };\n\n function colorsToCSSVars(colors: Record<string, string>) {\n return Object.entries(colors).map((params) => {\n return `--${params[0]}: ${params[1]};\\n`;\n }).join('');\n }\n\n return deindent`\n .stack-scope {\n ${colorsToCSSVars(colors.light)}\n }\n [data-stack-theme=\"dark\"] .stack-scope {\n ${colorsToCSSVars(colors.dark)}\n }`;\n}\n\n\nexport function StackTheme({\n theme,\n children,\n nonce,\n} : {\n theme?: ThemeConfig,\n children?: React.ReactNode,\n nonce?: string,\n}) {\n const themeValue: Theme = {\n ...DEFAULT_THEME,\n ...theme,\n dark: { ...DEFAULT_THEME.dark, ...theme?.dark },\n light: { ...DEFAULT_THEME.light, ...theme?.light },\n };\n\n return (\n <>\n <BrowserScript nonce={nonce} />\n <style\n suppressHydrationWarning\n nonce={nonce}\n dangerouslySetInnerHTML={{\n __html: globalCSS + \"\\n\" + convertColorsToCSS(themeValue),\n }}\n />\n {children}\n </>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA0B;AAC1B,4BAA8B;AAC9B,uBAA8B;AAC9B,mBAAkB;AAClB,qBAAyB;AAuFrB;AApDJ,SAAS,sBAAsB,KAA6B;AAC1D,SAAO,OAAO,YAAY,OAAO,QAAQ,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAClE,UAAM,YAAQ,aAAAA,SAAM,KAAK,EAAE,IAAI,EAAE,MAAM;AACvC,WAAO;AAAA;AAAA,MAEL,IAAI,QAAQ,UAAU,OAAK,IAAI,EAAE,YAAY,CAAC,EAAE;AAAA;AAAA,MAEhD,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;AAAA,IACtC;AAAA,EACF,CAAC,CAAC;AACJ;AAEA,SAAS,mBAAmB,OAAc;AACxC,QAAM,EAAE,MAAM,OAAO,GAAG,KAAK,IAAI;AACjC,QAAM,SAAS;AAAA,IACb,OAAO,EAAE,GAAG,sBAAsB,KAAK,GAAG,GAAG,KAAK;AAAA,IAClD,MAAM,sBAAsB,IAAI;AAAA,EAClC;AAEA,WAAS,gBAAgBC,SAAgC;AACvD,WAAO,OAAO,QAAQA,OAAM,EAAE,IAAI,CAAC,WAAW;AAC5C,aAAO,KAAK,OAAO,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;AAAA;AAAA,IACrC,CAAC,EAAE,KAAK,EAAE;AAAA,EACZ;AAEA,SAAO;AAAA;AAAA,IAEL,gBAAgB,OAAO,KAAK,CAAC;AAAA;AAAA;AAAA,IAG7B,gBAAgB,OAAO,IAAI,CAAC;AAAA;AAEhC;AAGO,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,aAAoB;AAAA,IACxB,GAAG;AAAA,IACH,GAAG;AAAA,IACH,MAAM,EAAE,GAAG,+BAAc,MAAM,GAAG,OAAO,KAAK;AAAA,IAC9C,OAAO,EAAE,GAAG,+BAAc,OAAO,GAAG,OAAO,MAAM;AAAA,EACnD;AAEA,SACE,4EACE;AAAA,gDAAC,uCAAc,OAAc;AAAA,IAC7B;AAAA,MAAC;AAAA;AAAA,QACC,0BAAwB;AAAA,QACxB;AAAA,QACA,yBAAyB;AAAA,UACvB,QAAQ,8BAAY,OAAO,mBAAmB,UAAU;AAAA,QAC1D;AAAA;AAAA,IACF;AAAA,IACC;AAAA,KACH;AAEJ;","names":["Color","colors"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React$1 from 'react';
|
|
3
|
+
|
|
4
|
+
declare const TranslationContext: React$1.Context<{
|
|
5
|
+
quetzalKeys: Map<string, string>;
|
|
6
|
+
quetzalLocale: Map<string, string>;
|
|
7
|
+
} | null>;
|
|
8
|
+
declare function TranslationProviderClient(props: {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
quetzalKeys: Map<string, string>;
|
|
11
|
+
quetzalLocale: Map<string, string>;
|
|
12
|
+
}): react_jsx_runtime.JSX.Element;
|
|
13
|
+
|
|
14
|
+
export { TranslationContext, TranslationProviderClient };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React$1 from 'react';
|
|
3
|
+
|
|
4
|
+
declare const TranslationContext: React$1.Context<{
|
|
5
|
+
quetzalKeys: Map<string, string>;
|
|
6
|
+
quetzalLocale: Map<string, string>;
|
|
7
|
+
} | null>;
|
|
8
|
+
declare function TranslationProviderClient(props: {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
quetzalKeys: Map<string, string>;
|
|
11
|
+
quetzalLocale: Map<string, string>;
|
|
12
|
+
}): react_jsx_runtime.JSX.Element;
|
|
13
|
+
|
|
14
|
+
export { TranslationContext, TranslationProviderClient };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
"use client";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
|
|
22
|
+
// src/providers/translation-provider-client.tsx
|
|
23
|
+
var translation_provider_client_exports = {};
|
|
24
|
+
__export(translation_provider_client_exports, {
|
|
25
|
+
TranslationContext: () => TranslationContext,
|
|
26
|
+
TranslationProviderClient: () => TranslationProviderClient
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(translation_provider_client_exports);
|
|
29
|
+
var import_react = require("react");
|
|
30
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
31
|
+
var TranslationContext = (0, import_react.createContext)(null);
|
|
32
|
+
function TranslationProviderClient(props) {
|
|
33
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TranslationContext.Provider, { value: {
|
|
34
|
+
quetzalKeys: props.quetzalKeys,
|
|
35
|
+
quetzalLocale: props.quetzalLocale
|
|
36
|
+
}, children: props.children });
|
|
37
|
+
}
|
|
38
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
39
|
+
0 && (module.exports = {
|
|
40
|
+
TranslationContext,
|
|
41
|
+
TranslationProviderClient
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=translation-provider-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/providers/translation-provider-client.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\n\nexport const TranslationContext = createContext<null | {\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n}>(null);\n\nexport function TranslationProviderClient(props: {\n children: React.ReactNode,\n quetzalKeys: Map<string, string>,\n quetzalLocale: Map<string, string>,\n}) {\n return (\n <TranslationContext.Provider value={{\n quetzalKeys: props.quetzalKeys,\n quetzalLocale: props.quetzalLocale,\n }}>\n {props.children}\n </TranslationContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA0C;AAatC;AAXG,IAAM,yBAAqB,4BAG/B,IAAI;AAEA,SAAS,0BAA0B,OAIvC;AACD,SACE,4CAAC,mBAAmB,UAAnB,EAA4B,OAAO;AAAA,IAClC,aAAa,MAAM;AAAA,IACnB,eAAe,MAAM;AAAA,EACvB,GACG,gBAAM,UACT;AAEJ;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { quetzalLocales } from '../generated/quetzal-translations.mjs';
|
|
3
|
+
|
|
4
|
+
declare function TranslationProvider({ lang, children }: {
|
|
5
|
+
lang: Parameters<typeof quetzalLocales.get>[0] | undefined;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
}): Promise<react_jsx_runtime.JSX.Element>;
|
|
8
|
+
|
|
9
|
+
export { TranslationProvider };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { quetzalLocales } from '../generated/quetzal-translations.js';
|
|
3
|
+
|
|
4
|
+
declare function TranslationProvider({ lang, children }: {
|
|
5
|
+
lang: Parameters<typeof quetzalLocales.get>[0] | undefined;
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
}): Promise<react_jsx_runtime.JSX.Element>;
|
|
8
|
+
|
|
9
|
+
export { TranslationProvider };
|
|
@@ -0,0 +1,37 @@
|
|
|
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/providers/translation-provider.tsx
|
|
21
|
+
var translation_provider_exports = {};
|
|
22
|
+
__export(translation_provider_exports, {
|
|
23
|
+
TranslationProvider: () => TranslationProvider
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(translation_provider_exports);
|
|
26
|
+
var import_quetzal_translations = require("../generated/quetzal-translations");
|
|
27
|
+
var import_translation_provider_client = require("./translation-provider-client");
|
|
28
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
29
|
+
async function TranslationProvider({ lang, children }) {
|
|
30
|
+
const locale = import_quetzal_translations.quetzalLocales.get(lang ?? void 0);
|
|
31
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_translation_provider_client.TranslationProviderClient, { quetzalKeys: import_quetzal_translations.quetzalKeys, quetzalLocale: locale ?? /* @__PURE__ */ new Map(), children });
|
|
32
|
+
}
|
|
33
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
34
|
+
0 && (module.exports = {
|
|
35
|
+
TranslationProvider
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=translation-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/providers/translation-provider.tsx"],"sourcesContent":["import { quetzalLocales, quetzalKeys } from \"../generated/quetzal-translations\";\nimport { TranslationProviderClient } from \"./translation-provider-client\";\n\nexport async function TranslationProvider({ lang, children }: {\n lang: Parameters<typeof quetzalLocales.get>[0] | undefined,\n children: React.ReactNode,\n}) {\n const locale = quetzalLocales.get(lang ?? (undefined as never));\n return <TranslationProviderClient quetzalKeys={quetzalKeys} quetzalLocale={locale ?? new Map()}>\n {children}\n </TranslationProviderClient>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAA4C;AAC5C,yCAA0C;AAOjC;AALT,eAAsB,oBAAoB,EAAE,MAAM,SAAS,GAGxD;AACD,QAAM,SAAS,2CAAe,IAAI,QAAS,MAAmB;AAC9D,SAAO,4CAAC,gEAA0B,aAAa,yCAAa,eAAe,UAAU,oBAAI,IAAI,GAC1F,UACH;AACF;","names":[]}
|
|
@@ -39,14 +39,24 @@ var script = () => {
|
|
|
39
39
|
const setTheme = (mode) => {
|
|
40
40
|
document.documentElement.setAttribute("data-stack-theme", mode);
|
|
41
41
|
};
|
|
42
|
+
const colorToRGB = (color) => {
|
|
43
|
+
const temp = document.createElement("div");
|
|
44
|
+
temp.style.color = color;
|
|
45
|
+
document.body.appendChild(temp);
|
|
46
|
+
const computedColor = getComputedStyle(temp).color;
|
|
47
|
+
document.body.removeChild(temp);
|
|
48
|
+
const match = computedColor.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
|
|
49
|
+
if (match) {
|
|
50
|
+
return [parseInt(match[1]), parseInt(match[2]), parseInt(match[3])];
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
};
|
|
54
|
+
const rgbToLuma = (rgb) => {
|
|
55
|
+
return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1e3;
|
|
56
|
+
};
|
|
42
57
|
const copyFromColorScheme = () => {
|
|
43
58
|
const colorScheme = getComputedStyle(document.documentElement).getPropertyValue("color-scheme");
|
|
44
59
|
if (colorScheme) {
|
|
45
|
-
if (colorScheme === "normal") {
|
|
46
|
-
const isDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
47
|
-
setTheme(isDark ? "dark" : "light");
|
|
48
|
-
return true;
|
|
49
|
-
}
|
|
50
60
|
const mode = getColorMode(colorScheme);
|
|
51
61
|
if (mode) {
|
|
52
62
|
setTheme(mode);
|
|
@@ -55,6 +65,26 @@ var script = () => {
|
|
|
55
65
|
}
|
|
56
66
|
return false;
|
|
57
67
|
};
|
|
68
|
+
const copyFromVariables = () => {
|
|
69
|
+
let backgroundColor = getComputedStyle(document.documentElement).getPropertyValue("--background");
|
|
70
|
+
if (backgroundColor) {
|
|
71
|
+
if (/^\d+\s\d+%\s\d+(\.\d+)?%$/.test(backgroundColor)) {
|
|
72
|
+
backgroundColor = `hsl(${backgroundColor})`;
|
|
73
|
+
}
|
|
74
|
+
const rgb = colorToRGB(backgroundColor);
|
|
75
|
+
console.log(rgb);
|
|
76
|
+
if (rgb) {
|
|
77
|
+
const luma = rgbToLuma(rgb);
|
|
78
|
+
if (luma < 128) {
|
|
79
|
+
setTheme("dark");
|
|
80
|
+
} else {
|
|
81
|
+
setTheme("light");
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return false;
|
|
87
|
+
};
|
|
58
88
|
const copyFromAttributes = () => {
|
|
59
89
|
for (const attributeName of attributes) {
|
|
60
90
|
const colorTheme = document.documentElement.getAttribute(attributeName);
|
|
@@ -73,8 +103,11 @@ var script = () => {
|
|
|
73
103
|
if (copyFromColorScheme()) {
|
|
74
104
|
return;
|
|
75
105
|
}
|
|
76
|
-
if (mutation.attributeName && attributes.includes(mutation.attributeName)) {
|
|
77
|
-
|
|
106
|
+
if (mutation.attributeName && attributes.includes(mutation.attributeName) && copyFromAttributes()) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (copyFromVariables()) {
|
|
110
|
+
return;
|
|
78
111
|
}
|
|
79
112
|
});
|
|
80
113
|
});
|
|
@@ -83,7 +116,9 @@ var script = () => {
|
|
|
83
116
|
attributeFilter: attributes
|
|
84
117
|
});
|
|
85
118
|
if (!copyFromColorScheme()) {
|
|
86
|
-
copyFromAttributes()
|
|
119
|
+
if (!copyFromAttributes()) {
|
|
120
|
+
copyFromVariables();
|
|
121
|
+
}
|
|
87
122
|
}
|
|
88
123
|
};
|
|
89
124
|
function BrowserScript(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/browser-script.tsx"],"sourcesContent":["// Note that this script can not import anything from outside as it will be converted to a string and executed in the browser.\n\nimport { SsrScript } from \"../components/elements/ssr-layout-effect\";\n\n// Also please note that there might be hydration issues with this script, always check the browser console for errors after changing this script.\nconst script = () => {\n const attributes = ['data-joy-color-scheme', 'data-mui-color-scheme', 'data-theme', 'data-color-scheme', 'class'];\n\n const getColorMode = (value: string) => {\n if (value.includes('dark')) {\n return 'dark';\n }\n if (value.includes('light')) {\n return 'light';\n }\n return null;\n };\n\n const setTheme = (mode: 'dark' | 'light') => {\n document.documentElement.setAttribute('data-stack-theme', mode);\n };\n\n const copyFromColorScheme = () => {\n const colorScheme = getComputedStyle(document.documentElement).getPropertyValue('color-scheme');\n\n if (colorScheme) {\n
|
|
1
|
+
{"version":3,"sources":["../../src/utils/browser-script.tsx"],"sourcesContent":["// Note that this script can not import anything from outside as it will be converted to a string and executed in the browser.\n\nimport { SsrScript } from \"../components/elements/ssr-layout-effect\";\n\n// Also please note that there might be hydration issues with this script, always check the browser console for errors after changing this script.\nconst script = () => {\n const attributes = ['data-joy-color-scheme', 'data-mui-color-scheme', 'data-theme', 'data-color-scheme', 'class'];\n\n const getColorMode = (value: string) => {\n if (value.includes('dark')) {\n return 'dark';\n }\n if (value.includes('light')) {\n return 'light';\n }\n return null;\n };\n\n const setTheme = (mode: 'dark' | 'light') => {\n document.documentElement.setAttribute('data-stack-theme', mode);\n };\n\n const colorToRGB = (color: string): [number, number, number] | null => {\n // Create a temporary element to use for color conversion\n const temp = document.createElement('div');\n temp.style.color = color;\n document.body.appendChild(temp);\n\n // Get the computed style\n const computedColor = getComputedStyle(temp).color;\n document.body.removeChild(temp);\n\n // Parse the RGB values\n const match = computedColor.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\n if (match) {\n return [parseInt(match[1]), parseInt(match[2]), parseInt(match[3])];\n }\n\n return null;\n };\n\n const rgbToLuma = (rgb: [number, number, number]) => {\n return (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n };\n\n const copyFromColorScheme = () => {\n const colorScheme = getComputedStyle(document.documentElement).getPropertyValue('color-scheme');\n\n if (colorScheme) {\n const mode = getColorMode(colorScheme);\n if (mode) {\n setTheme(mode);\n return true;\n }\n }\n return false;\n };\n\n const copyFromVariables = () => {\n let backgroundColor = getComputedStyle(document.documentElement).getPropertyValue('--background');\n if (backgroundColor) {\n // shadcn by default uses the hsl values with the format \"123 45% 6.5%\"\n if (/^\\d+\\s\\d+%\\s\\d+(\\.\\d+)?%$/.test(backgroundColor)) {\n backgroundColor = `hsl(${backgroundColor})`;\n }\n\n // convert backgroundColor to luma and check if it's dark\n const rgb = colorToRGB(backgroundColor);\n console.log(rgb);\n if (rgb) {\n const luma = rgbToLuma(rgb);\n if (luma < 128) {\n setTheme('dark');\n } else {\n setTheme('light');\n }\n return true;\n }\n }\n return false;\n };\n\n const copyFromAttributes = () => {\n for (const attributeName of attributes) {\n const colorTheme = document.documentElement.getAttribute(attributeName);\n if (colorTheme) {\n const mode = getColorMode(colorTheme);\n if (mode) {\n setTheme(mode);\n return true;\n }\n }\n }\n return false;\n };\n\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (copyFromColorScheme()) {\n return;\n }\n if (mutation.attributeName && attributes.includes(mutation.attributeName) && copyFromAttributes()) {\n return;\n }\n if (copyFromVariables()) {\n return;\n }\n });\n });\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: attributes,\n });\n\n // Initial check on page load\n if (!copyFromColorScheme()) {\n if (!copyFromAttributes()) {\n copyFromVariables();\n }\n }\n};\n\nexport function BrowserScript(props : { nonce?: string }) {\n return <SsrScript nonce={props.nonce} script={`(${script.toString()})()`}/>;\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stackframe/stack",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.37",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -42,15 +42,16 @@
|
|
|
42
42
|
"tailwindcss-animate": "^1.0.7",
|
|
43
43
|
"tsx": "^4.7.2",
|
|
44
44
|
"yup": "^1.4.0",
|
|
45
|
-
"@stackframe/stack-sc": "2.5.
|
|
46
|
-
"@stackframe/stack-ui": "2.5.
|
|
47
|
-
"@stackframe/stack-shared": "2.5.
|
|
45
|
+
"@stackframe/stack-sc": "2.5.37",
|
|
46
|
+
"@stackframe/stack-ui": "2.5.37",
|
|
47
|
+
"@stackframe/stack-shared": "2.5.37"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"next": ">=14.1",
|
|
51
51
|
"react": ">=18.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
+
"@quetzallabs/i18n": "^0.1.19",
|
|
54
55
|
"@types/color": "^3.0.6",
|
|
55
56
|
"@types/cookie": "^0.6.0",
|
|
56
57
|
"@types/js-cookie": "^3.0.6",
|
|
@@ -61,6 +62,8 @@
|
|
|
61
62
|
"chokidar-cli": "^3.0.0",
|
|
62
63
|
"esbuild": "^0.20.2",
|
|
63
64
|
"next": "^14.1.0",
|
|
65
|
+
"i18next": "^23.14.0",
|
|
66
|
+
"i18next-parser": "^9.0.2",
|
|
64
67
|
"postcss": "^8.4.38",
|
|
65
68
|
"postcss-nested": "^6.0.1",
|
|
66
69
|
"react": "^18.2.0",
|
|
@@ -69,15 +72,20 @@
|
|
|
69
72
|
},
|
|
70
73
|
"scripts": {
|
|
71
74
|
"typecheck": "tsc --noEmit",
|
|
72
|
-
"build": "rimraf dist &&
|
|
73
|
-
"codegen": "
|
|
75
|
+
"build": "rimraf dist && pnpm run css && tsup-node",
|
|
76
|
+
"codegen": "pnpm run css && pnpm run quetzal",
|
|
77
|
+
"codegen:watch": "concurrently -n \"css,quetzal\" -k \"pnpm run css:watch\" \"pnpm run quetzal:watch\"",
|
|
74
78
|
"clean": "rimraf dist && rimraf node_modules",
|
|
75
|
-
"dev": "rimraf dist && concurrently -k \"tsup-node --watch\" \"
|
|
79
|
+
"dev": "rimraf dist && concurrently -n \"build,codegen\" -k \"tsup-node --watch\" \"pnpm run codegen:watch\"",
|
|
76
80
|
"lint": "eslint --ext .tsx,.ts .",
|
|
77
|
-
"css": "
|
|
78
|
-
"css:
|
|
79
|
-
"css:
|
|
80
|
-
"css
|
|
81
|
-
"css
|
|
81
|
+
"css": "pnpm run css-tw && pnpm run css-sc",
|
|
82
|
+
"css:watch": "concurrently -n \"tw,sc\" -k \"pnpm run css-tw:watch\" \"pnpm run css-sc:watch\"",
|
|
83
|
+
"css-tw:watch": "tailwindcss -i ./src/global.css -o ./src/generated/tailwind.css --watch",
|
|
84
|
+
"css-tw": "tailwindcss -i ./src/global.css -o ./src/generated/tailwind.css",
|
|
85
|
+
"css-sc": "tsx ./scripts/process-css.ts ./src/generated/tailwind.css ./src/generated/global-css.ts",
|
|
86
|
+
"css-sc:watch": "chokidar --silent './src/generated/tailwind.css' -c 'pnpm run css-sc'",
|
|
87
|
+
"override-env-local-for-quetzal": "echo \"\\n$STACK_ENV_LOCAL_PACKAGE_BUILD_OVERRIDE_FOR_QUETZAL\\n\" >> .env.local",
|
|
88
|
+
"quetzal": "rimraf quetzal-translations && pnpm run override-env-local-for-quetzal && quetzal-process-translations && tsx ./scripts/merge-quetzal-translations.ts",
|
|
89
|
+
"quetzal:watch": "chokidar --silent \"src/**/*\" -i \"src/generated/quetzal-translations.ts\" -c 'pnpm run quetzal || echo Quetzal failed, probably because the API key is missing. We will just ignore it'"
|
|
82
90
|
}
|
|
83
91
|
}
|