{
  "$schema": "https://ingcreators.com/hypermedia-components/api/manifest-schema-v1",
  "name": "@hypermedia-components/core",
  "version": "0.1.9",
  "docsBase": "https://ingcreators.com/hypermedia-components/",
  "components": [
    {
      "block": "hc-accordion",
      "parts": [
        "content",
        "icon",
        "item",
        "trigger"
      ],
      "dataAttributes": [],
      "tokensGroup": "accordion",
      "behavior": null,
      "docsPath": "components/accordion"
    },
    {
      "block": "hc-alert",
      "parts": [
        "body",
        "error",
        "errors",
        "title"
      ],
      "dataAttributes": [
        "data-distributed",
        "data-hc-field-errors",
        "data-summary",
        "data-variant"
      ],
      "tokensGroup": "alert",
      "behavior": null,
      "docsPath": "components/alert"
    },
    {
      "block": "hc-anchored",
      "parts": [],
      "dataAttributes": [
        "data-align",
        "data-arrow",
        "data-side"
      ],
      "tokensGroup": null,
      "behavior": null,
      "docsPath": "components/anchored"
    },
    {
      "block": "hc-aspect",
      "parts": [],
      "dataAttributes": [
        "data-fit",
        "data-ratio"
      ],
      "tokensGroup": null,
      "behavior": null,
      "docsPath": "components/aspect"
    },
    {
      "block": "hc-attachment",
      "parts": [
        "icon",
        "name",
        "progress",
        "remove",
        "size"
      ],
      "dataAttributes": [
        "data-state"
      ],
      "tokensGroup": "attachment",
      "behavior": null,
      "docsPath": "components/attachment"
    },
    {
      "block": "hc-avatar",
      "parts": [
        "fallback",
        "image"
      ],
      "dataAttributes": [
        "data-shape",
        "data-size",
        "data-state"
      ],
      "tokensGroup": "avatar",
      "behavior": "installAvatar",
      "docsPath": "components/avatar"
    },
    {
      "block": "hc-badge",
      "parts": [],
      "dataAttributes": [
        "data-variant"
      ],
      "tokensGroup": "badge",
      "behavior": null,
      "docsPath": "components/badge"
    },
    {
      "block": "hc-breadcrumb",
      "parts": [
        "current",
        "ellipsis",
        "item",
        "link",
        "list"
      ],
      "dataAttributes": [],
      "tokensGroup": "breadcrumb",
      "behavior": null,
      "docsPath": "components/breadcrumb"
    },
    {
      "block": "hc-button",
      "parts": [],
      "dataAttributes": [
        "data-loading",
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "button",
      "behavior": null,
      "docsPath": "components/button"
    },
    {
      "block": "hc-button-group",
      "parts": [],
      "dataAttributes": [
        "data-orientation"
      ],
      "tokensGroup": null,
      "behavior": null,
      "docsPath": "components/button-group"
    },
    {
      "block": "hc-calendar",
      "parts": [
        "day",
        "grid",
        "header",
        "month-select",
        "monthnav",
        "nav",
        "title",
        "year-select"
      ],
      "dataAttributes": [
        "data-in-range",
        "data-outside",
        "data-range-end",
        "data-range-preview",
        "data-range-preview-end",
        "data-range-start",
        "data-today"
      ],
      "tokensGroup": "calendar",
      "behavior": "installCalendar",
      "docsPath": "components/calendar"
    },
    {
      "block": "hc-card",
      "parts": [
        "body",
        "footer",
        "header"
      ],
      "dataAttributes": [],
      "tokensGroup": "card",
      "behavior": null,
      "docsPath": "components/card"
    },
    {
      "block": "hc-carousel",
      "parts": [
        "dot",
        "dots",
        "next",
        "prev",
        "slide",
        "viewport"
      ],
      "dataAttributes": [],
      "tokensGroup": "carousel",
      "behavior": "installCarousel",
      "docsPath": "components/carousel"
    },
    {
      "block": "hc-chart",
      "parts": [
        "plot"
      ],
      "dataAttributes": [],
      "tokensGroup": "chart",
      "behavior": "installChart",
      "docsPath": "components/chart"
    },
    {
      "block": "hc-chat",
      "parts": [
        "body",
        "jump",
        "list",
        "message",
        "meta"
      ],
      "dataAttributes": [
        "data-role",
        "data-state",
        "data-stuck"
      ],
      "tokensGroup": "chat",
      "behavior": "installChatScroll",
      "docsPath": "components/chat"
    },
    {
      "block": "hc-checkbox",
      "parts": [],
      "dataAttributes": [
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "checkbox",
      "behavior": null,
      "docsPath": "components/checkbox"
    },
    {
      "block": "hc-chip",
      "parts": [],
      "dataAttributes": [],
      "tokensGroup": "chip",
      "behavior": null,
      "docsPath": "components/chip"
    },
    {
      "block": "hc-code",
      "parts": [
        "gutter",
        "highlight",
        "input",
        "line",
        "swatch",
        "tok"
      ],
      "dataAttributes": [
        "data-editable",
        "data-gutter",
        "data-mode",
        "data-state",
        "data-tok",
        "data-wrap"
      ],
      "tokensGroup": "code",
      "behavior": "installCodeEditor",
      "docsPath": "components/code"
    },
    {
      "block": "hc-collapsible",
      "parts": [
        "content",
        "icon",
        "trigger"
      ],
      "dataAttributes": [],
      "tokensGroup": "collapsible",
      "behavior": null,
      "docsPath": "components/collapsible"
    },
    {
      "block": "hc-combobox",
      "parts": [
        "create",
        "empty",
        "error",
        "listbox",
        "loading",
        "option"
      ],
      "dataAttributes": [
        "data-active"
      ],
      "tokensGroup": "combobox",
      "behavior": "installCombobox",
      "docsPath": "components/combobox"
    },
    {
      "block": "hc-command",
      "parts": [
        "empty",
        "group",
        "group-heading",
        "input",
        "item",
        "list",
        "shortcut"
      ],
      "dataAttributes": [
        "data-active"
      ],
      "tokensGroup": "command",
      "behavior": "installCommand",
      "docsPath": "components/command"
    },
    {
      "block": "hc-context-menu",
      "parts": [],
      "dataAttributes": [
        "data-hc-context-menu"
      ],
      "tokensGroup": null,
      "behavior": "installContextMenu",
      "docsPath": "components/context-menu"
    },
    {
      "block": "hc-datagrid",
      "parts": [
        "body",
        "cell",
        "detail",
        "detail-row",
        "head",
        "headcell",
        "record",
        "resizer",
        "row",
        "scroll",
        "table",
        "toggle",
        "tooltip",
        "truncate"
      ],
      "dataAttributes": [
        "data-active",
        "data-current",
        "data-editing",
        "data-frozen",
        "data-frozen-edge",
        "data-hc-datagrid-toggle",
        "data-highlight",
        "data-orientation",
        "data-resized",
        "data-sortable"
      ],
      "tokensGroup": "datagrid",
      "behavior": "installDatagrid",
      "docsPath": "components/datagrid"
    },
    {
      "block": "hc-datepicker",
      "parts": [],
      "dataAttributes": [
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "datepicker",
      "behavior": null,
      "docsPath": "components/datepicker"
    },
    {
      "block": "hc-dialog",
      "parts": [
        "body",
        "footer",
        "header",
        "title"
      ],
      "dataAttributes": [],
      "tokensGroup": "dialog",
      "behavior": "installCloseDialog",
      "docsPath": "components/dialog"
    },
    {
      "block": "hc-drawer",
      "parts": [
        "body",
        "footer",
        "header",
        "title"
      ],
      "dataAttributes": [
        "data-side"
      ],
      "tokensGroup": "drawer",
      "behavior": "installDrawer",
      "docsPath": "components/drawer"
    },
    {
      "block": "hc-dropzone",
      "parts": [
        "body",
        "files",
        "hint",
        "input"
      ],
      "dataAttributes": [
        "data-dragover",
        "data-size"
      ],
      "tokensGroup": "dropzone",
      "behavior": "installDropzone",
      "docsPath": "components/dropzone"
    },
    {
      "block": "hc-empty",
      "parts": [
        "actions",
        "description",
        "media",
        "title"
      ],
      "dataAttributes": [],
      "tokensGroup": "empty",
      "behavior": null,
      "docsPath": "components/empty"
    },
    {
      "block": "hc-field",
      "parts": [
        "error",
        "hint",
        "label",
        "message"
      ],
      "dataAttributes": [
        "data-invalid"
      ],
      "tokensGroup": "field",
      "behavior": null,
      "docsPath": "components/field"
    },
    {
      "block": "hc-hovercard",
      "parts": [
        "body",
        "footer",
        "header",
        "subtitle",
        "title"
      ],
      "dataAttributes": [],
      "tokensGroup": "hovercard",
      "behavior": "installHovercard",
      "docsPath": "components/hovercard"
    },
    {
      "block": "hc-input",
      "parts": [],
      "dataAttributes": [
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "input",
      "behavior": null,
      "docsPath": "components/input"
    },
    {
      "block": "hc-input-group",
      "parts": [],
      "dataAttributes": [],
      "tokensGroup": "input-group",
      "behavior": "installPasswordToggle",
      "docsPath": "components/input-group"
    },
    {
      "block": "hc-inputotp",
      "parts": [
        "input",
        "separator",
        "slot"
      ],
      "dataAttributes": [
        "data-active",
        "data-empty",
        "data-invalid",
        "data-variant"
      ],
      "tokensGroup": "inputotp",
      "behavior": "installInputOtp",
      "docsPath": "components/inputotp"
    },
    {
      "block": "hc-item",
      "parts": [
        "actions",
        "content",
        "description",
        "media",
        "title"
      ],
      "dataAttributes": [
        "data-selectable",
        "data-selected",
        "data-variant"
      ],
      "tokensGroup": "item",
      "behavior": null,
      "docsPath": "components/item"
    },
    {
      "block": "hc-kbd",
      "parts": [],
      "dataAttributes": [
        "data-size"
      ],
      "tokensGroup": "kbd",
      "behavior": null,
      "docsPath": "components/kbd"
    },
    {
      "block": "hc-menu",
      "parts": [
        "item",
        "label",
        "separator"
      ],
      "dataAttributes": [
        "data-submenu",
        "data-variant"
      ],
      "tokensGroup": "menu",
      "behavior": "installMenu",
      "docsPath": "components/menu"
    },
    {
      "block": "hc-menubar",
      "parts": [
        "item"
      ],
      "dataAttributes": [],
      "tokensGroup": "menubar",
      "behavior": "installMenubar",
      "docsPath": "components/menubar"
    },
    {
      "block": "hc-meter",
      "parts": [],
      "dataAttributes": [
        "data-size"
      ],
      "tokensGroup": "meter",
      "behavior": null,
      "docsPath": "components/meter"
    },
    {
      "block": "hc-multicombobox",
      "parts": [
        "control",
        "create",
        "empty",
        "input",
        "listbox",
        "option",
        "tag",
        "tag-remove",
        "tags"
      ],
      "dataAttributes": [
        "data-active"
      ],
      "tokensGroup": "multicombobox",
      "behavior": "installMulticombobox",
      "docsPath": "components/multicombobox"
    },
    {
      "block": "hc-navmenu",
      "parts": [
        "item",
        "link",
        "list",
        "panel",
        "trigger"
      ],
      "dataAttributes": [],
      "tokensGroup": "navmenu",
      "behavior": "installNavmenu",
      "docsPath": "components/navmenu"
    },
    {
      "block": "hc-pagination",
      "parts": [
        "item"
      ],
      "dataAttributes": [],
      "tokensGroup": "pagination",
      "behavior": null,
      "docsPath": "components/pagination"
    },
    {
      "block": "hc-popover",
      "parts": [],
      "dataAttributes": [],
      "tokensGroup": "popover",
      "behavior": "installPopover",
      "docsPath": "components/popover"
    },
    {
      "block": "hc-progress",
      "parts": [],
      "dataAttributes": [
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "progress",
      "behavior": null,
      "docsPath": "components/progress"
    },
    {
      "block": "hc-radio",
      "parts": [],
      "dataAttributes": [
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "radio",
      "behavior": null,
      "docsPath": "components/radio"
    },
    {
      "block": "hc-range",
      "parts": [
        "input"
      ],
      "dataAttributes": [],
      "tokensGroup": null,
      "behavior": "installRange",
      "docsPath": "components/range"
    },
    {
      "block": "hc-rating",
      "parts": [
        "input",
        "star"
      ],
      "dataAttributes": [
        "data-filled",
        "data-readonly",
        "data-size"
      ],
      "tokensGroup": "rating",
      "behavior": null,
      "docsPath": "components/rating"
    },
    {
      "block": "hc-scroll-area",
      "parts": [],
      "dataAttributes": [
        "data-orientation",
        "data-shadows"
      ],
      "tokensGroup": "scroll-area",
      "behavior": null,
      "docsPath": "components/scroll-area"
    },
    {
      "block": "hc-select",
      "parts": [],
      "dataAttributes": [
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "select",
      "behavior": null,
      "docsPath": "components/select"
    },
    {
      "block": "hc-separator",
      "parts": [
        "label"
      ],
      "dataAttributes": [
        "data-orientation"
      ],
      "tokensGroup": "separator",
      "behavior": null,
      "docsPath": "components/separator"
    },
    {
      "block": "hc-shell",
      "parts": [
        "aside",
        "collapse-icon",
        "footer",
        "header",
        "label",
        "main",
        "sidebar",
        "toggle"
      ],
      "dataAttributes": [
        "data-hc-shell-collapse",
        "data-layout",
        "data-sidebar",
        "data-sidebar-collapsed"
      ],
      "tokensGroup": null,
      "behavior": "installShell",
      "docsPath": "components/shell"
    },
    {
      "block": "hc-skeleton",
      "parts": [],
      "dataAttributes": [
        "data-animation",
        "data-shape"
      ],
      "tokensGroup": "skeleton",
      "behavior": null,
      "docsPath": "components/skeleton"
    },
    {
      "block": "hc-slider",
      "parts": [],
      "dataAttributes": [
        "data-orientation",
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "slider",
      "behavior": "installSlider",
      "docsPath": "components/slider"
    },
    {
      "block": "hc-sparkline",
      "parts": [
        "area",
        "line",
        "svg"
      ],
      "dataAttributes": [
        "data-variant"
      ],
      "tokensGroup": "sparkline",
      "behavior": "installSparkline",
      "docsPath": "components/sparkline"
    },
    {
      "block": "hc-spinner",
      "parts": [],
      "dataAttributes": [
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "spinner",
      "behavior": null,
      "docsPath": "components/spinner"
    },
    {
      "block": "hc-splitter",
      "parts": [
        "handle",
        "panel"
      ],
      "dataAttributes": [
        "data-orientation"
      ],
      "tokensGroup": "splitter",
      "behavior": "installSplitter",
      "docsPath": "components/splitter"
    },
    {
      "block": "hc-stepper",
      "parts": [
        "label",
        "marker",
        "step"
      ],
      "dataAttributes": [
        "data-size",
        "data-state"
      ],
      "tokensGroup": "stepper",
      "behavior": null,
      "docsPath": "components/stepper"
    },
    {
      "block": "hc-switch",
      "parts": [],
      "dataAttributes": [
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "switch",
      "behavior": null,
      "docsPath": "components/switch"
    },
    {
      "block": "hc-table",
      "parts": [],
      "dataAttributes": [
        "data-density",
        "data-variant"
      ],
      "tokensGroup": "table",
      "behavior": null,
      "docsPath": "components/table"
    },
    {
      "block": "hc-tabs",
      "parts": [
        "list",
        "panel",
        "scroll",
        "tab"
      ],
      "dataAttributes": [
        "data-dir",
        "data-orientation",
        "data-overflow",
        "data-size",
        "data-variant"
      ],
      "tokensGroup": "tabs",
      "behavior": "installTabs",
      "docsPath": "components/tabs"
    },
    {
      "block": "hc-timeline",
      "parts": [
        "content",
        "description",
        "item",
        "marker",
        "time",
        "title"
      ],
      "dataAttributes": [
        "data-variant"
      ],
      "tokensGroup": "timeline",
      "behavior": null,
      "docsPath": "components/timeline"
    },
    {
      "block": "hc-toast",
      "parts": [
        "action",
        "body",
        "close",
        "title"
      ],
      "dataAttributes": [
        "data-position",
        "data-variant"
      ],
      "tokensGroup": "toast",
      "behavior": "installToast",
      "docsPath": "components/toast"
    },
    {
      "block": "hc-toc",
      "parts": [
        "link",
        "list"
      ],
      "dataAttributes": [
        "data-active"
      ],
      "tokensGroup": "toc",
      "behavior": "installSpy",
      "docsPath": "components/toc"
    },
    {
      "block": "hc-toggle-group",
      "parts": [],
      "dataAttributes": [
        "data-size"
      ],
      "tokensGroup": null,
      "behavior": "installToggleGroup",
      "docsPath": "components/toggle-group"
    },
    {
      "block": "hc-toolbar",
      "parts": [],
      "dataAttributes": [
        "data-hc-spacer"
      ],
      "tokensGroup": "toolbar",
      "behavior": "installToolbar",
      "docsPath": "components/toolbar"
    },
    {
      "block": "hc-tooltip",
      "parts": [],
      "dataAttributes": [],
      "tokensGroup": "tooltip",
      "behavior": "installTooltip",
      "docsPath": "components/tooltip"
    },
    {
      "block": "hc-transfer",
      "parts": [
        "arrow",
        "controls",
        "count",
        "list",
        "pane",
        "title"
      ],
      "dataAttributes": [],
      "tokensGroup": "transfer",
      "behavior": null,
      "docsPath": "components/transfer"
    },
    {
      "block": "hc-tree",
      "parts": [
        "group",
        "item",
        "label",
        "row",
        "toggle"
      ],
      "dataAttributes": [
        "data-size"
      ],
      "tokensGroup": "tree",
      "behavior": "installTree",
      "docsPath": "components/tree"
    }
  ],
  "behaviors": [
    {
      "name": "installAvatar",
      "autoInit": true
    },
    {
      "name": "installCalendar",
      "autoInit": true
    },
    {
      "name": "installCarousel",
      "autoInit": true
    },
    {
      "name": "installChart",
      "autoInit": false
    },
    {
      "name": "installChatScroll",
      "autoInit": true
    },
    {
      "name": "installCloseDialog",
      "autoInit": true
    },
    {
      "name": "installClosePopover",
      "autoInit": true
    },
    {
      "name": "installCodeEditor",
      "autoInit": true
    },
    {
      "name": "installCombobox",
      "autoInit": true
    },
    {
      "name": "installCommand",
      "autoInit": true
    },
    {
      "name": "installConfirm",
      "autoInit": true
    },
    {
      "name": "installContextMenu",
      "autoInit": true
    },
    {
      "name": "installCopy",
      "autoInit": true
    },
    {
      "name": "installCsrfHeader",
      "autoInit": true
    },
    {
      "name": "installDatagrid",
      "autoInit": true
    },
    {
      "name": "installDatagridActions",
      "autoInit": true
    },
    {
      "name": "installDrawer",
      "autoInit": true
    },
    {
      "name": "installDropzone",
      "autoInit": true
    },
    {
      "name": "installFieldErrors",
      "autoInit": true
    },
    {
      "name": "installHovercard",
      "autoInit": true
    },
    {
      "name": "installInputOtp",
      "autoInit": true
    },
    {
      "name": "installMenu",
      "autoInit": true
    },
    {
      "name": "installMenubar",
      "autoInit": true
    },
    {
      "name": "installMulticombobox",
      "autoInit": true
    },
    {
      "name": "installNavCurrent",
      "autoInit": true
    },
    {
      "name": "installNavmenu",
      "autoInit": true
    },
    {
      "name": "installPasswordToggle",
      "autoInit": true
    },
    {
      "name": "installPopover",
      "autoInit": true
    },
    {
      "name": "installRange",
      "autoInit": true
    },
    {
      "name": "installRemoteDialog",
      "autoInit": true
    },
    {
      "name": "installShell",
      "autoInit": true
    },
    {
      "name": "installSlider",
      "autoInit": true
    },
    {
      "name": "installSparkline",
      "autoInit": true
    },
    {
      "name": "installSplitter",
      "autoInit": true
    },
    {
      "name": "installSpy",
      "autoInit": true
    },
    {
      "name": "installSseDispatch",
      "autoInit": true
    },
    {
      "name": "installTabs",
      "autoInit": true
    },
    {
      "name": "installThemeToggle",
      "autoInit": true
    },
    {
      "name": "installToast",
      "autoInit": true
    },
    {
      "name": "installToggleGroup",
      "autoInit": true
    },
    {
      "name": "installToolbar",
      "autoInit": true
    },
    {
      "name": "installTooltip",
      "autoInit": true
    },
    {
      "name": "installTree",
      "autoInit": true
    },
    {
      "name": "installUploadProgress",
      "autoInit": true
    },
    {
      "name": "installValidation",
      "autoInit": true
    }
  ],
  "events": [
    {
      "name": "hc:avatarstatechange",
      "modules": [
        "avatar"
      ]
    },
    {
      "name": "hc:calendarchange",
      "modules": [
        "calendar"
      ]
    },
    {
      "name": "hc:calendarrangechange",
      "modules": [
        "calendar"
      ]
    },
    {
      "name": "hc:carouselchange",
      "modules": [
        "carousel"
      ]
    },
    {
      "name": "hc:comboboxselect",
      "modules": [
        "combobox",
        "datagrid"
      ]
    },
    {
      "name": "hc:commandselect",
      "modules": [
        "command"
      ]
    },
    {
      "name": "hc:confirmed",
      "modules": [
        "confirm"
      ]
    },
    {
      "name": "hc:copied",
      "modules": [
        "copy"
      ]
    },
    {
      "name": "hc:datagridcollapse",
      "modules": [
        "datagrid"
      ]
    },
    {
      "name": "hc:datagridcolumnresize",
      "modules": [
        "datagrid"
      ]
    },
    {
      "name": "hc:datagriddetailload",
      "modules": [
        "datagrid"
      ]
    },
    {
      "name": "hc:datagridedit",
      "modules": [
        "datagrid"
      ]
    },
    {
      "name": "hc:datagridexpand",
      "modules": [
        "datagrid"
      ]
    },
    {
      "name": "hc:datagridselectionchange",
      "modules": [
        "datagrid",
        "datagrid-actions"
      ]
    },
    {
      "name": "hc:datagridsort",
      "modules": [
        "datagrid"
      ]
    },
    {
      "name": "hc:menuselect",
      "modules": [
        "menu-core"
      ]
    },
    {
      "name": "hc:multicomboboxchange",
      "modules": [
        "multicombobox"
      ]
    },
    {
      "name": "hc:otpchange",
      "modules": [
        "inputotp"
      ]
    },
    {
      "name": "hc:otpcomplete",
      "modules": [
        "inputotp"
      ]
    },
    {
      "name": "hc:rangechange",
      "modules": [
        "range"
      ]
    },
    {
      "name": "hc:splitterchange",
      "modules": [
        "splitter"
      ]
    },
    {
      "name": "hc:tabactivated",
      "modules": [
        "tabs"
      ]
    },
    {
      "name": "hc:themechange",
      "modules": [
        "theme-toggle"
      ]
    },
    {
      "name": "hc:toast",
      "modules": [
        "toast"
      ]
    },
    {
      "name": "hc:togglegroupchange",
      "modules": [
        "toggle-group"
      ]
    },
    {
      "name": "hc:treeexpand",
      "modules": [
        "tree"
      ]
    }
  ],
  "recipes": [
    {
      "name": "cascading-select",
      "purpose": "hierarchical selection (country → prefecture → city, category",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/cascading-select",
      "contractPath": "recipes/cascading-select/contract.md"
    },
    {
      "name": "chart",
      "purpose": "render a chart from a server-sent **semantic data table**. The",
      "needsBehavior": "installChart",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/chart",
      "contractPath": "recipes/chart/contract.md"
    },
    {
      "name": "chat-messages",
      "purpose": "chat as a server round trip — the transcript is server-rendered history, the composer is a plain form, and one POST appends both the user's message and the assistant's aria-busy placeholder that streaming-response later fills.",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/chat-messages",
      "contractPath": "recipes/chat-messages/contract.md"
    },
    {
      "name": "confirm-action",
      "purpose": "confirm with the user before sending an htmx request.",
      "needsBehavior": "installConfirm",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/confirm-action",
      "contractPath": "recipes/confirm-action/contract.md"
    },
    {
      "name": "copy",
      "purpose": "copy a read-only value (share URL, token, generated snippet) to the clipboard.",
      "needsBehavior": "installCopy",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/copy",
      "contractPath": "recipes/copy/contract.md"
    },
    {
      "name": "data-region",
      "purpose": "a named region the server can re-render on demand. Other parts of the page invalidate it by dispatching a domain event.",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/data-region",
      "contractPath": "recipes/data-region/contract.md"
    },
    {
      "name": "datagrid-bulk-actions",
      "purpose": "run one action against many datagrid rows at once — select with",
      "needsBehavior": "installDatagridActions",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/datagrid-bulk-actions",
      "contractPath": "recipes/datagrid-bulk-actions/contract.md"
    },
    {
      "name": "datagrid-pager",
      "purpose": "paginate an `hc-datagrid` from the server with htmx. The grid is",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/datagrid-pager",
      "contractPath": "recipes/datagrid-pager/contract.md"
    },
    {
      "name": "field-errors",
      "purpose": "render server-side validation errors next to the form fields",
      "needsBehavior": "installFieldErrors",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/field-errors",
      "contractPath": "recipes/field-errors/contract.md"
    },
    {
      "name": "file-upload",
      "purpose": "multipart file upload with a live progress bar — htmx owns the",
      "needsBehavior": "installUploadProgress",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/file-upload",
      "contractPath": "recipes/file-upload/contract.md"
    },
    {
      "name": "filter-popover",
      "purpose": "a popover that holds a filter form. Submitting the form sends an htmx request and closes the popover.",
      "needsBehavior": "installClosePopover",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/filter-popover",
      "contractPath": "recipes/filter-popover/contract.md"
    },
    {
      "name": "inline-edit",
      "purpose": "toggle a cell between a display rendering and an editable",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/inline-edit",
      "contractPath": "recipes/inline-edit/contract.md"
    },
    {
      "name": "lazy-panel",
      "purpose": "defer a region's content fetch until the user actually",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/lazy-panel",
      "contractPath": "recipes/lazy-panel/contract.md"
    },
    {
      "name": "lazy-tree",
      "purpose": "a tree whose deep branches are not rendered up front. A lazy",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/lazy-tree",
      "contractPath": "recipes/lazy-tree/contract.md"
    },
    {
      "name": "live-search",
      "purpose": "send a search request as the user types and swap the results.",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/live-search",
      "contractPath": "recipes/live-search/contract.md"
    },
    {
      "name": "multi-step-form",
      "purpose": "the hypermedia wizard — the server owns the current step and a",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/multi-step-form",
      "contractPath": "recipes/multi-step-form/contract.md"
    },
    {
      "name": "mutating-form",
      "purpose": "the canonical composition for a form that mutates server state",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/mutating-form",
      "contractPath": "recipes/mutating-form/contract.md"
    },
    {
      "name": "remote-dialog",
      "purpose": "open a dialog whose contents are fetched from the server.",
      "needsBehavior": "installRemoteDialog",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/remote-dialog",
      "contractPath": "recipes/remote-dialog/contract.md"
    },
    {
      "name": "request-action",
      "purpose": "trigger a server request from a button and swap the response into a target.",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/request-action",
      "contractPath": "recipes/request-action/contract.md"
    },
    {
      "name": "sse-toast",
      "purpose": "server-pushed notifications (and other page events) over",
      "needsBehavior": "installSseDispatch",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/sse-toast",
      "contractPath": "recipes/sse-toast/contract.md"
    },
    {
      "name": "sse-updates",
      "purpose": "server-pushed fragment updates over Server-Sent Events — a",
      "needsBehavior": "installSseDispatch",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/sse-updates",
      "contractPath": "recipes/sse-updates/contract.md"
    },
    {
      "name": "streaming-response",
      "purpose": "the SSE reply contract — the assistant placeholder appended by chat-messages owns its own stream connection; chunk events append server-rendered HTML into its body while aria-busy defers the announcement, and done/error swap the complete final message over it.",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/streaming-response",
      "contractPath": "recipes/streaming-response/contract.md"
    },
    {
      "name": "toast",
      "purpose": "surface a short, time-limited notification triggered by the server",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/toast",
      "contractPath": "recipes/toast/contract.md"
    },
    {
      "name": "transfer",
      "purpose": "a dual listbox (assign / unassign members, permissions,",
      "needsBehavior": null,
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/transfer",
      "contractPath": "recipes/transfer/contract.md"
    },
    {
      "name": "undo-delete",
      "purpose": "undo instead of confirm — delete executes immediately, the",
      "needsBehavior": "installConfirm",
      "files": [
        "recipe.html",
        "expanded.html",
        "contract.md",
        "checks.json"
      ],
      "docsPath": "recipes/undo-delete",
      "contractPath": "recipes/undo-delete/contract.md"
    }
  ],
  "macros": [
    {
      "tag": "hc-confirm-action",
      "attributes": [
        "action",
        "cancel-label",
        "confirm-label",
        "disabled-elt",
        "indicator",
        "message",
        "method",
        "swap",
        "target",
        "title",
        "variant"
      ]
    },
    {
      "tag": "hc-live-search",
      "attributes": [
        "action",
        "aria-label",
        "delay",
        "input-id",
        "label",
        "name",
        "placeholder",
        "submit-label",
        "swap",
        "target"
      ]
    }
  ],
  "i18nKeys": [
    "calendar.label",
    "calendar.month",
    "calendar.nextMonth",
    "calendar.prevMonth",
    "calendar.year",
    "combobox.create",
    "combobox.empty",
    "combobox.error",
    "combobox.loading",
    "confirm.cancel",
    "confirm.confirm",
    "confirm.message",
    "confirm.title",
    "copy.ok",
    "datagrid.selected",
    "fieldErrors.unknown",
    "multicombobox.create",
    "multicombobox.empty",
    "multicombobox.remove",
    "shell.collapseNav",
    "shell.toggleNav",
    "splitter.resize",
    "themeToggle.label",
    "toast.dismiss",
    "toast.label"
  ],
  "exports": [
    ".",
    "./a11y.css",
    "./behaviors",
    "./behaviors/min",
    "./css",
    "./css/*",
    "./css/core",
    "./css/core/min",
    "./css/min",
    "./css/utilities",
    "./custom-elements.json",
    "./htmx.css",
    "./i18n",
    "./locales/*",
    "./macros",
    "./macros/min",
    "./manifest.json",
    "./min",
    "./theme.css",
    "./token-transform",
    "./tokens.*.css",
    "./tokens.css",
    "./tokens/*"
  ]
}
