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.
Files changed (105) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/LICENSE +201 -0
  3. package/README.md +75 -0
  4. package/dist/api/router.js +193 -0
  5. package/dist/api/router.js.map +1 -0
  6. package/dist/auth.js +22 -0
  7. package/dist/auth.js.map +1 -0
  8. package/dist/config.js +50 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/db/database.js +47 -0
  11. package/dist/db/database.js.map +1 -0
  12. package/dist/db/logs.repo.js +91 -0
  13. package/dist/db/logs.repo.js.map +1 -0
  14. package/dist/db/migrations.js +57 -0
  15. package/dist/db/migrations.js.map +1 -0
  16. package/dist/db/tags.repo.js +78 -0
  17. package/dist/db/tags.repo.js.map +1 -0
  18. package/dist/db/tasks.repo.js +78 -0
  19. package/dist/db/tasks.repo.js.map +1 -0
  20. package/dist/domain/slug.js +27 -0
  21. package/dist/domain/slug.js.map +1 -0
  22. package/dist/domain/status.js +110 -0
  23. package/dist/domain/status.js.map +1 -0
  24. package/dist/index.js +130 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/service.js +370 -0
  27. package/dist/service.js.map +1 -0
  28. package/dist/signalk/notifications.js +115 -0
  29. package/dist/signalk/notifications.js.map +1 -0
  30. package/dist/signalk/runtime.js +103 -0
  31. package/dist/signalk/runtime.js.map +1 -0
  32. package/dist/types.js +11 -0
  33. package/dist/types.js.map +1 -0
  34. package/docs/screenshots/completed.png +0 -0
  35. package/docs/screenshots/dark-mode.png +0 -0
  36. package/docs/screenshots/edit-task.png +0 -0
  37. package/docs/screenshots/homepage.png +0 -0
  38. package/docs/screenshots/main-log.png +0 -0
  39. package/docs/screenshots/task-detail.png +0 -0
  40. package/package.json +82 -0
  41. package/public/app/api/client.js +75 -0
  42. package/public/app/api/hooks.js +159 -0
  43. package/public/app/api/resource.js +156 -0
  44. package/public/app/api/signalkPaths.js +66 -0
  45. package/public/app/app.js +71 -0
  46. package/public/app/auth/auth.js +158 -0
  47. package/public/app/components/AuthControl.js +22 -0
  48. package/public/app/components/ConfirmModal.js +55 -0
  49. package/public/app/components/LogEntryModal.js +150 -0
  50. package/public/app/components/LoginModal.js +86 -0
  51. package/public/app/components/MarkdownView.js +17 -0
  52. package/public/app/components/Modal.js +89 -0
  53. package/public/app/components/Pagination.js +35 -0
  54. package/public/app/components/PathPicker.js +66 -0
  55. package/public/app/components/ProgressBar.js +26 -0
  56. package/public/app/components/StatusBadge.js +9 -0
  57. package/public/app/components/Table.js +99 -0
  58. package/public/app/components/TagInput.js +93 -0
  59. package/public/app/components/TaskFormModal.js +310 -0
  60. package/public/app/components/ThemeToggle.js +17 -0
  61. package/public/app/components/Toaster.js +24 -0
  62. package/public/app/lib/format.js +90 -0
  63. package/public/app/lib/html.js +6 -0
  64. package/public/app/lib/router.js +105 -0
  65. package/public/app/lib/sanitize.js +64 -0
  66. package/public/app/lib/slug.js +16 -0
  67. package/public/app/lib/theme.js +52 -0
  68. package/public/app/lib/toasts.js +33 -0
  69. package/public/app/lib/useListParams.js +28 -0
  70. package/public/app/main.js +20 -0
  71. package/public/app/pages/MasterLogPage.js +279 -0
  72. package/public/app/pages/TaskDetailPage.js +294 -0
  73. package/public/app/pages/TaskListPage.js +279 -0
  74. package/public/app/types.js +90 -0
  75. package/public/icons/apple-touch-icon.png +0 -0
  76. package/public/icons/favicon-16.png +0 -0
  77. package/public/icons/favicon-32.png +0 -0
  78. package/public/icons/favicon.ico +0 -0
  79. package/public/icons/icon-192.png +0 -0
  80. package/public/icons/icon-512.png +0 -0
  81. package/public/index.html +82 -0
  82. package/public/manifest.webmanifest +37 -0
  83. package/public/styles/main.css +787 -0
  84. package/public/styles/tokens.css +55 -0
  85. package/public/vendor/VERSIONS.json +9 -0
  86. package/public/vendor/bootstrap-icons/bootstrap-icons.css +2106 -0
  87. package/public/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  88. package/public/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  89. package/public/vendor/dayjs/constant.js +25 -0
  90. package/public/vendor/dayjs/index.d.ts +1 -0
  91. package/public/vendor/dayjs/index.js +541 -0
  92. package/public/vendor/dayjs/locale/en.js +12 -0
  93. package/public/vendor/dayjs/utils.js +58 -0
  94. package/public/vendor/htm.d.ts +1 -0
  95. package/public/vendor/htm.js +1 -0
  96. package/public/vendor/preact-hooks.d.ts +1 -0
  97. package/public/vendor/preact-hooks.js +2 -0
  98. package/public/vendor/preact.d.ts +1 -0
  99. package/public/vendor/preact.js +2 -0
  100. package/public/vendor/signals-core.d.ts +1 -0
  101. package/public/vendor/signals-core.js +1 -0
  102. package/public/vendor/signals.d.ts +1 -0
  103. package/public/vendor/signals.js +1 -0
  104. package/public/vendor/snarkdown.d.ts +1 -0
  105. 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
+ }