@fastkit/vui 0.12.8 → 0.12.9

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 (108) hide show
  1. package/LICENSE +1 -1
  2. package/dist/vui.css +2786 -2716
  3. package/dist/vui.css.map +1 -0
  4. package/dist/vui.d.ts +9072 -10172
  5. package/dist/vui.mjs +2141 -1969
  6. package/dist/vui.mjs.map +1 -0
  7. package/package.json +89 -59
  8. package/src/components/VApp/VApp.tsx +3 -1
  9. package/src/components/VAvatar/VAvatar.scss +62 -60
  10. package/src/components/VAvatar/VAvatar.tsx +6 -1
  11. package/src/components/VBreadcrumbs/VBreadcrumbs.scss +53 -51
  12. package/src/components/VBusyImage/VBusyImage.scss +50 -51
  13. package/src/components/VButton/VButton.scss +120 -118
  14. package/src/components/VButton/VButton.tsx +6 -1
  15. package/src/components/VButton/VButtonGroup.scss +21 -19
  16. package/src/components/VCard/VCard.scss +41 -42
  17. package/src/components/VCard/VCard.tsx +5 -0
  18. package/src/components/VCard/VCardActions.scss +9 -7
  19. package/src/components/VCard/VCardContent.scss +4 -2
  20. package/src/components/VCheckable/VCheckable.scss +79 -80
  21. package/src/components/VCheckable/VCheckable.tsx +1 -1
  22. package/src/components/VCheckbox/VCheckbox.scss +50 -48
  23. package/src/components/VCheckbox/VCheckbox.tsx +2 -2
  24. package/src/components/VChip/VChip.scss +61 -59
  25. package/src/components/VChip/VChip.tsx +6 -1
  26. package/src/components/VContentSwitcher/VContentSwitcher.scss +52 -50
  27. package/src/components/VControlField/VControlField.scss +148 -146
  28. package/src/components/VControlField/VControlField.tsx +3 -3
  29. package/src/components/VDataTable/VDataTable.scss +167 -168
  30. package/src/components/VDrawerLayout/VDrawerLayout.scss +27 -25
  31. package/src/components/VForm/VForm.tsx +3 -4
  32. package/src/components/VFormControl/VFormControl.scss +84 -82
  33. package/src/components/VFormControl/VFormControl.tsx +2 -3
  34. package/src/components/VGrid/VGridContainer.scss +5 -3
  35. package/src/components/VGrid/VGridItem.scss +4 -2
  36. package/src/components/VHero/VHero.scss +23 -21
  37. package/src/components/VIcon/VIcon.scss +19 -17
  38. package/src/components/VListTile/VListTile.scss +60 -58
  39. package/src/components/VListTile/VListTile.tsx +5 -0
  40. package/src/components/VNavigation/VNavigation.scss +12 -10
  41. package/src/components/VNavigation/VNavigationItem.scss +21 -19
  42. package/src/components/VNavigation/VNavigationItem.tsx +5 -0
  43. package/src/components/VOption/VOption.scss +55 -56
  44. package/src/components/VOption/VOption.tsx +2 -2
  45. package/src/components/VOptionGroup/VOptionGroup.scss +14 -12
  46. package/src/components/VOptionGroup/VOptionGroup.tsx +3 -1
  47. package/src/components/VPagination/VPagination.scss +81 -79
  48. package/src/components/VPagination/VPagination.tsx +1 -1
  49. package/src/components/VPaper/VPaper.scss +43 -41
  50. package/src/components/VRadio/VRadio.scss +52 -53
  51. package/src/components/VRadio/VRadio.tsx +2 -2
  52. package/src/components/VSelect/VSelect.scss +77 -75
  53. package/src/components/VSelect/VSelect.tsx +5 -2
  54. package/src/components/VSkeltonLoader/VSkeltonLoaderBone.scss +24 -22
  55. package/src/components/VSwitch/VSwitch.scss +96 -94
  56. package/src/components/VSwitch/VSwitch.tsx +2 -2
  57. package/src/components/VTabs/VTab.scss +59 -57
  58. package/src/components/VTabs/VTabs.scss +41 -39
  59. package/src/components/VTabs/VTabs.tsx +5 -2
  60. package/src/components/VTextCounter/VTextCounter.scss +4 -2
  61. package/src/components/VTextField/VTextField.scss +37 -35
  62. package/src/components/VTextField/VTextField.tsx +2 -2
  63. package/src/components/VTextarea/VTextarea.scss +33 -31
  64. package/src/components/VTextarea/VTextarea.tsx +2 -2
  65. package/src/components/VToolbar/VToolbar.scss +19 -17
  66. package/src/components/VToolbar/VToolbarEdge.scss +21 -19
  67. package/src/components/VToolbar/VToolbarMenu.scss +6 -4
  68. package/src/components/VToolbar/VToolbarMenu.tsx +5 -0
  69. package/src/components/VToolbar/VToolbarTitle.scss +19 -17
  70. package/src/components/VWysiwygEditor/VWysiwygEditor.scss +52 -50
  71. package/src/components/VWysiwygEditor/VWysiwygEditor.tsx +2 -2
  72. package/src/components/VWysiwygEditor/extensions/linter/Linter.scss +108 -109
  73. package/src/components/VWysiwygEditor/schemes.ts +1 -1
  74. package/src/components/VWysiwygEditor/tools/color.scss +106 -112
  75. package/src/components/kits.ts +1 -1
  76. package/src/composables/control.ts +1 -1
  77. package/src/composables/form-selector.scss +20 -18
  78. package/src/composables/form-selector.tsx +5 -3
  79. package/src/index.ts +13 -2
  80. package/src/plugin.tsx +4 -4
  81. package/src/schemes/control.ts +2 -2
  82. package/src/service.tsx +5 -5
  83. package/src/styles/core/functions.scss +2 -2
  84. package/src/styles/index.scss +23 -9
  85. package/dist/tool/index.d.ts +0 -2
  86. package/dist/tool/index.d.ts.map +0 -1
  87. package/dist/tool/index.mjs +0 -193
  88. package/dist/tool/vite-plugin.d.ts +0 -25
  89. package/dist/tool/vite-plugin.d.ts.map +0 -1
  90. package/src/.DS_Store +0 -0
  91. package/src/assets/builtins/color-scheme.ts +0 -9
  92. package/src/assets/builtins/media-match.ts +0 -3
  93. package/src/components/.DS_Store +0 -0
  94. package/src/components/VAvatar/.DS_Store +0 -0
  95. package/src/components/VChip/.DS_Store +0 -0
  96. package/src/components/VSkeltonLoader/.DS_Store +0 -0
  97. package/src/components/VTextField/.DS_Store +0 -0
  98. package/src/components/VWysiwygEditor/.DS_Store +0 -0
  99. package/src/components/VWysiwygEditor/extensions/.DS_Store +0 -0
  100. package/src/components/VWysiwygEditor/extensions/linter/.DS_Store +0 -0
  101. package/src/tool/index.ts +0 -2
  102. package/src/tool/vite-plugin.ts +0 -266
  103. /package/{src/styles → dist}/after-effects/display-flow.scss +0 -0
  104. /package/{src/styles → dist}/after-effects/spacing.scss +0 -0
  105. /package/{src/styles → dist}/after-effects/text.scss +0 -0
  106. /package/{src/styles → dist}/after-effects.scss +0 -0
  107. /package/dist/{assets/builtins → builtins}/color-scheme.ts +0 -0
  108. /package/dist/{assets/builtins → builtins}/media-match.ts +0 -0
