@fastkit/vui 1.1.0 → 1.2.0

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/README.md +1 -1
  2. package/dist/vui.css +3 -3
  3. package/dist/vui.d.ts +102 -78
  4. package/dist/vui.mjs +24 -46
  5. package/dist/vui.mjs.map +1 -1
  6. package/package.json +25 -25
  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/VCheckbox/VCheckbox.scss +3 -3
  17. package/src/components/VCheckbox/VCheckbox.tsx +0 -1
  18. package/src/components/VChip/VChip.scss +4 -4
  19. package/src/components/VChip/VChip.tsx +0 -1
  20. package/src/components/VControlField/VControlField.scss +1 -1
  21. package/src/components/VControlField/VControlField.tsx +3 -4
  22. package/src/components/VDataTable/VDataTable.scss +3 -3
  23. package/src/components/VDataTable/VDataTable.tsx +1 -3
  24. package/src/components/VDialog/VDialog.scss +1 -1
  25. package/src/components/VDisabledReason/VDisabledReason.scss +1 -1
  26. package/src/components/VForm/VForm.tsx +20 -8
  27. package/src/components/VFormControl/VFormControl.scss +1 -1
  28. package/src/components/VFormControl/VFormControl.tsx +4 -7
  29. package/src/components/VFormGroup/VFormGroup.tsx +0 -1
  30. package/src/components/VGrid/schemes.ts +0 -1
  31. package/src/components/VIcon/VIcon.tsx +1 -1
  32. package/src/components/VListTile/VListTile.scss +1 -1
  33. package/src/components/VListTile/VListTile.tsx +0 -2
  34. package/src/components/VNavigation/VNavigation.tsx +1 -2
  35. package/src/components/VNavigation/VNavigationItem.tsx +2 -5
  36. package/src/components/VNumberField/VNumberField.tsx +0 -1
  37. package/src/components/VOption/VOption.scss +1 -1
  38. package/src/components/VOption/VOption.tsx +0 -1
  39. package/src/components/VPagination/VPagination.scss +2 -2
  40. package/src/components/VPagination/VPagination.tsx +2 -3
  41. package/src/components/VRadio/VRadio.scss +1 -1
  42. package/src/components/VRadio/VRadio.tsx +0 -1
  43. package/src/components/VSelect/VSelect.scss +2 -2
  44. package/src/components/VSelect/VSelect.tsx +4 -6
  45. package/src/components/VSheetModal/VSheetModal.tsx +0 -1
  46. package/src/components/VSkeltonLoader/VSkeltonLoaderBone.scss +4 -4
  47. package/src/components/VSwitch/VSwitch.scss +1 -1
  48. package/src/components/VSwitch/VSwitch.tsx +0 -1
  49. package/src/components/VTabs/VTab.scss +3 -3
  50. package/src/components/VTabs/VTab.tsx +1 -1
  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 +1 -2
  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 +1 -2
  60. package/src/styles/base.scss +2 -2
  61. package/src/styles/core/functions.scss +4 -3
  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 +22 -22
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fastkit/vui",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "A simple, extensible UI kit for Vue applications.",
5
5
  "keywords": [
6
6
  "fastkit",
@@ -45,38 +45,38 @@
45
45
  ],
