コンテンツにスキップ

マシンマニフェスト

2 つの JSON アーティファクトが、ツール(ジェネレータ・リンタ・ IDE プラグイン・構造を求めるエージェント)向けにキットを記述します。 どちらもビルド時にソースから生成され、npm パッケージに同梱され、 このサイトから配信されます:

アーティファクトこのサイトパッケージ
キットマニフェスト/api/manifest.json@hypermedia-components/core/manifest.json
Custom Elements Manifest(マクロ)/api/custom-elements.json@hypermedia-components/core/custom-elements.json(package.json#customElements でも参照)

LLM のコンテキスト用(構造ではなく散文)には /llms.txt を使ってください — そこからここへリンクが張られています。

キー真実の源
versioncore パッケージのバージョン。package.json
components[]blockparts[]dataAttributes[](そのブロックのスタイルシートに現れる属性面)、attributeValues{}(値を取る各属性 → 列挙値。例: data-variant["primary", …])、cssVars[](スタイルシートが読み取るすべての --hc-* カスタムプロパティ — テーマ可能な面)、containers[](エディタで任意のフロー子要素を受け入れるパート。"" はブロックルート — 構造化コンポーネントは空)、staticSafe(スクリプトレス描画が初期化済みの静止状態と一致するか)、tokensGroup(または null)、behavior(または null)、docsPathsrc/css/hc-*.csscomponent.tokens.json
utilities[]すべての hc-* ユーティリティクラスと container(ルートが任意のフロー子要素を受け入れるか — レイアウト系: stack、cluster、grid、container、sidebar)。src/css/hc.utilities.css
behaviors[]nameautoInit(オプトインは installChart の 1 つだけ)。src/js/index.jssrc/js/behaviors.js
events[]name + 発生元 modules[]。detail の形は各コンポーネントページが持ちます。src/js/*.js
recipes[]namepurposeneedsBehavior(または null)、files[]docsPathcontractPathrecipes/*/(+ 各レシピの機械検証 checks.json)
macros[]tag + attributes[]src/macros/*.js
i18nKeys[]上書き可能な全メッセージキー。DEFAULT_MESSAGES
exports[]パッケージ export map のパス。package.json
  • 手書きではなく生成。 core ビルド中に scripts/build-manifest.mjs がすべてをソースから抽出します。出力は決定論的(ソート済み・ タイムスタンプなし)です。
  • CI が完全性を強制。 新しい installXxx() export が把握されて いないとビルドが失敗し、ユニットスイートがマニフェストを実体と 突き合わせます: 全スタイルシートブロックの存在、auto-init 名簿の 一致、recipes ディレクトリとの一致、マクロ属性と Custom Elements Manifest の一致。新しい API 面は、マニフェストが知らないままでは 出荷できません。
  • npm がバージョン管理。 各リリースの tarball にその版の マニフェストが同梱されます — バージョン履歴はレジストリそのものです。
ターミナルウィンドウ
# Every component block name:
curl -s https://ingcreators.com/hypermedia-components/api/manifest.json \
| jq -r '.components[].block'
# Which recipes need a behavior, and which one:
curl -s https://ingcreators.com/hypermedia-components/api/manifest.json \
| jq -r '.recipes[] | select(.needsBehavior) | "\(.name): \(.needsBehavior)"'
# The data-attribute surface of one component:
curl -s https://ingcreators.com/hypermedia-components/api/manifest.json \
| jq '.components[] | select(.block == "hc-datagrid") | .dataAttributes'
# Enumerated variants/sizes — ready for a property inspector or generator:
curl -s https://ingcreators.com/hypermedia-components/api/manifest.json \
| jq '.components[] | select(.block == "hc-button") | .attributeValues'