Skip to content

Commit 53df5ef

Browse files
committed
improve @servicestack/vue intelli sense
1 parent 243efd2 commit 53df5ef

File tree

5 files changed

+104
-76
lines changed

5 files changed

+104
-76
lines changed

MyApp/components.d.ts

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/* eslint-disable */
2+
// @ts-nocheck
3+
// biome-ignore lint: disable
4+
export {}
5+
6+
/* prettier-ignore */
7+
declare module '@vue/runtime-core' {
8+
export interface GlobalComponents {
9+
Alert: typeof import('./wwwroot/lib/typings/@servicestack/vue')['Alert'];
10+
AlertSuccess: typeof import('./wwwroot/lib/typings/@servicestack/vue')['AlertSuccess'];
11+
ErrorSummary: typeof import('./wwwroot/lib/typings/@servicestack/vue')['ErrorSummary'];
12+
InputDescription: typeof import('./wwwroot/lib/typings/@servicestack/vue')['InputDescription'];
13+
Icon: typeof import('./wwwroot/lib/typings/@servicestack/vue')['Icon'];
14+
Loading: typeof import('./wwwroot/lib/typings/@servicestack/vue')['Loading'];
15+
16+
OutlineButton: typeof import('./wwwroot/lib/typings/@servicestack/vue')['OutlineButton'];
17+
PrimaryButton: typeof import('./wwwroot/lib/typings/@servicestack/vue')['PrimaryButton'];
18+
SecondaryButton: typeof import('./wwwroot/lib/typings/@servicestack/vue')['SecondaryButton'];
19+
TextLink: typeof import('./wwwroot/lib/typings/@servicestack/vue')['TextLink'];
20+
21+
Breadcrumbs: typeof import('./wwwroot/lib/typings/@servicestack/vue')['Breadcrumbs'];
22+
Breadcrumb: typeof import('./wwwroot/lib/typings/@servicestack/vue')['Breadcrumb'];
23+
NavList: typeof import('./wwwroot/lib/typings/@servicestack/vue')['NavList'];
24+
NavListItem: typeof import('./wwwroot/lib/typings/@servicestack/vue')['NavListItem'];
25+
26+
AutoQueryGrid: typeof import('./wwwroot/lib/typings/@servicestack/vue')['AutoQueryGrid'];
27+
SettingsIcons: typeof import('./wwwroot/lib/typings/@servicestack/vue')['SettingsIcons'];
28+
FilterViews: typeof import('./wwwroot/lib/typings/@servicestack/vue')['FilterViews'];
29+
FilterColumn: typeof import('./wwwroot/lib/typings/@servicestack/vue')['FilterColumn'];
30+
QueryPrefs: typeof import('./wwwroot/lib/typings/@servicestack/vue')['QueryPrefs'];
31+
EnsureAccess: typeof import('./wwwroot/lib/typings/@servicestack/vue')['EnsureAccess'];
32+
EnsureAccessDialog: typeof import('./wwwroot/lib/typings/@servicestack/vue')['EnsureAccessDialog'];
33+
34+
TextInput: typeof import('./wwwroot/lib/typings/@servicestack/vue')['TextInput'];
35+
TextareaInput: typeof import('./wwwroot/lib/typings/@servicestack/vue')['TextareaInput'];
36+
SelectInput: typeof import('./wwwroot/lib/typings/@servicestack/vue')['SelectInput'];
37+
CheckboxInput: typeof import('./wwwroot/lib/typings/@servicestack/vue')['CheckboxInput'];
38+
TagInput: typeof import('./wwwroot/lib/typings/@servicestack/vue')['TagInput'];
39+
FileInput: typeof import('./wwwroot/lib/typings/@servicestack/vue')['FileInput'];
40+
Autocomplete: typeof import('./wwwroot/lib/typings/@servicestack/vue')['Autocomplete'];
41+
Combobox: typeof import('./wwwroot/lib/typings/@servicestack/vue')['Combobox'];
42+
DynamicInput: typeof import('./wwwroot/lib/typings/@servicestack/vue')['DynamicInput'];
43+
LookupInput: typeof import('./wwwroot/lib/typings/@servicestack/vue')['LookupInput'];
44+
45+
AutoFormFields: typeof import('./wwwroot/lib/typings/@servicestack/vue')['AutoFormFields'];
46+
AutoForm: typeof import('./wwwroot/lib/typings/@servicestack/vue')['AutoForm'];
47+
AutoCreateForm: typeof import('./wwwroot/lib/typings/@servicestack/vue')['AutoCreateForm'];
48+
AutoEditForm: typeof import('./wwwroot/lib/typings/@servicestack/vue')['AutoEditForm'];
49+
AutoViewForm: typeof import('./wwwroot/lib/typings/@servicestack/vue')['AutoViewForm'];
50+
ConfirmDelete: typeof import('./wwwroot/lib/typings/@servicestack/vue')['ConfirmDelete'];
51+
FormLoading: typeof import('./wwwroot/lib/typings/@servicestack/vue')['FormLoading'];
52+
53+
DataGrid: typeof import('./wwwroot/lib/typings/@servicestack/vue')['DataGrid'];
54+
CellFormat: typeof import('./wwwroot/lib/typings/@servicestack/vue')['CellFormat'];
55+
PreviewFormat: typeof import('./wwwroot/lib/typings/@servicestack/vue')['PreviewFormat'];
56+
HtmlFormat: typeof import('./wwwroot/lib/typings/@servicestack/vue')['HtmlFormat'];
57+
MarkupFormat: typeof import('./wwwroot/lib/typings/@servicestack/vue')['MarkupFormat'];
58+
MarkupModel: typeof import('./wwwroot/lib/typings/@servicestack/vue')['MarkupModel'];
59+
60+
CloseButton: typeof import('./wwwroot/lib/typings/@servicestack/vue')['CloseButton'];
61+
SlideOver: typeof import('./wwwroot/lib/typings/@servicestack/vue')['SlideOver'];
62+
ModalDialog: typeof import('./wwwroot/lib/typings/@servicestack/vue')['ModalDialog'];
63+
ModalLookup: typeof import('./wwwroot/lib/typings/@servicestack/vue')['ModalLookup'];
64+
Tabs: typeof import('./wwwroot/lib/typings/@servicestack/vue')['Tabs'];
65+
66+
DarkModeToggle: typeof import('./wwwroot/lib/typings/@servicestack/vue')['DarkModeToggle'];
67+
SignIn: typeof import('./wwwroot/lib/typings/@servicestack/vue')['SignIn'];
68+
MarkdownInput: typeof import('./wwwroot/lib/typings/@servicestack/vue')['MarkdownInput'];
69+
SidebarLayout: typeof import('./wwwroot/lib/typings/@servicestack/vue')['SidebarLayout'];
70+
}
71+
}

