@tidegap/cli 0.0.0-stage → 0.19.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 (113) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +136 -2
  3. package/dist/commands/clients.d.ts +20 -0
  4. package/dist/commands/clients.d.ts.map +1 -0
  5. package/dist/commands/clients.js +36 -0
  6. package/dist/commands/clients.js.map +1 -0
  7. package/dist/commands/env-file.d.ts +54 -0
  8. package/dist/commands/env-file.d.ts.map +1 -0
  9. package/dist/commands/env-file.js +153 -0
  10. package/dist/commands/env-file.js.map +1 -0
  11. package/dist/commands/install.d.ts +83 -0
  12. package/dist/commands/install.d.ts.map +1 -0
  13. package/dist/commands/install.js +297 -0
  14. package/dist/commands/install.js.map +1 -0
  15. package/dist/commands/queue.d.ts +139 -0
  16. package/dist/commands/queue.d.ts.map +1 -0
  17. package/dist/commands/queue.js +491 -0
  18. package/dist/commands/queue.js.map +1 -0
  19. package/dist/commands/receipts.d.ts +15 -0
  20. package/dist/commands/receipts.d.ts.map +1 -0
  21. package/dist/commands/receipts.js +70 -0
  22. package/dist/commands/receipts.js.map +1 -0
  23. package/dist/commands/register-wake.d.ts +21 -0
  24. package/dist/commands/register-wake.d.ts.map +1 -0
  25. package/dist/commands/register-wake.js +76 -0
  26. package/dist/commands/register-wake.js.map +1 -0
  27. package/dist/commands/stats.d.ts +31 -0
  28. package/dist/commands/stats.d.ts.map +1 -0
  29. package/dist/commands/stats.js +165 -0
  30. package/dist/commands/stats.js.map +1 -0
  31. package/dist/commands/tick.d.ts +73 -0
  32. package/dist/commands/tick.d.ts.map +1 -0
  33. package/dist/commands/tick.js +294 -0
  34. package/dist/commands/tick.js.map +1 -0
  35. package/dist/commands/ui.d.ts +33 -0
  36. package/dist/commands/ui.d.ts.map +1 -0
  37. package/dist/commands/ui.js +119 -0
  38. package/dist/commands/ui.js.map +1 -0
  39. package/dist/commands/verify.d.ts +32 -0
  40. package/dist/commands/verify.d.ts.map +1 -0
  41. package/dist/commands/verify.js +135 -0
  42. package/dist/commands/verify.js.map +1 -0
  43. package/dist/env.d.ts +57 -0
  44. package/dist/env.d.ts.map +1 -0
  45. package/dist/env.js +105 -0
  46. package/dist/env.js.map +1 -0
  47. package/dist/index.d.ts +25 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +366 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/platform/index.d.ts +30 -0
  52. package/dist/platform/index.d.ts.map +1 -0
  53. package/dist/platform/index.js +66 -0
  54. package/dist/platform/index.js.map +1 -0
  55. package/dist/platform/linux.d.ts +81 -0
  56. package/dist/platform/linux.d.ts.map +1 -0
  57. package/dist/platform/linux.js +158 -0
  58. package/dist/platform/linux.js.map +1 -0
  59. package/dist/platform/macos.d.ts +69 -0
  60. package/dist/platform/macos.d.ts.map +1 -0
  61. package/dist/platform/macos.js +151 -0
  62. package/dist/platform/macos.js.map +1 -0
  63. package/dist/platform/windows.d.ts +31 -0
  64. package/dist/platform/windows.d.ts.map +1 -0
  65. package/dist/platform/windows.js +58 -0
  66. package/dist/platform/windows.js.map +1 -0
  67. package/dist/ui/api.d.ts +66 -0
  68. package/dist/ui/api.d.ts.map +1 -0
  69. package/dist/ui/api.js +613 -0
  70. package/dist/ui/api.js.map +1 -0
  71. package/dist/ui/clients.d.ts +65 -0
  72. package/dist/ui/clients.d.ts.map +1 -0
  73. package/dist/ui/clients.js +179 -0
  74. package/dist/ui/clients.js.map +1 -0
  75. package/dist/ui/discovery.d.ts +25 -0
  76. package/dist/ui/discovery.d.ts.map +1 -0
  77. package/dist/ui/discovery.js +46 -0
  78. package/dist/ui/discovery.js.map +1 -0
  79. package/dist/ui/dispatcher.d.ts +84 -0
  80. package/dist/ui/dispatcher.d.ts.map +1 -0
  81. package/dist/ui/dispatcher.js +150 -0
  82. package/dist/ui/dispatcher.js.map +1 -0
  83. package/dist/ui/events.d.ts +27 -0
  84. package/dist/ui/events.d.ts.map +1 -0
  85. package/dist/ui/events.js +85 -0
  86. package/dist/ui/events.js.map +1 -0
  87. package/dist/ui/server.d.ts +84 -0
  88. package/dist/ui/server.d.ts.map +1 -0
  89. package/dist/ui/server.js +322 -0
  90. package/dist/ui/server.js.map +1 -0
  91. package/dist/ui/summary.d.ts +47 -0
  92. package/dist/ui/summary.d.ts.map +1 -0
  93. package/dist/ui/summary.js +120 -0
  94. package/dist/ui/summary.js.map +1 -0
  95. package/package.json +53 -3
  96. package/ui/agenda.js +256 -0
  97. package/ui/api.js +114 -0
  98. package/ui/app.css +713 -0
  99. package/ui/app.js +599 -0
  100. package/ui/clients.js +104 -0
  101. package/ui/detail.js +431 -0
  102. package/ui/dialog.js +284 -0
  103. package/ui/dnd.js +131 -0
  104. package/ui/dom.js +255 -0
  105. package/ui/index.html +38 -0
  106. package/ui/journal.js +207 -0
  107. package/ui/keys.js +92 -0
  108. package/ui/row.js +153 -0
  109. package/ui/state.js +412 -0
  110. package/ui/timeline.js +202 -0
  111. package/ui/toast.js +69 -0
  112. package/ui/tokens.css +108 -0
  113. package/ui/views.js +31 -0
