import { FlowCoreMap } from '@emuanalytics/flow-rdf-core'; import * as lit_html from 'lit-html'; import * as lit from 'lit'; import { LitElement, CSSResultGroup, ReactiveController, ReactiveControllerHost, TemplateResult, PropertyValueMap } from 'lit'; import * as chartjs_chart_matrix from 'chartjs-chart-matrix'; import * as chart_js from 'chart.js'; import { ChartComponentLike, Chart, ChartTypeRegistry, ChartOptions, ChartData, Plugin } from 'chart.js'; export { Chart as ChartJs } from 'chart.js'; type FlowAfterCollapseEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-after-collapse': FlowAfterCollapseEvent; } } type FlowAfterExpandEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-after-expand': FlowAfterExpandEvent; } } type FlowAfterHideEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-after-hide': FlowAfterHideEvent; } } type FlowAfterShowEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-after-show': FlowAfterShowEvent; } } type FlowApplyEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-apply': FlowApplyEvent; } } type FlowBlurEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-blur': FlowBlurEvent; } } type FlowCancelEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-cancel': FlowCancelEvent; } } type FlowChangeEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-change': FlowChangeEvent; } } type FlowClearEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-clear': FlowClearEvent; } } type FlowCloseEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-close': FlowCloseEvent; } } type FlowCollapseEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-collapse': FlowCollapseEvent; } } type FlowCollapseTreeEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-collapse-tree': FlowCollapseTreeEvent; } } type FlowDragEvent = CustomEvent<{ x: number; y: number; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-drag': FlowDragEvent; } } type FlowDragDropEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-drag-drop': FlowDragDropEvent; } } type FlowDragEndEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-drag-end': FlowDragEndEvent; } } type FlowDragOverEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-drag-over': FlowDragOverEvent; } } type FlowDragStartEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-drag-start': FlowDragStartEvent; } } type FlowErrorEvent = CustomEvent<{ status?: number; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-error': FlowErrorEvent; } } type FlowExpandEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-expand': FlowExpandEvent; } } type FlowExpandTreeEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-expand-tree': FlowExpandTreeEvent; } } type FlowFinishEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-finish': FlowFinishEvent; } } type FlowFocusEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-focus': FlowFocusEvent; } } type FlowHideEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-hide': FlowHideEvent; } } type FlowHoverEvent = CustomEvent<{ phase: 'start' | 'move' | 'end'; value: number; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-hover': FlowHoverEvent; } } type FlowInitialFocusEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-initial-focus': FlowInitialFocusEvent; } } type FlowInputEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-input': FlowInputEvent; } } type FlowInvalidEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-invalid': FlowInvalidEvent; } } type FlowLazyChangeEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-lazy-change': FlowLazyChangeEvent; } } type FlowLazyLoadEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-lazy-load': FlowLazyLoadEvent; } } type FlowLoadEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-load': FlowLoadEvent; } } type FlowMapLoadEvent = CustomEvent<{ map: FlowCoreMap; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-map-load': FlowMapLoadEvent; } } type FlowMutationEvent = CustomEvent<{ mutationList: MutationRecord[]; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-mutation': FlowMutationEvent; } } type FlowPanelToggleEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-panel-toggle': FlowPanelToggleEvent; } } type FlowRemoveEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-remove': FlowRemoveEvent; } } type FlowRepositionEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-reposition': FlowRepositionEvent; } } type FlowRequestCloseEvent = CustomEvent<{ source: 'close-button' | 'keyboard' | 'overlay'; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-request-close': FlowRequestCloseEvent; } } type FlowResizeEvent = CustomEvent<{ entries: ResizeObserverEntry[]; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-resize': FlowResizeEvent; } } type EventTypeRequiresDetail = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent> ? GlobalEventHandlersEventMap[T] extends CustomEvent> ? never : Partial extends GlobalEventHandlersEventMap[T]['detail'] ? never : T : never : never; type EventTypeDoesNotRequireDetail = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent> ? GlobalEventHandlersEventMap[T] extends CustomEvent> ? T : Partial extends GlobalEventHandlersEventMap[T]['detail'] ? T : never : T : T; type EventTypesWithRequiredDetail = { [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail]: true; }; type EventTypesWithoutRequiredDetail = { [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail]: true; }; type WithRequired = T & { [P in K]-?: T[P]; }; type SlEventInit = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent> ? GlobalEventHandlersEventMap[T] extends CustomEvent> ? CustomEventInit : Partial extends GlobalEventHandlersEventMap[T]['detail'] ? CustomEventInit : WithRequired, 'detail'> : CustomEventInit : CustomEventInit; type GetCustomEventType = T extends keyof GlobalEventHandlersEventMap ? GlobalEventHandlersEventMap[T] extends CustomEvent ? GlobalEventHandlersEventMap[T] : CustomEvent : CustomEvent; declare class FlowRdfElement extends LitElement { dir: string; lang: string; /** Emits a custom event with more convenient defaults. */ emit(name: EventTypeDoesNotRequireDetail, options?: SlEventInit | undefined): GetCustomEventType; emit(name: EventTypeRequiresDetail, options: SlEventInit): GetCustomEventType; static define(name: string, elementConstructor?: typeof FlowRdfElement, options?: ElementDefinitionOptions): void; } declare abstract class FlowRdfFormControl extends FlowRdfElement { static FLOW_UI_FORM_CONTROL_CLASS: string; class: string; /** The controls's size. */ size: string; /** Indicates that the control should display a divider */ divider: boolean; handleClassChange(): void; connectedCallback(): void; name: string; value: unknown; disabled?: boolean; defaultValue?: unknown; defaultChecked?: boolean; form?: string; pattern?: string; min?: number | string | Date; max?: number | string | Date; step?: number | 'any'; required?: boolean; minlength?: number; maxlength?: number; abstract get validity(): ValidityState; abstract get validationMessage(): string; abstract checkValidity(): boolean; abstract getForm(): HTMLFormElement | null; abstract reportValidity(): boolean; abstract setCustomValidity(message: string): void; renderDivider(): lit_html.TemplateResult<1>; } /** * * * @tagname flow-ui-icon * @summary Icons are symbols that can be used to represent various options within an application. * @documentation https://developer.emu-analytics.net/docs/flow-ui-rdf/components/icon * @status stable * @since 2.0 * * @event flow-ui-load - Emitted when the icon has loaded. * @event flow-ui-error - Emitted when the icon fails to load due to an error. * * @csspart svg - The internal SVG element. */ declare class FlowUiIcon extends FlowRdfElement { static styles: CSSResultGroup; /** Given a URL, this function returns the resulting SVG element or an appropriate error symbol. */ private static resolveIcon; private svg; /** The name of the icon to draw. Available names depend on the icon library being used. */ name?: string; /** * An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and * can result in XSS attacks. */ src?: string; /** * An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and * ignored by assistive devices. */ label: string; /** The name of a registered custom icon library. */ library: string; connectedCallback(): void; firstUpdated(): void; disconnectedCallback(): void; private getUrl; /** * @internal */ handleLabelChange(): void; /** * @internal */ setIcon(): Promise; render(): SVGElement | null; } /** * @tagname flow-ui-menu-item * @summary Menu items provide options for the user to pick from in a menu. * * @dependency flow-ui-icon * * @slot - The menu item's label. * @slot prefix - Used to prepend an icon or similar element to the menu item. * @slot suffix - Used to append an icon or similar element to the menu item. * * @csspart base - The component's base wrapper. * @csspart checked-icon - The checked icon, which is only visible when the menu item is checked. * @csspart prefix - The prefix container. * @csspart label - The menu item label. * @csspart suffix - The suffix container. * @csspart submenu-icon - The submenu icon, visible only when the menu item has a submenu (not yet implemented). */ declare class FlowUiMenuItem extends FlowRdfElement { static styles: CSSResultGroup; private cachedTextLabel; /** @internal */ defaultSlot: HTMLSlotElement; /** @internal */ menuItem: HTMLElement; /** The type of menu item to render. To use `checked`, this value must be set to `checkbox` or `radio`. */ type: 'normal' | 'checkbox' | 'radio'; /** Draws the item in a checked state. */ checked: boolean; /** A unique value to store in the menu item. This can be used as a way to identify menu items when selected. */ value: string; /** Draws the menu item in a disabled state, preventing selection. */ disabled: boolean; connectedCallback(): void; disconnectedCallback(): void; private handleDefaultSlotChange; private handleHostClick; /** @internal */ handleCheckedChange(): void; /** @internal */ handleDisabledChange(): void; /** @internal */ handleTypeChange(): void; /** @internal Returns a text label based on the contents of the menu item's default slot. */ getTextLabel(): string; render(): lit_html.TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'flow-ui-menu-item': FlowUiMenuItem; } } type FlowSelectEvent = CustomEvent<{ item: FlowUiMenuItem; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-select': FlowSelectEvent; } } type FlowShowEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-show': FlowShowEvent; } } /** * @tagname flow-ui-carousel-item * @summary A carousel item represent a slide within a [carousel](./flow-ui-carousel). * * @since 2.0 * @status experimental * * @slot - The carousel item's content.. * * @cssproperty --aspect-ratio - The slide's aspect ratio. Inherited from the carousel by default. * */ declare class FlowUiCarouselItem extends FlowRdfElement { static styles: CSSResultGroup; /** @internal */ static isCarouselItem(node: Node): boolean; connectedCallback(): void; render(): lit_html.TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'flow-ui-carousel-item': FlowUiCarouselItem; } } type FlowSlideChange = CustomEvent<{ index: number; slide: FlowUiCarouselItem; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-slide-change': FlowSlideChange; } } type FlowStartEvent = CustomEvent>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-start': FlowStartEvent; } } type FlowTabHideEvent = CustomEvent<{ name: string; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-tab-hide': FlowTabHideEvent; } } type FlowTabShowEvent = CustomEvent<{ name: string; }>; declare global { interface GlobalEventHandlersEventMap { 'flow-ui-tab-show': FlowTabShowEvent; } } declare module '@shoelace-style/animations' { export type Animation = Keyframe[]; export const animations: Animation[]; export const easings: { [key: string]: string }; export const bounce: Animation; export const flash: Animation; export const headShake: Animation; export const heartBeat: Animation; export const jello: Animation; export const pulse: Animation; export const rubberBand: Animation; export const shake: Animation; export const shakeX: Animation; export const shakeY: Animation; export const swing: Animation; export const tada: Animation; export const wobble: Animation; export const backInDown: Animation; export const backInLeft: Animation; export const backInRight: Animation; export const backInUp: Animation; export const backOutDown: Animation; export const backOutLeft: Animation; export const backOutRight: Animation; export const backOutUp: Animation; export const bounceIn: Animation; export const bounceInDown: Animation; export const bounceInLeft: Animation; export const bounceInRight: Animation; export const bounceInUp: Animation; export const bounceOut: Animation; export const bounceOutDown: Animation; export const bounceOutLeft: Animation; export const bounceOutRight: Animation; export const bounceOutUp: Animation; export const fadeIn: Animation; export const fadeInBottomLeft: Animation; export const fadeInBottomRight: Animation; export const fadeInDown: Animation; export const fadeInDownBig: Animation; export const fadeInLeft: Animation; export const fadeInLeftBig: Animation; export const fadeInRight: Animation; export const fadeInRightBig: Animation; export const fadeInTopLeft: Animation; export const fadeInTopRight: Animation; export const fadeInUp: Animation; export const fadeInUpBig: Animation; export const fadeOut: Animation; export const fadeOutBottomLeft: Animation; export const fadeOutBottomRight: Animation; export const fadeOutDown: Animation; export const fadeOutDownBig: Animation; export const fadeOutLeft: Animation; export const fadeOutLeftBig: Animation; export const fadeOutRight: Animation; export const fadeOutRightBig: Animation; export const fadeOutTopLeft: Animation; export const fadeOutTopRight: Animation; export const fadeOutUp: Animation; export const fadeOutUpBig: Animation; export const flip: Animation; export const flipInX: Animation; export const flipInY: Animation; export const flipOutX: Animation; export const flipOutY: Animation; export const lightSpeedInLeft: Animation; export const lightSpeedInRight: Animation; export const lightSpeedOutLeft: Animation; export const lightSpeedOutRight: Animation; export const rotateIn: Animation; export const rotateInDownLeft: Animation; export const rotateInDownRight: Animation; export const rotateInUpLeft: Animation; export const rotateInUpRight: Animation; export const rotateOut: Animation; export const rotateOutDownLeft: Animation; export const rotateOutDownRight: Animation; export const rotateOutUpLeft: Animation; export const rotateOutUpRight: Animation; export const slideInDown: Animation; export const slideInLeft: Animation; export const slideInRight: Animation; export const slideInUp: Animation; export const slideOutDown: Animation; export const slideOutLeft: Animation; export const slideOutRight: Animation; export const slideOutUp: Animation; export const hinge: Animation; export const jackInTheBox: Animation; export const rollIn: Animation; export const rollOut: Animation; export const zoomIn: Animation; export const zoomInDown: Animation; export const zoomInLeft: Animation; export const zoomInRight: Animation; export const zoomInUp: Animation; export const zoomOut: Animation; export const zoomOutDown: Animation; export const zoomOutLeft: Animation; export const zoomOutRight: Animation; export const zoomOutUp: Animation; } /** * Returns a list of all supported animation names. * * Supply the required animation as the `name` property of the * `` component. */ declare function getAnimationNames(): string[]; /** * Returns a list of all supported easing method names. * * Supply the required easing method as the `easing` property of the * `` component. */ declare function getEasingNames(): string[]; /** * @internal * * Registers standard Chart.js components and plugins, * and sets default options. */ declare function initializeChartJs(): void; declare function registerChartComponent(...components: ChartComponentLike[]): void; interface BaseColorStopOptions { type: string; label?: string; } interface StringColorStopOptions { type: 'string'; } interface NumberColorStopOptions { type: 'number'; min?: number; max?: number; step?: number; units?: string; } interface SelectColorStopOptions { type: 'select'; options: Array; } type ColorStopOptions = StringColorStopOptions | NumberColorStopOptions | SelectColorStopOptions; interface ColorStopValue { value: string | number; color: string; options?: { regex: boolean; caseSensitive: boolean; }; } interface BaseColorMapperField { name?: string; field: string; } interface StringColorMapperField extends StringColorStopOptions, BaseColorMapperField { type: 'string'; } interface NumberColorMapperField extends NumberColorStopOptions, BaseColorMapperField { type: 'number'; } interface SelectColorMapperField extends SelectColorStopOptions, BaseColorMapperField { type: 'select'; } type ColorMapperField = StringColorMapperField | NumberColorMapperField | SelectColorMapperField; interface ColorMapperOptions { fields: Record; } interface ColorMapperValue { mode: 'fixed' | 'data-driven'; field: string | undefined; type?: 'string' | 'number' | 'select'; defaultColor?: string; colorStops: ColorStopValue[]; } declare function colorMapperValueToMaplibreExpression(value: ColorMapperValue): string; declare function escapeMaplibreString(value: string): string; /** * * The following code shows how to import FontAwesome SVG icons from the `flow-rdf-ui/icons` package and add them to the * default icon library. * ```js * // Import and register icons * import {fasHouse, fasGear, fasUser} from '@emuanalytics/flow-rdf-ui/icons'; * import {addIcons} from '@emuanalytics/flow-rdf-ui'; * addIcons({fasHouse, fasGear, fasUser}); * ``` * * Icons are registered under their camelCase name **and** kebab-case name. * Once registered, they can be used in the following way: * * ```html * * ``` * * Note that missing or mis-spelled icons will be displayed as . * * For a list of available icons, see the [FontAwesome icon gallery](https://fontawesome.com/search?o=r&m=free). */ declare const addIcons: (icons: { [name: string]: string; }) => void; type IconLibraryResolver = (name: string) => string; type IconLibraryMutator = (svg: SVGElement) => void; /** * * Use this function to add a custom icon library to the registry or override an existing one. * Provide a resolver function that returns the URL of the icon based on its name. * Optionally, provide a mutator function that modifies the SVG element of the icon. * * Two icon libraries are included by default: * - `system` (System icons used by `flow-rdf-ui` components) * - `default` (FontAwesome 6.4.2) * * To use a custom icon library, set the `library` property of the `` component * to the registered name of the library. If omitted, the `default` library is used. * * ```typescript * // Register FontAwesome icon library using SVGs from Flo.w CDN * registerIconLibrary('fa', { * resolver: (name) => { * const filename = name.replace(/^fa[rbs]-/, ''); * let folder = 'regular'; * if (name.substring(0, 4) === 'fas-') folder = 'solid'; * if (name.substring(0, 4) === 'fab-') folder = 'brands'; * return `https://flow-cdn.emu-analytics.net/icons/fontawesome-6.4.2/${folder}/${filename}.svg`; * }, * mutator: (svg) => svg.setAttribute('fill', 'currentColor') * }); * ``` * * ```html * * ``` * * @param name The name of the custom icon library. * @param options The icon library resolver and optional mutator. * @param options.resolver A function that returns the URL of given icon. * @param options.mutator An optional function that mutates the SVG element of the icon. */ declare function registerIconLibrary(name: string, options: { resolver: IconLibraryResolver; mutator?: IconLibraryMutator; }): void; /** * Removes a custom icon library from the registry. */ declare function unregisterIconLibrary(name: string): void; /** * Set the default locale used by date/time-sensitive components including * ``, `` and ``. * * The default locale is can be overridden by setting the `locale` attribute * of date/time-sensitive components. * * @param locale Locale code (e.g. `'en'`, `'en-US'`, `'es-ES'`) */ declare function setDefaultLocale(locale: string): void; /** * Set the default timezone used by date/time-sensitive components including * ``, `` and ``. * * The default timezone is can be overridden by setting the `timezone` attribute * of date/time-sensitive components. * * @param timezone Timezone (e.g. `'Europe/London'`, `'America/New_York'`) */ declare function setDefaultTimeZone(timezone: string): void; type FunctionParams = T extends (...args: infer U) => string ? U : []; interface Translation$1 { $code: string; $name: string; $dir: 'ltr' | 'rtl'; } interface DefaultTranslation extends Translation$1 { $code: string; $name: string; $dir: 'ltr' | 'rtl'; [key: string]: any; } interface ExistsOptions { lang: string; includeFallback: boolean; } /** Registers one or more translations */ declare function registerTranslation(...translation: Translation$1[]): void; /** @internal */ declare class LocalizeController$1 implements ReactiveController { host: ReactiveControllerHost & HTMLElement; constructor(host: ReactiveControllerHost & HTMLElement); hostConnected(): void; hostDisconnected(): void; /** * Gets the host element's directionality as determined by the `dir` attribute. The return value is transformed to * lowercase. */ dir(): string; /** * Gets the host element's language as determined by the `lang` attribute. The return value is transformed to * lowercase. */ lang(): string; private getTranslationData; /** Determines if the specified term exists, optionally checking the fallback translation. */ exists(key: K, options: Partial): boolean; /** Outputs a translated term. */ term(key: K, ...args: FunctionParams): string; /** Outputs a localized date in the specified format. */ date(dateToFormat: Date | string, options?: Intl.DateTimeFormatOptions): string; /** Outputs a localized number in the specified format. */ number(numberToFormat: number | string, options?: Intl.NumberFormatOptions): string; /** Outputs a localized time in relative format. */ relativeTime(value: number, unit: Intl.RelativeTimeFormatUnit, options?: Intl.RelativeTimeFormatOptions): string; } /** @internal */ declare class LocalizeController extends LocalizeController$1 { } interface Translation extends Translation$1 { $code: string; $name: string; $dir: 'ltr' | 'rtl'; carousel: string; clearEntry: string; close: string; copy: string; currentValue: string; goToSlide: (slide: number, count: number) => string; hidePassword: string; loading: string; nextSlide: string; numOptionsSelected: (num: number) => string; previousSlide: string; progress: string; remove: string; resize: string; scrollToEnd: string; scrollToStart: string; selectAColorFromTheScreen: string; showPassword: string; slideNum: (slide: number) => string; toggleColorFormat: string; } interface VirtualElement { getBoundingClientRect: () => DOMRect; contextElement?: Element; } /** * @tagname flow-ui-popup * @summary Popup is a utility that lets you declaratively anchor "popup" containers to another element. * @event flow-ui-reposition - Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive * operations in your listener or consider debouncing it. * * @slot - The popup's content. * @slot anchor - The element the popup will be anchored to. If the anchor lives outside of the popup, you can use the * `anchor` attribute or property instead. * * @csspart arrow - The arrow's container. Avoid setting `top|bottom|left|right` properties, as these values are * assigned dynamically as the popup moves. This is most useful for applying a background color to match the popup, and * maybe a border or box shadow. * @csspart popup - The popup's container. Useful for setting a background color, box shadow, etc. * @csspart hover-bridge - The hover bridge element. Only available when the `hover-bridge` option is enabled. * * @cssproperty [--arrow-size=6px] - The size of the arrow. Note that an arrow won't be shown unless the `arrow` * attribute is used. * @cssproperty [--arrow-color] - The color of the arrow. * @cssproperty [--auto-size-available-width] - A read-only custom property that determines the amount of width the * popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only * available when using `auto-size`. * @cssproperty [--auto-size-available-height] - A read-only custom property that determines the amount of height the * popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only * available when using `auto-size`. */ declare class FlowUiPopup extends FlowRdfElement { static styles: CSSResultGroup; private anchorEl; private cleanup; /** @internal A reference to the internal popup container. Useful for animating and styling the popup with JavaScript. */ popup: HTMLElement; private arrowEl; /** * The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor * element `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the * `anchor` slot instead. */ anchor: Element | string | VirtualElement; /** * Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn * down and the popup will be hidden. */ active: boolean; /** * The preferred placement of the popup. Note that the actual placement will vary as configured to keep the * panel inside of the viewport. */ placement: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'right' | 'right-start' | 'right-end' | 'left' | 'left-start' | 'left-end'; /** * Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is * clipped, using a `fixed` position strategy can often workaround it. */ strategy: 'absolute' | 'fixed'; /** The distance in pixels from which to offset the panel away from its anchor. */ distance: number; /** The distance in pixels from which to offset the panel along its anchor. */ skidding: number; /** * Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and * `--arrow-color` custom properties. For additional customizations, you can also target the arrow using * `::part(arrow)` in your stylesheet. */ arrow: boolean; /** * The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the * anchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will * align the arrow to the start, end, or center of the popover instead. */ arrowPlacement: 'start' | 'end' | 'center' | 'anchor'; /** * The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example, * this will prevent it from overflowing the corners. */ arrowPadding: number; /** * When set, placement of the popup will flip to the opposite site to keep it in view. You can use * `flipFallbackPlacements` to further configure how the fallback placement is determined. */ flip: boolean; /** * If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a * string of any number of placements separated by a space, e.g. "top bottom left". If no placement fits, the flip * fallback strategy will be used instead. * */ flipFallbackPlacements: string; /** * When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether * the popup should be positioned using the best available fit based on available space or as it was initially * preferred. */ flipFallbackStrategy: 'best-fit' | 'initial'; /** * The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By * default, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can * change the boundary by passing a reference to one or more elements to this property. */ flipBoundary: Element | Element[]; /** The amount of padding, in pixels, to exceed before the flip behavior will occur. */ flipPadding: number; /** Moves the popup along the axis to keep it in view when clipped. */ shift: boolean; /** * The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By * default, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can * change the boundary by passing a reference to one or more elements to this property. */ shiftBoundary: Element | Element[]; /** The amount of padding, in pixels, to exceed before the shift behavior will occur. */ shiftPadding: number; /** When set, this will cause the popup to automatically resize itself to prevent it from overflowing. */ autoSize: 'horizontal' | 'vertical' | 'both'; /** Syncs the popup's width or height to that of the anchor element. */ sync: 'width' | 'height' | 'both'; /** * The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By * default, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can * change the boundary by passing a reference to one or more elements to this property. */ autoSizeBoundary: Element | Element[]; /** The amount of padding, in pixels, to exceed before the auto-size behavior will occur. */ autoSizePadding: number; /** * When a gap exists between the anchor and the popup element, this option will add a "hover bridge" that fills the * gap using an invisible element. This makes listening for events such as `mouseenter` and `mouseleave` more sane * because the pointer never technically leaves the element. The hover bridge will only be drawn when the popover is * active. */ hoverBridge: boolean; connectedCallback(): Promise; disconnectedCallback(): void; /** @internal */ updated(changedProps: Map): Promise; private handleAnchorChange; private start; private stop; /** Forces the popup to recalculate and reposition itself. */ reposition(): void; private updateHoverBridge; render(): lit_html.TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'flow-ui-popup': FlowUiPopup; } } /** * @tagname flow-ui-tooltip * @summary Tooltips display additional information based on a specific action. * * @dependency flow-ui-popup * * @slot - The tooltip's target element. Avoid slotting in more than one element, as subsequent ones will be ignored. * @slot content - The content to render in the tooltip. Alternatively, you can use the `content` attribute. * * @event flow-ui-show - Emitted when the tooltip begins to show. * @event flow-ui-after-show - Emitted after the tooltip has shown and all animations are complete. * @event flow-ui-hide - Emitted when the tooltip begins to hide. * @event flow-ui-after-hide - Emitted after the tooltip has hidden and all animations are complete. * * @csspart base - The component's base wrapper, an `` element. * @csspart base__popup - The popup's exported `popup` part. Use this to target the tooltip's popup container. * @csspart base__arrow - The popup's exported `arrow` part. Use this to target the tooltip's arrow. * @csspart body - The tooltip's body where its content is rendered. * * @cssproperty --max-width - The maximum width of the tooltip before its content will wrap. * @cssproperty --hide-delay - The amount of time to wait before hiding the tooltip when hovering. * @cssproperty --show-delay - The amount of time to wait before showing the tooltip when hovering. * * @animation tooltip.show - The animation to use when showing the tooltip. * @animation tooltip.hide - The animation to use when hiding the tooltip. */ declare class FlowUiTooltip extends FlowRdfElement { static styles: CSSResultGroup; private hoverTimeout; private readonly localize; /** @internal */ defaultSlot: HTMLSlotElement; /** @internal */ body: HTMLElement; /** @internal */ popup: FlowUiPopup; /** The tooltip's content. If you need to display HTML, use the `content` slot instead. */ content: string; /** * The preferred placement of the tooltip. Note that the actual placement may vary as needed to keep the tooltip * inside of the viewport. */ placement: 'top' | 'top-start' | 'top-end' | 'right' | 'right-start' | 'right-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end'; /** Disables the tooltip so it won't show when triggered. */ disabled: boolean; /** The distance in pixels from which to offset the tooltip away from its target. */ distance: number; /** Indicates whether or not the tooltip is open. You can use this in lieu of the show/hide methods. */ open: boolean; /** The distance in pixels from which to offset the tooltip along its target. */ skidding: number; /** * Controls how the tooltip is activated. Possible options include `click`, `hover`, `focus`, and `manual`. Multiple * options can be passed by separating them with a space. When manual is used, the tooltip must be activated * programmatically. */ trigger: string; /** * Enable this option to prevent the tooltip from being clipped when the component is placed inside a container with * `overflow: auto|hidden|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, * scenarios. */ hoist: boolean; connectedCallback(): void; firstUpdated(): void; disconnectedCallback(): void; private handleBlur; private handleClick; private handleFocus; private handleKeyDown; private handleMouseOver; private handleMouseOut; private hasTrigger; /** @internal */ handleOpenChange(): Promise; /** @internal */ handleOptionsChange(): Promise; /** @internal */ handleDisabledChange(): void; /** Shows the tooltip. */ show(): Promise; /** Hides the tooltip */ hide(): Promise; render(): lit_html.TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'flow-ui-tooltip': FlowUiTooltip; } } /** * @tagname flow-ui-icon-button * @summary Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars. * @documentation https://developer.emu-analytics.net/docs/flow-ui-rdf/components/icon-button * @status stable * @since 2.0 * * @dependency flow-ui-icon * @dependency flow-ui-tooltip * * @event flow-ui-blur - Emitted when the icon button loses focus. * @event flow-ui-focus - Emitted when the icon button gains focus. * * @slot tooltip - The tooltip content to display when the user hovers over the icon button. Alternatively, you can use the `tooltip` attribute. * * @csspart base - The component's base wrapper. */ declare class FlowUiIconButton extends FlowRdfElement { static styles: CSSResultGroup; private readonly hasSlotController; private tooltipAnimating; /** @internal */ button: HTMLButtonElement | HTMLLinkElement; /** @internal */ tooltipElem: FlowUiTooltip; /** @internal */ confirmButton: HTMLButtonElement; private hasFocus; /** The name of the icon to draw. Available names depend on the icon library being used. */ name?: string; /** The name of a registered custom icon library. */ library?: string; /** * An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and * can result in XSS attacks. */ src?: string; /** When set, the underlying button will be rendered as an `` with this `href` instead of a `