/** * Copyright (c) Matthieu Jabbour. All Rights Reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * */ // eslint-disable-next-line @typescript-eslint/no-explicit-any type Generic = Record; declare module 'sonar-ui' { /** * Builds a complete class name from the given array of modifiers. * * @param {string} baseClass Base class to prefix any modifier with. * * @param {string[]} modifiers Modifiers to apply to the base class. * * @returns {string} Generated modifiers list. */ export function buildClass(baseClass: string, modifiers: string[]): string; /** * Generates a random HTML id. * * @returns {string} The generated id. */ export function generateRandomId(): string; /** * Parses the given markdown-flavored string into HTML. * * @param {string} text Markdown to parse into HTML. * * @param {boolean} [light = true] Wether to parse complexe tags (images, blockquotes, ...). * * @return {string} Generated HTML. * */ export function markdown(text: string, light?: boolean): string; } declare module 'sonar-ui/vue' { import Vue from 'vue'; import { ExtendedVue } from 'vue/types/vue.d'; /** * Builds a complete class name from the given array of modifiers. * * @param {string} baseClass Base class to prefix any modifier with. * * @param {string[]} modifiers Modifiers to apply to the base class. * * @returns {string} Generated modifiers list. */ export function buildClass(baseClass: string, modifiers: string[]): string; /** * Generates a random HTML id. * * @returns {string} The generated id. */ export function generateRandomId(): string; /** * Parses the given markdown-flavored string into HTML. * * @param {string} text Markdown to parse into HTML. * * @param {boolean} [light = true] Wether to parse complexe tags (images, blockquotes, ...). * * @return {string} Generated HTML. * */ export function markdown(text: string, light?: boolean): string; /** * Dropdown. */ export const UIDropdown: ExtendedVue; /** * Button. */ export const UIButton: ExtendedVue; /** * Checkbox. */ export const UICheckbox: ExtendedVue; /** * File uploader. */ export const UIFileUploader: ExtendedVue; /** * Image. */ export const UIImage: ExtendedVue; /** * Link. */ export const UILink: ExtendedVue; /** * P. */ export const UIP: ExtendedVue; /** * Radio. */ export const UIRadio: ExtendedVue; /** * Textarea. */ export const UITextarea: ExtendedVue string; }>; /** * Textfield. */ export const UITextfield: ExtendedVue string; type: 'text' | 'email' | 'number' | 'password' | 'search' | 'tel' | 'url'; }>; /** * Title. */ export const UITitle: ExtendedVue; } declare module 'sonar-ui/react' { import { MouseEvent } from 'react'; import * as PropTypes from 'prop-types'; /** * Builds a complete class name from the given array of modifiers. * * @param {string} baseClass Base class to prefix any modifier with. * * @param {string[]} modifiers Modifiers to apply to the base class. * * @returns {string} Generated modifiers list. */ export function buildClass(baseClass: string, modifiers: string[]): string; /** * Generates a random HTML id. * * @returns {string} The generated id. */ export function generateRandomId(): string; /** * Parses the given markdown-flavored string into HTML. * * @param {string} text Markdown to parse into HTML. * * @param {boolean} [light = true] Wether to parse complexe tags (images, blockquotes, ...). * * @return {string} Generated HTML. * */ export function markdown(text: string, light?: boolean): string; /** * Button. */ export function UIButton(props: PropTypes.InferProps<{ id: PropTypes.Requireable; icon: PropTypes.Requireable; label: PropTypes.Requireable; onClick: PropTypes.Requireable<(event: React.MouseEvent) => void>; onFocus: PropTypes.Requireable<(event: React.MouseEvent) => void>; modifiers: PropTypes.Requireable; type: PropTypes.Requireable; iconPosition: PropTypes.Requireable; }>): JSX.Element; /** * Checkbox. */ export function UICheckbox(props: PropTypes.InferProps<{ id: PropTypes.Requireable; label: PropTypes.Requireable; helper: PropTypes.Requireable; onChange: PropTypes.Requireable<(value: string[]) => void>; onFocus: PropTypes.Requireable<(value: string) => void>; modifiers: PropTypes.Requireable; name: PropTypes.Validator; value: PropTypes.Requireable; options: PropTypes.InferProps<{ value: PropTypes.Validator; label: PropTypes.Validator; disabled: PropTypes.Requireable; }>[]; }>): JSX.Element; /** * Dropdown. */ export function UIDropdown(props: PropTypes.InferProps<{ id: PropTypes.Requireable; icon: PropTypes.Requireable; label: PropTypes.Requireable; onFocus: PropTypes.Requireable<(value?: string) => void>; multiple: PropTypes.Requireable; onChange: PropTypes.Requireable<(value: string[]) => void>; helper: PropTypes.Requireable; modifiers: PropTypes.Requireable; name: PropTypes.Validator; value: PropTypes.Requireable; options: PropTypes.InferProps<{ type: PropTypes.Validator; value: PropTypes.Requireable; label: PropTypes.Requireable; disabled: PropTypes.Requireable; }>[]; }>): JSX.Element; /** * File uploader. */ export function UIFileUploader(props: PropTypes.InferProps<{ id: PropTypes.Requireable; icon: PropTypes.Requireable; label: PropTypes.Requireable; onFocus: PropTypes.Requireable<(value: string[]) => void>; helper: PropTypes.Requireable; accept: PropTypes.Requireable; value: PropTypes.Requireable; onChange: PropTypes.Requireable<(value: File[]) => void>; multiple: PropTypes.Requireable; modifiers: PropTypes.Requireable; placeholder: PropTypes.Requireable; name: PropTypes.Validator; iconPosition: PropTypes.Requireable; }>): JSX.Element; /** * Image. */ export function UIImage(props: PropTypes.InferProps<{ id: PropTypes.Requireable; itemProp: PropTypes.Requireable; modifiers: PropTypes.Requireable; src: PropTypes.Validator; alt: PropTypes.Validator; ratio: PropTypes.Validator; }>): JSX.Element; /** * Link. */ export function UILink(props: PropTypes.InferProps<{ rel: PropTypes.Requireable; id: PropTypes.Requireable; title: PropTypes.Requireable; onClick: PropTypes.Requireable<(event: MouseEvent) => void>; modifiers: PropTypes.Requireable; href: PropTypes.Validator; label: PropTypes.Validator; target: PropTypes.Requireable; }>): JSX.Element; /** * Paragraph. */ export function UIP(props: PropTypes.InferProps<{ id: PropTypes.Requireable; modifiers: PropTypes.Requireable; label: PropTypes.Validator; itemProp: PropTypes.Requireable; }>): JSX.Element; /** * Radio. */ export function UIRadio(props: PropTypes.InferProps<{ id: PropTypes.Requireable; value: PropTypes.Requireable; label: PropTypes.Requireable; onFocus: PropTypes.Requireable<(value: string) => void>; helper: PropTypes.Requireable; onChange: PropTypes.Requireable<(value: string) => void>; modifiers: PropTypes.Requireable; name: PropTypes.Validator; options: PropTypes.InferProps<{ value: PropTypes.Validator; label: PropTypes.Validator; disabled: PropTypes.Requireable; }>[]; }>): JSX.Element; /** * Textarea. */ export function UITextarea(props: PropTypes.InferProps<{ id: PropTypes.Requireable; cols: PropTypes.Requireable; rows: PropTypes.Requireable; onBlur: PropTypes.Requireable<(value: string) => void>; onFocus: PropTypes.Requireable<(value: string) => void>; onChange: PropTypes.Requireable<(value: string) => void>; onPaste: PropTypes.Requireable<(event: React.ClipboardEvent) => void>; onKeyDown: PropTypes.Requireable<(event: React.KeyboardEvent) => void>; value: PropTypes.Requireable; label: PropTypes.Requireable; helper: PropTypes.Requireable; readonly: PropTypes.Requireable; maxlength: PropTypes.Requireable; modifiers: PropTypes.Requireable; placeholder: PropTypes.Requireable; autocomplete: PropTypes.Requireable; name: PropTypes.Validator; debounceTimeout: PropTypes.Requireable; transform: PropTypes.Requireable<(value: string) => string>; }>): JSX.Element; /** * Textfield. */ export function UITextfield(props: PropTypes.InferProps<{ id: PropTypes.Requireable; min: PropTypes.Requireable; max: PropTypes.Requireable; step: PropTypes.Requireable; onBlur: PropTypes.Requireable<(value: string) => void>; icon: PropTypes.Requireable; size: PropTypes.Requireable; onFocus: PropTypes.Requireable<(value: string) => void>; value: PropTypes.Requireable; label: PropTypes.Requireable; helper: PropTypes.Requireable; onChange: PropTypes.Requireable<(value: string) => void>; onPaste: PropTypes.Requireable<(event: React.ClipboardEvent) => void>; onKeyDown: PropTypes.Requireable<(event: React.KeyboardEvent) => void>; readonly: PropTypes.Requireable; maxlength: PropTypes.Requireable; modifiers: PropTypes.Requireable; onIconClick: PropTypes.Requireable<() => void>; placeholder: PropTypes.Requireable; autocomplete: PropTypes.Requireable; name: PropTypes.Validator; iconPosition: PropTypes.Requireable; type: PropTypes.Requireable; debounceTimeout: PropTypes.Requireable; transform: PropTypes.Requireable<(value: string) => string>; }>): JSX.Element; /** * Title. */ export function UITitle(props: PropTypes.InferProps<{ id: PropTypes.Requireable; itemProp: PropTypes.Requireable; modifiers: PropTypes.Requireable; label: PropTypes.Validator; level: PropTypes.Requireable; }>): JSX.Element; }