46
46
  "dependencies": {
47
47
  "@fastkit/color-scheme": "^2.1.0",
48
- "@fastkit/color-scheme-gen": "^1.1.0",
49
- "@fastkit/dom": "^0.3.0",
50
48
  "@fastkit/helpers": "^0.15.0",
49
+ "@fastkit/icon-font": "^2.1.0",
50
+ "@fastkit/color-scheme-gen": "^1.1.0",
51
51
  "@fastkit/media-match": "^2.1.0",
52
- "@fastkit/media-match-gen": "^1.1.0",
52
+ "@fastkit/dom": "^0.3.0",
53
+ "@fastkit/vue-app-layout": "^0.18.0",
53
54
  "@fastkit/tiny-logger": "^0.15.0",
55
+ "@fastkit/vue-action": "^0.5.0",
56
+ "@fastkit/vue-disabled-reason": "^0.2.0",
57
+ "@fastkit/vue-body-scroll-lock": "^0.4.0",
58
+ "@fastkit/vue-click-outside": "^0.4.0",
59
+ "@fastkit/vue-color-scheme": "^0.17.0",
60
+ "@fastkit/vue-keyboard": "^0.4.0",
61
+ "@fastkit/vue-location": "^0.6.0",
62
+ "@fastkit/vue-loading": "^0.17.0",
63
+ "@fastkit/vue-resize": "^0.4.0",
64
+ "@fastkit/vue-stack": "^0.19.0",
65
+ "@fastkit/vue-form-control": "^0.23.0",
66
+ "@fastkit/vue-media-match": "^0.16.0",
67
+ "@fastkit/vue-scroller": "^0.17.0",
68
+ "@fastkit/media-match-gen": "^1.1.0",
54
69
  "@fastkit/rules": "^0.15.0",
55
- "@fastkit/vue-body-scroll-lock": "^0.3.0",
56
- "@fastkit/vue-app-layout": "^0.17.0",
57
- "@fastkit/vue-action": "^0.4.0",
58
- "@fastkit/vue-color-scheme": "^0.16.0",
59
- "@fastkit/vue-click-outside": "^0.3.0",
60
- "@fastkit/vue-form-control": "^0.22.0",
61
- "@fastkit/vue-loading": "^0.16.0",
62
- "@fastkit/vue-keyboard": "^0.3.0",
63
- "@fastkit/vue-disabled-reason": "^0.1.0",
64
- "@fastkit/vue-location": "^0.5.0",
65
- "@fastkit/vue-resize": "^0.3.0",
66
- "@fastkit/vue-media-match": "^0.15.0",
67
- "@fastkit/vue-scroller": "^0.16.0",
68
- "@fastkit/vue-stack": "^0.18.0",
69
- "@fastkit/icon-font": "^2.1.0",
70
70
  "@fastkit/stylebase": "^0.13.1",
71
- "@fastkit/vue-transitions": "^0.3.0",
72
- "@fastkit/vue-utils": "^0.16.0"
71
+ "@fastkit/vue-transitions": "^0.4.0",
72
+ "@fastkit/vue-utils": "^0.17.0"
73
73
  },
74
74
  "devDependencies": {
75
- "vue": "^3.5.21",
75
+ "vue": "^3.5.22",
76
76
  "vue-router": "^4.5.1"
77
77
  },
78
78
  "peerDependencies": {
79
- "vue": "^3.4.0",
79
+ "vue": "^3.5.0",
80
80
  "vue-router": "^4.4.0"
81
81
  },