@@ -1,3 +1,5 @@
1
- .v-grid-item {
2
- display: block;
1
+ @layer vui {
2
+ .v-grid-item {
3
+ display: block;
4
+ }
3
5
  }
@@ -1,26 +1,28 @@
1
- .v-hero {
2
- --hero-background-color: var(--main-color);
3
- --hero-text-color: var(--text-color);
1
+ @layer vui {
2
+ .v-hero {
3
+ --hero-background-color: var(--main-color);
4
+ --hero-text-color: var(--text-color);
4
5
 
5
- display: flex;
6
- align-items: center;
7
- padding: 20px 30px;
8
- margin: 0;
9
- color: var(--hero-text-color);
10
- background-color: var(--hero-background-color);
11
-
12
- &__title {
13
- flex: 1 1 100%;
6
+ display: flex;
7
+ align-items: center;
8
+ padding: 20px 30px;
14
9
  margin: 0;
15
- font-size: 1.75rem;
16
- font-weight: 300;
17
- line-height: 1;
18
- color: inherit;
19
- }
10
+ color: var(--hero-text-color);
11
+ background-color: var(--hero-background-color);
12
+
13
+ &__title {
14
+ flex: 1 1 100%;
15
+ margin: 0;
16
+ font-size: 1.75rem;
17
+ font-weight: 300;
18
+ line-height: 1;
19
+ color: inherit;
20
+ }
20
21
 
21
- &__adornment {
22
- flex: 0 0 auto;
23
- padding-left: 10px;
24
- margin-left: auto;
22
+ &__adornment {
23
+ flex: 0 0 auto;
24
+ padding-left: 10px;
25
+ margin-left: auto;
26
+ }
25
27
  }
26
28
  }
@@ -1,22 +1,24 @@
1
- .v-icon {
2
- display: inline-flex;
3
- align-items: center;
4
- justify-content: center;
5
- width: 1.25em;
6
- aspect-ratio: 1 / 1;
7
- // -webkit-user-drag: none;
8
- // pointer-events: none;
9
- user-select: none;
10
-
11
- &--clickable {
12
- // pointer-events: auto;
13
- cursor: pointer;
14
- }
15
-
16
- &__body {
1
+ @layer vui {
2
+ .v-icon {
17
3
  display: inline-flex;
18
4
  align-items: center;
19
5
  justify-content: center;
20
- transition: transform 150ms linear;
6
+ width: 1.25em;
7
+ aspect-ratio: 1 / 1;
8
+ // -webkit-user-drag: none;
9
+ // pointer-events: none;
10
+ user-select: none;
11
+
12
+ &--clickable {
13
+ // pointer-events: auto;
14
+ cursor: pointer;
15
+ }
16
+
17
+ &__body {
18
+ display: inline-flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ transition: transform 150ms linear;
22
+ }
21
23
  }
22
24
  }
@@ -1,73 +1,75 @@
1
- .v-list-tile {
2
- --tile-background: var(--main-color, transparent);
3
- --tile-active-background: var(--deep-color, transparent);
4
- --tile-text-color: var(--text-color);
5
- --tile-text-active-color: var(--text-color);
6
- --tile-pin-color: transparent;
7
- --paper-link-color: var(--tile-text-color);
8
- --depth-padding: var(--list-tile-padding);
1
+ @layer vui {
2
+ .v-list-tile {
3
+ --tile-background: var(--main-color, transparent);
4
+ --tile-active-background: var(--deep-color, transparent);
5
+ --tile-text-color: var(--text-color);
6
+ --tile-text-active-color: var(--text-color);
7
+ --tile-pin-color: transparent;
8
+ --paper-link-color: var(--tile-text-color);
9
+ --depth-padding: var(--list-tile-padding);
9
10
 
10
- // &--has-color {
11
- // --tile-text-color: var(--nav-color);
12
- // --tile-text-active-color: var(--navActive-color, var(--nav-color));
13
- // }
11
+ // &--has-color {
12
+ // --tile-text-color: var(--nav-color);
13
+ // --tile-text-active-color: var(--navActive-color, var(--nav-color));
14
+ // }
14
15
 
15
- display: flex;
16
- align-items: center;
17
- width: 100%;
18
- padding: var(--list-tile-padding);
19
- padding-left: var(--depth-padding);
20
- color: var(--tile-text-color);
21
- text-align: left;
22
- text-decoration: none;
23
- user-select: none;
24
- background: var(--tile-background);
25
- border: 0;
26
- border-left: 3px solid var(--tile-pin-color);
27
- border-radius: 0;
28
- outline: 0;
29
- transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
30
- background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
31
- appearance: none;
16
+ display: flex;
17
+ align-items: center;
18
+ width: 100%;
19
+ padding: var(--list-tile-padding);
20
+ padding-left: var(--depth-padding);
21
+ color: var(--tile-text-color) !important;
22
+ text-align: left;
23
+ text-decoration: none;
24
+ user-select: none;
25
+ background: var(--tile-background);
26
+ border: 0;
27
+ border-left: 3px solid var(--tile-pin-color);
28
+ border-radius: 0;
29
+ outline: 0;
30
+ transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
31
+ background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
32
+ appearance: none;
32
33
 
33
- &--clickable {
34
- cursor: pointer;
34
+ &--clickable {
35
+ cursor: pointer;
35
36
 
36
- --tile-text-color: var(--nav-color);
37
- --tile-text-active-color: var(--navActive-color, var(--nav-color));
37
+ --tile-text-color: var(--nav-color);
38
+ --tile-text-active-color: var(--navActive-color, var(--nav-color));
38
39
 
39
- // --tile-text-active-color: var(--navActive-color, var(--tile-text-color));
40
+ // --tile-text-active-color: var(--navActive-color, var(--tile-text-color));
40
41
 
41
- &:hover,
42
- &:focus {
43
- --tile-background: var(--tile-active-background);
44
- --tile-text-color: var(--tile-text-active-color);
42
+ &:hover,
43
+ &:focus {
44
+ --tile-background: var(--tile-active-background);
45
+ --tile-text-color: var(--tile-text-active-color);
46
+ }
45
47
  }
46
- }
47
48
 
48
- &--active {
49
- --tile-pin-color: var(--pin-color);
50
- --tile-text-color: var(--tile-text-active-color);
51
- --tile-background: var(--tile-active-background);
52
- }
49
+ &--active {
50
+ --tile-pin-color: var(--pin-color);
51
+ --tile-text-color: var(--tile-text-active-color);
52
+ --tile-background: var(--tile-active-background);
53
+ }
53
54
 
54
- // .v-list-tile--opened & {
55
- // --tile-pin-color: var(--pin-color);
56
- // }
55
+ // .v-list-tile--opened & {
56
+ // --tile-pin-color: var(--pin-color);
57
+ // }
57
58
 
58
- &__body {
59
- font-size: 0.8125rem;
60
- // font-size: 0.75rem;
61
- font-weight: 500;
62
- line-height: 1.5;
63
- }
59
+ &__body {
60
+ font-size: 0.8125rem;
61
+ // font-size: 0.75rem;
62
+ font-weight: 500;
63
+ line-height: 1.5;
64
+ }
64
65
 
65
- &__icon {
66
- min-width: 2em;
66
+ &__icon {
67
+ min-width: 2em;
67
68
 
68
- &--end {
69
- margin-left: auto;
70
- text-align: right;
69
+ &--end {
70
+ margin-left: auto;
71
+ text-align: right;
72
+ }
71
73
  }
72
74
  }
73
75
  }
@@ -18,6 +18,11 @@ import { useScopeColorClass, ScopeName } from '@fastkit/vue-color-scheme';
18
18
  import { VLink } from '@fastkit/vue-utils';
19
19
  import { useVui } from '../../injections';
20
20
 
21
+ // @TODO Unable to resolve dts for `navigationableInheritProps`.
22
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
23
+ // @ts-ignore
24
+ import { RouteLocationRaw } from 'vue-router';
25
+
21
26
  export function createListTileProps() {
22
27
  const icon = rawIconProp();
23
28
  return {
@@ -1,12 +1,14 @@
1
- .v-navigation {
2
- // noop
3
- &__caption {
4
- display: block;
5
- padding: calc(var(--root-em) * 0.625) calc(var(--root-em) * 1.5625);
6
- margin: 1em 0 0;
7
- // font-size: 0.6875rem;
8
- font-size: 0.75rem;
9
- color: var(--caption-color);
10
- text-transform: uppercase;
1
+ @layer vui {
2
+ .v-navigation {
3
+ // noop
4
+ &__caption {
5
+ display: block;
6
+ padding: calc(var(--root-em) * 0.625) calc(var(--root-em) * 1.5625);
7
+ margin: 1em 0 0;
8
+ // font-size: 0.6875rem;
9
+ font-size: 0.75rem;
10
+ color: var(--caption-color);
11
+ text-transform: uppercase;
12
+ }
11
13
  }
12
14
  }
@@ -1,28 +1,30 @@
1
- .v-navigation-item {
2
- &--opened {
3
- --tile-background: var(--tile-active-background);
4
- --tile-text-color: var(--tile-text-active-color);
5
- }
6
-
7
- &__expand {
8
- transition: height 0.2s;
9
-
10
- .v-navigation-item {
1
+ @layer vui {
2
+ .v-navigation-item {
3
+ &--opened {
11
4
  --tile-background: var(--tile-active-background);
5
+ --tile-text-color: var(--tile-text-active-color);
12
6
  }
13
- }
14
7
 
15
- &--depth {
16
- &-1 {
17
- --depth-padding: calc(var(--list-tile-padding) * 2);
18
- }
8
+ &__expand {
9
+ transition: height 0.2s;
19
10
 
20
- &-2 {
21
- --depth-padding: calc(var(--list-tile-padding) * 3);
11
+ .v-navigation-item {
12
+ --tile-background: var(--tile-active-background);
13
+ }
22
14
  }
23
15
 
24
- &-3 {
25
- --depth-padding: calc(var(--list-tile-padding) * 4);
16
+ &--depth {
17
+ &-1 {
18
+ --depth-padding: calc(var(--list-tile-padding) * 2);
19
+ }
20
+
21
+ &-2 {
22
+ --depth-padding: calc(var(--list-tile-padding) * 3);
23
+ }
24
+
25
+ &-3 {
26
+ --depth-padding: calc(var(--list-tile-padding) * 4);
27
+ }
26
28
  }
27
29
  }
28
30
  }
@@ -19,6 +19,11 @@ import { useVui } from '../../injections';
19
19
  import { useRoute } from 'vue-router';
20
20
  import { ScopeName } from '@fastkit/color-scheme';
21
21
 
22
+ // @TODO Unable to resolve dts for `navigationableInheritProps`.
23
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
24
+ // @ts-ignore
25
+ import { RouteLocationRaw } from 'vue-router';
26
+
22
27
  export function createNavigationItemProps() {
23
28
  return {
24
29
  ...createListTileProps(),
@@ -1,74 +1,73 @@
1
1
  @use '../../styles/core.scss';
2
2
 
3
- .v-option {
4
- @include core.button-reset();
3
+ @layer vui {
4
+ .v-option {
5
+ @include core.button-reset();
5
6
 
6
- position: relative;
7
- display: flex;
8
- width: 100%;
9
- padding: 0.75em 1em;
10
- // font-size: 0.875em;
7
+ position: relative;
8
+ display: flex;
9
+ width: 100%;
10
+ padding: 0.75em 1em;
11
+ // font-size: 0.875em;
11
12
 
12
- input {
13
- @include core.hidden-input-element;
14
- }
13
+ input {
14
+ @include core.hidden-input-element;
15
+ }
15
16
 
16
- &::before,
17
- &::after {
18
- position: absolute;
19
- top: 0;
20
- right: 0;
21
- bottom: 0;
22
- left: 0;
23
- display: block;
24
- pointer-events: none;
25
- content: '';
26
- opacity: 0;
27
- transition: opacity 0.2s;
28
- }
17
+ &::before,
18
+ &::after {
19
+ position: absolute;
20
+ inset: 0;
21
+ display: block;
22
+ pointer-events: none;
23
+ content: '';
24
+ opacity: 0;
25
+ transition: opacity 0.2s;
26
+ }
29
27
 
30
- &::before {
31
- background: currentColor;
32
- }
28
+ &::before {
29
+ background: currentColor;
30
+ }
33
31
 
34
- &::after {
35
- background: var(--palette-primary);
36
- }
32
+ &::after {
33
+ background: var(--palette-primary);
34
+ }
37
35
 
38
- &:hover,
39
- &:focus-within,
40
- &--key-focused {
41
- &::before {
42
- opacity: 0.12;
36
+ &:hover,
37
+ &:focus-within,
38
+ &--key-focused {
39
+ &::before {
40
+ opacity: 0.12;
41
+ }
43
42
  }
44
- }
45
43
 
46
- &__label {
47
- position: relative;
48
- display: block;
49
- }
44
+ &__label {
45
+ position: relative;
46
+ display: block;
47
+ }
50
48
 
51
- &--selected::after {
52
- opacity: 0.12;
53
- }
49
+ &--selected::after {
50
+ opacity: 0.12;
51
+ }
54
52
 
55
- &--selected &__label {
56
- font-weight: 500;
57
- color: var(--palette-primary);
58
- }
53
+ &--selected &__label {
54
+ font-weight: 500;
55
+ color: var(--palette-primary);
56
+ }
59
57
 
60
- &--has-not-value &__label {
61
- font-style: italic;
62
- }
58
+ &--has-not-value &__label {
59
+ font-style: italic;
60
+ }
63
61
 
64
- &[disabled],
65
- &[tabindex='-1'] {
66
- color: var(--palette-muted);
67
- pointer-events: none;
68
- opacity: 0.4;
62
+ &[disabled],
63
+ &[tabindex='-1'] {
64
+ color: var(--palette-muted);
65
+ pointer-events: none;
66
+ opacity: 0.4;
69
67
 
70
- &::before {
71
- opacity: 0 !important;
68
+ &::before {
69
+ opacity: 0 !important;
70
+ }
72
71
  }
73
72
  }
74
73
  }
@@ -3,8 +3,8 @@ import { defineComponent, computed } from 'vue';
3
3
  import {
4
4
  createFormSelectorItemSettings,
5
5
  useFormSelectorItemControl,
6
- renderSlotOrEmpty,
7
- } from '@fastkit/vue-kit';
6
+ } from '@fastkit/vue-form-control';
7
+ import { renderSlotOrEmpty } from '@fastkit/vue-utils';
8
8
  import { createControlProps, useControl } from '../../composables';
9
9
  import { VUI_SELECT_SYMBOL, VUI_OPTION_SYMBOL } from '../../injections';
10
10
 
@@ -1,16 +1,18 @@
1
- .v-option-group {
2
- display: block;
1
+ @layer vui {
2
+ .v-option-group {
3
+ display: block;
3
4
 
4
- &__label {
5
- padding: 1em;
6
- // padding: 0.875em 1em;
7
- font-size: 0.875em;
8
- color: var(--palette-caption);
9
- opacity: 0.6;
10
- }
5
+ &__label {
6
+ padding: 1em;
7
+ // padding: 0.875em 1em;
8
+ font-size: 0.875em;
9
+ color: var(--palette-caption);
10
+ opacity: 0.6;
11
+ }
11
12
 
12
- &--disabled &__label {
13
- color: var(--palette-muted);
14
- opacity: 0.4;
13
+ &--disabled &__label {
14
+ color: var(--palette-muted);
15
+ opacity: 0.4;
16
+ }
15
17
  }
16
18
  }
@@ -4,11 +4,13 @@ import {
4
4
  createFormSelectorItemGroupProps,
5
5
  useFormSelectorItemGroupControl,
6
6
  FormSelectorItemGroupControl,
7
+ } from '@fastkit/vue-form-control';
8
+ import {
7
9
  defineSlotsProps,
8
10
  VNodeChildOrSlot,
9
11
  resolveVNodeChildOrSlots,
10
12
  renderSlotOrEmpty,
11
- } from '@fastkit/vue-kit';
13
+ } from '@fastkit/vue-utils';
12
14
  import { VUI_SELECT_SYMBOL } from '../../injections';
13
15
 
14
16
  export const VOptionGroup = defineComponent({