コンテンツにスキップ

ビヘイビア

キットは 58 個の小さなビヘイビアを出荷しています。すべて冪等で アンインストーラを返し、installChart() ただ 1 つの例外を除いて、 ゼロ設定の @hypermedia-components/core/behaviors エントリが 自動インストールします(htmx でスワップされた内容も拾います)。 個別 import が必要になるのは、選択的にバンドルするときだけです。

// Everything at once (what the CDN bundle does):
import '@hypermedia-components/core/behaviors';
// Or pick and choose:
import { installTabs, installToast } from '@hypermedia-components/core';
installTabs();
installToast();

2 つの列の意味を先に定義しておきます。属性列は、ビヘイビアへの オプトインや設定のためにページ作者(またはサーバーのフラグメント)が 書くマークアップです — ビヘイビア自身が実行時に書き込む状態属性 (data-activearia-invalid など)ではありません。設定項目の多い コンポーネント連動ビヘイビアは重要なものだけを載せ(「…」)、完全な 一覧は「担当」列でリンクするページにあります。イベント列は ビヘイビアが dispatch する hc:* イベントです(「—」はなし)。

ビヘイビア担当属性イベント自動
installValidation()フィールドのネイティブ検証の配線(blur/submit 検証、メッセージスロット)。ネイティブ制約属性(requiredpattern など)
installFieldErrors()サーバー駆動のインラインエラー — field-errors レシピの 422 フラグメント契約。data-hc-field-errorsdata-fielddata-message-key(サーバーが書く)
installShowWhen()条件付きフィールド表示 — conditional-fields レシピdata-hc-show-whendata-hc-show-switchdata-hc-show-src
installFormat()数値のグループ表示とワイヤ上の生値 — 入力data-hc-formatdata-decimalsdata-locale
installNormalize()確定時の IME 全角/かな正規化 — 入力data-hc-normalize
installMask()宣言的な固定形式マスク(postal-jp#/a/A/* パターン) — 入力data-hc-maskdata-hc-mask-submit
installMultiValue()1 つのコントロールから複数値をワイヤへ — 貼り付けた識別子の一覧が繰り返しパラメータになる(input)。data-hc-multi(lines / commas)
installRangeValue()コントロール 2 つを 1 つの範囲パラメータへ — 日付の期間が f-ship=A..B として送られる(datagrid-filter)。data-hc-rangedata-hc-range-fromdata-hc-range-to
installSortList()ソートコントロールの順序付きキーを 1 パラメータへ — sort=-ship,order(datagrid-sort)。data-hc-sort-listdata-hc-sort-keydata-hc-sort-dir-prefix
installRowLink()Enter で行が指すレコードを開く — 同一性の列のリンク(row-detail)。data-hc-row-link
installDirtyGuard()未保存変更ガード — unsaved-changes レシピdata-hc-dirty-guard(状態: data-dirty)hc:dirtychange
installSessionExpiry()401 → ログインダイアログ → リクエスト再実行 — session-expiry レシピdata-hc-session-expiryhc:sessionrenewed を消費
installNetworkRetry()応答が来ない失敗(オフライン / タイムアウト)→ 動く再試行ボタン付きアラート — network-retry レシピdata-hc-network-retry(+ -message / -label 上書き)htmx:sendError / htmx:timeout を購読
installTime()クライアント側の <time> ローカライズ(相対 / 絶対) — i18ndata-hc-timedata-hc-time-style
installSortable()ポインタ + キーボードのリスト並べ替え — sortable レシピdata-hc-sortabledata-hc-sortable-handledata-hc-sortable-idhc:sortchange
installCombobox()コンボボックスのキーボード・フィルタ・ARIA。data-remotedata-allow-createdata-value、…hc:comboboxselect
installMulticombobox()マルチコンボボックスのタグ・キーボード・ARIA。data-namedata-allow-createdata-value、…hc:multicomboboxchange
installInputOtp()Input OTP のスロット単位編集。data-lengthdata-patterndata-groupshc:otpchangehc:otpcomplete
installPasswordToggle()インプットグループのパスワード表示切替。data-hc-password-toggledata-hc-label-show / data-hc-label-hide
installSlider()スライダーの塗り + 値出力の同期。
installRange()レンジのデュアルサムのクランプ + 塗り。hc:rangechange
installCalendar()カレンダーのグリッド・キーボード・選択。data-valuedata-min / data-maxdata-mode、…hc:calendarchangehc:calendarrangechange
installDropzone()ドロップゾーンのドラッグオーバー状態 + ファイル一覧。
installUploadProgress()htmx のアップロードイベントで <progress> を駆動 — file-upload レシピdata-hc-upload-progress
installCodeEditor()編集可能なコードフィールド: ガター、ライブハイライト(data-lang)。data-editabledata-gutterdata-lang
ビヘイビア担当属性イベント自動
installTabs()タブのローミングフォーカス + パネル切替。data-activationdata-orientationdata-overflowhc:tabactivated
installToggleGroup()トグルグループの単一 / 複数選択 + ローミングフォーカス。data-typedata-valuedata-namehc:togglegroupchange
installToolbar()ツールバーの単一 Tab ストップ + 矢印キーナビゲーション(APG パターン)。role="toolbar"aria-orientation
installMenu()メニューのキーボードパターン・アンカー・ARIA。popover + popovertarget(トリガー)hc:menuselect
installMenubar()メニューバーのメニュー間矢印キー。role="menubar"popovertargethc:menuselect(配下のメニューから)
installNavmenu()ナビゲーションメニューのパネル。data-hc-navmenu-triggeraria-controls
installContextMenu()コンテキストメニューの右クリック起動。data-hc-context-menuhc:menuselect
installCommand()コマンドのフィルタ・ランキング・キーボード。data-hotkeydata-filterdata-valuehc:commandselect
installTree()ツリーの ARIA ロール + 開閉。aria-expanded(ブランチ宣言)、data-hx-get(遅延読み込み)hc:treeexpand
installSpy()目次のスクロールスパイ(aria-current 追跡)。data-hc-spy
installNavCurrent()boost ナビゲーション後の現在リンクのマーキング(シェル)。data-hc-nav-current
installShell()シェルのサイドバー折りたたみ + 永続化。data-hc-shell-toggledata-collapsibledata-persist、…

オーバーレイとフィードバック

Section titled “オーバーレイとフィードバック”
ビヘイビア担当属性イベント自動
installPopover()ポップオーバーのアンカー + 配置フォールバック。data-sidedata-aligndata-arrow
installTooltip()ツールチップの表示制御 + アンカー。aria-describedby(トリガー)、data-sidedata-align
installHovercard()ホバーカードの意図判定ディレイ + アンカー。aria-describedby(トリガー)、data-sidedata-align
installDrawer()ドロワーのドラッグ解散。data-side
installToast()トーストリージョン: hc:toast イベント、スタッキング、id による更新、アクション。data-hc-toast-regiondata-positiondata-limithc:toast(待ち受け)
installConfirm()共有確認ダイアログ — confirm-action レシピ(data-hc-confirm)。data-hc-confirmdata-hc-confirm-titledata-hc-confirm-variant、…hc:confirmed
installRemoteDialog()サーバーレンダリングのダイアログ — remote-dialog レシピdata-hc-remote-dialog-root
installCloseDialog()htmx リクエスト成功後のダイアログクローズ(data-hc-close-dialog-on-success)。data-hc-close-dialog-on-success
installClosePopover()そのポップオーバー版(data-hc-close-popover-on-success)— filter-popover レシピを参照。data-hc-close-popover-on-success
ビヘイビア担当属性イベント自動
installDatagrid()データグリッドのキーボードグリッド、ソート / リサイズ / 編集 / 詳細のイベント。data-sortabledata-editabledata-resizabledata-frozen、…hc:datagridsorthc:datagridselectionchange、…(全 7 個 — ページ参照)
installDatagridActions()データグリッドの選択アクションバー — datagrid-bulk-actions レシピdata-hc-datagrid-actionsdata-hc-datagrid-count
installCarousel()カルーセルのアクティブ追跡・ドット・キーボード。data-autoplaydata-hc-carousel-prev / -next / -dotshc:carouselchange
installSplitter()スプリッターのドラッグ + キーボードリサイズ + 永続化。data-orientationdata-valuedata-persist、…hc:splitterchange
installAvatar()アバターの画像エラー → イニシャルフォールバック。data-delayhc:avatarstatechange
installSparkline()スパークラインdata-values からの描画。data-valuesdata-areadata-min / data-max
installChatScroll()チャットトランスクリプトの最下部追従(読者が上へスクロールしている間は追従を停止)。
installChart()チャートの Observable Plot による描画。data-hc-chartdata-mark、…オプトイン@observablehq/plot ピア依存が必要。バンドルには含まれません。
ビヘイビア担当属性イベント自動
installCopy()クリップボードボタン(data-hc-copy)— copy レシピdata-hc-copydata-hc-copy-textdata-hc-copy-okhc:copied
installThemeToggle()ライト / ダーク切替ボタン(テーマ)。data-hc-theme-toggledata-persisthc:themechange
installCsrfHeader()meta[name="csrf-token"] から全 htmx リクエストへ CSRF ヘッダーを付与(htmx ガイド)。meta[name="csrf-token"] + data-header
installSseDispatch()SSE メッセージを DOM イベントへ橋渡し — sse-updates / sse-toast レシピ。data-hc-sse-dispatchdata-sse-swapdata-sse-swap に列挙した名前