package/ui/tokens.css ADDED
@@ -0,0 +1,108 @@
1
+ /* tidegap ui design tokens. Every colour, size and duration in app.css comes
2
+ from here. Light is the default; dark follows the OS setting. Each band
3
+ fg/bg pair meets WCAG AA (4.5:1) at 12 px; ui-server.test.ts checks it. */
4
+
5
+ :root {
6
+ color-scheme: light dark;
7
+
8
+ --bg: #f6f6f2;
9
+ --surface: #ffffff;
10
+ --surface-2: #eef0ea;
11
+ --line: #dde1da;
12
+ --fg: #1a201d;
13
+ --fg-muted: #5a655f;
14
+ --accent: #1d6b4d;
15
+ --accent-fg: #ffffff;
16
+ --accent-soft: #e1efe7;
17
+ --brand-ink: #0c1017;
18
+ --danger: #a8361f;
19
+ --danger-soft: #f8e4de;
20
+ --warn: #8a6200;
21
+ --warn-soft: #f6edd3;
22
+ --scrim: rgb(16 20 18 / 0.32);
23
+ --shadow: 0 1px 2px rgb(16 20 18 / 0.06), 0 8px 24px rgb(16 20 18 / 0.10);
24
+
25
+ --band-very-clean: #0e5a39;
26
+ --band-very-clean-bg: #d9f1e3;
27
+ --band-clean: #3b6912;
28
+ --band-clean-bg: #e8f2d4;
29
+ --band-average: #755600;
30
+ --band-average-bg: #f5ecc9;
31
+ --band-dirty: #954612;
32
+ --band-dirty-bg: #f8e0cd;
33
+ --band-very-dirty: #981c1c;
34
+ --band-very-dirty-bg: #f6d7d7;
35
+
36
+ --font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
37
+ --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
38
+ --fs-xs: 12px; --lh-xs: 16px;
39
+ --fs-sm: 13px; --lh-sm: 18px;
40
+ --fs-md: 15px; --lh-md: 22px;
41
+ --fs-lg: 18px; --lh-lg: 24px;
42
+ --fs-xl: 22px; --lh-xl: 28px;
43
+ --fs-2xl: 28px; --lh-2xl: 34px;
44
+ --w-regular: 400;
45
+ --w-medium: 500;
46
+ --w-bold: 600;
47
+
48
+ --sp-1: 4px;
49
+ --sp-2: 8px;
50
+ --sp-3: 12px;
51
+ --sp-4: 16px;
52
+ --sp-5: 24px;
53
+ --sp-6: 32px;
54
+ --sp-7: 48px;
55
+
56
+ --r-1: 6px;
57
+ --r-2: 10px;
58
+ --r-pill: 999px;
59
+
60
+ --row-h: 56px;
61
+ --touch: 44px;
62
+ --drawer-w: 440px;
63
+ --header-h: 56px;
64
+ --tabbar-h: 60px;
65
+
66
+ --t-fast: 120ms;
67
+ --t-med: 200ms;
68
+ --ease: cubic-bezier(0.2, 0, 0, 1);
69
+ }
70
+
71
+ @media (prefers-color-scheme: dark) {
72
+ :root {
73
+ --bg: #101412;
74
+ --surface: #171c19;
75
+ --surface-2: #1f2521;
76
+ --line: #2d3531;
77
+ --fg: #e6ece8;
78
+ --fg-muted: #9aa8a0;
79
+ --accent: #5cc796;
80
+ --accent-fg: #0b1410;
81
+ --accent-soft: #163024;
82
+ --brand-ink: #ffffff;
83
+ --danger: #f08a74;
84
+ --danger-soft: #3a1d17;
85
+ --warn: #e3b341;
86
+ --warn-soft: #33290f;
87
+ --scrim: rgb(0 0 0 / 0.5);
88
+ --shadow: 0 1px 2px rgb(0 0 0 / 0.3), 0 8px 24px rgb(0 0 0 / 0.4);
89
+
90
+ --band-very-clean: #86e2b0;
91
+ --band-very-clean-bg: #11301f;
92
+ --band-clean: #b8dd7e;
93
+ --band-clean-bg: #25311a;
94
+ --band-average: #e9c96a;
95
+ --band-average-bg: #342c13;
96
+ --band-dirty: #f1a46c;
97
+ --band-dirty-bg: #392415;
98
+ --band-very-dirty: #f38e8e;
99
+ --band-very-dirty-bg: #3c1b1b;
100
+ }
101
+ }
102
+
103
+ @media (prefers-reduced-motion: reduce) {
104
+ :root {
105
+ --t-fast: 0ms;
106
+ --t-med: 0ms;
107
+ }
108
+ }
package/ui/views.js ADDED
@@ -0,0 +1,31 @@
1
+ // Shared view states: empty, error and loading skeletons.
2
+
3
+ import { h } from "./dom.js";
4
+
5
+ export function emptyState({ title, body, link, glyph = "○" }) {
6
+ return h("div", { class: "empty" },
7
+ h("div", { class: "empty-glyph", "aria-hidden": "true" }, glyph),
8
+ h("p", { class: "empty-title" }, title),
9
+ body ? h("p", { class: "empty-body" }, body) : null,
10
+ link ? h("a", { class: "empty-link", href: link.href }, link.text) : null);
11
+ }
12
+
13
+ /** Inline error card with Retry (handled by app.js through data-action). */
14
+ export function errorCard(message) {
15
+ return h("div", { class: "error-card", role: "alert" },
16
+ h("span", {}, message),
17
+ h("button", { type: "button", class: "btn btn-sm", "data-action": "retry" }, "Retry"));
18
+ }
19
+
20
+ export function skeletonRows(n) {
21
+ const ul = h("ul", { class: "rows", "aria-hidden": "true" });
22
+ for (let i = 0; i < n; i++) {
23
+ ul.append(h("li", { class: "row row-skeleton" },
24
+ h("span", { class: "row-dot" }),
25
+ h("span", { class: "sk sk-time" }),
26
+ h("span", { class: "sk sk-chip" }),
27
+ h("span", { class: "row-main" }, h("span", { class: `sk sk-line ${i % 2 ? "sk-short" : ""}` }), h("span", { class: "sk sk-line sk-sub" })),
28
+ h("span", { class: "sk sk-pm" })));
29
+ }
30
+ return ul;
31
+ }