index.d.mts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391
  1. import * as vue from 'vue';
  2. import { ComponentPropsOptions, ExtractPropTypes, PropType } from 'vue';
  3. interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
  4. filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
  5. }
  6. type ClassValue = any;
  7. declare const VOtpInput: {
  8. new (...args: any[]): vue.CreateComponentPublicInstance<{
  9. length: string | number;
  10. variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
  11. type: "number" | "text" | "password";
  12. error: boolean;
  13. label: string;
  14. style: vue.StyleValue;
  15. autofocus: boolean;
  16. disabled: boolean;
  17. focused: boolean;
  18. focusAll: boolean;
  19. } & {
  20. height?: string | number | undefined;
  21. width?: string | number | undefined;
  22. color?: string | undefined;
  23. maxHeight?: string | number | undefined;
  24. maxWidth?: string | number | undefined;
  25. minHeight?: string | number | undefined;
  26. minWidth?: string | number | undefined;
  27. loading?: string | boolean | undefined;
  28. class?: any;
  29. theme?: string | undefined;
  30. placeholder?: string | undefined;
  31. divider?: string | undefined;
  32. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  33. modelValue?: string | number | undefined;
  34. rounded?: string | number | boolean | undefined;
  35. baseColor?: string | undefined;
  36. bgColor?: string | undefined;
  37. } & {
  38. $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
  39. default?: (() => vue.VNodeChild) | undefined;
  40. loader?: (() => vue.VNodeChild) | undefined;
  41. };
  42. 'v-slots'?: {
  43. default?: false | (() => vue.VNodeChild) | undefined;
  44. loader?: false | (() => vue.VNodeChild) | undefined;
  45. } | undefined;
  46. } & {
  47. "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
  48. "v-slot:loader"?: false | (() => vue.VNodeChild) | undefined;
  49. } & {
  50. "onUpdate:focused"?: ((val: boolean) => any) | undefined;
  51. "onUpdate:modelValue"?: ((val: string) => any) | undefined;
  52. onFinish?: ((val: string) => any) | undefined;
  53. }, {
  54. blur: () => void;
  55. focus: () => void;
  56. reset: () => void;
  57. isFocused: vue.Ref<boolean> & {
  58. readonly externalValue: boolean;
  59. };
  60. }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
  61. finish: (val: string) => true;
  62. 'update:focused': (val: boolean) => true;
  63. 'update:modelValue': (val: string) => true;
  64. }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
  65. length: string | number;
  66. variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
  67. type: "number" | "text" | "password";
  68. error: boolean;
  69. label: string;
  70. style: vue.StyleValue;
  71. autofocus: boolean;
  72. disabled: boolean;
  73. focused: boolean;
  74. focusAll: boolean;
  75. } & {
  76. height?: string | number | undefined;
  77. width?: string | number | undefined;
  78. color?: string | undefined;
  79. maxHeight?: string | number | undefined;
  80. maxWidth?: string | number | undefined;
  81. minHeight?: string | number | undefined;
  82. minWidth?: string | number | undefined;
  83. loading?: string | boolean | undefined;
  84. class?: any;
  85. theme?: string | undefined;
  86. placeholder?: string | undefined;
  87. divider?: string | undefined;
  88. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  89. modelValue?: string | number | undefined;
  90. rounded?: string | number | boolean | undefined;
  91. baseColor?: string | undefined;
  92. bgColor?: string | undefined;
  93. } & {
  94. $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
  95. default?: (() => vue.VNodeChild) | undefined;
  96. loader?: (() => vue.VNodeChild) | undefined;
  97. };
  98. 'v-slots'?: {
  99. default?: false | (() => vue.VNodeChild) | undefined;
  100. loader?: false | (() => vue.VNodeChild) | undefined;
  101. } | undefined;
  102. } & {
  103. "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
  104. "v-slot:loader"?: false | (() => vue.VNodeChild) | undefined;
  105. } & {
  106. "onUpdate:focused"?: ((val: boolean) => any) | undefined;
  107. "onUpdate:modelValue"?: ((val: string) => any) | undefined;
  108. onFinish?: ((val: string) => any) | undefined;
  109. }, {
  110. length: string | number;
  111. variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
  112. type: "number" | "text" | "password";
  113. error: boolean;
  114. label: string;
  115. style: vue.StyleValue;
  116. autofocus: boolean;
  117. disabled: boolean;
  118. focused: boolean;
  119. modelValue: string | number;
  120. rounded: string | number | boolean;
  121. focusAll: boolean;
  122. }, true, {}, vue.SlotsType<Partial<{
  123. default: () => vue.VNode[];
  124. loader: () => vue.VNode[];
  125. }>>, {
  126. P: {};
  127. B: {};
  128. D: {};
  129. C: {};
  130. M: {};
  131. Defaults: {};
  132. }, {
  133. length: string | number;
  134. variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
  135. type: "number" | "text" | "password";
  136. error: boolean;
  137. label: string;
  138. style: vue.StyleValue;
  139. autofocus: boolean;
  140. disabled: boolean;
  141. focused: boolean;
  142. focusAll: boolean;
  143. } & {
  144. height?: string | number | undefined;
  145. width?: string | number | undefined;
  146. color?: string | undefined;
  147. maxHeight?: string | number | undefined;
  148. maxWidth?: string | number | undefined;
  149. minHeight?: string | number | undefined;
  150. minWidth?: string | number | undefined;
  151. loading?: string | boolean | undefined;
  152. class?: any;
  153. theme?: string | undefined;
  154. placeholder?: string | undefined;
  155. divider?: string | undefined;
  156. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  157. modelValue?: string | number | undefined;
  158. rounded?: string | number | boolean | undefined;
  159. baseColor?: string | undefined;
  160. bgColor?: string | undefined;
  161. } & {
  162. $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
  163. default?: (() => vue.VNodeChild) | undefined;
  164. loader?: (() => vue.VNodeChild) | undefined;
  165. };
  166. 'v-slots'?: {
  167. default?: false | (() => vue.VNodeChild) | undefined;
  168. loader?: false | (() => vue.VNodeChild) | undefined;
  169. } | undefined;
  170. } & {
  171. "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
  172. "v-slot:loader"?: false | (() => vue.VNodeChild) | undefined;
  173. } & {
  174. "onUpdate:focused"?: ((val: boolean) => any) | undefined;
  175. "onUpdate:modelValue"?: ((val: string) => any) | undefined;
  176. onFinish?: ((val: string) => any) | undefined;
  177. }, {
  178. blur: () => void;
  179. focus: () => void;
  180. reset: () => void;
  181. isFocused: vue.Ref<boolean> & {
  182. readonly externalValue: boolean;
  183. };
  184. }, {}, {}, {}, {
  185. length: string | number;
  186. variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
  187. type: "number" | "text" | "password";
  188. error: boolean;
  189. label: string;
  190. style: vue.StyleValue;
  191. autofocus: boolean;
  192. disabled: boolean;
  193. focused: boolean;
  194. modelValue: string | number;
  195. rounded: string | number | boolean;
  196. focusAll: boolean;
  197. }>;
  198. __isFragment?: never;
  199. __isTeleport?: never;
  200. __isSuspense?: never;
  201. } & vue.ComponentOptionsBase<{
  202. length: string | number;
  203. variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
  204. type: "number" | "text" | "password";
  205. error: boolean;
  206. label: string;
  207. style: vue.StyleValue;
  208. autofocus: boolean;
  209. disabled: boolean;
  210. focused: boolean;
  211. focusAll: boolean;
  212. } & {
  213. height?: string | number | undefined;
  214. width?: string | number | undefined;
  215. color?: string | undefined;
  216. maxHeight?: string | number | undefined;
  217. maxWidth?: string | number | undefined;
  218. minHeight?: string | number | undefined;
  219. minWidth?: string | number | undefined;
  220. loading?: string | boolean | undefined;
  221. class?: any;
  222. theme?: string | undefined;
  223. placeholder?: string | undefined;
  224. divider?: string | undefined;
  225. 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
  226. modelValue?: string | number | undefined;
  227. rounded?: string | number | boolean | undefined;
  228. baseColor?: string | undefined;
  229. bgColor?: string | undefined;
  230. } & {
  231. $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
  232. default?: (() => vue.VNodeChild) | undefined;
  233. loader?: (() => vue.VNodeChild) | undefined;
  234. };
  235. 'v-slots'?: {
  236. default?: false | (() => vue.VNodeChild) | undefined;
  237. loader?: false | (() => vue.VNodeChild) | undefined;
  238. } | undefined;
  239. } & {
  240. "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
  241. "v-slot:loader"?: false | (() => vue.VNodeChild) | undefined;
  242. } & {
  243. "onUpdate:focused"?: ((val: boolean) => any) | undefined;
  244. "onUpdate:modelValue"?: ((val: string) => any) | undefined;
  245. onFinish?: ((val: string) => any) | undefined;
  246. }, {
  247. blur: () => void;
  248. focus: () => void;
  249. reset: () => void;
  250. isFocused: vue.Ref<boolean> & {
  251. readonly externalValue: boolean;
  252. };
  253. }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
  254. finish: (val: string) => true;
  255. 'update:focused': (val: boolean) => true;
  256. 'update:modelValue': (val: string) => true;
  257. }, string, {
  258. length: string | number;
  259. variant: "filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled";
  260. type: "number" | "text" | "password";
  261. error: boolean;
  262. label: string;
  263. style: vue.StyleValue;
  264. autofocus: boolean;
  265. disabled: boolean;
  266. focused: boolean;
  267. modelValue: string | number;
  268. rounded: string | number | boolean;
  269. focusAll: boolean;
  270. }, {}, string, vue.SlotsType<Partial<{
  271. default: () => vue.VNode[];
  272. loader: () => vue.VNode[];
  273. }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
  274. variant: Omit<{
  275. type: PropType<"filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled">;
  276. default: string;
  277. validator: (v: any) => boolean;
  278. }, "type" | "default"> & {
  279. type: PropType<"filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled">;
  280. default: NonNullable<"filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled">;
  281. };
  282. error: BooleanConstructor;
  283. color: StringConstructor;
  284. loading: (StringConstructor | BooleanConstructor)[];
  285. style: {
  286. type: PropType<vue.StyleValue>;
  287. default: null;
  288. };
  289. disabled: {
  290. type: BooleanConstructor;
  291. default: null;
  292. };
  293. class: PropType<ClassValue>;
  294. theme: StringConstructor;
  295. rounded: {
  296. type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
  297. default: undefined;
  298. };
  299. baseColor: StringConstructor;
  300. bgColor: StringConstructor;
  301. focused: BooleanConstructor;
  302. 'onUpdate:focused': PropType<(args_0: boolean) => void>;
  303. height: (StringConstructor | NumberConstructor)[];
  304. maxHeight: (StringConstructor | NumberConstructor)[];
  305. maxWidth: (StringConstructor | NumberConstructor)[];
  306. minHeight: (StringConstructor | NumberConstructor)[];
  307. minWidth: (StringConstructor | NumberConstructor)[];
  308. width: (StringConstructor | NumberConstructor)[];
  309. autofocus: BooleanConstructor;
  310. divider: StringConstructor;
  311. focusAll: BooleanConstructor;
  312. label: {
  313. type: StringConstructor;
  314. default: string;
  315. };
  316. length: {
  317. type: (StringConstructor | NumberConstructor)[];
  318. default: number;
  319. };
  320. modelValue: {
  321. type: (StringConstructor | NumberConstructor)[];
  322. default: undefined;
  323. };
  324. placeholder: StringConstructor;
  325. type: {
  326. type: PropType<"text" | "password" | "number">;
  327. default: string;
  328. };
  329. }, vue.ExtractPropTypes<{
  330. variant: Omit<{
  331. type: PropType<"filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled">;
  332. default: string;
  333. validator: (v: any) => boolean;
  334. }, "type" | "default"> & {
  335. type: PropType<"filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled">;
  336. default: NonNullable<"filled" | "underlined" | "outlined" | "plain" | "solo" | "solo-inverted" | "solo-filled">;
  337. };
  338. error: BooleanConstructor;
  339. color: StringConstructor;
  340. loading: (StringConstructor | BooleanConstructor)[];
  341. style: {
  342. type: PropType<vue.StyleValue>;
  343. default: null;
  344. };
  345. disabled: {
  346. type: BooleanConstructor;
  347. default: null;
  348. };
  349. class: PropType<ClassValue>;
  350. theme: StringConstructor;
  351. rounded: {
  352. type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
  353. default: undefined;
  354. };
  355. baseColor: StringConstructor;
  356. bgColor: StringConstructor;
  357. focused: BooleanConstructor;
  358. 'onUpdate:focused': PropType<(args_0: boolean) => void>;
  359. height: (StringConstructor | NumberConstructor)[];
  360. maxHeight: (StringConstructor | NumberConstructor)[];
  361. maxWidth: (StringConstructor | NumberConstructor)[];
  362. minHeight: (StringConstructor | NumberConstructor)[];
  363. minWidth: (StringConstructor | NumberConstructor)[];
  364. width: (StringConstructor | NumberConstructor)[];
  365. autofocus: BooleanConstructor;
  366. divider: StringConstructor;
  367. focusAll: BooleanConstructor;
  368. label: {
  369. type: StringConstructor;
  370. default: string;
  371. };
  372. length: {
  373. type: (StringConstructor | NumberConstructor)[];
  374. default: number;
  375. };
  376. modelValue: {
  377. type: (StringConstructor | NumberConstructor)[];
  378. default: undefined;
  379. };
  380. placeholder: StringConstructor;
  381. type: {
  382. type: PropType<"text" | "password" | "number">;
  383. default: string;
  384. };
  385. }>>;
  386. type VOtpInput = InstanceType<typeof VOtpInput>;
  387. export { VOtpInput };