@fastkit/vui 0.7.17 → 0.7.22

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.
@@ -123,6 +123,7 @@ function viteVuiPlugin(options = {}) {
123
123
  editorUndo: 'mdi-undo-variant',
124
124
  editorRedo: 'mdi-redo-variant',
125
125
  hinttip: 'mdi-help-circle-outline',
126
+ clear: 'mdi-close',
126
127
  // navigationExpand: (gen, active) => {
127
128
  // return gen({
128
129
  // name: 'mdi-menu-down' as any,
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../../../../../../packages/vui/src/tool/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAK9B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA+F/C,MAAM,WAAW,oBACf,SAAQ,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,WAAW,2BACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,OAAO,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAC3B,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAwJrB"}
1
+ {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../../../../../../packages/vui/src/tool/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAK9B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA+F/C,MAAM,WAAW,oBACf,SAAQ,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,WAAW,2BACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,OAAO,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAC3B,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAyJrB"}
package/dist/vui.cjs.js CHANGED
@@ -208,6 +208,30 @@ const {
208
208
  props: props$8,
209
209
  emits: emits$8
210
210
  } = vueKit.createFormControlSettings();
211
+ function createRequiredChipRenderer(required, props, vui = useVui()) {
212
+ return () => {
213
+ if (!required()) return;
214
+ let chip;
215
+ const {
216
+ requiredChip
217
+ } = props;
218
+ if (requiredChip === false) return;
219
+
220
+ if (requiredChip) {
221
+ if (typeof requiredChip === 'string') {
222
+ chip = requiredChip;
223
+ } else if (typeof requiredChip === 'function') {
224
+ chip = requiredChip();
225
+ }
226
+ }
227
+
228
+ if (chip === undefined) {
229
+ chip = vui.getRequiredChip();
230
+ }
231
+
232
+ return chip;
233
+ };
234
+ }
211
235
  const VFormControl = vue.defineComponent({
212
236
  name: 'VFormControl',
213
237
  props: { ...props$8,
@@ -238,6 +262,7 @@ const VFormControl = vue.defineComponent({
238
262
  'v-form-control--invalid': control.invalid,
239
263
  'v-form-control--valid': control.valid
240
264
  }, colorProvider.className(control.invalid && !control.readonly ? 'error' : 'primary')]);
265
+ const getRequiredChip = createRequiredChipRenderer(() => control.required, props, vui);
241
266
  return () => {
242
267
  const label = control.renderLabel();
243
268
  const message = control.renderMessage();
@@ -250,7 +275,7 @@ const VFormControl = vue.defineComponent({
250
275
  "onClick": ev => {
251
276
  ctx.emit('clickLabel', ev, control);
252
277
  }
253
- }, [label, control.required && vui.getRequiredChip(), hinttip && vue.createVNode(vueKit.VTooltip, {
278
+ }, [label, getRequiredChip(), hinttip && vue.createVNode(vueKit.VTooltip, {
254
279
  "top": true,
255
280
  "openOnHover": false
256
281
  }, {
@@ -322,7 +347,8 @@ function defineFormSelectorComponent(opts) {
322
347
  }],
323
348
  "label": this.label,
324
349
  "hint": this.hint,
325
- "hinttip": this.hinttip
350
+ "hinttip": this.hinttip,
351
+ "requiredChip": this.requiredChip
326
352
  }, { ...this.$slots,
327
353
  default: () => vue.createVNode("div", {
328
354
  "class": "v-form-selector__body"
@@ -2060,6 +2086,7 @@ const VSelect = vue.defineComponent({
2060
2086
  "hint": this.hint,
2061
2087
  "hinttip": this.hinttip,
2062
2088
  "hiddenInfo": this.hiddenInfo,
2089
+ "requiredChip": this.requiredChip,
2063
2090
  "onClickLabel": ev => {
2064
2091
  this.focus();
2065
2092
  }
@@ -2122,7 +2149,16 @@ const VSelect = vue.defineComponent({
2122
2149
  }, [vue.createVNode("div", {
2123
2150
  "class": "v-select__selections__inner"
2124
2151
  }, [this.renderSelections(selectedItems)])])],
2125
- endAdornment: () => vue.createVNode(VIcon, {
2152
+ endAdornment: () => this.clearable && this.nodeControl.value != null && vue.createVNode(VButton, {
2153
+ "key": "clear",
2154
+ "icon": this.$vui.icon('clear'),
2155
+ "rounded": true,
2156
+ "onClick": ev => {
2157
+ ev.stopPropagation();
2158
+ this.nodeControl.clear();
2159
+ }
2160
+ }, null) || vue.createVNode(VIcon, {
2161
+ "key": "icon",
2126
2162
  "name": this.iconName,
2127
2163
  "rotate": this.menuOpened ? 180 : 0
2128
2164
  }, null)
@@ -2194,6 +2230,7 @@ const VTextField = vue.defineComponent({
2194
2230
  "label": this.label,
2195
2231
  "hint": this.hint,
2196
2232
  "hinttip": this.hinttip,
2233
+ "requiredChip": this.requiredChip,
2197
2234
  "onClickLabel": ev => {
2198
2235
  this.focus();
2199
2236
  }
@@ -2256,6 +2293,7 @@ const VTextarea = vue.defineComponent({
2256
2293
  "hint": this.hint,
2257
2294
  "hinttip": this.hinttip,
2258
2295
  "hiddenInfo": this.hiddenInfo,
2296
+ "requiredChip": this.requiredChip,
2259
2297
  "onClickLabel": ev => {
2260
2298
  this.focus();
2261
2299
  }
@@ -2479,6 +2517,7 @@ const VWysiwygEditor = vue.defineComponent({
2479
2517
  "hint": this.hint,
2480
2518
  "hinttip": this.hinttip,
2481
2519
  "hiddenInfo": this.hiddenInfo,
2520
+ "requiredChip": this.requiredChip,
2482
2521
  "onClickLabel": ev => {
2483
2522
  this.focus('start', {
2484
2523
  scrollIntoView: true
@@ -4371,6 +4410,7 @@ exports.createListTileProps = createListTileProps;
4371
4410
  exports.createNavigationItemProps = createNavigationItemProps;
4372
4411
  exports.createPaperBaseProps = createPaperBaseProps;
4373
4412
  exports.createPaperProps = createPaperProps;
4413
+ exports.createRequiredChipRenderer = createRequiredChipRenderer;
4374
4414
  exports.defineFormSelectorComponent = defineFormSelectorComponent;
4375
4415
  exports.iconProps = iconProps;
4376
4416
  exports.installVuiPlugin = installVuiPlugin;
@@ -208,6 +208,30 @@ const {
208
208
  props: props$8,
209
209
  emits: emits$8
210
210
  } = vueKit.createFormControlSettings();
211
+ function createRequiredChipRenderer(required, props, vui = useVui()) {
212
+ return () => {
213
+ if (!required()) return;
214
+ let chip;
215
+ const {
216
+ requiredChip
217
+ } = props;
218
+ if (requiredChip === false) return;
219
+
220
+ if (requiredChip) {
221
+ if (typeof requiredChip === 'string') {
222
+ chip = requiredChip;
223
+ } else if (typeof requiredChip === 'function') {
224
+ chip = requiredChip();
225
+ }
226
+ }
227
+
228
+ if (chip === undefined) {
229
+ chip = vui.getRequiredChip();
230
+ }
231
+
232
+ return chip;
233
+ };
234
+ }
211
235
  const VFormControl = vue.defineComponent({
212
236
  name: 'VFormControl',
213
237
  props: { ...props$8,
@@ -238,6 +262,7 @@ const VFormControl = vue.defineComponent({
238
262
  'v-form-control--invalid': control.invalid,
239
263
  'v-form-control--valid': control.valid
240
264
  }, colorProvider.className(control.invalid && !control.readonly ? 'error' : 'primary')]);
265
+ const getRequiredChip = createRequiredChipRenderer(() => control.required, props, vui);
241
266
  return () => {
242
267
  const label = control.renderLabel();
243
268
  const message = control.renderMessage();
@@ -250,7 +275,7 @@ const VFormControl = vue.defineComponent({
250
275
  "onClick": ev => {
251
276
  ctx.emit('clickLabel', ev, control);
252
277
  }
253
- }, [label, control.required && vui.getRequiredChip(), hinttip && vue.createVNode(vueKit.VTooltip, {
278
+ }, [label, getRequiredChip(), hinttip && vue.createVNode(vueKit.VTooltip, {
254
279
  "top": true,
255
280
  "openOnHover": false
256
281
  }, {
@@ -322,7 +347,8 @@ function defineFormSelectorComponent(opts) {
322
347
  }],
323
348
  "label": this.label,
324
349
  "hint": this.hint,
325
- "hinttip": this.hinttip
350
+ "hinttip": this.hinttip,
351
+ "requiredChip": this.requiredChip
326
352
  }, { ...this.$slots,
327
353
  default: () => vue.createVNode("div", {
328
354
  "class": "v-form-selector__body"
@@ -2060,6 +2086,7 @@ const VSelect = vue.defineComponent({
2060
2086
  "hint": this.hint,
2061
2087
  "hinttip": this.hinttip,
2062
2088
  "hiddenInfo": this.hiddenInfo,
2089
+ "requiredChip": this.requiredChip,
2063
2090
  "onClickLabel": ev => {
2064
2091
  this.focus();
2065
2092
  }
@@ -2122,7 +2149,16 @@ const VSelect = vue.defineComponent({
2122
2149
  }, [vue.createVNode("div", {
2123
2150
  "class": "v-select__selections__inner"
2124
2151
  }, [this.renderSelections(selectedItems)])])],
2125
- endAdornment: () => vue.createVNode(VIcon, {
2152
+ endAdornment: () => this.clearable && this.nodeControl.value != null && vue.createVNode(VButton, {
2153
+ "key": "clear",
2154
+ "icon": this.$vui.icon('clear'),
2155
+ "rounded": true,
2156
+ "onClick": ev => {
2157
+ ev.stopPropagation();
2158
+ this.nodeControl.clear();
2159
+ }
2160
+ }, null) || vue.createVNode(VIcon, {
2161
+ "key": "icon",
2126
2162
  "name": this.iconName,
2127
2163
  "rotate": this.menuOpened ? 180 : 0
2128
2164
  }, null)
@@ -2194,6 +2230,7 @@ const VTextField = vue.defineComponent({
2194
2230
  "label": this.label,
2195
2231
  "hint": this.hint,
2196
2232
  "hinttip": this.hinttip,
2233
+ "requiredChip": this.requiredChip,
2197
2234
  "onClickLabel": ev => {
2198
2235
  this.focus();
2199
2236
  }
@@ -2256,6 +2293,7 @@ const VTextarea = vue.defineComponent({
2256
2293
  "hint": this.hint,
2257
2294
  "hinttip": this.hinttip,
2258
2295
  "hiddenInfo": this.hiddenInfo,
2296
+ "requiredChip": this.requiredChip,
2259
2297
  "onClickLabel": ev => {
2260
2298
  this.focus();
2261
2299
  }
@@ -2479,6 +2517,7 @@ const VWysiwygEditor = vue.defineComponent({
2479
2517
  "hint": this.hint,
2480
2518
  "hinttip": this.hinttip,
2481
2519
  "hiddenInfo": this.hiddenInfo,
2520
+ "requiredChip": this.requiredChip,
2482
2521
  "onClickLabel": ev => {
2483
2522
  this.focus('start', {
2484
2523
  scrollIntoView: true
@@ -4371,6 +4410,7 @@ exports.createListTileProps = createListTileProps;
4371
4410
  exports.createNavigationItemProps = createNavigationItemProps;
4372
4411
  exports.createPaperBaseProps = createPaperBaseProps;
4373
4412
  exports.createPaperProps = createPaperProps;
4413
+ exports.createRequiredChipRenderer = createRequiredChipRenderer;
4374
4414
  exports.defineFormSelectorComponent = defineFormSelectorComponent;
4375
4415
  exports.iconProps = iconProps;
4376
4416
  exports.installVuiPlugin = installVuiPlugin;
package/dist/vui.d.ts CHANGED
@@ -48,6 +48,7 @@ import { RawTextareaAutosizeSettings } from '@fastkit/vue-kit';
48
48
  import { Ref } from 'vue';
49
49
  import { RendererElement } from 'vue';
50
50
  import { RendererNode } from 'vue';
51
+ import { RequiredChipSource } from '@fastkit/vue-kit';
51
52
  import { ResolvedFormSelectorItemData } from '@fastkit/vue-kit';
52
53
  import { ResolveRawSlots } from '@fastkit/vue-kit';
53
54
  import { ResolveRawSlots as ResolveRawSlots_2 } from '@fastkit/vue-utils';
@@ -805,6 +806,10 @@ export declare function createPaperProps(): {
805
806
  elevation: PropType<VuiElevationValue>;
806
807
  };
807
808
 
809
+ export declare function createRequiredChipRenderer(required: () => boolean, props: {
810
+ requiredChip?: RequiredChipSource;
811
+ }, vui?: VuiService): () => VNodeChild;
812
+
808
813
  declare function createTextFieldProps(): {
809
814
  'v-slots': PropType<ResolveRawSlots<FormControlSlots & InputBoxSlots>>;
810
815
  size: {
@@ -843,6 +848,7 @@ declare function createTextFieldProps(): {
843
848
  invalid: BooleanConstructor;
844
849
  valid: BooleanConstructor;
845
850
  hiddenInfo: BooleanConstructor;
851
+ requiredChip: PropType<RequiredChipSource>;
846
852
  type: {
847
853
  type: PropType<"number" | "search" | "email" | "tel" | "url" | "color" | "date" | "datetime-local" | "month" | "password" | "text" | "time">;
848
854
  default: string;
@@ -866,6 +872,7 @@ declare function createTextFieldProps(): {
866
872
  autofocus: BooleanConstructor;
867
873
  spellcheck: BooleanConstructor;
868
874
  viewonly: BooleanConstructor;
875
+ clearable: BooleanConstructor;
869
876
  validateTiming: {
870
877
  type: PropType<ValidateTiming>;
871
878
  default: ValidateTiming;
@@ -959,6 +966,7 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
959
966
  invalid: BooleanConstructor;
960
967
  valid: BooleanConstructor;
961
968
  hiddenInfo: BooleanConstructor;
969
+ requiredChip: PropType<RequiredChipSource>;
962
970
  multiple: {
963
971
  type: BooleanConstructor;
964
972
  default: boolean;
@@ -976,6 +984,7 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
976
984
  autofocus: BooleanConstructor;
977
985
  spellcheck: BooleanConstructor;
978
986
  viewonly: BooleanConstructor;
987
+ clearable: BooleanConstructor;
979
988
  validateTiming: {
980
989
  type: PropType<ValidateTiming>;
981
990
  default: ValidateTiming;
@@ -1067,6 +1076,7 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
1067
1076
  invalid?: unknown;
1068
1077
  valid?: unknown;
1069
1078
  hiddenInfo?: unknown;
1079
+ requiredChip?: unknown;
1070
1080
  multiple?: unknown;
1071
1081
  items?: unknown;
1072
1082
  name?: unknown;
@@ -1075,6 +1085,7 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
1075
1085
  autofocus?: unknown;
1076
1086
  spellcheck?: unknown;
1077
1087
  viewonly?: unknown;
1088
+ clearable?: unknown;
1078
1089
  validateTiming?: unknown;
1079
1090
  rules?: unknown;
1080
1091
  error?: unknown;
@@ -1086,6 +1097,7 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
1086
1097
  spellcheck: boolean;
1087
1098
  viewonly: boolean;
1088
1099
  required: boolean;
1100
+ clearable: boolean;
1089
1101
  error: boolean;
1090
1102
  tabindex: string | number;
1091
1103
  validateTiming: ValidateTiming;
@@ -1113,6 +1125,7 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
1113
1125
  hint?: VNodeChildOrSlot<any>;
1114
1126
  hinttip?: string | boolean | (() => VNodeChild) | undefined;
1115
1127
  infoAppends?: VNodeChildOrSlot<any>;
1128
+ requiredChip?: RequiredChipSource | undefined;
1116
1129
  size?: "sm" | "md" | "lg" | undefined;
1117
1130
  "v-slots"?: ResolveRawSlots<FormControlSlots> | undefined;
1118
1131
  }> & {
@@ -1128,6 +1141,7 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
1128
1141
  spellcheck: boolean;
1129
1142
  viewonly: boolean;
1130
1143
  required: boolean;
1144
+ clearable: boolean;
1131
1145
  error: boolean;
1132
1146
  tabindex: string | number;
1133
1147
  validateTiming: ValidateTiming;
@@ -3449,6 +3463,7 @@ export declare const VCheckbox: DefineComponent<{
3449
3463
  spellcheck: BooleanConstructor;
3450
3464
  viewonly: BooleanConstructor;
3451
3465
  required: BooleanConstructor;
3466
+ clearable: BooleanConstructor;
3452
3467
  validateTiming: {
3453
3468
  type: PropType<ValidateTiming>;
3454
3469
  default: ValidateTiming;
@@ -3520,6 +3535,7 @@ export declare const VCheckbox: DefineComponent<{
3520
3535
  spellcheck?: unknown;
3521
3536
  viewonly?: unknown;
3522
3537
  required?: unknown;
3538
+ clearable?: unknown;
3523
3539
  validateTiming?: unknown;
3524
3540
  rules?: unknown;
3525
3541
  error?: unknown;
@@ -3531,6 +3547,7 @@ export declare const VCheckbox: DefineComponent<{
3531
3547
  spellcheck: boolean;
3532
3548
  viewonly: boolean;
3533
3549
  required: boolean;
3550
+ clearable: boolean;
3534
3551
  error: boolean;
3535
3552
  tabindex: string | number;
3536
3553
  validateTiming: ValidateTiming;
@@ -3556,6 +3573,7 @@ export declare const VCheckbox: DefineComponent<{
3556
3573
  spellcheck: boolean;
3557
3574
  viewonly: boolean;
3558
3575
  required: boolean;
3576
+ clearable: boolean;
3559
3577
  error: boolean;
3560
3578
  tabindex: string | number;
3561
3579
  validateTiming: ValidateTiming;
@@ -3595,6 +3613,7 @@ export declare const VCheckboxGroup: DefineComponent<{
3595
3613
  invalid: BooleanConstructor;
3596
3614
  valid: BooleanConstructor;
3597
3615
  hiddenInfo: BooleanConstructor;
3616
+ requiredChip: PropType<RequiredChipSource>;
3598
3617
  multiple: {
3599
3618
  type: BooleanConstructor;
3600
3619
  default: boolean;
@@ -3612,6 +3631,7 @@ export declare const VCheckboxGroup: DefineComponent<{
3612
3631
  autofocus: BooleanConstructor;
3613
3632
  spellcheck: BooleanConstructor;
3614
3633
  viewonly: BooleanConstructor;
3634
+ clearable: BooleanConstructor;
3615
3635
  validateTiming: {
3616
3636
  type: PropType<ValidateTiming>;
3617
3637
  default: ValidateTiming;
@@ -3703,6 +3723,7 @@ export declare const VCheckboxGroup: DefineComponent<{
3703
3723
  invalid?: unknown;
3704
3724
  valid?: unknown;
3705
3725
  hiddenInfo?: unknown;
3726
+ requiredChip?: unknown;
3706
3727
  multiple?: unknown;
3707
3728
  items?: unknown;
3708
3729
  name?: unknown;
@@ -3711,6 +3732,7 @@ export declare const VCheckboxGroup: DefineComponent<{
3711
3732
  autofocus?: unknown;
3712
3733
  spellcheck?: unknown;
3713
3734
  viewonly?: unknown;
3735
+ clearable?: unknown;
3714
3736
  validateTiming?: unknown;
3715
3737
  rules?: unknown;
3716
3738
  error?: unknown;
@@ -3722,6 +3744,7 @@ export declare const VCheckboxGroup: DefineComponent<{
3722
3744
  spellcheck: boolean;
3723
3745
  viewonly: boolean;
3724
3746
  required: boolean;
3747
+ clearable: boolean;
3725
3748
  error: boolean;
3726
3749
  tabindex: string | number;
3727
3750
  validateTiming: ValidateTiming;
@@ -3749,6 +3772,7 @@ export declare const VCheckboxGroup: DefineComponent<{
3749
3772
  hint?: VNodeChildOrSlot<any>;
3750
3773
  hinttip?: string | boolean | (() => VNodeChild) | undefined;
3751
3774
  infoAppends?: VNodeChildOrSlot<any>;
3775
+ requiredChip?: RequiredChipSource | undefined;
3752
3776
  size?: "sm" | "md" | "lg" | undefined;
3753
3777
  "v-slots"?: ResolveRawSlots<FormControlSlots> | undefined;
3754
3778
  }> & {
@@ -3764,6 +3788,7 @@ export declare const VCheckboxGroup: DefineComponent<{
3764
3788
  spellcheck: boolean;
3765
3789
  viewonly: boolean;
3766
3790
  required: boolean;
3791
+ clearable: boolean;
3767
3792
  error: boolean;
3768
3793
  tabindex: string | number;
3769
3794
  validateTiming: ValidateTiming;
@@ -4509,6 +4534,7 @@ export declare const VForm: DefineComponent<{
4509
4534
  spellcheck: BooleanConstructor;
4510
4535
  viewonly: BooleanConstructor;
4511
4536
  required: BooleanConstructor;
4537
+ clearable: BooleanConstructor;
4512
4538
  validateTiming: {
4513
4539
  type: PropType<ValidateTiming>;
4514
4540
  default: ValidateTiming;
@@ -4586,6 +4612,7 @@ export declare const VForm: DefineComponent<{
4586
4612
  spellcheck?: unknown;
4587
4613
  viewonly?: unknown;
4588
4614
  required?: unknown;
4615
+ clearable?: unknown;
4589
4616
  validateTiming?: unknown;
4590
4617
  rules?: unknown;
4591
4618
  error?: unknown;
@@ -4597,6 +4624,7 @@ export declare const VForm: DefineComponent<{
4597
4624
  spellcheck: boolean;
4598
4625
  viewonly: boolean;
4599
4626
  required: boolean;
4627
+ clearable: boolean;
4600
4628
  error: boolean;
4601
4629
  tabindex: string | number;
4602
4630
  validateTiming: ValidateTiming;
@@ -4626,6 +4654,7 @@ export declare const VForm: DefineComponent<{
4626
4654
  spellcheck: boolean;
4627
4655
  viewonly: boolean;
4628
4656
  required: boolean;
4657
+ clearable: boolean;
4629
4658
  error: boolean;
4630
4659
  tabindex: string | number;
4631
4660
  validateTiming: ValidateTiming;
@@ -4661,6 +4690,7 @@ export declare const VFormControl: DefineComponent<{
4661
4690
  invalid: BooleanConstructor;
4662
4691
  valid: BooleanConstructor;
4663
4692
  hiddenInfo: BooleanConstructor;
4693
+ requiredChip: PropType<RequiredChipSource>;
4664
4694
  }, () => JSX.Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
4665
4695
  clickLabel: (ev: MouseEvent, formControl: FormControl) => boolean;
4666
4696
  }, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
@@ -4684,6 +4714,7 @@ export declare const VFormControl: DefineComponent<{
4684
4714
  invalid?: unknown;
4685
4715
  valid?: unknown;
4686
4716
  hiddenInfo?: unknown;
4717
+ requiredChip?: unknown;
4687
4718
  } & {
4688
4719
  validating: boolean;
4689
4720
  pending: boolean;
@@ -4705,6 +4736,7 @@ export declare const VFormControl: DefineComponent<{
4705
4736
  hint?: VNodeChildOrSlot<any>;
4706
4737
  hinttip?: string | boolean | (() => VNodeChild) | undefined;
4707
4738
  infoAppends?: VNodeChildOrSlot<any>;
4739
+ requiredChip?: RequiredChipSource | undefined;
4708
4740
  "v-slots"?: ResolveRawSlots<FormControlSlots & {
4709
4741
  default: FormControl;
4710
4742
  }> | undefined;
@@ -6660,6 +6692,7 @@ export declare const VOption: DefineComponent<{
6660
6692
  spellcheck: BooleanConstructor;
6661
6693
  viewonly: BooleanConstructor;
6662
6694
  required: BooleanConstructor;
6695
+ clearable: BooleanConstructor;
6663
6696
  validateTiming: {
6664
6697
  type: PropType<ValidateTiming>;
6665
6698
  default: ValidateTiming;
@@ -6727,6 +6760,7 @@ export declare const VOption: DefineComponent<{
6727
6760
  spellcheck?: unknown;
6728
6761
  viewonly?: unknown;
6729
6762
  required?: unknown;
6763
+ clearable?: unknown;
6730
6764
  validateTiming?: unknown;
6731
6765
  rules?: unknown;
6732
6766
  error?: unknown;
@@ -6738,6 +6772,7 @@ export declare const VOption: DefineComponent<{
6738
6772
  spellcheck: boolean;
6739
6773
  viewonly: boolean;
6740
6774
  required: boolean;
6775
+ clearable: boolean;
6741
6776
  error: boolean;
6742
6777
  tabindex: string | number;
6743
6778
  validateTiming: ValidateTiming;
@@ -6762,6 +6797,7 @@ export declare const VOption: DefineComponent<{
6762
6797
  spellcheck: boolean;
6763
6798
  viewonly: boolean;
6764
6799
  required: boolean;
6800
+ clearable: boolean;
6765
6801
  error: boolean;
6766
6802
  tabindex: string | number;
6767
6803
  validateTiming: ValidateTiming;
@@ -7453,6 +7489,7 @@ export declare const VRadio: DefineComponent<{
7453
7489
  spellcheck: BooleanConstructor;
7454
7490
  viewonly: BooleanConstructor;
7455
7491
  required: BooleanConstructor;
7492
+ clearable: BooleanConstructor;
7456
7493
  validateTiming: {
7457
7494
  type: PropType<ValidateTiming>;
7458
7495
  default: ValidateTiming;
@@ -7522,6 +7559,7 @@ export declare const VRadio: DefineComponent<{
7522
7559
  spellcheck?: unknown;
7523
7560
  viewonly?: unknown;
7524
7561
  required?: unknown;
7562
+ clearable?: unknown;
7525
7563
  validateTiming?: unknown;
7526
7564
  rules?: unknown;
7527
7565
  error?: unknown;
@@ -7533,6 +7571,7 @@ export declare const VRadio: DefineComponent<{
7533
7571
  spellcheck: boolean;
7534
7572
  viewonly: boolean;
7535
7573
  required: boolean;
7574
+ clearable: boolean;
7536
7575
  error: boolean;
7537
7576
  tabindex: string | number;
7538
7577
  validateTiming: ValidateTiming;
@@ -7557,6 +7596,7 @@ export declare const VRadio: DefineComponent<{
7557
7596
  spellcheck: boolean;
7558
7597
  viewonly: boolean;
7559
7598
  required: boolean;
7599
+ clearable: boolean;
7560
7600
  error: boolean;
7561
7601
  tabindex: string | number;
7562
7602
  validateTiming: ValidateTiming;
@@ -7595,6 +7635,7 @@ export declare const VRadioGroup: DefineComponent<{
7595
7635
  invalid: BooleanConstructor;
7596
7636
  valid: BooleanConstructor;
7597
7637
  hiddenInfo: BooleanConstructor;
7638
+ requiredChip: PropType<RequiredChipSource>;
7598
7639
  multiple: {
7599
7640
  type: BooleanConstructor;
7600
7641
  default: boolean;
@@ -7612,6 +7653,7 @@ export declare const VRadioGroup: DefineComponent<{
7612
7653
  autofocus: BooleanConstructor;
7613
7654
  spellcheck: BooleanConstructor;
7614
7655
  viewonly: BooleanConstructor;
7656
+ clearable: BooleanConstructor;
7615
7657
  validateTiming: {
7616
7658
  type: PropType<ValidateTiming>;
7617
7659
  default: ValidateTiming;
@@ -7703,6 +7745,7 @@ export declare const VRadioGroup: DefineComponent<{
7703
7745
  invalid?: unknown;
7704
7746
  valid?: unknown;
7705
7747
  hiddenInfo?: unknown;
7748
+ requiredChip?: unknown;
7706
7749
  multiple?: unknown;
7707
7750
  items?: unknown;
7708
7751
  name?: unknown;
@@ -7711,6 +7754,7 @@ export declare const VRadioGroup: DefineComponent<{
7711
7754
  autofocus?: unknown;
7712
7755
  spellcheck?: unknown;
7713
7756
  viewonly?: unknown;
7757
+ clearable?: unknown;
7714
7758
  validateTiming?: unknown;
7715
7759
  rules?: unknown;
7716
7760
  error?: unknown;
@@ -7722,6 +7766,7 @@ export declare const VRadioGroup: DefineComponent<{
7722
7766
  spellcheck: boolean;
7723
7767
  viewonly: boolean;
7724
7768
  required: boolean;
7769
+ clearable: boolean;
7725
7770
  error: boolean;
7726
7771
  tabindex: string | number;
7727
7772
  validateTiming: ValidateTiming;
@@ -7749,6 +7794,7 @@ export declare const VRadioGroup: DefineComponent<{
7749
7794
  hint?: VNodeChildOrSlot<any>;
7750
7795
  hinttip?: string | boolean | (() => VNodeChild) | undefined;
7751
7796
  infoAppends?: VNodeChildOrSlot<any>;
7797
+ requiredChip?: RequiredChipSource | undefined;
7752
7798
  size?: "sm" | "md" | "lg" | undefined;
7753
7799
  "v-slots"?: ResolveRawSlots<FormControlSlots> | undefined;
7754
7800
  }> & {
@@ -7764,6 +7810,7 @@ export declare const VRadioGroup: DefineComponent<{
7764
7810
  spellcheck: boolean;
7765
7811
  viewonly: boolean;
7766
7812
  required: boolean;
7813
+ clearable: boolean;
7767
7814
  error: boolean;
7768
7815
  tabindex: string | number;
7769
7816
  validateTiming: ValidateTiming;
@@ -7823,6 +7870,7 @@ export declare const VSelect: DefineComponent<{
7823
7870
  invalid: BooleanConstructor;
7824
7871
  valid: BooleanConstructor;
7825
7872
  hiddenInfo: BooleanConstructor;
7873
+ requiredChip: PropType<RequiredChipSource>;
7826
7874
  multiple: {
7827
7875
  type: BooleanConstructor;
7828
7876
  default: boolean;
@@ -7836,6 +7884,7 @@ export declare const VSelect: DefineComponent<{
7836
7884
  autofocus: BooleanConstructor;
7837
7885
  spellcheck: BooleanConstructor;
7838
7886
  viewonly: BooleanConstructor;
7887
+ clearable: BooleanConstructor;
7839
7888
  validateTiming: {
7840
7889
  type: PropType<ValidateTiming>;
7841
7890
  default: ValidateTiming;
@@ -7937,6 +7986,7 @@ export declare const VSelect: DefineComponent<{
7937
7986
  invalid?: unknown;
7938
7987
  valid?: unknown;
7939
7988
  hiddenInfo?: unknown;
7989
+ requiredChip?: unknown;
7940
7990
  multiple?: unknown;
7941
7991
  items?: unknown;
7942
7992
  name?: unknown;
@@ -7944,6 +7994,7 @@ export declare const VSelect: DefineComponent<{
7944
7994
  autofocus?: unknown;
7945
7995
  spellcheck?: unknown;
7946
7996
  viewonly?: unknown;
7997
+ clearable?: unknown;
7947
7998
  validateTiming?: unknown;
7948
7999
  rules?: unknown;
7949
8000
  error?: unknown;
@@ -7955,6 +8006,7 @@ export declare const VSelect: DefineComponent<{
7955
8006
  spellcheck: boolean;
7956
8007
  viewonly: boolean;
7957
8008
  required: boolean;
8009
+ clearable: boolean;
7958
8010
  error: boolean;
7959
8011
  tabindex: string | number;
7960
8012
  validateTiming: ValidateTiming;
@@ -7981,6 +8033,7 @@ export declare const VSelect: DefineComponent<{
7981
8033
  hint?: VNodeChildOrSlot<any>;
7982
8034
  hinttip?: string | boolean | (() => VNodeChild) | undefined;
7983
8035
  infoAppends?: VNodeChildOrSlot<any>;
8036
+ requiredChip?: RequiredChipSource | undefined;
7984
8037
  startAdornment?: VNodeChildOrSlot<any>;
7985
8038
  endAdornment?: VNodeChildOrSlot<any>;
7986
8039
  variant?: "flat" | "outlined" | "filled" | undefined;
@@ -8000,6 +8053,7 @@ export declare const VSelect: DefineComponent<{
8000
8053
  spellcheck: boolean;
8001
8054
  viewonly: boolean;
8002
8055
  required: boolean;
8056
+ clearable: boolean;
8003
8057
  error: boolean;
8004
8058
  tabindex: string | number;
8005
8059
  validateTiming: ValidateTiming;
@@ -8042,6 +8096,7 @@ export declare const VSwitch: DefineComponent<{
8042
8096
  spellcheck: BooleanConstructor;
8043
8097
  viewonly: BooleanConstructor;
8044
8098
  required: BooleanConstructor;
8099
+ clearable: BooleanConstructor;
8045
8100
  validateTiming: {
8046
8101
  type: PropType<ValidateTiming>;
8047
8102
  default: ValidateTiming;
@@ -8111,6 +8166,7 @@ export declare const VSwitch: DefineComponent<{
8111
8166
  spellcheck?: unknown;
8112
8167
  viewonly?: unknown;
8113
8168
  required?: unknown;
8169
+ clearable?: unknown;
8114
8170
  validateTiming?: unknown;
8115
8171
  rules?: unknown;
8116
8172
  error?: unknown;
@@ -8122,6 +8178,7 @@ export declare const VSwitch: DefineComponent<{
8122
8178
  spellcheck: boolean;
8123
8179
  viewonly: boolean;
8124
8180
  required: boolean;
8181
+ clearable: boolean;
8125
8182
  error: boolean;
8126
8183
  tabindex: string | number;
8127
8184
  validateTiming: ValidateTiming;
@@ -8146,6 +8203,7 @@ export declare const VSwitch: DefineComponent<{
8146
8203
  spellcheck: boolean;
8147
8204
  viewonly: boolean;
8148
8205
  required: boolean;
8206
+ clearable: boolean;
8149
8207
  error: boolean;
8150
8208
  tabindex: string | number;
8151
8209
  validateTiming: ValidateTiming;
@@ -8184,6 +8242,7 @@ export declare const VSwitchGroup: DefineComponent<{
8184
8242
  invalid: BooleanConstructor;
8185
8243
  valid: BooleanConstructor;
8186
8244
  hiddenInfo: BooleanConstructor;
8245
+ requiredChip: PropType<RequiredChipSource>;
8187
8246
  multiple: {
8188
8247
  type: BooleanConstructor;
8189
8248
  default: boolean;
@@ -8201,6 +8260,7 @@ export declare const VSwitchGroup: DefineComponent<{
8201
8260
  autofocus: BooleanConstructor;
8202
8261
  spellcheck: BooleanConstructor;
8203
8262
  viewonly: BooleanConstructor;
8263
+ clearable: BooleanConstructor;
8204
8264
  validateTiming: {
8205
8265
  type: PropType<ValidateTiming>;
8206
8266
  default: ValidateTiming;
@@ -8292,6 +8352,7 @@ export declare const VSwitchGroup: DefineComponent<{
8292
8352
  invalid?: unknown;
8293
8353
  valid?: unknown;
8294
8354
  hiddenInfo?: unknown;
8355
+ requiredChip?: unknown;
8295
8356
  multiple?: unknown;
8296
8357
  items?: unknown;
8297
8358
  name?: unknown;
@@ -8300,6 +8361,7 @@ export declare const VSwitchGroup: DefineComponent<{
8300
8361
  autofocus?: unknown;
8301
8362
  spellcheck?: unknown;
8302
8363
  viewonly?: unknown;
8364
+ clearable?: unknown;
8303
8365
  validateTiming?: unknown;
8304
8366
  rules?: unknown;
8305
8367
  error?: unknown;
@@ -8311,6 +8373,7 @@ export declare const VSwitchGroup: DefineComponent<{
8311
8373
  spellcheck: boolean;
8312
8374
  viewonly: boolean;
8313
8375
  required: boolean;
8376
+ clearable: boolean;
8314
8377
  error: boolean;
8315
8378
  tabindex: string | number;
8316
8379
  validateTiming: ValidateTiming;
@@ -8338,6 +8401,7 @@ export declare const VSwitchGroup: DefineComponent<{
8338
8401
  hint?: VNodeChildOrSlot<any>;
8339
8402
  hinttip?: string | boolean | (() => VNodeChild) | undefined;
8340
8403
  infoAppends?: VNodeChildOrSlot<any>;
8404
+ requiredChip?: RequiredChipSource | undefined;
8341
8405
  size?: "sm" | "md" | "lg" | undefined;
8342
8406
  "v-slots"?: ResolveRawSlots<FormControlSlots> | undefined;
8343
8407
  }> & {
@@ -8353,6 +8417,7 @@ export declare const VSwitchGroup: DefineComponent<{
8353
8417
  spellcheck: boolean;
8354
8418
  viewonly: boolean;
8355
8419
  required: boolean;
8420
+ clearable: boolean;
8356
8421
  error: boolean;
8357
8422
  tabindex: string | number;
8358
8423
  validateTiming: ValidateTiming;
@@ -8483,6 +8548,7 @@ export declare const VTextarea: DefineComponent<{
8483
8548
  invalid: BooleanConstructor;
8484
8549
  valid: BooleanConstructor;
8485
8550
  hiddenInfo: BooleanConstructor;
8551
+ requiredChip: PropType<RequiredChipSource>;
8486
8552
  autosize: PropType<RawTextareaAutosizeSettings>;
8487
8553
  rows: {
8488
8554
  default: number | undefined;
@@ -8504,6 +8570,7 @@ export declare const VTextarea: DefineComponent<{
8504
8570
  autofocus: BooleanConstructor;
8505
8571
  spellcheck: BooleanConstructor;
8506
8572
  viewonly: BooleanConstructor;
8573
+ clearable: BooleanConstructor;
8507
8574
  validateTiming: {
8508
8575
  type: PropType<ValidateTiming>;
8509
8576
  default: ValidateTiming;
@@ -8596,6 +8663,7 @@ export declare const VTextarea: DefineComponent<{
8596
8663
  invalid?: unknown;
8597
8664
  valid?: unknown;
8598
8665
  hiddenInfo?: unknown;
8666
+ requiredChip?: unknown;
8599
8667
  autosize?: unknown;
8600
8668
  rows?: unknown;
8601
8669
  mask?: unknown;
@@ -8614,6 +8682,7 @@ export declare const VTextarea: DefineComponent<{
8614
8682
  autofocus?: unknown;
8615
8683
  spellcheck?: unknown;
8616
8684
  viewonly?: unknown;
8685
+ clearable?: unknown;
8617
8686
  validateTiming?: unknown;
8618
8687
  rules?: unknown;
8619
8688
  error?: unknown;
@@ -8625,6 +8694,7 @@ export declare const VTextarea: DefineComponent<{
8625
8694
  spellcheck: boolean;
8626
8695
  viewonly: boolean;
8627
8696
  required: boolean;
8697
+ clearable: boolean;
8628
8698
  error: boolean;
8629
8699
  tabindex: string | number;
8630
8700
  validateTiming: ValidateTiming;
@@ -8661,6 +8731,7 @@ export declare const VTextarea: DefineComponent<{
8661
8731
  hint?: VNodeChildOrSlot<any>;
8662
8732
  hinttip?: string | boolean | (() => VNodeChild) | undefined;
8663
8733
  infoAppends?: VNodeChildOrSlot<any>;
8734
+ requiredChip?: RequiredChipSource | undefined;
8664
8735
  startAdornment?: VNodeChildOrSlot<any>;
8665
8736
  endAdornment?: VNodeChildOrSlot<any>;
8666
8737
  variant?: "flat" | "outlined" | "filled" | undefined;
@@ -8680,6 +8751,7 @@ export declare const VTextarea: DefineComponent<{
8680
8751
  spellcheck: boolean;
8681
8752
  viewonly: boolean;
8682
8753
  required: boolean;
8754
+ clearable: boolean;
8683
8755
  error: boolean;
8684
8756
  tabindex: string | number;
8685
8757
  validateTiming: ValidateTiming;
@@ -8737,6 +8809,7 @@ export declare const VTextField: DefineComponent<{
8737
8809
  invalid: BooleanConstructor;
8738
8810
  valid: BooleanConstructor;
8739
8811
  hiddenInfo: BooleanConstructor;
8812
+ requiredChip: PropType<RequiredChipSource>;
8740
8813
  type: {
8741
8814
  type: PropType<"number" | "search" | "email" | "tel" | "url" | "color" | "date" | "datetime-local" | "month" | "password" | "text" | "time">;
8742
8815
  default: string;
@@ -8760,6 +8833,7 @@ export declare const VTextField: DefineComponent<{
8760
8833
  autofocus: BooleanConstructor;
8761
8834
  spellcheck: BooleanConstructor;
8762
8835
  viewonly: BooleanConstructor;
8836
+ clearable: BooleanConstructor;
8763
8837
  validateTiming: {
8764
8838
  type: PropType<ValidateTiming>;
8765
8839
  default: ValidateTiming;
@@ -8854,6 +8928,7 @@ export declare const VTextField: DefineComponent<{
8854
8928
  invalid?: unknown;
8855
8929
  valid?: unknown;
8856
8930
  hiddenInfo?: unknown;
8931
+ requiredChip?: unknown;
8857
8932
  type?: unknown;
8858
8933
  masked?: unknown;
8859
8934
  typed?: unknown;
@@ -8874,6 +8949,7 @@ export declare const VTextField: DefineComponent<{
8874
8949
  autofocus?: unknown;
8875
8950
  spellcheck?: unknown;
8876
8951
  viewonly?: unknown;
8952
+ clearable?: unknown;
8877
8953
  validateTiming?: unknown;
8878
8954
  rules?: unknown;
8879
8955
  error?: unknown;
@@ -8886,6 +8962,7 @@ export declare const VTextField: DefineComponent<{
8886
8962
  spellcheck: boolean;
8887
8963
  viewonly: boolean;
8888
8964
  required: boolean;
8965
+ clearable: boolean;
8889
8966
  error: boolean;
8890
8967
  tabindex: string | number;
8891
8968
  validateTiming: ValidateTiming;
@@ -8923,6 +9000,7 @@ export declare const VTextField: DefineComponent<{
8923
9000
  hint?: VNodeChildOrSlot<any>;
8924
9001
  hinttip?: string | boolean | (() => VNodeChild) | undefined;
8925
9002
  infoAppends?: VNodeChildOrSlot<any>;
9003
+ requiredChip?: RequiredChipSource | undefined;
8926
9004
  startAdornment?: VNodeChildOrSlot<any>;
8927
9005
  endAdornment?: VNodeChildOrSlot<any>;
8928
9006
  variant?: "flat" | "outlined" | "filled" | undefined;
@@ -8948,6 +9026,7 @@ export declare const VTextField: DefineComponent<{
8948
9026
  spellcheck: boolean;
8949
9027
  viewonly: boolean;
8950
9028
  required: boolean;
9029
+ clearable: boolean;
8951
9030
  error: boolean;
8952
9031
  tabindex: string | number;
8953
9032
  validateTiming: ValidateTiming;
@@ -10020,6 +10099,7 @@ export declare interface VuiServiceIconSettings {
10020
10099
  editorUndo: IconName;
10021
10100
  editorRedo: IconName;
10022
10101
  hinttip: IconName;
10102
+ clear: IconName;
10023
10103
  }
10024
10104
 
10025
10105
  export declare interface VuiServiceOptions {
@@ -10107,6 +10187,7 @@ export declare const VWysiwygEditor: DefineComponent<{
10107
10187
  invalid: BooleanConstructor;
10108
10188
  valid: BooleanConstructor;
10109
10189
  hiddenInfo: BooleanConstructor;
10190
+ requiredChip: PropType<RequiredChipSource>;
10110
10191
  minlength: (StringConstructor | NumberConstructor)[];
10111
10192
  maxlength: (StringConstructor | NumberConstructor)[];
10112
10193
  pattern: (StringConstructor | RegExpConstructor)[];
@@ -10122,6 +10203,7 @@ export declare const VWysiwygEditor: DefineComponent<{
10122
10203
  autofocus: BooleanConstructor;
10123
10204
  spellcheck: BooleanConstructor;
10124
10205
  viewonly: BooleanConstructor;
10206
+ clearable: BooleanConstructor;
10125
10207
  validateTiming: {
10126
10208
  type: PropType<ValidateTiming>;
10127
10209
  default: ValidateTiming;
@@ -10215,6 +10297,7 @@ export declare const VWysiwygEditor: DefineComponent<{
10215
10297
  invalid?: unknown;
10216
10298
  valid?: unknown;
10217
10299
  hiddenInfo?: unknown;
10300
+ requiredChip?: unknown;
10218
10301
  minlength?: unknown;
10219
10302
  maxlength?: unknown;
10220
10303
  pattern?: unknown;
@@ -10230,6 +10313,7 @@ export declare const VWysiwygEditor: DefineComponent<{
10230
10313
  autofocus?: unknown;
10231
10314
  spellcheck?: unknown;
10232
10315
  viewonly?: unknown;
10316
+ clearable?: unknown;
10233
10317
  validateTiming?: unknown;
10234
10318
  rules?: unknown;
10235
10319
  error?: unknown;
@@ -10241,6 +10325,7 @@ export declare const VWysiwygEditor: DefineComponent<{
10241
10325
  spellcheck: boolean;
10242
10326
  viewonly: boolean;
10243
10327
  required: boolean;
10328
+ clearable: boolean;
10244
10329
  error: boolean;
10245
10330
  tabindex: string | number;
10246
10331
  validateTiming: ValidateTiming;
@@ -10279,6 +10364,7 @@ export declare const VWysiwygEditor: DefineComponent<{
10279
10364
  hint?: VNodeChildOrSlot<any>;
10280
10365
  hinttip?: string | boolean | (() => VNodeChild) | undefined;
10281
10366
  infoAppends?: VNodeChildOrSlot<any>;
10367
+ requiredChip?: RequiredChipSource | undefined;
10282
10368
  startAdornment?: VNodeChildOrSlot<any>;
10283
10369
  endAdornment?: VNodeChildOrSlot<any>;
10284
10370
  variant?: "flat" | "outlined" | "filled" | undefined;
@@ -10297,6 +10383,7 @@ export declare const VWysiwygEditor: DefineComponent<{
10297
10383
  spellcheck: boolean;
10298
10384
  viewonly: boolean;
10299
10385
  required: boolean;
10386
+ clearable: boolean;
10300
10387
  error: boolean;
10301
10388
  tabindex: string | number;
10302
10389
  validateTiming: ValidateTiming;
package/dist/vui.mjs CHANGED
@@ -203,6 +203,30 @@ const {
203
203
  props: props$8,
204
204
  emits: emits$8
205
205
  } = createFormControlSettings();
206
+ function createRequiredChipRenderer(required, props, vui = useVui()) {
207
+ return () => {
208
+ if (!required()) return;
209
+ let chip;
210
+ const {
211
+ requiredChip
212
+ } = props;
213
+ if (requiredChip === false) return;
214
+
215
+ if (requiredChip) {
216
+ if (typeof requiredChip === 'string') {
217
+ chip = requiredChip;
218
+ } else if (typeof requiredChip === 'function') {
219
+ chip = requiredChip();
220
+ }
221
+ }
222
+
223
+ if (chip === undefined) {
224
+ chip = vui.getRequiredChip();
225
+ }
226
+
227
+ return chip;
228
+ };
229
+ }
206
230
  const VFormControl = defineComponent({
207
231
  name: 'VFormControl',
208
232
  props: { ...props$8,
@@ -233,6 +257,7 @@ const VFormControl = defineComponent({
233
257
  'v-form-control--invalid': control.invalid,
234
258
  'v-form-control--valid': control.valid
235
259
  }, colorProvider.className(control.invalid && !control.readonly ? 'error' : 'primary')]);
260
+ const getRequiredChip = createRequiredChipRenderer(() => control.required, props, vui);
236
261
  return () => {
237
262
  const label = control.renderLabel();
238
263
  const message = control.renderMessage();
@@ -245,7 +270,7 @@ const VFormControl = defineComponent({
245
270
  "onClick": ev => {
246
271
  ctx.emit('clickLabel', ev, control);
247
272
  }
248
- }, [label, control.required && vui.getRequiredChip(), hinttip && createVNode(VTooltip, {
273
+ }, [label, getRequiredChip(), hinttip && createVNode(VTooltip, {
249
274
  "top": true,
250
275
  "openOnHover": false
251
276
  }, {
@@ -317,7 +342,8 @@ function defineFormSelectorComponent(opts) {
317
342
  }],
318
343
  "label": this.label,
319
344
  "hint": this.hint,
320
- "hinttip": this.hinttip
345
+ "hinttip": this.hinttip,
346
+ "requiredChip": this.requiredChip
321
347
  }, { ...this.$slots,
322
348
  default: () => createVNode("div", {
323
349
  "class": "v-form-selector__body"
@@ -2055,6 +2081,7 @@ const VSelect = defineComponent({
2055
2081
  "hint": this.hint,
2056
2082
  "hinttip": this.hinttip,
2057
2083
  "hiddenInfo": this.hiddenInfo,
2084
+ "requiredChip": this.requiredChip,
2058
2085
  "onClickLabel": ev => {
2059
2086
  this.focus();
2060
2087
  }
@@ -2117,7 +2144,16 @@ const VSelect = defineComponent({
2117
2144
  }, [createVNode("div", {
2118
2145
  "class": "v-select__selections__inner"
2119
2146
  }, [this.renderSelections(selectedItems)])])],
2120
- endAdornment: () => createVNode(VIcon, {
2147
+ endAdornment: () => this.clearable && this.nodeControl.value != null && createVNode(VButton, {
2148
+ "key": "clear",
2149
+ "icon": this.$vui.icon('clear'),
2150
+ "rounded": true,
2151
+ "onClick": ev => {
2152
+ ev.stopPropagation();
2153
+ this.nodeControl.clear();
2154
+ }
2155
+ }, null) || createVNode(VIcon, {
2156
+ "key": "icon",
2121
2157
  "name": this.iconName,
2122
2158
  "rotate": this.menuOpened ? 180 : 0
2123
2159
  }, null)
@@ -2189,6 +2225,7 @@ const VTextField = defineComponent({
2189
2225
  "label": this.label,
2190
2226
  "hint": this.hint,
2191
2227
  "hinttip": this.hinttip,
2228
+ "requiredChip": this.requiredChip,
2192
2229
  "onClickLabel": ev => {
2193
2230
  this.focus();
2194
2231
  }
@@ -2251,6 +2288,7 @@ const VTextarea = defineComponent({
2251
2288
  "hint": this.hint,
2252
2289
  "hinttip": this.hinttip,
2253
2290
  "hiddenInfo": this.hiddenInfo,
2291
+ "requiredChip": this.requiredChip,
2254
2292
  "onClickLabel": ev => {
2255
2293
  this.focus();
2256
2294
  }
@@ -2474,6 +2512,7 @@ const VWysiwygEditor = defineComponent({
2474
2512
  "hint": this.hint,
2475
2513
  "hinttip": this.hinttip,
2476
2514
  "hiddenInfo": this.hiddenInfo,
2515
+ "requiredChip": this.requiredChip,
2477
2516
  "onClickLabel": ev => {
2478
2517
  this.focus('start', {
2479
2518
  scrollIntoView: true
@@ -4285,4 +4324,4 @@ function installVuiPlugin(app, opts) {
4285
4324
  return app.use(VuiPlugin, opts);
4286
4325
  }
4287
4326
 
4288
- export { CONTROL_FIELD_VARIANTS, CONTROL_SIZES, PAGINATION_ALIGNS, VApp, VBreadcrumbs, VButton, VButtonGroup, VCard, VCardActions, VCardContent, VCheckbox, VCheckboxGroup, VContentSwitcher, VDataTable, VDrawerLayout, VForm, VFormControl, VGridContainer, VGridItem, VHero, VIcon, VListTile, VNavigation, VNavigationItem, VOption, VOptionGroup, VPagination, VPaper, VRadio, VRadioGroup, VSelect, VSwitch, VSwitchGroup, VTabs, VTextField, VTextarea, VToolbar, VToolbarEdge, VToolbarMenu, VToolbarTitle, VUI_CHECKBOX_GROUP_SYMBOL, VUI_CHECKBOX_SYMBOL, VUI_FORM_SYMBOL, VUI_OPTION_SYMBOL, VUI_RADIO_GROUP_SYMBOL, VUI_RADIO_SYMBOL, VUI_SELECT_SYMBOL, VUI_SWITCH_GROUP_SYMBOL, VUI_SWITCH_SYMBOL, VUI_TEXTAREA_SYMBOL, VUI_TEXT_FIELD_SYMBOL, VUI_WYSIWYG_EDITOR_SYMBOL, VWysiwygEditor, VuiColorProviderInjectionKey, VuiControlFieldInjectionKey, VuiControlInjectionKey, VuiInjectionKey, VuiPlugin, VuiService, WysiwygBulletListTool, WysiwygFormatBoldTool, WysiwygFormatItalicTool, WysiwygFormatUnderlineTool, WysiwygHistoryTool, WysiwygLinkTool, WysiwygOrderedListTool, WysiwygTextColorTool, configureDataTableDefaults, createCardProps, createControlFieldProviderProps, createControlProps, createElevationProps, createListTileProps, createNavigationItemProps, createPaperBaseProps, createPaperProps, defineFormSelectorComponent, iconProps, installVuiPlugin, listTileEmits, paginationProps, rawIconProp, renderNavigationItemInput, resolveNavigationItemInput, resolveRawIconProp, useControl, useControlField, useElevation, useVui, useVuiColorProvider, vueButtonProps };
4327
+ export { CONTROL_FIELD_VARIANTS, CONTROL_SIZES, PAGINATION_ALIGNS, VApp, VBreadcrumbs, VButton, VButtonGroup, VCard, VCardActions, VCardContent, VCheckbox, VCheckboxGroup, VContentSwitcher, VDataTable, VDrawerLayout, VForm, VFormControl, VGridContainer, VGridItem, VHero, VIcon, VListTile, VNavigation, VNavigationItem, VOption, VOptionGroup, VPagination, VPaper, VRadio, VRadioGroup, VSelect, VSwitch, VSwitchGroup, VTabs, VTextField, VTextarea, VToolbar, VToolbarEdge, VToolbarMenu, VToolbarTitle, VUI_CHECKBOX_GROUP_SYMBOL, VUI_CHECKBOX_SYMBOL, VUI_FORM_SYMBOL, VUI_OPTION_SYMBOL, VUI_RADIO_GROUP_SYMBOL, VUI_RADIO_SYMBOL, VUI_SELECT_SYMBOL, VUI_SWITCH_GROUP_SYMBOL, VUI_SWITCH_SYMBOL, VUI_TEXTAREA_SYMBOL, VUI_TEXT_FIELD_SYMBOL, VUI_WYSIWYG_EDITOR_SYMBOL, VWysiwygEditor, VuiColorProviderInjectionKey, VuiControlFieldInjectionKey, VuiControlInjectionKey, VuiInjectionKey, VuiPlugin, VuiService, WysiwygBulletListTool, WysiwygFormatBoldTool, WysiwygFormatItalicTool, WysiwygFormatUnderlineTool, WysiwygHistoryTool, WysiwygLinkTool, WysiwygOrderedListTool, WysiwygTextColorTool, configureDataTableDefaults, createCardProps, createControlFieldProviderProps, createControlProps, createElevationProps, createListTileProps, createNavigationItemProps, createPaperBaseProps, createPaperProps, createRequiredChipRenderer, defineFormSelectorComponent, iconProps, installVuiPlugin, listTileEmits, paginationProps, rawIconProp, renderNavigationItemInput, resolveNavigationItemInput, resolveRawIconProp, useControl, useControlField, useElevation, useVui, useVuiColorProvider, vueButtonProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fastkit/vui",
3
- "version": "0.7.17",
3
+ "version": "0.7.22",
4
4
  "description": "@fastkit/vui",
5
5
  "buildOptions": {
6
6
  "name": "Vui",
@@ -32,11 +32,11 @@
32
32
  "vue": "^3.2.26"
33
33
  },
34
34
  "dependencies": {
35
- "@fastkit/color-scheme": "0.7.17",
36
- "@fastkit/icon-font": "0.7.17",
37
- "@fastkit/tiny-logger": "0.7.17",
38
- "@fastkit/vite-kit": "0.7.17",
39
- "@fastkit/vue-kit": "0.7.17",
35
+ "@fastkit/color-scheme": "0.7.22",
36
+ "@fastkit/icon-font": "0.7.22",
37
+ "@fastkit/tiny-logger": "0.7.22",
38
+ "@fastkit/vite-kit": "0.7.22",
39
+ "@fastkit/vue-kit": "0.7.22",
40
40
  "@tiptap/extension-link": "^2.0.0-beta.35",
41
41
  "@tiptap/extension-underline": "^2.0.0-beta.22",
42
42
  "@tiptap/starter-kit": "^2.0.0-beta.168",
@@ -1,5 +1,5 @@
1
1
  import './VFormControl.scss';
2
- import { computed, defineComponent } from 'vue';
2
+ import { computed, defineComponent, VNodeChild } from 'vue';
3
3
  import {
4
4
  createFormControlSettings,
5
5
  useFormControl,
@@ -7,13 +7,41 @@ import {
7
7
  defineSlotsProps,
8
8
  FormControl,
9
9
  renderSlotOrEmpty,
10
+ RequiredChipSource,
10
11
  } from '@fastkit/vue-kit';
11
12
  import { useVuiColorProvider, useVui } from '../../injections';
13
+ import type { VuiService } from '../../service';
12
14
  import { VIcon } from '../VIcon';
13
15
  import { VTooltip } from '../kits';
14
16
 
15
17
  const { props, emits } = createFormControlSettings();
16
18
 
19
+ export function createRequiredChipRenderer(
20
+ required: () => boolean,
21
+ props: {
22
+ requiredChip?: RequiredChipSource;
23
+ },
24
+ vui: VuiService = useVui(),
25
+ ) {
26
+ return () => {
27
+ if (!required()) return;
28
+ let chip: VNodeChild;
29
+ const { requiredChip } = props;
30
+ if (requiredChip === false) return;
31
+ if (requiredChip) {
32
+ if (typeof requiredChip === 'string') {
33
+ chip = requiredChip;
34
+ } else if (typeof requiredChip === 'function') {
35
+ chip = requiredChip();
36
+ }
37
+ }
38
+ if (chip === undefined) {
39
+ chip = vui.getRequiredChip();
40
+ }
41
+ return chip;
42
+ };
43
+ }
44
+
17
45
  export const VFormControl = defineComponent({
18
46
  name: 'VFormControl',
19
47
  props: {
@@ -27,7 +55,6 @@ export const VFormControl = defineComponent({
27
55
  emits,
28
56
  setup(props, ctx) {
29
57
  const vui = useVui();
30
-
31
58
  const control = useFormControl(props, ctx, {
32
59
  hinttipPrepend: () => (
33
60
  <VIcon
@@ -60,6 +87,12 @@ export const VFormControl = defineComponent({
60
87
  ),
61
88
  ]);
62
89
 
90
+ const getRequiredChip = createRequiredChipRenderer(
91
+ () => control.required,
92
+ props,
93
+ vui,
94
+ );
95
+
63
96
  return () => {
64
97
  const label = control.renderLabel();
65
98
  const message = control.renderMessage();
@@ -75,7 +108,7 @@ export const VFormControl = defineComponent({
75
108
  ctx.emit('clickLabel', ev, control);
76
109
  }}>
77
110
  {label}
78
- {control.required && vui.getRequiredChip()}
111
+ {getRequiredChip()}
79
112
  {hinttip && (
80
113
  <VTooltip
81
114
  top
@@ -25,6 +25,7 @@ import { VUI_SELECT_SYMBOL, useVui } from '../../injections';
25
25
  import { VIcon } from '../VIcon';
26
26
  import { VMenu } from '../kits';
27
27
  import { VOption } from '../VOption';
28
+ import { VButton } from '..';
28
29
 
29
30
  const { props, emits } = createFormSelectorSettings();
30
31
 
@@ -117,6 +118,7 @@ export const VSelect = defineComponent({
117
118
  hint={this.hint}
118
119
  hinttip={this.hinttip}
119
120
  hiddenInfo={this.hiddenInfo}
121
+ requiredChip={this.requiredChip}
120
122
  onClickLabel={(ev) => {
121
123
  this.focus();
122
124
  }}
@@ -183,11 +185,24 @@ export const VSelect = defineComponent({
183
185
  </div>
184
186
  </div>,
185
187
  ],
186
- endAdornment: () => (
187
- <VIcon
188
- name={this.iconName}
189
- rotate={this.menuOpened ? 180 : 0}></VIcon>
190
- ),
188
+ endAdornment: () =>
189
+ (this.clearable && this.nodeControl.value != null && (
190
+ <VButton
191
+ key="clear"
192
+ icon={this.$vui.icon('clear')}
193
+ rounded
194
+ onClick={(ev) => {
195
+ ev.stopPropagation();
196
+ this.nodeControl.clear();
197
+ }}
198
+ />
199
+ )) || (
200
+ <VIcon
201
+ key="icon"
202
+ name={this.iconName}
203
+ rotate={this.menuOpened ? 180 : 0}
204
+ />
205
+ ),
191
206
  }}
192
207
  />,
193
208
  ],
@@ -66,6 +66,7 @@ export const VTextField = defineComponent({
66
66
  label={this.label}
67
67
  hint={this.hint}
68
68
  hinttip={this.hinttip}
69
+ requiredChip={this.requiredChip}
69
70
  onClickLabel={(ev) => {
70
71
  this.focus();
71
72
  }}
@@ -59,6 +59,7 @@ export const VTextarea = defineComponent({
59
59
  hint={this.hint}
60
60
  hinttip={this.hinttip}
61
61
  hiddenInfo={this.hiddenInfo}
62
+ requiredChip={this.requiredChip}
62
63
  onClickLabel={(ev) => {
63
64
  this.focus();
64
65
  }}
@@ -237,6 +237,7 @@ export const VWysiwygEditor = defineComponent({
237
237
  hint={this.hint}
238
238
  hinttip={this.hinttip}
239
239
  hiddenInfo={this.hiddenInfo}
240
+ requiredChip={this.requiredChip}
240
241
  onClickLabel={(ev) => {
241
242
  this.focus('start', { scrollIntoView: true });
242
243
  }}
@@ -76,6 +76,7 @@ export function defineFormSelectorComponent(
76
76
  label={this.label}
77
77
  hint={this.hint}
78
78
  hinttip={this.hinttip}
79
+ requiredChip={this.requiredChip}
79
80
  v-slots={{
80
81
  ...this.$slots,
81
82
  default: () => (
package/src/service.tsx CHANGED
@@ -69,6 +69,7 @@ export interface VuiServiceIconSettings {
69
69
  editorUndo: IconName;
70
70
  editorRedo: IconName;
71
71
  hinttip: IconName;
72
+ clear: IconName;
72
73
  }
73
74
 
74
75
  export type VuiVNodeResolver = () => VNodeChild;
@@ -171,6 +171,7 @@ export function viteVuiPlugin(
171
171
  editorUndo: 'mdi-undo-variant' as any,
172
172
  editorRedo: 'mdi-redo-variant' as any,
173
173
  hinttip: 'mdi-help-circle-outline' as any,
174
+ clear: 'mdi-close' as any,
174
175
  // navigationExpand: (gen, active) => {
175
176
  // return gen({
176
177
  // name: 'mdi-menu-down' as any,
Binary file
package/src/.DS_Store DELETED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file