@fastkit/vui 0.6.34 → 0.6.35

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.cjs.js CHANGED
@@ -11,8 +11,14 @@ var vueLoading = require('@fastkit/vue-loading');
11
11
  var iconFont = require('@fastkit/icon-font');
12
12
  var helpers = require('@fastkit/helpers');
13
13
  var vueAppLayout = require('@fastkit/vue-app-layout');
14
+ var vue3 = require('@tiptap/vue-3');
15
+ var StarterKit = require('@tiptap/starter-kit');
14
16
  var vueScroller = require('@fastkit/vue-scroller');
15
17
 
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
19
+
20
+ var StarterKit__default = /*#__PURE__*/_interopDefaultLegacy(StarterKit);
21
+
16
22
  const CONTROL_SIZES = ['sm', 'md', 'lg'];
17
23
  const CONTROL_FIELD_VARIANTS = ['outlined', 'filled', 'flat'];
18
24
 
@@ -479,8 +485,10 @@ const VButton = vue.defineComponent({
479
485
  });
480
486
  const isPlain = vue.computed(() => color.variant.value.value === vui.setting('plainVariant') && color.color.value.value === defaults.color);
481
487
  const isLoading = vue.computed(() => props.loading); // const isDisabled = computed(() => props.disabled);
488
+ // const isRounded = computed(() =>
489
+ // props.rounded != null ? props.rounded : !!icon.value,
490
+ // );
482
491
 
