{
  "tag": "ed-resize-observer",
  "kind": "component",
  "summary": "The Resize Observer component offers a thin, declarative interface to the [`ResizeObserver API`](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver).",
  "status": "experimental",
  "level": "molecule",
  "since": "1.0",
  "docs": "https://test-apps.eurodata.de/a/eurodata-ui/docs/components/resize-observer/",
  "usage": "https://test-apps.eurodata.de/a/eurodata-ui/docs/components/resize-observer/usage/",
  "playwright": "getByTestId('…')",
  "dependencies": [],
  "use": [
    "Reacting when a panel or card changes size, such as switching a layout when a drawer is opened or the window is resized",
    "Recalculating a chart or an overflow menu when the space it sits in becomes wider or narrower"
  ],
  "notFor": [
    {
      "when": "Switching a layout by screen width only",
      "instead": "a CSS media or container query"
    },
    {
      "when": "Tracking whether an element is visible",
      "instead": "an [Intersection Observer](https://test-apps.eurodata.de/a/eurodata-ui/docs/components/intersection-observer)"
    }
  ],
  "rules": [],
  "api": {
    "attributes": [
      {
        "name": "disabled",
        "property": "disabled",
        "type": "boolean",
        "default": "false",
        "description": "Disables the observer."
      },
      {
        "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": [
      {
        "name": "ed-resize",
        "react": "onEdResize",
        "type": "{ entries: ResizeObserverEntry[] }",
        "description": "Emitted when a watched element is resized. The event detail contains an `entries` array of [`ResizeObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserverEntry) objects."
      }
    ],
    "slots": [
      {
        "name": "",
        "description": "One or more elements to watch for resizing."
      }
    ],
    "cssProperties": [],
    "parts": [],
    "states": []
  },
  "import": "import '@eurodata/eurodata-ui/dist/components/resize-observer/resize-observer.js';",
  "react": {
    "component": "EdResizeObserver",
    "import": "import EdResizeObserver from '@eurodata/eurodata-ui/dist/react/resize-observer/index.js';"
  }
}
