/**
* @license
* Copyright (c) 2000 - 2026 Vaadin Ltd.
*
* This program is available under Vaadin Commercial License and Service Terms.
*
*
* See https://vaadin.com/commercial-license-and-service-terms for the full
* license.
*/
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin';
import { DashboardItemMixin } from './vaadin-dashboard-item-mixin.js';
/**
* A Widget component for use with the Dashboard component
*
* ```html
*
* Header
* Content
*
* ```
*
* ### Customization
*
* You can configure the item by using `slot` names.
*
* Slot name | Description
* -----------------|-------------
* `header-content` | A slot for the widget header content.
*
* #### Example
*
* ```html
*
* Header
* Content
*
* ```
*
* ### Styling
*
* The following shadow DOM parts are available for styling:
*
* Part name | Description
* ------------------------------|-------------
* `header` | The header of the widget
* `title` | The title of the widget
* `content` | The content of the widget
* `button` | Set on all the buttons (move, resize and others)
* `move-button` | The move button
* `remove-button` | The remove button
* `resize-button` | The resize button
* `move-backward-button` | The move backward button when in move mode
* `move-forward-button` | The move forward button when in move mode
* `move-apply-button` | The apply button when in move mode
* `resize-shrink-width-button` | The shrink width button when in resize mode
* `resize-grow-width-button` | The grow width button when in resize mode
* `resize-shrink-height-button` | The shrink height button when in resize mode
* `resize-grow-height-button` | The grow height button when in resize mode
* `resize-apply-button` | The apply button when in resize mode
*
* The following custom properties are available:
*
* Custom Property | Description
* --------------------------------------------|----------------------
* `--vaadin-dashboard-widget-colspan` | colspan of the widget
* `--vaadin-dashboard-widget-rowspan` | rowspan of the widget
* `--vaadin-dashboard-widget-background` | widget background
* `--vaadin-dashboard-widget-border-radius` | widget corner radius
* `--vaadin-dashboard-widget-border-width` | widget border width
* `--vaadin-dashboard-widget-border-color` | widget border color
* `--vaadin-dashboard-widget-shadow` | widget shadow (non edit mode)
* `--vaadin-dashboard-widget-padding` | padding around widget content
* `--vaadin-dashboard-widget-title-wrap` | widget title wrap
*
* The following state attributes are available for styling:
*
* Attribute | Description
* ---------------|-------------
* `selected` | Set when the element is selected.
* `focused` | Set when the element is focused.
* `move-mode` | Set when the element is being moved.
* `resize-mode` | Set when the element is being resized.
* `resizing` | Set when the element is being resized.
* `dragging` | Set when the element is being dragged.
* `editable` | Set when the element is editable.
* `first-child` | Set when the element is the first child of the parent.
* `last-child` | Set when the element is the last child of the parent.
*
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
*/
declare class DashboardWidget extends DashboardItemMixin(ElementMixin(ThemableMixin(HTMLElement))) {
/**
* The title of the widget
*
* @attr {string} widget-title
*/
widgetTitle: string | null | undefined;
}
declare global {
interface HTMLElementTagNameMap {
'vaadin-dashboard-widget': DashboardWidget;
}
}
export { DashboardWidget };