OriaTheme
GitHub

Справочник по API · Среда выполнения браузера

@oriatheme/runtime-dom

Внешнее хранилище браузера, атомарное приложение DOM, постоянство, Bootstrap и View Transition.

Упаковка и окружающая среда

SSR-безопасен для импорта; Запись start, Storage и DOM выполняется только в браузере.

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

Используйте менеджер пакетов и файл блокировки, уже выбранный потребительским проектом. В примерах используется только экспорт корня пакета; не выполняйте глубокий импорт из шаблонов src, dist или реестра.

Заводские API и API первой отрисовки

ЭкспортПодписьОписание
createOriaThemeRuntime(config: OriaThemeConfig) => OriaThemeRuntimeСоздает SSR-безопасное хранилище и клиентскую среду выполнения DOM.
bootstrapTheme(options?: BootstrapOptions) => voidПрименяет один действительный активный снимок перед монтированием платформы.
createBootstrapScript(options: BootstrapOptions) => stringСоздает автономный сценарий для моментального снимка, предоставленного вызывающей стороной.
createBootstrapStorageScript(options?) => stringСоздает безопасный сценарий начальной загрузки LocalStorage.
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

ЭкспортПодписьОписание
start / destroy() => voidПрикрепите или освободите прослушиватели браузера и владение DOM.
getSnapshot / subscribe() => ThemeSnapshot / (listener) => unsubscribeПрочтите или подпишитесь на внешний магазин.
setTheme / setAppearance(id | mode, options?) => voidВыберите существующую тему или предпочтения пользователя; может анимировать явные действия.
createCustomTheme({ theme }) => ThemeDefinitionСохраняет полную действительную пользовательскую тему.
updateCustomTheme(id, patch, options?) => ThemeDefinitionОбновляет только существующую пользовательскую тему.
duplicateTheme / removeCustomTheme(id, identity) => ThemeDefinition / (id) => voidКопирует предустановленную/настраиваемую тему или удаляет пользовательскую тему.
previewTheme(theme, mode?) => PreviewHandleПрименяет допустимый предварительный просмотр в памяти; Dispose восстанавливает формальное состояние.
exportTheme / importTheme(id) => string / (json, options?) => ThemeDefinitionЭкспортирует сохраненную тему или импортирует полностью проверенную пользовательскую тему.
reset() => voidВозвращает предпочтения времени выполнения и пользовательское состояние к исходной конфигурации.

Важные типы и границы

OriaThemeConfig требует предустановок и defaultThemeId; по умолчанию в контракте используется oria-standard@2, а постоянные темы v1 принимаются только с явно зарегистрированной записью миграции (в противном случае благополучно отклоняются). BootstrapOptions.contract, если он объявлен, восстанавливает только точно совпадающие снимки. ThemeSnapshot предоставляет предпочтения, разрешенный режим, разрешенную тему, предустановленные/настраиваемые списки и ошибки. ThemeStorage может заменить сохранение по умолчанию, а ThemeChangeOptions.animate предназначен только для явных действий пользователя. Сохраняется внешний вид, никогда не решаемый режим.