@kelpie/ui 0.4.0 → 0.4.1

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 (102) hide show
  1. package/dist/api/resources/account.d.ts +5 -0
  2. package/dist/api/resources/account.d.ts.map +1 -1
  3. package/dist/api/resources/account.js +11 -0
  4. package/dist/api/resources/account.js.map +1 -1
  5. package/dist/api/resources/apiKeys.d.ts +15 -0
  6. package/dist/api/resources/apiKeys.d.ts.map +1 -0
  7. package/dist/api/resources/apiKeys.js +50 -0
  8. package/dist/api/resources/apiKeys.js.map +1 -0
  9. package/dist/app/KelpieApp.d.ts.map +1 -1
  10. package/dist/app/KelpieApp.js +3 -1
  11. package/dist/app/KelpieApp.js.map +1 -1
  12. package/dist/components/ActivitiesPanel.d.ts.map +1 -1
  13. package/dist/components/ActivitiesPanel.js +10 -7
  14. package/dist/components/ActivitiesPanel.js.map +1 -1
  15. package/dist/components/ApiKeysPanel.d.ts +20 -0
  16. package/dist/components/ApiKeysPanel.d.ts.map +1 -0
  17. package/dist/components/ApiKeysPanel.js +70 -0
  18. package/dist/components/ApiKeysPanel.js.map +1 -0
  19. package/dist/components/DecisionsPanel.d.ts.map +1 -1
  20. package/dist/components/DecisionsPanel.js +3 -1
  21. package/dist/components/DecisionsPanel.js.map +1 -1
  22. package/dist/components/NotesPanel.d.ts.map +1 -1
  23. package/dist/components/NotesPanel.js +3 -1
  24. package/dist/components/NotesPanel.js.map +1 -1
  25. package/dist/components/Shell.d.ts.map +1 -1
  26. package/dist/components/Shell.js +1 -0
  27. package/dist/components/Shell.js.map +1 -1
  28. package/dist/lib/dates.d.ts +25 -5
  29. package/dist/lib/dates.d.ts.map +1 -1
  30. package/dist/lib/dates.js +49 -20
  31. package/dist/lib/dates.js.map +1 -1
  32. package/dist/pages/DecisionsPage.d.ts.map +1 -1
  33. package/dist/pages/DecisionsPage.js +4 -2
  34. package/dist/pages/DecisionsPage.js.map +1 -1
  35. package/dist/pages/HiringPage.d.ts.map +1 -1
  36. package/dist/pages/HiringPage.js +3 -1
  37. package/dist/pages/HiringPage.js.map +1 -1
  38. package/dist/pages/PlanningPage.js +1 -1
  39. package/dist/pages/PlanningPage.js.map +1 -1
  40. package/dist/pages/account/AccountLayout.d.ts.map +1 -1
  41. package/dist/pages/account/AccountLayout.js +1 -0
  42. package/dist/pages/account/AccountLayout.js.map +1 -1
  43. package/dist/pages/account/PersonalApiKeysPage.d.ts +9 -0
  44. package/dist/pages/account/PersonalApiKeysPage.d.ts.map +1 -0
  45. package/dist/pages/account/PersonalApiKeysPage.js +14 -0
  46. package/dist/pages/account/PersonalApiKeysPage.js.map +1 -0
  47. package/dist/pages/account/PreferencesPage.js +1 -1
  48. package/dist/pages/account/PreferencesPage.js.map +1 -1
  49. package/dist/pages/account/SecurityPage.d.ts.map +1 -1
  50. package/dist/pages/account/SecurityPage.js +3 -2
  51. package/dist/pages/account/SecurityPage.js.map +1 -1
  52. package/dist/pages/admin/ApiKeysPage.d.ts +9 -0
  53. package/dist/pages/admin/ApiKeysPage.d.ts.map +1 -0
  54. package/dist/pages/admin/ApiKeysPage.js +20 -0
  55. package/dist/pages/admin/ApiKeysPage.js.map +1 -0
  56. package/dist/pages/admin/McpPage.d.ts.map +1 -1
  57. package/dist/pages/admin/McpPage.js +6 -3
  58. package/dist/pages/admin/McpPage.js.map +1 -1
  59. package/dist/pages/admin/WebhookDeliveries.d.ts.map +1 -1
  60. package/dist/pages/admin/WebhookDeliveries.js +4 -2
  61. package/dist/pages/admin/WebhookDeliveries.js.map +1 -1
  62. package/dist/pages/admin/WebhooksPage.d.ts.map +1 -1
  63. package/dist/pages/admin/WebhooksPage.js +5 -3
  64. package/dist/pages/admin/WebhooksPage.js.map +1 -1
  65. package/dist/pages/dashboard/DashboardPage.d.ts.map +1 -1
  66. package/dist/pages/dashboard/DashboardPage.js +6 -4
  67. package/dist/pages/dashboard/DashboardPage.js.map +1 -1
  68. package/dist/pages/dashboard/sections.d.ts +6 -3
  69. package/dist/pages/dashboard/sections.d.ts.map +1 -1
  70. package/dist/pages/dashboard/sections.js +6 -6
  71. package/dist/pages/dashboard/sections.js.map +1 -1
  72. package/dist/pages/forms/SubmissionsTable.d.ts.map +1 -1
  73. package/dist/pages/forms/SubmissionsTable.js +3 -1
  74. package/dist/pages/forms/SubmissionsTable.js.map +1 -1
  75. package/dist/pages/handbook/HandbookPage.d.ts.map +1 -1
  76. package/dist/pages/handbook/HandbookPage.js +3 -1
  77. package/dist/pages/handbook/HandbookPage.js.map +1 -1
  78. package/package.json +2 -2
  79. package/src/api/resources/account.ts +13 -0
  80. package/src/api/resources/apiKeys.ts +60 -0
  81. package/src/app/KelpieApp.tsx +4 -0
  82. package/src/components/ActivitiesPanel.tsx +15 -4
  83. package/src/components/ApiKeysPanel.tsx +307 -0
  84. package/src/components/DecisionsPanel.tsx +5 -2
  85. package/src/components/NotesPanel.tsx +4 -1
  86. package/src/components/Shell.tsx +1 -0
  87. package/src/lib/dates.ts +54 -20
  88. package/src/pages/DecisionsPage.tsx +6 -2
  89. package/src/pages/HiringPage.tsx +3 -1
  90. package/src/pages/PlanningPage.tsx +1 -1
  91. package/src/pages/account/AccountLayout.tsx +1 -0
  92. package/src/pages/account/PersonalApiKeysPage.tsx +27 -0
  93. package/src/pages/account/PreferencesPage.tsx +1 -1
  94. package/src/pages/account/SecurityPage.tsx +4 -1
  95. package/src/pages/admin/ApiKeysPage.tsx +43 -0
  96. package/src/pages/admin/McpPage.tsx +7 -4
  97. package/src/pages/admin/WebhookDeliveries.tsx +4 -2
  98. package/src/pages/admin/WebhooksPage.tsx +5 -3
  99. package/src/pages/dashboard/DashboardPage.tsx +14 -4
  100. package/src/pages/dashboard/sections.tsx +9 -3
  101. package/src/pages/forms/SubmissionsTable.tsx +3 -1
  102. package/src/pages/handbook/HandbookPage.tsx +3 -1