483
- const isRounded = vue.computed(() => props.rounded || !!icon.value);
484
492
  const spacer = vue.computed(() => {
485
493
  const _spacer = props.spacer;
486
494
  if (!_spacer) return;
@@ -490,7 +498,7 @@ const VButton = vue.defineComponent({
490
498
  spacer.value ? `v-button--spacer-${spacer.value}` : undefined, `v-button--${control.size.value}`, {
491
499
  'v-button--loading': isLoading.value,
492
500
  'v-button--icon': !!icon.value,
493
- 'v-button--rounded': isRounded.value,
501
+ 'v-button--rounded': props.rounded,
494
502
  'v-button--plain': isPlain.value
495
503
  }]);
496
504
  return () => {
@@ -511,6 +519,66 @@ const VButton = vue.defineComponent({
511
519
 
512
520
  });
513
521
 
522
+ const VButtonGroup = vue.defineComponent({
523
+ name: 'VButtonGroup',
524
+ props: { ...vueColorScheme.colorSchemeProps(),
525
+ ...createControlProps(),
526
+ disabled: Boolean
527
+ },
528
+
529
+ setup(props, ctx) {
530
+ return () => {
531
+ let buttonLength = 0;
532
+ const children = (vueUtils.renderSlotOrEmpty(ctx.slots) || []).map(node => {
533
+ if (!vue.isVNode(node) || node.type !== VButton) {
534
+ return {
535
+ isButton: false,
536
+ node
537
+ };
538
+ }
539
+
540
+ buttonLength++;
541
+ return {
542
+ isButton: true,
543
+ node
544
+ };
545
+ }); // const children = renderSlotOrEmpty(ctx.slots) || [];
546
+ // const $children = children.map((child) => {
547
+ // if (!isVNode(child) || child.type !== VButton) return child;
548
+ // const $child = cloneVNode(child, {
549
+ // ...props,
550
+ // ...child.props,
551
+ // });
552
+ // return $child;
553
+ // });
554
+
555
+ let buttonIndex = 0;
556
+ const $children = children.map(child => {
557
+ if (child.isButton) {
558
+ buttonIndex++;
559
+ const hasLeft = buttonIndex > 1;
560
+ const hasRight = buttonIndex < buttonLength;
561
+ const childProps = child.node.props;
562
+ return vue.cloneVNode(child.node, { ...props,
563
+ ...childProps,
564
+ rouded: false,
565
+ class: ['v-button-group__item', {
566
+ 'v-button-group__item--has-left': hasLeft,
567
+ 'v-button-group__item--has-right': hasRight
568
+ }]
569
+ });
570
+ }
571
+
572
+ return child.node;
573
+ });
574
+ return vue.createVNode("div", {
575
+ "class": "v-button-group"
576
+ }, [$children]);
577
+ };
578
+ }
579
+
580
+ });
581
+
514
582
  function _isSlot$c(s) {
515
583
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
516
584
  }
@@ -1017,9 +1085,11 @@ const VNavigationItem = vue.defineComponent({
1017
1085
  const to = vue.computed(() => ctx.attrs.to);
1018
1086
  const match = vue.computed(() => {
1019
1087
  const {
1020
- match,
1021
- to
1088
+ match
1022
1089
  } = props;
1090
+ const {
1091
+ to
1092
+ } = ctx.attrs;
1023
1093
  if (match) return match;
1024
1094
  if (!to) return;
1025
1095
  if (typeof to === 'string') return to;
@@ -1974,6 +2044,86 @@ const VTextarea = vue.defineComponent({
1974
2044
 
1975
2045
  });
1976
2046
 
2047
+ const VWysiwygEditor = vue.defineComponent({
2048
+ name: 'VWysiwygEditor',
2049
+ props: { // ...props,
2050
+ ...vueKit.createFormControlProps(),
2051
+ ...createControlFieldProps(),
2052
+ ...createControlFieldProviderProps(),
2053
+ ...createControlProps(),
2054
+ ...vueKit.defineSlotsProps()
2055
+ },
2056
+
2057
+ // emits,
2058
+ setup(props, ctx) {
2059
+ const editor = vue3.useEditor({
2060
+ content: '<p>I’m running Tiptap with Vue.js. 🎉</p>',
2061
+ extensions: [StarterKit__default]
2062
+ }); // const vui = useVui();
2063
+ // const inputControl = useTiptapControl(props, ctx, {
2064
+ // nodeType: VUI_TEXTAREA_SYMBOL,
2065
+ // defaultRows: vui.tiptapRows,
2066
+ // });
2067
+ // const control = useControl(props);
2068
+ // useControlField(props);
2069
+
2070
+ return {
2071
+ editor // ...inputControl.expose(),
2072
+ // ...control,
2073
+
2074
+ };
2075
+ },
2076
+
2077
+ render() {
2078
+ return vue.createVNode(VFormControl, {
2079
+ "nodeControl": this.nodeControl,
2080
+ "label": this.label,
2081
+ "hint": this.hint,
2082
+ "hiddenInfo": this.hiddenInfo,
2083
+ "onClickLabel": ev => {// this.focus();
2084
+ }
2085
+ }, { ...this.$slots,
2086
+ default: () => vue.createVNode(VControlField, {
2087
+ "class": "v-wysiwyg-editor__input",
2088
+ "autoHeight": true,
2089
+ "startAdornment": this.startAdornment,
2090
+ "endAdornment": this.endAdornment
2091
+ }, { ...this.$slots,
2092
+ default: () => {
2093
+ const {
2094
+ editor
2095
+ } = this;
2096
+ return vue.createVNode(vue.Fragment, null, [vue.createVNode(vue3.EditorContent, {
2097
+ "class": "v-wysiwyg-editor__input__element wysiwyg",
2098
+ "editor": editor
2099
+ }, null), !!editor && vue.createVNode(vue3.BubbleMenu, {
2100
+ "class": "v-wysiwyg-editor__bubble-menu",
2101
+ "editor": editor
2102
+ }, {
2103
+ default: () => [vue.createVNode(VButton, {
2104
+ "size": "sm",
2105
+ "onClick": () => {
2106
+ editor.chain().focus().toggleBold().run();
2107
+ }
2108
+ }, {
2109
+ default: () => [vue.createTextVNode("Bold")]
2110
+ })]
2111
+ })]);
2112
+ } // this.tiptapControl.createInputElement({
2113
+ // class: 'v-wysiwyg-editor__input__element',
2114
+ // }),
2115
+
2116
+ }) // infoAppends: () => {
2117
+ // const { counterResult } = this;
2118
+ // if (!counterResult) return;
2119
+ // return <VTextCounter {...counterResult} />;
2120
+ // },
2121
+
2122
+ });
2123
+ }
2124
+
2125
+ });
2126
+
1977
2127
  const {
1978
2128
  props,
1979
2129
  emits
@@ -3500,6 +3650,7 @@ exports.PAGINATION_ALIGNS = PAGINATION_ALIGNS;
3500
3650
  exports.VApp = VApp;
3501
3651
  exports.VBreadcrumbs = VBreadcrumbs;
3502
3652
  exports.VButton = VButton;
3653
+ exports.VButtonGroup = VButtonGroup;
3503
3654
  exports.VCard = VCard;
3504
3655
  exports.VCardActions = VCardActions;
3505
3656
  exports.VCardContent = VCardContent;
@@ -3541,6 +3692,7 @@ exports.VUI_SWITCH_GROUP_SYMBOL = VUI_SWITCH_GROUP_SYMBOL;
3541
3692
  exports.VUI_SWITCH_SYMBOL = VUI_SWITCH_SYMBOL;
3542
3693
  exports.VUI_TEXTAREA_SYMBOL = VUI_TEXTAREA_SYMBOL;
3543
3694
  exports.VUI_TEXT_FIELD_SYMBOL = VUI_TEXT_FIELD_SYMBOL;
3695
+ exports.VWysiwygEditor = VWysiwygEditor;
3544
3696
  exports.VuiColorProviderInjectionKey = VuiColorProviderInjectionKey;
3545
3697
  exports.VuiControlFieldInjectionKey = VuiControlFieldInjectionKey;
3546
3698
  exports.VuiControlInjectionKey = VuiControlInjectionKey;
@@ -11,8 +11,14 @@ var vueLoading = require('@fastkit/vue-loading');
11
11
  var iconFont = require('@fastkit/icon-font');
12
12
  var helpers = require('@fastkit/helpers');
13
13
  var vueAppLayout = require('@fastkit/vue-app-layout');
14
+ var vue3 = require('@tiptap/vue-3');
15
+ var StarterKit = require('@tiptap/starter-kit');
14
16
  var vueScroller = require('@fastkit/vue-scroller');
15
17
 
18
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
19
+
20
+ var StarterKit__default = /*#__PURE__*/_interopDefaultLegacy(StarterKit);
21
+
16
22
  const CONTROL_SIZES = ['sm', 'md', 'lg'];
17
23
  const CONTROL_FIELD_VARIANTS = ['outlined', 'filled', 'flat'];
18
24
 
@@ -479,8 +485,10 @@ const VButton = vue.defineComponent({
479
485
  });
480
486
  const isPlain = vue.computed(() => color.variant.value.value === vui.setting('plainVariant') && color.color.value.value === defaults.color);
481
487
  const isLoading = vue.computed(() => props.loading); // const isDisabled = computed(() => props.disabled);
488
+ // const isRounded = computed(() =>
489
+ // props.rounded != null ? props.rounded : !!icon.value,
490
+ // );
482
491
 
483
- const isRounded = vue.computed(() => props.rounded || !!icon.value);
484
492
  const spacer = vue.computed(() => {
485
493
  const _spacer = props.spacer;
486
494
  if (!_spacer) return;
@@ -490,7 +498,7 @@ const VButton = vue.defineComponent({
490
498
  spacer.value ? `v-button--spacer-${spacer.value}` : undefined, `v-button--${control.size.value}`, {
491
499
  'v-button--loading': isLoading.value,
492
500
  'v-button--icon': !!icon.value,
493
- 'v-button--rounded': isRounded.value,
501
+ 'v-button--rounded': props.rounded,
494
502
  'v-button--plain': isPlain.value
495
503
  }]);
496
504
  return () => {
@@ -511,6 +519,66 @@ const VButton = vue.defineComponent({
511
519
 
512
520
  });
513
521
 
522
+ const VButtonGroup = vue.defineComponent({
523
+ name: 'VButtonGroup',
524
+ props: { ...vueColorScheme.colorSchemeProps(),
525
+ ...createControlProps(),
526
+ disabled: Boolean
527
+ },
528
+
529
+ setup(props, ctx) {
530
+ return () => {
531
+ let buttonLength = 0;
532
+ const children = (vueUtils.renderSlotOrEmpty(ctx.slots) || []).map(node => {
533
+ if (!vue.isVNode(node) || node.type !== VButton) {
534
+ return {
535
+ isButton: false,
536
+ node
537
+ };
538
+ }
539
+
540
+ buttonLength++;
541
+ return {
542
+ isButton: true,
543
+ node
544
+ };
545
+ }); // const children = renderSlotOrEmpty(ctx.slots) || [];
546
+ // const $children = children.map((child) => {
547
+ // if (!isVNode(child) || child.type !== VButton) return child;
548
+ // const $child = cloneVNode(child, {
549
+ // ...props,
550
+ // ...child.props,
551
+ // });
552
+ // return $child;
553
+ // });
554
+
555
+ let buttonIndex = 0;
556
+ const $children = children.map(child => {
557
+ if (child.isButton) {
558
+ buttonIndex++;
559
+ const hasLeft = buttonIndex > 1;
560
+ const hasRight = buttonIndex < buttonLength;
561
+ const childProps = child.node.props;
562
+ return vue.cloneVNode(child.node, { ...props,
563
+ ...childProps,
564
+ rouded: false,
565
+ class: ['v-button-group__item', {
566
+ 'v-button-group__item--has-left': hasLeft,
567
+ 'v-button-group__item--has-right': hasRight
568
+ }]
569
+ });
570
+ }
571
+
572
+ return child.node;
573
+ });
574
+ return vue.createVNode("div", {
575
+ "class": "v-button-group"
576
+ }, [$children]);
577
+ };
578
+ }
579
+
580
+ });
581
+
514
582
  function _isSlot$c(s) {
515
583
  return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
516
584
  }
@@ -1017,9 +1085,11 @@ const VNavigationItem = vue.defineComponent({
1017
1085
  const to = vue.computed(() => ctx.attrs.to);
1018
1086
  const match = vue.computed(() => {
1019
1087
  const {
1020
- match,
1021
- to
1088
+ match
1022
1089
  } = props;
1090
+ const {
1091
+ to
1092
+ } = ctx.attrs;
1023
1093
  if (match) return match;
1024
1094
  if (!to) return;
1025
1095
  if (typeof to === 'string') return to;
@@ -1974,6 +2044,86 @@ const VTextarea = vue.defineComponent({
1974
2044
 
1975
2045
  });
1976
2046
 
2047
+ const VWysiwygEditor = vue.defineComponent({
2048
+ name: 'VWysiwygEditor',
2049
+ props: { // ...props,
2050
+ ...vueKit.createFormControlProps(),
2051
+ ...createControlFieldProps(),
2052
+ ...createControlFieldProviderProps(),
2053
+ ...createControlProps(),
2054
+ ...vueKit.defineSlotsProps()
2055
+ },
2056
+
2057
+ // emits,
2058
+ setup(props, ctx) {
2059
+ const editor = vue3.useEditor({
2060
+ content: '<p>I’m running Tiptap with Vue.js. 🎉</p>',
2061
+ extensions: [StarterKit__default]
2062
+ }); // const vui = useVui();
2063
+ // const inputControl = useTiptapControl(props, ctx, {
2064
+ // nodeType: VUI_TEXTAREA_SYMBOL,
2065
+ // defaultRows: vui.tiptapRows,
2066
+ // });
2067
+ // const control = useControl(props);
2068
+ // useControlField(props);
2069
+
2070
+ return {
2071
+ editor // ...inputControl.expose(),
2072
+ // ...control,
2073
+
2074
+ };
2075
+ },
2076
+
2077
+ render() {
2078
+ return vue.createVNode(VFormControl, {
2079
+ "nodeControl": this.nodeControl,
2080
+ "label": this.label,
2081
+ "hint": this.hint,
2082
+ "hiddenInfo": this.hiddenInfo,
2083
+ "onClickLabel": ev => {// this.focus();
2084
+ }
2085
+ }, { ...this.$slots,
2086
+ default: () => vue.createVNode(VControlField, {
2087
+ "class": "v-wysiwyg-editor__input",
2088
+ "autoHeight": true,
2089
+ "startAdornment": this.startAdornment,
2090
+ "endAdornment": this.endAdornment
2091
+ }, { ...this.$slots,
2092
+ default: () => {
2093
+ const {
2094
+ editor
2095
+ } = this;
2096
+ return vue.createVNode(vue.Fragment, null, [vue.createVNode(vue3.EditorContent, {
2097
+ "class": "v-wysiwyg-editor__input__element wysiwyg",
2098
+ "editor": editor
2099
+ }, null), !!editor && vue.createVNode(vue3.BubbleMenu, {
2100
+ "class": "v-wysiwyg-editor__bubble-menu",
2101
+ "editor": editor
2102
+ }, {
2103
+ default: () => [vue.createVNode(VButton, {
2104
+ "size": "sm",
2105
+ "onClick": () => {
2106
+ editor.chain().focus().toggleBold().run();
2107
+ }
2108
+ }, {
2109
+ default: () => [vue.createTextVNode("Bold")]
2110
+ })]
2111
+ })]);
2112
+ } // this.tiptapControl.createInputElement({
2113
+ // class: 'v-wysiwyg-editor__input__element',
2114
+ // }),
2115
+
2116
+ }) // infoAppends: () => {
2117
+ // const { counterResult } = this;
2118
+ // if (!counterResult) return;
2119
+ // return <VTextCounter {...counterResult} />;
2120
+ // },
2121
+
2122
+ });
2123
+ }
2124
+
2125
+ });
2126
+
1977
2127
  const {
1978
2128
  props,
1979
2129
  emits
@@ -3500,6 +3650,7 @@ exports.PAGINATION_ALIGNS = PAGINATION_ALIGNS;
3500
3650
  exports.VApp = VApp;
3501
3651
  exports.VBreadcrumbs = VBreadcrumbs;
3502
3652
  exports.VButton = VButton;
3653
+ exports.VButtonGroup = VButtonGroup;
3503
3654
  exports.VCard = VCard;
3504
3655
  exports.VCardActions = VCardActions;
3505
3656
  exports.VCardContent = VCardContent;
@@ -3541,6 +3692,7 @@ exports.VUI_SWITCH_GROUP_SYMBOL = VUI_SWITCH_GROUP_SYMBOL;
3541
3692
  exports.VUI_SWITCH_SYMBOL = VUI_SWITCH_SYMBOL;
3542
3693
  exports.VUI_TEXTAREA_SYMBOL = VUI_TEXTAREA_SYMBOL;
3543
3694
  exports.VUI_TEXT_FIELD_SYMBOL = VUI_TEXT_FIELD_SYMBOL;
3695
+ exports.VWysiwygEditor = VWysiwygEditor;
3544
3696
  exports.VuiColorProviderInjectionKey = VuiColorProviderInjectionKey;
3545
3697
  exports.VuiControlFieldInjectionKey = VuiControlFieldInjectionKey;
3546
3698
  exports.VuiControlInjectionKey = VuiControlInjectionKey;
package/dist/vui.css CHANGED
@@ -965,13 +965,14 @@ thead th {
965
965
  .v-button--rounded {
966
966
  --padding: 0;
967
967
  min-width: 0;
968
+ aspect-ratio: 1/1;
968
969
  margin: calc(var(--root-em) * 0.125) calc(var(--root-em) * 0.125);
969
970
  border-radius: 50%;
970
- aspect-ratio: 1/1;
971
971
  --height: auto;
972
972
  }
973
973
  .v-button--icon {
974
- min-width: 0;
974
+ min-width: 1.9285714286em;
975
+ margin: calc(var(--root-em) * 0.125) calc(var(--root-em) * 0.125);
975
976
  --height: 1.9285714286em;
976
977
  --padding: 0em;
977
978
  }
@@ -1010,6 +1011,25 @@ thead th {
1010
1011
  z-index: 1;
1011
1012
  transform: translate(-50%, -50%);
1012
1013
  }
1014
+ .v-button-group {
1015
+ display: inline-flex;
1016
+ align-items: stretch;
1017
+ }
1018
+ .v-button-group__item {
1019
+ position: relative;
1020
+ margin: 0;
1021
+ }
1022
+ .v-button-group__item--has-left {
1023
+ border-top-left-radius: 0;
1024
+ border-bottom-left-radius: 0;
1025
+ }
1026
+ .v-button-group__item--has-right {
1027
+ border-top-right-radius: 0;
1028
+ border-bottom-right-radius: 0;
1029
+ }
1030
+ .v-button-group__item:focus {
1031
+ z-index: 1;
1032
+ }
1013
1033
  .v-pagination {
1014
1034
  --pagination-size: var(--pagination-item-size);
1015
1035
  --pagination-margin: var(--pagination-item-margin);
@@ -1708,6 +1728,21 @@ thead th {
1708
1728
  font-style: italic;
1709
1729
  color: var(--control-disabled-color);
1710
1730
  }
1731
+ .v-wysiwyg-editor__input {
1732
+ cursor: text;
1733
+ }
1734
+ .v-wysiwyg-editor__input__element {
1735
+ width: 100%;
1736
+ min-width: 0;
1737
+ padding: 8px 0;
1738
+ margin: 0;
1739
+ }
1740
+ .v-wysiwyg-editor__input__element .ProseMirror {
1741
+ outline: none;
1742
+ }
1743
+ .v-wysiwyg-editor__input__element p {
1744
+ margin: 0;
1745
+ }
1711
1746
  .v-tabs {
1712
1747
  position: relative;
1713
1748
  width: 100%;
package/dist/vui.d.ts CHANGED
@@ -6,6 +6,7 @@ import { ComponentOptionsMixin } from 'vue';
6
6
  import { ComputedRef } from 'vue';
7
7
  import { CSSProperties } from 'vue';
8
8
  import { DefineComponent } from 'vue';
9
+ import { Editor } from '@tiptap/vue-3';
9
10
  import { EmitsOptions } from 'vue';
10
11
  import { ExtractPropInput } from '@fastkit/vue-utils';
11
12
  import { ExtractPropTypes } from 'vue';
@@ -879,6 +880,38 @@ export declare const VButton: DefineComponent<{
879
880
  ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false" | undefined;
880
881
  }>;
881
882
 
883
+ export declare const VButtonGroup: DefineComponent<{
884
+ disabled: BooleanConstructor;
885
+ size: {
886
+ type: PropType<"sm" | "md" | "lg">;
887
+ validator: (value: any) => boolean;
888
+ };
889
+ variant: PropType<ColorVariant>;
890
+ theme: PropType<ThemeName>;
891
+ color: PropType<ScopeName>;
892
+ textColor: PropType<PaletteName>;
893
+ borderColor: PropType<PaletteName>;
894
+ }, () => JSX.Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
895
+ disabled?: unknown;
896
+ size?: unknown;
897
+ variant?: unknown;
898
+ theme?: unknown;
899
+ color?: unknown;
900
+ textColor?: unknown;
901
+ borderColor?: unknown;
902
+ } & {
903
+ disabled: boolean;
904
+ } & {
905
+ theme?: ThemeName | undefined;
906
+ color?: ScopeName | undefined;
907
+ textColor?: PaletteName | undefined;
908
+ borderColor?: PaletteName | undefined;
909
+ size?: "sm" | "md" | "lg" | undefined;
910
+ variant?: ColorVariant | undefined;
911
+ }>, {
912
+ disabled: boolean;
913
+ }>;
914
+
882
915
  export declare type VButtonIcon = () => VNodeChild;
883
916
 
884
917
  export declare type VButtonProps = ExtractPropInput<typeof vueButtonProps>;
@@ -4080,6 +4113,114 @@ export declare interface VuiServiceUISettings {
4080
4113
 
4081
4114
  export declare type VuiVNodeResolver = () => VNodeChild;
4082
4115
 
4116
+ export declare const VWysiwygEditor: DefineComponent<{
4117
+ 'v-slots': PropType<ResolveRawSlots<FormControlSlots & InputBoxSlots>>;
4118
+ size: {
4119
+ type: PropType<"sm" | "md" | "lg">;
4120
+ validator: (value: any) => boolean;
4121
+ };
4122
+ variant: {
4123
+ type: PropType<"flat" | "outlined" | "filled">;
4124
+ validator: (value: any) => boolean;
4125
+ };
4126
+ startAdornment: PropType<VNodeChildOrSlot<any>>;
4127
+ endAdornment: PropType<VNodeChildOrSlot<any>>;
4128
+ tabindex: {
4129
+ type: (StringConstructor | NumberConstructor)[];
4130
+ default: number;
4131
+ };
4132
+ nodeControl: PropType<FormNodeControl<any, any>>;
4133
+ label: PropType<VNodeChildOrSlot<any>>;
4134
+ hint: PropType<VNodeChildOrSlot<any>>;
4135
+ infoAppends: PropType<VNodeChildOrSlot<any>>;
4136
+ validating: BooleanConstructor;
4137
+ pending: BooleanConstructor;
4138
+ focused: BooleanConstructor;
4139
+ dirty: BooleanConstructor;
4140
+ pristine: BooleanConstructor;
4141
+ errors: {
4142
+ type: PropType<FormNodeError[]>;
4143
+ default: () => FormNodeError[];
4144
+ };
4145
+ disabled: BooleanConstructor;
4146
+ readonly: BooleanConstructor;
4147
+ touched: BooleanConstructor;
4148
+ untouched: BooleanConstructor;
4149
+ required: BooleanConstructor;
4150
+ invalid: BooleanConstructor;
4151
+ valid: BooleanConstructor;
4152
+ hiddenInfo: BooleanConstructor;
4153
+ }, {
4154
+ editor: Ref<Editor>;
4155
+ }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
4156
+ 'v-slots'?: unknown;
4157
+ size?: unknown;
4158
+ variant?: unknown;
4159
+ startAdornment?: unknown;
4160
+ endAdornment?: unknown;
4161
+ tabindex?: unknown;
4162
+ nodeControl?: unknown;
4163
+ label?: unknown;
4164
+ hint?: unknown;
4165
+ infoAppends?: unknown;
4166
+ validating?: unknown;
4167
+ pending?: unknown;
4168
+ focused?: unknown;
4169
+ dirty?: unknown;
4170
+ pristine?: unknown;
4171
+ errors?: unknown;
4172
+ disabled?: unknown;
4173
+ readonly?: unknown;
4174
+ touched?: unknown;
4175
+ untouched?: unknown;
4176
+ required?: unknown;
4177
+ invalid?: unknown;
4178
+ valid?: unknown;
4179
+ hiddenInfo?: unknown;
4180
+ } & {
4181
+ validating: boolean;
4182
+ pending: boolean;
4183
+ focused: boolean;
4184
+ dirty: boolean;
4185
+ pristine: boolean;
4186
+ disabled: boolean;
4187
+ readonly: boolean;
4188
+ touched: boolean;
4189
+ untouched: boolean;
4190
+ required: boolean;
4191
+ invalid: boolean;
4192
+ valid: boolean;
4193
+ hiddenInfo: boolean;
4194
+ errors: FormNodeError[];
4195
+ tabindex: string | number;
4196
+ } & {
4197
+ nodeControl?: FormNodeControl<any, any> | undefined;
4198
+ label?: VNodeChildOrSlot<any>;
4199
+ hint?: VNodeChildOrSlot<any>;
4200
+ infoAppends?: VNodeChildOrSlot<any>;
4201
+ startAdornment?: VNodeChildOrSlot<any>;
4202
+ endAdornment?: VNodeChildOrSlot<any>;
4203
+ variant?: "flat" | "outlined" | "filled" | undefined;
4204
+ size?: "sm" | "md" | "lg" | undefined;
4205
+ "v-slots"?: ResolveRawSlots<FormControlSlots & InputBoxSlots> | undefined;
4206
+ }>, {
4207
+ validating: boolean;
4208
+ pending: boolean;
4209
+ focused: boolean;
4210
+ dirty: boolean;
4211
+ pristine: boolean;
4212
+ disabled: boolean;
4213
+ readonly: boolean;
4214
+ touched: boolean;
4215
+ untouched: boolean;
4216
+ required: boolean;
4217
+ invalid: boolean;
4218
+ valid: boolean;
4219
+ hiddenInfo: boolean;
4220
+ errors: FormNodeError[];
4221
+ tabindex: string | number;
4222
+ }>;
4223
+
4083
4224
 
4084
4225
  export * from "@fastkit/vue-kit";
4085
4226
  export * from "@fastkit/vue-loading";