{
  "name": "story",
  "displayName": "Story",
  "type": "custom",
  "isCustomElement": true,
  "tag": "l-story",
  "nativeTag": null,
  "selector": "l-story",
  "subItemOf": "stories",
  "summary": "A single story declaration inside an `<l-stories>` row.\n\nRenders the clickable thumbnail (poster image + centered play overlay).\nThe viewer reads `src`, `poster`, `label`, `handle`, `duration`, and\n`tracks` to play this story when opened.",
  "status": "experimental",
  "appearances": [],
  "import": {
    "css": "luxen-ui/css/story",
    "js": "luxen-ui/story"
  },
  "properties": [
    {
      "name": "src",
      "attribute": "src",
      "type": "string",
      "default": "''",
      "reflects": true,
      "description": "Video URL."
    },
    {
      "name": "poster",
      "attribute": "poster",
      "type": "string",
      "default": "''",
      "reflects": true,
      "description": "Thumbnail poster image. Falls back to the first video frame."
    },
    {
      "name": "preview",
      "attribute": "preview",
      "type": "string",
      "default": "''",
      "reflects": true,
      "description": "Optional short looping preview video (URL of a small dedicated MP4, typically 2-3s, 480p, no audio). When set, the thumbnail renders this video muted+looped+autoplayed in place of `poster`. Gated by an `IntersectionObserver` so off-screen previews don't play."
    },
    {
      "name": "label",
      "attribute": "label",
      "type": "string",
      "default": "''",
      "reflects": true,
      "description": "Caption shown below the thumbnail (or overlaid, depending on appearance) and used as the trigger `aria-label`."
    },
    {
      "name": "duration",
      "attribute": "duration",
      "type": "number",
      "default": "0",
      "reflects": false,
      "description": "Override the progress duration in seconds. Defaults to the video's metadata duration."
    },
    {
      "name": "seen",
      "attribute": "seen",
      "type": "boolean",
      "default": "false",
      "reflects": true,
      "description": "Mark this story as already viewed (faded ring). Reflected."
    },
    {
      "name": "pulse",
      "attribute": "pulse",
      "type": "boolean",
      "default": "false",
      "reflects": true,
      "description": "Pulse the thumbnail with an animated halo + a subtle scale tap to draw attention. Reflected."
    },
    {
      "name": "chapters",
      "attribute": "chapters",
      "type": "string",
      "default": "''",
      "reflects": false,
      "description": "Chapter start times within the video, comma-separated seconds (e.g. `0,5,12,20`). `0` is implicit if omitted. Empty = single chapter spanning the full video."
    },
    {
      "name": "tracks",
      "attribute": "tracks",
      "type": "string",
      "default": "''",
      "reflects": false,
      "description": "Comma-separated VTT track URLs for captions."
    }
  ],
  "attributes": [],
  "events": [],
  "methods": [
    {
      "name": "getChapterStarts",
      "params": [],
      "returns": "number[]",
      "description": "Parsed chapter start times. Always begins with `0`, sorted, deduplicated. Empty `chapters` returns `[0]`."
    }
  ],
  "slots": [
    {
      "name": "cta",
      "description": "Overlay surfaced by the viewer when this story is active (e.g. product card, link)."
    },
    {
      "name": "header",
      "description": "Header overlay (e.g. avatar + author)."
    }
  ],
  "cssClasses": [
    {
      "name": ".l-story-trigger",
      "description": "The clickable thumbnail button wrapper."
    },
    {
      "name": ".l-story-thumb",
      "description": "The poster/video thumbnail frame (ring + offset)."
    },
    {
      "name": ".l-story-play",
      "description": "The centered play-icon overlay."
    },
    {
      "name": ".l-story-label",
      "description": "The caption text below the thumbnail."
    }
  ],
  "cssParts": [],
  "cssProperties": [
    {
      "name": "--pulse-color",
      "default": null,
      "description": "Color of the attention pulse ring (only with the `pulse` attribute)."
    },
    {
      "name": "--pulse-scale",
      "default": "1.2",
      "description": "Peak scale of the pulse animation."
    },
    {
      "name": "--pulse-duration",
      "default": "1.6s",
      "description": "Duration of one pulse cycle."
    }
  ],
  "commands": [],
  "examples": []
}
