@runwisp/ui 1.2.0 → 1.3.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/package.json +4 -4
- package/src/lib/components/dashboard/RunDetailPanel.svelte +2 -1
- package/src/lib/components/dashboard/run-filters.test.ts +1 -0
- package/src/lib/components/dashboard/run-helpers.ts +1 -0
- package/src/lib/components/dashboard/status-config.ts +11 -0
- package/src/lib/theme.css +11 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runwisp/ui",
|
|
3
3
|
"description": "Svelte 5 UI component library for RunWisp dashboards and admin interfaces.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.0",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@chromatic-com/storybook": "^5.2.1",
|
|
51
51
|
"@eslint/js": "^10.0.1",
|
|
52
|
-
"@runwisp/eslint-config": "1.
|
|
53
|
-
"@runwisp/typescript-config": "1.
|
|
52
|
+
"@runwisp/eslint-config": "1.3.0",
|
|
53
|
+
"@runwisp/typescript-config": "1.3.0",
|
|
54
54
|
"@storybook/addon-a11y": "^10.5.5",
|
|
55
55
|
"@storybook/addon-docs": "^10.5.5",
|
|
56
56
|
"@storybook/addon-svelte-csf": "^5.1.2",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"@fontsource-variable/geist-mono": "^5.3.0",
|
|
94
94
|
"@fontsource/tasa-orbiter": "^5.3.0",
|
|
95
95
|
"@lucide/svelte": "^1.28.0",
|
|
96
|
-
"@runwisp/common": "1.
|
|
96
|
+
"@runwisp/common": "1.3.0",
|
|
97
97
|
"@tanstack/svelte-virtual": "^3.13.35",
|
|
98
98
|
"ansi-to-html": "^0.7.2",
|
|
99
99
|
"cron-parser": "^5.7.0",
|
|
@@ -278,7 +278,8 @@
|
|
|
278
278
|
displayed === "crashed" ||
|
|
279
279
|
displayed === "log_overflow" ||
|
|
280
280
|
displayed === "missed" ||
|
|
281
|
-
displayed === "start_failed"
|
|
281
|
+
displayed === "start_failed" ||
|
|
282
|
+
displayed === "unhealthy"
|
|
282
283
|
)
|
|
283
284
|
return "var(--color-danger-surface)";
|
|
284
285
|
if (displayed === "timeout" || displayed === "daemon_stopped" || displayed === "queue_full")
|
|
@@ -29,6 +29,7 @@ const RUN_VERDICTS: Record<RunStatus, RunVerdict> = {
|
|
|
29
29
|
daemon_stopped: { verb: "cut short after", timed: true },
|
|
30
30
|
log_overflow: { verb: "killed after", timed: true },
|
|
31
31
|
start_failed: { verb: "gave up after", timed: true },
|
|
32
|
+
unhealthy: { verb: "killed as unhealthy after", timed: true },
|
|
32
33
|
ended: { verb: "ended after", timed: true },
|
|
33
34
|
running: { verb: "running for", timed: true },
|
|
34
35
|
pending: { verb: "queued", timed: false },
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
FileExclamationPoint,
|
|
14
14
|
CalendarX,
|
|
15
15
|
OctagonX,
|
|
16
|
+
HeartCrack,
|
|
16
17
|
} from "@lucide/svelte";
|
|
17
18
|
import type { Component } from "svelte";
|
|
18
19
|
import { displayStatus, type RunStatus, type Run } from "@runwisp/common";
|
|
@@ -153,6 +154,16 @@ export const RUN_STATUS_CONFIG: Record<RunStatus, RunStatusConfig> = {
|
|
|
153
154
|
description:
|
|
154
155
|
"The run (or service instance) kept failing; after restart_attempts consecutive failures, RunWisp gave up restarting it automatically.",
|
|
155
156
|
},
|
|
157
|
+
unhealthy: {
|
|
158
|
+
icon: HeartCrack,
|
|
159
|
+
color: "text-danger-surface",
|
|
160
|
+
bg: "bg-danger-soft",
|
|
161
|
+
border: "border-danger-soft",
|
|
162
|
+
dot: "bg-danger-surface",
|
|
163
|
+
badge: "bg-danger-soft text-danger-soft-text",
|
|
164
|
+
description:
|
|
165
|
+
"The service instance kept failing its health_check, so RunWisp stopped it. Its restart policy decides what happens next.",
|
|
166
|
+
},
|
|
156
167
|
pending: {
|
|
157
168
|
icon: Clock,
|
|
158
169
|
color: "text-on-surface-muted",
|
package/src/lib/theme.css
CHANGED
|
@@ -259,7 +259,17 @@ h3 {
|
|
|
259
259
|
font-weight: 800;
|
|
260
260
|
line-height: 1.1;
|
|
261
261
|
letter-spacing: -0.02em;
|
|
262
|
-
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/* Layered, unlike the rule above: text-wrap sets the same property as
|
|
265
|
+
white-space, so unlayered it would beat the `truncate` utility and wrap a
|
|
266
|
+
heading that asked to be cut to one line. */
|
|
267
|
+
@layer base {
|
|
268
|
+
h1,
|
|
269
|
+
h2,
|
|
270
|
+
h3 {
|
|
271
|
+
text-wrap: balance;
|
|
272
|
+
}
|
|
263
273
|
}
|
|
264
274
|
|
|
265
275
|
/* Utility classes for the design system */
|