/**
 * Parsed component attributes from the `{...}` syntax.
 *
 * Supports:
 *   key="value"    → string value
 *   boolflag       → boolean true
 *   .class-name    → appended to `class` string
 *   #my-id         → sets `id` field
 */
export interface Attrs {
  id?: string
  class?: string
  [key: string]: unknown
}

/**
 * A parsed inline component node from `:name{attrs}` or `:name[content]{attrs}`.
 */
export interface InlineComponentData {
  name: string
  attrs: Attrs
  body?: string
}

/**
 * A parsed block component node from `::name{attrs}...::`.
 */
export interface BlockComponentData {
  name: string
  attrs: Attrs
  body: string
}
