@shipfox/client-runners 17.0.1 → 22.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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-type.log +0 -1
- package/CHANGELOG.md +34 -0
- package/dist/components/manual-registration-token-list.d.ts.map +1 -1
- package/dist/components/manual-registration-token-list.js +9 -7
- package/dist/components/manual-registration-token-list.js.map +1 -1
- package/dist/components/manual-registration-tokens-settings-section.d.ts.map +1 -1
- package/dist/components/manual-registration-tokens-settings-section.js +10 -4
- package/dist/components/manual-registration-tokens-settings-section.js.map +1 -1
- package/dist/components/provisioner-token-list.d.ts.map +1 -1
- package/dist/components/provisioner-token-list.js +9 -7
- package/dist/components/provisioner-token-list.js.map +1 -1
- package/dist/components/provisioner-tokens-settings-section.d.ts.map +1 -1
- package/dist/components/provisioner-tokens-settings-section.js +10 -4
- package/dist/components/provisioner-tokens-settings-section.js.map +1 -1
- package/dist/components/token-settings-sections.stories.js +1 -1
- package/dist/components/token-settings-sections.stories.js.map +1 -1
- package/dist/routes/provisioners-settings.d.ts +3 -0
- package/dist/routes/provisioners-settings.js +3 -0
- package/dist/routes/provisioners-settings.js.map +1 -1
- package/dist/routes/runners-settings.d.ts +3 -0
- package/dist/routes/runners-settings.js +3 -0
- package/dist/routes/runners-settings.js.map +1 -1
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/components/manual-registration-token-list.tsx +9 -14
- package/src/components/manual-registration-tokens-settings-section.tsx +11 -2
- package/src/components/provisioner-token-list.tsx +12 -10
- package/src/components/provisioner-tokens-settings-section.tsx +13 -2
- package/src/components/token-settings-sections.stories.tsx +1 -1
- package/src/routes/provisioners-settings.tsx +1 -0
- package/src/routes/runners-settings.tsx +1 -0
- package/tsconfig.build.tsbuildinfo +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shipfox/client-runners",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "22.0.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/ShipfoxHQ/shipfox.git",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@swc/helpers": "^0.5.17",
|
|
29
29
|
"@tanstack/react-form": "^1.32.0",
|
|
30
|
-
"@shipfox/api-runners-dto": "
|
|
30
|
+
"@shipfox/api-runners-dto": "13.0.0",
|
|
31
31
|
"@shipfox/client-api": "6.0.1",
|
|
32
|
-
"@shipfox/client-shell": "
|
|
33
|
-
"@shipfox/client-ui": "
|
|
34
|
-
"@shipfox/react-ui": "1.
|
|
32
|
+
"@shipfox/client-shell": "22.0.0",
|
|
33
|
+
"@shipfox/client-ui": "22.0.0",
|
|
34
|
+
"@shipfox/react-ui": "2.1.0"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@tanstack/react-query": "^5.101.0",
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
ModalHeader,
|
|
16
16
|
ModalTitle,
|
|
17
17
|
} from '@shipfox/react-ui/modal';
|
|
18
|
+
import {Panel} from '@shipfox/react-ui/panel';
|
|
18
19
|
import {Skeleton} from '@shipfox/react-ui/skeleton';
|
|
19
20
|
import {
|
|
20
21
|
Table,
|
|
@@ -44,7 +45,7 @@ export function ManualRegistrationTokenList({
|
|
|
44
45
|
tokens: ManualRegistrationToken[];
|
|
45
46
|
}) {
|
|
46
47
|
return (
|
|
47
|
-
|
|
48
|
+
<Panel>
|
|
48
49
|
<div className="max-[760px]:hidden">
|
|
49
50
|
<Table className="table-fixed">
|
|
50
51
|
<TableHeader>
|
|
@@ -82,14 +83,11 @@ export function ManualRegistrationTokenList({
|
|
|
82
83
|
</Table>
|
|
83
84
|
</div>
|
|
84
85
|
<ul
|
|
85
|
-
className="hidden flex-col
|
|
86
|
+
className="hidden flex-col divide-y divide-border-neutral-base max-[760px]:flex"
|
|
86
87
|
aria-label="Manual registration tokens"
|
|
87
88
|
>
|
|
88
89
|
{tokens.map((token) => (
|
|
89
|
-
<li
|
|
90
|
-
key={token.id}
|
|
91
|
-
className="flex flex-col gap-cluster rounded-8 border border-border-neutral-base bg-background-neutral-base p-panel-compact"
|
|
92
|
-
>
|
|
90
|
+
<li key={token.id} className="flex flex-col gap-cluster p-panel-compact">
|
|
93
91
|
<div className="flex items-start justify-between gap-cluster">
|
|
94
92
|
<div className="min-w-0 flex-1">
|
|
95
93
|
<TokenName name={tokenDisplayName(token)} />
|
|
@@ -116,7 +114,7 @@ export function ManualRegistrationTokenList({
|
|
|
116
114
|
</li>
|
|
117
115
|
))}
|
|
118
116
|
</ul>
|
|
119
|
-
|
|
117
|
+
</Panel>
|
|
120
118
|
);
|
|
121
119
|
}
|
|
122
120
|
|
|
@@ -218,20 +216,17 @@ export function EmptyManualRegistrationTokens() {
|
|
|
218
216
|
icon="key2Line"
|
|
219
217
|
title="No usable manual registration tokens"
|
|
220
218
|
description="Create a token to connect a runner to this workspace."
|
|
219
|
+
variant="panel"
|
|
221
220
|
/>
|
|
222
221
|
);
|
|
223
222
|
}
|
|
224
223
|
|
|
225
224
|
export function ManualRegistrationTokenTableSkeleton() {
|
|
226
225
|
return (
|
|
227
|
-
<
|
|
228
|
-
role="status"
|
|
229
|
-
aria-label="Loading manual registration tokens"
|
|
230
|
-
className="flex flex-col gap-inline"
|
|
231
|
-
>
|
|
226
|
+
<Panel role="status" aria-label="Loading manual registration tokens" className="divide-y">
|
|
232
227
|
{[0, 1, 2].map((row) => (
|
|
233
|
-
<Skeleton key={row} className="h-44 w-full" />
|
|
228
|
+
<Skeleton key={row} className="h-44 w-full rounded-none" />
|
|
234
229
|
))}
|
|
235
|
-
</
|
|
230
|
+
</Panel>
|
|
236
231
|
);
|
|
237
232
|
}
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
ModalTitle,
|
|
10
10
|
ModalTrigger,
|
|
11
11
|
} from '@shipfox/react-ui/modal';
|
|
12
|
+
import {Panel} from '@shipfox/react-ui/panel';
|
|
12
13
|
import {Header, Text} from '@shipfox/react-ui/typography';
|
|
13
14
|
import {useState} from 'react';
|
|
14
15
|
import type {CreatedManualRegistrationToken} from '#core/token.js';
|
|
@@ -92,11 +93,19 @@ export function WorkspaceManualRegistrationTokensSettingsSection({
|
|
|
92
93
|
{tokensQuery.isPending ? <ManualRegistrationTokenTableSkeleton /> : null}
|
|
93
94
|
|
|
94
95
|
{tokensQuery.isError && tokensQuery.data === undefined ? (
|
|
95
|
-
<
|
|
96
|
+
<Panel>
|
|
97
|
+
<QueryLoadError
|
|
98
|
+
query={tokensQuery}
|
|
99
|
+
subject="manual registration tokens"
|
|
100
|
+
variant="panel"
|
|
101
|
+
/>
|
|
102
|
+
</Panel>
|
|
96
103
|
) : null}
|
|
97
104
|
|
|
98
105
|
{tokensQuery.data !== undefined && tokens.length === 0 ? (
|
|
99
|
-
<
|
|
106
|
+
<Panel>
|
|
107
|
+
<EmptyManualRegistrationTokens />
|
|
108
|
+
</Panel>
|
|
100
109
|
) : null}
|
|
101
110
|
|
|
102
111
|
{tokens.length > 0 ? (
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
ModalHeader,
|
|
17
17
|
ModalTitle,
|
|
18
18
|
} from '@shipfox/react-ui/modal';
|
|
19
|
+
import {Panel} from '@shipfox/react-ui/panel';
|
|
19
20
|
import {RelativeTime} from '@shipfox/react-ui/relative-time';
|
|
20
21
|
import {Skeleton} from '@shipfox/react-ui/skeleton';
|
|
21
22
|
import {
|
|
@@ -52,7 +53,7 @@ export function ProvisionerTokenList({
|
|
|
52
53
|
activeIds: ReadonlySet<string>;
|
|
53
54
|
}) {
|
|
54
55
|
return (
|
|
55
|
-
|
|
56
|
+
<Panel>
|
|
56
57
|
<div className="max-[760px]:hidden">
|
|
57
58
|
<Table className="table-fixed">
|
|
58
59
|
<TableHeader>
|
|
@@ -93,12 +94,12 @@ export function ProvisionerTokenList({
|
|
|
93
94
|
</TableBody>
|
|
94
95
|
</Table>
|
|
95
96
|
</div>
|
|
96
|
-
<ul
|
|
97
|
+
<ul
|
|
98
|
+
className="hidden flex-col divide-y divide-border-neutral-base max-[760px]:flex"
|
|
99
|
+
aria-label="Provisioner tokens"
|
|
100
|
+
>
|
|
97
101
|
{tokens.map((token) => (
|
|
98
|
-
<li
|
|
99
|
-
key={token.id}
|
|
100
|
-
className="flex flex-col gap-cluster rounded-8 border border-border-neutral-base bg-background-neutral-base p-panel-compact"
|
|
101
|
-
>
|
|
102
|
+
<li key={token.id} className="flex flex-col gap-cluster p-panel-compact">
|
|
102
103
|
<div className="flex items-start justify-between gap-cluster">
|
|
103
104
|
<div className="min-w-0 flex-1">
|
|
104
105
|
<TokenName name={provisionerTokenDisplayName(token)} />
|
|
@@ -131,7 +132,7 @@ export function ProvisionerTokenList({
|
|
|
131
132
|
</li>
|
|
132
133
|
))}
|
|
133
134
|
</ul>
|
|
134
|
-
|
|
135
|
+
</Panel>
|
|
135
136
|
);
|
|
136
137
|
}
|
|
137
138
|
|
|
@@ -256,16 +257,17 @@ export function EmptyProvisionerTokens() {
|
|
|
256
257
|
icon="key2Line"
|
|
257
258
|
title="No usable provisioner registration tokens"
|
|
258
259
|
description="Create a token to connect a provisioner that provisions runners on demand."
|
|
260
|
+
variant="panel"
|
|
259
261
|
/>
|
|
260
262
|
);
|
|
261
263
|
}
|
|
262
264
|
|
|
263
265
|
export function ProvisionerTokenTableSkeleton() {
|
|
264
266
|
return (
|
|
265
|
-
<
|
|
267
|
+
<Panel role="status" aria-label="Loading provisioner tokens" className="divide-y">
|
|
266
268
|
{[0, 1, 2].map((row) => (
|
|
267
|
-
<Skeleton key={row} className="h-44 w-full" />
|
|
269
|
+
<Skeleton key={row} className="h-44 w-full rounded-none" />
|
|
268
270
|
))}
|
|
269
|
-
</
|
|
271
|
+
</Panel>
|
|
270
272
|
);
|
|
271
273
|
}
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
ModalTitle,
|
|
10
10
|
ModalTrigger,
|
|
11
11
|
} from '@shipfox/react-ui/modal';
|
|
12
|
+
import {Panel} from '@shipfox/react-ui/panel';
|
|
12
13
|
import {RelativeTimeProvider} from '@shipfox/react-ui/relative-time';
|
|
13
14
|
import {Header, Text} from '@shipfox/react-ui/typography';
|
|
14
15
|
import {useMemo, useState} from 'react';
|
|
@@ -98,10 +99,20 @@ export function WorkspaceProvisionerTokensSettingsSection({workspaceId}: {worksp
|
|
|
98
99
|
{tokensQuery.isPending ? <ProvisionerTokenTableSkeleton /> : null}
|
|
99
100
|
|
|
100
101
|
{tokensQuery.isError && tokensQuery.data === undefined ? (
|
|
101
|
-
<
|
|
102
|
+
<Panel>
|
|
103
|
+
<QueryLoadError
|
|
104
|
+
query={tokensQuery}
|
|
105
|
+
subject="provisioner registration tokens"
|
|
106
|
+
variant="panel"
|
|
107
|
+
/>
|
|
108
|
+
</Panel>
|
|
102
109
|
) : null}
|
|
103
110
|
|
|
104
|
-
{tokensQuery.data !== undefined && tokens.length === 0 ?
|
|
111
|
+
{tokensQuery.data !== undefined && tokens.length === 0 ? (
|
|
112
|
+
<Panel>
|
|
113
|
+
<EmptyProvisionerTokens />
|
|
114
|
+
</Panel>
|
|
115
|
+
) : null}
|
|
105
116
|
|
|
106
117
|
{tokens.length > 0 ? (
|
|
107
118
|
<RelativeTimeProvider>
|
|
@@ -225,7 +225,7 @@ export const CreatedTokenPanels: Story = {
|
|
|
225
225
|
|
|
226
226
|
function StorySurface({children}: {children: ReactNode}) {
|
|
227
227
|
return (
|
|
228
|
-
<div className="min-h-screen bg-background-
|
|
228
|
+
<div className="min-h-screen bg-background-subtle-base p-24">
|
|
229
229
|
<div className="mx-auto flex w-full max-w-[920px] flex-col gap-32">{children}</div>
|
|
230
230
|
</div>
|
|
231
231
|
);
|
|
@@ -2,6 +2,7 @@ import {defineRoute, useActiveWorkspace} from '@shipfox/client-shell/runtime';
|
|
|
2
2
|
import {WorkspaceProvisionerTokensSettingsSection} from '#index.js';
|
|
3
3
|
|
|
4
4
|
export default defineRoute({
|
|
5
|
+
staticData: {frame: 'content'},
|
|
5
6
|
component: () => (
|
|
6
7
|
<WorkspaceProvisionerTokensSettingsSection workspaceId={useActiveWorkspace().id} />
|
|
7
8
|
),
|
|
@@ -2,6 +2,7 @@ import {defineRoute, useActiveWorkspace} from '@shipfox/client-shell/runtime';
|
|
|
2
2
|
import {WorkspaceManualRegistrationTokensSettingsSection} from '#index.js';
|
|
3
3
|
|
|
4
4
|
export default defineRoute({
|
|
5
|
+
staticData: {frame: 'content'},
|
|
5
6
|
component: () => (
|
|
6
7
|
<WorkspaceManualRegistrationTokensSettingsSection workspaceId={useActiveWorkspace().id} />
|
|
7
8
|
),
|