@aerogel/core 0.1.1-next.bad775a386a94fedbee1d575ee1f4fb99d1f5bab → 0.1.1-next.c8c3f29d9a2c4b171f1e6f822d0f701e87c69c37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/aerogel-core.d.ts +361 -113
  2. package/dist/aerogel-core.js +1692 -1344
  3. package/dist/aerogel-core.js.map +1 -1
  4. package/package.json +1 -1
  5. package/src/bootstrap/index.ts +2 -1
  6. package/src/components/AppLayout.vue +1 -1
  7. package/src/components/contracts/Combobox.ts +5 -0
  8. package/src/components/contracts/Select.ts +98 -4
  9. package/src/components/contracts/index.ts +1 -0
  10. package/src/components/headless/HeadlessInputInput.vue +6 -3
  11. package/src/components/headless/HeadlessSelect.vue +10 -91
  12. package/src/components/headless/HeadlessSelectOption.vue +1 -5
  13. package/src/components/index.ts +1 -0
  14. package/src/components/ui/Combobox.vue +94 -0
  15. package/src/components/ui/ComboboxLabel.vue +29 -0
  16. package/src/components/ui/ComboboxOption.vue +46 -0
  17. package/src/components/ui/ComboboxOptions.vue +71 -0
  18. package/src/components/ui/ComboboxTrigger.vue +67 -0
  19. package/src/components/ui/Details.vue +16 -6
  20. package/src/components/ui/ProgressBar.vue +1 -1
  21. package/src/components/ui/Select.vue +2 -0
  22. package/src/components/ui/SelectTrigger.vue +13 -2
  23. package/src/components/ui/index.ts +5 -0
  24. package/src/components/vue/Provide.vue +11 -0
  25. package/src/components/vue/index.ts +1 -0
  26. package/src/errors/index.ts +5 -0
  27. package/src/forms/FormController.test.ts +4 -4
  28. package/src/forms/FormController.ts +3 -3
  29. package/src/forms/index.ts +11 -0
  30. package/src/forms/utils.ts +36 -17
  31. package/src/forms/validation.ts +5 -1
  32. package/src/index.css +1 -0
  33. package/src/jobs/Job.ts +1 -1
  34. package/src/services/index.ts +2 -0
  35. package/src/utils/composition/reactiveSet.ts +10 -2
  36. package/src/utils/time.ts +6 -1
@@ -4,6 +4,8 @@ import { App as App_2 } from 'vue';
4
4
  import { AsTag } from 'reka-ui';
5
5
  import { ClassValue } from 'clsx';
6
6
  import { closeModal } from '@noeldemartin/vue-modals';
7
+ import { ComboboxGroupProps } from 'reka-ui';
8
+ import { ComboboxItemProps } from 'reka-ui';
7
9
  import { Component } from 'vue';
8
10
  import { ComponentCustomProperties } from 'vue';
9
11
  import { ComponentCustomProps } from 'vue';
@@ -29,6 +31,7 @@ import { DialogOverlayProps } from 'reka-ui';
29
31
  import { DialogTitleProps } from 'reka-ui';
30
32
  import { Directive } from 'vue';
31
33
  import { DropdownMenuContentProps } from 'reka-ui';
34
+ import { EmitFn } from 'vue';
32
35
  import { Facade } from '@noeldemartin/utils';
33
36
  import { FocusOutsideEvent } from 'reka-ui';
34
37
  import { GetClosureArgs } from '@noeldemartin/utils';
@@ -164,7 +167,7 @@ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...
164
167
  as?: string;
165
168
  }> & Readonly<{
166
169
  "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
167
- }>, "id" | "value" | "name" | "description" | "errors" | "required" | "label" | "update"> & ShallowUnwrapRef< {
170
+ }>, "id" | "value" | "name" | "description" | "required" | "errors" | "label" | "update"> & ShallowUnwrapRef< {
168
171
  id: string;
169
172
  name: ComputedRef<string | undefined>;
170
173
  label: ComputedRef<string | undefined>;
@@ -180,46 +183,50 @@ default?(_: {}): any;
180
183
  }) | null;
181
184
  }, any>;
182
185
 
183
- declare const __VLS_component_19: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_7> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDetailsElement>;
186
+ declare const __VLS_component_19: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_7> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
184
187
 
185
188
  declare const __VLS_component_2: DefineComponent<ButtonProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ButtonProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
186
189
 