MyApp/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,9 @@
1313
"rerun:last": "npm run revert:last && npm run migrate",
1414
"metadata": "dotnet run --AppTasks=metadata",
1515
"adhoc": "dotnet run --AppTasks=adhoc"
16+
},
17+
"devDependencies": {
18+
"@servicestack/client": "^2.1.11",
19+
"@servicestack/vue": "^3.0.125"
1620
}
1721
}

MyApp/tsconfig.json

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,32 @@
33
"target": "ESNext",
44
"sourceMap": true,
55
"baseUrl": "./",
6-
"typeRoots": ["./wwwroot/lib/typings"],
6+
"typeRoots": [
7+
"./wwwroot/lib/typings"
8+
],
79
"experimentalDecorators": true,
10+
"allowJs": true,
11+
"noEmit": true,
12+
"lib": [
13+
"ES2020",
14+
"DOM",
15+
"DOM.Iterable"
16+
],
817
"paths": {
918
"*": [
1019
"./wwwroot/lib/*",
1120
"./wwwroot/lib/typings/*"
1221
],
1322
"vue": [ "./wwwroot/lib/typings/vue/index.d.ts" ],
1423
"@servicestack/client": [ "./wwwroot/lib/typings/@servicestack/client/index.d.ts" ],
15-
"@servicestack/vue": [ "./wwwroot/lib/typings/@servicestack/vue/index.d.ts" ]
24+
"@servicestack/vue": [
25+
"./wwwroot/lib/typings/@servicestack/vue/index.d.ts"
26+
]
1627
}
1728
},
29+
"files": [
30+
"./components.d.ts"
31+
],
1832
"exclude": [
1933
"node_modules"
2034
]

