@fastkit/vui 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/after-effects/display-flow.scss +2 -2
  2. package/dist/vui.css +9 -9
  3. package/dist/vui.d.ts +517 -396
  4. package/dist/vui.mjs +85 -76
  5. package/dist/vui.mjs.map +1 -1
  6. package/package.json +32 -28
  7. package/src/components/VAvatar/VAvatar.scss +4 -4
  8. package/src/components/VAvatar/VAvatar.tsx +0 -1
  9. package/src/components/VBreadcrumbs/VBreadcrumbs.scss +2 -2
  10. package/src/components/VBreadcrumbs/VBreadcrumbs.tsx +1 -1
  11. package/src/components/VBusyImage/VBusyImage.scss +1 -1
  12. package/src/components/VButton/VButton.scss +3 -3
  13. package/src/components/VButton/VButton.tsx +0 -1
  14. package/src/components/VCard/VCard.scss +2 -2
  15. package/src/components/VCheckable/VCheckable.scss +1 -1
  16. package/src/components/VCheckable/VCheckable.tsx +4 -1
  17. package/src/components/VCheckbox/VCheckbox.scss +3 -3
  18. package/src/components/VCheckbox/VCheckbox.tsx +0 -1
  19. package/src/components/VChip/VChip.scss +4 -4
  20. package/src/components/VChip/VChip.tsx +0 -1
  21. package/src/components/VControlField/VControlField.scss +1 -1
  22. package/src/components/VControlField/VControlField.tsx +4 -3
  23. package/src/components/VDataTable/VDataTable.scss +3 -3
  24. package/src/components/VDataTable/VDataTable.tsx +0 -2
  25. package/src/components/VDialog/VDialog.scss +1 -1
  26. package/src/components/VDisabledReason/VDisabledReason.scss +1 -1
  27. package/src/components/VDisabledReason/VDisabledReason.tsx +78 -7
  28. package/src/components/VForm/VForm.tsx +20 -8
  29. package/src/components/VFormControl/VFormControl.scss +1 -1
  30. package/src/components/VFormControl/VFormControl.tsx +2 -6
  31. package/src/components/VFormGroup/VFormGroup.tsx +0 -1
  32. package/src/components/VGrid/schemes.ts +0 -1
  33. package/src/components/VListTile/VListTile.scss +1 -1
  34. package/src/components/VListTile/VListTile.tsx +0 -2
  35. package/src/components/VNavigation/VNavigation.tsx +1 -2
  36. package/src/components/VNavigation/VNavigationItem.tsx +1 -4
  37. package/src/components/VNumberField/VNumberField.tsx +0 -1
  38. package/src/components/VOption/VOption.scss +1 -1
  39. package/src/components/VOption/VOption.tsx +0 -1
  40. package/src/components/VPagination/VPagination.scss +2 -2
  41. package/src/components/VPagination/VPagination.tsx +1 -2
  42. package/src/components/VRadio/VRadio.scss +1 -1
  43. package/src/components/VRadio/VRadio.tsx +0 -1
  44. package/src/components/VSelect/VSelect.scss +2 -2
  45. package/src/components/VSelect/VSelect.tsx +1 -3
  46. package/src/components/VSheetModal/VSheetModal.tsx +0 -1
  47. package/src/components/VSkeltonLoader/VSkeltonLoaderBone.scss +4 -4
  48. package/src/components/VSwitch/VSwitch.scss +1 -1
  49. package/src/components/VSwitch/VSwitch.tsx +0 -1
  50. package/src/components/VTabs/VTab.scss +3 -3
  51. package/src/components/VTabs/VTabs.tsx +1 -4
  52. package/src/components/VTextField/VTextField.scss +3 -3
  53. package/src/components/VTextField/VTextField.tsx +0 -1
  54. package/src/components/VTextarea/VTextarea.scss +2 -2
  55. package/src/components/VTextarea/VTextarea.tsx +0 -1
  56. package/src/components/VToolbar/VToolbarMenu.tsx +0 -1
  57. package/src/composables/form-selector.tsx +1 -2
  58. package/src/plugin.tsx +1 -2
  59. package/src/service.tsx +0 -1
  60. package/src/styles/base.scss +2 -2
  61. package/src/styles/core/functions.scss +8 -4
  62. package/src/styles/core.scss +2 -2
  63. package/src/styles/elevation.scss +1 -1
  64. package/src/styles/group.scss +3 -3
  65. package/src/styles/index.scss +7 -7
  66. package/src/styles/typo.scss +1 -1
  67. package/src/styles/variables.scss +31 -26
