@asteby/metacore-app-providers

中文文档
153.1.0发布于 2026/10/22Apache-2.0TypeScriptES Module零依赖近 30 天下载 3895

供应商 genéricos reutilizables para apps metacore(方向、字体、布局、搜索、平台配置)

中文使用文档
文档目录10 节
  1. 稳定
  2. 安装
  3. 出口概况
  4. 基本提供者
  5. 平台设计——租户品牌
  6. 合同
  7. Metacore AppShell —— 全套工具包
  8. Addon 安装桥
  9. 持久性摘要
  10. 许可证

@asteby/metacore-app- professors (帮助)

用于元核心主机应用程序的通用,可重复使用的 React 提供者. 一个 套接字将交叉关注 每一个元核心应用股份—— 方向,字体,布局,搜索,平台品牌——外加可选 "满包" <MetacoreAppShell> 将API + PWA + 烤面包机装入 单标签.

稳定

稳定到1.0级。 以下出口品如下: 持久性密钥 (cookie 名称, 本地Storage 密钥) 和提供者上下文形状不会 改变在少校内部。 可选择的同伴融合@asteby/metacore-pwa, (中文(简体) ), @asteby/metacore-runtime-react, (中文(简体) ), @asteby/metacore-ui, (中文(简体) ), sonner移动 - 贝壳能容忍兼容的版本 已声明对等区域 package.json。 。 。 .

安装

pnpm add @asteby/metacore-app-providers @radix-ui/react-direction
# transports / kits used by MetacoreAppShell + PlatformConfigProvider
pnpm add @tanstack/react-query sonner
# optional, only if you mount MetacoreAppShell:
pnpm add @asteby/metacore-pwa @asteby/metacore-runtime-react @asteby/metacore-ui

出口概况

导出目的
DirectionProvider, (中文(简体) ), useDirection具有饼干持久性的LTR/RTL(dir) (中文(简体) ).
FontProvider, (中文(简体) ), useFont打开字体类 <html>,有饼干味font) (中文(简体) ). 要求数 fonts 道具 (英语).
LayoutProvider, (中文(简体) ), useLayout侧边栏变体+相撞模式. 饼干: layout_variant, (中文(简体) ), layout_collapsible。 。 。 .
SearchProvider, (中文(简体) ), useSearchCmd/Ctrl+K 热键+ open编号 :setOpen 用于命令调色板.
PlatformConfigProvider, (中文(简体) ), usePlatformConfig租户品牌(名称,标志,主/角颜色,支持URL)-交通-不可知.
useAgentSuggestions, (中文(简体) ), resolveAgentSuggestions, (中文(简体) ), DEFAULT_AGENT_SUGGESTIONS副驾驶启动提示从 PlatformBranding.agent_suggestions (空白被忽略,中性倒置).
applyBranding, (中文(简体) ), applyCachedBranding用于预反应颜料和SW更新的必要帮助.
FALLBACK_BRANDING空的默认消费者可以分散.
usePublishMascotFace, (中文(简体) ), useMascotFace, (中文(简体) ), mascotFaceStore一个共享的吉祥物面相跨聊天表面; 最活跃的 MascotState 赢( r)error > 翻译: speaking > 翻译: processing > 翻译: thinking > 翻译: listening > 翻译: happy > 翻译: idle) (中文(简体) ).
MetacoreAppShell全装:ApiProvider + QueryClient + PWA + Toaster + addon-install桥.
getCookie, (中文(简体) ), setCookie, (中文(简体) ), removeCookie提供商共享的小饼干助手.

类型 : Direction, (中文(简体) ), Collapsible, (中文(简体) ), Variant, (中文(简体) ), FontProviderProps, (中文(简体) ), SearchProviderProps, (中文(简体) ), PlatformBranding, (中文(简体) ), BrandingFetcher, (中文(简体) ), PlatformConfigProviderProps, (中文(简体) ), MetacoreAppShellProps, (中文(简体) ), MetacoreInstallRequest。 。 。 .

