@oruga-ui/oruga-next
Version:
UI components for Vue.js and CSS framework agnostic
955 lines (953 loc) • 87.7 kB
text/typescript
import type {
ClassDefinition,
ComponentConfigBase,
DynamicComponent,
} from "@/types";
// Auto generated component theme config definition
declare module "../index" {
interface OrugaOptions {
autocomplete?: ComponentConfigBase &
Partial<{
/** Options won't be filtered based on the input value on clientside */
backendFiltering: boolean;
/** Menu tag name */
menuTag: DynamicComponent;
/** Menu item tag name */
itemTag: DynamicComponent;
/** Size of the input control */
size: string;
/** Position of the dropdown */
position: "auto" | "bottom" | "top";
/** Makes input full width when inside a grouped or addon field */
expanded: boolean;
/** Number of milliseconds to delay before to emit input event */
debounce: number;
/** The first option will always be focused (easier to just hit enter or tab) */
keepFirst: boolean;
/** Keep open dropdown list after select */
keepOpen: boolean;
/** Clear input text on select */
clearOnSelect: boolean;
/** Open dropdown list on focus */
openOnFocus: boolean;
/** Max height of dropdown content */
maxHeight: number | string;
/** Makes the component check if list reached scroll start or end and emit scroll events */
checkScroll: boolean;
/** Icon pack to use */
iconPack: string;
/** Icon to be shown */
icon: string;
/** Icon to be added on the right side */
iconRight: string;
/** Add a button/icon to clear the inputed text */
clearable: boolean;
/** Icon name to be added on the clear button */
clearIcon: string;
/** Dropdown content (items) are shown into a modal on mobile */
mobileModal: boolean;
/** Dropdown content (items) are shown into a modal on desktop */
desktopModal: boolean;
/** Transition name to apply on dropdown list */
animation: string;
/** Native options to use in HTML5 validation */
autocomplete: string;
/** Append the component to another part of the DOM.
Set `true` to append the component to the body.
In addition, any CSS selector string or an actual DOM node can be used. */
teleport: boolean | object | string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the menu items */
itemClass: ClassDefinition;
/** Class of the menu items group title */
itemGroupTitleClass: ClassDefinition;
/** Class of the empty menu placeholder item */
itemEmptyClass: ClassDefinition;
/** Class of the menu header item */
itemHeaderClass: ClassDefinition;
/** Class of the menu footer item */
itemFooterClass: ClassDefinition;
/** Class configuration for the internal input component */
inputClasses: Record<string, any>;
}>;
breadcrumb?: ComponentConfigBase &
Partial<{
/** Size of the breadcrumb */
size: string;
/** Color variant of the breadcrumb */
variant: string;
/** Position of the breadcrumb */
position: "centered" | "left" | "right";
/** The separator between breadcrumb items */
separator: string;
/** Accessibility aria-label to be passed to the nav wrapper element */
ariaLabel: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element with size */
sizeClass: ClassDefinition;
/** Class of the root element with variant */
variantClass: ClassDefinition;
/** Class of the root element with alignment */
positionClass: ClassDefinition;
/** Class of the list element */
listClass: ClassDefinition;
/** Icon pack to use */
iconPack: string;
/** Icon size */
iconSize: string;
/** Item tag name */
tag: DynamicComponent;
/** Class of the item element */
itemClass: ClassDefinition;
/** Class of the item element when disabled */
disabledClass: ClassDefinition;
/** Class of the item element when active */
activeClass: ClassDefinition;
/** Class of the item seperator element */
seperatorClass: ClassDefinition;
/** Class of the item link element */
linkClass: ClassDefinition;
/** Class of the item icon element */
iconClass: ClassDefinition;
/** Class of the item left icon element */
iconLeftClass: ClassDefinition;
/** Class of the item right icon element */
iconRightClass: ClassDefinition;
}>;
button?: ComponentConfigBase &
Partial<{
/** Button tag name */
tag: DynamicComponent;
/** Color variant of the control */
variant: string;
/** Size of the control */
size: string;
/** Icon pack to use */
iconPack: string;
/** Enable rounded style */
rounded: boolean;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element with size */
sizeClass: ClassDefinition;
/** Class of the root element with variant */
variantClass: ClassDefinition;
/** Class of the root element when outlined */
outlinedClass: ClassDefinition;
/** Class of the root element when inverted */
invertedClass: ClassDefinition;
/** Class of the root element when loading */
loadingClass: ClassDefinition;
/** Class of the root element when expanded */
expandedClass: ClassDefinition;
/** Class of the root element when rounded */
roundedClass: ClassDefinition;
/** Class of the root element when disabled */
disabledClass: ClassDefinition;
/** Class of the inner wrapper element */
wrapperClass: ClassDefinition;
/** Class of the icon element */
iconClass: ClassDefinition;
/** Class of the icon element on the left */
iconLeftClass: ClassDefinition;
/** Class of the icon element on the right */
iconRightClass: ClassDefinition;
/** Class of the label element */
labelClass: ClassDefinition;
}>;
carousel?: ComponentConfigBase &
Partial<{
/** Timer interval for `autoplay` */
interval: number;
/** Position of the indicator - depends on used theme */
indicatorPosition: string;
/** Style of the indicator - depends on used theme */
indicatorStyle: string;
/** Number of items to show at once */
itemsToShow: number;
/** Number of items to switch at once */
itemsToList: number;
/** Show next / prev arrows */
arrows: boolean;
/** Show next / prev arrows only on hover */
arrowsHover: boolean;
/** Icon pack to use */
iconPack: string;
/** Icon size */
iconSize: string;
/** Icon name for previous button */
iconPrev: string;
/** Icon name for next button */
iconNext: string;
/** Icon name for autoplay pause button */
iconAutoplayPause: string;
/** Icon name for autoplay resume button */
iconAutoplayResume: string;
/** Accessibility autoplay pause button aria label */
ariaAutoplayPauseLabel: string;
/** Accessibility autoplay resume button aria label */
ariaAutoplayResumeLabel: string;
/** Accessibility next button aria label */
ariaNextLabel: string;
/** Accessibility previous button aria label */
ariaPreviousLabel: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element in overlay */
overlayClass: ClassDefinition;
/** Class of the inner wrapper element */
wrapperClass: ClassDefinition;
/** Class of items container element */
itemsClass: ClassDefinition;
/** */
itemsDraggingClass: ClassDefinition;
/** Class of icon button elements */
iconClass: ClassDefinition;
/** Class of prev icon button element */
iconPrevClass: ClassDefinition;
/** Class of next icon button element */
iconNextClass: ClassDefinition;
/** Class of autoplay icon button element */
iconAutoplayClass: ClassDefinition;
/** Class of indicators tablist element */
indicatorsClass: ClassDefinition;
/** Class of indicators tablist element when inside */
indicatorsInsideClass: ClassDefinition;
/** Class of indicators tablist element with position */
indicatorsPositionClass: ClassDefinition;
/** Class of indicator tab element */
indicatorClass: ClassDefinition;
/** Class of indicator item element */
indicatorItemClass: ClassDefinition;
/** Class of indicator element when active */
indicatorItemActiveClass: ClassDefinition;
/** Class of indicator element to separate different styles */
indicatorItemStyleClass: ClassDefinition;
/** Class of item element */
itemClass: ClassDefinition;
/** Class of item element when active */
itemActiveClass: ClassDefinition;
/** Class of item element when clickable */
itemClickableClass: ClassDefinition;
}>;
checkbox?: ComponentConfigBase &
Partial<{
/** Color of the control */
variant: string;
/** Size of the control */
size: string;
/** Same as native autocomplete options to use in HTML5 validation */
autocomplete: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element with size */
sizeClass: ClassDefinition;
/** Class of the root element with variant */
variantClass: ClassDefinition;
/** Class of the root element when disabled */
disabledClass: ClassDefinition;
/** Class of the root element when checked */
checkedClass: ClassDefinition;
/** Class of the the root element when indeterminate */
indeterminateClass: ClassDefinition;
/** Class of the native input element */
inputClass: ClassDefinition;
/** Class of the label element */
labelClass: ClassDefinition;
}>;
collapse?: ComponentConfigBase &
Partial<{
/** Custom animation (transition name) */
animation: string;
/** Trigger position */
position: "bottom" | "top";
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element when expanded */
expandedClass: ClassDefinition;
/** Clas of the root element with position */
positionClass: ClassDefinition;
/** Class of the trigger element */
triggerClass: ClassDefinition;
/** Class of the content */
contentClass: ClassDefinition;
}>;
datepicker?: ComponentConfigBase &
Partial<{
/** Set custom day names, else use names based on locale */
dayNames: string[];
/** Set custom month names, else use names based on locale */
monthNames: string[];
/** Size of the control input */
size: string;
/** Makes input full width when inside a grouped or addon field */
expanded: boolean;
/** Open dropdown on focus */
openOnFocus: boolean;
/** Close dropdown on click */
closeOnClick: boolean;
/** Custom function to format a date into a string */
formatter: ((date: Date | [] | Date[] | [Date, Date]) => string) | undefined;
/** Custom function to parse a string into a date */
parser: ((date: string) => Date | [] | Date[] | [Date, Date]) | undefined;
/** Date creator function, default is `new Date()` */
creator: (() => Date);
/** Define a list of weeks which can not be selected */
unselectableDaysOfWeek: number[];
/** Show nearby month days */
nearbyMonthDays: boolean;
/** Define if nearby month days can be selected */
nearbySelectableMonthDays: boolean;
/** Show week numbers */
showWeekNumber: boolean;
/** Define if week numbers are clickable */
weekNumberClickable: boolean;
/** Set the first day of a week */
firstDayOfWeek: number;
/** Define the range of years to show */
yearsRange: number[];
/** Icon pack to use */
iconPack: string;
/** Icon to be shown */
icon: string;
/** Icon to be added on the right side */
iconRight: string;
/** Icon name for previous icon */
iconPrev: string;
/** Icon name for next icon */
iconNext: string;
/** Dropdown content is shown into a modal on mobile */
mobileModal: boolean;
/** Dropdown content is shown into a modal on desktop */
desktopModal: boolean;
/** Enable mobile native input if mobile agent */
mobileNative: boolean;
/** Mobile breakpoint as `max-width` value */
mobileBreakpoint: string;
/** Append the component to another part of the DOM.
Set `true` to append the component to the body.
In addition, any CSS selector string or an actual DOM node can be used. */
teleport: boolean | object | string;
/** Accessibility next button aria label */
ariaNextLabel: string;
/** Accessibility month select aria label */
ariaSelectMonthLabel: string;
/** Accessibility year select aria label */
ariaSelectYearLabel: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element when on mobile */
mobileClass: ClassDefinition;
/** Class of the root element with size */
sizeClass: ClassDefinition;
/** Class of the root element when expanded */
expandedClass: ClassDefinition;
/** Class of the box container element where you choose the date */
boxClass: ClassDefinition;
/** Class of the header element inside the box */
headerClass: ClassDefinition;
/** Class of the prev button element inside the box */
prevButtonClass: ClassDefinition;
/** Class of the next button element inside the box */
nextButtonClass: ClassDefinition;
/** Class of the month and year selects container inside the box */
listsClass: ClassDefinition;
/** Class of the footer element */
footerClass: ClassDefinition;
/** Class of the dates table element inside the box */
tableClass: ClassDefinition;
/** Class of dates table header element with days of the week */
tableHeadClass: ClassDefinition;
/** Class of the cell element inside the table header */
tableHeadCellClass: ClassDefinition;
/** Class of the table body element inside the box */
tableBodyClass: ClassDefinition;
/** Class of the table row element */
tableRowClass: ClassDefinition;
/** Class of the table cell element */
tableCellClass: ClassDefinition;
/** Class of the table cell element when nearby month days are hidden */
tableCellInvisibleClass: ClassDefinition;
/** Class of table cell element when selected */
tableCellSelectedClass: ClassDefinition;
/** Class of the first selected table cell element when in range */
tableCellFirstSelectedClass: ClassDefinition;
/** Class of the table cell elements within the range when the range is selected */
tableCellWithinSelectedClass: ClassDefinition;
/** Class of the last selected table cell element during range selection */
tableCellLastSelectedClass: ClassDefinition;
/** Class of the first hovered table cell element during range selection */
tableCellFirstHoveredClass: ClassDefinition;
/** Class of the table cell element when hovered during range selection */
tableCellWithinHoveredClass: ClassDefinition;
/** Class of the last table cell element hovered during range selection */
tableCellLastHoveredClass: ClassDefinition;
/** Class of the table cell element of the current day */
tableCellTodayClass: ClassDefinition;
/** Class of the table cell element when selectable */
tableCellSelectableClass: ClassDefinition;
/** Class of the table cell element when unselectable */
tableCellUnselectableClass: ClassDefinition;
/** Class of the table cell element when nearby days (prev/next month) are selectable */
tableCellNearbyClass: ClassDefinition;
/** Class of the cell element of a row when at least one event is present */
tableCellEventsClass: ClassDefinition;
/** Class of the events container element */
tableEventsClass: ClassDefinition;
/** Class of the event element */
tableEventClass: ClassDefinition;
/** Class of the event element with variant */
tableEventVariantClass: ClassDefinition;
/** Class of the event element with indicator */
tableEventIndicatorClass: ClassDefinition;
/** Class of the month table element inside the box when type is `month` */
monthClass: ClassDefinition;
/** Class of the table container when type is `month` */
monthTableClass: ClassDefinition;
/** Class of the table cell element when type is `month` */
monthCellClass: ClassDefinition;
/** Class of table cell element when selected when type is `month` */
monthCellSelectedClass: ClassDefinition;
/** Class of the first selected table cell element when in range when type is `month` */
monthCellFirstSelectedClass: ClassDefinition;
/** Class of the table cell elements within the range when the range is selected when type is `month` */
monthCellWithinSelectedClass: ClassDefinition;
/** Class of the last selected table cell element during range selection when type is `month` */
monthCellLastSelectedClass: ClassDefinition;
/** Class of the first hovered table cell element during range selection when type is `month` */
monthCellWithinHoveredRangeClass: ClassDefinition;
/** Class of the table cell element when hovered during range selection when type is `month` */
monthCellFirstHoveredClass: ClassDefinition;
/** Class of the table cell element when hovered during range selection and cell is in range when type is `month` */
monthCellWithinHoveredClass: ClassDefinition;
/** Class of the last table cell element when hovered during range selection when type is `month` */
monthCellLastHoveredClass: ClassDefinition;
/** Class of the table cell element of the current day when type is `month` */
monthCellTodayClass: ClassDefinition;
/** Class of the table cell element whis is selectable when type is `month` */
monthCellSelectableClass: ClassDefinition;
/** Class of the table cell element whis is unselectable when type is `month` */
monthCellUnselectableClass: ClassDefinition;
/** Class of the events container when type is `month` */
monthCellEventsClass: ClassDefinition;
/** Class of the events container element when type is `month` */
monthEventsClass: ClassDefinition;
/** Class of the event element when type is `month` */
monthEventClass: ClassDefinition;
/** Class of the event element with variant when type is `month` */
monthEventVariantClass: ClassDefinition;
/** Class of the event element with indicator when type is `month` */
monthEventIndicatorClass: ClassDefinition;
/** Class for the underlaying dropdown component */
dropdownClass: ClassDefinition;
/** Class for the HTML input element */
inputClass: ClassDefinition;
/** Class configuration for the internal input component */
inputClasses: Record<string, any>;
/** Class configuration for the internal dropdown component */
dropdownClasses: Record<string, any>;
/** Class configuration for the internal select component */
selectClasses: Record<string, any>;
}>;
datetimepicker?: ComponentConfigBase &
Partial<{
/** Size of the input control */
size: string;
/** Makes input full width when inside a grouped or addon field */
expanded: boolean;
/** Open dropdown on focus */
openOnFocus: boolean;
/** Custom function to format a date into a string */
dateFormatter: ((date: Date) => string) | undefined;
/** Custom function to parse a string into a date */
dateParser: ((date: string) => Date) | undefined;
/** Date creator function, default is `new Date()` */
datetimeCreator: (() => Date);
/** Icon pack to use */
iconPack: string;
/** Icon to be shown */
icon: string;
/** Icon to be added on the right side */
iconRight: string;
/** Dropdown content is shown into a modal on mobile */
mobileModal: boolean;
/** Dropdown content is shown into a modal on desktop */
desktopModal: boolean;
/** Enable mobile native input if mobile agent */
mobileNative: boolean;
/** Append the component to another part of the DOM.
Set `true` to append the component to the body.
In addition, any CSS selector string or an actual DOM node can be used. */
teleport: boolean | object | string;
/** Class of the Datepicker component wrapper element */
datepickerWrapperClass: ClassDefinition;
/** Class of the Timepicker component wrapper element */
timepickerWrapperClass: ClassDefinition;
}>;
dropdown?: ComponentConfigBase &
Partial<{
/** Makes the component check if menu reached scroll start or end and emit scroll events */
checkScroll: boolean;
/** Max height of dropdown content */
maxHeight: number | string;
/** Position of the dropdown relative to the trigger */
position: "auto" | "bottom-left" | "bottom-right" | "bottom" | "left" | "right" | "top-left" | "top-right" | "top";
/** Custom animation (transition name) */
animation: string;
/** Dropdown menu tag name */
menuTag: DynamicComponent;
/** Dropdown trigger tag name */
triggerTag: DynamicComponent;
/** Dropdown will be triggered by any events */
triggers: ("click" | "contextmenu" | "focus" | "keydown" | "hover")[];
/** Keep dropdown list open when item get selected */
keepOpen: boolean;
/** The first option will always be pre-selected (easier to just hit enter or tab) */
keepFirst: boolean;
/** Close Dropdown when clicked outside */
closeOnOutside: boolean;
/** Close Dropdown when page get scrolled */
closeOnScroll: boolean;
/** Select current focused item when focused */
selectOnFocus: boolean;
/** Select current focused item when closed */
selectOnClose: boolean;
/** Dropdown content (items) are shown into a modal on mobile */
mobileModal: boolean;
/** Dropdown content (items) are shown into a modal on desktop */
desktopModal: boolean;
/** Mobile breakpoint as `max-width` value */
mobileBreakpoint: string;
/** Append the component to another part of the DOM.
Set `true` to append the component to the body.
In addition, any CSS selector string or an actual DOM node can be used. */
teleport: boolean | object | string;
/** Set `true` to remove the body scrollbar.
When `false`, a non-scrollable scrollbar will be kept to avoid moving the background,
but will set the body to a fixed position, which may break some layouts. */
clipScroll: boolean;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element when on mobile */
mobileClass: ClassDefinition;
/** Class of the root element when shown as modal */
modalClass: ClassDefinition;
/** Class of the root element when teleported */
teleportClass: ClassDefinition;
/** Class of the root element when inlined */
inlineClass: ClassDefinition;
/** Class of the root element when disabled */
disabledClass: ClassDefinition;
/** Class of the root element when expanded */
expandedClass: ClassDefinition;
/** Class for the root element with position */
positionClass: ClassDefinition;
/** Class for the root element when active or inline */
activeClass: ClassDefinition;
/** Class for the root element when trigger is hoverable */
hoverableClass: ClassDefinition;
/** Class of the trigger element */
triggerClass: ClassDefinition;
/** Class of the menu element */
menuClass: ClassDefinition;
/** Class of the menu element with position */
menuPositionClass: ClassDefinition;
/** Class of the menu element when active or inline */
menuActiveClass: ClassDefinition;
/** Class of the overlay when is shown as modal */
overlayClass: ClassDefinition;
/** Class of the body when dropdown is open and scroll is clipped */
scrollClipClass: ClassDefinition;
/** Class of the body when dropdown is open and scroll is keeped */
scrollKeepClass: ClassDefinition;
/** Dropdown item tag name */
itemTag: DynamicComponent;
/** Class of the item element. */
itemClass: ClassDefinition;
/** Class of the item element when selected */
itemSelectedClass: ClassDefinition;
/** Class of the item element when focused */
itemFocusedClass: ClassDefinition;
/** Class of the item element when clickable */
itemClickableClass: ClassDefinition;
/** Class of the item element when disabled */
itemDisabledClass: ClassDefinition;
}>;
field?: ComponentConfigBase &
Partial<{
/** Vertical size of input */
labelsize: string;
/** Message element tag name */
messageTag: DynamicComponent;
/** Mobile breakpoint as `max-width` value */
mobileBreakpoint: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element when on mobile */
mobileClass: ClassDefinition;
/** Class of the root element when the form element is focused */
focusedClass: ClassDefinition;
/** Class of the root element when the form element is filled */
filledClass: ClassDefinition;
/** Class for the body wrapper element */
bodyClass: ClassDefinition;
/** Class for inner wrapper element when grouped */
groupedClass: ClassDefinition;
/** Class of the inner wrapper element when element get automatically attached together inside a field */
addonsClass: ClassDefinition;
/** Class for inner body wrapper element to fill up multiple lines */
multilineClass: ClassDefinition;
/** Class to align label and control in horizontal forms */
horizontalClass: ClassDefinition;
/** Class for the label element when horizontal */
horizontalLabelClass: ClassDefinition;
/** Class for the body element when horizontal */
horizontalBodyClass: ClassDefinition;
/** Class for the label element */
labelClass: ClassDefinition;
/** Class for the label element with size */
labelSizeClass: ClassDefinition;
/** Class for the label element with variant */
labelVariantClass: ClassDefinition;
/** Class for the message element */
messageClass: ClassDefinition;
/** Class for the message element with variant */
messageVariantClass: ClassDefinition;
}>;
icon?: ComponentConfigBase &
Partial<{
/** Color of the icon */
variant: string;
/** Icon size */
size: string;
/** Add class to icon font.
See icon library documentation for custom classes. */
customClass: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element with size */
sizeClass: ClassDefinition;
/** Class of the root element with variant */
variantClass: ClassDefinition;
/** Class of the root element when clickable */
clickableClass: ClassDefinition;
/** Class of the root element when spin */
spinClass: ClassDefinition;
}>;
input?: ComponentConfigBase &
Partial<{
/** Size of the control */
size: string;
/** Color of the control */
variant: string;
/** Makes input full width when inside a grouped or addon field */
expanded: boolean;
/** Show character counter when maxlength prop is passed */
counter: boolean;
/** Icon pack to use */
iconPack: string;
/** Icon to be shown */
icon: string;
/** Icon to be added on the right side */
iconRight: string;
/** Add a button/icon to clear the inputed text */
clearable: boolean;
/** Icon name to be added on the clear button */
clearIcon: string;
/** Number of milliseconds to delay before to emit input event */
debounce: number;
/** Native options to use in HTML5 validation */
autocomplete: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element with size */
sizeClass: ClassDefinition;
/** Class of the root element with variant */
variantClass: ClassDefinition;
/** Class of the root element when expanded */
expandedClass: ClassDefinition;
/** Class of the root element when rounded */
roundedClass: ClassDefinition;
/** Class of the root element when disabled */
disabledClass: ClassDefinition;
/** Class of the root element when type `textarea` */
textareaClass: ClassDefinition;
/** Class to the root element when has a right icon */
hasIconRightClass: ClassDefinition;
/** Class of the native input element */
inputClass: ClassDefinition;
/** Class of the native input element with left icon space */
iconLeftSpaceClass: ClassDefinition;
/** Class of the native input element with right icon space */
iconRightSpaceClass: ClassDefinition;
/** Class of the native input element with placeholder */
placeholderClass: ClassDefinition;
/** Class of the left icon element */
iconLeftClass: ClassDefinition;
/** Class of the right icon element */
iconRightClass: ClassDefinition;
/** Class of the counter element */
counterClass: ClassDefinition;
}>;
loading?: ComponentConfigBase &
Partial<{
/** Custom animation (transition name) */
animation: string;
/** Icon name to show, unnecessary when default slot is used. */
icon: string;
/** Enable spin effect on icon */
iconSpin: boolean;
/** Icon size */
iconSize: string;
/** Set `true` to remove the body scrollbar.
When `false`, a non-scrollable scrollbar will be kept to avoid moving the background,
but will set the body to a fixed position, which may break some layouts. */
clipScroll: boolean;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class for the root element when fullpage */
fullPageClass: ClassDefinition;
/** Class of the overlay element */
overlayClass: ClassDefinition;
/** Class for the icon element */
iconClass: ClassDefinition;
/** Class for the label element */
labelClass: ClassDefinition;
/** Class of the body when fullpage and scroll is clipped */
scrollClipClass: ClassDefinition;
/** Class of the body when fullpage and scroll is keeped */
scrollKeepClass: ClassDefinition;
}>;
menu?: ComponentConfigBase &
Partial<{
/** Role attribute to be passed to the list container for better accessibility.
Use menu only in situations where your dropdown is related to a navigation menu. */
role: "menu" | "tree";
/** Icon pack to use */
iconPack: string;
/** Icon size */
iconSize: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the menu list element */
listClass: ClassDefinition;
/** Class of the menu label element */
labelClass: ClassDefinition;
/** Transition name to apply on menu list */
animation: string;
/** Menu item tag name */
itemTag: DynamicComponent;
/** Class of the menu item root element */
itemClass: ClassDefinition;
/** Class of the menu item root element when active */
itemActiveClass: ClassDefinition;
/** Class of the menu item root element when focused */
itemFocusedClass: ClassDefinition;
/** Class of the menu item root element when disabled */
itemDisabledClass: ClassDefinition;
/** Class of the menu button element */
itemButtonClass: ClassDefinition;
/** Class of the menu button element when active */
itemButtonActiveClass: ClassDefinition;
/** Class of the menu button element when focused */
itemButtonFocusedClass: ClassDefinition;
/** Class of the menu button element when disabled */
itemButtonDisabledClass: ClassDefinition;
/** Class of the menu button element with icon */
itemButtonIconClass: ClassDefinition;
/** Class of the menu item submenu element */
itemSubmenuClass: ClassDefinition;
}>;
modal?: ComponentConfigBase &
Partial<{
/** Width of the Modal */
width: number | string;
/** Custom animation (transition name) */
animation: string;
/** Show an overlay */
overlay: boolean;
/** Is Modal cancleable by clicking 'X', pressing escape or clicking outside */
cancelable: boolean | string[];
/** Set `true` to remove the body scrollbar.
When `false`, a non-scrollable scrollbar will be kept to avoid moving the background,
but will set the body to a fixed position, which may break some layouts. */
clipScroll: boolean;
/** Trap focus inside the modal */
trapFocus: boolean;
/** This enables the `alertdialog` role, allowing assistive technologies and browsers to distinguish alert modals from other modals.
Alert modals interrupt the user's workflow to communicate an important messages and acquire an explicit response. */
alert: boolean;
/** Accessibility aria-label to be passed to the div wrapper element */
ariaLabel: string;
/** Automatically focus modal when active */
autoFocus: boolean;
/** Close icon name */
closeIcon: string;
/** Size of close icon */
closeIconSize: string;
/** Accessibility label for the close button */
ariaCloseLabel: string;
/** Mobile breakpoint as `max-width` value */
mobileBreakpoint: string;
/** Append the component to another part of the DOM.
Set `true` to append the component to the body.
In addition, any CSS selector string or an actual DOM node can be used. */
teleport: boolean | object | string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element when on mobile */
mobileClass: ClassDefinition;
/** Class of the root element when active */
activeClass: ClassDefinition;
/** Class of the overlay element */
overlayClass: ClassDefinition;
/** Class of the content element */
contentClass: ClassDefinition;
/** Class of the content element when fullscreen */
fullScreenClass: ClassDefinition;
/** Class of the close button element */
closeClass: ClassDefinition;
/** Class of the body when modal is open and scroll is clipped */
scrollClipClass: ClassDefinition;
/** Class of the body when modal is open and scroll is keeped */
scrollKeepClass: ClassDefinition;
}>;
notification?: ComponentConfigBase &
Partial<{
/** Color of the control */
variant: string;
/** Enable rounded style */
rounded: boolean;
/** Which position the notification will appear when programmatically */
position: "bottom-left" | "bottom-right" | "bottom" | "top-left" | "top-right" | "top";
/** Custom animation (transition name) */
animation: string;
/** Icon pack to use */
iconPack: string;
/** Icon size */
iconSize: string;
/** Close icon name */
closeIcon: string;
/** Size of close icon */
closeIconSize: string;
/** Accessibility label for the close button */
ariaCloseLabel: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element when positioned */
positionClass: ClassDefinition;
/** Class of the root element with variant */
variantClass: ClassDefinition;
/** Class of the root element when rounded */
roundedClass: ClassDefinition;
/** Class of the close button element */
closeClass: ClassDefinition;
/** Class of the content element */
contentClass: ClassDefinition;
/** Class of the icon element on the left */
iconClass: ClassDefinition;
/** Class of the wrapper element */
wrapperClass: ClassDefinition;
/** Hide notification after duration (in miliseconds) */
duration: number;
/** If notice should queue with others notices. */
queue: boolean;
/** Class of the notice wrapper element */
noticeClass: ClassDefinition;
/** Class of the notice wrapper element when positioned */
noticePositionClass: ClassDefinition;
/** Class of the notice container element */
noticeContainerClass: ClassDefinition;
}>;
pagination?: ComponentConfigBase &
Partial<{
/** Items count for each page */
perPage: number | string;
/** Pagination size */
size: string;
/** Enable simple style */
simple: boolean;
/** Enable rounded button style */
rounded: boolean;
/** Buttons order */
order: "centered" | "left" | "right";
/** Pagination button tag name */
buttonTag: DynamicComponent;
/** Icon pack to use */
iconPack: string;
/** Icon to use for previous button */
iconPrev: string;
/** Icon to use for next button */
iconNext: string;
/** Mobile breakpoint as `max-width` value */
mobileBreakpoint: string;
/** Accessibility label for the next page button. */
ariaNextLabel: string;
/** Accessibility label for the previous page button. */
ariaPreviousLabel: string;
/** Accessibility label for the page button. */
ariaPageLabel: string;
/** Accessibility label for the current page button. */
ariaCurrentLabel: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element when on mobile */
mobileClass: ClassDefinition;
/** Class of the root element with order */
orderClass: ClassDefinition;
/** Class of the root element with size */
sizeClass: ClassDefinition;
/** Class of the root element when in `simple` mode */
simpleClass: ClassDefinition;
/** Class of the page info in `simple` mode */
infoClass: ClassDefinition;
/** Class of the items list element */
listClass: ClassDefinition;
/** Class of the list item element */
listItemClass: ClassDefinition;
/** Class of the ellipsis element */
ellipsisClass: ClassDefinition;
/** Class of the button element */
buttonClass: ClassDefinition;
/** Class of the button element when rounded */
roundedClass: ClassDefinition;
/** Class of the current button element */
buttonCurrentClass: ClassDefinition;
/** Class of the prev button element */
buttonPrevClass: ClassDefinition;
/** Class of the next button element */
buttonNextClass: ClassDefinition;
/** Class of the prev or next button when disabled */
buttonDisabledClass: ClassDefinition;
}>;
radio?: ComponentConfigBase &
Partial<{
/** Color of the control */
variant: string;
/** Size of the control */
size: string;
/** Same as native autocomplete options to use in HTML5 validation */
autocomplete: string;
/** Class of the root element */
rootClass: ClassDefinition;
/** Class of the root element with size */
sizeClass: ClassDefinition;
/** Class of the root element with variant */
variantClass: ClassDefinition;
/** Class of the root element when disabled */
disabledClass: ClassDefinition;
/** Class of the root element when checked */
checkedClass: ClassDefinition;
/** Class of the native input element */
inputClass: ClassDefinition;
/** Class of the label element */
labelClass: ClassDefinition;
}>;
select?: ComponentConfigBase &
Partial<{
/** Vertical size of input */
size: string;
/** Color of the control */
variant: string;