package/dist/vui.mjs CHANGED
@@ -26,15 +26,15 @@ import { VScroller, getDocumentScroller } from '@fastkit/vue-scroller';
26
26
  export * from '@fastkit/vue-scroller';
27
27
  import { defineMenuComponent, defineDialogComponent, createStackActionProps, useStackAction, defineSnackbarComponent, createStackableDefine, useStackControl, createMenuProps, VDynamicStacks, BUILTIN_ACTION_HANDLERS, installVueStackPlugin } from '@fastkit/vue-stack';
28
28
  export * from '@fastkit/vue-stack';
29
- import { useActionable, VAction, actionableInheritProps, setDefaultActionableClassName, setDefaultRouterLink } from '@fastkit/vue-action';
29
+ import { registerActionableAttrsResolver, registerActionableRenderWrapper, useActionable, VAction, actionableInheritProps, setDefaultActionableClassName, setDefaultRouterLink } from '@fastkit/vue-action';
30
30
  export * from '@fastkit/vue-action';
31
31
  export { VAction as VLink } from '@fastkit/vue-action';
32
32
  import { createPropsOptions, typedSlotWithCtx, defineSlots, typedSlotsWithCtx, renderSlotOrEmpty, withCtx, isFragment, resolveNumberish, resolveVNodeChildOrSlots, withCtxForSlots, rawNumberPropType, onAppUnmount } from '@fastkit/vue-utils';
33
33
  export * from '@fastkit/vue-utils';
34
34
  import * as vue_loading_star from '@fastkit/vue-loading';
35
35
  export * from '@fastkit/vue-loading';
36
- import { defineComponent, computed, createVNode, mergeProps, ref, watch, onMounted, onBeforeUnmount, Fragment, isVNode, cloneVNode, withDirectives, vShow, onBeforeUpdate, Transition, inject, provide, createTextVNode, nextTick, vModelSelect, reactive } from 'vue';
37
- import { defineDisabledReasonComponent } from '@fastkit/vue-disabled-reason';
36
+ import { defineComponent, computed, createVNode, mergeProps, ref, watch, onMounted, onBeforeUnmount, Fragment, isVNode, cloneVNode, withDirectives, vShow, onBeforeUpdate, Transition, inject, provide, createTextVNode, getCurrentInstance, nextTick, vModelSelect, reactive } from 'vue';
37
+ import { defineDisabledReasonComponent, DISABLED_REASON_CONTAINER_BIND } from '@fastkit/vue-disabled-reason';
38
38
  import { loadImage } from '@fastkit/dom';
39
39
  import { useRouter, useRoute, RouterLink, useLink } from 'vue-router';
40
40
  import { resizeDirectiveArgument, installResizeDirective } from '@fastkit/vue-resize';