@@ -46,4 +46,9 @@ export interface ThemeControl {
46
46
  * the moment either is clicked.
47
47
  */
48
48
  export declare function useTheme(): ThemeControl;
49
+ /**
50
+ * The zone dates render in: the account's own choice, falling back to the
51
+ * workspace's while either query is still loading.
52
+ */
53
+ export declare function useTimezone(): string;
49
54
  //# sourceMappingURL=account.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/api/resources/account.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,6BAA6B,EAC9B,MAAM,iBAAiB,CAAA;AAOxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAgBpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED,wBAAgB,UAAU,IAAI,YAAY,CAQzC;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAe9E;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED,wBAAgB,qBAAqB,IAAI,uBAAuB,CAQ/D;AAED,wBAAgB,2BAA2B,IAAI,cAAc,CAC3D,6BAA6B,EAC7B,kBAAkB,CACnB,CAqBA;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IAC5C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,IAAI,oBAAoB,CAYzD;AAED,wBAAgB,uBAAuB,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAWtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAY7E;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,IAAI,YAAY,CAkCvC"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/api/resources/account.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,OAAO,EACP,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,6BAA6B,EAC9B,MAAM,iBAAiB,CAAA;AAQxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAiBpD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAA;IACrC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED,wBAAgB,UAAU,IAAI,YAAY,CAQzC;AAED,wBAAgB,gBAAgB,IAAI,cAAc,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAe9E;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACpD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED,wBAAgB,qBAAqB,IAAI,uBAAuB,CAQ/D;AAED,wBAAgB,2BAA2B,IAAI,cAAc,CAC3D,6BAA6B,EAC7B,kBAAkB,CACnB,CAqBA;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;IAC5C,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC7B;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,IAAI,oBAAoB,CAYzD;AAED,wBAAgB,uBAAuB,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAWtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAY7E;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAA;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,IAAI,YAAY,CAkCvC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC"}
@@ -1,10 +1,12 @@
1
1
  import { accountPreferencesSchema, accountSchema, accountSessionSchema, changePasswordBody, updateAccountBody, updateAccountPreferencesBody, } from '@kelpie/schemas';
2
2
  import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
3
3
  import { useEffect, useState } from 'react';
4
+ import { resolveTimezone } from '../../lib/dates.js';
4
5
  import { applyTheme, getStoredTheme, setStoredTheme, watchSystemTheme } from '../../lib/theme.js';
5
6
  import { useApiClient } from '../context.js';
6
7
  import { toError } from '../errors.js';
7
8
  import { asMutationResult } from './mutation.js';
9
+ import { useWorkspace } from './workspace.js';
8
10
  /**
9
11
  * The signed-in person, as the `/account/*` pages read and write them.
10
12
  *
@@ -143,4 +145,13 @@ export function useTheme() {
143
145
  }
144
146
  return { theme, setTheme };
145
147
  }
148
+ /**
149
+ * The zone dates render in: the account's own choice, falling back to the
150
+ * workspace's while either query is still loading.
151
+ */
152
+ export function useTimezone() {
153
+ const { preferences } = useAccountPreferences();
154
+ const { workspace } = useWorkspace();
155
+ return resolveTimezone(preferences?.timezone, workspace?.timezone);
156
+ }
146
157
  //# sourceMappingURL=account.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/api/resources/account.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/api/resources/account.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ApiKey, ApiKeyKind, CreateApiKeyInput, CreatedApiKey } from '@kelpie/schemas';
2
+ import type { MutationResult, RecordListResult } from '../resource.ts';
3
+ export declare function useApiKeys(kind: ApiKeyKind): RecordListResult<ApiKey>;
4
+ /**
5
+ * Mints a key.
6
+ *
7
+ * Written out rather than taken from `createResourceHooks`, because the `201`
8
+ * is the only response that ever carries the secret and the shared hook decodes
9
+ * with the schema that has no such field. The secret has to survive the decode:
10
+ * it cannot be fetched again, so a page that dropped it would have created a key
11
+ * nobody can use.
12
+ */
13
+ export declare function useCreateApiKey(): MutationResult<CreateApiKeyInput, CreatedApiKey>;
14
+ export declare function useRevokeApiKey(): MutationResult<string, void>;
15
+ //# sourceMappingURL=apiKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiKeys.d.ts","sourceRoot":"","sources":["../../../src/api/resources/apiKeys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAK3F,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAetE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAErE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,cAAc,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAYlF;AAED,wBAAgB,eAAe,IAAI,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAW9D"}
@@ -0,0 +1,50 @@
1
+ import { apiKeySchema, createApiKeyBody, createdApiKeySchema } from '@kelpie/schemas';
2
+ import { useMutation, useQueryClient } from '@tanstack/react-query';
3
+ import { useApiClient } from '../context.js';
4
+ import { createReadOnlyResourceHooks } from '../resource.js';
5
+ import { asMutationResult } from './mutation.js';
6
+ /**
7
+ * `/v1/api-keys`: workspace keys and personal keys, one endpoint told apart by
8
+ * `kind`. `kind` is required on every list request — the server answers `422`
9
+ * without it — so each page asks for exactly the one kind it manages.
10
+ */
11
+ const { useList } = createReadOnlyResourceHooks({
12
+ name: 'apiKeys',
13
+ path: '/api-keys',
14
+ decode: apiKeySchema.parse,
15
+ });
16
+ export function useApiKeys(kind) {
17
+ return useList({ kind });
18
+ }
19
+ /**
20
+ * Mints a key.
21
+ *
22
+ * Written out rather than taken from `createResourceHooks`, because the `201`
23
+ * is the only response that ever carries the secret and the shared hook decodes
24
+ * with the schema that has no such field. The secret has to survive the decode:
25
+ * it cannot be fetched again, so a page that dropped it would have created a key
26
+ * nobody can use.
27
+ */
28
+ export function useCreateApiKey() {
29
+ const client = useApiClient();
30
+ const queryClient = useQueryClient();
31
+ const mutation = useMutation({
32
+ mutationFn: (input) => client.post('/api-keys', createApiKeyBody(input), createdApiKeySchema.parse),
33
+ onSettled: () => {
34
+ void queryClient.invalidateQueries({ queryKey: ['apiKeys', 'list'] });
35
+ },
36
+ });
37
+ return asMutationResult(mutation);
38
+ }
39
+ export function useRevokeApiKey() {
40
+ const client = useApiClient();
41
+ const queryClient = useQueryClient();
42
+ const mutation = useMutation({
43
+ mutationFn: (id) => client.delete(`/api-keys/${id}`),
44
+ onSettled: () => {
45
+ void queryClient.invalidateQueries({ queryKey: ['apiKeys', 'list'] });
46
+ },
47
+ });
48
+ return asMutationResult(mutation);
49
+ }
50
+ //# sourceMappingURL=apiKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiKeys.js","sourceRoot":"","sources":["../../../src/api/resources/apiKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;GAIG;AAEH,MAAM,EAAE,OAAO,EAAE,GAAG,2BAA2B,CAAS;IACtD,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,YAAY,CAAC,KAAK;CAC3B,CAAC,CAAA;AAEF,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,OAAO,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,CAAC,KAAwB,EAAE,EAAE,CACvC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC;QAC9E,SAAS,EAAE,GAAG,EAAE;YACd,KAAK,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QACvE,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAA;IAC7B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IACpC,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,UAAU,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;QAC5D,SAAS,EAAE,GAAG,EAAE;YACd,KAAK,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QACvE,CAAC;KACF,CAAC,CAAA;IAEF,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAA;AACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"KelpieApp.d.ts","sourceRoot":"","sources":["../../src/app/KelpieApp.tsx"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D;;;;;;;;;GASG;AAEH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;IACjC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUpF"}
1
+ {"version":3,"file":"KelpieApp.d.ts","sourceRoot":"","sources":["../../src/app/KelpieApp.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D;;;;;;;;;GASG;AAEH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAA;IACjC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAUpF"}
@@ -27,9 +27,11 @@ import { RaiseDetail } from '../pages/RaiseDetail.js';
27
27
  import { RaiseStageSettingsPage } from '../pages/RaiseStageSettingsPage.js';
28
28
  import { RoleDetail } from '../pages/RoleDetail.js';
29
29
  import { AccountLayout } from '../pages/account/AccountLayout.js';
30
+ import { PersonalApiKeysPage } from '../pages/account/PersonalApiKeysPage.js';
30
31
  import { PreferencesPage } from '../pages/account/PreferencesPage.js';
31
32
  import { ProfilePage } from '../pages/account/ProfilePage.js';
32
33
  import { SecurityPage } from '../pages/account/SecurityPage.js';
34
+ import { ApiKeysPage } from '../pages/admin/ApiKeysPage.js';
33
35
  import { DataPage } from '../pages/admin/DataPage.js';
34
36
  import { McpPage } from '../pages/admin/McpPage.js';
35
37
  import { ModulesPage } from '../pages/admin/ModulesPage.js';
@@ -69,6 +71,6 @@ function AppRoutes() {
69
71
  const moduleRoutes = useModuleRoutes();
70
72
  const accountRoutes = moduleRoutes.filter(isAccountRoute);
71
73
  const shellRoutes = moduleRoutes.filter((route) => !isAccountRoute(route));
72
- return (_jsxs(Routes, { children: [_jsx(Route, { path: "/login", element: _jsx(SignInPage, {}) }), _jsx(Route, { path: "/signup", element: _jsx(SignUpPage, {}) }), _jsx(Route, { path: "/forgot-password", element: _jsx(ForgotPasswordPage, {}) }), _jsx(Route, { path: "/reset-password", element: _jsx(ResetPasswordPage, {}) }), _jsx(Route, { path: "/join", element: _jsx(JoinPage, {}) }), _jsx(Route, { path: "/onboarding/workspace", element: _jsx(WorkspaceStepPage, {}) }), _jsxs(Route, { element: _jsx(SessionGate, {}), children: [_jsx(Route, { path: "/onboarding/invites", element: _jsx(InvitesStepPage, {}) }), _jsx(Route, { path: "/onboarding/handbook", element: _jsx(HandbookStepPage, {}) }), _jsxs(Route, { element: _jsx(Shell, {}), children: [_jsx(Route, { index: true, element: _jsx(Navigate, { to: "/dashboard", replace: true }) }), _jsx(Route, { path: "dashboard", element: _jsx(DashboardPage, {}) }), _jsx(Route, { path: "search", element: _jsx(SearchPage, {}) }), _jsx(Route, { path: "people", element: _jsx(PeoplePage, {}) }), _jsx(Route, { path: "people/:id", element: _jsx(PersonDetail, {}) }), _jsx(Route, { path: "hiring", element: _jsx(HiringPage, {}) }), _jsx(Route, { path: "hiring/:id", element: _jsx(RoleDetail, {}) }), _jsx(Route, { path: "companies", element: _jsx(CompaniesPage, {}) }), _jsx(Route, { path: "companies/:id", element: _jsx(CompanyDetail, {}) }), _jsx(Route, { path: "deals", element: _jsx(DealsPage, {}) }), _jsx(Route, { path: "deals/settings", element: _jsx(DealStageSettingsPage, {}) }), _jsx(Route, { path: "deals/:id", element: _jsx(DealDetail, {}) }), _jsx(Route, { path: "opportunities", element: _jsx(OpportunitiesPage, {}) }), _jsx(Route, { path: "opportunities/settings", element: _jsx(OpportunityStageSettingsPage, {}) }), _jsx(Route, { path: "opportunities/:id", element: _jsx(OpportunityDetail, {}) }), _jsx(Route, { path: "fundraising", element: _jsx(FundraisingPage, {}) }), _jsx(Route, { path: "fundraising/settings", element: _jsx(RaiseStageSettingsPage, {}) }), _jsx(Route, { path: "fundraising/:id", element: _jsx(RaiseDetail, {}) }), _jsx(Route, { path: "partnerships", element: _jsx(PartnershipsPage, {}) }), _jsx(Route, { path: "partnerships/settings", element: _jsx(PartnershipStageSettingsPage, {}) }), _jsx(Route, { path: "partnerships/:id", element: _jsx(PartnershipDetail, {}) }), _jsx(Route, { path: "planning", element: _jsx(PlanningPage, {}) }), _jsx(Route, { path: "decisions", element: _jsx(DecisionsPage, {}) }), _jsx(Route, { path: "forms", element: _jsx(FormsPage, {}) }), _jsx(Route, { path: "forms/:id", element: _jsx(FormDetail, {}) }), _jsx(Route, { path: "handbook", element: _jsx(HandbookLayout, {}) }), _jsx(Route, { path: "handbook/:pageId", element: _jsx(HandbookLayout, {}) }), _jsx(Route, { path: "admin/workspace", element: _jsx(WorkspaceSettingsPage, {}) }), _jsx(Route, { path: "admin/team", element: _jsx(TeamPage, {}) }), _jsx(Route, { path: "admin/data", element: _jsx(DataPage, {}) }), _jsx(Route, { path: "admin/mcp", element: _jsx(McpPage, {}) }), _jsx(Route, { path: "admin/webhooks", element: _jsx(WebhooksPage, {}) }), _jsx(Route, { path: "admin/modules", element: _jsx(ModulesPage, {}) }), _jsxs(Route, { path: "account", element: _jsx(AccountLayout, {}), children: [_jsx(Route, { index: true, element: _jsx(Navigate, { to: "/account/profile", replace: true }) }), _jsx(Route, { path: "profile", element: _jsx(ProfilePage, {}) }), _jsx(Route, { path: "security", element: _jsx(SecurityPage, {}) }), _jsx(Route, { path: "preferences", element: _jsx(PreferencesPage, {}) }), accountRoutes.map((route) => (_jsx(Route, { path: route.path.slice(ACCOUNT_PREFIX.length), element: route.element }, route.path)))] }), shellRoutes.map((route) => (_jsx(Route, { path: route.path, element: route.element }, route.path))), _jsx(Route, { path: "*", element: _jsx(NotFoundPage, {}) })] })] })] }));
74
+ return (_jsxs(Routes, { children: [_jsx(Route, { path: "/login", element: _jsx(SignInPage, {}) }), _jsx(Route, { path: "/signup", element: _jsx(SignUpPage, {}) }), _jsx(Route, { path: "/forgot-password", element: _jsx(ForgotPasswordPage, {}) }), _jsx(Route, { path: "/reset-password", element: _jsx(ResetPasswordPage, {}) }), _jsx(Route, { path: "/join", element: _jsx(JoinPage, {}) }), _jsx(Route, { path: "/onboarding/workspace", element: _jsx(WorkspaceStepPage, {}) }), _jsxs(Route, { element: _jsx(SessionGate, {}), children: [_jsx(Route, { path: "/onboarding/invites", element: _jsx(InvitesStepPage, {}) }), _jsx(Route, { path: "/onboarding/handbook", element: _jsx(HandbookStepPage, {}) }), _jsxs(Route, { element: _jsx(Shell, {}), children: [_jsx(Route, { index: true, element: _jsx(Navigate, { to: "/dashboard", replace: true }) }), _jsx(Route, { path: "dashboard", element: _jsx(DashboardPage, {}) }), _jsx(Route, { path: "search", element: _jsx(SearchPage, {}) }), _jsx(Route, { path: "people", element: _jsx(PeoplePage, {}) }), _jsx(Route, { path: "people/:id", element: _jsx(PersonDetail, {}) }), _jsx(Route, { path: "hiring", element: _jsx(HiringPage, {}) }), _jsx(Route, { path: "hiring/:id", element: _jsx(RoleDetail, {}) }), _jsx(Route, { path: "companies", element: _jsx(CompaniesPage, {}) }), _jsx(Route, { path: "companies/:id", element: _jsx(CompanyDetail, {}) }), _jsx(Route, { path: "deals", element: _jsx(DealsPage, {}) }), _jsx(Route, { path: "deals/settings", element: _jsx(DealStageSettingsPage, {}) }), _jsx(Route, { path: "deals/:id", element: _jsx(DealDetail, {}) }), _jsx(Route, { path: "opportunities", element: _jsx(OpportunitiesPage, {}) }), _jsx(Route, { path: "opportunities/settings", element: _jsx(OpportunityStageSettingsPage, {}) }), _jsx(Route, { path: "opportunities/:id", element: _jsx(OpportunityDetail, {}) }), _jsx(Route, { path: "fundraising", element: _jsx(FundraisingPage, {}) }), _jsx(Route, { path: "fundraising/settings", element: _jsx(RaiseStageSettingsPage, {}) }), _jsx(Route, { path: "fundraising/:id", element: _jsx(RaiseDetail, {}) }), _jsx(Route, { path: "partnerships", element: _jsx(PartnershipsPage, {}) }), _jsx(Route, { path: "partnerships/settings", element: _jsx(PartnershipStageSettingsPage, {}) }), _jsx(Route, { path: "partnerships/:id", element: _jsx(PartnershipDetail, {}) }), _jsx(Route, { path: "planning", element: _jsx(PlanningPage, {}) }), _jsx(Route, { path: "decisions", element: _jsx(DecisionsPage, {}) }), _jsx(Route, { path: "forms", element: _jsx(FormsPage, {}) }), _jsx(Route, { path: "forms/:id", element: _jsx(FormDetail, {}) }), _jsx(Route, { path: "handbook", element: _jsx(HandbookLayout, {}) }), _jsx(Route, { path: "handbook/:pageId", element: _jsx(HandbookLayout, {}) }), _jsx(Route, { path: "admin/workspace", element: _jsx(WorkspaceSettingsPage, {}) }), _jsx(Route, { path: "admin/team", element: _jsx(TeamPage, {}) }), _jsx(Route, { path: "admin/data", element: _jsx(DataPage, {}) }), _jsx(Route, { path: "admin/api-keys", element: _jsx(ApiKeysPage, {}) }), _jsx(Route, { path: "admin/mcp", element: _jsx(McpPage, {}) }), _jsx(Route, { path: "admin/webhooks", element: _jsx(WebhooksPage, {}) }), _jsx(Route, { path: "admin/modules", element: _jsx(ModulesPage, {}) }), _jsxs(Route, { path: "account", element: _jsx(AccountLayout, {}), children: [_jsx(Route, { index: true, element: _jsx(Navigate, { to: "/account/profile", replace: true }) }), _jsx(Route, { path: "profile", element: _jsx(ProfilePage, {}) }), _jsx(Route, { path: "security", element: _jsx(SecurityPage, {}) }), _jsx(Route, { path: "preferences", element: _jsx(PreferencesPage, {}) }), _jsx(Route, { path: "api-keys", element: _jsx(PersonalApiKeysPage, {}) }), accountRoutes.map((route) => (_jsx(Route, { path: route.path.slice(ACCOUNT_PREFIX.length), element: route.element }, route.path)))] }), shellRoutes.map((route) => (_jsx(Route, { path: route.path, element: route.element }, route.path))), _jsx(Route, { path: "*", element: _jsx(NotFoundPage, {}) })] })] })] }));
73
75
  }
74
76
  //# sourceMappingURL=KelpieApp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KelpieApp.js","sourceRoot":"","sources":["../../src/app/KelpieApp.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KelpieApp.js","sourceRoot":"","sources":["../../src/app/KelpieApp.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActivitiesPanel.d.ts","sourceRoot":"","sources":["../../src/components/ActivitiesPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAQ/E;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAgDD,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,QAAQ,GACT,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgD1C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,QAAQ,GACT,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA6B1C"}
1
+ {"version":3,"file":"ActivitiesPanel.d.ts","sourceRoot":"","sources":["../../src/components/ActivitiesPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAS/E;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAoDD,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,QAAQ,GACT,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkD1C;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,QAAQ,GACT,EAAE,oBAAoB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA+B1C"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useTimezone } from '../api/resources/account.js';
2
3
  import { useActivities } from '../api/resources/activities.js';
3
4
  import { useMembers } from '../api/resources/members.js';
4
5
  import { formatRelativeTime, monthLabel } from '../lib/dates.js';
@@ -26,10 +27,10 @@ const TARGET_TYPE_LABELS = {
26
27
  candidate: 'Candidate',
27
28
  };
28
29
  /** Consecutive runs, not a map: the list is already ordered, so a month never recurs. */
29
- function groupByMonth(activities, now) {
30
+ function groupByMonth(activities, timezone, now) {
30
31
  const groups = [];
31
32
  for (const activity of activities) {
32
- const label = monthLabel(activity.createdAt, now);
33
+ const label = monthLabel(activity.createdAt, timezone, now);
33
34
  const last = groups.at(-1);
34
35
  if (last?.label === label) {
35
36
  last.items.push(activity);
@@ -43,8 +44,9 @@ function groupByMonth(activities, now) {
43
44
  export function ActivitiesPanel({ targetType, targetId, }) {
44
45
  const activities = useActivities({ targetType, targetId });
45
46
  const members = useMembers();
46
- const groups = groupByMonth(activities.records, new Date());
47
- return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Activity" }), activities.error !== null && _jsx(ErrorPanel, { error: activities.error }), activities.isLoading && _jsx("p", { className: "text-[13px] text-ink-faint", children: "Loading activity\u2026" }), !activities.isLoading && activities.records.length === 0 && activities.error === null && (_jsx("p", { className: "text-[13px] text-ink-faint", children: "No activity yet." })), _jsx("div", { className: "space-y-4", children: groups.map((group) => (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-[12px] font-semibold text-ink", children: group.label }), _jsx("ol", { className: "overflow-hidden rounded-md border border-border", children: group.items.map((activity, index) => (_jsx(ActivityEvent, { activity: activity, actorName: actorNameFor(activity, members.nameById), contextType: targetType, contextId: targetId, isLast: index === group.items.length - 1 }, activity.id))) })] }, group.label))) }), activities.hasMore && (_jsx("button", { type: "button", onClick: activities.loadMore, disabled: activities.isLoadingMore, className: "mt-3 rounded-md border border-border px-3 py-1.5 text-[12px] font-medium text-ink-muted transition hover:border-border-strong hover:text-ink", children: activities.isLoadingMore ? 'Loading…' : 'Load more' }))] }));
47
+ const timezone = useTimezone();
48
+ const groups = groupByMonth(activities.records, timezone, new Date());
49
+ return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Activity" }), activities.error !== null && _jsx(ErrorPanel, { error: activities.error }), activities.isLoading && _jsx("p", { className: "text-[13px] text-ink-faint", children: "Loading activity\u2026" }), !activities.isLoading && activities.records.length === 0 && activities.error === null && (_jsx("p", { className: "text-[13px] text-ink-faint", children: "No activity yet." })), _jsx("div", { className: "space-y-4", children: groups.map((group) => (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-[12px] font-semibold text-ink", children: group.label }), _jsx("ol", { className: "overflow-hidden rounded-md border border-border", children: group.items.map((activity, index) => (_jsx(ActivityEvent, { activity: activity, actorName: actorNameFor(activity, members.nameById), contextType: targetType, contextId: targetId, isLast: index === group.items.length - 1, timezone: timezone }, activity.id))) })] }, group.label))) }), activities.hasMore && (_jsx("button", { type: "button", onClick: activities.loadMore, disabled: activities.isLoadingMore, className: "mt-3 rounded-md border border-border px-3 py-1.5 text-[12px] font-medium text-ink-muted transition hover:border-border-strong hover:text-ink", children: activities.isLoadingMore ? 'Loading…' : 'Load more' }))] }));
48
50
  }
