@getauthui/core 0.1.6 → 0.1.7

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
@@ -15,7 +15,7 @@
15
15
  visibility: hidden;
16
16
  }
17
17
  </style>
18
- <script type="module" src="https://unpkg.com/@getauthui/core@0.1.6"></script>
18
+ <script type="module" src="https://unpkg.com/@getauthui/core@0.1.7"></script>
19
19
 
20
20
  <authui-config
21
21
  endpoint="https://cloud.appwrite.io/v1"
@@ -46,7 +46,7 @@ v2 runs inside your page. Its requests to Appwrite are indistinguishable from yo
46
46
  - **OAuth2** for every provider Appwrite supports, with brand icons for the common ones
47
47
  - **Guest sessions** with an upgrade path to a real account
48
48
  - **MFA**: challenges during sign in, authenticator app enrollment with QR code, recovery codes, step-up verification for protected actions
49
- - **Account management**: profile, email and phone verification, password change, active sessions, connected identities, security log, account deletion
49
+ - **Account management**: profile, email and phone verification, password change, active sessions, connected identities, security log when the server exposes it, account deletion
50
50
  - **Modal, inline or headless** usage, `<authui-show when="signed-in">` conditionals, React wrappers
51
51
  - **Themeable**: Appwrite Console design system, dark mode that follows your page, CSS custom properties for everything, string overrides
52
52
  - **Framework agnostic**: standard web components built with Lit, ~90 KB gzipped ESM on the CDN (~78 KB IIFE), including Lit and the full Appwrite SDK
@@ -65,11 +65,17 @@ CDN:
65
65
  visibility: hidden;
66
66
  }
67
67
  </style>
68
- <script type="module" src="https://unpkg.com/@getauthui/core@0.1.6"></script>
68
+ <script type="module" src="https://unpkg.com/@getauthui/core@0.1.7"></script>
69
69
  ```
70
70
 
71
71
  The `<style>` keeps `<authui-show>` and the buttons hidden until the module defines them. See [`<authui-show>`](https://getauthui.appwrite.network/docs/components/show).
72
72
 
73
+ The default CDN URL is an ESM module: it defines the elements but does **not** set `window.AuthUI`. For `AuthUI.init` / `AuthUI.on` from a classic script, use the IIFE build:
74
+
75
+ ```html
76
+ <script src="https://unpkg.com/@getauthui/core@0.1.7/dist/authui.cdn.js"></script>
77
+ ```
78
+
73
79
  npm:
74
80
 
75
81
  ```bash
