@orangecheck/auth-client 2.14.1 → 2.16.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/README.md CHANGED
@@ -12,6 +12,13 @@ sign-in button.
12
12
 
13
13
  Pairs with [`@orangecheck/auth-core`](../auth-core) on the server side.
14
14
 
15
+ > **Which integration pathway is this?** This package is for letting
16
+ > OrangeCheck *be* your sign-in. If you already run your own login
17
+ > (Google, Auth0, Clerk, NextAuth, …) and just want to add a `did:oc`
18
+ > to your users, you don't need this package — see
19
+ > [OrangeCheck Connect](https://docs.ochk.io/connect). Both pathways are
20
+ > compared at [docs.ochk.io/integration](https://docs.ochk.io/integration).
21
+
15
22
  ## Install
16
23
 
17
24
  ```bash
package/dist/index.js CHANGED
@@ -1900,17 +1900,41 @@ function SigninTab({
1900
1900
  }
1901
1901
  );
1902
1902
  }
1903
- var OAUTH_PROVIDERS = [
1904
- { id: "google", label: "Continue with Google" }
1905
- ];
1903
+ function ProviderIcon({ id }) {
1904
+ const common = {
1905
+ width: 14,
1906
+ height: 14,
1907
+ viewBox: "0 0 24 24",
1908
+ fill: "currentColor",
1909
+ "aria-hidden": true,
1910
+ style: { flex: "0 0 auto" }
1911
+ };
1912
+ if (id === "google") {
1913
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { ...common, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z" }) });
1914
+ }
1915
+ if (id === "github") {
1916
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { ...common, children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" }) });
1917
+ }
1918
+ return null;
1919
+ }
1906
1920
  function ProviderSignIn({
1907
1921
  authOrigin,
1908
1922
  returnTo
1909
1923
  }) {
1924
+ const [providers, setProviders] = React3__namespace.useState([]);
1910
1925
  const [origin, setOrigin] = React3__namespace.useState("");
1911
1926
  React3__namespace.useEffect(() => {
1912
1927
  setOrigin(window.location.origin);
1913
- }, []);
1928
+ let cancelled = false;
1929
+ fetch(`${authOrigin}/api/auth/providers`, { credentials: "include" }).then((r) => r.ok ? r.json() : null).then((body) => {
1930
+ if (!cancelled && body?.providers) setProviders(body.providers);
1931
+ }).catch(() => {
1932
+ });
1933
+ return () => {
1934
+ cancelled = true;
1935
+ };
1936
+ }, [authOrigin]);
1937
+ if (providers.length === 0) return null;
1914
1938
  const providerReturnTo = origin ? `${origin}${returnTo}` : returnTo;
1915
1939
  const line = { flex: 1, height: 1, background: "var(--border, #27272a)" };
1916
1940
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-oc-signin-providers": "", style: { marginTop: 20 }, children: [
@@ -1935,7 +1959,7 @@ function ProviderSignIn({
1935
1959
  ]
1936
1960
  }
1937
1961
  ),
1938
- OAUTH_PROVIDERS.map((p) => /* @__PURE__ */ jsxRuntime.jsx(
1962
+ providers.map((p, i) => /* @__PURE__ */ jsxRuntime.jsxs(
1939
1963
  "a",
1940
1964
  {
1941
1965
  href: `${authOrigin}/api/auth/${p.id}/start?return_to=${encodeURIComponent(
@@ -1943,11 +1967,14 @@ function ProviderSignIn({
1943
1967
  )}`,
1944
1968
  "data-oc-signin-provider": p.id,
1945
1969
  style: {
1946
- display: "block",
1970
+ display: "flex",
1971
+ alignItems: "center",
1972
+ justifyContent: "center",
1973
+ gap: 10,
1947
1974
  boxSizing: "border-box",
1948
1975
  width: "100%",
1976
+ marginTop: i === 0 ? 0 : 8,
1949
1977
  padding: "0.6rem 0.875rem",
1950
- textAlign: "center",
1951
1978
  border: "1px solid var(--border, #27272a)",
1952
1979
  borderRadius: 6,
1953
1980
  background: "transparent",
@@ -1956,7 +1983,10 @@ function ProviderSignIn({
1956
1983
  fontSize: 12,
1957
1984
  textDecoration: "none"
1958
1985
  },
1959
- children: p.label
1986
+ children: [
1987
+ /* @__PURE__ */ jsxRuntime.jsx(ProviderIcon, { id: p.id }),
1988
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: p.label })
1989
+ ]
1960
1990
  },
1961
1991
  p.id
1962
1992
  ))