49
51
  /**
50
52
  * The single most recent event, for a record's Overview tab.
@@ -55,8 +57,9 @@ export function ActivitiesPanel({ targetType, targetId, }) {
55
57
  export function LatestActivity({ targetType, targetId, }) {
56
58
  const activities = useActivities({ targetType, targetId });
57
59
  const members = useMembers();
60
+ const timezone = useTimezone();
58
61
  const latest = activities.records[0];
59
- return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Latest activity" }), activities.error !== null && _jsx(ErrorPanel, { error: activities.error }), activities.isLoading && _jsx("p", { className: "text-[13px] text-ink-faint", children: "Loading activity\u2026" }), !activities.isLoading && latest === undefined && activities.error === null && (_jsx("p", { className: "text-[13px] text-ink-faint", children: "No activity yet." })), latest !== undefined && (_jsx("ol", { className: "overflow-hidden rounded-md border border-border", children: _jsx(ActivityEvent, { activity: latest, actorName: actorNameFor(latest, members.nameById), contextType: targetType, contextId: targetId, isLast: true }) }))] }));
62
+ return (_jsxs("section", { children: [_jsx(SectionHeader, { title: "Latest activity" }), activities.error !== null && _jsx(ErrorPanel, { error: activities.error }), activities.isLoading && _jsx("p", { className: "text-[13px] text-ink-faint", children: "Loading activity\u2026" }), !activities.isLoading && latest === undefined && activities.error === null && (_jsx("p", { className: "text-[13px] text-ink-faint", children: "No activity yet." })), latest !== undefined && (_jsx("ol", { className: "overflow-hidden rounded-md border border-border", children: _jsx(ActivityEvent, { activity: latest, actorName: actorNameFor(latest, members.nameById), contextType: targetType, contextId: targetId, isLast: true, timezone: timezone }) }))] }));
60
63
  }
61
64
  /**
62
65
  * Exactly one of the two actor columns is set. `actorLabel` carries the display
@@ -68,8 +71,8 @@ function actorNameFor(activity, nameById) {
68
71
  }
69
72
  return nameById.get(activity.actorMemberId) ?? 'Unknown';
70
73
  }
71
- function ActivityEvent({ activity, actorName, contextType, contextId, isLast, }) {
74
+ function ActivityEvent({ activity, actorName, contextType, contextId, isLast, timezone, }) {
72
75
  const isRolledUp = activity.targetType !== contextType || activity.targetId !== contextId;
73
- return (_jsxs("li", { className: "flex gap-2 border-b border-border px-4 py-3 last:border-0", children: [_jsxs("div", { className: "relative flex w-5 shrink-0 justify-center", children: [!isLast && (_jsx("span", { "aria-hidden": true, className: "absolute top-5 bottom-[-12px] left-1/2 w-px -translate-x-1/2 bg-border" })), _jsx("div", { className: "relative z-10 flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-[9px] font-semibold tracking-wide text-ink-muted uppercase", title: activity.kind, children: KIND_GLYPHS[activity.kind] })] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-3", children: [_jsxs("p", { className: "min-w-0 text-[12px] leading-snug text-ink", children: [_jsx("span", { className: "font-semibold", children: actorName }), ' ', _jsx("span", { className: "text-ink-muted", children: activity.action })] }), _jsx("time", { dateTime: activity.createdAt.toISOString(), className: "shrink-0 text-[11px] text-ink-faint", children: formatRelativeTime(activity.createdAt) })] }), isRolledUp && (_jsxs("p", { className: "text-[11px] leading-snug text-ink-faint", children: ["on ", _jsx("span", { className: "text-ink-muted", children: TARGET_TYPE_LABELS[activity.targetType] })] })), activity.detail !== null && (_jsx("p", { className: "text-[11px] leading-snug text-ink-faint", children: activity.detail }))] })] }));
76
+ return (_jsxs("li", { className: "flex gap-2 border-b border-border px-4 py-3 last:border-0", children: [_jsxs("div", { className: "relative flex w-5 shrink-0 justify-center", children: [!isLast && (_jsx("span", { "aria-hidden": true, className: "absolute top-5 bottom-[-12px] left-1/2 w-px -translate-x-1/2 bg-border" })), _jsx("div", { className: "relative z-10 flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-[9px] font-semibold tracking-wide text-ink-muted uppercase", title: activity.kind, children: KIND_GLYPHS[activity.kind] })] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-3", children: [_jsxs("p", { className: "min-w-0 text-[12px] leading-snug text-ink", children: [_jsx("span", { className: "font-semibold", children: actorName }), ' ', _jsx("span", { className: "text-ink-muted", children: activity.action })] }), _jsx("time", { dateTime: activity.createdAt.toISOString(), className: "shrink-0 text-[11px] text-ink-faint", children: formatRelativeTime(activity.createdAt, timezone) })] }), isRolledUp && (_jsxs("p", { className: "text-[11px] leading-snug text-ink-faint", children: ["on ", _jsx("span", { className: "text-ink-muted", children: TARGET_TYPE_LABELS[activity.targetType] })] })), activity.detail !== null && (_jsx("p", { className: "text-[11px] leading-snug text-ink-faint", children: activity.detail }))] })] }));
74
77
  }
75
78
  //# sourceMappingURL=ActivitiesPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActivitiesPanel.js","sourceRoot":"","sources":["../../src/components/ActivitiesPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActivitiesPanel.js","sourceRoot":"","sources":["../../src/components/ActivitiesPanel.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AAsBnD,wEAAwE;AACxE,MAAM,WAAW,GAA2C;IAC1D,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,MAAM,kBAAkB,GAA+C;IACrE,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;CACvB,CAAA;AAOD,yFAAyF;AACzF,SAAS,YAAY,CACnB,UAA+B,EAC/B,QAAgB,EAChB,GAAS;IAET,MAAM,MAAM,GAA2C,EAAE,CAAA;IAEzD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAA;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1B,IAAI,IAAI,EAAE,KAAK,KAAK,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,UAAU,EACV,QAAQ,GACa;IACrB,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IAErE,OAAO,CACL,8BACE,KAAC,aAAa,IAAC,KAAK,EAAC,UAAU,GAAG,EAEjC,UAAU,CAAC,KAAK,KAAK,IAAI,IAAI,KAAC,UAAU,IAAC,KAAK,EAAE,UAAU,CAAC,KAAK,GAAI,EACpE,UAAU,CAAC,SAAS,IAAI,YAAG,SAAS,EAAC,4BAA4B,uCAAsB,EAEvF,CAAC,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,IAAI,CACxF,YAAG,SAAS,EAAC,4BAA4B,iCAAqB,CAC/D,EAED,cAAK,SAAS,EAAC,WAAW,YACvB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACrB,0BACE,aAAI,SAAS,EAAC,yCAAyC,YAAE,KAAK,CAAC,KAAK,GAAM,EAC1E,aAAI,SAAS,EAAC,iDAAiD,YAC5D,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CACpC,KAAC,aAAa,IAEZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EACnD,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,QAAQ,EACnB,MAAM,EAAE,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EACxC,QAAQ,EAAE,QAAQ,IANb,QAAQ,CAAC,EAAE,CAOhB,CACH,CAAC,GACC,KAdG,KAAK,CAAC,KAAK,CAef,CACP,CAAC,GACE,EAEL,UAAU,CAAC,OAAO,IAAI,CACrB,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,CAAC,QAAQ,EAC5B,QAAQ,EAAE,UAAU,CAAC,aAAa,EAClC,SAAS,EAAC,8IAA8I,YAEvJ,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,GAC7C,CACV,IACO,CACX,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,UAAU,EACV,QAAQ,GACa;IACrB,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAA;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAEpC,OAAO,CACL,8BACE,KAAC,aAAa,IAAC,KAAK,EAAC,iBAAiB,GAAG,EAExC,UAAU,CAAC,KAAK,KAAK,IAAI,IAAI,KAAC,UAAU,IAAC,KAAK,EAAE,UAAU,CAAC,KAAK,GAAI,EACpE,UAAU,CAAC,SAAS,IAAI,YAAG,SAAS,EAAC,4BAA4B,uCAAsB,EAEvF,CAAC,UAAU,CAAC,SAAS,IAAI,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,IAAI,IAAI,CAC7E,YAAG,SAAS,EAAC,4BAA4B,iCAAqB,CAC/D,EAEA,MAAM,KAAK,SAAS,IAAI,CACvB,aAAI,SAAS,EAAC,iDAAiD,YAC7D,KAAC,aAAa,IACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,EACjD,WAAW,EAAE,UAAU,EACvB,SAAS,EAAE,QAAQ,EACnB,MAAM,QACN,QAAQ,EAAE,QAAQ,GAClB,GACC,CACN,IACO,CACX,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,QAAkB,EAAE,QAAqC;IAC7E,IAAI,QAAQ,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAA;IACxC,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAA;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,EACrB,QAAQ,EACR,SAAS,EACT,WAAW,EACX,SAAS,EACT,MAAM,EACN,QAAQ,GAQT;IACC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,KAAK,WAAW,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,CAAA;IAEzF,OAAO,CACL,cAAI,SAAS,EAAC,2DAA2D,aACvE,eAAK,SAAS,EAAC,2CAA2C,aACvD,CAAC,MAAM,IAAI,CACV,oCAEE,SAAS,EAAC,wEAAwE,GAClF,CACH,EACD,cACE,SAAS,EAAC,gKAAgK,EAC1K,KAAK,EAAE,QAAQ,CAAC,IAAI,YAEnB,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GACvB,IACF,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAK,SAAS,EAAC,2CAA2C,aACxD,aAAG,SAAS,EAAC,2CAA2C,aACtD,eAAM,SAAS,EAAC,eAAe,YAAE,SAAS,GAAQ,EAAC,GAAG,EACtD,eAAM,SAAS,EAAC,gBAAgB,YAAE,QAAQ,CAAC,MAAM,GAAQ,IACvD,EACJ,eACE,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,EAC1C,SAAS,EAAC,qCAAqC,YAE9C,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,GAC5C,IACH,EACL,UAAU,IAAI,CACb,aAAG,SAAS,EAAC,yCAAyC,oBACjD,eAAM,SAAS,EAAC,gBAAgB,YAAE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAQ,IAClF,CACL,EACA,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,CAC3B,YAAG,SAAS,EAAC,yCAAyC,YAAE,QAAQ,CAAC,MAAM,GAAK,CAC7E,IACG,IACH,CACN,CAAA;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ApiKeyKind } from '@kelpie/schemas';
2
+ /**
3
+ * The create/list/revoke flow shared by workspace keys (`/admin/api-keys`) and
4
+ * personal keys (`/account/api-keys`).
5
+ *
6
+ * `kind` and the three strings below are the only difference between the two
7
+ * pages, the same way `KanbanBoard` takes a `kind` for Deals versus
8
+ * Opportunities. Who may reach this component at all — the admin gate on the
9
+ * workspace page, none on the personal page — is the caller's decision; the API
10
+ * enforces its own half regardless.
11
+ */
12
+ export interface ApiKeysPanelProps {
13
+ readonly kind: ApiKeyKind;
14
+ /** Shown in the create form's name field, e.g. "CI pipeline" or "Laptop Claude". */
15
+ readonly namePlaceholder: string;
16
+ readonly createTitle: string;
17
+ readonly emptyMessage: string;
18
+ }
19
+ export declare function ApiKeysPanel({ kind, namePlaceholder, createTitle, emptyMessage, }: ApiKeysPanelProps): React.JSX.Element;
20
+ //# sourceMappingURL=ApiKeysPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiKeysPanel.d.ts","sourceRoot":"","sources":["../../src/components/ApiKeysPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,UAAU,EAAiB,MAAM,iBAAiB,CAAA;AAUxE;;;;;;;;;GASG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,oFAAoF;IACpF,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,eAAe,EACf,WAAW,EACX,YAAY,GACb,EAAE,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA8DvC"}
@@ -0,0 +1,70 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { useTimezone } from '../api/resources/account.js';
4
+ import { useApiKeys, useCreateApiKey, useRevokeApiKey } from '../api/resources/apiKeys.js';
5
+ import { formatDate } from '../lib/dates.js';
6
+ import { CopyButton } from './CopyButton.js';
7
+ import { ErrorPanel, LoadingPanel } from './QueryState.js';
8
+ export function ApiKeysPanel({ kind, namePlaceholder, createTitle, emptyMessage, }) {
9
+ const { records, isLoading, error } = useApiKeys(kind);
10
+ const revokeApiKey = useRevokeApiKey();
11
+ const [showModal, setShowModal] = useState(false);
12
+ const [minted, setMinted] = useState(null);
13
+ return (_jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "flex justify-end", children: _jsx("button", { type: "button", onClick: () => {
14
+ setShowModal(true);
15
+ }, className: "shrink-0 rounded-md bg-accent px-3.5 py-2 text-[12px] font-semibold text-accent-fg transition hover:bg-accent-hover", children: "Create key" }) }), minted !== null && (_jsx(SecretOnce, { apiKey: minted, onDismiss: () => {
16
+ setMinted(null);
17
+ } })), error !== null && _jsx(ErrorPanel, { error: error }), isLoading ? (_jsx(LoadingPanel, { label: "Loading API keys\u2026" })) : (_jsx(ApiKeyTable, { keys: records, emptyMessage: emptyMessage, onRevoke: (id) => {
18
+ revokeApiKey.run(id);
19
+ }, isRevoking: revokeApiKey.isPending })), revokeApiKey.error !== null && _jsx(ErrorPanel, { error: revokeApiKey.error }), showModal && (_jsx(CreateKeyModal, { kind: kind, title: createTitle, namePlaceholder: namePlaceholder, onCreated: (key) => {
20
+ setShowModal(false);
21
+ setMinted(key);
22
+ }, onCancel: () => {
23
+ setShowModal(false);
24
+ } }))] }));
25
+ }
26
+ function CreateKeyModal({ kind, title, namePlaceholder, onCreated, onCancel, }) {
27
+ const createApiKey = useCreateApiKey();
28
+ const [name, setName] = useState('');
29
+ function submit(event) {
30
+ event.preventDefault();
31
+ createApiKey
32
+ .runAsync({ name: name.trim(), kind })
33
+ .then(onCreated)
34
+ .catch(() => undefined);
35
+ }
36
+ return (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-ink/40 p-4", children: _jsx("div", { className: "animate-slide-in w-full max-w-md rounded-md border border-border bg-surface-raised p-5", children: _jsxs("form", { onSubmit: submit, children: [_jsx("h2", { className: "text-[15px] font-semibold text-ink", children: title }), _jsxs("label", { className: "mt-4 block", children: [_jsx("span", { className: "mb-1.5 block text-[12px] font-medium", children: "Name" }), _jsx("input", { value: name, onChange: (event) => {
37
+ setName(event.target.value);
38
+ }, placeholder: namePlaceholder, required: true, autoFocus: true, className: "w-full rounded-md border border-border bg-surface px-3 py-2 text-[13px] outline-none focus:border-accent focus:ring-2 focus:ring-accent/20" })] }), createApiKey.error !== null && (_jsx("div", { className: "mt-3", children: _jsx(ErrorPanel, { error: createApiKey.error }) })), _jsxs("div", { className: "mt-4 flex justify-end gap-2", children: [_jsx("button", { type: "button", onClick: onCancel, className: "rounded-md px-3 py-2 text-[12px] font-medium text-ink-muted hover:text-ink", children: "Cancel" }), _jsx("button", { type: "submit", disabled: createApiKey.isPending, className: "rounded-md bg-accent px-3.5 py-2 text-[12px] font-semibold text-accent-fg hover:bg-accent-hover disabled:opacity-50", children: createApiKey.isPending ? 'Creating…' : 'Create' })] })] }) }) }));
39
+ }
40
+ /**
41
+ * The secret, shown once.
42
+ *
43
+ * Nothing can retrieve it afterwards, so this panel says so plainly instead of
44
+ * leaving a reader to discover it by coming back for the value later.
45
+ */
46
+ function SecretOnce({ apiKey, onDismiss, }) {
47
+ return (_jsxs("div", { className: "rounded-md border border-accent/40 bg-accent-soft px-4 py-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-[13px] font-medium text-ink", children: "Copy this key now. It is not shown again." }), _jsx("code", { className: "mt-2 block break-all rounded border border-border bg-surface px-3 py-2 font-mono text-[12px] text-ink", children: apiKey.secret })] }), _jsx(CopyButton, { value: apiKey.secret, label: "Copy the API key" })] }), _jsx("button", { type: "button", onClick: onDismiss, className: "mt-2 text-[12px] font-medium text-accent hover:underline", children: "I have copied it" })] }));
48
+ }
49
+ function ApiKeyTable({ keys, emptyMessage, onRevoke, isRevoking, }) {
50
+ if (keys.length === 0) {
51
+ return (_jsx("p", { className: "rounded-md border border-border px-4 py-10 text-center text-[13px] text-ink-faint", children: emptyMessage }));
52
+ }
53
+ return (_jsx("div", { className: "overflow-hidden rounded-md border border-border", children: _jsxs("table", { className: "w-full text-left text-[13px]", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b border-border bg-surface text-[11px] font-semibold tracking-wide text-ink-muted uppercase", children: [_jsx("th", { className: "px-4 py-2.5", children: "Name" }), _jsx("th", { className: "px-4 py-2.5", children: "Prefix" }), _jsx("th", { className: "px-4 py-2.5", children: "Created" }), _jsx("th", { className: "px-4 py-2.5", children: "Last used" }), _jsx("th", { className: "px-4 py-2.5 text-right", children: "Actions" })] }) }), _jsx("tbody", { children: keys.map((key) => (_jsx(ApiKeyRow, { apiKey: key, onRevoke: onRevoke, isRevoking: isRevoking }, key.id))) })] }) }));
54
+ }
55
+ /**
56
+ * Revoking a key takes effect at once and cannot be undone, so this asks first,
57
+ * the same two-step confirm `WebhooksPage` uses for removing a registration.
58
+ */
59
+ function ApiKeyRow({ apiKey, onRevoke, isRevoking, }) {
60
+ const [isConfirming, setIsConfirming] = useState(false);
61
+ const timezone = useTimezone();
62
+ return (_jsxs("tr", { className: "border-b border-border last:border-0", children: [_jsx("td", { className: "px-4 py-3 font-medium", children: apiKey.name }), _jsx("td", { className: "px-4 py-3 font-mono text-[12px] text-ink-muted", children: apiKey.displayPrefix }), _jsx("td", { className: "px-4 py-3 text-ink-muted", children: formatDate(apiKey.createdAt, timezone) }), _jsx("td", { className: "px-4 py-3 text-ink-muted", children: apiKey.lastUsedAt === null ? 'Never' : formatDate(apiKey.lastUsedAt, timezone) }), _jsx("td", { className: "px-4 py-3 text-right", children: isConfirming ? (_jsxs("span", { className: "inline-flex items-center gap-3", children: [_jsx("button", { type: "button", onClick: () => {
63
+ setIsConfirming(false);
64
+ }, className: "text-[12px] font-medium text-ink-muted hover:text-ink", children: "Cancel" }), _jsx("button", { type: "button", disabled: isRevoking, onClick: () => {
65
+ onRevoke(apiKey.id);
66
+ }, className: "text-[12px] font-medium text-danger hover:underline disabled:opacity-50", children: isRevoking ? 'Revoking…' : 'Revoke' })] })) : (_jsx("button", { type: "button", onClick: () => {
67
+ setIsConfirming(true);
68
+ }, className: "text-[12px] font-medium text-danger hover:underline", children: "Revoke" })) })] }));
69
+ }
70
+ //# sourceMappingURL=ApiKeysPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiKeysPanel.js","sourceRoot":"","sources":["../../src/components/ApiKeysPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DecisionsPanel.d.ts","sourceRoot":"","sources":["../../src/components/DecisionsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAWjE;;;;;;GAMG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkK/F"}
1
+ {"version":3,"file":"DecisionsPanel.d.ts","sourceRoot":"","sources":["../../src/components/DecisionsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAYjE;;;;;;GAMG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkK/F"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
3
  import { Link } from 'react-router';
4
+ import { useTimezone } from '../api/resources/account.js';
4
5
  import { useCreateDecision, useDecisions, useDeleteDecision } from '../api/resources/decisions.js';
5
6
  import { useMembers } from '../api/resources/members.js';
6
7
  import { formatDate } from '../lib/dates.js';
@@ -68,6 +69,7 @@ function ownerNameFor(decision, nameById) {
68
69
  return nameById.get(decision.ownerId);
69
70
  }
70
71
  function DecisionItem({ decision, ownerName, onRemove, }) {
71
- return (_jsxs("li", { className: "border-b border-border px-4 py-3 last:border-0", children: [_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("p", { className: "min-w-0 flex-1 text-[13px] font-medium text-ink", children: decision.body }), _jsx("button", { type: "button", onClick: onRemove, className: "shrink-0 text-[11px] font-medium text-ink-faint hover:text-danger", children: "Remove" })] }), decision.rationale !== null && (_jsx("p", { className: "mt-1 text-[12px] text-ink-muted", children: decision.rationale })), _jsxs("div", { className: "mt-2 flex flex-wrap gap-x-3 gap-y-1 text-[11px] text-ink-faint", children: [_jsxs("span", { children: ["Decided ", formatDate(decision.decidedAt)] }), decision.dueAt !== null && _jsxs("span", { children: ["By ", formatDate(decision.dueAt)] }), ownerName !== undefined && _jsx("span", { children: ownerName })] })] }));
72
+ const timezone = useTimezone();
73
+ return (_jsxs("li", { className: "border-b border-border px-4 py-3 last:border-0", children: [_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("p", { className: "min-w-0 flex-1 text-[13px] font-medium text-ink", children: decision.body }), _jsx("button", { type: "button", onClick: onRemove, className: "shrink-0 text-[11px] font-medium text-ink-faint hover:text-danger", children: "Remove" })] }), decision.rationale !== null && (_jsx("p", { className: "mt-1 text-[12px] text-ink-muted", children: decision.rationale })), _jsxs("div", { className: "mt-2 flex flex-wrap gap-x-3 gap-y-1 text-[11px] text-ink-faint", children: [_jsxs("span", { children: ["Decided ", formatDate(decision.decidedAt, timezone)] }), decision.dueAt !== null && _jsxs("span", { children: ["By ", formatDate(decision.dueAt, timezone)] }), ownerName !== undefined && _jsx("span", { children: ownerName })] })] }));
72
74
  }
73
75
  //# sourceMappingURL=DecisionsPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DecisionsPanel.js","sourceRoot":"","sources":["../../src/components/DecisionsPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DecisionsPanel.js","sourceRoot":"","sources":["../../src/components/DecisionsPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NotesPanel.d.ts","sourceRoot":"","sources":["../../src/components/NotesPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAU7D;;;;;;;;;GASG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuGvF"}
1
+ {"version":3,"file":"NotesPanel.d.ts","sourceRoot":"","sources":["../../src/components/NotesPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAW7D;;;;;;;;;GASG;AAEH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,wBAAgB,UAAU,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAuGvF"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
+ import { useTimezone } from '../api/resources/account.js';
3
4
  import { useMembers } from '../api/resources/members.js';
4
5
  import { useCreateNote, useNotes } from '../api/resources/notes.js';
5
6
  import { formatDateTime } from '../lib/dates.js';
@@ -48,6 +49,7 @@ function authorNameFor(note, nameById) {
48
49
  return nameById.get(note.authorId) ?? 'Unknown';
49
50
  }
50
51
  function NoteItem({ note, authorName, }) {
51
- return (_jsxs("li", { className: "rounded-md border border-border bg-surface-raised px-3.5 py-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("p", { className: "text-[13px] leading-relaxed whitespace-pre-wrap text-ink", children: note.body }), note.pinned && (_jsx("span", { className: "shrink-0 text-[10px] font-semibold tracking-wide text-accent uppercase", children: "Pinned" }))] }), _jsxs("div", { className: "mt-2 flex items-center gap-2 text-[11px] text-ink-faint", children: [_jsx("span", { children: authorName }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: formatDateTime(note.createdAt) })] })] }));
52
+ const timezone = useTimezone();
53
+ return (_jsxs("li", { className: "rounded-md border border-border bg-surface-raised px-3.5 py-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("p", { className: "text-[13px] leading-relaxed whitespace-pre-wrap text-ink", children: note.body }), note.pinned && (_jsx("span", { className: "shrink-0 text-[10px] font-semibold tracking-wide text-accent uppercase", children: "Pinned" }))] }), _jsxs("div", { className: "mt-2 flex items-center gap-2 text-[11px] text-ink-faint", children: [_jsx("span", { children: authorName }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: formatDateTime(note.createdAt, timezone) })] })] }));
52
54
  }
53
55
  //# sourceMappingURL=NotesPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotesPanel.js","sourceRoot":"","sources":["../../src/components/NotesPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotesPanel.js","sourceRoot":"","sources":["../../src/components/NotesPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../../src/components/Shell.tsx"],"names":[],"mappings":"AAyEA,wBAAgB,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CA+MzC"}
1
+ {"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../../src/components/Shell.tsx"],"names":[],"mappings":"AA0EA,wBAAgB,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CA+MzC"}
@@ -20,6 +20,7 @@ const CORE_ADMIN_NAV = [
20
20
  { id: 'workspace', label: 'Workspace', to: '/admin/workspace', order: 100 },
21
21
  { id: 'team', label: 'Team', to: '/admin/team', order: 200 },
22
22
  { id: 'data', label: 'Data', to: '/admin/data', order: 300 },
23
+ { id: 'api-keys', label: 'API keys', to: '/admin/api-keys', order: 350 },
23
24
  { id: 'webhooks', label: 'Webhooks', to: '/admin/webhooks', order: 400 },
24
25
  { id: 'mcp', label: 'MCP', to: '/admin/mcp', order: 500 },
25
26
  { id: 'modules', label: 'Modules', to: '/admin/modules', order: 600 },