基本提供者

import {
  DirectionProvider,
  FontProvider,
  LayoutProvider,
  SearchProvider,
} from '@asteby/metacore-app-providers'
import { fonts } from '@asteby/metacore-starter-config/fonts'

<DirectionProvider>
  <FontProvider fonts={fonts}>
    <LayoutProvider>
      <SearchProvider>
        <App />
      </SearchProvider>
    </LayoutProvider>
  </FontProvider>
</DirectionProvider>
  • FontProvider 需求 fonts (第一个条目是默认).
  • SearchProvider 接受 hotkey (默认) 'k',带有Cmd/Ctrl). 这个 消费者使用 useSearch().open 编号 : setOpen()。 。 。 .
  • 所有四个持续状态在饼干 这样SSR/前沿运行时间可以恢复 初始帧.

平台设计——租户品牌

任何元核心应用软件的品牌集中化. Apps拿租户的 来自后端的品牌( 名称、 标志、 主要颜色、 支持 URL) 他们拥有的终点; 此提供者缓存它, 应用 CSS 变量 (单位:千美元)--primary, (中文(简体) ), --background, (中文(简体) ), --sidebar-*,(...)改为 <html>,持续 有效载荷在 localStorage 因此,随后的负载画 正确的品牌 在此之前 反应挂载,并在暗/光切换上重新应用.

提供商为运输-不可知:呼叫者通过Aync fetcher。无 HTTP 客户端为硬接线- 任意轴/ 取取/ 切/ 手卷 工作时.

import {
  PlatformConfigProvider,
  applyCachedBranding,
  type PlatformBranding,
} from '@asteby/metacore-app-providers'
import { api } from './lib/api'

// Paint the cached brand BEFORE React mounts.
applyCachedBranding()

const defaults: PlatformBranding = {
  platform_name: 'Acme Hub',
  platform_logo: '/logo.svg',
  primary_color: '#84cc16',
  accent_color: '#22d3ee',
  favicon_url: '/favicon.ico',
  support_email: '[email protected]',
  support_url: 'https://acme.test/support',
}

<PlatformConfigProvider
  fetcher={async () => (await api.get('/platform/branding')).data}
  defaults={defaults}
>
  <App />
</PlatformConfigProvider>

在树上:

const { platform_name, primary_color, refetch } = usePlatformConfig()

refetch() 如果主机只知道品牌, 查询无效 更改(例如在设置保存后).

