{
  "tag": "ed-scrollspy-item",
  "kind": "component",
  "summary": "A single item inside [ed-scrollspy](https://test-apps.eurodata.de/a/eurodata-ui/docs/components/scrollspy). Renders as an anchor link so right-click, keyboard, and share-link work natively.",
  "status": "experimental",
  "level": "atom",
  "since": "1.0",
  "docs": "https://test-apps.eurodata.de/a/eurodata-ui/docs/components/scrollspy-item/",
  "usage": "https://test-apps.eurodata.de/a/eurodata-ui/docs/components/scrollspy-item/usage/",
  "playwright": "getByTestId('…')",
  "dependencies": [],
  "use": [
    "One entry in the on-page index of a long page, linking to a section so the reader can jump there or share the link",
    "A sub-section entry nested under a section in the index, highlighted while the reader is inside that part of the page",
    "An index entry showing how many items its section holds, such as open findings or entries in a report chapter"
  ],
  "notFor": [
    {
      "when": "Navigating between areas or modules of the application",
      "instead": "a [Side Menu Item](https://test-apps.eurodata.de/a/eurodata-ui/docs/components/side-menu-item) inside a [Side Menu](https://test-apps.eurodata.de/a/eurodata-ui/docs/components/side-menu)"
    },
    {
      "when": "Used on its own without an index around it",
      "instead": "a [Scrollspy](https://test-apps.eurodata.de/a/eurodata-ui/docs/components/scrollspy), which supplies the index and tracks the scroll position"
    }
  ],
  "rules": [],
  "api": {
    "attributes": [
      {
        "name": "href",
        "property": "href",
        "type": "string",
        "default": "''",
        "description": "Anchor target — the heading id this item points to (e.g. `#anatomy`)."
      },
      {
        "name": "active",
        "property": "active",
        "type": "boolean",
        "default": "false",
        "description": "Whether this item's heading is the active scroll target. Set by the parent; do not write directly."
      },
      {
        "name": "parent-active",
        "property": "parentActive",
        "type": "boolean",
        "default": "false",
        "description": "Whether this is a level-1 item whose level-2 child is active. Set by the parent; do not write directly."
      },
      {
        "name": "passed",
        "property": "passed",
        "type": "boolean",
        "default": "false",
        "description": "Whether the reader has scrolled past this item. Set by the parent; do not write directly."
      },
      {
        "name": "count",
        "property": "count",
        "type": "number",
        "default": "0",
        "description": "Number of level-2 children inside this item. Set by the parent on level-1 items."
      },
      {
        "name": "show-count",
        "property": "showCount",
        "type": "boolean",
        "default": "false",
        "description": "When true, render the count badge. Gated by the parent's `show-counts` attribute."
      },
      {
        "name": "dir",
        "property": "dir",
        "type": "string"
      },
      {
        "name": "lang",
        "property": "lang",
        "type": "string"
      }
    ],
    "properties": [],
    "methods": [
      {
        "name": "getPropertyDescriptor",
        "static": true,
        "parameters": [
          {
            "name": "name",
            "type": "PropertyKey"
          },
          {
            "name": "key",
            "type": "string | symbol"
          },
          {
            "name": "options",
            "type": "PropertyDeclaration"
          }
        ],
        "returns": "PropertyDescriptor | undefined",
        "description": "Wraps the accessor of reflected properties so they always hold a valid value, as a native\nreflected IDL attribute does (`button.type = undefined` reads `submit`):\n\n- A property that declares `useDefault` takes the first value set on an element for its\n  default. That value is its field initializer's: the constructor has finished before markup,\n  a framework or any other code can set anything. Every later `null` or `undefined` means what\n  a dropped prop means on a native element — the attribute is removed: with the attribute\n  there, it is removed and Lit's `useDefault` restores the default without writing it; without\n  one, the property is set to the default. A value set and cleared again before the element\n  updates still writes the default once, from the pending reflection.\n- A Boolean is coerced with `Boolean()`, so `undefined` is `false`.\n\nLit's `useDefault` keeps the initial default out of the DOM. Setting the default explicitly\nwrites it, as `button.type = 'submit'` writes `type`."
      }
    ],
    "events": [],
    "slots": [
      {
        "name": "",
        "description": "The item's label text. It renders inside the row's anchor, so nested items belong in the `children` slot."
      },
      {
        "name": "children",
        "description": "Nested `<ed-scrollspy-item>` elements, one level deep (the parent enforces the two-level cap). An item nested inside another item is assigned here automatically, so the attribute is optional."
      }
    ],
    "cssProperties": [],
    "parts": [
      {
        "name": "base",
        "description": "The component's base wrapper."
      },
      {
        "name": "link",
        "description": "The clickable anchor row."
      },
      {
        "name": "rail",
        "description": "The vertical line column to the inline-start of the label. Tinted for the active section."
      },
      {
        "name": "dot",
        "description": "The circular indicator on the rail. Solid-filled when active."
      },
      {
        "name": "label",
        "description": "The visible item label."
      },
      {
        "name": "count",
        "description": "The child-count badge on parent items (rendered when `count > 0`)."
      },
      {
        "name": "children",
        "description": "Container for nested level-2 items."
      }
    ],
    "states": [
      {
        "name": "active",
        "description": "Applied when this item's heading is the active scroll target."
      },
      {
        "name": "parent-active",
        "description": "Applied to a level-1 item when its level-2 child is active."
      },
      {
        "name": "passed",
        "description": "Applied to items the reader has scrolled past."
      }
    ]
  },
  "import": "import '@eurodata/eurodata-ui/dist/components/scrollspy-item/scrollspy-item.js';",
  "react": {
    "component": "EdScrollspyItem",
    "import": "import EdScrollspyItem from '@eurodata/eurodata-ui/dist/react/scrollspy-item/index.js';"
  }
}
