signalk-maintenance-tracker 1.0.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.
- package/CHANGELOG.md +46 -0
- package/LICENSE +201 -0
- package/README.md +75 -0
- package/dist/api/router.js +193 -0
- package/dist/api/router.js.map +1 -0
- package/dist/auth.js +22 -0
- package/dist/auth.js.map +1 -0
- package/dist/config.js +50 -0
- package/dist/config.js.map +1 -0
- package/dist/db/database.js +47 -0
- package/dist/db/database.js.map +1 -0
- package/dist/db/logs.repo.js +91 -0
- package/dist/db/logs.repo.js.map +1 -0
- package/dist/db/migrations.js +57 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/tags.repo.js +78 -0
- package/dist/db/tags.repo.js.map +1 -0
- package/dist/db/tasks.repo.js +78 -0
- package/dist/db/tasks.repo.js.map +1 -0
- package/dist/domain/slug.js +27 -0
- package/dist/domain/slug.js.map +1 -0
- package/dist/domain/status.js +110 -0
- package/dist/domain/status.js.map +1 -0
- package/dist/index.js +130 -0
- package/dist/index.js.map +1 -0
- package/dist/service.js +370 -0
- package/dist/service.js.map +1 -0
- package/dist/signalk/notifications.js +115 -0
- package/dist/signalk/notifications.js.map +1 -0
- package/dist/signalk/runtime.js +103 -0
- package/dist/signalk/runtime.js.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/docs/screenshots/completed.png +0 -0
- package/docs/screenshots/dark-mode.png +0 -0
- package/docs/screenshots/edit-task.png +0 -0
- package/docs/screenshots/homepage.png +0 -0
- package/docs/screenshots/main-log.png +0 -0
- package/docs/screenshots/task-detail.png +0 -0
- package/package.json +82 -0
- package/public/app/api/client.js +75 -0
- package/public/app/api/hooks.js +159 -0
- package/public/app/api/resource.js +156 -0
- package/public/app/api/signalkPaths.js +66 -0
- package/public/app/app.js +71 -0
- package/public/app/auth/auth.js +158 -0
- package/public/app/components/AuthControl.js +22 -0
- package/public/app/components/ConfirmModal.js +55 -0
- package/public/app/components/LogEntryModal.js +150 -0
- package/public/app/components/LoginModal.js +86 -0
- package/public/app/components/MarkdownView.js +17 -0
- package/public/app/components/Modal.js +89 -0
- package/public/app/components/Pagination.js +35 -0
- package/public/app/components/PathPicker.js +66 -0
- package/public/app/components/ProgressBar.js +26 -0
- package/public/app/components/StatusBadge.js +9 -0
- package/public/app/components/Table.js +99 -0
- package/public/app/components/TagInput.js +93 -0
- package/public/app/components/TaskFormModal.js +310 -0
- package/public/app/components/ThemeToggle.js +17 -0
- package/public/app/components/Toaster.js +24 -0
- package/public/app/lib/format.js +90 -0
- package/public/app/lib/html.js +6 -0
- package/public/app/lib/router.js +105 -0
- package/public/app/lib/sanitize.js +64 -0
- package/public/app/lib/slug.js +16 -0
- package/public/app/lib/theme.js +52 -0
- package/public/app/lib/toasts.js +33 -0
- package/public/app/lib/useListParams.js +28 -0
- package/public/app/main.js +20 -0
- package/public/app/pages/MasterLogPage.js +279 -0
- package/public/app/pages/TaskDetailPage.js +294 -0
- package/public/app/pages/TaskListPage.js +279 -0
- package/public/app/types.js +90 -0
- package/public/icons/apple-touch-icon.png +0 -0
- package/public/icons/favicon-16.png +0 -0
- package/public/icons/favicon-32.png +0 -0
- package/public/icons/favicon.ico +0 -0
- package/public/icons/icon-192.png +0 -0
- package/public/icons/icon-512.png +0 -0
- package/public/index.html +82 -0
- package/public/manifest.webmanifest +37 -0
- package/public/styles/main.css +787 -0
- package/public/styles/tokens.css +55 -0
- package/public/vendor/VERSIONS.json +9 -0
- package/public/vendor/bootstrap-icons/bootstrap-icons.css +2106 -0
- package/public/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
- package/public/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
- package/public/vendor/dayjs/constant.js +25 -0
- package/public/vendor/dayjs/index.d.ts +1 -0
- package/public/vendor/dayjs/index.js +541 -0
- package/public/vendor/dayjs/locale/en.js +12 -0
- package/public/vendor/dayjs/utils.js +58 -0
- package/public/vendor/htm.d.ts +1 -0
- package/public/vendor/htm.js +1 -0
- package/public/vendor/preact-hooks.d.ts +1 -0
- package/public/vendor/preact-hooks.js +2 -0
- package/public/vendor/preact.d.ts +1 -0
- package/public/vendor/preact.js +2 -0
- package/public/vendor/signals-core.d.ts +1 -0
- package/public/vendor/signals-core.js +1 -0
- package/public/vendor/signals.d.ts +1 -0
- package/public/vendor/signals.js +1 -0
- package/public/vendor/snarkdown.d.ts +1 -0
- package/public/vendor/snarkdown.js +2 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="light">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta
|
|
6
|
+
name="viewport"
|
|
7
|
+
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
|
|
8
|
+
/>
|
|
9
|
+
<title>Maintenance Tracker</title>
|
|
10
|
+
<!-- Icons + manifest are generated from assets/icon.png — see `npm run icons`. -->
|
|
11
|
+
<link rel="icon" href="./icons/favicon.ico" sizes="48x48" />
|
|
12
|
+
<link
|
|
13
|
+
rel="icon"
|
|
14
|
+
type="image/png"
|
|
15
|
+
sizes="32x32"
|
|
16
|
+
href="./icons/favicon-32.png"
|
|
17
|
+
/>
|
|
18
|
+
<link
|
|
19
|
+
rel="icon"
|
|
20
|
+
type="image/png"
|
|
21
|
+
sizes="16x16"
|
|
22
|
+
href="./icons/favicon-16.png"
|
|
23
|
+
/>
|
|
24
|
+
<link rel="apple-touch-icon" href="./icons/apple-touch-icon.png" />
|
|
25
|
+
<link rel="manifest" href="./manifest.webmanifest" />
|
|
26
|
+
<meta
|
|
27
|
+
name="theme-color"
|
|
28
|
+
content="#f5f6f8"
|
|
29
|
+
media="(prefers-color-scheme: light)"
|
|
30
|
+
/>
|
|
31
|
+
<meta
|
|
32
|
+
name="theme-color"
|
|
33
|
+
content="#14171a"
|
|
34
|
+
media="(prefers-color-scheme: dark)"
|
|
35
|
+
/>
|
|
36
|
+
<!-- iOS home-screen bookmark: run standalone with the app title. -->
|
|
37
|
+
<meta name="mobile-web-app-capable" content="yes" />
|
|
38
|
+
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
39
|
+
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
|
|
40
|
+
<meta name="apple-mobile-web-app-title" content="Maintenance" />
|
|
41
|
+
<!-- Set the theme before first paint; ES5 so it runs even without module support. -->
|
|
42
|
+
<script>
|
|
43
|
+
(function () {
|
|
44
|
+
var theme = null;
|
|
45
|
+
// B&G / Navico MFDs pass ?mode=night or ?mode=day instead of honoring
|
|
46
|
+
// prefers-color-scheme; the param overrides everything, including the
|
|
47
|
+
// saved preference.
|
|
48
|
+
var m = location.search.match(/[?&]mode=([^&]*)/);
|
|
49
|
+
if (m) {
|
|
50
|
+
theme = decodeURIComponent(m[1]) === 'night' ? 'dark' : 'light';
|
|
51
|
+
}
|
|
52
|
+
if (theme === null) {
|
|
53
|
+
try {
|
|
54
|
+
theme = localStorage.getItem('smt-theme');
|
|
55
|
+
} catch (e) {
|
|
56
|
+
/* storage may be blocked */
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (theme !== 'light' && theme !== 'dark') {
|
|
60
|
+
// prefers-color-scheme is Chrome 76+; on Chromium 69 it never matches → light (§7.3)
|
|
61
|
+
theme =
|
|
62
|
+
window.matchMedia &&
|
|
63
|
+
window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
64
|
+
? 'dark'
|
|
65
|
+
: 'light';
|
|
66
|
+
}
|
|
67
|
+
document.documentElement.setAttribute('data-theme', theme);
|
|
68
|
+
})();
|
|
69
|
+
</script>
|
|
70
|
+
<link
|
|
71
|
+
rel="stylesheet"
|
|
72
|
+
href="./vendor/bootstrap-icons/bootstrap-icons.css"
|
|
73
|
+
/>
|
|
74
|
+
<link rel="stylesheet" href="./styles/tokens.css" />
|
|
75
|
+
<link rel="stylesheet" href="./styles/main.css" />
|
|
76
|
+
</head>
|
|
77
|
+
<body>
|
|
78
|
+
<div id="app"></div>
|
|
79
|
+
<noscript>Maintenance Tracker requires JavaScript.</noscript>
|
|
80
|
+
<script type="module" src="./app/main.js"></script>
|
|
81
|
+
</body>
|
|
82
|
+
</html>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Maintenance Tracker",
|
|
3
|
+
"short_name": "Maintenance",
|
|
4
|
+
"description": "Track recurring boat maintenance tasks with runtime- and time-based intervals.",
|
|
5
|
+
"id": "./",
|
|
6
|
+
"start_url": "./",
|
|
7
|
+
"scope": "./",
|
|
8
|
+
"display": "standalone",
|
|
9
|
+
"background_color": "#f5f6f8",
|
|
10
|
+
"theme_color": "#f5f6f8",
|
|
11
|
+
"icons": [
|
|
12
|
+
{
|
|
13
|
+
"src": "icons/icon-192.png",
|
|
14
|
+
"sizes": "192x192",
|
|
15
|
+
"type": "image/png",
|
|
16
|
+
"purpose": "any"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"src": "icons/icon-512.png",
|
|
20
|
+
"sizes": "512x512",
|
|
21
|
+
"type": "image/png",
|
|
22
|
+
"purpose": "any"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"src": "icons/icon-192.png",
|
|
26
|
+
"sizes": "192x192",
|
|
27
|
+
"type": "image/png",
|
|
28
|
+
"purpose": "maskable"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"src": "icons/icon-512.png",
|
|
32
|
+
"sizes": "512x512",
|
|
33
|
+
"type": "image/png",
|
|
34
|
+
"purpose": "maskable"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|