82
82
  "buildOptions": {
@@ -93,8 +93,8 @@
93
93
  "scripts": {
94
94
  "build": "plugboy build",
95
95
  "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
96
- "eslint": "eslint . --ext ts,tsx,js,vue,html,yaml",
97
- "eslint:fix": "eslint . --ext ts,tsx,js,vue,html,yaml --fix",
96
+ "eslint": "eslint .",
97
+ "eslint:fix": "eslint . --fix",
98
98
  "format": "pnpm run \"/^(eslint:fix|stylelint:fix)$/\"",
99
99
  "lint": "pnpm run \"/^(eslint|stylelint)$/\"",
100
100
  "stub": "plugboy stub",
@@ -1,4 +1,4 @@
1
- @use '../../styles/core.scss';
1
+ @use '../../styles/core';
2
2
 
3
3
  @layer vui {
4
4
  .v-avatar {
@@ -22,15 +22,15 @@
22
22
  font-size: var(--avatar-font-size);
23
23
  font-weight: var(--avatar-font-weight);
24
24
  line-height: 1;
25
- text-align: center;
26
25
  vertical-align: bottom;
26
+ text-align: center;
27
27
  cursor: default;
28
28
  border-style: solid;
29
29
  border-width: 1px;
30
30
  border-radius: var(--avatar-radius);
31
31
 
32
- --shadow-color: rgba(0, 0, 0, 0) !important; // @TODO layer supports
33
- --focusShadow-color: rgba(0, 0, 0, 0) !important; // @TODO layer supports
32
+ --shadow-color: rgb(0, 0, 0, 0) !important; // @TODO layer supports
33
+ --focusShadow-color: rgb(0, 0, 0, 0) !important; // @TODO layer supports
34
34
  }
35
35
 
36
36
  &--clickable {
@@ -8,7 +8,6 @@ import { VBusyImage } from '../VBusyImage';
8
8
  // @TODO Unable to resolve dts for `navigationableInheritProps`.
9
9
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
10
10
  // @ts-ignore
11
- // eslint-disable-next-line import/order
12
11
  import { RouteLocationRaw } from 'vue-router';
13
12
 
14
13
  export const AVATAR_SIZES = ['sm', 'md', 'lg'] as const;
@@ -24,9 +24,9 @@
24
24
  &__link {
25
25
  display: inline-flex;
26
26
  align-items: center;
27
- text-decoration: none;
28
- white-space: nowrap;
29
27
  vertical-align: middle;
28
+ white-space: nowrap;
29
+ text-decoration: none;
30
30
  }
31
31
 
32
32
  &__item--disabled &__link {
@@ -62,7 +62,7 @@ export const VBreadcrumbs = defineComponent({
62
62
 
63
63
  return () => {
64
64
  if (lengthRef.value < 1) return;
65
- // eslint-disable-next-line no-shadow
65
+
66
66
  let dividerSlot: (vui: VuiService) => VNodeChild;
67
67
  const propDivider = props.divider;
68
68
  if (propDivider) {
@@ -20,7 +20,7 @@
20
20
  inset: 0;
21
21
  display: block;
22
22
  content: '';
23
- background: rgba(0, 0, 0, 0.1);
23
+ background: rgb(0, 0, 0, 0.1);
24
24
  animation: v-tiny-image-blink normal 1.5s infinite ease-in-out;
25
25
  }
26
26
 
@@ -30,17 +30,17 @@
30
30
  // font-size: calc(var(--root-em) * 0.875);
31
31
  font-weight: 500;
32
32
  line-height: 1;
33
- text-decoration: none;
33
+ vertical-align: bottom;
34
34
  text-transform: uppercase;
35
35
  letter-spacing: math.div(1.25, 14) * 1em; // 1.25px;
36
- vertical-align: bottom;
36
+ text-decoration: none;
37
37
  appearance: none;
38
38
  cursor: pointer;
39
39
  user-select: none;
40
+ outline: 0;
40
41
  border-style: solid;
41
42
  border-width: 1px;
42
43
  border-radius: var(--control-field-radius);
43
- outline: 0;
44
44
  transition:
45
45
  0.3s cubic-bezier(0.25, 0.8, 0.5, 1),
46
46
  color 1ms;
@@ -23,7 +23,6 @@ import type { IconName } from '../VIcon';
23
23
  // @TODO Unable to resolve dts for `navigationableInheritProps`.
24
24
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
25
25
  // @ts-ignore
26
- // eslint-disable-next-line import/order
27
26
  import { RouteLocationRaw } from 'vue-router';
28
27
 
29
28
  export type VButtonSpacer = 'left' | 'right';
@@ -1,4 +1,4 @@
1
- @use '../../styles/core.scss';
1
+ @use '../../styles/core';
2
2
 
3
3
  @layer vui {
4
4
  .v-card {
@@ -13,8 +13,8 @@
13
13
  appearance: none;
14
14
  touch-action: manipulation;
15
15
  user-select: none;
16
- border: 0;
17
16
  outline: 0;
17
+ border: 0;
18
18
  }
19
19
 
20
20
  &,
@@ -1,4 +1,4 @@
1
- @use '../../styles/core.scss';
1
+ @use '../../styles/core';
2
2
 
3
3
  @layer vui {
4
4
  .v-checkable {
@@ -15,6 +15,9 @@
15
15
  display: block;
16
16
  width: 100%;
17
17
  height: 100%;
18
+ background: var(--my-faux-bg-color);
19
+ border: solid 2px var(--my-border-color);
20
+ border-radius: var(--control-field-radius);
18
21
  clip-path: polygon(
19
22
  0 0,
20
23
  0 100%,
@@ -29,9 +32,6 @@
29
32
  88.25% 28.25%,
30
33
  100% 0
31
34
  );
32
- background: var(--my-faux-bg-color);
33
- border: solid 2px var(--my-border-color);
34
- border-radius: var(--control-field-radius);
35
35
  transition:
36
36
  border-color 0.2s,
37
37
  background-color 0.2s;
@@ -22,7 +22,6 @@ export const VCheckbox = defineComponent({
22
22
  indeterminate: Boolean,
23
23
  },
24
24
  emits,
25
- // eslint-disable-next-line no-shadow
26
25
  setup(props, ctx) {
27
26
  const nodeControl = useFormSelectorItemControl(props, ctx, {
28
27
  nodeType: VUI_CHECKBOX_SYMBOL,
@@ -1,4 +1,4 @@
1
- @use '../../styles/core.scss';
1
+ @use '../../styles/core';
2
2
 
3
3
  @layer vui {
4
4
  .v-chip {
@@ -19,16 +19,16 @@
19
19
  font-size: var(--chip-font-size);
20
20
  font-weight: var(--chip-font-weight);
21
21
  line-height: 1;
22
+ vertical-align: bottom;
22
23
  text-align: center;
23
24
  white-space: nowrap;
24
- vertical-align: bottom;
25
25
  cursor: default;
26
26
  border-style: solid;
27
27
  border-width: 1px;
28
28
  border-radius: var(--chip-radius);
29
29
 
30
- --shadow-color: rgba(0, 0, 0, 0) !important; // @TODO layer supports
31
- --focusShadow-color: rgba(0, 0, 0, 0) !important; // @TODO layer supports
30
+ --shadow-color: rgb(0, 0, 0, 0) !important; // @TODO layer supports
31
+ --focusShadow-color: rgb(0, 0, 0, 0) !important; // @TODO layer supports
32
32
  }
33
33
 
34
34
  &--clickable {
@@ -9,7 +9,6 @@ import { VIcon } from '../VIcon';
9
9
  // @TODO Unable to resolve dts for `actionableInheritProps`.
10
10
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
11
11
  // @ts-ignore
12
- // eslint-disable-next-line import/order
13
12
  import { RouteLocationRaw } from 'vue-router';
14
13
 
15
14
  export const CHIP_SIZES = ['xs', 'sm', 'md', 'lg', 'xl'] as const;
@@ -60,8 +60,8 @@
60
60
  &::after {
61
61
  height: 2px;
62
62
  background: var(--my-focused-color);
63
- transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
64
63
  transform: scaleX(0);
64
+ transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
65
65
  }
66
66
 
67
67
  &--focused,
@@ -63,10 +63,10 @@ export const VControlField = defineComponent({
63
63
  ...slots(),
64
64
  error: Boolean,
65
65
  },
66
- slots,
67
66
  emits: {
68
- click: (ev: MouseEvent) => true,
67
+ click: (ev: PointerEvent) => true,
69
68
  },
69
+ slots,
70
70
  setup(props, ctx) {
71
71
  const parentNode = useParentFormNode();
72
72
  const control = useControl(props);
@@ -96,7 +96,6 @@ export const VControlField = defineComponent({
96
96
  },
97
97
  control.classes.value,
98
98
  colorProvider.className(
99
- // eslint-disable-next-line no-nested-ternary
100
99
  props.error
101
100
  ? 'error'
102
101
  : invalid.value && !readonly.value
@@ -140,7 +139,7 @@ export const VControlField = defineComponent({
140
139
  );
141
140
  };
142
141
 
143
- const handleClick = (ev: MouseEvent) => ctx.emit('click', ev);
142
+ const handleClick = (ev: PointerEvent) => ctx.emit('click', ev);
144
143
 
145
144
  return () => (
146
145
  <div
@@ -118,10 +118,10 @@
118
118
 
119
119
  &__cell {
120
120
  position: relative;
121
+ vertical-align: middle;
121
122
  text-align: left;
122
123
  white-space: nowrap;
123
- vertical-align: middle;
124
- border-bottom: thin solid rgba(0, 0, 0, 0.12);
124
+ border-bottom: thin solid rgb(0, 0, 0, 0.12);
125
125
  transition: background 0.2s;
126
126
 
127
127
  &:first-child {
@@ -180,7 +180,7 @@
180
180
 
181
181
  &__header &__cell {
182
182
  user-select: none;
183
- background: rgba(255, 255, 255, 0.85);
183
+ background: rgb(255, 255, 255, 0.85);
184
184
  backdrop-filter: blur(3px);
185
185
 
186
186
  // &--active[tabindex='0'] {
@@ -213,7 +213,6 @@ export const VDataTable = defineComponent({
213
213
  const footerHeightRef = ref(0);
214
214
  const internalValues = ref<string[]>(props.modelValue.slice());
215
215
  const rowSettings = computed<DataTableRowSettingsFn>(() => {
216
- // eslint-disable-next-line no-shadow
217
216
  const { rowSettings } = props;
218
217
  if (!rowSettings) return () => ({});
219
218
  return typeof rowSettings === 'function'
@@ -494,7 +493,7 @@ export const VDataTable = defineComponent({
494
493
  }
495
494
  }
496
495
 
497
- function handleClickSortHeader(header: DataTableHeader, ev: MouseEvent) {
496
+ function handleClickSortHeader(header: DataTableHeader, ev: PointerEvent) {
498
497
  const { sortQuery } = header;
499
498
  if (!sortQuery) return;
500
499
  if (sortByRef.value === sortQuery) {
@@ -689,7 +688,6 @@ export const VDataTable = defineComponent({
689
688
  }
690
689
 
691
690
  if (!cellChildren) {
692
- // eslint-disable-next-line default-case
693
691
  switch (headerKey) {
694
692
  case SELECTABLE_HEADER_SYMBOL: {
695
693
  cellChildren = [
@@ -5,8 +5,8 @@
5
5
  margin: 24px;
6
6
  text-align: left;
7
7
  pointer-events: auto;
8
- border-radius: 2px;
9
8
  outline: 0;
9
+ border-radius: 2px;
10
10
  box-shadow: var(--dialog-shadow);
11
11
 
12
12
  &__header {
@@ -1,4 +1,4 @@
1
- @use '../../styles/core.scss';
1
+ @use '../../styles/core';
2
2
 
3
3
  @layer vui {
4
4
  .v-disabled-reason {
@@ -1,4 +1,9 @@
1
- import { defineComponent, computed } from 'vue';
1
+ import {
2
+ defineComponent,
3
+ computed,
4
+ type RenderFunction,
5
+ getCurrentInstance,
6
+ } from 'vue';
2
7
  import {
3
8
  VueForm,
4
9
  createFormSettings,
@@ -12,6 +17,14 @@ const { props, emits } = createFormSettings({
12
17
  nodeType: VUI_FORM_SYMBOL,
13
18
  });
14
19
 
20
+ /**
21
+ * @TODO Externalize
22
+ */
23
+ function useRender(render: RenderFunction) {
24
+ const vm = getCurrentInstance() as any;
25
+ vm.render = render;
26
+ }
27
+
15
28
  export type VFormSlots = DefineSlotsType<{
16
29
  default?: (form: VueForm) => any;
17
30
  }>;
@@ -31,7 +44,6 @@ export const VForm = defineComponent({
31
44
  props: createVFormProps(),
32
45
  emits,
33
46
  slots: formSlots,
34
- // eslint-disable-next-line no-shadow
35
47
  setup(props, ctx) {
36
48
  const nodeControl = useForm(props, ctx as any, {
37
49
  nodeType: VUI_FORM_SYMBOL,
@@ -49,14 +61,14 @@ export const VForm = defineComponent({
49
61
  ]);
50
62
  useControl(props);
51
63
 
52
- ctx.expose({
53
- control: nodeControl,
54
- });
55
-
56
- return () => (
64
+ useRender(() => (
57
65
  <form class={classes.value} {...nodeControl.formAttrs}>
58
66
  {ctx.slots.default?.(nodeControl)}
59
67
  </form>
60
- );
68
+ ));
69
+
70
+ return {
71
+ control: nodeControl,
72
+ };
61
73
  },
62
74
  });
@@ -39,10 +39,10 @@
39
39
  font-size: 80%;
40
40
  line-height: 1;
41
41
  color: inherit;
42
+ letter-spacing: normal;
42
43
 
43
44
  // color: var(--palette-muted);
44
45
  text-decoration: none;
45
- letter-spacing: normal;
46
46
  cursor: pointer;
47
47
 
48
48
  // &:hover,
@@ -17,7 +17,6 @@ const { props, emits } = createFormNodeWrapperSettings();
17
17
 
18
18
  export function createRequiredChipRenderer(
19
19
  required: () => boolean,
20
- // eslint-disable-next-line no-shadow
21
20
  props: {
22
21
  requiredChip?: RequiredChipSource;
23
22
  },
@@ -55,9 +54,9 @@ export const VFormControl = defineComponent({
55
54
  ...slots(),
56
55
  error: Boolean,
57
56
  },
58
- slots,
59
57
  emits,
60
- // eslint-disable-next-line no-shadow
58
+ slots,
59
+
61
60
  setup(props, ctx) {
62
61
  const vui = useVui();
63
62
  const control = useFormNodeWrapper(props, ctx, {
@@ -70,7 +69,6 @@ export const VFormControl = defineComponent({
70
69
  });
71
70
 
72
71
  const hinttipDelay = computed(() => {
73
- // eslint-disable-next-line no-shadow
74
72
  let { hinttipDelay } = control;
75
73
  if (hinttipDelay == null) {
76
74
  hinttipDelay = vui.setting('hinttipDelay');
@@ -103,7 +101,6 @@ export const VFormControl = defineComponent({
103
101
  'v-form-control--valid': control.valid,
104
102
  },
105
103
  colorProvider.className(
106
- // eslint-disable-next-line no-nested-ternary
107
104
  props.error
108
105
  ? 'error'
109
106
  : control.invalid && !control.isReadonly
@@ -118,7 +115,8 @@ export const VFormControl = defineComponent({
118
115
  vui,
119
116
  );
120
117
 
121
- const handleClick = (ev: MouseEvent) => ctx.emit('clickLabel', ev, control);
118
+ const handleClick = (ev: PointerEvent) =>
119
+ ctx.emit('clickLabel', ev, control);
122
120
 
123
121
  return () => {
124
122
  const label = control.renderLabel();
@@ -146,7 +144,6 @@ export const VFormControl = defineComponent({
146
144
  activator: (tooltip) => (
147
145
  <a
148
146
  class="v-form-control__label__hinttip"
149
- // eslint-disable-next-line no-script-url
150
147
  href="javascript:void(0)"
151
148
  {...tooltip.attrs}>
152
149
  {hinttip.tip}
@@ -33,7 +33,6 @@ export const VFormGroup = defineComponent({
33
33
  props: createVFormGroupProps(),
34
34
  emits,
35
35
  slots: formGroupSlots,
36
- // eslint-disable-next-line no-shadow
37
36
  setup(props, ctx) {
38
37
  const nodeControl = useFormGroup(props, ctx as any, {
39
38
  nodeType: VUI_FORM_GROUP_SYMBOL,
@@ -14,7 +14,6 @@ export function extractRawGridValueClasses<
14
14
  >(
15
15
  value: NonNullable<RawGridValue<T>>,
16
16
  prefix: string,
17
- // eslint-disable-next-line no-shadow
18
17
  getter?: (value: T) => string,
19
18
  ): string | string[] {
20
19
  if (typeof value !== 'object')
@@ -77,7 +77,7 @@ export const VIcon = defineComponent({
77
77
  ...iconProps,
78
78
  },
79
79
  emits: {} as {
80
- click: (ev: MouseEvent) => true;
80
+ click: (ev: PointerEvent) => true;
81
81
  },
82
82
  setup(props, ctx) {
83
83
  const iconName = computed(() => props.name);
@@ -23,11 +23,11 @@
23
23
  text-decoration: none;
24
24
  appearance: none;
25
25
  user-select: none;
26
+ outline: 0;
26
27
  background: var(--tile-background);
27
28
  border: 0;
28
29
  border-left: 3px solid var(--tile-pin-color);
29
30
  border-radius: 0;
30
- outline: 0;
31
31
  transition:
32
32
  color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
33
33
  background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
@@ -15,7 +15,6 @@ import { useVui } from '../../injections';
15
15
  // @TODO Unable to resolve dts for `actionableInheritProps`.
16
16
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
17
17
  // @ts-ignore
18
- // eslint-disable-next-line import/order
19
18
  import { RouteLocationRaw } from 'vue-router';
20
19
  import { rawIconProp, resolveRawIconProp } from '../VIcon';
21
20
 
@@ -87,7 +86,6 @@ export const VListTile = defineComponent({
87
86
 
88
87
  watch(
89
88
  () => isActive.value,
90
- // eslint-disable-next-line no-shadow
91
89
  (isActive) => {
92
90
  ctx.emit('changeActive', isActive);
93
91
  },
@@ -56,7 +56,6 @@ export const VNavigation = defineComponent({
56
56
  }
57
57
 
58
58
  function onItemActivated(item: NavigationItemInput) {
59
- // eslint-disable-next-line no-shadow
60
59
  itemsRef.value.forEach(({ key, ref }) => {
61
60
  if (key === item.key) return;
62
61
  ref.close();
@@ -72,7 +71,7 @@ export const VNavigation = defineComponent({
72
71
  renderNavigationItemInput(item, {
73
72
  class: 'v-navigation__item',
74
73
  startIconEmptySpace: startIconEmptySpace.value,
75
- // eslint-disable-next-line no-shadow
74
+
76
75
  ref: (ref: any) => {
77
76
  setItemRef(item, ref);
78
77
  },
@@ -16,7 +16,6 @@ import { ScopeName } from '@fastkit/color-scheme';
16
16
  // @TODO Unable to resolve dts for `actionableInheritProps`.
17
17
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
18
18
  // @ts-ignore
19
- // eslint-disable-next-line import/no-duplicates
20
19
  import { useRoute, RouteLocationRaw } from 'vue-router';
21
20
  import { useVui } from '../../injections';
22
21
  import { createListTileProps, listTileEmits, VListTile } from '../VListTile';
@@ -34,7 +33,6 @@ export function createNavigationItemProps() {
34
33
  };
35
34
  }
36
35
 
37
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
38
36
  export interface NavigationItemInput
39
37
  extends ExtractPropInput<ReturnType<typeof createNavigationItemProps>> {
40
38
  key: string | number;
@@ -98,9 +96,8 @@ export const VNavigationItem = defineComponent({
98
96
  const to = computed(() => ctx.attrs.to);
99
97
 
100
98
  const match = computed<string[] | undefined>(() => {
101
- // eslint-disable-next-line no-shadow
102
99
  const { match } = props;
103
- // eslint-disable-next-line no-shadow
100
+
104
101
  const { to } = ctx.attrs;
105
102
  if (match) {
106
103
  return (Array.isArray(match) ? match : [match]).map(trimEndSlash);
@@ -180,7 +177,7 @@ export const VNavigationItem = defineComponent({
180
177
  return opened.value ? close() : open();
181
178
  }
182
179
 
183
- const onClick = (ev: MouseEvent) => {
180
+ const onClick = (ev: PointerEvent) => {
184
181
  if (!to.value) {
185
182
  return toggle();
186
183
  }
@@ -44,7 +44,6 @@ export const VNumberField = defineComponent({
44
44
  });
45
45
 
46
46
  const inputmode = computed<TextFieldInput['inputmode']>(() => {
47
- // eslint-disable-next-line no-shadow
48
47
  const { inputmode } = ctx.attrs as TextFieldInput;
49
48
  if (inputmode) return inputmode;
50
49
  return hasNumberMask.value ? 'decimal' : undefined;
@@ -1,4 +1,4 @@
1
- @use '../../styles/core.scss';
1
+ @use '../../styles/core';
2
2
 
3
3
  @layer vui {
4
4
  .v-option {
@@ -16,7 +16,6 @@ export const VOption = defineComponent({
16
16
  ...createControlProps(),
17
17
  },
18
18
  emits,
19
- // eslint-disable-next-line no-shadow
20
19
  setup(props, ctx) {
21
20
  const nodeControl = useFormSelectorItemControl(props, ctx, {
22
21
  nodeType: VUI_OPTION_SYMBOL,
@@ -1,4 +1,4 @@
1
- @use '../../styles/core.scss';
1
+ @use '../../styles/core';
2
2
 
3
3
  @layer vui {
4
4
  .v-pagination {
@@ -51,7 +51,7 @@
51
51
 
52
52
  &:hover,
53
53
  &:focus {
54
- background: rgba(0, 0, 0, 0.1);
54
+ background: rgb(0, 0, 0, 0.1);
55
55
  }
56
56
 
57
57
  &--active {