index.d.mts 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984
  1. import * as vue from 'vue';
  2. import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, PropType, ComponentPublicInstance, FunctionalComponent, DirectiveBinding, WritableComputedRef, Ref, CSSProperties, ComputedRef } from 'vue';
  3. type ClassValue = any;
  4. type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = {
  5. $children?: (VNodeChild | (T extends {
  6. default: infer V;
  7. } ? V : {}) | {
  8. [K in keyof T]?: T[K];
  9. });
  10. 'v-slots'?: {
  11. [K in keyof T]?: T[K] | false;
  12. };
  13. } & {
  14. [K in keyof T as `v-slot:${K & string}`]?: T[K] | false;
  15. };
  16. type RawSlots = Record<string, unknown>;
  17. type Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild;
  18. type VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];
  19. type MakeInternalSlots<T extends RawSlots> = {
  20. [K in keyof T]: Slot<T[K]>;
  21. };
  22. type MakeSlots<T extends RawSlots> = {
  23. [K in keyof T]: VueSlot<T[K]>;
  24. };
  25. type GenericProps<Props, Slots extends Record<string, unknown>> = {
  26. $props: Props & SlotsToProps<Slots>;
  27. $slots: MakeSlots<Slots>;
  28. };
  29. interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
  30. filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
  31. }
  32. declare function deepEqual(a: any, b: any): boolean;
  33. type EventProp<T extends any[] = any[], F = (...args: T) => void> = F;
  34. declare const EventProp: <T extends any[] = any[]>() => PropType<EventProp<T>>;
  35. type Density = null | 'default' | 'comfortable' | 'compact';
  36. type JSXComponent<Props = any> = {
  37. new (): ComponentPublicInstance<Props>;
  38. } | FunctionalComponent<Props>;
  39. type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
  40. declare const IconValue: PropType<IconValue>;
  41. interface RippleDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {
  42. value?: boolean | {
  43. class: string;
  44. };
  45. modifiers: {
  46. center?: boolean;
  47. circle?: boolean;
  48. stop?: boolean;
  49. };
  50. }
  51. type SelectionControlSlot = {
  52. model: WritableComputedRef<boolean>;
  53. textColorClasses: Ref<string[]>;
  54. textColorStyles: Ref<CSSProperties>;
  55. backgroundColorClasses: Ref<string[]>;
  56. backgroundColorStyles: Ref<CSSProperties>;
  57. inputNode: VNode;
  58. icon: IconValue | undefined;
  59. props: {
  60. onBlur: (e: Event) => void;
  61. onFocus: (e: FocusEvent) => void;
  62. id: string;
  63. };
  64. };
  65. type VSelectionControlSlots = {
  66. default: {
  67. backgroundColorClasses: Ref<string[]>;
  68. backgroundColorStyles: Ref<CSSProperties>;
  69. };
  70. label: {
  71. label: string | undefined;
  72. props: Record<string, unknown>;
  73. };
  74. input: SelectionControlSlot;
  75. };
  76. type ValidationResult = string | boolean;
  77. type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
  78. type ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input';
  79. type ValidateOn = ValidateOnValue | `${ValidateOnValue} lazy` | `${ValidateOnValue} eager` | `lazy ${ValidateOnValue}` | `eager ${ValidateOnValue}` | 'lazy' | 'eager';
  80. interface ValidationProps {
  81. disabled: boolean | null;
  82. error: boolean;
  83. errorMessages: string | readonly string[] | null;
  84. focused: boolean;
  85. maxErrors: string | number;
  86. name: string | undefined;
  87. label: string | undefined;
  88. readonly: boolean | null;
  89. rules: readonly ValidationRule[];
  90. modelValue: any;
  91. 'onUpdate:modelValue': EventProp | undefined;
  92. validateOn?: ValidateOn;
  93. validationValue: any;
  94. }
  95. type VMessageSlot = {
  96. message: string;
  97. };
  98. interface VInputSlot {
  99. id: ComputedRef<string>;
  100. messagesId: ComputedRef<string>;
  101. isDirty: ComputedRef<boolean>;
  102. isDisabled: ComputedRef<boolean>;
  103. isReadonly: ComputedRef<boolean>;
  104. isPristine: Ref<boolean>;
  105. isValid: ComputedRef<boolean | null>;
  106. isValidating: Ref<boolean>;
  107. reset: () => void;
  108. resetValidation: () => void;
  109. validate: () => void;
  110. }
  111. type VInputSlots = {
  112. default: VInputSlot;
  113. prepend: VInputSlot;
  114. append: VInputSlot;
  115. details: VInputSlot;
  116. message: VMessageSlot;
  117. };
  118. type VCheckboxSlots = Omit<VInputSlots, 'default'> & VSelectionControlSlots;
  119. declare const VCheckbox: {
  120. new (...args: any[]): vue.CreateComponentPublicInstance<{
  121. error: boolean;
  122. direction: "horizontal" | "vertical";
  123. style: vue.StyleValue;
  124. disabled: boolean | null;
  125. multiple: boolean | null;
  126. readonly: boolean | null;
  127. indeterminate: boolean;
  128. messages: string | readonly string[];
  129. focused: boolean;
  130. errorMessages: string | readonly string[] | null;
  131. maxErrors: string | number;
  132. rules: readonly ValidationRule[];
  133. density: Density;
  134. ripple: boolean | {
  135. class: string;
  136. } | undefined;
  137. falseIcon: IconValue;
  138. trueIcon: IconValue;
  139. valueComparator: typeof deepEqual;
  140. indeterminateIcon: IconValue;
  141. centerAffix: boolean;
  142. hideSpinButtons: boolean;
  143. persistentHint: boolean;
  144. } & {
  145. name?: string | undefined;
  146. type?: string | undefined;
  147. id?: string | undefined;
  148. width?: string | number | undefined;
  149. color?: string | undefined;
  150. maxWidth?: string | number | undefined;
  151. minWidth?: string | number | undefined;
  152. value?: any;
  153. label?: string | undefined;
  154. class?: any;
  155. theme?: string | undefined;
  156. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  157. validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
  158. validationValue?: any;
  159. baseColor?: string | undefined;
  160. prependIcon?: IconValue | undefined;
  161. appendIcon?: IconValue | undefined;
  162. defaultsTarget?: string | undefined;
  163. trueValue?: any;
  164. falseValue?: any;
  165. 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
  166. 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
  167. hint?: string | undefined;
  168. hideDetails?: boolean | "auto" | undefined;
  169. } & {
  170. "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
  171. }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
  172. 'update:modelValue': (value: any) => true;
  173. 'update:focused': (focused: boolean) => true;
  174. }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "v-slot:prepend" | "v-slot:append" | "update:modelValue" | "v-slot:input" | "v-slot:label" | "v-slot:message" | "v-slot:details">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
  175. error: boolean;
  176. direction: "horizontal" | "vertical";
  177. style: vue.StyleValue;
  178. disabled: boolean | null;
  179. multiple: boolean | null;
  180. readonly: boolean | null;
  181. indeterminate: boolean;
  182. messages: string | readonly string[];
  183. focused: boolean;
  184. errorMessages: string | readonly string[] | null;
  185. maxErrors: string | number;
  186. rules: readonly ValidationRule[];
  187. density: Density;
  188. ripple: boolean | {
  189. class: string;
  190. } | undefined;
  191. falseIcon: IconValue;
  192. trueIcon: IconValue;
  193. valueComparator: typeof deepEqual;
  194. indeterminateIcon: IconValue;
  195. centerAffix: boolean;
  196. hideSpinButtons: boolean;
  197. persistentHint: boolean;
  198. } & {
  199. name?: string | undefined;
  200. type?: string | undefined;
  201. id?: string | undefined;
  202. width?: string | number | undefined;
  203. color?: string | undefined;
  204. maxWidth?: string | number | undefined;
  205. minWidth?: string | number | undefined;
  206. value?: any;
  207. label?: string | undefined;
  208. class?: any;
  209. theme?: string | undefined;
  210. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  211. validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
  212. validationValue?: any;
  213. baseColor?: string | undefined;
  214. prependIcon?: IconValue | undefined;
  215. appendIcon?: IconValue | undefined;
  216. defaultsTarget?: string | undefined;
  217. trueValue?: any;
  218. falseValue?: any;
  219. 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
  220. 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
  221. hint?: string | undefined;
  222. hideDetails?: boolean | "auto" | undefined;
  223. } & {
  224. "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
  225. }, {
  226. error: boolean;
  227. direction: "horizontal" | "vertical";
  228. style: vue.StyleValue;
  229. disabled: boolean | null;
  230. multiple: boolean | null;
  231. readonly: boolean | null;
  232. indeterminate: boolean;
  233. messages: string | readonly string[];
  234. focused: boolean;
  235. errorMessages: string | readonly string[] | null;
  236. maxErrors: string | number;
  237. rules: readonly ValidationRule[];
  238. density: Density;
  239. ripple: boolean | {
  240. class: string;
  241. } | undefined;
  242. falseIcon: IconValue;
  243. trueIcon: IconValue;
  244. valueComparator: typeof deepEqual;
  245. indeterminateIcon: IconValue;
  246. centerAffix: boolean;
  247. hideSpinButtons: boolean;
  248. persistentHint: boolean;
  249. }, true, {}, vue.SlotsType<Partial<{
  250. message: (arg: VMessageSlot) => vue.VNode[];
  251. details: (arg: VInputSlot) => vue.VNode[];
  252. append: (arg: VInputSlot) => vue.VNode[];
  253. prepend: (arg: VInputSlot) => vue.VNode[];
  254. default: (arg: {
  255. backgroundColorClasses: vue.Ref<string[]>;
  256. backgroundColorStyles: vue.Ref<vue.CSSProperties>;
  257. }) => vue.VNode[];
  258. label: (arg: {
  259. label: string | undefined;
  260. props: Record<string, unknown>;
  261. }) => vue.VNode[];
  262. input: (arg: SelectionControlSlot) => vue.VNode[];
  263. }>>, {
  264. P: {};
  265. B: {};
  266. D: {};
  267. C: {};
  268. M: {};
  269. Defaults: {};
  270. }, {
  271. error: boolean;
  272. direction: "horizontal" | "vertical";
  273. style: vue.StyleValue;
  274. disabled: boolean | null;
  275. multiple: boolean | null;
  276. readonly: boolean | null;
  277. indeterminate: boolean;
  278. messages: string | readonly string[];
  279. focused: boolean;
  280. errorMessages: string | readonly string[] | null;
  281. maxErrors: string | number;
  282. rules: readonly ValidationRule[];
  283. density: Density;
  284. ripple: boolean | {
  285. class: string;
  286. } | undefined;
  287. falseIcon: IconValue;
  288. trueIcon: IconValue;
  289. valueComparator: typeof deepEqual;
  290. indeterminateIcon: IconValue;
  291. centerAffix: boolean;
  292. hideSpinButtons: boolean;
  293. persistentHint: boolean;
  294. } & {
  295. name?: string | undefined;
  296. type?: string | undefined;
  297. id?: string | undefined;
  298. width?: string | number | undefined;
  299. color?: string | undefined;
  300. maxWidth?: string | number | undefined;
  301. minWidth?: string | number | undefined;
  302. value?: any;
  303. label?: string | undefined;
  304. class?: any;
  305. theme?: string | undefined;
  306. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  307. validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
  308. validationValue?: any;
  309. baseColor?: string | undefined;
  310. prependIcon?: IconValue | undefined;
  311. appendIcon?: IconValue | undefined;
  312. defaultsTarget?: string | undefined;
  313. trueValue?: any;
  314. falseValue?: any;
  315. 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
  316. 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
  317. hint?: string | undefined;
  318. hideDetails?: boolean | "auto" | undefined;
  319. } & {
  320. "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
  321. }, {}, {}, {}, {}, {
  322. error: boolean;
  323. direction: "horizontal" | "vertical";
  324. style: vue.StyleValue;
  325. disabled: boolean | null;
  326. multiple: boolean | null;
  327. readonly: boolean | null;
  328. indeterminate: boolean;
  329. messages: string | readonly string[];
  330. focused: boolean;
  331. errorMessages: string | readonly string[] | null;
  332. maxErrors: string | number;
  333. rules: readonly ValidationRule[];
  334. density: Density;
  335. ripple: boolean | {
  336. class: string;
  337. } | undefined;
  338. falseIcon: IconValue;
  339. trueIcon: IconValue;
  340. valueComparator: typeof deepEqual;
  341. indeterminateIcon: IconValue;
  342. centerAffix: boolean;
  343. hideSpinButtons: boolean;
  344. persistentHint: boolean;
  345. }>;
  346. __isFragment?: never;
  347. __isTeleport?: never;
  348. __isSuspense?: never;
  349. } & vue.ComponentOptionsBase<{
  350. error: boolean;
  351. direction: "horizontal" | "vertical";
  352. style: vue.StyleValue;
  353. disabled: boolean | null;
  354. multiple: boolean | null;
  355. readonly: boolean | null;
  356. indeterminate: boolean;
  357. messages: string | readonly string[];
  358. focused: boolean;
  359. errorMessages: string | readonly string[] | null;
  360. maxErrors: string | number;
  361. rules: readonly ValidationRule[];
  362. density: Density;
  363. ripple: boolean | {
  364. class: string;
  365. } | undefined;
  366. falseIcon: IconValue;
  367. trueIcon: IconValue;
  368. valueComparator: typeof deepEqual;
  369. indeterminateIcon: IconValue;
  370. centerAffix: boolean;
  371. hideSpinButtons: boolean;
  372. persistentHint: boolean;
  373. } & {
  374. name?: string | undefined;
  375. type?: string | undefined;
  376. id?: string | undefined;
  377. width?: string | number | undefined;
  378. color?: string | undefined;
  379. maxWidth?: string | number | undefined;
  380. minWidth?: string | number | undefined;
  381. value?: any;
  382. label?: string | undefined;
  383. class?: any;
  384. theme?: string | undefined;
  385. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  386. validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
  387. validationValue?: any;
  388. baseColor?: string | undefined;
  389. prependIcon?: IconValue | undefined;
  390. appendIcon?: IconValue | undefined;
  391. defaultsTarget?: string | undefined;
  392. trueValue?: any;
  393. falseValue?: any;
  394. 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
  395. 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
  396. hint?: string | undefined;
  397. hideDetails?: boolean | "auto" | undefined;
  398. } & {
  399. "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
  400. }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
  401. 'update:modelValue': (value: any) => true;
  402. 'update:focused': (focused: boolean) => true;
  403. }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "v-slot:prepend" | "v-slot:append" | "update:modelValue" | "v-slot:input" | "v-slot:label" | "v-slot:message" | "v-slot:details">, string, {
  404. error: boolean;
  405. direction: "horizontal" | "vertical";
  406. style: vue.StyleValue;
  407. disabled: boolean | null;
  408. multiple: boolean | null;
  409. readonly: boolean | null;
  410. indeterminate: boolean;
  411. messages: string | readonly string[];
  412. focused: boolean;
  413. errorMessages: string | readonly string[] | null;
  414. maxErrors: string | number;
  415. rules: readonly ValidationRule[];
  416. density: Density;
  417. ripple: boolean | {
  418. class: string;
  419. } | undefined;
  420. falseIcon: IconValue;
  421. trueIcon: IconValue;
  422. valueComparator: typeof deepEqual;
  423. indeterminateIcon: IconValue;
  424. centerAffix: boolean;
  425. hideSpinButtons: boolean;
  426. persistentHint: boolean;
  427. }, {}, string, vue.SlotsType<Partial<{
  428. message: (arg: VMessageSlot) => vue.VNode[];
  429. details: (arg: VInputSlot) => vue.VNode[];
  430. append: (arg: VInputSlot) => vue.VNode[];
  431. prepend: (arg: VInputSlot) => vue.VNode[];
  432. default: (arg: {
  433. backgroundColorClasses: vue.Ref<string[]>;
  434. backgroundColorStyles: vue.Ref<vue.CSSProperties>;
  435. }) => vue.VNode[];
  436. label: (arg: {
  437. label: string | undefined;
  438. props: Record<string, unknown>;
  439. }) => vue.VNode[];
  440. input: (arg: SelectionControlSlot) => vue.VNode[];
  441. }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T>(props: {
  442. modelValue?: T | null;
  443. "onUpdate:modelValue"?: (value: T | null) => void;
  444. }, slots: VCheckboxSlots) => GenericProps<typeof props, typeof slots>) & FilterPropsOptions<{
  445. name: StringConstructor;
  446. type: StringConstructor;
  447. error: BooleanConstructor;
  448. id: StringConstructor;
  449. color: StringConstructor;
  450. value: null;
  451. label: StringConstructor;
  452. style: {
  453. type: vue.PropType<vue.StyleValue>;
  454. default: null;
  455. };
  456. disabled: {
  457. type: vue.PropType<boolean | null>;
  458. default: null;
  459. };
  460. multiple: {
  461. type: vue.PropType<boolean | null>;
  462. default: null;
  463. };
  464. readonly: {
  465. type: vue.PropType<boolean | null>;
  466. default: null;
  467. };
  468. class: vue.PropType<ClassValue>;
  469. theme: StringConstructor;
  470. indeterminate: BooleanConstructor;
  471. modelValue: null;
  472. density: {
  473. type: vue.PropType<Density>;
  474. default: string;
  475. validator: (v: any) => boolean;
  476. };
  477. baseColor: StringConstructor;
  478. ripple: {
  479. type: vue.PropType<RippleDirectiveBinding["value"]>;
  480. default: boolean;
  481. };
  482. defaultsTarget: StringConstructor;
  483. falseIcon: {
  484. type: vue.PropType<IconValue>;
  485. default: NonNullable<IconValue>;
  486. };
  487. trueIcon: {
  488. type: vue.PropType<IconValue>;
  489. default: NonNullable<IconValue>;
  490. };
  491. valueComparator: {
  492. type: vue.PropType<typeof deepEqual>;
  493. default: typeof deepEqual;
  494. };
  495. trueValue: null;
  496. falseValue: null;
  497. indeterminateIcon: {
  498. type: vue.PropType<IconValue>;
  499. default: string;
  500. };
  501. focused: BooleanConstructor;
  502. 'onUpdate:focused': vue.PropType<(args_0: boolean) => void>;
  503. errorMessages: {
  504. type: vue.PropType<string | readonly string[] | null>;
  505. default: () => never[];
  506. };
  507. maxErrors: {
  508. type: (StringConstructor | NumberConstructor)[];
  509. default: number;
  510. };
  511. rules: {
  512. type: vue.PropType<readonly ValidationRule[]>;
  513. default: () => never[];
  514. };
  515. validateOn: vue.PropType<ValidationProps["validateOn"]>;
  516. validationValue: null;
  517. width: (StringConstructor | NumberConstructor)[];
  518. maxWidth: (StringConstructor | NumberConstructor)[];
  519. minWidth: (StringConstructor | NumberConstructor)[];
  520. appendIcon: vue.PropType<IconValue>;
  521. centerAffix: {
  522. type: BooleanConstructor;
  523. default: boolean;
  524. };
  525. prependIcon: vue.PropType<IconValue>;
  526. hideDetails: vue.PropType<boolean | "auto">;
  527. hideSpinButtons: BooleanConstructor;
  528. hint: StringConstructor;
  529. persistentHint: BooleanConstructor;
  530. messages: {
  531. type: vue.PropType<string | readonly string[]>;
  532. default: () => never[];
  533. };
  534. direction: {
  535. type: vue.PropType<"horizontal" | "vertical">;
  536. default: string;
  537. validator: (v: any) => boolean;
  538. };
  539. 'onClick:prepend': vue.PropType<(args_0: MouseEvent) => void>;
  540. 'onClick:append': vue.PropType<(args_0: MouseEvent) => void>;
  541. }, vue.ExtractPropTypes<{
  542. name: StringConstructor;
  543. type: StringConstructor;
  544. error: BooleanConstructor;
  545. id: StringConstructor;
  546. color: StringConstructor;
  547. value: null;
  548. label: StringConstructor;
  549. style: {
  550. type: vue.PropType<vue.StyleValue>;
  551. default: null;
  552. };
  553. disabled: {
  554. type: vue.PropType<boolean | null>;
  555. default: null;
  556. };
  557. multiple: {
  558. type: vue.PropType<boolean | null>;
  559. default: null;
  560. };
  561. readonly: {
  562. type: vue.PropType<boolean | null>;
  563. default: null;
  564. };
  565. class: vue.PropType<ClassValue>;
  566. theme: StringConstructor;
  567. indeterminate: BooleanConstructor;
  568. modelValue: null;
  569. density: {
  570. type: vue.PropType<Density>;
  571. default: string;
  572. validator: (v: any) => boolean;
  573. };
  574. baseColor: StringConstructor;
  575. ripple: {
  576. type: vue.PropType<RippleDirectiveBinding["value"]>;
  577. default: boolean;
  578. };
  579. defaultsTarget: StringConstructor;
  580. falseIcon: {
  581. type: vue.PropType<IconValue>;
  582. default: NonNullable<IconValue>;
  583. };
  584. trueIcon: {
  585. type: vue.PropType<IconValue>;
  586. default: NonNullable<IconValue>;
  587. };
  588. valueComparator: {
  589. type: vue.PropType<typeof deepEqual>;
  590. default: typeof deepEqual;
  591. };
  592. trueValue: null;
  593. falseValue: null;
  594. indeterminateIcon: {
  595. type: vue.PropType<IconValue>;
  596. default: string;
  597. };
  598. focused: BooleanConstructor;
  599. 'onUpdate:focused': vue.PropType<(args_0: boolean) => void>;
  600. errorMessages: {
  601. type: vue.PropType<string | readonly string[] | null>;
  602. default: () => never[];
  603. };
  604. maxErrors: {
  605. type: (StringConstructor | NumberConstructor)[];
  606. default: number;
  607. };
  608. rules: {
  609. type: vue.PropType<readonly ValidationRule[]>;
  610. default: () => never[];
  611. };
  612. validateOn: vue.PropType<ValidationProps["validateOn"]>;
  613. validationValue: null;
  614. width: (StringConstructor | NumberConstructor)[];
  615. maxWidth: (StringConstructor | NumberConstructor)[];
  616. minWidth: (StringConstructor | NumberConstructor)[];
  617. appendIcon: vue.PropType<IconValue>;
  618. centerAffix: {
  619. type: BooleanConstructor;
  620. default: boolean;
  621. };
  622. prependIcon: vue.PropType<IconValue>;
  623. hideDetails: vue.PropType<boolean | "auto">;
  624. hideSpinButtons: BooleanConstructor;
  625. hint: StringConstructor;
  626. persistentHint: BooleanConstructor;
  627. messages: {
  628. type: vue.PropType<string | readonly string[]>;
  629. default: () => never[];
  630. };
  631. direction: {
  632. type: vue.PropType<"horizontal" | "vertical">;
  633. default: string;
  634. validator: (v: any) => boolean;
  635. };
  636. 'onClick:prepend': vue.PropType<(args_0: MouseEvent) => void>;
  637. 'onClick:append': vue.PropType<(args_0: MouseEvent) => void>;
  638. }>>;
  639. type VCheckbox = InstanceType<typeof VCheckbox>;
  640. declare const VCheckboxBtn: {
  641. new (...args: any[]): vue.CreateComponentPublicInstance<{
  642. inline: boolean;
  643. error: boolean;
  644. style: vue.StyleValue;
  645. disabled: boolean | null;
  646. multiple: boolean | null;
  647. readonly: boolean | null;
  648. indeterminate: boolean;
  649. density: Density;
  650. ripple: boolean | {
  651. class: string;
  652. } | undefined;
  653. falseIcon: IconValue;
  654. trueIcon: IconValue;
  655. valueComparator: typeof deepEqual;
  656. indeterminateIcon: IconValue;
  657. } & {
  658. name?: string | undefined;
  659. type?: string | undefined;
  660. id?: string | undefined;
  661. color?: string | undefined;
  662. value?: any;
  663. label?: string | undefined;
  664. class?: any;
  665. theme?: string | undefined;
  666. baseColor?: string | undefined;
  667. defaultsTarget?: string | undefined;
  668. trueValue?: any;
  669. falseValue?: any;
  670. } & {
  671. "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
  672. }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
  673. 'update:modelValue': (value: any) => true;
  674. 'update:indeterminate': (value: boolean) => true;
  675. }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:input" | "v-slot:label">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
  676. inline: boolean;
  677. error: boolean;
  678. style: vue.StyleValue;
  679. disabled: boolean | null;
  680. multiple: boolean | null;
  681. readonly: boolean | null;
  682. indeterminate: boolean;
  683. density: Density;
  684. ripple: boolean | {
  685. class: string;
  686. } | undefined;
  687. falseIcon: IconValue;
  688. trueIcon: IconValue;
  689. valueComparator: typeof deepEqual;
  690. indeterminateIcon: IconValue;
  691. } & {
  692. name?: string | undefined;
  693. type?: string | undefined;
  694. id?: string | undefined;
  695. color?: string | undefined;
  696. value?: any;
  697. label?: string | undefined;
  698. class?: any;
  699. theme?: string | undefined;
  700. baseColor?: string | undefined;
  701. defaultsTarget?: string | undefined;
  702. trueValue?: any;
  703. falseValue?: any;
  704. } & {
  705. "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
  706. }, {
  707. inline: boolean;
  708. error: boolean;
  709. style: vue.StyleValue;
  710. disabled: boolean | null;
  711. multiple: boolean | null;
  712. readonly: boolean | null;
  713. indeterminate: boolean;
  714. density: Density;
  715. ripple: boolean | {
  716. class: string;
  717. } | undefined;
  718. falseIcon: IconValue;
  719. trueIcon: IconValue;
  720. valueComparator: typeof deepEqual;
  721. indeterminateIcon: IconValue;
  722. }, true, {}, vue.SlotsType<Partial<{
  723. default: (arg: {
  724. backgroundColorClasses: vue.Ref<string[]>;
  725. backgroundColorStyles: vue.Ref<vue.CSSProperties>;
  726. }) => vue.VNode[];
  727. label: (arg: {
  728. label: string | undefined;
  729. props: Record<string, unknown>;
  730. }) => vue.VNode[];
  731. input: (arg: SelectionControlSlot) => vue.VNode[];
  732. }>>, {
  733. P: {};
  734. B: {};
  735. D: {};
  736. C: {};
  737. M: {};
  738. Defaults: {};
  739. }, {
  740. inline: boolean;
  741. error: boolean;
  742. style: vue.StyleValue;
  743. disabled: boolean | null;
  744. multiple: boolean | null;
  745. readonly: boolean | null;
  746. indeterminate: boolean;
  747. density: Density;
  748. ripple: boolean | {
  749. class: string;
  750. } | undefined;
  751. falseIcon: IconValue;
  752. trueIcon: IconValue;
  753. valueComparator: typeof deepEqual;
  754. indeterminateIcon: IconValue;
  755. } & {
  756. name?: string | undefined;
  757. type?: string | undefined;
  758. id?: string | undefined;
  759. color?: string | undefined;
  760. value?: any;
  761. label?: string | undefined;
  762. class?: any;
  763. theme?: string | undefined;
  764. baseColor?: string | undefined;
  765. defaultsTarget?: string | undefined;
  766. trueValue?: any;
  767. falseValue?: any;
  768. } & {
  769. "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
  770. }, {}, {}, {}, {}, {
  771. inline: boolean;
  772. error: boolean;
  773. style: vue.StyleValue;
  774. disabled: boolean | null;
  775. multiple: boolean | null;
  776. readonly: boolean | null;
  777. indeterminate: boolean;
  778. density: Density;
  779. ripple: boolean | {
  780. class: string;
  781. } | undefined;
  782. falseIcon: IconValue;
  783. trueIcon: IconValue;
  784. valueComparator: typeof deepEqual;
  785. indeterminateIcon: IconValue;
  786. }>;
  787. __isFragment?: never;
  788. __isTeleport?: never;
  789. __isSuspense?: never;
  790. } & vue.ComponentOptionsBase<{
  791. inline: boolean;
  792. error: boolean;
  793. style: vue.StyleValue;
  794. disabled: boolean | null;
  795. multiple: boolean | null;
  796. readonly: boolean | null;
  797. indeterminate: boolean;
  798. density: Density;
  799. ripple: boolean | {
  800. class: string;
  801. } | undefined;
  802. falseIcon: IconValue;
  803. trueIcon: IconValue;
  804. valueComparator: typeof deepEqual;
  805. indeterminateIcon: IconValue;
  806. } & {
  807. name?: string | undefined;
  808. type?: string | undefined;
  809. id?: string | undefined;
  810. color?: string | undefined;
  811. value?: any;
  812. label?: string | undefined;
  813. class?: any;
  814. theme?: string | undefined;
  815. baseColor?: string | undefined;
  816. defaultsTarget?: string | undefined;
  817. trueValue?: any;
  818. falseValue?: any;
  819. } & {
  820. "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
  821. }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
  822. 'update:modelValue': (value: any) => true;
  823. 'update:indeterminate': (value: boolean) => true;
  824. }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:input" | "v-slot:label">, string, {
  825. inline: boolean;
  826. error: boolean;
  827. style: vue.StyleValue;
  828. disabled: boolean | null;
  829. multiple: boolean | null;
  830. readonly: boolean | null;
  831. indeterminate: boolean;
  832. density: Density;
  833. ripple: boolean | {
  834. class: string;
  835. } | undefined;
  836. falseIcon: IconValue;
  837. trueIcon: IconValue;
  838. valueComparator: typeof deepEqual;
  839. indeterminateIcon: IconValue;
  840. }, {}, string, vue.SlotsType<Partial<{
  841. default: (arg: {
  842. backgroundColorClasses: vue.Ref<string[]>;
  843. backgroundColorStyles: vue.Ref<vue.CSSProperties>;
  844. }) => vue.VNode[];
  845. label: (arg: {
  846. label: string | undefined;
  847. props: Record<string, unknown>;
  848. }) => vue.VNode[];
  849. input: (arg: SelectionControlSlot) => vue.VNode[];
  850. }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T>(props: {
  851. modelValue?: T;
  852. "onUpdate:modelValue"?: (value: T) => void;
  853. }, slots: VSelectionControlSlots) => GenericProps<typeof props, typeof slots>) & FilterPropsOptions<{
  854. theme: StringConstructor;
  855. density: {
  856. type: vue.PropType<Density>;
  857. default: string;
  858. validator: (v: any) => boolean;
  859. };
  860. class: vue.PropType<ClassValue>;
  861. style: {
  862. type: vue.PropType<vue.StyleValue>;
  863. default: null;
  864. };
  865. color: StringConstructor;
  866. disabled: {
  867. type: vue.PropType<boolean | null>;
  868. default: null;
  869. };
  870. defaultsTarget: StringConstructor;
  871. error: BooleanConstructor;
  872. id: StringConstructor;
  873. inline: BooleanConstructor;
  874. falseIcon: {
  875. type: vue.PropType<IconValue>;
  876. default: NonNullable<IconValue>;
  877. };
  878. trueIcon: {
  879. type: vue.PropType<IconValue>;
  880. default: NonNullable<IconValue>;
  881. };
  882. ripple: {
  883. type: vue.PropType<RippleDirectiveBinding["value"]>;
  884. default: boolean;
  885. };
  886. multiple: {
  887. type: vue.PropType<boolean | null>;
  888. default: null;
  889. };
  890. name: StringConstructor;
  891. readonly: {
  892. type: vue.PropType<boolean | null>;
  893. default: null;
  894. };
  895. modelValue: null;
  896. type: StringConstructor;
  897. valueComparator: {
  898. type: vue.PropType<typeof deepEqual>;
  899. default: typeof deepEqual;
  900. };
  901. label: StringConstructor;
  902. baseColor: StringConstructor;
  903. trueValue: null;
  904. falseValue: null;
  905. value: null;
  906. indeterminate: BooleanConstructor;
  907. indeterminateIcon: {
  908. type: vue.PropType<IconValue>;
  909. default: string;
  910. };
  911. }, vue.ExtractPropTypes<{
  912. theme: StringConstructor;
  913. density: {
  914. type: vue.PropType<Density>;
  915. default: string;
  916. validator: (v: any) => boolean;
  917. };
  918. class: vue.PropType<ClassValue>;
  919. style: {
  920. type: vue.PropType<vue.StyleValue>;
  921. default: null;
  922. };
  923. color: StringConstructor;
  924. disabled: {
  925. type: vue.PropType<boolean | null>;
  926. default: null;
  927. };
  928. defaultsTarget: StringConstructor;
  929. error: BooleanConstructor;
  930. id: StringConstructor;
  931. inline: BooleanConstructor;
  932. falseIcon: {
  933. type: vue.PropType<IconValue>;
  934. default: NonNullable<IconValue>;
  935. };
  936. trueIcon: {
  937. type: vue.PropType<IconValue>;
  938. default: NonNullable<IconValue>;
  939. };
  940. ripple: {
  941. type: vue.PropType<RippleDirectiveBinding["value"]>;
  942. default: boolean;
  943. };
  944. multiple: {
  945. type: vue.PropType<boolean | null>;
  946. default: null;
  947. };
  948. name: StringConstructor;
  949. readonly: {
  950. type: vue.PropType<boolean | null>;
  951. default: null;
  952. };
  953. modelValue: null;
  954. type: StringConstructor;
  955. valueComparator: {
  956. type: vue.PropType<typeof deepEqual>;
  957. default: typeof deepEqual;
  958. };
  959. label: StringConstructor;
  960. baseColor: StringConstructor;
  961. trueValue: null;
  962. falseValue: null;
  963. value: null;
  964. indeterminate: BooleanConstructor;
  965. indeterminateIcon: {
  966. type: vue.PropType<IconValue>;
  967. default: string;
  968. };
  969. }>>;
  970. type VCheckboxBtn = InstanceType<typeof VCheckboxBtn>;
  971. export { VCheckbox, VCheckboxBtn };