@fastkit/vui 0.6.35 → 0.6.36

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.
package/dist/vui.css CHANGED
@@ -812,6 +812,31 @@ thead th {
812
812
  --control-field-rem: var(--control-field-rem-lg);
813
813
  font-size: var(--control-field-rem);
814
814
  }
815
+
816
+ .wysiwyg > h1:first-child,
817
+ .wysiwyg h2:first-child,
818
+ .wysiwyg h3:first-child,
819
+ .wysiwyg h4:first-child,
820
+ .wysiwyg h5:first-child,
821
+ .wysiwyg h6:first-child,
822
+ .wysiwyg p:first-child,
823
+ .wysiwyg ul:first-child,
824
+ .wysiwyg ol:first-child,
825
+ .wysiwyg table:first-child {
826
+ margin-top: 0;
827
+ }
828
+ .wysiwyg > h1:last-child,
829
+ .wysiwyg h2:last-child,
830
+ .wysiwyg h3:last-child,
831
+ .wysiwyg h4:last-child,
832
+ .wysiwyg h5:last-child,
833
+ .wysiwyg h6:last-child,
834
+ .wysiwyg p:last-child,
835
+ .wysiwyg ul:last-child,
836
+ .wysiwyg ol:last-child,
837
+ .wysiwyg table:last-child {
838
+ margin-bottom: 0;
839
+ }
815
840
  .v-form-selector__body {
816
841
  display: block;
817
842
  }
package/dist/vui.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import { AllowedComponentProps } from 'vue';
2
2
  import { App } from 'vue';
3
+ import { BoldOptions } from '@tiptap/extension-bold';
4
+ import { BulletListOptions } from '@tiptap/extension-bullet-list';
5
+ import { ChainedCommands } from '@tiptap/vue-3';
3
6
  import { ColorVariant , ThemeName, PaletteName, ScopeName } from '@fastkit/color-scheme';
4
7
  import { ComponentCustomProps } from 'vue';
5
8
  import { ComponentOptionsMixin } from 'vue';
@@ -8,8 +11,10 @@ import { CSSProperties } from 'vue';
8
11
  import { DefineComponent } from 'vue';
9
12
  import { Editor } from '@tiptap/vue-3';
10
13
  import { EmitsOptions } from 'vue';
14
+ import { Extensions } from '@tiptap/vue-3';
11
15
  import { ExtractPropInput } from '@fastkit/vue-utils';
12
16
  import { ExtractPropTypes } from 'vue';
17
+ import { FocusPosition } from '@tiptap/vue-3';
13
18
  import { FormAction } from '@fastkit/vue-kit';
14
19
  import { FormAutoCapitalize } from '@fastkit/vue-kit';
15
20
  import { FormControlSlots } from '@fastkit/vue-kit';
@@ -20,15 +25,19 @@ import { FormSelectorItemControl } from '@fastkit/vue-kit';
20
25
  import { FormSelectorItemData } from '@fastkit/vue-kit';
21
26
  import { FormSelectorItemGroupControl } from '@fastkit/vue-kit';
22
27
  import { FormSelectorValue } from '@fastkit/vue-kit';
28
+ import { HistoryOptions } from '@tiptap/extension-history';
23
29
  import { ICON_NAMES , IconName } from '@fastkit/icon-font';
24
30
  import { IconName } from '@fastkit/icon-font';
25
31
  import { IMaskEvent } from '@fastkit/vue-kit';
26
32
  import { IMaskTypedValue } from '@fastkit/vue-kit';
27
33
  import { InjectionKey } from 'vue';
34
+ import { ItalicOptions } from '@tiptap/extension-italic';
35
+ import { LinkOptions } from '@tiptap/extension-link';
28
36
  import { LocationService } from '@fastkit/vue-utils';
29
37
  import { NavigationableInheritProps } from '@fastkit/vue-utils';
30
38
  import { NavigationFailure } from 'vue-router';
31
39
  import { Numberish } from '@fastkit/vue-kit';
40
+ import { OrderedListOptions } from '@tiptap/extension-ordered-list';
32
41
  import { Prop } from 'vue';
33
42
  import { PropType } from 'vue';
34
43
  import { RawTextableFinishingProp } from '@fastkit/vue-kit';
