{
  "tag": "ed-toast-stack",
  "kind": "component",
  "summary": "A fixed-position region that stacks and manages `<ed-toast-item>` notifications. Handles placement,\nordering, and convenience creation of toast items via the imperative `create()` API.",
  "status": "experimental",
  "level": "molecule",
  "since": "1.0",
  "docs": "https://test-apps.eurodata.de/a/eurodata-ui/docs/components/toast-stack/",
  "usage": "https://test-apps.eurodata.de/a/eurodata-ui/docs/components/toast-stack/usage/",
  "playwright": "getByTestId('…')",
  "dependencies": [
    "ed-toast-item"
  ],
  "use": [
    "One place on screen where all short confirmations of a product gather, so users know where to look for feedback",
    "Short messages announced to screen reader users without taking focus from what they are doing",
    "Creating a confirmation from code after an action, such as \"Invoice sent\", without adding markup to the page"
  ],
  "notFor": [
    {
      "when": "A single message to show inline in the page layout",
      "instead": "a [Notification](https://test-apps.eurodata.de/a/eurodata-ui/docs/components/notification)"
    },
    {
      "when": "A message that must stay until the user reacts",
      "instead": "a [Notification](https://test-apps.eurodata.de/a/eurodata-ui/docs/components/notification) or an [Alert Dialog](https://test-apps.eurodata.de/a/eurodata-ui/docs/components/alert-dialog)"
    }
  ],
  "rules": [],
  "api": {
    "attributes": [
      {
        "name": "placement",
        "property": "placement",
        "type": "'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end'",
        "default": "'top-end'",
        "description": "The placement of the stack relative to the viewport.\nLogical values (`-start` / `-end`) respect the document writing direction."
      },
      {
        "name": "label",
        "property": "label",
        "type": "string",
        "description": "The accessible label for the region, used as `aria-label`.\nWhen not set by the consumer, defaults to the localized string for \"Notifications\"."
      },
      {
        "name": "hotkey",
        "property": "hotkey",
        "type": "string",
        "default": "'F8'",
        "description": "Keyboard shortcut (`KeyboardEvent.code`) that moves focus into the notifications region\nby focusing the newest open toast. Defaults to `'F8'` (the Radix convention).\nThe value is announced as part of the region's `aria-label` so screen-reader users\nknow the shortcut is available."
      },
      {
        "name": "dir",
        "property": "dir",
        "type": "string"
      },
      {
        "name": "lang",
        "property": "lang",
        "type": "string"
      }
    ],
    "properties": [],
    "methods": [
      {
        "name": "connectedMoveCallback",
        "description": "An atomic move (`moveBefore`) runs this instead of the disconnect/connect pair. Firefox 151 takes\na popover inside a shadow root out of the top layer on the move — every built-in stack sits in\none — where Chromium 149 keeps it: bring it back when it holds toasts."
      },
      {
        "name": "create",
        "parameters": [
          {
            "name": "messageOrOptions",
            "type": "string | ToastOptions",
            "description": "A title string or a full `ToastOptions` object."
          },
          {
            "name": "options",
            "type": "ToastOptions",
            "optional": true,
            "description": "Additional options (merged with `messageOrOptions` when both are objects;\nignored when `messageOrOptions` is a string and this argument is absent)."
          }
        ],
        "description": "Creates a new `<ed-toast-item>`, populates it from `messageOrOptions`, adds it to the stack,\nand opens it. The toast will auto-remove itself from the DOM after it hides.\n\nString form is shorthand for `{ title: <string> }`."
      },
      {
        "name": "getOrCreate",
        "static": true,
        "parameters": [
          {
            "name": "placement",
            "type": "Placement",
            "optional": true
          }
        ],
        "returns": "EdToastStack",
        "description": "Returns the page stack — a stack the consumer placed, else `<ed-app>`'s, else one appended to\n`document.body`, created on the first call. There is one per page: `placement` applies only when\nthe stack is created here, and then wins over `toast.configure()`.\n\nEnables the one-liner:\n```ts\nEdToastStack.getOrCreate().create({ variant: 'success', title: 'Saved' });\n```"
      },
      {
        "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": "`<ed-toast-item>` items. Other content is allowed but discouraged."
      }
    ],
    "cssProperties": [
      {
        "name": "--ed-toast-stack-gap",
        "default": "var(--ed-space-3)",
        "description": "Gap between stacked toast items."
      },
      {
        "name": "--ed-toast-stack-offset-block",
        "default": "var(--ed-space-4)",
        "description": "Distance from the top/bottom viewport edge."
      },
      {
        "name": "--ed-toast-stack-offset-inline",
        "default": "var(--ed-space-4)",
        "description": "Distance from the inline-start/inline-end viewport edge. On a centered placement it is kept on both edges, so it also caps how wide the stack can grow."
      },
      {
        "name": "--ed-toast-stack-max-width",
        "default": "25rem",
        "description": "Maximum width of the stack column; child toasts inherit this."
      }
    ],
    "parts": [
      {
        "name": "live-region-polite",
        "description": "Visually-hidden, persistent `aria-live=\"polite\"` region that receives announcements for toasts whose resolved `sensitivity` is `polite`."
      },
      {
        "name": "live-region-assertive",
        "description": "Visually-hidden, persistent `aria-live=\"assertive\"` region that receives announcements for toasts whose resolved `sensitivity` is `assertive`."
      }
    ],
    "states": []
  },
  "import": "import '@eurodata/eurodata-ui/dist/components/toast-stack/toast-stack.js';",
  "react": {
    "component": "EdToastStack",
    "import": "import EdToastStack from '@eurodata/eurodata-ui/dist/react/toast-stack/index.js';"
  }
}
