index.d.mts 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695
  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 VMessageSlot = {
  77. message: string;
  78. };
  79. type ValidationResult = string | boolean;
  80. type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
  81. type ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input';
  82. type ValidateOn = ValidateOnValue | `${ValidateOnValue} lazy` | `${ValidateOnValue} eager` | `lazy ${ValidateOnValue}` | `eager ${ValidateOnValue}` | 'lazy' | 'eager';
  83. interface ValidationProps {
  84. disabled: boolean | null;
  85. error: boolean;
  86. errorMessages: string | readonly string[] | null;
  87. focused: boolean;
  88. maxErrors: string | number;
  89. name: string | undefined;
  90. label: string | undefined;
  91. readonly: boolean | null;
  92. rules: readonly ValidationRule[];
  93. modelValue: any;
  94. 'onUpdate:modelValue': EventProp | undefined;
  95. validateOn?: ValidateOn;
  96. validationValue: any;
  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. interface LoaderSlotProps {
  119. color: string | undefined;
  120. isActive: boolean;
  121. }
  122. type VSwitchSlot = {
  123. model: Ref<boolean>;
  124. isValid: ComputedRef<boolean | null>;
  125. };
  126. type VSwitchSlots = VInputSlots & VSelectionControlSlots & {
  127. loader: LoaderSlotProps;
  128. thumb: {
  129. icon: IconValue | undefined;
  130. } & VSwitchSlot;
  131. 'track-false': VSwitchSlot;
  132. 'track-true': VSwitchSlot;
  133. };
  134. declare const VSwitch: {
  135. new (...args: any[]): vue.CreateComponentPublicInstance<{
  136. flat: boolean;
  137. inline: boolean;
  138. error: boolean;
  139. direction: "horizontal" | "vertical";
  140. inset: boolean;
  141. loading: string | boolean;
  142. style: vue.StyleValue;
  143. disabled: boolean | null;
  144. multiple: boolean | null;
  145. readonly: boolean | null;
  146. indeterminate: boolean;
  147. messages: string | readonly string[];
  148. focused: boolean;
  149. errorMessages: string | readonly string[] | null;
  150. maxErrors: string | number;
  151. rules: readonly ValidationRule[];
  152. density: Density;
  153. ripple: boolean | {
  154. class: string;
  155. } | undefined;
  156. valueComparator: typeof deepEqual;
  157. centerAffix: boolean;
  158. hideSpinButtons: boolean;
  159. persistentHint: boolean;
  160. } & {
  161. name?: string | undefined;
  162. type?: string | undefined;
  163. id?: string | undefined;
  164. width?: string | number | undefined;
  165. color?: string | undefined;
  166. maxWidth?: string | number | undefined;
  167. minWidth?: string | number | undefined;
  168. value?: any;
  169. label?: string | undefined;
  170. class?: any;
  171. theme?: string | undefined;
  172. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  173. 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;
  174. validationValue?: any;
  175. baseColor?: string | undefined;
  176. prependIcon?: IconValue | undefined;
  177. appendIcon?: IconValue | undefined;
  178. defaultsTarget?: string | undefined;
  179. falseIcon?: IconValue | undefined;
  180. trueIcon?: IconValue | undefined;
  181. trueValue?: any;
  182. falseValue?: any;
  183. 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
  184. 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
  185. hint?: string | undefined;
  186. hideDetails?: boolean | "auto" | undefined;
  187. } & {
  188. "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
  189. "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
  190. }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
  191. 'update:focused': (focused: boolean) => true;
  192. 'update:modelValue': (value: any) => true;
  193. 'update:indeterminate': (value: boolean) => true;
  194. }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "v-slot:prepend" | "v-slot:append" | "update:modelValue" | "v-slot:loader" | "v-slot:input" | "v-slot:label" | "v-slot:message" | "v-slot:details" | "v-slot:thumb" | "v-slot:track-false" | "v-slot:track-true">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
  195. flat: boolean;
  196. inline: boolean;
  197. error: boolean;
  198. direction: "horizontal" | "vertical";
  199. inset: boolean;
  200. loading: string | boolean;
  201. style: vue.StyleValue;
  202. disabled: boolean | null;
  203. multiple: boolean | null;
  204. readonly: boolean | null;
  205. indeterminate: boolean;
  206. messages: string | readonly string[];
  207. focused: boolean;
  208. errorMessages: string | readonly string[] | null;
  209. maxErrors: string | number;
  210. rules: readonly ValidationRule[];
  211. density: Density;
  212. ripple: boolean | {
  213. class: string;
  214. } | undefined;
  215. valueComparator: typeof deepEqual;
  216. centerAffix: boolean;
  217. hideSpinButtons: boolean;
  218. persistentHint: boolean;
  219. } & {
  220. name?: string | undefined;
  221. type?: string | undefined;
  222. id?: string | undefined;
  223. width?: string | number | undefined;
  224. color?: string | undefined;
  225. maxWidth?: string | number | undefined;
  226. minWidth?: string | number | undefined;
  227. value?: any;
  228. label?: string | undefined;
  229. class?: any;
  230. theme?: string | undefined;
  231. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  232. 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;
  233. validationValue?: any;
  234. baseColor?: string | undefined;
  235. prependIcon?: IconValue | undefined;
  236. appendIcon?: IconValue | undefined;
  237. defaultsTarget?: string | undefined;
  238. falseIcon?: IconValue | undefined;
  239. trueIcon?: IconValue | undefined;
  240. trueValue?: any;
  241. falseValue?: any;
  242. 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
  243. 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
  244. hint?: string | undefined;
  245. hideDetails?: boolean | "auto" | undefined;
  246. } & {
  247. "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
  248. "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
  249. }, {
  250. flat: boolean;
  251. inline: boolean;
  252. error: boolean;
  253. direction: "horizontal" | "vertical";
  254. inset: boolean;
  255. loading: string | boolean;
  256. style: vue.StyleValue;
  257. disabled: boolean | null;
  258. multiple: boolean | null;
  259. readonly: boolean | null;
  260. indeterminate: boolean;
  261. messages: string | readonly string[];
  262. focused: boolean;
  263. errorMessages: string | readonly string[] | null;
  264. maxErrors: string | number;
  265. rules: readonly ValidationRule[];
  266. density: Density;
  267. ripple: boolean | {
  268. class: string;
  269. } | undefined;
  270. valueComparator: typeof deepEqual;
  271. centerAffix: boolean;
  272. hideSpinButtons: boolean;
  273. persistentHint: boolean;
  274. }, true, {}, vue.SlotsType<Partial<{
  275. default: (arg: VInputSlot & {
  276. backgroundColorClasses: Ref<string[]>;
  277. backgroundColorStyles: Ref<vue.CSSProperties>;
  278. }) => vue.VNode[];
  279. prepend: (arg: VInputSlot) => vue.VNode[];
  280. append: (arg: VInputSlot) => vue.VNode[];
  281. details: (arg: VInputSlot) => vue.VNode[];
  282. message: (arg: VMessageSlot) => vue.VNode[];
  283. label: (arg: {
  284. label: string | undefined;
  285. props: Record<string, unknown>;
  286. }) => vue.VNode[];
  287. input: (arg: SelectionControlSlot) => vue.VNode[];
  288. loader: (arg: LoaderSlotProps) => vue.VNode[];
  289. thumb: (arg: {
  290. icon: IconValue | undefined;
  291. } & VSwitchSlot) => vue.VNode[];
  292. 'track-false': (arg: VSwitchSlot) => vue.VNode[];
  293. 'track-true': (arg: VSwitchSlot) => vue.VNode[];
  294. }>>, {
  295. P: {};
  296. B: {};
  297. D: {};
  298. C: {};
  299. M: {};
  300. Defaults: {};
  301. }, {
  302. flat: boolean;
  303. inline: boolean;
  304. error: boolean;
  305. direction: "horizontal" | "vertical";
  306. inset: boolean;
  307. loading: string | boolean;
  308. style: vue.StyleValue;
  309. disabled: boolean | null;
  310. multiple: boolean | null;
  311. readonly: boolean | null;
  312. indeterminate: boolean;
  313. messages: string | readonly string[];
  314. focused: boolean;
  315. errorMessages: string | readonly string[] | null;
  316. maxErrors: string | number;
  317. rules: readonly ValidationRule[];
  318. density: Density;
  319. ripple: boolean | {
  320. class: string;
  321. } | undefined;
  322. valueComparator: typeof deepEqual;
  323. centerAffix: boolean;
  324. hideSpinButtons: boolean;
  325. persistentHint: boolean;
  326. } & {
  327. name?: string | undefined;
  328. type?: string | undefined;
  329. id?: string | undefined;
  330. width?: string | number | undefined;
  331. color?: string | undefined;
  332. maxWidth?: string | number | undefined;
  333. minWidth?: string | number | undefined;
  334. value?: any;
  335. label?: string | undefined;
  336. class?: any;
  337. theme?: string | undefined;
  338. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  339. 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;
  340. validationValue?: any;
  341. baseColor?: string | undefined;
  342. prependIcon?: IconValue | undefined;
  343. appendIcon?: IconValue | undefined;
  344. defaultsTarget?: string | undefined;
  345. falseIcon?: IconValue | undefined;
  346. trueIcon?: IconValue | undefined;
  347. trueValue?: any;
  348. falseValue?: any;
  349. 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
  350. 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
  351. hint?: string | undefined;
  352. hideDetails?: boolean | "auto" | undefined;
  353. } & {
  354. "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
  355. "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
  356. }, {}, {}, {}, {}, {
  357. flat: boolean;
  358. inline: boolean;
  359. error: boolean;
  360. direction: "horizontal" | "vertical";
  361. inset: boolean;
  362. loading: string | boolean;
  363. style: vue.StyleValue;
  364. disabled: boolean | null;
  365. multiple: boolean | null;
  366. readonly: boolean | null;
  367. indeterminate: boolean;
  368. messages: string | readonly string[];
  369. focused: boolean;
  370. errorMessages: string | readonly string[] | null;
  371. maxErrors: string | number;
  372. rules: readonly ValidationRule[];
  373. density: Density;
  374. ripple: boolean | {
  375. class: string;
  376. } | undefined;
  377. valueComparator: typeof deepEqual;
  378. centerAffix: boolean;
  379. hideSpinButtons: boolean;
  380. persistentHint: boolean;
  381. }>;
  382. __isFragment?: never;
  383. __isTeleport?: never;
  384. __isSuspense?: never;
  385. } & vue.ComponentOptionsBase<{
  386. flat: boolean;
  387. inline: boolean;
  388. error: boolean;
  389. direction: "horizontal" | "vertical";
  390. inset: boolean;
  391. loading: string | boolean;
  392. style: vue.StyleValue;
  393. disabled: boolean | null;
  394. multiple: boolean | null;
  395. readonly: boolean | null;
  396. indeterminate: boolean;
  397. messages: string | readonly string[];
  398. focused: boolean;
  399. errorMessages: string | readonly string[] | null;
  400. maxErrors: string | number;
  401. rules: readonly ValidationRule[];
  402. density: Density;
  403. ripple: boolean | {
  404. class: string;
  405. } | undefined;
  406. valueComparator: typeof deepEqual;
  407. centerAffix: boolean;
  408. hideSpinButtons: boolean;
  409. persistentHint: boolean;
  410. } & {
  411. name?: string | undefined;
  412. type?: string | undefined;
  413. id?: string | undefined;
  414. width?: string | number | undefined;
  415. color?: string | undefined;
  416. maxWidth?: string | number | undefined;
  417. minWidth?: string | number | undefined;
  418. value?: any;
  419. label?: string | undefined;
  420. class?: any;
  421. theme?: string | undefined;
  422. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  423. 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;
  424. validationValue?: any;
  425. baseColor?: string | undefined;
  426. prependIcon?: IconValue | undefined;
  427. appendIcon?: IconValue | undefined;
  428. defaultsTarget?: string | undefined;
  429. falseIcon?: IconValue | undefined;
  430. trueIcon?: IconValue | undefined;
  431. trueValue?: any;
  432. falseValue?: any;
  433. 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
  434. 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
  435. hint?: string | undefined;
  436. hideDetails?: boolean | "auto" | undefined;
  437. } & {
  438. "onUpdate:focused"?: ((focused: boolean) => any) | undefined;
  439. "onUpdate:indeterminate"?: ((value: boolean) => any) | undefined;
  440. }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
  441. 'update:focused': (focused: boolean) => true;
  442. 'update:modelValue': (value: any) => true;
  443. 'update:indeterminate': (value: boolean) => true;
  444. }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "v-slot:prepend" | "v-slot:append" | "update:modelValue" | "v-slot:loader" | "v-slot:input" | "v-slot:label" | "v-slot:message" | "v-slot:details" | "v-slot:thumb" | "v-slot:track-false" | "v-slot:track-true">, string, {
  445. flat: boolean;
  446. inline: boolean;
  447. error: boolean;
  448. direction: "horizontal" | "vertical";
  449. inset: boolean;
  450. loading: string | boolean;
  451. style: vue.StyleValue;
  452. disabled: boolean | null;
  453. multiple: boolean | null;
  454. readonly: boolean | null;
  455. indeterminate: boolean;
  456. messages: string | readonly string[];
  457. focused: boolean;
  458. errorMessages: string | readonly string[] | null;
  459. maxErrors: string | number;
  460. rules: readonly ValidationRule[];
  461. density: Density;
  462. ripple: boolean | {
  463. class: string;
  464. } | undefined;
  465. valueComparator: typeof deepEqual;
  466. centerAffix: boolean;
  467. hideSpinButtons: boolean;
  468. persistentHint: boolean;
  469. }, {}, string, vue.SlotsType<Partial<{
  470. default: (arg: VInputSlot & {
  471. backgroundColorClasses: Ref<string[]>;
  472. backgroundColorStyles: Ref<vue.CSSProperties>;
  473. }) => vue.VNode[];
  474. prepend: (arg: VInputSlot) => vue.VNode[];
  475. append: (arg: VInputSlot) => vue.VNode[];
  476. details: (arg: VInputSlot) => vue.VNode[];
  477. message: (arg: VMessageSlot) => vue.VNode[];
  478. label: (arg: {
  479. label: string | undefined;
  480. props: Record<string, unknown>;
  481. }) => vue.VNode[];
  482. input: (arg: SelectionControlSlot) => vue.VNode[];
  483. loader: (arg: LoaderSlotProps) => vue.VNode[];
  484. thumb: (arg: {
  485. icon: IconValue | undefined;
  486. } & VSwitchSlot) => vue.VNode[];
  487. 'track-false': (arg: VSwitchSlot) => vue.VNode[];
  488. 'track-true': (arg: VSwitchSlot) => vue.VNode[];
  489. }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T>(props: {
  490. modelValue?: T | null;
  491. "onUpdate:modelValue"?: (value: T | null) => void;
  492. }, slots: VSwitchSlots) => GenericProps<typeof props, typeof slots>) & FilterPropsOptions<{
  493. theme: StringConstructor;
  494. density: {
  495. type: vue.PropType<Density>;
  496. default: string;
  497. validator: (v: any) => boolean;
  498. };
  499. class: vue.PropType<ClassValue>;
  500. style: {
  501. type: vue.PropType<vue.StyleValue>;
  502. default: null;
  503. };
  504. color: StringConstructor;
  505. disabled: {
  506. type: vue.PropType<boolean | null>;
  507. default: null;
  508. };
  509. defaultsTarget: StringConstructor;
  510. error: BooleanConstructor;
  511. id: StringConstructor;
  512. inline: BooleanConstructor;
  513. falseIcon: vue.PropType<IconValue>;
  514. trueIcon: vue.PropType<IconValue>;
  515. ripple: {
  516. type: vue.PropType<RippleDirectiveBinding["value"]>;
  517. default: boolean;
  518. };
  519. multiple: {
  520. type: vue.PropType<boolean | null>;
  521. default: null;
  522. };
  523. name: StringConstructor;
  524. readonly: {
  525. type: vue.PropType<boolean | null>;
  526. default: null;
  527. };
  528. modelValue: null;
  529. type: StringConstructor;
  530. valueComparator: {
  531. type: vue.PropType<typeof deepEqual>;
  532. default: typeof deepEqual;
  533. };
  534. label: StringConstructor;
  535. baseColor: StringConstructor;
  536. trueValue: null;
  537. falseValue: null;
  538. value: null;
  539. focused: BooleanConstructor;
  540. 'onUpdate:focused': vue.PropType<(args_0: boolean) => void>;
  541. errorMessages: {
  542. type: vue.PropType<string | readonly string[] | null>;
  543. default: () => never[];
  544. };
  545. maxErrors: {
  546. type: (StringConstructor | NumberConstructor)[];
  547. default: number;
  548. };
  549. rules: {
  550. type: vue.PropType<readonly ValidationRule[]>;
  551. default: () => never[];
  552. };
  553. validateOn: vue.PropType<ValidationProps["validateOn"]>;
  554. validationValue: null;
  555. width: (StringConstructor | NumberConstructor)[];
  556. maxWidth: (StringConstructor | NumberConstructor)[];
  557. minWidth: (StringConstructor | NumberConstructor)[];
  558. appendIcon: vue.PropType<IconValue>;
  559. centerAffix: {
  560. type: BooleanConstructor;
  561. default: boolean;
  562. };
  563. prependIcon: vue.PropType<IconValue>;
  564. hideDetails: vue.PropType<boolean | "auto">;
  565. hideSpinButtons: BooleanConstructor;
  566. hint: StringConstructor;
  567. persistentHint: BooleanConstructor;
  568. messages: {
  569. type: vue.PropType<string | readonly string[]>;
  570. default: () => never[];
  571. };
  572. direction: {
  573. type: vue.PropType<"horizontal" | "vertical">;
  574. default: string;
  575. validator: (v: any) => boolean;
  576. };
  577. 'onClick:prepend': vue.PropType<(args_0: MouseEvent) => void>;
  578. 'onClick:append': vue.PropType<(args_0: MouseEvent) => void>;
  579. indeterminate: BooleanConstructor;
  580. inset: BooleanConstructor;
  581. flat: BooleanConstructor;
  582. loading: {
  583. type: (StringConstructor | BooleanConstructor)[];
  584. default: boolean;
  585. };
  586. }, vue.ExtractPropTypes<{
  587. theme: StringConstructor;
  588. density: {
  589. type: vue.PropType<Density>;
  590. default: string;
  591. validator: (v: any) => boolean;
  592. };
  593. class: vue.PropType<ClassValue>;
  594. style: {
  595. type: vue.PropType<vue.StyleValue>;
  596. default: null;
  597. };
  598. color: StringConstructor;
  599. disabled: {
  600. type: vue.PropType<boolean | null>;
  601. default: null;
  602. };
  603. defaultsTarget: StringConstructor;
  604. error: BooleanConstructor;
  605. id: StringConstructor;
  606. inline: BooleanConstructor;
  607. falseIcon: vue.PropType<IconValue>;
  608. trueIcon: vue.PropType<IconValue>;
  609. ripple: {
  610. type: vue.PropType<RippleDirectiveBinding["value"]>;
  611. default: boolean;
  612. };
  613. multiple: {
  614. type: vue.PropType<boolean | null>;
  615. default: null;
  616. };
  617. name: StringConstructor;
  618. readonly: {
  619. type: vue.PropType<boolean | null>;
  620. default: null;
  621. };
  622. modelValue: null;
  623. type: StringConstructor;
  624. valueComparator: {
  625. type: vue.PropType<typeof deepEqual>;
  626. default: typeof deepEqual;
  627. };
  628. label: StringConstructor;
  629. baseColor: StringConstructor;
  630. trueValue: null;
  631. falseValue: null;
  632. value: null;
  633. focused: BooleanConstructor;
  634. 'onUpdate:focused': vue.PropType<(args_0: boolean) => void>;
  635. errorMessages: {
  636. type: vue.PropType<string | readonly string[] | null>;
  637. default: () => never[];
  638. };
  639. maxErrors: {
  640. type: (StringConstructor | NumberConstructor)[];
  641. default: number;
  642. };
  643. rules: {
  644. type: vue.PropType<readonly ValidationRule[]>;
  645. default: () => never[];
  646. };
  647. validateOn: vue.PropType<ValidationProps["validateOn"]>;
  648. validationValue: null;
  649. width: (StringConstructor | NumberConstructor)[];
  650. maxWidth: (StringConstructor | NumberConstructor)[];
  651. minWidth: (StringConstructor | NumberConstructor)[];
  652. appendIcon: vue.PropType<IconValue>;
  653. centerAffix: {
  654. type: BooleanConstructor;
  655. default: boolean;
  656. };
  657. prependIcon: vue.PropType<IconValue>;
  658. hideDetails: vue.PropType<boolean | "auto">;
  659. hideSpinButtons: BooleanConstructor;
  660. hint: StringConstructor;
  661. persistentHint: BooleanConstructor;
  662. messages: {
  663. type: vue.PropType<string | readonly string[]>;
  664. default: () => never[];
  665. };
  666. direction: {
  667. type: vue.PropType<"horizontal" | "vertical">;
  668. default: string;
  669. validator: (v: any) => boolean;
  670. };
  671. 'onClick:prepend': vue.PropType<(args_0: MouseEvent) => void>;
  672. 'onClick:append': vue.PropType<(args_0: MouseEvent) => void>;
  673. indeterminate: BooleanConstructor;
  674. inset: BooleanConstructor;
  675. flat: BooleanConstructor;
  676. loading: {
  677. type: (StringConstructor | BooleanConstructor)[];
  678. default: boolean;
  679. };
  680. }>>;
  681. type VSwitch = InstanceType<typeof VSwitch>;
  682. export { VSwitch };