@@ -68,6 +68,7 @@ __export(src_exports, {
68
68
  CONTROL_FIELD_VARIANTS: () => CONTROL_FIELD_VARIANTS,
69
69
  CONTROL_LOADING_SPINNER_SIZES: () => CONTROL_LOADING_SPINNER_SIZES,
70
70
  CONTROL_SIZES: () => CONTROL_SIZES,
71
+ DISABLED_REASON_PROPS: () => DISABLED_REASON_PROPS,
71
72
  ICON_NAMES: () => ICON_NAMES,
72
73
  KEYBOARD_EVENT_TYPES: () => KEYBOARD_EVENT_TYPES,
73
74
  PAGINATION_ALIGNS: () => PAGINATION_ALIGNS,
@@ -426,9 +427,8 @@ var VFormControl = defineComponent({
426
427
  ...slots(),
427
428
  error: Boolean
428
429
  },
429
- slots,
430
430
  emits,
431
- // eslint-disable-next-line no-shadow
431
+ slots,
432
432
  setup(props12, ctx) {
433
433
  const vui = useVui();
434
434
  const control = useFormNodeWrapper(props12, ctx, {
@@ -465,10 +465,7 @@ var VFormControl = defineComponent({
465
465
  "v-form-control--untouched": control.untouched,
466
466
  "v-form-control--invalid": control.invalid,
467
467
  "v-form-control--valid": control.valid
468
- }, colorProvider.className(
469
- // eslint-disable-next-line no-nested-ternary
470
- props12.error ? "error" : control.invalid && !control.isReadonly ? "error" : "primary"
471
- )]);
468
+ }, colorProvider.className(props12.error ? "error" : control.invalid && !control.isReadonly ? "error" : "primary")]);
472
469
  const getRequiredChip = createRequiredChipRenderer(() => control.isRequired, props12, vui);
473
470
  const handleClick = (ev) => ctx.emit("clickLabel", ev, control);
474
471
  return () => {
@@ -544,9 +541,8 @@ function defineFormSelectorComponent(opts) {
544
541
  failedToLoadItemsMessage: {},
545
542
  ...slots2()
546
543
  },
547
- slots: slots2,
548
544
  emits: emits12,
549
- // eslint-disable-next-line no-shadow
545
+ slots: slots2,
550
546
  setup(props13, ctx) {
551
547
  const selectorControl = useFormSelectorControl(props13, ctx, {
552
548
  nodeType,
@@ -644,6 +640,7 @@ __export(components_exports, {
644
640
  BUTTON_ALIGNS: () => BUTTON_ALIGNS,
645
641
  CHIP_SIZES: () => CHIP_SIZES,
646
642
  CHOICE_KEY_TYPES: () => CHOICE_KEY_TYPES,
643
+ DISABLED_REASON_PROPS: () => DISABLED_REASON_PROPS,
647
644
  ICON_NAMES: () => ICON_NAMES,
648
645
  KEYBOARD_EVENT_TYPES: () => KEYBOARD_EVENT_TYPES,
649
646
  PAGINATION_ALIGNS: () => PAGINATION_ALIGNS,
@@ -825,7 +822,6 @@ var VSheetModal = defineComponent({
825
822
  inheritAttrs: false,
826
823
  props: sheetModalProps,
827
824
  emits: emits2,
828
- // eslint-disable-next-line no-shadow
829
825
  setup(props12, ctx) {
830
826
  const stackControl = useStackControl(props12, ctx, {
831
827
  stackType: SHEET_STACK_TYPE
@@ -877,11 +873,13 @@ var VSkeltonLoaderBone = defineComponent({
877
873
  };
878
874
  }
879
875
  });
876
+ function _isSlot(s) {
877
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
878
+ }
880
879
  var menuProps = createMenuProps();
881
- var VDisabledReason = defineDisabledReasonComponent({
882
- name: "VDisabledReason",
883
- props: {
884
- ...menuProps,
880
+ var DISABLED_REASON_PROPS = {
881
+ ...menuProps,
882
+ ...createPropsOptions({
885
883
  /**
886
884
  * Display type
887
885
  *
@@ -893,7 +891,11 @@ var VDisabledReason = defineDisabledReasonComponent({
893
891
  type: String,
894
892
  default: "tooltip"
895
893
  }
896
- },
894
+ })
895
+ };
896
+ var VDisabledReason = defineDisabledReasonComponent({
897
+ name: "VDisabledReason",
898
+ props: DISABLED_REASON_PROPS,
897
899
  setup(api) {
898
900
  return (reason) => {
899
901
  const {
@@ -914,6 +916,29 @@ var VDisabledReason = defineDisabledReasonComponent({
914
916
  };
915
917
  }
916
918
  });
919
+ registerActionableAttrsResolver((attrs, ctx) => {
920
+ const disabledReason = ctx.getAttr("disabledReason");
921
+ if (disabledReason) {
922
+ delete attrs.disabledReason;
923
+ return [void 0, {
924
+ disabledReason
925
+ }];
926
+ }
927
+ });
928
+ registerActionableRenderWrapper((customProps, currentNode) => {
929
+ const {
930
+ disabledReason
931
+ } = customProps;
932
+ const disabledReasonInput = typeof disabledReason === "string" || typeof disabledReason === "function" ? {
933
+ reason: disabledReason
934
+ } : disabledReason;
935
+ if (disabledReasonInput) {
936
+ return createVNode(VDisabledReason, disabledReasonInput, _isSlot(currentNode) ? currentNode : {
937
+ default: () => [currentNode]
938
+ });
939
+ }
940
+ return currentNode;
941
+ });
917
942
  var IMAGE_ATTRS = ["alt", "crossorigin", "decoding", "sizes", "src", "srcset", "usemap"];
918
943
  function splitAttrs(attrs) {
919
944
  const el = {
@@ -1635,7 +1660,7 @@ var VButtonGroup = defineComponent({
1635
1660
  };
1636
1661
  }
1637
1662
  });
1638
- function _isSlot(s) {
1663
+ function _isSlot2(s) {
1639
1664
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
1640
1665
  }
1641
1666
  var PAGINATION_ALIGNS = ["left", "center", "right"];
@@ -1858,7 +1883,7 @@ var VPagination = defineComponent({
1858
1883
  "class": classes2,
1859
1884
  "to": to,
1860
1885
  "key": key
1861
- }, _isSlot(children) ? children : {
1886
+ }, _isSlot2(children) ? children : {
1862
1887
  default: () => [children]
1863
1888
  });
1864
1889
  }
@@ -1952,16 +1977,11 @@ var VListTile = defineComponent({
1952
1977
  "v-list-tile--active": isActive.value
1953
1978
  }];
1954
1979
  });
1955
- watch(
1956
- () => isActive.value,
1957
- // eslint-disable-next-line no-shadow
1958
- (isActive2) => {
1959
- ctx.emit("changeActive", isActive2);
1960
- },
1961
- {
1962
- immediate: true
1963
- }
1964
- );
1980
+ watch(() => isActive.value, (isActive2) => {
1981
+ ctx.emit("changeActive", isActive2);
1982
+ }, {
1983
+ immediate: true
1984
+ });
1965
1985
  return () => {
1966
1986
  const _startIcon = startIcon.value;
1967
1987
  const _endIcon = endIcon.value;
@@ -2052,7 +2072,7 @@ var VHero = defineComponent({
2052
2072
  };
2053
2073
  }
2054
2074
  });
2055
- function _isSlot2(s) {
2075
+ function _isSlot3(s) {
2056
2076
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
2057
2077
  }
2058
2078
  function createNavigationItemProps() {
@@ -2091,7 +2111,7 @@ function renderNavigationItemInput(input, extraProps) {
2091
2111
  return createVNode(VNavigationItem, {
2092
2112
  ...props12,
2093
2113
  ...extraProps
2094
- }, _isSlot2(label) ? label : {
2114
+ }, _isSlot3(label) ? label : {
2095
2115
  default: () => [label]
2096
2116
  });
2097
2117
  }
@@ -2276,7 +2296,6 @@ var VNavigation = defineComponent({
2276
2296
  }, [$caption]), items.value.map((item) => renderNavigationItemInput(item, {
2277
2297
  class: "v-navigation__item",
2278
2298
  startIconEmptySpace: startIconEmptySpace.value,
2279
- // eslint-disable-next-line no-shadow
2280
2299
  ref: (ref10) => {
2281
2300
  setItemRef(item, ref10);
2282
2301
  },
@@ -2314,10 +2333,10 @@ var VControlField = defineComponent({
2314
2333
  ...slots5(),
2315
2334
  error: Boolean
2316
2335
  },
2317
- slots: slots5,
2318
2336
  emits: {
2319
2337
  click: (ev) => true
2320
2338
  },
2339
+ slots: slots5,
2321
2340
  setup(props12, ctx) {
2322
2341
  const parentNode = useParentFormNode();
2323
2342
  const control = useControl(props12);
@@ -2335,10 +2354,7 @@ var VControlField = defineComponent({
2335
2354
  "v-control-field--readonly": readonly.value,
2336
2355
  "v-control-field--focused": props12.focused,
2337
2356
  "v-control-field--auto-height": autoHeight.value
2338
- }, control.classes.value, colorProvider.className(
2339
- // eslint-disable-next-line no-nested-ternary
2340
- props12.error ? "error" : invalid.value && !readonly.value ? "error" : "primary"
2341
- )];
2357
+ }, control.classes.value, colorProvider.className(props12.error ? "error" : invalid.value && !readonly.value ? "error" : "primary")];
2342
2358
  return _classes;
2343
2359
  });
2344
2360
  const resolvedSlots = computed(() => {
@@ -2365,11 +2381,11 @@ var VControlField = defineComponent({
2365
2381
  }, [child]);
2366
2382
  };
2367
2383
  const handleClick = (ev) => ctx.emit("click", ev);
2368
- return () => createVNode("div", {
2384
+ return () => createVNode("div", mergeProps({
2369
2385
  "class": classes.value,
2370
2386
  "onClick": handleClick,
2371
2387
  "ref": hostElRef
2372
- }, [renderAdornment("start"), createVNode("div", {
2388
+ }, DISABLED_REASON_CONTAINER_BIND), [renderAdornment("start"), createVNode("div", {
2373
2389
  "class": "v-control-field__body"
2374
2390
  }, [ctx.slots.default?.()]), renderAdornment("end")]);
2375
2391
  }
@@ -2418,9 +2434,9 @@ var VCheckable = defineComponent({
2418
2434
  "v-checkable--custom-icon": !!ctx.slots.icon,
2419
2435
  disabled: disabled.value
2420
2436
  }, colorProvider.className(invalid.value ? "error" : "primary")]);
2421
- return () => createVNode("label", {
2437
+ return () => createVNode("label", mergeProps({
2422
2438
  "class": ["v-checkable", classes.value]
2423
- }, [createVNode("span", {
2439
+ }, DISABLED_REASON_CONTAINER_BIND), [createVNode("span", {
2424
2440
  "class": "v-checkable__faux"
2425
2441
  }, [ctx.slots.input?.(), ctx.slots.icon ? ctx.slots.icon() : createVNode("span", {
2426
2442
  "class": "v-checkable__faux__icon"
@@ -2443,7 +2459,6 @@ var VCheckbox = defineComponent({
2443
2459
  indeterminate: Boolean
2444
2460
  },
2445
2461
  emits: emits3,
2446
- // eslint-disable-next-line no-shadow
2447
2462
  setup(props12, ctx) {
2448
2463
  const nodeControl = useFormSelectorItemControl(props12, ctx, {
2449
2464
  nodeType: VUI_CHECKBOX_SYMBOL,
@@ -2481,7 +2496,7 @@ var VCheckbox = defineComponent({
2481
2496
  }, withCtxForSlots(slots12));
2482
2497
  }
2483
2498
  });
2484
- function _isSlot3(s) {
2499
+ function _isSlot4(s) {
2485
2500
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
2486
2501
  }
2487
2502
  var VCheckboxGroup = defineFormSelectorComponent({
@@ -2492,7 +2507,7 @@ var VCheckboxGroup = defineFormSelectorComponent({
2492
2507
  itemRenderer: ({
2493
2508
  attrs,
2494
2509
  slots: slots12
2495
- }) => createVNode(VCheckbox, attrs, _isSlot3(slots12) ? slots12 : {
2510
+ }) => createVNode(VCheckbox, attrs, _isSlot4(slots12) ? slots12 : {
2496
2511
  default: () => [slots12]
2497
2512
  })
2498
2513
  });
@@ -2507,7 +2522,6 @@ var VRadio = defineComponent({
2507
2522
  ...createControlProps()
2508
2523
  },
2509
2524
  emits: emits4,
2510
- // eslint-disable-next-line no-shadow
2511
2525
  setup(props12, ctx) {
2512
2526
  const nodeControl = useFormSelectorItemControl(props12, ctx, {
2513
2527
  nodeType: VUI_RADIO_SYMBOL,
@@ -2535,7 +2549,7 @@ var VRadio = defineComponent({
2535
2549
  }, withCtxForSlots(slots12));
2536
2550
  }
2537
2551
  });
2538
- function _isSlot4(s) {
2552
+ function _isSlot5(s) {
2539
2553
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
2540
2554
  }
2541
2555
  var VRadioGroup = defineFormSelectorComponent({
@@ -2545,7 +2559,7 @@ var VRadioGroup = defineFormSelectorComponent({
2545
2559
  itemRenderer: ({
2546
2560
  attrs,
2547
2561
  slots: slots12
2548
- }) => createVNode(VRadio, attrs, _isSlot4(slots12) ? slots12 : {
2562
+ }) => createVNode(VRadio, attrs, _isSlot5(slots12) ? slots12 : {
2549
2563
  default: () => [slots12]
2550
2564
  })
2551
2565
  });
@@ -2560,7 +2574,6 @@ var VSwitch = defineComponent({
2560
2574
  ...createControlProps()
2561
2575
  },
2562
2576
  emits: emits5,
2563
- // eslint-disable-next-line no-shadow
2564
2577
  setup(props12, ctx) {
2565
2578
  const nodeControl = useFormSelectorItemControl(props12, ctx, {
2566
2579
  nodeType: VUI_SWITCH_SYMBOL,
@@ -2598,7 +2611,7 @@ var VSwitch = defineComponent({
2598
2611
  }, withCtxForSlots(slots12));
2599
2612
  }
2600
2613
  });
2601
- function _isSlot5(s) {
2614
+ function _isSlot6(s) {
2602
2615
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
2603
2616
  }
2604
2617
  var VSwitchGroup = defineFormSelectorComponent({
@@ -2609,7 +2622,7 @@ var VSwitchGroup = defineFormSelectorComponent({
2609
2622
  itemRenderer: ({
2610
2623
  attrs,
2611
2624
  slots: slots12
2612
- }) => createVNode(VSwitch, attrs, _isSlot5(slots12) ? slots12 : {
2625
+ }) => createVNode(VSwitch, attrs, _isSlot6(slots12) ? slots12 : {
2613
2626
  default: () => [slots12]
2614
2627
  })
2615
2628
  });
@@ -2624,7 +2637,6 @@ var VOption = defineComponent({
2624
2637
  ...createControlProps()
2625
2638
  },
2626
2639
  emits: emits6,
2627
- // eslint-disable-next-line no-shadow
2628
2640
  setup(props12, ctx) {
2629
2641
  const nodeControl = useFormSelectorItemControl(props12, ctx, {
2630
2642
  nodeType: VUI_OPTION_SYMBOL,
@@ -2678,7 +2690,7 @@ var VOptionGroup = defineComponent({
2678
2690
  };
2679
2691
  }
2680
2692
  });
2681
- function _isSlot6(s) {
2693
+ function _isSlot7(s) {
2682
2694
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
2683
2695
  }
2684
2696
  var ARROW_KEY_TYPES = useKeyboard.Key(["ArrowUp", "ArrowDown"]);
@@ -2707,9 +2719,8 @@ var VSelect = defineComponent({
2707
2719
  }),
2708
2720
  closeOnNavigation: Boolean
2709
2721
  },
2710
- slots: slots7,
2711
2722
  emits: emits7,
2712
- // eslint-disable-next-line no-shadow
2723
+ slots: slots7,
2713
2724
  setup(props12, ctx) {
2714
2725
  const menuRef = ref(null);
2715
2726
  const menuOpened = ref(false);
@@ -2879,13 +2890,13 @@ var VSelect = defineComponent({
2879
2890
  "groupId": group.id,
2880
2891
  "label": group.label(inputControl),
2881
2892
  "disabled": group.disabled
2882
- }, _isSlot6(_slot2 = group.items.map((item) => {
2893
+ }, _isSlot7(_slot2 = group.items.map((item) => {
2883
2894
  let _slot;
2884
2895
  return createVNode(VOption, {
2885
2896
  "disabled": item.disabled,
2886
2897
  "value": item.value,
2887
2898
  "key": item.value
2888
- }, _isSlot6(_slot = item.label(inputControl)) ? _slot : {
2899
+ }, _isSlot7(_slot = item.label(inputControl)) ? _slot : {
2889
2900
  default: () => [_slot]
2890
2901
  });
2891
2902
  })) ? _slot2 : {
@@ -3026,7 +3037,6 @@ var VTextField = defineComponent({
3026
3037
  props: createTextFieldProps(),
3027
3038
  emits: emits8,
3028
3039
  slots: slots8,
3029
- // eslint-disable-next-line no-shadow
3030
3040
  setup(props12, ctx) {
3031
3041
  const inputControl = useTextInputNodeControl(props12, ctx, {
3032
3042
  nodeType: VUI_TEXT_FIELD_SYMBOL
@@ -3144,7 +3154,6 @@ var VTextarea = defineComponent({
3144
3154
  ...slots9()
3145
3155
  },
3146
3156
  emits: emits9,
3147
- // eslint-disable-next-line no-shadow
3148
3157
  setup(props12, ctx) {
3149
3158
  const vui = useVui();
3150
3159
  const inputControl = useTextareaNodeControl(props12, ctx, {
@@ -3211,7 +3220,6 @@ var VFormGroup = defineComponent({
3211
3220
  props: createVFormGroupProps(),
3212
3221
  emits: emits10,
3213
3222
  slots: formGroupSlots,
3214
- // eslint-disable-next-line no-shadow
3215
3223
  setup(props12, ctx) {
3216
3224
  const nodeControl = useFormGroup(props12, ctx, {
3217
3225
  nodeType: VUI_FORM_GROUP_SYMBOL
@@ -3229,6 +3237,10 @@ var {
3229
3237
  } = createFormSettings({
3230
3238
  nodeType: VUI_FORM_SYMBOL
3231
3239
  });
3240
+ function useRender(render) {
3241
+ const vm = getCurrentInstance();
3242
+ vm.render = render;
3243
+ }
3232
3244
  var formSlots = defineSlots();
3233
3245
  function createVFormProps() {
3234
3246
  return {
@@ -3242,7 +3254,6 @@ var VForm = defineComponent({
3242
3254
  props: createVFormProps(),
3243
3255
  emits: emits11,
3244
3256
  slots: formSlots,
3245
- // eslint-disable-next-line no-shadow
3246
3257
  setup(props12, ctx) {
3247
3258
  const nodeControl = useForm(props12, ctx, {
3248
3259
  nodeType: VUI_FORM_SYMBOL
@@ -3256,15 +3267,15 @@ var VForm = defineComponent({
3256
3267
  "v-form--sending": nodeControl.sending
3257
3268
  }]);
3258
3269
  useControl(props12);
3259
- ctx.expose({
3260
- control: nodeControl
3261
- });
3262
- return () => createVNode("form", mergeProps({
3270
+ useRender(() => createVNode("form", mergeProps({
3263
3271
  "class": classes.value
3264
- }, nodeControl.formAttrs), [ctx.slots.default?.(nodeControl)]);
3272
+ }, nodeControl.formAttrs), [ctx.slots.default?.(nodeControl)]));
3273
+ return {
3274
+ control: nodeControl
3275
+ };
3265
3276
  }
3266
3277
  });
3267
- function _isSlot7(s) {
3278
+ function _isSlot8(s) {
3268
3279
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
3269
3280
  }
3270
3281
  var VTab = defineComponent({
@@ -3309,7 +3320,7 @@ var VTab = defineComponent({
3309
3320
  "class": classes,
3310
3321
  "to": to,
3311
3322
  "replace": replace
3312
- }, _isSlot7(children) ? children : {
3323
+ }, _isSlot8(children) ? children : {
3313
3324
  default: () => [children]
3314
3325
  });
3315
3326
  }
@@ -3326,7 +3337,7 @@ var VTab = defineComponent({
3326
3337
  });
3327
3338
 
3328
3339
  // src/components/VTabs/VTabs.tsx
3329
- function _isSlot8(s) {
3340
+ function _isSlot9(s) {
3330
3341
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
3331
3342
  }
3332
3343
  var slots10 = defineSlots();
@@ -3571,7 +3582,7 @@ var VTabs = defineComponent({
3571
3582
  to(value);
3572
3583
  }
3573
3584
  }
3574
- }, _isSlot8(children2) ? children2 : {
3585
+ }, _isSlot9(children2) ? children2 : {
3575
3586
  default: () => [children2]
3576
3587
  });
3577
3588
  });
@@ -3590,7 +3601,7 @@ var VTabs = defineComponent({
3590
3601
  };
3591
3602
  }
3592
3603
  });
3593
- function _isSlot9(s) {
3604
+ function _isSlot10(s) {
3594
3605
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
3595
3606
  }
3596
3607
  var VBreadcrumbs = defineComponent({
@@ -3667,7 +3678,7 @@ var VBreadcrumbs = defineComponent({
3667
3678
  "class": "v-breadcrumbs__link",
3668
3679
  "to": to,
3669
3680
  "exactActiveClass": "v-breadcrumbs__link--active"
3670
- }, _isSlot9(myChildren) ? myChildren : {
3681
+ }, _isSlot10(myChildren) ? myChildren : {
3671
3682
  default: () => [myChildren]
3672
3683
  }) : myChildren;
3673
3684
  children.push(createVNode("li", {
@@ -3685,7 +3696,7 @@ var VBreadcrumbs = defineComponent({
3685
3696
  };
3686
3697
  }
3687
3698
  });
3688
- function _isSlot10(s) {
3699
+ function _isSlot11(s) {
3689
3700
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
3690
3701
  }
3691
3702
  var VContentSwitcher = defineComponent({
@@ -3797,7 +3808,7 @@ var VContentSwitcher = defineComponent({
3797
3808
  "onLeaveCancelled": () => {
3798
3809
  getEl().style.height = "";
3799
3810
  }
3800
- }, _isSlot10(children) ? children : {
3811
+ }, _isSlot11(children) ? children : {
3801
3812
  default: () => [children]
3802
3813
  })]);
3803
3814
  };
@@ -4733,7 +4744,6 @@ var VuiService = class {
4733
4744
  const _onClick = BUILTIN_ACTION_HANDLERS[key];
4734
4745
  const action = {
4735
4746
  key,
4736
- // eslint-disable-next-line no-shadow
4737
4747
  content: ({
4738
4748
  control,
4739
4749
  key: key2
@@ -4795,7 +4805,6 @@ var VuiPlugin = class {
4795
4805
  options: {
4796
4806
  behavior: "smooth"
4797
4807
  },
4798
- // eslint-disable-next-line no-shadow
4799
4808
  fn: (el, opts2) => {
4800
4809
  if (window.getComputedStyle(el).scrollMargin) return;
4801
4810
  const duration = opts2?.behavior === "smooth" ? void 0 : 0;
@@ -4823,6 +4832,6 @@ function installVuiPlugin(app, opts) {
4823
4832
  return app.use(VuiPlugin, opts);
4824
4833
  }
4825
4834
 
4826
- export { ARROW_KEY_TYPES, AVATAR_SIZES, BUTTON_ALIGNS, CHIP_SIZES, CHOICE_KEY_TYPES, CONTROL_FIELD_VARIANTS, CONTROL_LOADING_SPINNER_SIZES, CONTROL_SIZES, KEYBOARD_EVENT_TYPES, PAGINATION_ALIGNS, VApp, VAvatar, VBreadcrumbs, VBusyImage, VButton, VButtonGroup, VCard, VCardActions, VCardContent, VCheckbox, VCheckboxGroup, VChip, VContentSwitcher, VControlField, VDataTable, VDialog, VDisabledReason, VDrawerLayout, VForm, VFormControl, VFormGroup, VGridContainer, VGridItem, VHero, VIcon, VListTile, VMenu, VNavigation, VNavigationItem, VNumberField, VOption, VOptionGroup, VPagination, VPaper, VRadio, VRadioGroup, VSelect, VSheetModal, VSkeltonLoaderBone, VSnackbar, VSwitch, VSwitchGroup, VTabs, VTextCounter, VTextField, VTextarea, VToolbar, VToolbarEdge, VToolbarMenu, VToolbarTitle, VTooltip, VUI_CHECKBOX_GROUP_SYMBOL, VUI_CHECKBOX_SYMBOL, VUI_FORM_GROUP_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, VuiColorProviderInjectionKey, VuiControlFieldInjectionKey, VuiControlInjectionKey, VuiInjectionKey, VuiPlugin, VuiService, configureDataTableDefaults, createAvatarProps, createCardProps, createChipProps, createControlFieldProps, createControlFieldProviderProps, createControlProps, createElevationProps, createListTileProps, createNavigationItemProps, createNavigationProps, createPaperBaseProps, createPaperProps, createRequiredChipRenderer, createVFormGroupProps, createVFormProps, defineFormSelectorComponent, formGroupSlots, formSlots, iconProps, installVuiPlugin, listTileEmits, mergeVuiPluginOptions, mergeVuiServiceIconSettings, mergeVuiServiceOptions, mergeVuiServiceUISettings, paginationProps, paperBaseSlots, rawIconProp, renderNavigationItemInput, resolveNavigationItemInput, resolveRawIconProp, sheetModalProps, splitAttrs, useControl, useControlField, useElevation, useVui, useVuiColorProvider, vueButtonProps };
4835
+ export { ARROW_KEY_TYPES, AVATAR_SIZES, BUTTON_ALIGNS, CHIP_SIZES, CHOICE_KEY_TYPES, CONTROL_FIELD_VARIANTS, CONTROL_LOADING_SPINNER_SIZES, CONTROL_SIZES, DISABLED_REASON_PROPS, KEYBOARD_EVENT_TYPES, PAGINATION_ALIGNS, VApp, VAvatar, VBreadcrumbs, VBusyImage, VButton, VButtonGroup, VCard, VCardActions, VCardContent, VCheckbox, VCheckboxGroup, VChip, VContentSwitcher, VControlField, VDataTable, VDialog, VDisabledReason, VDrawerLayout, VForm, VFormControl, VFormGroup, VGridContainer, VGridItem, VHero, VIcon, VListTile, VMenu, VNavigation, VNavigationItem, VNumberField, VOption, VOptionGroup, VPagination, VPaper, VRadio, VRadioGroup, VSelect, VSheetModal, VSkeltonLoaderBone, VSnackbar, VSwitch, VSwitchGroup, VTabs, VTextCounter, VTextField, VTextarea, VToolbar, VToolbarEdge, VToolbarMenu, VToolbarTitle, VTooltip, VUI_CHECKBOX_GROUP_SYMBOL, VUI_CHECKBOX_SYMBOL, VUI_FORM_GROUP_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, VuiColorProviderInjectionKey, VuiControlFieldInjectionKey, VuiControlInjectionKey, VuiInjectionKey, VuiPlugin, VuiService, configureDataTableDefaults, createAvatarProps, createCardProps, createChipProps, createControlFieldProps, createControlFieldProviderProps, createControlProps, createElevationProps, createListTileProps, createNavigationItemProps, createNavigationProps, createPaperBaseProps, createPaperProps, createRequiredChipRenderer, createVFormGroupProps, createVFormProps, defineFormSelectorComponent, formGroupSlots, formSlots, iconProps, installVuiPlugin, listTileEmits, mergeVuiPluginOptions, mergeVuiServiceIconSettings, mergeVuiServiceOptions, mergeVuiServiceUISettings, paginationProps, paperBaseSlots, rawIconProp, renderNavigationItemInput, resolveNavigationItemInput, resolveRawIconProp, sheetModalProps, splitAttrs, useControl, useControlField, useElevation, useVui, useVuiColorProvider, vueButtonProps };
4827
4836
  //# sourceMappingURL=vui.mjs.map
4828
4837
  //# sourceMappingURL=vui.mjs.map