@@ -1465,7 +1465,7 @@ const gt = new Tt(), vt = {
1465
1465
  --authui-success-bg: rgba(16, 185, 129, 0.1);
1466
1466
  --authui-warning-foreground: #b45309;
1467
1467
  --authui-warning-bg: rgba(245, 158, 11, 0.1);
1468
- --authui-error-foreground: #dc2626;
1468
+ --authui-error-foreground: #b91c1c;
1469
1469
  --authui-error-bg: rgba(239, 68, 68, 0.1);
1470
1470
  --authui-info-foreground: #475569;
1471
1471
  --authui-info-bg: rgba(100, 116, 139, 0.1);
@@ -1708,11 +1708,13 @@ const gt = new Tt(), vt = {
1708
1708
  flex-direction: column;
1709
1709
  gap: 6px;
1710
1710
  }
1711
- .label {
1711
+ .field-header {
1712
1712
  display: flex;
1713
1713
  align-items: center;
1714
1714
  justify-content: space-between;
1715
1715
  gap: 8px;
1716
+ }
1717
+ .label {
1716
1718
  font-size: 14px;
1717
1719
  line-height: 1;
1718
1720
  font-weight: 500;
@@ -1876,7 +1878,7 @@ const gt = new Tt(), vt = {
1876
1878
  background: var(--authui-error-bg);
1877
1879
  }
1878
1880
  .alert-error .alert-body {
1879
- color: color-mix(in oklab, var(--authui-error-foreground) 90%, transparent);
1881
+ color: var(--authui-error-foreground);
1880
1882
  }
1881
1883
  .alert-success {
1882
1884
  color: var(--authui-success-foreground);
@@ -3009,8 +3011,8 @@ let k = class extends E {
3009
3011
  const t = this[e.field], i = e.meter ? it(t) : null;
3010
3012
  return r`
3011
3013
  <div class="field">
3012
- <label class="label" for=${e.id}>
3013
- ${e.label}
3014
+ <div class="field-header">
3015
+ <label class="label" for=${e.id}>${e.label}</label>
3014
3016
  ${e.forgot ? r`<button
3015
3017
  type="button"
3016
3018
  class="btn btn-link small"
@@ -3018,7 +3020,7 @@ let k = class extends E {
3018
3020
  >
3019
3021
  ${this.t("forgotPassword")}
3020
3022
  </button>` : o}
3021
- </label>
3023
+ </div>
3022
3024
  <div class="input-wrap">
3023
3025
  <input
3024
3026
  class="input"
@@ -3035,7 +3037,6 @@ let k = class extends E {
3035
3037
  class="btn btn-ghost btn-icon"
3036
3038
  @click=${() => this.showPassword = !this.showPassword}
3037
3039
  aria-label=${this.showPassword ? this.t("hidePassword") : this.t("showPassword")}
3038
- tabindex="-1"
3039
3040
  >
3040
3041
  ${this.showPassword ? l.eyeOff : l.eye}
3041
3042
  </button>
@@ -36,7 +36,7 @@ var AuthUI=(function(S){"use strict";var xe;const gt=globalThis,Rt=gt.ShadowRoot
36
36
  --authui-success-bg: rgba(16, 185, 129, 0.1);
37
37
  --authui-warning-foreground: #b45309;
38
38
  --authui-warning-bg: rgba(245, 158, 11, 0.1);
39
- --authui-error-foreground: #dc2626;
39
+ --authui-error-foreground: #b91c1c;
40
40
  --authui-error-bg: rgba(239, 68, 68, 0.1);
41
41
  --authui-info-foreground: #475569;
42
42
  --authui-info-bg: rgba(100, 116, 139, 0.1);
@@ -279,11 +279,13 @@ var AuthUI=(function(S){"use strict";var xe;const gt=globalThis,Rt=gt.ShadowRoot
279
279
  flex-direction: column;
280
280
  gap: 6px;
281
281
  }
282
- .label {
282
+ .field-header {
283
283
  display: flex;
284
284
  align-items: center;
285
285
  justify-content: space-between;
286
286
  gap: 8px;
287
+ }
288
+ .label {
287
289
  font-size: 14px;
288
290
  line-height: 1;
289
291
  font-weight: 500;
@@ -447,7 +449,7 @@ var AuthUI=(function(S){"use strict";var xe;const gt=globalThis,Rt=gt.ShadowRoot
447
449
  background: var(--authui-error-bg);
448
450
  }
449
451
  .alert-error .alert-body {
450
- color: color-mix(in oklab, var(--authui-error-foreground) 90%, transparent);
452
+ color: var(--authui-error-foreground);
451
453
  }
452
454
  .alert-success {
453
455
  color: var(--authui-success-foreground);
@@ -993,8 +995,8 @@ var AuthUI=(function(S){"use strict";var xe;const gt=globalThis,Rt=gt.ShadowRoot
993
995
  ${this.busy?b`<span class="spinner" aria-hidden="true"></span>`:R} ${e}
994
996
  </button>`}passwordField(e){const i=this[e.field],t=e.meter?Ct(i):null;return b`
995
997
  <div class="field">
996
- <label class="label" for=${e.id}>
997
- ${e.label}
998
+ <div class="field-header">
999
+ <label class="label" for=${e.id}>${e.label}</label>
998
1000
  ${e.forgot?b`<button
999
1001
  type="button"
1000
1002
  class="btn btn-link small"
@@ -1002,7 +1004,7 @@ var AuthUI=(function(S){"use strict";var xe;const gt=globalThis,Rt=gt.ShadowRoot
1002
1004
  >
1003
1005
  ${this.t("forgotPassword")}
1004
1006
  </button>`:R}
1005
- </label>
1007
+ </div>
1006
1008
  <div class="input-wrap">
1007
1009
  <input
1008
1010
  class="input"
@@ -1019,7 +1021,6 @@ var AuthUI=(function(S){"use strict";var xe;const gt=globalThis,Rt=gt.ShadowRoot
1019
1021
  class="btn btn-ghost btn-icon"
1020
1022
  @click=${()=>this.showPassword=!this.showPassword}
1021
1023
  aria-label=${this.showPassword?this.t("hidePassword"):this.t("showPassword")}
1022
- tabindex="-1"
1023
1024
  >
1024
1025
  ${this.showPassword?_.eyeOff:_.eye}
1025
1026
  </button>
@@ -7801,7 +7801,7 @@ const Ki = new mo(), Yi = {
7801
7801
  --authui-success-bg: rgba(16, 185, 129, 0.1);
7802
7802
  --authui-warning-foreground: #b45309;
7803
7803
  --authui-warning-bg: rgba(245, 158, 11, 0.1);
7804
- --authui-error-foreground: #dc2626;
7804
+ --authui-error-foreground: #b91c1c;
7805
7805
  --authui-error-bg: rgba(239, 68, 68, 0.1);
7806
7806
  --authui-info-foreground: #475569;
7807
7807
  --authui-info-bg: rgba(100, 116, 139, 0.1);
@@ -8044,11 +8044,13 @@ const Ki = new mo(), Yi = {
8044
8044
  flex-direction: column;
8045
8045
  gap: 6px;
8046
8046
  }
8047
- .label {
8047
+ .field-header {
8048
8048
  display: flex;
8049
8049
  align-items: center;
8050
8050
  justify-content: space-between;
8051
8051
  gap: 8px;
8052
+ }
8053
+ .label {
8052
8054
  font-size: 14px;
8053
8055
  line-height: 1;
8054
8056
  font-weight: 500;
@@ -8212,7 +8214,7 @@ const Ki = new mo(), Yi = {
8212
8214
  background: var(--authui-error-bg);
8213
8215
  }
8214
8216
  .alert-error .alert-body {
8215
- color: color-mix(in oklab, var(--authui-error-foreground) 90%, transparent);
8217
+ color: var(--authui-error-foreground);
8216
8218
  }
8217
8219
  .alert-success {
8218
8220
  color: var(--authui-success-foreground);
@@ -9345,8 +9347,8 @@ let ve = class extends qe {
9345
9347
  const e = this[t.field], n = t.meter ? pi(e) : null;
9346
9348
  return b`
9347
9349
  <div class="field">
9348
- <label class="label" for=${t.id}>
9349
- ${t.label}
9350
+ <div class="field-header">
9351
+ <label class="label" for=${t.id}>${t.label}</label>
9350
9352
  ${t.forgot ? b`<button
9351
9353
  type="button"
9352
9354
  class="btn btn-link small"
@@ -9354,7 +9356,7 @@ let ve = class extends qe {
9354
9356
  >
9355
9357
  ${this.t("forgotPassword")}
9356
9358
  </button>` : M}
9357
- </label>
9359
+ </div>
9358
9360
  <div class="input-wrap">
9359
9361
  <input
9360
9362
  class="input"
@@ -9371,7 +9373,6 @@ let ve = class extends qe {
9371
9373
  class="btn btn-ghost btn-icon"
9372
9374
  @click=${() => this.showPassword = !this.showPassword}
9373
9375
  aria-label=${this.showPassword ? this.t("hidePassword") : this.t("showPassword")}
9374
- tabindex="-1"
9375
9376
  >
9376
9377
  ${this.showPassword ? _.eyeOff : _.eye}
9377
9378
  </button>
package/dist/authui.js CHANGED
@@ -1,5 +1,5 @@
1
- import { a as t, c as r, o } from "./authui-user-button-CLVW46Q6.js";
2
- import { A as U, b as C, d as v, e as w, f as E, g as O, h as M, i as P, j as b, C as L, E as x, F as T, P as F, k as _, l as y, m as B, n as j, p as k, q, r as R, s as z, t as D, u as G, v as H, w as J, x as K, y as N } from "./authui-user-button-CLVW46Q6.js";
1
+ import { a as t, c as r, o } from "./authui-user-button-CdNoPDAh.js";
2
+ import { A as U, b as C, d as v, e as w, f as E, g as O, h as M, i as P, j as b, C as L, E as x, F as T, P as F, k as _, l as y, m as B, n as j, p as k, q, r as R, s as z, t as D, u as G, v as H, w as J, x as K, y as N } from "./authui-user-button-CdNoPDAh.js";
3
3
  import * as l from "appwrite";
4
4
  function s(e) {
5
5
  return t.configure(e), I;
@@ -1 +1 @@
1
- {"version":3,"file":"authui-sign-in.d.ts","sourceRoot":"","sources":["../../src/components/authui-sign-in.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authui-sign-in.d.ts","sourceRoot":"","sources":["../../src/components/authui-sign-in.ts"],"names":[],"mappings":"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"}
package/dist/react.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createElement as n, useEffect as i, Fragment as r, useState as s } from "react";
2
- import { a as u, c as a, o as h } from "./authui-user-button-CLVW46Q6.js";
2
+ import { a as u, c as a, o as h } from "./authui-user-button-CdNoPDAh.js";
3
3
  function v() {
4
4
  const [t, e] = s(() => u.getState());
5
5
  return i(() => u.on("change", e), []), {
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/styles/base.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,IAAI,yBAoyBhB,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/styles/base.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,IAAI,yBAsyBhB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getauthui/core",
3
- "version": "0.1.6",
3
+ "version": "0.1.7",
4
4
  "description": "Drop-in authentication UI for Appwrite. One script tag, every sign-in method, MFA, sessions and account management as web components.",
5
5
  "type": "module",
6
6
  "main": "./dist/authui.js",