Core.Portal.Chrome 0.3.26

Core.Portal.Chrome

Core.Portal.Chrome contains portal-safe MVC/Razor chrome primitives for product portals.

Owns

  • Auth shell and form-alert components.
  • Public auth split-shell template for MVC/Razor and Blazor portal hosts.
  • Public and app header partials.
  • Appearance controls and static chrome assets.
  • Legal footer/link models and shared legal footer renderers.
  • Product-neutral legal acceptance and public-auth query primitives.
  • Product-agnostic account-support view models and partials.

Does Not Own

  • Product workflows, navigation trees, route maps, dashboards, tables, page copy, or customer/product behavior.
  • Broker-backed sign-in orchestration. Use Core.Portal.SignIn for Core auth broker login.
  • Persistence, database, API-controller, worker, database explorer, or product-repo dependencies.
  • Product-specific API clients. Any support client in this package must call product-agnostic Core endpoints only and must be optional for consuming hosts.
  • Product-specific legal copy, terms/privacy text, pricing, trial length, billing, tenant provisioning, or legal-record persistence.

Consumer Rules

Product portals should consume this package through NuGet package flow. The product host owns branding, route placement, cookie settings, tenant configuration, typed product API clients, smoke tests, and architecture allowlists.

Public Auth Shell

Use PortalPublicAuthShell and PortalPublicAuthPreferences from Blazor hosts, and the _PortalChromePublicAuthWordmark, _PortalChromePublicAuthPreferences, and _PortalChromePublicAuthBrandField partials from MVC or Razor Pages hosts. Link the compiled Core presentation theme, _content/Core.Portal.Chrome/css/portal-auth-shell.css, and _content/Core.Portal.Chrome/js/portal-auth-shell.js, then set product-owned CSS variables for brand gradients or imagery as needed. Core owns the responsive shell, masthead preference controls, Barlow typeface stack, dark-mode token binding through html[data-theme], form spacing, field sizing, field validation behavior, preference handoff hooks, and alert primitives; product hosts own the sign-in form, forgot-password behavior, provider posture, proof credentials, page copy, routes, cookie names, and storage-key overrides.

Public auth forms opt into the shared behavior with data-auth-form. Mark required visible fields with normal HTML validation attributes such as required, type="email", and minlength, and provide localized messages through data-auth-required-message, data-auth-invalid-message, data-auth-min-length-message, and data-auth-match-message. Password confirmation fields can declare data-auth-match-input="<field name>". Submit buttons can declare data-auth-busy-text; buttons marked data-auth-disabled-permanent remain disabled.

When changing language, portals can preserve non-sensitive state by placing data-auth-preserve-param="<query parameter>" on fields such as email, step, or return URL. Do not mark passwords for preservation.

Cookie-backed Razor Pages hosts should provide PublicLanguageCookieName; the shared script writes the cookie and removes the transient language query parameter on reload. Query-backed Blazor hosts can omit PublicLanguageCookieName; the shared script writes the selected language into LanguageQueryParameterName while preserving marked auth state. The language selector is part of the standard auth shell and defaults to en-US; portals that expose profile or settings language preferences can read CorePortalAuthShell.getPreferences() or consume CorePortalAuthShell.readAuthPreferenceHandoff() after sign-in, then call CorePortalAuthShell.clearAuthPreferenceHandoff() once the product-owned preference store is updated.

The public-auth validation standard is:

  • client-correctable input (required fields, email format, password length, password confirmation mismatch) uses field-level validation and keeps the primary submit button disabled until valid;
  • auth, provider, reset-token, and upstream/server failures use visible alert banners above the form;
  • product controllers must return equivalent field-level errors for crafted or no-script POSTs rather than converting missing/malformed values into authentication failures.

Use PortalLegalFooterModel with the PortalLegalFooter Blazor component or the _PortalChromeLegalFooter Razor partial to render Terms, Privacy, copyright, and version links in a consistent public-auth footer. Product repos own the legal page routes, localized text, versions, and footer link labels; Core owns only the rendering shape and separator behavior.

