@hanzo/ui 8.32.0 → 8.32.1
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.
|
@@ -13,9 +13,16 @@ const input_1 = require("../backends/gui/input.cjs");
|
|
|
13
13
|
const layout_1 = require("../backends/gui/layout.cjs");
|
|
14
14
|
const handoff_1 = require("./handoff.cjs");
|
|
15
15
|
const NAME = { google: 'Google', github: 'GitHub' };
|
|
16
|
-
function SignInPanel(
|
|
17
|
-
|
|
16
|
+
function SignInPanel(props) {
|
|
17
|
+
return props.request ? (0, jsx_runtime_1.jsx)(Panel, { ...props, mint: props.request }) : (0, jsx_runtime_1.jsx)(UnderProvider, { ...props });
|
|
18
|
+
}
|
|
19
|
+
/** The panel under `<IamProvider>`: its client mints the request. */
|
|
20
|
+
function UnderProvider(props) {
|
|
18
21
|
const { sdk } = (0, react_3.useIam)();
|
|
22
|
+
return (0, jsx_runtime_1.jsx)(Panel, { ...props, mint: (params) => sdk.getSigninUrl(params) });
|
|
23
|
+
}
|
|
24
|
+
function Panel({ title, line, providers = ['google', 'github'], signin = handoff_1.SIGNIN, signup = true, termsHref = 'https://hanzo.ai/terms', privacyHref = 'https://hanzo.ai/privacy', authorize = (u) => u, track, mint, }) {
|
|
25
|
+
const { t } = (0, react_2.useI18n)();
|
|
19
26
|
const [email, setEmail] = (0, react_1.useState)('');
|
|
20
27
|
const [busy, setBusy] = (0, react_1.useState)(null);
|
|
21
28
|
const [wrong, setWrong] = (0, react_1.useState)(null);
|
|
@@ -25,7 +32,7 @@ function SignInPanel({ title, line, providers = ['google', 'github'], signin = h
|
|
|
25
32
|
setBusy(method);
|
|
26
33
|
track?.('signin_started', { method });
|
|
27
34
|
try {
|
|
28
|
-
const request = await
|
|
35
|
+
const request = await mint(hint ? { additionalParams: { login_hint: hint } } : undefined);
|
|
29
36
|
window.location.assign(authorize((0, handoff_1.handoff)(request, way, signin)));
|
|
30
37
|
}
|
|
31
38
|
catch (err) {
|
|
@@ -33,6 +33,17 @@ export interface SignInPanelProps {
|
|
|
33
33
|
authorize?: (url: string) => string;
|
|
34
34
|
/** A press the stream should hear: `signin_started{method}`. */
|
|
35
35
|
track?: (name: string, props?: Record<string, unknown>) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Mints this site's own authorize request (the IAM SDK's `getSigninUrl`, which
|
|
38
|
+
* keeps the PKCE verifier and state on this site). For a site that holds its
|
|
39
|
+
* own IAM client rather than mounting `<IamProvider>`; omit it under a provider
|
|
40
|
+
* and the provider's client mints it.
|
|
41
|
+
*/
|
|
42
|
+
request?: Mint;
|
|
36
43
|
}
|
|
37
|
-
|
|
44
|
+
type Mint = (params?: {
|
|
45
|
+
additionalParams?: Record<string, string>;
|
|
46
|
+
}) => Promise<string>;
|
|
47
|
+
export declare function SignInPanel(props: SignInPanelProps): import("react").JSX.Element;
|
|
48
|
+
export {};
|
|
38
49
|
//# sourceMappingURL=SignInPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInPanel.d.ts","sourceRoot":"","sources":["../../src/auth/SignInPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAQhE,OAAO,EAA4B,KAAK,YAAY,EAAY,MAAM,WAAW,CAAA;AAEjF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gGAAgG;IAChG,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mCAAmC;IACnC,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wFAAwF;IACxF,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,gEAAgE;IAChE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"SignInPanel.d.ts","sourceRoot":"","sources":["../../src/auth/SignInPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAQhE,OAAO,EAA4B,KAAK,YAAY,EAAY,MAAM,WAAW,CAAA;AAEjF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gGAAgG;IAChG,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mCAAmC;IACnC,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1B,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wFAAwF;IACxF,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,gEAAgE;IAChE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC/D;;;;;OAKG;IACH,OAAO,CAAC,EAAE,IAAI,CAAA;CACf;AAED,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAIvF,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BAElD"}
|
package/dist/auth/SignInPanel.js
CHANGED
|
@@ -10,9 +10,16 @@ import { Input } from '../backends/gui/input.js';
|
|
|
10
10
|
import { Anchor, Heading, Paragraph, YStack } from '../backends/gui/layout.js';
|
|
11
11
|
import { address, handoff, SIGNIN } from './handoff.js';
|
|
12
12
|
const NAME = { google: 'Google', github: 'GitHub' };
|
|
13
|
-
export function SignInPanel(
|
|
14
|
-
|
|
13
|
+
export function SignInPanel(props) {
|
|
14
|
+
return props.request ? _jsx(Panel, { ...props, mint: props.request }) : _jsx(UnderProvider, { ...props });
|
|
15
|
+
}
|
|
16
|
+
/** The panel under `<IamProvider>`: its client mints the request. */
|
|
17
|
+
function UnderProvider(props) {
|
|
15
18
|
const { sdk } = useIam();
|
|
19
|
+
return _jsx(Panel, { ...props, mint: (params) => sdk.getSigninUrl(params) });
|
|
20
|
+
}
|
|
21
|
+
function Panel({ title, line, providers = ['google', 'github'], signin = SIGNIN, signup = true, termsHref = 'https://hanzo.ai/terms', privacyHref = 'https://hanzo.ai/privacy', authorize = (u) => u, track, mint, }) {
|
|
22
|
+
const { t } = useI18n();
|
|
16
23
|
const [email, setEmail] = useState('');
|
|
17
24
|
const [busy, setBusy] = useState(null);
|
|
18
25
|
const [wrong, setWrong] = useState(null);
|
|
@@ -22,7 +29,7 @@ export function SignInPanel({ title, line, providers = ['google', 'github'], sig
|
|
|
22
29
|
setBusy(method);
|
|
23
30
|
track?.('signin_started', { method });
|
|
24
31
|
try {
|
|
25
|
-
const request = await
|
|
32
|
+
const request = await mint(hint ? { additionalParams: { login_hint: hint } } : undefined);
|
|
26
33
|
window.location.assign(authorize(handoff(request, way, signin)));
|
|
27
34
|
}
|
|
28
35
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInPanel.js","sourceRoot":"","sources":["../../src/auth/SignInPanel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,EAAkC,MAAM,OAAO,CAAA;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAA+B,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"SignInPanel.js","sourceRoot":"","sources":["../../src/auth/SignInPanel.tsx"],"names":[],"mappings":"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"}
|
package/dist/gallery.html
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!doctype html><html lang="en" class="t_dark"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>@hanzo/ui 8.32.
|
|
1
|
+
<!doctype html><html lang="en" class="t_dark"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>@hanzo/ui 8.32.1</title><style>/* @hanzo/ui — generated by scripts/gen-css.mjs. Do not edit. */
|
|
2
2
|
:root { --hanzo-ui-styles: 1; }
|
|
3
3
|
/* Hanzo Design System — the entry point. Import THIS one file.
|
|
4
4
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.32.
|
|
3
|
+
"version": "8.32.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
|
|
6
6
|
"exports": {
|