MyApp/wwwroot/css/app.css

Lines changed: 12 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -436,9 +436,6 @@
436436
.right-0\.5 {
437437
right: calc(var(--spacing) * 0.5);
438438
}
439-
.right-1 {
440-
right: calc(var(--spacing) * 1);
441-
}
442439
.right-2 {
443440
right: calc(var(--spacing) * 2);
444441
}
@@ -493,9 +490,6 @@
493490
.z-0 {
494491
z-index: 0;
495492
}
496-
.z-1 {
497-
z-index: 1;
498-
}
499493
.z-10 {
500494
z-index: 10;
501495
}
@@ -589,9 +583,6 @@
589583
.mx-1 {
590584
margin-inline: calc(var(--spacing) * 1);
591585
}
592-
.mx-2 {
593-
margin-inline: calc(var(--spacing) * 2);
594-
}
595586
.mx-3 {
596587
margin-inline: calc(var(--spacing) * 3);
597588
}
@@ -631,24 +622,12 @@
631622
.-mt-1 {
632623
margin-top: calc(var(--spacing) * -1);
633624
}
634-
.-mt-2 {
635-
margin-top: calc(var(--spacing) * -2);
636-
}
637625
.-mt-2\.5 {
638626
margin-top: calc(var(--spacing) * -2.5);
639627
}
640628
.-mt-3 {
641629
margin-top: calc(var(--spacing) * -3);
642630
}
643-
.-mt-4 {
644-
margin-top: calc(var(--spacing) * -4);
645-
}
646-
.-mt-5 {
647-
margin-top: calc(var(--spacing) * -5);
648-
}
649-
.-mt-6 {
650-
margin-top: calc(var(--spacing) * -6);
651-
}
652631
.-mt-7 {
653632
margin-top: calc(var(--spacing) * -7);
654633
}
@@ -700,15 +679,9 @@
700679
.mt-auto {
701680
margin-top: auto;
702681
}
703-
.-mr-2 {
704-
margin-right: calc(var(--spacing) * -2);
705-
}
706682
.-mr-3 {
707683
margin-right: calc(var(--spacing) * -3);
708684
}
709-
.-mr-4 {
710-
margin-right: calc(var(--spacing) * -4);
711-
}
712685
.-mr-28 {
713686
margin-right: calc(var(--spacing) * -28);
714687
}
@@ -859,10 +832,6 @@
859832
.aspect-video {
860833
aspect-ratio: var(--aspect-video);
861834
}
862-
.size-3 {
863-
width: calc(var(--spacing) * 3);
864-
height: calc(var(--spacing) * 3);
865-
}
866835
.size-3\.5 {
867836
width: calc(var(--spacing) * 3.5);
868837
height: calc(var(--spacing) * 3.5);
@@ -875,10 +844,6 @@
875844
width: calc(var(--spacing) * 5);
876845
height: calc(var(--spacing) * 5);
877846
}
878-
.size-5\.5 {
879-
width: calc(var(--spacing) * 5.5);
880-
height: calc(var(--spacing) * 5.5);
881-
}
882847
.size-6 {
883848
width: calc(var(--spacing) * 6);
884849
height: calc(var(--spacing) * 6);
@@ -887,10 +852,6 @@
887852
width: calc(var(--spacing) * 10);
888853
height: calc(var(--spacing) * 10);
889854
}
890-
.size-32 {
891-
width: calc(var(--spacing) * 32);
892-
height: calc(var(--spacing) * 32);
893-
}
894855
.h-0 {
895856
height: calc(var(--spacing) * 0);
896857
}
@@ -960,9 +921,6 @@
960921
.max-h-24 {
961922
max-height: calc(var(--spacing) * 24);
962923
}
963-
.max-h-32 {
964-
max-height: calc(var(--spacing) * 32);
965-
}
966924
.max-h-60 {
967925
max-height: calc(var(--spacing) * 60);
968926
}
@@ -1014,9 +972,6 @@
1014972
.w-6 {
1015973
width: calc(var(--spacing) * 6);
1016974
}
1017-
.w-7 {
1018-
width: calc(var(--spacing) * 7);
1019-
}
1020975
.w-8 {
1021976
width: calc(var(--spacing) * 8);
1022977
}
@@ -1041,9 +996,6 @@
1041996
.w-24 {
1042997
width: calc(var(--spacing) * 24);
1043998
}
1044-
.w-28 {
1045-
width: calc(var(--spacing) * 28);
1046-
}
1047999
.w-32 {
10481000
width: calc(var(--spacing) * 32);
10491001
}
@@ -1095,15 +1047,6 @@
10951047
.max-w-24 {
10961048
max-width: calc(var(--spacing) * 24);
10971049
}
1098-
.max-w-32 {
1099-
max-width: calc(var(--spacing) * 32);
1100-
}
1101-
.max-w-40 {
1102-
max-width: calc(var(--spacing) * 40);
1103-
}
1104-
.max-w-44 {
1105-
max-width: calc(var(--spacing) * 44);
1106-
}
11071050
.max-w-\[180rem\] {
11081051
max-width: 180rem;
11091052
}
@@ -1448,9 +1391,6 @@
14481391
margin-inline-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-x-reverse)));
14491392
}
14501393
}
1451-
.gap-y-1 {
1452-
row-gap: calc(var(--spacing) * 1);
1453-
}
14541394
.gap-y-4 {
14551395
row-gap: calc(var(--spacing) * 4);
14561396
}
@@ -1767,9 +1707,6 @@
17671707
.bg-gray-800 {
17681708
background-color: var(--color-gray-800);
17691709
}
1770-
.bg-gray-900 {
1771-
background-color: var(--color-gray-900);
1772-
}
17731710
.bg-gray-900\/50 {
17741711
background-color: color-mix(in srgb, oklch(21% 0.034 264.665) 50%, transparent);
17751712
@supports (color: color-mix(in lab, red, red)) {
@@ -3888,16 +3825,6 @@
38883825
width: calc(var(--spacing) * 8);
38893826
}
38903827
}
3891-
.sm\:w-28 {
3892-
@media (width >= 40rem) {
3893-
width: calc(var(--spacing) * 28);
3894-
}
3895-
}
3896-
.sm\:w-32 {
3897-
@media (width >= 40rem) {
3898-
width: calc(var(--spacing) * 32);
3899-
}
3900-
}
39013828
.sm\:w-44 {
39023829
@media (width >= 40rem) {
39033830
width: calc(var(--spacing) * 44);
@@ -5366,6 +5293,11 @@
53665293
--tw-ring-offset-color: var(--color-green-200);
53675294
}
53685295
}
5296+
.dark\:ring-offset-green-900 {
5297+
&:where(.dark, .dark *) {
5298+
--tw-ring-offset-color: var(--color-green-900);
5299+
}
5300+
}
53695301
.dark\:outline-gray-700 {
53705302
&:where(.dark, .dark *) {
53715303
outline-color: var(--color-gray-700);
@@ -5864,6 +5796,13 @@
58645796
}
58655797
}
58665798
}
5799+
.dark\:focus\:ring-green-300 {
5800+
&:where(.dark, .dark *) {
5801+
&:focus {
5802+
--tw-ring-color: var(--color-green-300);
5803+
}
5804+
}
5805+
}
58675806
.dark\:focus\:ring-green-500 {
58685807
&:where(.dark, .dark *) {
58695808
&:focus {

MyApp/wwwroot/pages/components/DeviceInfo.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export default {
2626
<div :key="device.id"
2727
class="relative bg-white dark:bg-gray-800 overflow-hidden shadow rounded-lg border border-gray-200 dark:border-gray-700 hover:shadow-lg transition-shadow duration-200">
2828
29-
<CloseButton v-if="device.userId == store.userId || store.isAdmin" class="-mt-3 -mr-3" buttonClass="dark:bg-gray-800" title="Remove offline device" @close="removeDevice" />
29+
<CloseButton v-if="(device.userId == store.userId || store.isAdmin) && getDeviceStatus(device) !== 'Online'" class="-mt-3 -mr-3" buttonClass="dark:bg-gray-800" title="Remove offline device" @close="removeDevice" />
3030
3131
<!-- Device Header -->
3232
<div class="px-4 py-5 sm:p-6">

0 commit comments

Comments
 (0)