@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 +156 -4
- package/dist/vui.cjs.prod.js +156 -4
- package/dist/vui.css +37 -2
- package/dist/vui.d.ts +141 -0
- package/dist/vui.esm-bundler.js +152 -6
- package/dist/vui.min.css +1 -1
- package/dist/vui.min.css.map +1 -1
- package/package.json +11 -9
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':
|
|
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.cjs.prod.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':
|
|
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:
|
|
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";
|