@@ -51,18 +60,21 @@ import { TextareaAutosizeSettings } from '@fastkit/vue-kit';
51
60
  import { TextareaControl } from '@fastkit/vue-kit';
52
61
  import { TextInputControl } from '@fastkit/vue-kit';
53
62
  import { TypedSlot } from '@fastkit/vue-kit';
63
+ import { UnderlineOptions } from '@tiptap/extension-underline';
54
64
  import { useLink } from 'vue-router';
55
65
  import { ValidateTiming } from '@fastkit/vue-kit';
56
66
  import { ValidationResult } from '@fastkit/vue-kit';
57
67
  import { VDialog } from '@fastkit/vue-kit';
68
+ import { VDialogProps } from '@fastkit/vue-kit';
58
69
  import { VMenu } from '@fastkit/vue-kit';
59
70
  import { VNode } from 'vue';
60
71
  import { VNodeChild } from 'vue';
61
72
  import { VNodeChildOrSlot } from '@fastkit/vue-kit';
62
73
  import { VNodeProps } from 'vue';
63
74
  import { VSnackbar } from '@fastkit/vue-kit';
64
- import type { VueColorSchemePluginSettings } from '@fastkit/vue-kit';
75
+ import { VueColorSchemePluginSettings } from '@fastkit/vue-kit';
65
76
  import { VueForm } from '@fastkit/vue-kit';
77
+ import { VueStackService } from '@fastkit/vue-kit';
66
78
  import { VueStackServiceOptions } from '@fastkit/vue-kit';
67
79
  import { WritableComputedRef } from 'vue';
68
80
 
@@ -254,6 +266,78 @@ export declare function createPaperProps(): {
254
266
  elevation: PropType<VuiElevationValue>;
255
267
  };
256
268
 
