@atlasauth/embed 0.1.2 → 0.2.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,39 @@
1
+ # @atlasauth/embed changelog
2
+
3
+ ## 0.2.1
4
+ - The widget's captcha loader/renderer now comes from `@atlasauth/js` (the same one the React
5
+ components use). No behaviour change; a failed provider script load is now retried on the next
6
+ attempt instead of failing until reload.
7
+
8
+ - **Accessibility.** The primary button label colour is picked for contrast from the primary colour
9
+ (white or near-black) instead of a fixed white; override it with the new `--atlas-embed-color-text-on-primary`
10
+ CSS variable. Buttons, social buttons, links and toggles show a solid 2px `:focus-visible` outline
11
+ (`--atlas-embed-color-focus-ring`, default the primary). Text fields and the social search box are 16px, so
12
+ iOS Safari no longer zooms on focus.
13
+
14
+
15
+ ## 0.2.0
16
+ - **Design system.** `<atlas-sign-in>` / `<atlas-sign-up>` and `mount()` apply the design configured in
17
+ the Atlas dashboard (from `/v1/appearance`): palette, radius, font, button/input style, shadow,
18
+ density and social layout map onto the widget's tokens and interaction settings.
19
+ - **New inline `appearance.preset` and `appearance.design`** (and `data-atlas-preset` on the element) —
20
+ the same settings and semantics as `@atlasauth/react`: tenant branding < dashboard design < `preset`
21
+ < `variables` < `design`. Opt out of the dashboard design with `appearance.instanceDesign: false`.
22
+ - The widget root carries the stable `data-atlas-*` design attributes (the widget keeps styling itself
23
+ through its `--atlas-embed-*` tokens; it does not ship the `--atlas-*` design stylesheet).
24
+ - Without a design, theming is unchanged.
25
+ - New dependency: `@atlasauth/design` — only its zod-free runtime entry is bundled into `embed.js`
26
+ (about +21 KB minified).
27
+
28
+ ## 0.1.2
29
+ - **Fixed: provider icons.** Social-button provider icons now carry an intrinsic 18px size, so they no longer collapse to 0px where no CSS sizes them. The widget's own styles still size them per button size.
30
+
31
+ ## 0.1.1
32
+ - First published release.
33
+ - **Framework-agnostic sign-in widget.** Use the `<atlas-sign-in>` / `<atlas-sign-up>` custom elements (register them with `defineElements()`), or mount imperatively with `mountSignIn()` / `mountSignUp()`. The standalone `embed.js` bundle registers the elements and exposes `window.Atlas` for script-tag use; `publishable-key`, `frontend-api` and `redirect` can be set on the elements or the script tag (`readScriptTag()`, `setScriptDefaults()`).
34
+ - **Sign-in and sign-up flows.** Email + password on one screen, email / SMS verification codes with a segmented code input, forgot-password and reset, show / hide password, "remember me", trusted-device ("remember this device") for two-factor, configurable sign-up fields (including long text, date, radio and multi-select), and Terms / Privacy consent on sign-up.
35
+ - **Passkeys.** "Sign in with a passkey", including browser autofill (conditional UI).
36
+ - **Social sign-in.** Brand-logo provider buttons with configurable variant, size, layout and labels, search for long provider lists, a scrollable carousel, Google's official sign-in button, Bluesky handle sign-in, and a "Sign in with Atlas" button with a popup flow.
37
+ - **CAPTCHA** widgets are rendered for flows that require them.
38
+ - **Appearance.** The widget follows the instance's branding and appearance settings (design tokens, button effects, a customizable loading state). Helpers and types such as `resolveTokens()`, `cssVariables()`, `resolveSocialButtons()`, `providerIcon()`, `WidgetAppearance` and `SocialButtonsConfig` are exported for module users.
39
+ - Redirect targets are checked with `validateRedirect()`.
@@ -11,6 +11,7 @@
11
11
  * that is not safe to hand a third-party origin (see the endpoint).
12
12
  * - an inline `appearance` option the embedding page passes, which wins.
13
13
  */
14
+ import type { AtlasDesign, InstanceDesign, PresetId } from '@atlasauth/design/runtime';
14
15
  /** Design tokens a tenant (or the inline override) can set. */
