OriaTheme
GitHub

Référence API · Runtime du navigateur

@oriatheme/runtime-dom

Magasin externe du navigateur, application DOM atomique, persistance, Bootstrap et View Transition.

Forfait et environnement

Importation sécurisée SSR ; Le démarrage, le stockage et les écritures DOM s'exécutent uniquement dans le navigateur.

bash
pnpm add @oriatheme/presets @oriatheme/runtime-dom

Utilisez le gestionnaire de packages et le fichier de verrouillage déjà choisis par le projet consommateur. Les exemples utilisent uniquement les exportations racine du package ; n'effectuez pas d'importation approfondie à partir de modèles src, dist ou de registre.

API d'usine et de première peinture

ExporterSignatureDescriptif
createOriaThemeRuntime(config: OriaThemeConfig) => OriaThemeRuntimeCrée le magasin sécurisé SSR et le runtime DOM client.
bootstrapTheme(options?: BootstrapOptions) => voidApplique un instantané actif valide avant le montage du framework.
createBootstrapScript(options: BootstrapOptions) => stringCrée un script autonome pour un instantané fourni par l'appelant.
createBootstrapStorageScript(options?) => stringCrée un script d'amorçage LocalStorage sécurisé.
ts
import { bootstrapTheme, createOriaThemeRuntime } from "@oriatheme/runtime-dom";
import { oriaPresetThemes } from "@oriatheme/presets";

bootstrapTheme({ contract: { name: "oria-standard", version: 2 } });
const runtime = createOriaThemeRuntime({
  presets: oriaPresetThemes,
  defaultThemeId: "oria-default",
});
runtime.start();

OriaThemeRuntime

ExporterSignatureDescriptif
start / destroy() => voidAttachez ou libérez les écouteurs du navigateur et la propriété DOM.
getSnapshot / subscribe() => ThemeSnapshot / (listener) => unsubscribeLisez ou abonnez-vous à la boutique externe.
setTheme / setAppearance(id | mode, options?) => voidSélectionnez un thème existant ou une préférence utilisateur ; peut animer des actions explicites.
createCustomTheme({ theme }) => ThemeDefinitionConserve un thème personnalisé complet et valide.
updateCustomTheme(id, patch, options?) => ThemeDefinitionMet à jour un thème personnalisé existant uniquement.
duplicateTheme / removeCustomTheme(id, identity) => ThemeDefinition / (id) => voidCopie un thème prédéfini/personnalisé ou supprime un thème personnalisé.
previewTheme(theme, mode?) => PreviewHandleApplique un aperçu en mémoire valide ; dispose restaure l’état formel.
exportTheme / importTheme(id) => string / (json, options?) => ThemeDefinitionExporte un thème enregistré ou importe un thème personnalisé entièrement validé.
reset() => voidRenvoie les préférences d'exécution et l'état personnalisé à leur configuration initiale.

Types et limites importants

OriaThemeConfig nécessite des préréglages et defaultThemeId ; le contrat est par défaut oria-standard@2, et les thèmes v1 persistants ne sont acceptés qu'avec une entrée de migrations explicitement enregistrée (sinon rejeté en toute sécurité). BootstrapOptions.contract, une fois déclaré, restaure uniquement les instantanés correspondant exactement. ThemeSnapshot expose les préférences, le mode résolu, le thème résolu, les listes prédéfinies/personnalisées et les erreurs. ThemeStorage peut remplacer la persistance par défaut et ThemeChangeOptions.animate est uniquement destiné aux actions explicites de l'utilisateur. Apparence persistante, mode jamais résolu.