187
- declare const __VLS_component_20: DefineComponent<DropdownMenuProps, {
190
+ declare const __VLS_component_20: DefineComponent<__VLS_Props_8, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
191
+ select: () => any;
192
+ }, string, PublicProps, Readonly<__VLS_Props_8> & Readonly<{
193
+ onSelect?: (() => any) | undefined;
194
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
195
+
196
+ declare const __VLS_component_21: DefineComponent<__VLS_Props_10, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_10> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDetailsElement>;
197
+
198
+ declare const __VLS_component_22: DefineComponent<DropdownMenuProps, {
188
199
  align: "start" | "center" | "end" | undefined;
189
200
  side: "top" | "right" | "bottom" | "left" | undefined;
190
201
  options: ComputedRef<DropdownMenuOptionData[] | undefined>;
191
202
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<DropdownMenuProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
192
203
 
193
- declare const __VLS_component_21: DefineComponent<__VLS_Props_8, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
204
+ declare const __VLS_component_23: DefineComponent<__VLS_Props_11, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
194
205
  select: () => any;
195
- }, string, PublicProps, Readonly<__VLS_Props_8> & Readonly<{
206
+ }, string, PublicProps, Readonly<__VLS_Props_11> & Readonly<{
196
207
  onSelect?: (() => any) | undefined;
197
208
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
198
209
 
199
- declare const __VLS_component_22: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
210
+ declare const __VLS_component_24: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
200
211
 
201
- declare const __VLS_component_23: DefineComponent<__VLS_Props_9, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
212
+ declare const __VLS_component_25: DefineComponent<__VLS_Props_12, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
202
213
  update: (value: string | number) => any;
203
214
  save: () => any;
204
- }, string, PublicProps, Readonly<__VLS_Props_9> & Readonly<{
215
+ }, string, PublicProps, Readonly<__VLS_Props_12> & Readonly<{
205
216
  onUpdate?: ((value: string | number) => any) | undefined;
206
217
  onSave?: (() => any) | undefined;
207
218
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
208
219
  $inputRef: HTMLInputElement;
209
220
  }, HTMLDivElement>;
210
221
 
211
- declare const __VLS_component_24: DefineComponent<__VLS_Props_11, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_11> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
222
+ declare const __VLS_component_26: DefineComponent<__VLS_Props_14, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_14> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
212
223
 
213
- declare const __VLS_component_25: DefineComponent<__VLS_Props_13, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
224
+ declare const __VLS_component_27: DefineComponent<__VLS_Props_16, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
214
225
  submit: () => any;
215
- }, string, PublicProps, Readonly<__VLS_Props_13> & Readonly<{
226
+ }, string, PublicProps, Readonly<__VLS_Props_16> & Readonly<{
216
227
  onSubmit?: (() => any) | undefined;
217
228
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLFormElement>;
218
229
 
219
- declare const __VLS_component_26: DefineComponent<__VLS_Props_15, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_15> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
220
-
221
- declare const __VLS_component_27: DefineComponent<__VLS_Props_16, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_16> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
222
-
223
230
  declare const __VLS_component_28: DefineComponent<__VLS_Props_18, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_18> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
224
231
 
225
232
  declare const __VLS_component_29: DefineComponent<__VLS_Props_19, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_19> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
@@ -239,9 +246,15 @@ update(value: unknown): void;
239
246
  "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
240
247
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
241
248
 
242
- declare const __VLS_component_30: DefineComponent<__VLS_Props_20, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_20> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
249
+ declare const __VLS_component_30: DefineComponent<__VLS_Props_21, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_21> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
250
+
251
+ declare const __VLS_component_31: DefineComponent<__VLS_Props_22, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_22> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
252
+
253
+ declare const __VLS_component_32: DefineComponent<__VLS_Props_23, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_23> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
243
254
 
244
- declare const __VLS_component_31: DefineComponent<__VLS_Props_22, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_22> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
255
+ declare const __VLS_component_33: DefineComponent<__VLS_Props_25, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_25> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
256
+
257
+ declare const __VLS_component_34: DefineComponent<__VLS_Props_28, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_28> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
245
258
 
246
259
  declare const __VLS_component_4: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
247
260
 
@@ -353,38 +366,62 @@ declare type __VLS_PrettifyLocal_5<T> = {
353
366
  [K in keyof T]: T[K];
354
367
  } & {};
355
368
 
369
+ declare type __VLS_PrettifyLocal_6<T> = {
370
+ [K in keyof T]: T[K];
371
+ } & {};
372
+
356
373
  declare type __VLS_Props = InputProps & {
357
374
  as?: string;
358
375
  };
359
376
 
360
377
  declare type __VLS_Props_10 = {
361
- error: ErrorSource;
378
+ label?: string;
379
+ contentClass?: HTMLAttributes['class'];
380
+ summaryClass?: HTMLAttributes['class'];
362
381
  };
363
382
 
364
383
  declare type __VLS_Props_11 = {
384
+ class?: HTMLAttributes['class'];
385
+ } & PrimitiveProps;
386
+
387
+ declare type __VLS_Props_12 = {
388
+ type?: string;
389
+ contentClass?: HTMLAttributes['class'];
390
+ ariaLabel?: string;
391
+ formAriaHidden?: boolean;
392
+ tabindex?: string;
393
+ text: string;
394
+ disabled?: boolean;
395
+ };
396
+
397
+ declare type __VLS_Props_13 = {
398
+ error: ErrorSource;
399
+ };
400
+
401
+ declare type __VLS_Props_14 = {
365
402
  report: ErrorReport;
366
403
  };
367
404
 
368
- declare type __VLS_Props_12 = {
405
+ declare type __VLS_Props_15 = {
369
406
  report: ErrorReport;
370
407
  currentReport?: number;
371
408
  totalReports?: number;
372
409
  };
373
410
 
374
- declare type __VLS_Props_13 = {
411
+ declare type __VLS_Props_16 = {
375
412
  form?: FormController;
376
413
  };
377
414
 
378
- declare type __VLS_Props_14 = InputProps & {
415
+ declare type __VLS_Props_17 = InputProps & {
379
416
  inputClass?: HTMLAttributes['class'];
380
417
  wrapperClass?: HTMLAttributes['class'];
381
418
  descriptionClass?: HTMLAttributes['class'];
382
419
  errorClass?: HTMLAttributes['class'];
383
420
  };
384
421
 
385
- declare type __VLS_Props_15 = Omit<ButtonProps, 'variant'>;
422
+ declare type __VLS_Props_18 = Omit<ButtonProps, 'variant'>;
386
423
 
387
- declare type __VLS_Props_16 = {
424
+ declare type __VLS_Props_19 = {
388
425
  as?: string;
389
426
  inline?: boolean;
390
427
  langKey?: string;
@@ -394,36 +431,36 @@ declare type __VLS_Props_16 = {
394
431
  actions?: Record<string, () => unknown>;
395
432
  };
396
433
 
397
- declare type __VLS_Props_17 = {
434
+ declare type __VLS_Props_2 = {
435
+ type?: string;
436
+ };
437
+
438
+ declare type __VLS_Props_20 = {
398
439
  filledClass?: string;
399
440
  overflowClass?: string;
400
441
  progress?: number;
401
442
  job?: Falsifiable<Job>;
402
443
  };
403
444
 
404
- declare type __VLS_Props_18 = {
445
+ declare type __VLS_Props_21 = {
405
446
  class?: HTMLAttributes['class'];
406
447
  };
407
448
 
408
- declare type __VLS_Props_19 = {
449
+ declare type __VLS_Props_22 = {
409
450
  value: AcceptableValue;
410
451
  class?: HTMLAttributes['class'];
411
452
  innerClass?: HTMLAttributes['class'];
412
453
  };
413
454
 
414
- declare type __VLS_Props_2 = {
415
- type?: string;
416
- };
417
-
418
- declare type __VLS_Props_20 = {
455
+ declare type __VLS_Props_23 = {
419
456
  class?: HTMLAttributes['class'];
420
457
  };
421
458
 
422
- declare type __VLS_Props_21 = {
459
+ declare type __VLS_Props_24 = {
423
460
  class?: HTMLAttributes['class'];
424
461
  };
425
462
 
426
- declare type __VLS_Props_22 = {
463
+ declare type __VLS_Props_25 = {
427
464
  title: string;
428
465
  titleId?: string;
429
466
  description?: string;
@@ -431,15 +468,20 @@ declare type __VLS_Props_22 = {
431
468
  layout?: 'vertical' | 'horizontal';
432
469
  };
433
470
 
434
- declare type __VLS_Props_23 = InputProps & {
471
+ declare type __VLS_Props_26 = InputProps & {
435
472
  inputClass?: HTMLAttributes['class'];
436
473
  wrapperClass?: HTMLAttributes['class'];
437
474
  };
438
475
 
439
- declare type __VLS_Props_24 = ToastProps & {
476
+ declare type __VLS_Props_27 = ToastProps & {
440
477
  class?: HTMLAttributes['class'];
441
478
  };
442
479
 
480
+ declare type __VLS_Props_28 = {
481
+ name: string;
482
+ value: unknown;
483
+ };
484
+
443
485
  declare type __VLS_Props_3 = Omit<LabelProps, 'for'>;
444
486
 
445
487
  declare type __VLS_Props_4 = SelectItemProps;
@@ -454,23 +496,12 @@ declare type __VLS_Props_6 = InputProps & {
454
496
  labelClass?: HTMLAttributes['class'];
455
497
  };
456
498
 
457
- declare type __VLS_Props_7 = {
458
- label: string;
459
- contentClass?: HTMLAttributes['class'];
460
- };
499
+ declare type __VLS_Props_7 = Omit<LabelProps, 'for'>;
461
500
 
462
- declare type __VLS_Props_8 = {
463
- class?: HTMLAttributes['class'];
464
- } & PrimitiveProps;
501
+ declare type __VLS_Props_8 = ComboboxItemProps;
465
502
 
466
503
  declare type __VLS_Props_9 = {
467
- type?: string;
468
- contentClass?: HTMLAttributes['class'];
469
- ariaLabel?: string;
470
- formAriaHidden?: boolean;
471
- tabindex?: string;
472
- text: string;
473
- disabled?: boolean;
504
+ newInputValue?: (value: string) => Nullable<FormFieldValue>;
474
505
  };
475
506
 
476
507
  declare function __VLS_template(): {
@@ -625,7 +656,7 @@ declare function __VLS_template_18(): {
625
656
  as?: string;
626
657
  }> & Readonly<{
627
658
  "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
628
- }>, "id" | "value" | "name" | "description" | "errors" | "required" | "label" | "update"> & ShallowUnwrapRef< {
659
+ }>, "id" | "value" | "name" | "description" | "required" | "errors" | "label" | "update"> & ShallowUnwrapRef< {
629
660
  id: string;
630
661
  name: ComputedRef<string | undefined>;
631
662
  label: ComputedRef<string | undefined>;
@@ -649,7 +680,7 @@ declare function __VLS_template_19(): {
649
680
  default?(_: {}): any;
650
681
  };
651
682
  refs: {};
652
- rootEl: HTMLDetailsElement;
683
+ rootEl: any;
653
684
  };
654
685
 
655
686
  declare function __VLS_template_2(): {
@@ -665,7 +696,6 @@ declare function __VLS_template_20(): {
665
696
  attrs: Partial<{}>;
666
697
  slots: {
667
698
  default?(_: {}): any;
668
- options?(_: {}): any;
669
699
  };
670
700
  refs: {};
671
701
  rootEl: any;
@@ -674,22 +704,42 @@ declare function __VLS_template_20(): {
674
704
  declare function __VLS_template_21(): {
675
705
  attrs: Partial<{}>;
676
706
  slots: {
707
+ label?(_: {}): any;
677
708
  default?(_: {}): any;
678
709
  };
679
710
  refs: {};
680
- rootEl: any;
711
+ rootEl: HTMLDetailsElement;
681
712
  };
682
713
 
683
714
  declare function __VLS_template_22(): {
684
715
  attrs: Partial<{}>;
685
716
  slots: {
686
717
  default?(_: {}): any;
718
+ options?(_: {}): any;
687
719
  };
688
720
  refs: {};
689
721
  rootEl: any;
690
722
  };
691
723
 
692
724
  declare function __VLS_template_23(): {
725
+ attrs: Partial<{}>;
726
+ slots: {
727
+ default?(_: {}): any;
728
+ };
729
+ refs: {};
730
+ rootEl: any;
731
+ };
732
+
733
+ declare function __VLS_template_24(): {
734
+ attrs: Partial<{}>;
735
+ slots: {
736
+ default?(_: {}): any;
737
+ };
738
+ refs: {};
739
+ rootEl: any;
740
+ };
741
+
742
+ declare function __VLS_template_25(): {
693
743
  attrs: Partial<{}>;
694
744
  slots: {
695
745
  default?(_: {}): any;
@@ -700,7 +750,7 @@ declare function __VLS_template_23(): {
700
750
  rootEl: HTMLDivElement;
701
751
  };
702
752
 
703
- declare function __VLS_template_24(): {
753
+ declare function __VLS_template_26(): {
704
754
  attrs: Partial<{}>;
705
755
  slots: Readonly<{
706
756
  default(props: ErrorReportModalButtonsDefaultSlotProps): unknown;
@@ -711,7 +761,7 @@ declare function __VLS_template_24(): {
711
761
  rootEl: HTMLDivElement;
712
762
  };
713
763
 
714
- declare function __VLS_template_25(): {
764
+ declare function __VLS_template_27(): {
715
765
  attrs: Partial<{}>;
716
766
  slots: {
717
767
  default?(_: {}): any;
@@ -720,7 +770,7 @@ declare function __VLS_template_25(): {
720
770
  rootEl: HTMLFormElement;
721
771
  };
722
772
 
723
- declare function __VLS_template_26(): {
773
+ declare function __VLS_template_28(): {
724
774
  attrs: Partial<{}>;
725
775
  slots: {
726
776
  default?(_: {}): any;
@@ -729,7 +779,7 @@ declare function __VLS_template_26(): {
729
779
  rootEl: any;
730
780
  };
731
781
 
732
- declare function __VLS_template_27(): {
782
+ declare function __VLS_template_29(): {
733
783
  attrs: Partial<{}>;
734
784
  slots: Readonly<{
735
785
  default?(): VNode[];
@@ -740,7 +790,7 @@ declare function __VLS_template_27(): {
740
790
  rootEl: any;
741
791
  };
742
792
 
743
- declare function __VLS_template_28(): {
793
+ declare function __VLS_template_3(): {
744
794
  attrs: Partial<{}>;
745
795
  slots: {
746
796
  default?(_: {}): any;
@@ -749,7 +799,7 @@ declare function __VLS_template_28(): {
749
799
  rootEl: any;
750
800
  };
751
801
 
752
- declare function __VLS_template_29(): {
802
+ declare function __VLS_template_30(): {
753
803
  attrs: Partial<{}>;
754
804
  slots: {
755
805
  default?(_: {}): any;
@@ -758,7 +808,7 @@ declare function __VLS_template_29(): {
758
808
  rootEl: any;
759
809
  };
760
810
 
761
- declare function __VLS_template_3(): {
811
+ declare function __VLS_template_31(): {
762
812
  attrs: Partial<{}>;
763
813
  slots: {
764
814
  default?(_: {}): any;
@@ -767,7 +817,7 @@ declare function __VLS_template_3(): {
767
817
  rootEl: any;
768
818
  };
769
819
 
770
- declare function __VLS_template_30(): {
820
+ declare function __VLS_template_32(): {
771
821
  attrs: Partial<{}>;
772
822
  slots: {
773
823
  default?(_: {}): any;
@@ -777,7 +827,7 @@ declare function __VLS_template_30(): {
777
827
  rootEl: any;
778
828
  };
779
829
 
780
- declare function __VLS_template_31(): {
830
+ declare function __VLS_template_33(): {
781
831
  attrs: Partial<{}>;
782
832
  slots: {
783
833
  default?(_: {}): any;
@@ -786,6 +836,15 @@ declare function __VLS_template_31(): {
786
836
  rootEl: HTMLDivElement;
787
837
  };
788
838
 
839
+ declare function __VLS_template_34(): {
840
+ attrs: Partial<{}>;
841
+ slots: {
842
+ default?(_: {}): any;
843
+ };
844
+ refs: {};
845
+ rootEl: any;
846
+ };
847
+
789
848
  declare function __VLS_template_4(): {
790
849
  attrs: Partial<{}>;
791
850
  slots: {
@@ -970,6 +1029,12 @@ declare type __VLS_TemplateResult_30 = ReturnType<typeof __VLS_template_30>;
970
1029
 
971
1030
  declare type __VLS_TemplateResult_31 = ReturnType<typeof __VLS_template_31>;
972
1031
 
1032
+ declare type __VLS_TemplateResult_32 = ReturnType<typeof __VLS_template_32>;
1033
+
1034
+ declare type __VLS_TemplateResult_33 = ReturnType<typeof __VLS_template_33>;
1035
+
1036
+ declare type __VLS_TemplateResult_34 = ReturnType<typeof __VLS_template_34>;
1037
+
973
1038
  declare type __VLS_TemplateResult_4 = ReturnType<typeof __VLS_template_4>;
974
1039
 
975
1040
  declare type __VLS_TemplateResult_5 = ReturnType<typeof __VLS_template_5>;
@@ -1132,6 +1197,24 @@ declare type __VLS_WithTemplateSlots_31<T, S> = T & {
1132
1197
  };
1133
1198
  };
1134
1199
 
1200
+ declare type __VLS_WithTemplateSlots_32<T, S> = T & {
1201
+ new (): {
1202
+ $slots: S;
1203
+ };
1204
+ };
1205
+
1206
+ declare type __VLS_WithTemplateSlots_33<T, S> = T & {
1207
+ new (): {
1208
+ $slots: S;
1209
+ };
1210
+ };
1211
+
1212
+ declare type __VLS_WithTemplateSlots_34<T, S> = T & {
1213
+ new (): {
1214
+ $slots: S;
1215
+ };
1216
+ };
1217
+
1135
1218
  declare type __VLS_WithTemplateSlots_4<T, S> = T & {
1136
1219
  new (): {
1137
1220
  $slots: S;
@@ -1240,7 +1323,7 @@ export declare interface AppSetting {
1240
1323
  export declare const AppToasts: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
1241
1324
 
1242
1325
  export declare function booleanInput(defaultValue?: boolean, options?: {
1243
- rules?: string;
1326
+ rules?: string[];
1244
1327
  }): FormFieldDefinition<'boolean'>;
1245
1328
 
1246
1329
  export declare function bootServices(app: App_2, services: Record<string, Service>): Promise<void>;
@@ -1284,6 +1367,118 @@ export declare function classes(...inputs: ClassValue[]): string;
1284
1367
 
1285
1368
  export { closeModal }
1286
1369
 
1370
+ export declare const Combobox: <T extends Nullable<FormFieldValue>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_4<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
1371
+ props: __VLS_PrettifyLocal_4<Pick<Partial<{}> & Omit<{
1372
+ readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
1373
+ } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onUpdate:modelValue"> & (SelectProps<T> & {
1374
+ newInputValue?: (value: string) => T;
1375
+ }) & Partial<{}>> & PublicProps;
1376
+ expose(exposed: ShallowUnwrapRef< {
1377
+ renderOption: (option: T) => string;
1378
+ labelClass: ComputedRef<any>;
1379
+ optionsClass: ComputedRef<any>;
1380
+ align: ComputedRef<"start" | "center" | "end" | undefined>;
1381
+ side: ComputedRef<"top" | "right" | "bottom" | "left" | undefined>;
1382
+ value: ComputedRef<T>;
1383
+ id: string;
1384
+ name: ComputedRef<string | undefined>;
1385
+ label: ComputedRef<string | undefined>;
1386
+ description: ComputedRef<string | undefined>;
1387
+ placeholder: ComputedRef<string>;
1388
+ options: ComputedRef< {
1389
+ key: string;
1390
+ label: string;
1391
+ value: AcceptableValue;
1392
+ }[] | null>;
1393
+ selectedOption: ComputedRef< {
1394
+ key: string;
1395
+ label: string;
1396
+ value: AcceptableValue;
1397
+ } | undefined>;
1398
+ errors: Readonly<Ref<readonly string[] | null, readonly string[] | null>>;
1399
+ required: ComputedRef<boolean | undefined>;
1400
+ update(value: T): void;
1401
+ }>): void;
1402
+ attrs: any;
1403
+ slots: {};
1404
+ emit: (evt: "update:modelValue", value: T) => void;
1405
+ }>) => VNode & {
1406
+ __ctx?: Awaited<typeof __VLS_setup>;
1407
+ };
1408
+
1409
+ export declare type ComboboxContext = {
1410
+ input: string;
1411
+ preventChange: boolean;
1412
+ $group: HTMLDivElement | null;
1413
+ };
1414
+
1415
+ export declare const ComboboxLabel: __VLS_WithTemplateSlots_19<typeof __VLS_component_19, __VLS_TemplateResult_19["slots"]>;
1416
+
1417
+ export declare const ComboboxOption: __VLS_WithTemplateSlots_20<typeof __VLS_component_20, __VLS_TemplateResult_20["slots"]>;
1418
+
1419
+ export declare const ComboboxOptions: DefineComponent<__VLS_Props_9, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1420
+ select: () => any;
1421
+ }, string, PublicProps, Readonly<__VLS_Props_9> & Readonly<{
1422
+ onSelect?: (() => any) | undefined;
1423
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
1424
+ $group: ({
1425
+ $: ComponentInternalInstance;
1426
+ $data: {};
1427
+ $props: {
1428
+ readonly asChild?: boolean | undefined;
1429
+ readonly as?: (AsTag | Component) | undefined;
1430
+ } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
1431
+ $attrs: {
1432
+ [x: string]: unknown;
1433
+ };
1434
+ $refs: {
1435
+ [x: string]: unknown;
1436
+ };
1437
+ $slots: Readonly<{
1438
+ [name: string]: Slot<any> | undefined;
1439
+ }>;
1440
+ $root: ComponentPublicInstance | null;
1441
+ $parent: ComponentPublicInstance | null;
1442
+ $host: Element | null;
1443
+ $emit: (event: string, ...args: any[]) => void;
1444
+ $el: any;
1445
+ $options: ComponentOptionsBase<Readonly<ComboboxGroupProps> & Readonly<{}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
1446
+ beforeCreate?: (() => void) | (() => void)[];
1447
+ created?: (() => void) | (() => void)[];
1448
+ beforeMount?: (() => void) | (() => void)[];
1449
+ mounted?: (() => void) | (() => void)[];
1450
+ beforeUpdate?: (() => void) | (() => void)[];
1451
+ updated?: (() => void) | (() => void)[];
1452
+ activated?: (() => void) | (() => void)[];
1453
+ deactivated?: (() => void) | (() => void)[];
1454
+ beforeDestroy?: (() => void) | (() => void)[];
1455
+ beforeUnmount?: (() => void) | (() => void)[];
1456
+ destroyed?: (() => void) | (() => void)[];
1457
+ unmounted?: (() => void) | (() => void)[];
1458
+ renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
1459
+ renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
1460
+ errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
1461
+ };
1462
+ $forceUpdate: () => void;
1463
+ $nextTick: typeof nextTick;
1464
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
1465
+ } & Readonly<{}> & Omit<Readonly<ComboboxGroupProps> & Readonly<{}>, never> & ShallowUnwrapRef< {}> & {} & ComponentCustomProperties & {} & {
1466
+ $slots: {
1467
+ default?: (props: {}) => any;
1468
+ };
1469
+ }) | null;
1470
+ }, any>;
1471
+
1472
+ export declare const ComboboxTrigger: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1473
+ focus: () => any;
1474
+ blur: () => any;
1475
+ change: () => any;
1476
+ }, string, PublicProps, Readonly<{}> & Readonly<{
1477
+ onFocus?: (() => any) | undefined;
1478
+ onBlur?: (() => any) | undefined;
1479
+ onChange?: (() => any) | undefined;
1480
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
1481
+
1287
1482
  export declare type ComponentPropDefinitions<T> = {
1288
1483
  [K in keyof T]: {
1289
1484
  type?: PropType<T[K]>;
@@ -1362,7 +1557,7 @@ export declare type CVAConfig<T> = NonNullable<GetClosureArgs<typeof cva<T>>[1]>
1362
1557
  export declare type CVAProps<T> = NonNullable<GetClosureArgs<GetClosureResult<typeof cva<T>>>[0]>;
1363
1558
 
1364
1559
  export declare function dateInput(defaultValue?: Date, options?: {
1365
- rules?: string;
1560
+ rules?: string[];
1366
1561
  }): FormFieldDefinition<'date'>;
1367
1562
 
1368
1563
  declare const _default: ServiceWithState< {
@@ -1436,7 +1631,7 @@ export declare type DefaultServiceState = any;
1436
1631
 
1437
1632
  export declare function defineDirective<TValue = any, TModifiers extends string = string>(directive: Directive<any, TValue, TModifiers>): Directive<any, TValue, TModifiers>;
1438
1633
 
1439
- export declare function defineFormValidationRule<T>(rule: string, validator: FormFieldValidator<T>): void;
1634
+ export declare function defineFormValidationRules<T extends Record<string, FormFieldValidator>>(rules: T): T;
1440
1635
 
1441
1636
  export declare function definePlugin<T extends Plugin_2>(plugin: T): T;
1442
1637
 
@@ -1454,11 +1649,11 @@ export declare function defineServiceStore<Id extends string, S extends StateTre
1454
1649
 
1455
1650
  export declare function defineSettings<T extends AppSetting[]>(settings: T): T;
1456
1651
 
1457
- export declare const Details: __VLS_WithTemplateSlots_19<typeof __VLS_component_19, __VLS_TemplateResult_19["slots"]>;
1652
+ export declare const Details: __VLS_WithTemplateSlots_21<typeof __VLS_component_21, __VLS_TemplateResult_21["slots"]>;
1458
1653
 
1459
1654
  export declare function dispatch(job: Job): Promise<void>;
1460
1655
 
1461
- export declare const DropdownMenu: __VLS_WithTemplateSlots_20<typeof __VLS_component_20, __VLS_TemplateResult_20["slots"]>;
1656
+ export declare const DropdownMenu: __VLS_WithTemplateSlots_22<typeof __VLS_component_22, __VLS_TemplateResult_22["slots"]>;
1462
1657
 
1463
1658
  export declare interface DropdownMenuExpose {
1464
1659
  align?: DropdownMenuContentProps['align'];
@@ -1466,7 +1661,7 @@ export declare interface DropdownMenuExpose {
1466
1661
  options?: readonly DropdownMenuOptionData[];
1467
1662
  }
1468
1663
 
1469
- export declare const DropdownMenuOption: __VLS_WithTemplateSlots_21<typeof __VLS_component_21, __VLS_TemplateResult_21["slots"]>;
1664
+ export declare const DropdownMenuOption: __VLS_WithTemplateSlots_23<typeof __VLS_component_23, __VLS_TemplateResult_23["slots"]>;
1470
1665
 
1471
1666
  export declare type DropdownMenuOptionData = {
1472
1667
  label: string;
@@ -1478,7 +1673,7 @@ export declare type DropdownMenuOptionData = {
1478
1673
  class?: string;
1479
1674
  };
1480
1675
 
1481
- export declare const DropdownMenuOptions: __VLS_WithTemplateSlots_22<typeof __VLS_component_22, __VLS_TemplateResult_22["slots"]>;
1676
+ export declare const DropdownMenuOptions: __VLS_WithTemplateSlots_24<typeof __VLS_component_24, __VLS_TemplateResult_24["slots"]>;
1482
1677
 
1483
1678
  export declare interface DropdownMenuProps {
1484
1679
  align?: DropdownMenuContentProps['align'];
@@ -1486,7 +1681,7 @@ export declare interface DropdownMenuProps {
1486
1681
  options?: readonly Falsifiable<DropdownMenuOptionData>[];
1487
1682
  }
1488
1683
 
1489
- export declare const EditableContent: __VLS_WithTemplateSlots_23<typeof __VLS_component_23, __VLS_TemplateResult_23["slots"]>;
1684
+ export declare const EditableContent: __VLS_WithTemplateSlots_25<typeof __VLS_component_25, __VLS_TemplateResult_25["slots"]>;
1490
1685
 
1491
1686
  export declare interface ElementSize {
1492
1687
  width: number;
@@ -1494,7 +1689,7 @@ export declare interface ElementSize {
1494
1689
  }
1495
1690
 
1496
1691
  export declare function enumInput<const T extends string>(values: readonly T[], defaultValue?: T, options?: {
1497
- rules?: string;
1692
+ rules?: string[];
1498
1693
  }): FormFieldDefinition<'enum', string, T>;
1499
1694
 
1500
1695
  export declare type ErrorHandler = (error: ErrorSource) => boolean;
@@ -1505,7 +1700,7 @@ export declare const ErrorLogs: DefineComponent< {}, {}, {}, {}, {}, Componen
1505
1700
 
1506
1701
  export declare const ErrorLogsModal: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
1507
1702
 
1508
- export declare const ErrorMessage: DefineComponent<__VLS_Props_10, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_10> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
1703
+ export declare const ErrorMessage: DefineComponent<__VLS_Props_13, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_13> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
1509
1704
 
1510
1705
  export declare interface ErrorReport {
1511
1706
  title: string;
@@ -1524,7 +1719,7 @@ export declare const ErrorReportModal: DefineComponent<ErrorReportModalProps, {
1524
1719
  $content: ModalContentInstance;
1525
1720
  }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ErrorReportModalProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
1526
1721
 
1527
- export declare const ErrorReportModalButtons: __VLS_WithTemplateSlots_24<typeof __VLS_component_24, __VLS_TemplateResult_24["slots"]>;
1722
+ export declare const ErrorReportModalButtons: __VLS_WithTemplateSlots_26<typeof __VLS_component_26, __VLS_TemplateResult_26["slots"]>;
1528
1723
 
1529
1724
  declare interface ErrorReportModalButtonsDefaultSlotProps {
1530
1725
  id: string;
@@ -1542,7 +1737,7 @@ export declare interface ErrorReportModalProps {
1542
1737
  reports: ErrorReport[];
1543
1738
  }
1544
1739
 
1545
- export declare const ErrorReportModalTitle: DefineComponent<__VLS_Props_12, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_12> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
1740
+ export declare const ErrorReportModalTitle: DefineComponent<__VLS_Props_15, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_15> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
1546
1741
 
1547
1742
  export declare const Errors: Facade<ErrorsService>;
1548
1743
 
@@ -1622,7 +1817,7 @@ export declare type Falsifiable<T> = Nullable<T> | false;
1622
1817
 
1623
1818
  export declare type FocusFormListener = (input: string) => unknown;
1624
1819
 
1625
- export declare const Form: __VLS_WithTemplateSlots_25<typeof __VLS_component_25, __VLS_TemplateResult_25["slots"]>;
1820
+ export declare const Form: __VLS_WithTemplateSlots_27<typeof __VLS_component_27, __VLS_TemplateResult_27["slots"]>;
1626
1821
 
1627
1822
  export declare class FormController<Fields extends FormFieldDefinitions = FormFieldDefinitions> extends MagicObject {
1628
1823
  errors: DeepReadonly<UnwrapNestedRefs<FormErrors<Fields>>>;
@@ -1673,7 +1868,7 @@ export declare interface FormFieldDefinition<TType extends FormFieldType = FormF
1673
1868
  type: TType;
1674
1869
  trim?: boolean;
1675
1870
  default?: GetFormFieldValue<TType>;
1676
- rules?: TRules;
1871
+ rules?: TRules[];
1677
1872
  values?: readonly TValueType[];
1678
1873
  [__valueType]?: TValueType;
1679
1874
  }
@@ -1692,6 +1887,8 @@ export declare function getErrorMessage(error: ErrorSource): string;
1692
1887
 
1693
1888
  export declare type GetFormFieldValue<TType, TValueType = unknown> = TType extends 'string' ? string : TType extends 'number' ? number : TType extends 'boolean' ? boolean : TType extends 'enum' ? TValueType : TType extends 'object' ? TValueType extends object ? TValueType : object : TType extends 'date' ? Date : never;
1694
1889
 
1890
+ export declare function getLocalTimezoneOffset(date?: Nullable<Date>): number;
1891
+
1695
1892
  export declare function getMarkdownRouter(): MarkdownRouter | null;
1696
1893
 
1697
1894
  export { GetModalProps }
@@ -1747,10 +1944,11 @@ export declare const HeadlessSelect: <T extends Nullable<FormFieldValue>>(__VLS_
1747
1944
  readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
1748
1945
  } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onUpdate:modelValue"> & SelectProps<T> & Partial<{}>> & PublicProps;
1749
1946
  expose(exposed: ShallowUnwrapRef< {
1750
- labelClass: any;
1751
- optionsClass: any;
1752
- align: "start" | "center" | "end" | undefined;
1753
- side: "top" | "right" | "bottom" | "left" | undefined;
1947
+ renderOption: (option: T) => string;
1948
+ labelClass: ComputedRef<any>;
1949
+ optionsClass: ComputedRef<any>;
1950
+ align: ComputedRef<"start" | "center" | "end" | undefined>;
1951
+ side: ComputedRef<"top" | "right" | "bottom" | "left" | undefined>;
1754
1952
  value: ComputedRef<T>;
1755
1953
  id: string;
1756
1954
  name: ComputedRef<string | undefined>;
@@ -1829,9 +2027,9 @@ export declare function injectReactive<T extends object>(key: InjectionKey<T> |
1829
2027
 
1830
2028
  export declare function injectReactiveOrFail<T extends object>(key: InjectionKey<T> | string, errorMessage?: string): UnwrapNestedRefs<T>;
1831
2029
 
1832
- export declare const Input: DefineComponent<__VLS_Props_14, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2030
+ export declare const Input: DefineComponent<__VLS_Props_17, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
1833
2031
  "update:modelValue": (value: unknown) => any;
1834
- }, string, PublicProps, Readonly<__VLS_Props_14> & Readonly<{
2032
+ }, string, PublicProps, Readonly<__VLS_Props_17> & Readonly<{
1835
2033
  "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
1836
2034
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
1837
2035
  $inputRef: ({
@@ -1898,7 +2096,7 @@ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...
1898
2096
  as?: string;
1899
2097
  }> & Readonly<{
1900
2098
  "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
1901
- }>, "id" | "value" | "name" | "description" | "errors" | "required" | "label" | "update"> & ShallowUnwrapRef< {
2099
+ }>, "id" | "value" | "name" | "description" | "required" | "errors" | "label" | "update"> & ShallowUnwrapRef< {
1902
2100
  id: string;
1903
2101
  name: ComputedRef<string | undefined>;
1904
2102
  label: ComputedRef<string | undefined>;
@@ -2006,7 +2204,7 @@ export declare const Layouts: {
2006
2204
  readonly Desktop: "desktop";
2007
2205
  };
2008
2206
 
2009
- export declare const Link: __VLS_WithTemplateSlots_26<typeof __VLS_component_26, __VLS_TemplateResult_26["slots"]>;
2207
+ export declare const Link: __VLS_WithTemplateSlots_28<typeof __VLS_component_28, __VLS_TemplateResult_28["slots"]>;
2010
2208
 
2011
2209
  export declare const LoadingModal: DefineComponent<LoadingModalProps, {
2012
2210
  $content: ModalContentInstance;
@@ -2029,9 +2227,7 @@ export declare type LoadingOptions = AcceptRefs<{
2029
2227
  delay?: number;
2030
2228
  }>;
2031
2229
 
2032
- export declare const LOCAL_TIMEZONE_OFFSET: number;
2033
-
2034
- export declare const Markdown: __VLS_WithTemplateSlots_27<typeof __VLS_component_27, __VLS_TemplateResult_27["slots"]>;
2230
+ export declare const Markdown: __VLS_WithTemplateSlots_29<typeof __VLS_component_29, __VLS_TemplateResult_29["slots"]>;
2035
2231
 
2036
2232
  export declare interface MarkdownRouter {
2037
2233
  resolve(route: string): string;
@@ -2051,8 +2247,8 @@ export declare const MINUTE_MILLISECONDS = 60000;
2051
2247
 
2052
2248
  export declare const MOBILE_BREAKPOINT = 768;
2053
2249
 
2054
- export declare const Modal: <T = void>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_4<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
2055
- props: __VLS_PrettifyLocal_4<Pick<Partial<{}> & Omit<{} & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, never> & (ModalProps & {
2250
+ export declare const Modal: <T = void>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_5<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
2251
+ props: __VLS_PrettifyLocal_5<Pick<Partial<{}> & Omit<{} & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, never> & (ModalProps & {
2056
2252
  wrapperClass?: HTMLAttributes["class"];
2057
2253
  class?: HTMLAttributes["class"];
2058
2254
  closeHidden?: boolean;
@@ -2100,11 +2296,11 @@ export declare interface ModalSlots<Result = never> {
2100
2296
  export { ModalsPortal }
2101
2297
 
2102
2298
  export declare function numberInput(defaultValue?: number, options?: {
2103
- rules?: string;
2299
+ rules?: string[];
2104
2300
  }): FormFieldDefinition<'number'>;
2105
2301
 
2106
2302
  export declare function objectInput<T extends object>(defaultValue?: T, options?: {
2107
- rules?: string;
2303
+ rules?: string[];
2108
2304
  }): FormFieldDefinition<'object', string, T>;
2109
2305
 
2110
2306
  export declare function onCleanMounted(operation: () => Function): void;
@@ -2125,7 +2321,7 @@ declare interface Plugin_2 {
2125
2321
  }
2126
2322
  export { Plugin_2 as Plugin }
2127
2323
 
2128
- export declare const ProgressBar: DefineComponent<__VLS_Props_17, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_17> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
2324
+ export declare const ProgressBar: DefineComponent<__VLS_Props_20, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_20> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
2129
2325
 
2130
2326
  export declare const PromptModal: DefineComponent<PromptModalProps, {
2131
2327
  $content: ModalContentInstance;
@@ -2166,9 +2362,13 @@ export declare type PromptOptions = AcceptRefs<{
2166
2362
  trim?: boolean;
2167
2363
  }>;
2168
2364
 
2365
+ export declare const Provide: __VLS_WithTemplateSlots_34<typeof __VLS_component_34, __VLS_TemplateResult_34["slots"]>;
2366
+
2169
2367
  export declare type ReactiveSet<T = unknown> = ReturnType<typeof reactiveSet<T>>;
2170
2368
 
2171
- export declare function reactiveSet<T>(initial?: T[] | Set<T>): {
2369
+ export declare function reactiveSet<T>(initial?: T[] | Set<T>, options?: {
2370
+ equals?: (a: T, b: T) => boolean;
2371
+ }): {
2172
2372
  values(): T[];
2173
2373
  has(item: T): boolean;
2174
2374
  add(item: T): void;
@@ -2181,6 +2381,8 @@ export declare type RefUnion<T> = T extends infer R ? Ref<R> : never;
2181
2381
 
2182
2382
  export declare function registerErrorHandler(handler: ErrorHandler_2): void;
2183
2383
 
2384
+ export declare function registerFormValidationRule<T>(rule: string, validator: FormFieldValidator<T>): void;
2385
+
2184
2386
  export declare function renderMarkdown(markdown: string): string;
2185
2387
 
2186
2388
  export declare function renderVNode(node: VNode | string): string;
@@ -2191,24 +2393,36 @@ export declare type Replace<TOriginal extends Record<string, unknown>, TReplacem
2191
2393
 
2192
2394
  export declare function replaceExisting<TOriginal extends Record<string, unknown>, TReplacements extends Partial<Record<keyof TOriginal, unknown>>>(original: TOriginal, replacements: TReplacements): Replace<TOriginal, TReplacements>;
2193
2395
 
2194
- export declare function requiredBooleanInput(defaultValue?: boolean): FormFieldDefinition<'boolean', 'required'>;
2396
+ export declare function requiredBooleanInput(defaultValue?: boolean, options?: {
2397
+ rules?: string[];
2398
+ }): FormFieldDefinition<'boolean', 'required'>;
2195
2399
 
2196
- export declare function requiredDateInput(defaultValue?: Date): FormFieldDefinition<'date', 'required'>;
2400
+ export declare function requiredDateInput(defaultValue?: Date, options?: {
2401
+ rules?: string[];
2402
+ }): FormFieldDefinition<'date', 'required'>;
2197
2403
 
2198
- export declare function requiredEnumInput<const T extends string>(values: readonly T[], defaultValue?: T): FormFieldDefinition<'enum', 'required', T>;
2404
+ export declare function requiredEnumInput<const T extends string>(values: readonly T[], defaultValue?: T, options?: {
2405
+ rules?: string[];
2406
+ }): FormFieldDefinition<'enum', 'required', T>;
2199
2407
 
2200
- export declare function requiredNumberInput(defaultValue?: number): FormFieldDefinition<'number', 'required'>;
2408
+ export declare function requiredNumberInput(defaultValue?: number, options?: {
2409
+ rules?: string[];
2410
+ }): FormFieldDefinition<'number', 'required'>;
2201
2411
 
2202
- export declare function requiredObjectInput<T extends object>(defaultValue?: T): FormFieldDefinition<'object', 'required', T>;
2412
+ export declare function requiredObjectInput<T extends object>(defaultValue?: T, options?: {
2413
+ rules?: string[];
2414
+ }): FormFieldDefinition<'object', 'required', T>;
2203
2415
 
2204
- export declare function requiredStringInput(defaultValue?: string): FormFieldDefinition<'string', 'required'>;
2416
+ export declare function requiredStringInput(defaultValue?: string, options?: {
2417
+ rules?: string[];
2418
+ }): FormFieldDefinition<'string', 'required'>;
2205
2419
 
2206
2420
  export declare function resetPiniaStore(): Pinia;
2207
2421
 
2208
2422
  export declare function safeHtml(html: string): string;
2209
2423
 
2210
- export declare const Select: <T extends Nullable<FormFieldValue>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_5<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
2211
- props: __VLS_PrettifyLocal_5<Pick<Partial<{}> & Omit<{
2424
+ export declare const Select: <T extends Nullable<FormFieldValue>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal_6<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
2425
+ props: __VLS_PrettifyLocal_6<Pick<Partial<{}> & Omit<{
2212
2426
  readonly "onUpdate:modelValue"?: ((value: T) => any) | undefined;
2213
2427
  } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onUpdate:modelValue"> & SelectProps<T> & Partial<{}>> & PublicProps;
2214
2428
  expose(exposed: ShallowUnwrapRef< {}>): void;
@@ -2228,15 +2442,16 @@ export declare interface SelectExpose<T extends Nullable<FormFieldValue> = Nulla
2228
2442
  options: ComputedRef<Nullable<readonly SelectOptionData[]>>;
2229
2443
  selectedOption: ComputedRef<Nullable<SelectOptionData>>;
2230
2444
  placeholder: ComputedRef<string>;
2231
- labelClass?: HTMLAttributes['class'];
2232
- optionsClass?: HTMLAttributes['class'];
2445
+ labelClass: ComputedRef<HTMLAttributes['class']>;
2446
+ optionsClass: ComputedRef<HTMLAttributes['class']>;
2233
2447
  align?: SelectContentProps['align'];
2234
2448
  side?: SelectContentProps['side'];
2449
+ renderOption: (option: T) => string;
2235
2450
  }
2236
2451
 
2237
- export declare const SelectLabel: __VLS_WithTemplateSlots_28<typeof __VLS_component_28, __VLS_TemplateResult_28["slots"]>;
2452
+ export declare const SelectLabel: __VLS_WithTemplateSlots_30<typeof __VLS_component_30, __VLS_TemplateResult_30["slots"]>;
2238
2453
 
2239
- export declare const SelectOption: __VLS_WithTemplateSlots_29<typeof __VLS_component_29, __VLS_TemplateResult_29["slots"]>;
2454
+ export declare const SelectOption: __VLS_WithTemplateSlots_31<typeof __VLS_component_31, __VLS_TemplateResult_31["slots"]>;
2240
2455
 
2241
2456
  export declare type SelectOptionData = {
2242
2457
  key: string;
@@ -2244,7 +2459,7 @@ export declare type SelectOptionData = {
2244
2459
  value: AcceptableValue;
2245
2460
  };
2246
2461
 
2247
- export declare const SelectOptions: __VLS_WithTemplateSlots_30<typeof __VLS_component_30, __VLS_TemplateResult_30["slots"]>;
2462
+ export declare const SelectOptions: __VLS_WithTemplateSlots_32<typeof __VLS_component_32, __VLS_TemplateResult_32["slots"]>;
2248
2463
 
2249
2464
  export declare interface SelectProps<T extends Nullable<FormFieldValue> = Nullable<FormFieldValue>> extends InputProps<T> {
2250
2465
  as?: AsTag | Component;
@@ -2258,7 +2473,7 @@ export declare interface SelectProps<T extends Nullable<FormFieldValue> = Nullab
2258
2473
  side?: SelectContentProps['side'];
2259
2474
  }
2260
2475
 
2261
- export declare const SelectTrigger: DefineComponent<__VLS_Props_21, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_21> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
2476
+ export declare const SelectTrigger: DefineComponent<__VLS_Props_24, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_24> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
2262
2477
 
2263
2478
  export declare class Service<State extends ServiceState = DefaultServiceState, ComputedState extends ServiceState = {}, ServiceStorage = Partial<State>> extends MagicObject {
2264
2479
  static persist: string[];
@@ -2325,7 +2540,7 @@ export declare type ServiceWithState<State extends ServiceState = ServiceState,
2325
2540
 
2326
2541
  export declare function setMarkdownRouter(markdownRouter: MarkdownRouter): void;
2327
2542
 
2328
- export declare const Setting: __VLS_WithTemplateSlots_31<typeof __VLS_component_31, __VLS_TemplateResult_31["slots"]>;
2543
+ export declare const Setting: __VLS_WithTemplateSlots_33<typeof __VLS_component_33, __VLS_TemplateResult_33["slots"]>;
2329
2544
 
2330
2545
  export declare const SettingsModal: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
2331
2546
 
@@ -2345,16 +2560,16 @@ declare class StorageService extends Service {
2345
2560
  }
2346
2561
 
2347
2562
  export declare function stringInput(defaultValue?: string, options?: {
2348
- rules?: string;
2563
+ rules?: string[];
2349
2564
  }): FormFieldDefinition<'string'>;
2350
2565
 
2351
2566
  export declare type SubmitFormListener = () => unknown;
2352
2567
 
2353
2568
  export declare const Switch: DefineComponent< {}, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
2354
2569
 
2355
- export declare const TextArea: DefineComponent<__VLS_Props_23, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2570
+ export declare const TextArea: DefineComponent<__VLS_Props_26, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
2356
2571
  "update:modelValue": (value: unknown) => any;
2357
- }, string, PublicProps, Readonly<__VLS_Props_23> & Readonly<{
2572
+ }, string, PublicProps, Readonly<__VLS_Props_26> & Readonly<{
2358
2573
  "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
2359
2574
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
2360
2575
  $inputRef: ({
@@ -2421,7 +2636,7 @@ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...
2421
2636
  as?: string;
2422
2637
  }> & Readonly<{
2423
2638
  "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
2424
- }>, "id" | "value" | "name" | "description" | "errors" | "required" | "label" | "update"> & ShallowUnwrapRef< {
2639
+ }>, "id" | "value" | "name" | "description" | "required" | "errors" | "label" | "update"> & ShallowUnwrapRef< {
2425
2640
  id: string;
2426
2641
  name: ComputedRef<string | undefined>;
2427
2642
  label: ComputedRef<string | undefined>;
@@ -2437,7 +2652,7 @@ default?(_: {}): any;
2437
2652
  }) | null;
2438
2653
  }, any>;
2439
2654
 
2440
- export declare const Toast: DefineComponent<__VLS_Props_24, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_24> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
2655
+ export declare const Toast: DefineComponent<__VLS_Props_27, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_27> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
2441
2656
 
2442
2657
  export declare interface ToastAction {
2443
2658
  label: string;
@@ -2587,6 +2802,38 @@ export declare function usePromptModal(props: PromptModalProps): {
2587
2802
  renderedCancelText: ComputedRef<string>;
2588
2803
  };
2589
2804
 
2805
+ export declare function useSelect<T extends Nullable<FormFieldValue>>(props: Ref<SelectProps<T>>, emit: EmitFn<SelectEmits<T>>): {
2806
+ expose: {
2807
+ renderOption: (option: T) => string;
2808
+ labelClass: ComputedRef<any>;
2809
+ optionsClass: ComputedRef<any>;
2810
+ align: ComputedRef<"start" | "center" | "end" | undefined>;
2811
+ side: ComputedRef<"top" | "right" | "bottom" | "left" | undefined>;
2812
+ value: ComputedRef<T>;
2813
+ id: string;
2814
+ name: ComputedRef<string | undefined>;
2815
+ label: ComputedRef<string | undefined>;
2816
+ description: ComputedRef<string | undefined>;
2817
+ placeholder: ComputedRef<string>;
2818
+ options: ComputedRef<{
2819
+ key: string;
2820
+ label: string;
2821
+ value: AcceptableValue;
2822
+ }[] | null>;
2823
+ selectedOption: ComputedRef<{
2824
+ key: string;
2825
+ label: string;
2826
+ value: AcceptableValue;
2827
+ } | undefined>;
2828
+ errors: Readonly<Ref<readonly string[] | null, readonly string[] | null>>;
2829
+ required: ComputedRef<boolean | undefined>;
2830
+ update(value: T): void;
2831
+ };
2832
+ acceptableValue: ComputedRef<AcceptableValue>;
2833
+ update: (value: AcceptableValue) => void;
2834
+ renderOption: (option: T) => string;
2835
+ };
2836
+
2590
2837
  export declare function validate(value: unknown, rule: string): string[];
2591
2838
 
2592
2839
  export declare function validateType(value: unknown, definition: FormFieldDefinition): string[];
@@ -2662,6 +2909,7 @@ declare module '@aerogel/core' {
2662
2909
  interface AerogelOptions {
2663
2910
  services?: Record<string, Service>;
2664
2911
  settings?: AppSetting[];
2912
+ formValidationRules?: Record<string, FormFieldValidator>;
2665
2913
  settingsFullscreenOnMobile?: boolean;
2666
2914
  }
2667
2915
  }