@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.
Files changed (33) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-type.log +0 -1
  3. package/CHANGELOG.md +34 -0
  4. package/dist/components/manual-registration-token-list.d.ts.map +1 -1
  5. package/dist/components/manual-registration-token-list.js +9 -7
  6. package/dist/components/manual-registration-token-list.js.map +1 -1
  7. package/dist/components/manual-registration-tokens-settings-section.d.ts.map +1 -1
  8. package/dist/components/manual-registration-tokens-settings-section.js +10 -4
  9. package/dist/components/manual-registration-tokens-settings-section.js.map +1 -1
  10. package/dist/components/provisioner-token-list.d.ts.map +1 -1
  11. package/dist/components/provisioner-token-list.js +9 -7
  12. package/dist/components/provisioner-token-list.js.map +1 -1
  13. package/dist/components/provisioner-tokens-settings-section.d.ts.map +1 -1
  14. package/dist/components/provisioner-tokens-settings-section.js +10 -4
  15. package/dist/components/provisioner-tokens-settings-section.js.map +1 -1
  16. package/dist/components/token-settings-sections.stories.js +1 -1
  17. package/dist/components/token-settings-sections.stories.js.map +1 -1
  18. package/dist/routes/provisioners-settings.d.ts +3 -0
  19. package/dist/routes/provisioners-settings.js +3 -0
  20. package/dist/routes/provisioners-settings.js.map +1 -1
  21. package/dist/routes/runners-settings.d.ts +3 -0
  22. package/dist/routes/runners-settings.js +3 -0
  23. package/dist/routes/runners-settings.js.map +1 -1
  24. package/dist/tsconfig.test.tsbuildinfo +1 -1
  25. package/package.json +5 -5
  26. package/src/components/manual-registration-token-list.tsx +9 -14
  27. package/src/components/manual-registration-tokens-settings-section.tsx +11 -2
  28. package/src/components/provisioner-token-list.tsx +12 -10
  29. package/src/components/provisioner-tokens-settings-section.tsx +13 -2
  30. package/src/components/token-settings-sections.stories.tsx +1 -1
  31. package/src/routes/provisioners-settings.tsx +1 -0
  32. package/src/routes/runners-settings.tsx +1 -0
  33. 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": "17.0.1",
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": "12.4.0",
30
+ "@shipfox/api-runners-dto": "13.0.0",
31
31
  "@shipfox/client-api": "6.0.1",
32
- "@shipfox/client-shell": "17.0.0",
33
- "@shipfox/client-ui": "17.0.0",
34
- "@shipfox/react-ui": "1.2.0"
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 gap-inline max-[760px]:flex"
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
- <div
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
- </div>
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
- <QueryLoadError query={tokensQuery} subject="manual registration tokens" />
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
- <EmptyManualRegistrationTokens />
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 className="hidden flex-col gap-inline max-[760px]:flex" aria-label="Provisioner tokens">
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
- <div role="status" aria-label="Loading provisioner tokens" className="flex flex-col gap-inline">
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
- </div>
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
- <QueryLoadError query={tokensQuery} subject="provisioner registration tokens" />
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 ? <EmptyProvisionerTokens /> : null}
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-neutral-background p-24">
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
  ),