269
+ declare function createTextFieldProps(): {
270
+ 'v-slots': PropType<ResolveRawSlots<FormControlSlots & InputBoxSlots>>;
271
+ size: {
272
+ type: PropType<"sm" | "md" | "lg">;
273
+ validator: (value: any) => boolean;
274
+ };
275
+ variant: {
276
+ type: PropType<"flat" | "outlined" | "filled">;
277
+ validator: (value: any) => boolean;
278
+ };
279
+ startAdornment: PropType<VNodeChildOrSlot<any>>;
280
+ endAdornment: PropType<VNodeChildOrSlot<any>>;
281
+ tabindex: {
282
+ type: (StringConstructor | NumberConstructor)[];
283
+ default: number;
284
+ };
285
+ nodeControl: PropType<FormNodeControl<any, any>>;
286
+ label: PropType<VNodeChildOrSlot<any>>;
287
+ hint: PropType<VNodeChildOrSlot<any>>;
288
+ infoAppends: PropType<VNodeChildOrSlot<any>>;
289
+ validating: BooleanConstructor;
290
+ pending: BooleanConstructor;
291
+ focused: BooleanConstructor;
292
+ dirty: BooleanConstructor;
293
+ pristine: BooleanConstructor;
294
+ errors: {
295
+ type: PropType<FormNodeError[]>;
296
+ default: () => FormNodeError[];
297
+ };
298
+ disabled: BooleanConstructor;
299
+ readonly: BooleanConstructor;
300
+ touched: BooleanConstructor;
301
+ untouched: BooleanConstructor;
302
+ required: BooleanConstructor;
303
+ invalid: BooleanConstructor;
304
+ valid: BooleanConstructor;
305
+ hiddenInfo: BooleanConstructor;
306
+ type: {
307
+ type: PropType<"number" | "search" | "email" | "tel" | "url" | "color" | "date" | "datetime-local" | "month" | "password" | "text" | "time">;
308
+ default: string;
309
+ };
310
+ masked: StringConstructor;
311
+ typed: (StringConstructor | NumberConstructor | DateConstructor)[];
312
+ unmasked: StringConstructor;
313
+ mask: PropType<any>;
314
+ minlength: (StringConstructor | NumberConstructor)[];
315
+ maxlength: (StringConstructor | NumberConstructor)[];
316
+ pattern: (StringConstructor | RegExpConstructor)[];
317
+ placeholder: StringConstructor;
318
+ autocapitalize: PropType<FormAutoCapitalize>;
319
+ finishings: PropType<RawTextableFinishingProp>;
320
+ counter: PropType<string | number | boolean>;
321
+ counterValue: PropType<(value: string) => number>;
322
+ limit: BooleanConstructor;
323
+ autocomplete: PropType<boolean | "name" | "off" | "on" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "email" | "username" | "new-password" | "current-password" | "one-time-code" | "organization-title" | "organization" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level4" | "address-level3" | "address-level2" | "address-level1" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "language" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-extension" | "impp" | "url" | "photo">;
324
+ name: StringConstructor;
325
+ modelValue: Prop<string, string>;
326
+ autofocus: BooleanConstructor;
327
+ spellcheck: BooleanConstructor;
328
+ viewonly: BooleanConstructor;
329
+ validateTiming: {
330
+ type: PropType<ValidateTiming>;
331
+ default: ValidateTiming;
332
+ };
333
+ rules: {
334
+ type: PropType<RecursiveArray<Rule<any>>>;
335
+ default: () => never[];
336
+ };
337
+ error: BooleanConstructor;
338
+ errorMessages: PropType<string | string[]>;
339
+ };
340
+
257
341
  declare const DATA_TABLE_DEFAULTS: {
258
342
  itemKey: string;
259
343
  pageQuery: string;
@@ -624,6 +708,10 @@ export declare type RawVButtonIcon = IconName | VButtonIcon;
624
708
 
625
709
  export declare type RawVButtonSpacer = boolean | VButtonSpacer;
626
710
 
711
+ export declare type RawVuiPromptOptions = string | VuiPromptOptions;
712
+
713
+ declare type RawWysiwygEditorTool = WysiwygEditorTool | WysiwygEditorToolFactory<any>;
714
+
627
715
  declare type RecursiveArray<T> = T | RecursiveArray<T>[];
628
716
 
629
717
  export declare function renderNavigationItemInput(input: NavigationItemInput, extraProps?: Record<string, unknown> & VNodeProps): JSX.Element;
@@ -698,6 +786,8 @@ declare interface RuleValidateOptions {
698
786
  eachPrefix?: string;
699
787
  }
700
788
 
789
+ export declare type TextFieldInput = ExtractPropInput<ReturnType<typeof createTextFieldProps>>;
790
+
701
791
  declare type ToggleableIconHook = (gen: IconGenerator, ctx: boolean) => VNodeChild;
702
792
 
703
793
  export declare function useControl(props: ControlProps, opts?: UseControlProviderOptions): ControlProvider;
@@ -1516,6 +1606,7 @@ export declare const VDrawerLayout: DefineComponent<{
1516
1606
  }>;
1517
1607
 
1518
1608
  export declare const VForm: DefineComponent<{
1609
+ disableAutoScroll: BooleanConstructor;
1519
1610
  'v-slots': PropType<ResolveRawSlots<VFormSlots>>;
1520
1611
  size: {
1521
1612
  type: PropType<"sm" | "md" | "lg">;
@@ -1601,6 +1692,7 @@ export declare const VForm: DefineComponent<{
1601
1692
  focus: (ev: FocusEvent) => boolean;
1602
1693
  blur: (ev: FocusEvent) => boolean;
1603
1694
  }, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
1695
+ disableAutoScroll?: unknown;
1604
1696
  'v-slots'?: unknown;
1605
1697
  size?: unknown;
1606
1698
  action?: unknown;
@@ -1632,6 +1724,7 @@ export declare const VForm: DefineComponent<{
1632
1724
  rules: RecursiveArray<Rule<any>>;
1633
1725
  submiting: boolean;
1634
1726
  autoValidate: boolean;
1727
+ disableAutoScroll: boolean;
1635
1728
  } & {
1636
1729
  name?: string | undefined;
1637
1730
  modelValue?: unknown;
@@ -1660,6 +1753,7 @@ export declare const VForm: DefineComponent<{
1660
1753
  rules: RecursiveArray<Rule<any>>;
1661
1754
  submiting: boolean;
1662
1755
  autoValidate: boolean;
1756
+ disableAutoScroll: boolean;
1663
1757
  }>;
1664
1758
 
1665
1759
  export declare interface VFormSlots {
@@ -4002,6 +4096,8 @@ export declare const VUI_TEXT_FIELD_SYMBOL = "vui-text-field";
4002
4096
 
4003
4097
  export declare const VUI_TEXTAREA_SYMBOL = "vui-textarea";
4004
4098
 
4099
+ export declare const VUI_WYSIWYG_EDITOR_SYMBOL = "vui-wysiwyg-editor";
4100
+
4005
4101
  export declare interface VuiColorProvider {
4006
4102
  primary: ComputedRef<ScopeName>;
4007
4103
  error: ComputedRef<ScopeName>;
@@ -4030,6 +4126,12 @@ export declare interface VuiPluginOptions extends VuiServiceOptions {
4030
4126
  export declare interface VuiPluginStackOptions extends VueStackServiceOptions {
4031
4127
  }
4032
4128
 
4129
+ export declare interface VuiPromptOptions extends Partial<VDialogProps> {
4130
+ input?: Omit<TextFieldInput, 'modelValue'> & {
4131
+ initialValue?: string;
4132
+ };
4133
+ }
4134
+
4033
4135
  export declare class VuiService {
4034
4136
  readonly options: VuiServiceOptions;
4035
4137
  readonly selectionSeparator: VuiVNodeResolver;
@@ -4038,7 +4140,8 @@ export declare class VuiService {
4038
4140
  readonly requiredChip?: VuiVNodeResolver;
4039
4141
  readonly router: Router;
4040
4142
  readonly location: LocationService;
4041
- constructor(options: VuiServiceOptions);
4143
+ readonly stack: VueStackService;
4144
+ constructor(options: VuiServiceOptions, stackService: VueStackService);
4042
4145
  configure(options?: Partial<VuiServiceOptions>): void;
4043
4146
  getRouterLink(): {
4044
4147
  new (): {
@@ -4063,6 +4166,11 @@ export declare class VuiService {
4063
4166
  icon<K extends keyof VuiServiceIconSettings>(iconType: K): VuiServiceIconSettings[K];
4064
4167
  getAutoScrollToElementOffsetTop(): number;
4065
4168
  getRequiredChip(): VNodeChild;
4169
+ dialog(...args: Parameters<VueStackService['dialog']>): Promise<any>;
4170
+ alert(...args: Parameters<VueStackService['alert']>): Promise<any>;
4171
+ confirm(...args: Parameters<VueStackService['confirm']>): Promise<any>;
4172
+ snackbar(...args: Parameters<VueStackService['snackbar']>): Promise<any>;
4173
+ prompt(rawOptions?: RawVuiPromptOptions): Promise<any>;
4066
4174
  }
4067
4175
 
4068
4176
  export declare interface VuiServiceIconSettings {
@@ -4071,6 +4179,16 @@ export declare interface VuiServiceIconSettings {
4071
4179
  prev: RawIconProp;
4072
4180
  next: RawIconProp;
4073
4181
  sort: RawIconProp;
4182
+ editorTextColor: IconName;
4183
+ editorformatBold: IconName;
4184
+ editorformatUnderline: IconName;
4185
+ editorformatItalic: IconName;
4186
+ editorformatListBulleted: IconName;
4187
+ editorformatListNumbered: IconName;
4188
+ editorLink: IconName;
4189
+ editorLinkOff: IconName;
4190
+ editorUndo: IconName;
4191
+ editorRedo: IconName;
4074
4192
  }
4075
4193
 
4076
4194
  export declare interface VuiServiceOptions {
@@ -4114,6 +4232,10 @@ export declare interface VuiServiceUISettings {
4114
4232
  export declare type VuiVNodeResolver = () => VNodeChild;
4115
4233
 
4116
4234
  export declare const VWysiwygEditor: DefineComponent<{
4235
+ tools: {
4236
+ type: PropType<RawWysiwygEditorTool[]>;
4237
+ default: () => never[];
4238
+ };
4117
4239
  'v-slots': PropType<ResolveRawSlots<FormControlSlots & InputBoxSlots>>;
4118
4240
  size: {
4119
4241
  type: PropType<"sm" | "md" | "lg">;
@@ -4150,9 +4272,86 @@ export declare const VWysiwygEditor: DefineComponent<{
4150
4272
  invalid: BooleanConstructor;
4151
4273
  valid: BooleanConstructor;
4152
4274
  hiddenInfo: BooleanConstructor;
4275
+ minlength: (StringConstructor | NumberConstructor)[];
4276
+ maxlength: (StringConstructor | NumberConstructor)[];
4277
+ pattern: (StringConstructor | RegExpConstructor)[];
4278
+ placeholder: StringConstructor;
4279
+ autocapitalize: PropType<FormAutoCapitalize>;
4280
+ finishings: PropType<RawTextableFinishingProp>;
4281
+ counter: PropType<string | number | boolean>;
4282
+ counterValue: PropType<(value: string) => number>;
4283
+ limit: BooleanConstructor;
4284
+ autocomplete: PropType<boolean | "name" | "off" | "on" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "email" | "username" | "new-password" | "current-password" | "one-time-code" | "organization-title" | "organization" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level4" | "address-level3" | "address-level2" | "address-level1" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "language" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-extension" | "impp" | "url" | "photo">;
4285
+ name: StringConstructor;
4286
+ modelValue: Prop<string, string>;
4287
+ autofocus: BooleanConstructor;
4288
+ spellcheck: BooleanConstructor;
4289
+ viewonly: BooleanConstructor;
4290
+ validateTiming: {
4291
+ type: PropType<ValidateTiming>;
4292
+ default: ValidateTiming;
4293
+ };
4294
+ rules: {
4295
+ type: PropType<RecursiveArray<Rule<any>>>;
4296
+ default: () => never[];
4297
+ };
4298
+ error: BooleanConstructor;
4299
+ errorMessages: PropType<string | string[]>;
4153
4300
  }, {
4301
+ focus: (position?: FocusPosition | undefined, options?: {
4302
+ scrollIntoView?: boolean | undefined;
4303
+ } | undefined) => ChainedCommands;
4304
+ blur: () => ChainedCommands;
4305
+ createTools: (floating?: boolean) => JSX.Element;
4306
+ parentControl: ControlProvider | null;
4307
+ size: ComputedRef<"sm" | "md" | "lg">;
4308
+ classes: ComputedRef<any>;
4309
+ computedMinlength: ComputedRef<number | undefined>;
4310
+ computedMaxlength: ComputedRef<number | undefined>;
4311
+ computedPattern: ComputedRef<string | RegExp | undefined>;
4312
+ computedPlaceholder: ComputedRef<string | undefined>;
4313
+ computedAutocapitalize: ComputedRef<FormAutoCapitalize | undefined>;
4314
+ counterSettings: ComputedRef<TextableCounterSettings | undefined>;
4315
+ counterResult: ComputedRef<TextableCounterResult | undefined>;
4316
+ computedAutocomplete: ComputedRef<"name" | "off" | "on" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "email" | "username" | "new-password" | "current-password" | "one-time-code" | "organization-title" | "organization" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level4" | "address-level3" | "address-level2" | "address-level1" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "language" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-extension" | "impp" | "url" | "photo" | undefined>;
4317
+ nodeControl: FormNodeControl<any, any>;
4318
+ currentValue: WritableComputedRef<string>;
4319
+ computedTabindex: ComputedRef<number>;
4320
+ validating: Ref<boolean>;
4321
+ autofocus: boolean;
4322
+ pending: ComputedRef<boolean>;
4323
+ focused: ComputedRef<boolean>;
4324
+ initialValue: Ref<string>;
4325
+ dirty: ComputedRef<boolean>;
4326
+ pristine: ComputedRef<boolean>;
4327
+ propRules: ComputedRef<RecursiveArray<Rule<any>>>;
4328
+ isRequired: ComputedRef<boolean>;
4329
+ errors: ComputedRef<FormNodeError[]>;
4330
+ firstError: ComputedRef<FormNodeError | undefined>;
4331
+ hasMyError: ComputedRef<boolean>;
4332
+ hasError: ComputedRef<boolean>;
4333
+ isDisabled: ComputedRef<boolean>;
4334
+ isReadonly: ComputedRef<boolean>;
4335
+ canOperation: ComputedRef<boolean>;
4336
+ touched: ComputedRef<boolean>;
4337
+ untouched: ComputedRef<boolean>;
4338
+ isDestroyed: ComputedRef<boolean>;
4339
+ invalid: ComputedRef<boolean>;
4340
+ valid: ComputedRef<boolean>;
4341
+ shouldValidate: ComputedRef<boolean>;
4342
+ spellcheck: ComputedRef<boolean>;
4343
+ submiting: ComputedRef<boolean>;
4344
+ validateSelf: (force?: boolean | undefined) => Promise<ValidationResult>;
4345
+ validate: () => Promise<boolean>;
4154
4346
  editor: Ref<Editor>;
4155
- }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
4347
+ }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
4348
+ 'update:modelValue': (value: string) => boolean;
4349
+ 'update:errors': (errors: FormNodeError[]) => boolean;
4350
+ change: (value: string) => boolean;
4351
+ focus: (ev: FocusEvent) => boolean;
4352
+ blur: (ev: FocusEvent) => boolean;
4353
+ }, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
4354
+ tools?: unknown;
4156
4355
  'v-slots'?: unknown;
4157
4356
  size?: unknown;
4158
4357
  variant?: unknown;
@@ -4177,23 +4376,62 @@ export declare const VWysiwygEditor: DefineComponent<{
4177
4376
  invalid?: unknown;
4178
4377
  valid?: unknown;
4179
4378
  hiddenInfo?: unknown;
4379
+ minlength?: unknown;
4380
+ maxlength?: unknown;
4381
+ pattern?: unknown;
4382
+ placeholder?: unknown;
4383
+ autocapitalize?: unknown;
4384
+ finishings?: unknown;
4385
+ counter?: unknown;
4386
+ counterValue?: unknown;
4387
+ limit?: unknown;
4388
+ autocomplete?: unknown;
4389
+ name?: unknown;
4390
+ modelValue?: unknown;
4391
+ autofocus?: unknown;
4392
+ spellcheck?: unknown;
4393
+ viewonly?: unknown;
4394
+ validateTiming?: unknown;
4395
+ rules?: unknown;
4396
+ error?: unknown;
4397
+ errorMessages?: unknown;
4180
4398
  } & {
4399
+ autofocus: boolean;
4400
+ disabled: boolean;
4401
+ readonly: boolean;
4402
+ spellcheck: boolean;
4403
+ viewonly: boolean;
4404
+ required: boolean;
4405
+ error: boolean;
4406
+ tabindex: string | number;
4407
+ validateTiming: ValidateTiming;
4408
+ rules: RecursiveArray<Rule<any>>;
4409
+ limit: boolean;
4181
4410
  validating: boolean;
4182
4411
  pending: boolean;
4183
4412
  focused: boolean;
4184
4413
  dirty: boolean;
4185
4414
  pristine: boolean;
4186
- disabled: boolean;
4187
- readonly: boolean;
4188
4415
  touched: boolean;
4189
4416
  untouched: boolean;
4190
- required: boolean;
4191
4417
  invalid: boolean;
4192
4418
  valid: boolean;
4193
4419
  hiddenInfo: boolean;
4194
4420
  errors: FormNodeError[];
4195
- tabindex: string | number;
4421
+ tools: RawWysiwygEditorTool[];
4196
4422
  } & {
4423
+ name?: string | undefined;
4424
+ modelValue?: string | undefined;
4425
+ errorMessages?: string | string[] | undefined;
4426
+ autocomplete?: boolean | "name" | "off" | "on" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "email" | "username" | "new-password" | "current-password" | "one-time-code" | "organization-title" | "organization" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level4" | "address-level3" | "address-level2" | "address-level1" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "language" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-extension" | "impp" | "url" | "photo" | undefined;
4427
+ placeholder?: string | undefined;
4428
+ minlength?: string | number | undefined;
4429
+ maxlength?: string | number | undefined;
4430
+ pattern?: string | RegExp | undefined;
4431
+ autocapitalize?: FormAutoCapitalize | undefined;
4432
+ finishings?: RawTextableFinishingProp | undefined;
4433
+ counter?: string | number | boolean | undefined;
4434
+ counterValue?: ((value: string) => number) | undefined;
4197
4435
  nodeControl?: FormNodeControl<any, any> | undefined;
4198
4436
  label?: VNodeChildOrSlot<any>;
4199
4437
  hint?: VNodeChildOrSlot<any>;
@@ -4203,24 +4441,71 @@ export declare const VWysiwygEditor: DefineComponent<{
4203
4441
  variant?: "flat" | "outlined" | "filled" | undefined;
4204
4442
  size?: "sm" | "md" | "lg" | undefined;
4205
4443
  "v-slots"?: ResolveRawSlots<FormControlSlots & InputBoxSlots> | undefined;
4206
- }>, {
4444
+ }> & {
4445
+ onBlur?: ((ev: FocusEvent) => any) | undefined;
4446
+ onChange?: ((value: string) => any) | undefined;
4447
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
4448
+ "onUpdate:errors"?: ((errors: FormNodeError[]) => any) | undefined;
4449
+ onFocus?: ((ev: FocusEvent) => any) | undefined;
4450
+ }, {
4451
+ autofocus: boolean;
4452
+ disabled: boolean;
4453
+ readonly: boolean;
4454
+ spellcheck: boolean;
4455
+ viewonly: boolean;
4456
+ required: boolean;
4457
+ error: boolean;
4458
+ tabindex: string | number;
4459
+ validateTiming: ValidateTiming;
4460
+ rules: RecursiveArray<Rule<any>>;
4461
+ limit: boolean;
4207
4462
  validating: boolean;
4208
4463
  pending: boolean;
4209
4464
  focused: boolean;
4210
4465
  dirty: boolean;
4211
4466
  pristine: boolean;
4212
- disabled: boolean;
4213
- readonly: boolean;
4214
4467
  touched: boolean;
4215
4468
  untouched: boolean;
4216
- required: boolean;
4217
4469
  invalid: boolean;
4218
4470
  valid: boolean;
4219
4471
  hiddenInfo: boolean;
4220
4472
  errors: FormNodeError[];
4221
- tabindex: string | number;
4473
+ tools: RawWysiwygEditorTool[];
4222
4474
  }>;
4223
4475
 
4476
+ export declare const WysiwygBulletListTool: WysiwygEditorToolFactory<BulletListOptions>;
4477
+
4478
+ declare interface WysiwygEditorContext {
4479
+ editor: Editor;
4480
+ vui: VuiService;
4481
+ }
4482
+
4483
+ declare interface WysiwygEditorTool {
4484
+ key: string;
4485
+ icon: IconName | ((ctx: WysiwygEditorContext) => IconName);
4486
+ active?: boolean | ((ctx: WysiwygEditorContext) => boolean);
4487
+ disabled?: boolean | ((ctx: WysiwygEditorContext) => boolean);
4488
+ onClick: (ctx: WysiwygEditorContext, ev: MouseEvent) => any;
4489
+ floating?: boolean;
4490
+ extensions?: Extensions;
4491
+ }
4492
+
4493
+ declare type WysiwygEditorToolFactory<Options = void> = (vui: VuiService, options?: Options) => WysiwygEditorTool | WysiwygEditorTool[];
4494
+
4495
+ export declare const WysiwygFormatBoldTool: WysiwygEditorToolFactory<BoldOptions>;
4496
+
4497
+ export declare const WysiwygFormatItalicTool: WysiwygEditorToolFactory<ItalicOptions>;
4498
+
4499
+ export declare const WysiwygFormatUnderlineTool: WysiwygEditorToolFactory<UnderlineOptions>;
4500
+
4501
+ export declare const WysiwygHistoryTool: WysiwygEditorToolFactory<HistoryOptions>;
4502
+
4503
+ export declare const WysiwygLinkTool: WysiwygEditorToolFactory<LinkOptions>;
4504
+
4505
+ export declare const WysiwygOrderedListTool: WysiwygEditorToolFactory<OrderedListOptions>;
4506
+
4507
+ export declare const WysiwygTextColorTool: WysiwygEditorToolFactory;
4508
+
4224
4509
 
4225
4510
  export * from "@fastkit/vue-kit";
4226
4511
  export * from "@fastkit/vue-loading";