合同

  • fetcher 决定: Partial<PlatformBranding>。供应商合并 结束了 defaults因此,缺失的字段倒回 而不是空白 乌伊 UI.
  • 十六进制颜色( H)#rrggbb改为 oklch() 并推倒在 <html> 元素作为 CSS 变量。 暗/光变体是衍生出来的 读取 document.documentElement.classList; 提供者观察 类更改并重新应用到切换上.
  • 持久性键是 platform-branding 内 localStorage通过 storageKey。 。 。 . applyCachedBranding(storageKey?) 为主机导出 在他们的预反应启动脚本中需要一个非默认密钥.
  • 第一个框架:如果 window.__BRAND__ 存在(服务器通过 /api/brand/boot.js,与 PlatformBranding, (中文(简体) ), applyCachedBranding 绘制并重写存储密钥 存储值仅在 __BRAND__ 不在(离线)。 每个真实的 获取器响应 REPLACES 存储字段( 不与旧值合并) . 颜色必须是 #RRGGBB; 在绘画或存储之前, 任何其它东西都会被丢弃 (单位:千美元)sanitizeBranding, (中文(简体) ), persistBranding, (中文(简体) ), readWindowBranding ) .
  • staleTime 默认为5分钟(TanStack Query). 提供者保留 每个查询 storageKey。 。 。 .

Metacore AppShell —— 全套工具包

<MetacoreAppShell> 给每个供应商电线 一个应用程序需要运行在 metacore平台:API上下文,查询客户端,PWA安装+更新 提示、 离线指示器、 声纳烤面包机、 附加安装桥 嵌入式枢纽iframes, 以及 stale- while- revalidate 元数据缓存 应用服务员更新时无效 .

import { MetacoreAppShell } from '@asteby/metacore-app-providers/shell'
import { QueryClient } from '@tanstack/react-query'
import { api } from './lib/api'

const queryClient = new QueryClient()

<MetacoreAppShell api={api} queryClient={queryClient}>
  <RouterProvider router={router} />
</MetacoreAppShell>

可选旗帜( 所有默认启用) :

Prop效果
hideToaster跳过捆绑 <Toaster />。 。 。 .
hidePWAInstall跳过 <PWAInstallPrompt />。 。 。 .
hidePWAUpdate跳过 <PWAUpdatePrompt />。 。 。 .
hideOfflineIndicator跳过 <OfflineIndicator />。 。 。 .
disableMetadataInvalidate不要在 SW 更新中放弃运行时间元数据缓存.
onAddonInstall自定义处理器 metacore:install 后Message来自嵌入式Hub iframe. 设定为 null 以禁用听众.
toasterPosition'top-right' (a) 默认.

外壳会拉同龄人@asteby/metacore-pwa, (中文(简体) ), @asteby/metacore-runtime-react, (中文(简体) ), @asteby/metacore-ui, (中文(简体) ), sonner当 安装。 只想要子集线的应用程序 单个提供者和 跳过外壳.

Addon 安装桥

当被安装在(或与)元核枢纽一起时,外壳会听 页:1 window.postMessage({ type: 'metacore:install', addonKey, ... }) 事件,或者:

  1. 引用 onAddonInstall(req, source) 如果你提供了一个,或
  2. 职位 req 改为 /marketplace/install 在捆绑的API客户端.

如果成功,它显示一个音速烤面包, 放弃运行时间元数据缓存, 发件人a metacore:metadata-changed CustomEvent 打开 window (这样) 侧边栏和命令菜单在不重新装入的情况下进行反切),和回复 内框 metacore:installed失败时,它答复 metacore:install-failed 并显示错误.

持久性摘要

Cookie/ 密钥拥有者
dirDirectionProvider
fontFontProvider
layout_variantLayoutProvider
layout_collapsibleLayoutProvider
platform-brandingPlatformConfigProvider (当地费用)

许可证

阿帕奇 - 2.0

版本与发布记录

@asteby/metacore-app-providers 共发布 173 个版本,首次发布于 2026/04/21;过去 12 个月发布了 173 个版本。

版本发布日期距今
153.1.0latest2026/10/2216 天前
153.0.02026/10/1820 天前
152.0.02026/10/1821 天前
151.0.02026/10/1524 天前
150.0.02026/10/1424 天前
149.0.02026/10/1425 天前

关于 @asteby/metacore-app-providers 的常见问题

@asteby/metacore-app-providers 是什么?

供应商 genéricos reutilizables para apps metacore(方向、字体、布局、搜索、平台配置)

如何安装 @asteby/metacore-app-providers?

在项目目录运行 npm install @asteby/metacore-app-providers,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=18)、sonner(>=1.7)、react-dom(>=18)、@tanstack/react-query(>=5)、@radix-ui/react-direction(^1.1.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@asteby/metacore-app-providers 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@asteby/metacore-app-providers 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@asteby/metacore-app-providers 可以商用吗?

@asteby/metacore-app-providers 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@asteby/metacore-app-providers 的下载量有多少?

根据 npm 官方下载统计,@asteby/metacore-app-providers 在 2026/10/07 – 2026/11/05 这 30 天内被下载 3,895 次,日均约 130 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@asteby/metacore-app-providers 还在维护吗?

最新版本 153.1.0 发布于 2026/10/22(16 天前);至今共发布 173 个版本,其中过去 12 个月发布了 173 个;首次发布于 2026/04/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。