15
16
  export interface DesignTokens {
16
17
  colorPrimary?: string;
@@ -146,6 +147,16 @@ export interface ResolvedSocialButtons {
146
147
  export declare function resolveSocialButtons(server: SocialButtonsConfig | undefined, inline: SocialButtonsConfig | undefined): ResolvedSocialButtons;
147
148
  /** The inline override an embedding page may pass as `appearance`. */
148
149
  export interface WidgetAppearance {
150
+ /**
151
+ * A design preset (`minimal`, `atlas`, `glass`, `midnight`, `editorial`,
152
+ * `terminal`, `sunrise`, `forest`, `grape`, `slate`, `split-photo`, `bold`).
153
+ * Replaces the dashboard design as the starting point.
154
+ */
155
+ preset?: PresetId;
156
+ /** Structured design overrides — the dashboard design editor's settings. Highest precedence. */
157
+ design?: AtlasDesign;
158
+ /** Apply the design configured in the dashboard (default true). */
159
+ instanceDesign?: boolean;
149
160
  variables?: DesignTokens;
150
161
  elements?: Partial<Record<ElementKey, string>>;
151
162
  /** How the social buttons look — variant, size, layout, per-provider labels. */
@@ -216,6 +227,8 @@ export interface PublicSignUpField {
216
227
  export interface AppearanceResponse {
217
228
  object: 'appearance';
218
229
  appearance: PublicAppearance;
230
+ /** The design configured in the dashboard (structured design system), when any. */
231
+ design?: InstanceDesign | null;
219
232
  /** ENABLED social provider ids (keys only), e.g. `['google','github']`. */
220
233
  providers: string[];
221
234
  /**
@@ -279,6 +292,12 @@ export declare function tokensFromAppearance(appearance: PublicAppearance | null
279
292
  export declare function resolveTokens(appearance: PublicAppearance | null, override?: WidgetAppearance): Required<DesignTokens>;
280
293
  /** Tokens as `--atlas-embed-*` custom properties for the root element. */
281
294
  export declare function cssVariables(tokens: Required<DesignTokens>): Record<string, string>;
295
+ /**
296
+ * Label colour for the primary button: white or near-black, whichever contrasts
297
+ * more with the primary (a fixed white label is unreadable on a light brand
298
+ * colour). White when the primary cannot be evaluated (`var(--brand)`).
299
+ */
300
+ export declare function textOnPrimary(primary: string): string;
282
301
  /** Our base class plus the page's override, appended so theirs wins on ties. */
283
302
  export declare function classFor(element: ElementKey, base: string, override?: WidgetAppearance): string;
284
303
  /**
@@ -20,9 +20,11 @@ exports.resolveSocialButtons = resolveSocialButtons;
20
20
  exports.tokensFromAppearance = tokensFromAppearance;
21
21
  exports.resolveTokens = resolveTokens;
22
22
  exports.cssVariables = cssVariables;
23
+ exports.textOnPrimary = textOnPrimary;
23
24
  exports.classFor = classFor;
24
25
  exports.orderedProviders = orderedProviders;
25
26
  exports.providerLabel = providerLabel;
27
+ const runtime_1 = require("@atlasauth/design/runtime");
26
28
  const CODE_INPUT_STYLES = ['boxes', 'single'];
27
29
  /** Resolve the code-input style: inline override wins, then server, then `boxes`. */
28
30
  function resolveCodeInput(server, inline) {
@@ -147,6 +149,18 @@ function cssVariables(tokens) {
147
149
  }
148
150
  return vars;
149
151
  }
152
+ /**
153
+ * Label colour for the primary button: white or near-black, whichever contrasts
154
+ * more with the primary (a fixed white label is unreadable on a light brand
155
+ * colour). White when the primary cannot be evaluated (`var(--brand)`).
156
+ */
157
+ function textOnPrimary(primary) {
158
+ const parsed = (0, runtime_1.parseCssColor)(primary);
159
+ if (!parsed)
160
+ return '#ffffff';
161
+ const hex = (0, runtime_1.toHex)(parsed);
162
+ return (0, runtime_1.contrastRatio)('#ffffff', hex) >= (0, runtime_1.contrastRatio)('#111111', hex) ? '#ffffff' : '#111111';
163
+ }
150
164
  /** Our base class plus the page's override, appended so theirs wins on ties. */
151
165
  function classFor(element, base, override) {
152
166
  const extra = override?.elements?.[element];
@@ -1 +1 @@
1
- {"version":3,"file":"appearance.js","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"appearance.js","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -42,6 +42,11 @@ function optionsFromElement(el, mode) {
42
42
  const options = { publishableKey, frontendApi, mode };
43
43
  if (redirect)
44
44
  options.redirect = redirect;
45
+ // `data-atlas-preset="midnight"` — a design preset straight from markup. Any
46
+ // value is passed through; the design system ignores (and warns on) unknown ids.
47
+ const preset = dataset.atlasPreset ?? attr('preset');
48
+ if (preset)
49
+ options.appearance = { preset: preset };
45
50
  return options;
46
51
  }
47
52
  /** Merge imperative options over the script-tag defaults. */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAmBA,8CAEC;AAED,8CAEC;AAGD,sCAQC;AAOD,gDAgBC;AAGD,wCAeC;AA5DD,IAAI,cAAc,GAAmB,EAAE,CAAC;AAExC,SAAgB,iBAAiB,CAAC,QAAwB;IACxD,cAAc,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,qEAAqE;AACrE,SAAgB,aAAa,CAAC,MAA4C;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,IAAI,CAAC,CAAC,QAAQ;QAAE,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,QAAQ,CAAC;IAChD,IAAI,CAAC,CAAC,SAAS;QAAE,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;IAC/C,IAAI,CAAC,CAAC,aAAa;QAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,aAAa,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAChC,EAAW,EACX,IAA2B;IAE3B,MAAM,OAAO,GAAI,EAAkB,CAAC,OAAO,CAAC;IAC5C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAsB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;IAEtF,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,cAAc,CAAC,cAAc,CAAC;IACpG,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,WAAW,CAAC;IAC5F,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC;IAEtF,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,OAAO,GAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACrE,IAAI,QAAQ;QAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6DAA6D;AAC7D,SAAgB,cAAc,CAC5B,IAA2B,EAC3B,YAAoC,EAAE;IAEtC,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC;IACjF,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,IAAI,cAAc,CAAC,WAAW,CAAC;IACxE,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAEjD,OAAO;QACL,GAAG,SAAS;QACZ,cAAc;QACd,WAAW;QACX,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ;QACvD,IAAI;KACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAmBA,8CAEC;AAED,8CAEC;AAGD,sCAQC;AAOD,gDAoBC;AAGD,wCAeC;AAhED,IAAI,cAAc,GAAmB,EAAE,CAAC;AAExC,SAAgB,iBAAiB,CAAC,QAAwB;IACxD,cAAc,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAED,SAAgB,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,qEAAqE;AACrE,SAAgB,aAAa,CAAC,MAA4C;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;IACzB,MAAM,GAAG,GAAmB,EAAE,CAAC;IAC/B,IAAI,CAAC,CAAC,QAAQ;QAAE,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,QAAQ,CAAC;IAChD,IAAI,CAAC,CAAC,SAAS;QAAE,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC;IAC/C,IAAI,CAAC,CAAC,aAAa;QAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,aAAa,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAChC,EAAW,EACX,IAA2B;IAE3B,MAAM,OAAO,GAAI,EAAkB,CAAC,OAAO,CAAC;IAC5C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAsB,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;IAEtF,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,cAAc,CAAC,cAAc,CAAC;IACpG,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,WAAW,CAAC;IAC5F,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC;IAEtF,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,OAAO,GAAkB,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACrE,IAAI,QAAQ;QAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1C,6EAA6E;IAC7E,iFAAiF;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,MAAM;QAAE,OAAO,CAAC,UAAU,GAAG,EAAE,MAAM,EAAE,MAAe,EAAE,CAAC;IAC7D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6DAA6D;AAC7D,SAAgB,cAAc,CAC5B,IAA2B,EAC3B,YAAoC,EAAE;IAEtC,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,IAAI,cAAc,CAAC,cAAc,CAAC;IACjF,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,IAAI,cAAc,CAAC,WAAW,CAAC;IACxE,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAEjD,OAAO;QACL,GAAG,SAAS;QACZ,cAAc;QACd,WAAW;QACX,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ;QACvD,IAAI;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { type AppearanceRender, type InstanceDesign, type ResolvedDesign } from '@atlasauth/design/runtime';
2
+ import type { DesignTokens, InteractionConfig, SocialButtonsConfig, WidgetAppearance } from './appearance';
3
+ /**
4
+ * The design system for the widget (`<atlas-sign-in>` / `<atlas-sign-up>` and
5
+ * `mount()`), with the same semantics as `@atlasauth/react`:
6
+ *
7
+ * tenant branding < dashboard design < appearance.preset < appearance.variables < appearance.design
8
+ *
9
+ * The widget keeps its own stylesheet (the `--atlas-embed-*` tokens and the
10
+ * interaction data-attributes), so a resolved design is TRANSLATED into those:
11
+ * palette → colour tokens, shape → radius, typography → font stack, buttons /
12
+ * inputs / elevation / density → the interaction config, social layout → the
13
+ * social-button config. The root additionally carries the design's
14
+ * `data-atlas-*` attributes as stable hooks for the host page.
15
+ *
16
+ * Size: the widget ships as one script, so it uses the zod-free runtime entry
17
+ * and never compiles the `--atlas-*` design stylesheet (its own stylesheet
18
+ * reads the `--atlas-embed-*` tokens instead) — the CSS compiler stays out of
19
+ * `embed.js`.
20
+ */
21
+ export interface WidgetDesign {
22
+ /** Root attributes + font links (no stylesheet, no inline `style`). */
23
+ render: AppearanceRender;
24
+ /** Colour/shape/font tokens for the widget stylesheet. */
25
+ tokens: Required<DesignTokens>;
26
+ /** Interaction defaults implied by the design (the inline override still wins). */
27
+ interaction: InteractionConfig;
28
+ /** Social-button defaults implied by the design (the inline override still wins). */
29
+ socialButtons: SocialButtonsConfig;
30
+ resolved: ResolvedDesign;
31
+ }
32
+ /**
33
+ * The design the widget renders, or null when there is none (no dashboard
34
+ * design, no inline `preset`/`design`) — the widget then themes exactly as
35
+ * before from the tenant branding and inline tokens.
36
+ */
37
+ export declare function widgetDesign(instance: InstanceDesign | null | undefined, inline: WidgetAppearance | undefined, opts?: {
38
+ frontendApi?: string;
39
+ prefersDark?: boolean;
40
+ }): WidgetDesign | null;
package/dist/design.js ADDED
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.widgetDesign = widgetDesign;
4
+ const runtime_1 = require("@atlasauth/design/runtime");
5
+ /**
6
+ * The design the widget renders, or null when there is none (no dashboard
7
+ * design, no inline `preset`/`design`) — the widget then themes exactly as
8
+ * before from the tenant branding and inline tokens.
9
+ */
10
+ function widgetDesign(instance, inline, opts = {}) {
11
+ const r = (0, runtime_1.resolveComposedDesign)({
12
+ instance: inline?.instanceDesign === false ? null : instance,
13
+ preset: inline?.preset,
14
+ design: inline?.design,
15
+ warn: runtime_1.warnOnce,
16
+ });
17
+ if (!r)
18
+ return null;
19
+ const dark = r.colorScheme === 'dark' || (r.colorScheme === 'auto' && !!opts.prefersDark);
20
+ const p = dark ? r.paletteDark : r.palette;
21
+ const tokens = {
22
+ colorPrimary: p.primary,
23
+ colorText: p.text,
24
+ colorBackground: p.background,
25
+ colorAccent: p.accent,
26
+ colorCard: p.surface,
27
+ colorBorder: p.border,
28
+ // The widget derives its card radius from the control radius (+4px); cap a
29
+ // pill control radius so the card stays a card.
30
+ borderRadius: `${Math.min(r.shape.controlRadius, 24)}px`,
31
+ fontFamily: (0, runtime_1.fontStack)(r.typography.font),
32
+ };
33
+ // Inline variables win over the design, exactly as they win over the tenant's.
34
+ for (const [key, value] of Object.entries(inline?.variables ?? {})) {
35
+ if (value !== undefined)
36
+ tokens[key] = value;
37
+ }
38
+ const shadow = r.elevation.cardShadow === 'xl' ? 'lg' : r.elevation.cardShadow;
39
+ const interaction = {
40
+ buttonStyle: r.buttons.style === 'gradient' ? 'solid' : r.buttons.style,
41
+ shadow: r.card.style === 'outline' || r.card.style === 'none' ? 'none' : shadow,
42
+ density: r.spacing.density === 'compact' ? 'compact' : 'comfortable',
43
+ inputStyle: r.inputs.style,
44
+ };
45
+ const socialButtons = r.buttons.socialLayout === 'icons'
46
+ ? { variant: 'icon', layout: 'grid' }
47
+ : { layout: r.buttons.socialLayout === 'grid' ? 'grid' : 'list' };
48
+ const key = (0, runtime_1.designKey)(JSON.stringify(r));
49
+ return {
50
+ render: {
51
+ style: {},
52
+ attributes: { ...(0, runtime_1.designDataAttributes)(r), 'data-atlas-design': key },
53
+ css: '',
54
+ key,
55
+ fontStylesheets: (0, runtime_1.designFontUrls)(r, opts.frontendApi),
56
+ },
57
+ tokens,
58
+ interaction,
59
+ socialButtons,
60
+ resolved: r,
61
+ };
62
+ }
63
+ //# sourceMappingURL=design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.js","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"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"}