Use PortalLegalAcceptanceModel as the product-neutral shape for signup consent evidence when a product needs to map its own trial/customer/signup record into a shared UI or API-adjacent contract. Product repos remain responsible for requiring consent at the correct workflow point, storing the record, and displaying it in customer/subscription admin surfaces.

Use PortalPublicAuthQuery.BuildPasswordStepPath and PortalPublicAuthQuery.ResolveEmailAddress for email-first auth handoffs. New visible URLs should use emailAddress; username is retained only as a compatibility fallback for existing form posts or old links.

No packages depend on Core.Portal.Chrome.

.NET 10.0

Version Downloads Last updated
0.3.80 5 07/21/2026
0.3.79 2 07/21/2026
0.3.78 10 07/20/2026
0.3.77 4 07/20/2026
0.3.76 1 07/19/2026
0.3.75 2 07/19/2026
0.3.74 1 07/19/2026
0.3.73 2 07/18/2026
0.3.72 2 07/17/2026
0.3.71 2 07/17/2026
0.3.70 2 07/17/2026
0.3.69 2 07/17/2026
0.3.68 2 07/17/2026
0.3.67 2 07/17/2026
0.3.66 2 07/16/2026
0.3.65 2 07/16/2026
0.3.64 2 07/15/2026
0.3.63 2 07/15/2026
0.3.62 2 07/15/2026
0.3.61 2 07/15/2026
0.3.60 3 07/14/2026
0.3.59 4 07/14/2026
0.3.58 2 07/14/2026
0.3.57 2 07/14/2026
0.3.56 2 07/14/2026
0.3.55 2 07/14/2026
0.3.54 2 07/14/2026
0.3.53 2 07/14/2026
0.3.52 2 07/14/2026
0.3.51 2 07/14/2026
0.3.50 2 07/13/2026
0.3.49 2 07/13/2026
0.3.48 2 07/13/2026
0.3.47 2 07/13/2026
0.3.46 2 07/13/2026
0.3.45 2 07/13/2026
0.3.44 2 07/13/2026
0.3.43 2 07/13/2026
0.3.42 2 07/13/2026
0.3.41 2 07/13/2026
0.3.40 2 07/12/2026
0.3.39 2 07/12/2026
0.3.38 2 07/12/2026
0.3.37 2 07/12/2026
0.3.36 2 07/12/2026
0.3.35 2 07/12/2026
0.3.34 2 07/12/2026
0.3.33 2 07/12/2026
0.3.32 2 07/12/2026
0.3.31 2 07/11/2026
0.3.30 2 07/11/2026
0.3.29 2 07/11/2026
0.3.28 2 07/11/2026
0.3.27 2 07/05/2026
0.3.26 3 07/05/2026
0.3.24 1 07/03/2026
0.3.23 5 06/23/2026
0.3.22 2 06/22/2026
0.3.21 2 06/21/2026
0.3.20 2 06/19/2026
0.3.19 2 06/19/2026
0.3.18 2 06/19/2026
0.3.17 2 06/19/2026
0.3.16 1 06/19/2026
0.3.15 2 06/19/2026
0.3.14 2 06/19/2026
0.3.13 1 06/19/2026
0.3.12 1 06/19/2026
0.3.11 2 06/19/2026
0.3.10 2 06/19/2026
0.3.9 1 06/19/2026
0.3.8 2 06/19/2026
0.3.7 2 06/19/2026
0.3.6 2 06/18/2026
0.3.5 2 06/18/2026
0.3.4 3 06/10/2026
0.3.0 3 06/02/2026
0.2.0 3 06/02/2026
0.1.3-local.1 2 06/10/2026
0.1.2 4 05/31/2026
0.1.2-local.1 2 06/10/2026
0.1.1 11 05/28/2026
0.1.0 52 05/23/2026
0.1.0-alpha.7 2 05/21/2026
0.1.0-alpha.6 2 05/21/2026
0.1.0-alpha.5 3 05/21/2026
0.1.0-alpha.4 3 05/21/2026
0.1.0-alpha.3 2 05/21/2026
0.1.0-alpha.2 2 05/20/2026