@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,26 +1,28 @@
1
1
  // @use './core.scss';
2
2
  // @use '../../styles/core.scss';
3
3
 
4
- .v-toolbar {
5
- --height: var(--toolbar-height);
4
+ @layer vui {
5
+ .v-toolbar {
6
+ --height: var(--toolbar-height);
6
7
 
7
- display: flex;
8
- align-items: center;
9
- width: 100%;
10
- height: var(--height);
11
- padding: 0 calc(var(--root-em) * 1.5); // 24
12
- margin: 0;
13
- border-radius: inherit;
8
+ display: flex;
9
+ align-items: center;
10
+ width: 100%;
11
+ height: var(--height);
12
+ padding: 0 calc(var(--root-em) * 1.5); // 24
13
+ margin: 0;
14
+ border-radius: inherit;
14
15
 
15
- &--plain {
16
- --main-color: var(--palette-background);
17
- }
16
+ &--plain {
17
+ --main-color: var(--palette-background);
18
+ }
18
19
 
19
- .v-app-layout__header > & {
20
- height: 100%;
21
- }
20
+ .v-app-layout__header > & {
21
+ height: 100%;
22
+ }
22
23
 
23
- &--dense {
24
- --height: var(--toolbar-dense-height);
24
+ &--dense {
25
+ --height: var(--toolbar-dense-height);
26
+ }
25
27
  }
26
28
  }
@@ -1,27 +1,29 @@
1
1
  // @use '../../styles/core.scss';
2
2
 
3
- .v-toolbar-edge {
4
- display: flex;
5
- flex: 0 0;
6
- align-items: center;
7
- align-self: stretch;
3
+ @layer vui {
4
+ .v-toolbar-edge {
5
+ display: flex;
6
+ flex: 0 0;
7
+ align-items: center;
8
+ align-self: stretch;
8
9
 
9
- &:empty,
10
- &--empty {
11
- display: none;
12
- }
10
+ &:empty,
11
+ &--empty {
12
+ display: none;
13
+ }
13
14
 
14
- $my-negative-margin: calc(-1 * var(--root-em) * 0.75); // -12
15
- $my-margin: calc(var(--root-em) * 0.75); // -12
15
+ $my-negative-margin: calc(-1 * var(--root-em) * 0.75); // -12
16
+ $my-margin: calc(var(--root-em) * 0.75); // -12
16
17
 
17
- &--start {
18
- margin-right: $my-margin;
19
- margin-left: $my-negative-margin;
20
- }
18
+ &--start {
19
+ margin-right: $my-margin;
20
+ margin-left: $my-negative-margin;
21
+ }
21
22
 
22
- &--end {
23
- padding-left: $my-margin;
24
- margin-right: $my-negative-margin;
25
- margin-left: auto;
23
+ &--end {
24
+ padding-left: $my-margin;
25
+ margin-right: $my-negative-margin;
26
+ margin-left: auto;
27
+ }
26
28
  }
27
29
  }
@@ -1,7 +1,9 @@
1
1
  // @use '../../styles/core.scss';
2
2
 
3
- .v-toolbar-menu {
4
- height: 100%;
5
- margin: 0;
6
- box-shadow: none;
3
+ @layer vui {
4
+ .v-toolbar-menu {
5
+ height: 100%;
6
+ margin: 0;
7
+ box-shadow: none;
8
+ }
7
9
  }
@@ -4,6 +4,11 @@ import { renderSlotOrEmpty } from '@fastkit/vue-utils';
4
4
  import { VButton, vueButtonProps } from '../VButton';
5
5
  import { useVui } from '../../injections';
6
6
 
7
+ // @TODO Unable to resolve dts for `navigationableInheritProps`.
8
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
9
+ // @ts-ignore
10
+ import { RouteLocationRaw } from 'vue-router';
11
+
7
12
  export type VToolbarMenuEdge = 'start' | 'end';
8
13
 
9
14
  export const VToolbarMenu = defineComponent({
@@ -1,22 +1,24 @@
1
1
  // @use '../../styles/core.scss';
2
2
 
3
- .v-toolbar-title {
4
- display: flex;
5
- flex-grow: 1;
6
- margin: 0;
7
- // font-size: var(--typo-h3-size);
8
- font-size: 1.25rem;
9
- // font-weight: var(--typo-h3-weight);
10
- font-weight: 400;
11
- // font-size: 16px;
12
- // font-weight: 500;
13
- line-height: 1;
3
+ @layer vui {
4
+ .v-toolbar-title {
5
+ display: flex;
6
+ flex-grow: 1;
7
+ margin: 0;
8
+ // font-size: var(--typo-h3-size);
9
+ font-size: 1.25rem;
10
+ // font-weight: var(--typo-h3-weight);
11
+ font-weight: 400;
12
+ // font-size: 16px;
13
+ // font-weight: 500;
14
+ line-height: 1;
14
15
 
15
- // font-weight: 500;
16
- // font-size: 1.25rem;
17
- // line-height: 1.6;
18
- // letter-spacing: 0.0075em;
19
- white-space: nowrap;
16
+ // font-weight: 500;
17
+ // font-size: 1.25rem;
18
+ // line-height: 1.6;
19
+ // letter-spacing: 0.0075em;
20
+ white-space: nowrap;
20
21
 
21
- // @include core.typo('h2');
22
+ // @include core.typo('h2');
23
+ }
22
24
  }
@@ -1,66 +1,68 @@
1
1
  @use '../../styles/core.scss';
2
2
 
3
- .v-wysiwyg-editor {
4
- &--sm {
5
- --min-height: var(--wysiwyg-min-height-sm);
6
- --max-height: var(--wysiwyg-max-height-sm);
7
- }
8
-
9
- &--md {
10
- --min-height: var(--wysiwyg-min-height-md);
11
- --max-height: var(--wysiwyg-max-height-md);
12
- }
13
-
14
- &--lg {
15
- --min-height: var(--wysiwyg-min-height-lg);
16
- --max-height: var(--wysiwyg-max-height-lg);
17
- }
3
+ @layer vui {
4
+ .v-wysiwyg-editor {
5
+ &--sm {
6
+ --min-height: var(--wysiwyg-min-height-sm);
7
+ --max-height: var(--wysiwyg-max-height-sm);
8
+ }
18
9
 
19
- &__wrapper {
20
- position: relative;
21
- }
10
+ &--md {
11
+ --min-height: var(--wysiwyg-min-height-md);
12
+ --max-height: var(--wysiwyg-max-height-md);
13
+ }
22
14
 
23
- .v-control-field__body {
24
- width: 100%;
25
- }
15
+ &--lg {
16
+ --min-height: var(--wysiwyg-min-height-lg);
17
+ --max-height: var(--wysiwyg-max-height-lg);
18
+ }
26
19
 
27
- &__floating-toolbar {
28
- position: absolute;
29
- right: 0;
30
- bottom: 100%;
31
- z-index: 1;
32
- }
20
+ &__wrapper {
21
+ position: relative;
22
+ }
33
23
 
34
- &__body {
35
- position: relative;
36
- width: 100%;
37
- max-height: var(--max-height);
38
- // max-height: 200px;
39
- overflow: auto;
40
- }
24
+ .v-control-field__body {
25
+ width: 100%;
26
+ }
41
27
 
42
- &__input {
43
- cursor: text;
28
+ &__floating-toolbar {
29
+ position: absolute;
30
+ right: 0;
31
+ bottom: 100%;
32
+ z-index: 1;
33
+ }
44
34
 
45
- &__element {
35
+ &__body {
36
+ position: relative;
46
37
  width: 100%;
47
- min-width: 0;
48
- padding: 8px 0;
49
- margin: 0;
38
+ max-height: var(--max-height);
39
+ // max-height: 200px;
40
+ overflow: auto;
50
41
  }
51
42
 
52
- &__prose {
53
- width: 100%;
54
- min-height: var(--min-height);
55
- outline: none;
43
+ &__input {
44
+ cursor: text;
45
+
46
+ &__element {
47
+ width: 100%;
48
+ min-width: 0;
49
+ padding: 8px 0;
50
+ margin: 0;
51
+ }
52
+
53
+ &__prose {
54
+ width: 100%;
55
+ min-height: var(--min-height);
56
+ outline: none;
57
+ }
56
58
  }
57
- }
58
59
 
59
- &--disabled-min-heihgt &__input__prose {
60
- min-height: 0;
61
- }
60
+ &--disabled-min-heihgt &__input__prose {
61
+ min-height: 0;
62
+ }
62
63
 
63
- &--disabled-max-heihgt &__body {
64
- max-height: none;
64
+ &--disabled-max-heihgt &__body {
65
+ max-height: none;
66
+ }
65
67
  }
66
68
  }
@@ -11,8 +11,8 @@ import {
11
11
  import {
12
12
  createFormControlProps,
13
13
  FormControlSlots,
14
- defineSlotsProps,
15
- } from '@fastkit/vue-kit';
14
+ } from '@fastkit/vue-form-control';
15
+ import { defineSlotsProps } from '@fastkit/vue-utils';
16
16
  import { VFormControl } from '../VFormControl';
17
17
  import {
18
18
  VControlField,
@@ -1,140 +1,139 @@
1
- .v-linter {
2
- &__problem {
3
- margin-bottom: -1px;
4
- cursor: help;
5
- background: var(--deep-color);
6
- border-bottom: 1px solid var(--main-color);
7
- }
8
-
9
- &__issue-icon {
10
- position: absolute;
11
- right: 2px;
12
- display: inline-flex;
13
- align-items: center;
14
- justify-content: center;
15
- width: 1.2em;
16
- height: 1.2em;
17
- margin-top: 0.2em;
18
- // padding-left: 0.5px;
19
- font-family: times, georgia, serif;
20
- font-size: 15px;
21
- font-weight: 700;
22
- line-height: 1;
23
- color: var(--text-color);
24
- text-align: center;
25
- cursor: pointer;
26
- background: var(--main-color);
27
- border-radius: 100px;
28
-
29
- &::before {
30
- content: '!';
1
+ @layer vui {
2
+ .v-linter {
3
+ &__problem {
4
+ margin-bottom: -1px;
5
+ cursor: help;
6
+ background: var(--deep-color);
7
+ border-bottom: 1px solid var(--main-color);
31
8
  }
32
- }
33
-
34
- &__issue-menu-wrapper {
35
- position: relative;
36
- display: inline-block;
37
- width: 0px;
38
- height: 1em;
39
- overflow: visible;
40
- }
41
9
 
42
- &__issue-menu {
43
- font-size: 87.5%;
44
- // font-size: 12px;
45
- line-height: 1.5;
10
+ &__issue-icon {
11
+ position: absolute;
12
+ right: 2px;
13
+ display: inline-flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ width: 1.2em;
17
+ height: 1.2em;
18
+ margin-top: 0.2em;
19
+ // padding-left: 0.5px;
20
+ font-family: times, georgia, serif;
21
+ font-size: 15px;
22
+ font-weight: 700;
23
+ line-height: 1;
24
+ color: var(--text-color);
25
+ text-align: center;
26
+ cursor: pointer;
27
+ background: var(--main-color);
28
+ border-radius: 100px;
46
29
 
47
- .v-dialog__body {
48
- padding: 0;
49
- font-size: inherit;
30
+ &::before {
31
+ content: '!';
32
+ }
50
33
  }
51
34
 
52
- &__message {
53
- padding: 8px;
35
+ &__issue-menu-wrapper {
36
+ position: relative;
37
+ display: inline-block;
38
+ width: 0px;
39
+ height: 1em;
40
+ overflow: visible;
54
41
  }
55
42
 
56
- &__fixers {
57
- position: relative;
58
- padding: 4px 0;
59
- // padding: 8px;
60
- // border-top: solid 1px var(--divider-color);
61
- &::before {
62
- position: absolute;
63
- top: 0;
64
- right: 0;
65
- left: 0;
66
- display: block;
67
- height: 1px;
68
- content: '';
69
- background: currentColor;
70
- opacity: 0.5;
43
+ &__issue-menu {
44
+ font-size: 87.5%;
45
+ // font-size: 12px;
46
+ line-height: 1.5;
47
+
48
+ .v-dialog__body {
49
+ padding: 0;
50
+ font-size: inherit;
71
51
  }
72
- }
73
52
 
74
- &__fixer {
75
- &__button {
76
- position: relative;
77
- display: block;
78
- width: 100%;
53
+ &__message {
79
54
  padding: 8px;
80
- font: inherit;
81
- font-size: 12px;
82
- // margin-top: 8px;
83
- // color: var(--palette-link);
84
- text-align: left;
85
- // text-decoration: underline;
86
- cursor: pointer;
87
- background: transparent;
88
- border: 0;
89
- outline: 0;
90
- appearance: none;
55
+ }
91
56
 
57
+ &__fixers {
58
+ position: relative;
59
+ padding: 4px 0;
60
+ // padding: 8px;
61
+ // border-top: solid 1px var(--divider-color);
92
62
  &::before {
93
63
  position: absolute;
94
64
  top: 0;
95
65
  right: 0;
96
- bottom: 0;
97
66
  left: 0;
98
67
  display: block;
68
+ height: 1px;
99
69
  content: '';
100
70
  background: currentColor;
101
- opacity: 0;
102
- transition: 0.15s;
71
+ opacity: 0.5;
103
72
  }
73
+ }
74
+
75
+ &__fixer {
76
+ &__button {
77
+ position: relative;
78
+ display: block;
79
+ width: 100%;
80
+ padding: 8px;
81
+ font: inherit;
82
+ font-size: 12px;
83
+ // margin-top: 8px;
84
+ // color: var(--palette-link);
85
+ text-align: left;
86
+ // text-decoration: underline;
87
+ cursor: pointer;
88
+ background: transparent;
89
+ border: 0;
90
+ outline: 0;
91
+ appearance: none;
104
92
 
105
- &:hover,
106
- &:focus {
107
93
  &::before {
108
- opacity: 0.1;
94
+ position: absolute;
95
+ inset: 0;
96
+ display: block;
97
+ content: '';
98
+ background: currentColor;
99
+ opacity: 0;
100
+ transition: 0.15s;
109
101
  }
110
- }
111
102
 
112
- &__message {
113
- position: relative;
103
+ &:hover,
104
+ &:focus {
105
+ &::before {
106
+ opacity: 0.1;
107
+ }
108
+ }
109
+
110
+ &__message {
111
+ position: relative;
112
+ }
114
113
  }
115
114
  }
116
- }
117
- // pointer-events: none;
118
- // background: #fff;
119
- // border-radius: 4px;
120
- // opacity: 0;
121
- // transition: opacity 0.15s;
115
+ // pointer-events: none;
116
+ // background: #fff;
117
+ // border-radius: 4px;
118
+ // opacity: 0;
119
+ // transition: opacity 0.15s;
122
120
 
123
- // &--active {
124
- // pointer-events: auto;
125
- // opacity: 1;
126
- // }
121
+ // &--active {
122
+ // pointer-events: auto;
123
+ // opacity: 1;
124
+ // }
127
125
 
128
- &__fix {
129
- display: inline;
130
- margin-top: 8px;
131
- color: var(--palette-link);
132
- text-decoration: underline;
133
- cursor: pointer;
134
- background: transparent;
135
- border: 0;
136
- outline: 0;
137
- appearance: none;
126
+ &__fix {
127
+ display: inline;
128
+ margin-top: 8px;
129
+ color: var(--palette-link);
130
+ text-decoration: underline;
131
+ cursor: pointer;
132
+ background: transparent;
133
+ border: 0;
134
+ outline: 0;
135
+ appearance: none;
136
+ }
138
137
  }
139
138
  }
140
139
  }
@@ -30,7 +30,7 @@ const prefixedEventName = <S extends string>(
30
30
  return `on${source.charAt(0).toUpperCase()}${source.slice(1)}` as any;
31
31
  };
32
32
 
33
- export type WysiwygEditorEvent = typeof EDITOR_EVENTS[number];
33
+ export type WysiwygEditorEvent = (typeof EDITOR_EVENTS)[number];
34
34
 
35
35
  export type WysiwygEditorPrefixedEvent = PrefixedEventName<WysiwygEditorEvent>;
36
36