@burdenoff/microfe-cosmicintersection 2026.704.2 → 2026.709.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 (186) hide show
  1. package/dist/cosmicintersection/CosmicIntersectionRoot.d.ts +15 -0
  2. package/dist/cosmicintersection/CosmicIntersectionRoot.d.ts.map +1 -0
  3. package/dist/cosmicintersection/CosmicIntersectionRoutes.d.ts +3 -0
  4. package/dist/cosmicintersection/CosmicIntersectionRoutes.d.ts.map +1 -0
  5. package/dist/cosmicintersection/CosmicIntersectionRoutes.js +39 -27
  6. package/dist/cosmicintersection/CosmicIntersectionRoutes.js.map +1 -1
  7. package/dist/cosmicintersection/api/cosmicApi.d.ts +728 -0
  8. package/dist/cosmicintersection/api/cosmicApi.d.ts.map +1 -0
  9. package/dist/cosmicintersection/api/cosmicApi.js +6 -0
  10. package/dist/cosmicintersection/api/cosmicApi.js.map +1 -1
  11. package/dist/cosmicintersection/components/ActionMenu.d.ts +41 -0
  12. package/dist/cosmicintersection/components/ActionMenu.d.ts.map +1 -0
  13. package/dist/cosmicintersection/components/ActivityFeedPanel.d.ts +10 -0
  14. package/dist/cosmicintersection/components/ActivityFeedPanel.d.ts.map +1 -0
  15. package/dist/cosmicintersection/components/DiscussionPanel.d.ts +14 -0
  16. package/dist/cosmicintersection/components/DiscussionPanel.d.ts.map +1 -0
  17. package/dist/cosmicintersection/components/DiscussionPanel.js +9 -9
  18. package/dist/cosmicintersection/components/EmptyState.d.ts +18 -0
  19. package/dist/cosmicintersection/components/EmptyState.d.ts.map +1 -0
  20. package/dist/cosmicintersection/components/EntityFormShell.d.ts +25 -0
  21. package/dist/cosmicintersection/components/EntityFormShell.d.ts.map +1 -0
  22. package/dist/cosmicintersection/components/EntityTagsField.d.ts +20 -0
  23. package/dist/cosmicintersection/components/EntityTagsField.d.ts.map +1 -0
  24. package/dist/cosmicintersection/components/ErrorState.d.ts +14 -0
  25. package/dist/cosmicintersection/components/ErrorState.d.ts.map +1 -0
  26. package/dist/cosmicintersection/components/FacetPanel.d.ts +21 -0
  27. package/dist/cosmicintersection/components/FacetPanel.d.ts.map +1 -0
  28. package/dist/cosmicintersection/components/FacetPanel.js +66 -0
  29. package/dist/cosmicintersection/components/FacetPanel.js.map +1 -0
  30. package/dist/cosmicintersection/components/FileUploadField.d.ts +35 -0
  31. package/dist/cosmicintersection/components/FileUploadField.d.ts.map +1 -0
  32. package/dist/cosmicintersection/components/FileUploadField.js +16 -16
  33. package/dist/cosmicintersection/components/LineageGraph.d.ts +59 -0
  34. package/dist/cosmicintersection/components/LineageGraph.d.ts.map +1 -0
  35. package/dist/cosmicintersection/components/LineageGraph.js +388 -0
  36. package/dist/cosmicintersection/components/LineageGraph.js.map +1 -0
  37. package/dist/cosmicintersection/components/LoadingState.d.ts +15 -0
  38. package/dist/cosmicintersection/components/LoadingState.d.ts.map +1 -0
  39. package/dist/cosmicintersection/components/PageLayout.d.ts +18 -0
  40. package/dist/cosmicintersection/components/PageLayout.d.ts.map +1 -0
  41. package/dist/cosmicintersection/components/Pagination.d.ts +32 -0
  42. package/dist/cosmicintersection/components/Pagination.d.ts.map +1 -0
  43. package/dist/cosmicintersection/components/ResultsChart.d.ts +7 -0
  44. package/dist/cosmicintersection/components/ResultsChart.d.ts.map +1 -0
  45. package/dist/cosmicintersection/components/ResultsChart.js +329 -0
  46. package/dist/cosmicintersection/components/ResultsChart.js.map +1 -0
  47. package/dist/cosmicintersection/components/SafeLink.d.ts +35 -0
  48. package/dist/cosmicintersection/components/SafeLink.d.ts.map +1 -0
  49. package/dist/cosmicintersection/components/StatusBadge.d.ts +23 -0
  50. package/dist/cosmicintersection/components/StatusBadge.d.ts.map +1 -0
  51. package/dist/cosmicintersection/components/StepDAG.d.ts +20 -0
  52. package/dist/cosmicintersection/components/StepDAG.d.ts.map +1 -0
  53. package/dist/cosmicintersection/components/StepDAG.js +104 -0
  54. package/dist/cosmicintersection/components/StepDAG.js.map +1 -0
  55. package/dist/cosmicintersection/components/index.d.ts +18 -0
  56. package/dist/cosmicintersection/components/index.d.ts.map +1 -0
  57. package/dist/cosmicintersection/context/CosmicIntersectionContext.d.ts +26 -0
  58. package/dist/cosmicintersection/context/CosmicIntersectionContext.d.ts.map +1 -0
  59. package/dist/cosmicintersection/index.d.ts +18 -0
  60. package/dist/cosmicintersection/index.d.ts.map +1 -0
  61. package/dist/cosmicintersection/lib/mutationResult.d.ts +23 -0
  62. package/dist/cosmicintersection/lib/mutationResult.d.ts.map +1 -0
  63. package/dist/cosmicintersection/lib/toast.d.ts +22 -0
  64. package/dist/cosmicintersection/lib/toast.d.ts.map +1 -0
  65. package/dist/cosmicintersection/pages/access/AccessPage.d.ts +2 -0
  66. package/dist/cosmicintersection/pages/access/AccessPage.d.ts.map +1 -0
  67. package/dist/cosmicintersection/pages/access/AccessPage.js +207 -155
  68. package/dist/cosmicintersection/pages/access/AccessPage.js.map +1 -1
  69. package/dist/cosmicintersection/pages/analyses/AnalysesPage.d.ts +2 -0
  70. package/dist/cosmicintersection/pages/analyses/AnalysesPage.d.ts.map +1 -0
  71. package/dist/cosmicintersection/pages/analyses/AnalysesPage.js +325 -165
  72. package/dist/cosmicintersection/pages/analyses/AnalysesPage.js.map +1 -1
  73. package/dist/cosmicintersection/pages/collections/CollectionDetailPage.d.ts +2 -0
  74. package/dist/cosmicintersection/pages/collections/CollectionDetailPage.d.ts.map +1 -0
  75. package/dist/cosmicintersection/pages/collections/CollectionDetailPage.js +138 -93
  76. package/dist/cosmicintersection/pages/collections/CollectionDetailPage.js.map +1 -1
  77. package/dist/cosmicintersection/pages/collections/CollectionFormPage.d.ts +2 -0
  78. package/dist/cosmicintersection/pages/collections/CollectionFormPage.d.ts.map +1 -0
  79. package/dist/cosmicintersection/pages/collections/CollectionFormPage.js.map +1 -1
  80. package/dist/cosmicintersection/pages/collections/CollectionsPage.d.ts +2 -0
  81. package/dist/cosmicintersection/pages/collections/CollectionsPage.d.ts.map +1 -0
  82. package/dist/cosmicintersection/pages/dashboard/DashboardPage.d.ts +2 -0
  83. package/dist/cosmicintersection/pages/dashboard/DashboardPage.d.ts.map +1 -0
  84. package/dist/cosmicintersection/pages/dashboard/DashboardPage.js +26 -15
  85. package/dist/cosmicintersection/pages/dashboard/DashboardPage.js.map +1 -1
  86. package/dist/cosmicintersection/pages/datasets/DatasetDetailPage.d.ts +2 -0
  87. package/dist/cosmicintersection/pages/datasets/DatasetDetailPage.d.ts.map +1 -0
  88. package/dist/cosmicintersection/pages/datasets/DatasetDetailPage.js +345 -219
  89. package/dist/cosmicintersection/pages/datasets/DatasetDetailPage.js.map +1 -1
  90. package/dist/cosmicintersection/pages/datasets/DatasetFormPage.d.ts +2 -0
  91. package/dist/cosmicintersection/pages/datasets/DatasetFormPage.d.ts.map +1 -0
  92. package/dist/cosmicintersection/pages/datasets/DatasetsPage.d.ts +2 -0
  93. package/dist/cosmicintersection/pages/datasets/DatasetsPage.d.ts.map +1 -0
  94. package/dist/cosmicintersection/pages/datasets/DatasetsPage.js +321 -163
  95. package/dist/cosmicintersection/pages/datasets/DatasetsPage.js.map +1 -1
  96. package/dist/cosmicintersection/pages/discovery/DiscoveryPage.d.ts +2 -0
  97. package/dist/cosmicintersection/pages/discovery/DiscoveryPage.d.ts.map +1 -0
  98. package/dist/cosmicintersection/pages/discovery/DiscoveryPage.js +358 -0
  99. package/dist/cosmicintersection/pages/discovery/DiscoveryPage.js.map +1 -0
  100. package/dist/cosmicintersection/pages/lineage/LineagePage.d.ts +2 -0
  101. package/dist/cosmicintersection/pages/lineage/LineagePage.d.ts.map +1 -0
  102. package/dist/cosmicintersection/pages/lineage/LineagePage.js +171 -0
  103. package/dist/cosmicintersection/pages/lineage/LineagePage.js.map +1 -0
  104. package/dist/cosmicintersection/pages/notebooks/NotebookDetailPage.d.ts +2 -0
  105. package/dist/cosmicintersection/pages/notebooks/NotebookDetailPage.d.ts.map +1 -0
  106. package/dist/cosmicintersection/pages/notebooks/NotebookDetailPage.js +232 -162
  107. package/dist/cosmicintersection/pages/notebooks/NotebookDetailPage.js.map +1 -1
  108. package/dist/cosmicintersection/pages/notebooks/NotebookFormPage.d.ts +2 -0
  109. package/dist/cosmicintersection/pages/notebooks/NotebookFormPage.d.ts.map +1 -0
  110. package/dist/cosmicintersection/pages/notebooks/NotebooksPage.d.ts +2 -0
  111. package/dist/cosmicintersection/pages/notebooks/NotebooksPage.d.ts.map +1 -0
  112. package/dist/cosmicintersection/pages/notebooks/NotebooksPage.js +143 -82
  113. package/dist/cosmicintersection/pages/notebooks/NotebooksPage.js.map +1 -1
  114. package/dist/cosmicintersection/pages/pipelines/PipelineDetailPage.d.ts +2 -0
  115. package/dist/cosmicintersection/pages/pipelines/PipelineDetailPage.d.ts.map +1 -0
  116. package/dist/cosmicintersection/pages/pipelines/PipelineDetailPage.js +286 -142
  117. package/dist/cosmicintersection/pages/pipelines/PipelineDetailPage.js.map +1 -1
  118. package/dist/cosmicintersection/pages/pipelines/PipelineFormPage.d.ts +2 -0
  119. package/dist/cosmicintersection/pages/pipelines/PipelineFormPage.d.ts.map +1 -0
  120. package/dist/cosmicintersection/pages/pipelines/PipelineFormPage.js +305 -103
  121. package/dist/cosmicintersection/pages/pipelines/PipelineFormPage.js.map +1 -1
  122. package/dist/cosmicintersection/pages/pipelines/PipelinesPage.d.ts +2 -0
  123. package/dist/cosmicintersection/pages/pipelines/PipelinesPage.d.ts.map +1 -0
  124. package/dist/cosmicintersection/pages/pipelines/PipelinesPage.js +183 -79
  125. package/dist/cosmicintersection/pages/pipelines/PipelinesPage.js.map +1 -1
  126. package/dist/cosmicintersection/pages/releases/ReleaseFormPage.d.ts +2 -0
  127. package/dist/cosmicintersection/pages/releases/ReleaseFormPage.d.ts.map +1 -0
  128. package/dist/cosmicintersection/pages/releases/ReleasesPage.d.ts +2 -0
  129. package/dist/cosmicintersection/pages/releases/ReleasesPage.d.ts.map +1 -0
  130. package/dist/cosmicintersection/pages/releases/ReleasesPage.js +262 -170
  131. package/dist/cosmicintersection/pages/releases/ReleasesPage.js.map +1 -1
  132. package/dist/cosmicintersection/pages/runs/RunDetailPage.d.ts +2 -0
  133. package/dist/cosmicintersection/pages/runs/RunDetailPage.d.ts.map +1 -0
  134. package/dist/cosmicintersection/pages/runs/RunDetailPage.js +179 -136
  135. package/dist/cosmicintersection/pages/runs/RunDetailPage.js.map +1 -1
  136. package/dist/cosmicintersection/pages/runs/RunsPage.d.ts +2 -0
  137. package/dist/cosmicintersection/pages/runs/RunsPage.d.ts.map +1 -0
  138. package/dist/cosmicintersection/pages/runs/RunsPage.js +124 -47
  139. package/dist/cosmicintersection/pages/runs/RunsPage.js.map +1 -1
  140. package/dist/cosmicintersection/pages/sources/SourceDetailPage.d.ts +2 -0
  141. package/dist/cosmicintersection/pages/sources/SourceDetailPage.d.ts.map +1 -0
  142. package/dist/cosmicintersection/pages/sources/SourceDetailPage.js +114 -85
  143. package/dist/cosmicintersection/pages/sources/SourceDetailPage.js.map +1 -1
  144. package/dist/cosmicintersection/pages/sources/SourceFormPage.d.ts +2 -0
  145. package/dist/cosmicintersection/pages/sources/SourceFormPage.d.ts.map +1 -0
  146. package/dist/cosmicintersection/pages/sources/SourcesPage.d.ts +2 -0
  147. package/dist/cosmicintersection/pages/sources/SourcesPage.d.ts.map +1 -0
  148. package/dist/cosmicintersection/pages/sources/SourcesPage.js +263 -152
  149. package/dist/cosmicintersection/pages/sources/SourcesPage.js.map +1 -1
  150. package/dist/cosmicintersection/types/index.d.ts +7 -0
  151. package/dist/cosmicintersection/types/index.d.ts.map +1 -0
  152. package/dist/cosmicintersection/utils/cn.d.ts +4 -0
  153. package/dist/cosmicintersection/utils/cn.d.ts.map +1 -0
  154. package/dist/cosmicintersection/utils/i18n.d.ts +15 -0
  155. package/dist/cosmicintersection/utils/i18n.d.ts.map +1 -0
  156. package/dist/cosmicintersection/utils/navigation.d.ts +2 -0
  157. package/dist/cosmicintersection/utils/navigation.d.ts.map +1 -0
  158. package/dist/dev/main.d.ts +2 -0
  159. package/dist/dev/main.d.ts.map +1 -0
  160. package/dist/generated/global-operations.d.ts +2 -0
  161. package/dist/generated/global-operations.d.ts.map +1 -0
  162. package/dist/generated/global-types.d.ts +18199 -0
  163. package/dist/generated/global-types.d.ts.map +1 -0
  164. package/dist/generated/wspace-operations.d.ts +2 -0
  165. package/dist/generated/wspace-operations.d.ts.map +1 -0
  166. package/dist/generated/wspace-types.d.ts +43046 -0
  167. package/dist/generated/wspace-types.d.ts.map +1 -0
  168. package/dist/index.d.ts +19 -0
  169. package/dist/index.d.ts.map +1 -0
  170. package/dist/index.js +2 -2
  171. package/dist/services/assistantApi.d.ts +66 -0
  172. package/dist/services/assistantApi.d.ts.map +1 -0
  173. package/dist/services/assistantApi.js +250 -0
  174. package/dist/services/assistantApi.js.map +1 -0
  175. package/dist/services/createSandboxAssistantTransport.d.ts +40 -0
  176. package/dist/services/createSandboxAssistantTransport.d.ts.map +1 -0
  177. package/dist/services/createSandboxAssistantTransport.js +120 -0
  178. package/dist/services/createSandboxAssistantTransport.js.map +1 -0
  179. package/dist/types/assistant.d.ts +48 -0
  180. package/dist/types/assistant.d.ts.map +1 -0
  181. package/dist/utils/pageContext.d.ts +28 -0
  182. package/dist/utils/pageContext.d.ts.map +1 -0
  183. package/dist/utils/pageContext.js +50 -0
  184. package/dist/utils/pageContext.js.map +1 -0
  185. package/package.json +5 -1
  186. package/dist/cosmicintersection/index.js +0 -1
@@ -1,28 +1,28 @@
1
1
  import { notify as e } from "../../lib/toast.js";
2
2
  import { useCosAccessGrantsQuery as t, useCosDatasetsQuery as n, useCosGrantAccessMutation as r, useCosRevokeAccessMutation as ee } from "../../api/cosmicApi.js";
3
- import te from "../../components/ActionMenu.js";
4
- import i from "../../components/EmptyState.js";
5
- import ne from "../../components/ErrorState.js";
6
- import re from "../../components/LoadingState.js";
7
- import ie from "../../components/EntityTagsField.js";
8
- import ae from "../../components/PageLayout.js";
9
- import a, { formatEnumLabel as o } from "../../components/StatusBadge.js";
3
+ import i from "../../components/ActionMenu.js";
4
+ import a from "../../components/EmptyState.js";
5
+ import te from "../../components/ErrorState.js";
6
+ import ne from "../../components/LoadingState.js";
7
+ import re from "../../components/EntityTagsField.js";
8
+ import ie from "../../components/PageLayout.js";
9
+ import o, { formatEnumLabel as s } from "../../components/StatusBadge.js";
10
10
  import "../../components/index.js";
11
- import { useMemo as s, useState as c } from "react";
12
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
13
- import { KeyRound as d, ShieldCheck as oe } from "lucide-react";
14
- import { Badge as f, Button as p, Dialog as m, DialogContent as h, DialogDescription as g, DialogFooter as se, DialogHeader as _, DialogTitle as v, Input as y, Label as b, Select as x, SelectContent as S, SelectItem as C, SelectTrigger as w, SelectValue as T, Table as ce, TableBody as le, TableCell as E, TableHead as D, TableHeader as O, TableRow as k, Textarea as A } from "@burdenoff/fe-libs/ui";
11
+ import { useMemo as c, useState as l } from "react";
12
+ import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
13
+ import { KeyRound as p, ShieldCheck as ae } from "lucide-react";
14
+ import { Badge as m, Button as h, Dialog as oe, DialogContent as se, DialogDescription as g, DialogFooter as _, DialogHeader as v, DialogTitle as y, Input as b, Label as x, Select as S, SelectContent as C, SelectItem as w, SelectTrigger as T, SelectValue as E, Table as ce, TableBody as le, TableCell as D, TableHead as O, TableHeader as ue, TableRow as k, Textarea as de } from "@burdenoff/fe-libs/ui";
15
15
  //#region src/cosmicintersection/pages/access/AccessPage.tsx
16
- var j = "ALL", M = [
16
+ var A = "ALL", j = [
17
17
  "PENDING",
18
18
  "ACTIVE",
19
19
  "EXPIRED",
20
20
  "REVOKED"
21
21
  ];
22
- function N(e) {
22
+ function M(e) {
23
23
  return e === "ACTIVE" || e === "PENDING";
24
24
  }
25
- function P(e) {
25
+ function N(e) {
26
26
  if (!e) return "—";
27
27
  let t = new Date(e);
28
28
  return Number.isNaN(t.getTime()) ? "—" : t.toLocaleDateString(void 0, {
@@ -31,292 +31,344 @@ function P(e) {
31
31
  day: "numeric"
32
32
  });
33
33
  }
34
- var F = {
34
+ var P = {
35
35
  datasetId: "",
36
36
  granteeId: "",
37
37
  scopes: [],
38
38
  reason: "",
39
39
  expiresAt: ""
40
40
  };
41
- function I() {
42
- let [I, L] = c(j), [R, z] = c(j), B = n({ pagination: {
41
+ function F() {
42
+ let [F, I] = l(A), [L, R] = l(A), z = n({ pagination: {
43
43
  limit: 50,
44
44
  offset: 0
45
- } }), V = s(() => B.data?.cosListDatasets.items ?? [], [B.data]), H = s(() => {
45
+ } }), B = c(() => z.data?.cosListDatasets.items ?? [], [z.data]), V = c(() => {
46
46
  let e = /* @__PURE__ */ new Map();
47
- for (let t of V) e.set(t.id, t.name);
47
+ for (let t of B) e.set(t.id, t.name);
48
48
  return e;
49
- }, [V]), { data: U, loading: ue, error: W, refetch: G } = t({
50
- datasetId: I === j ? void 0 : I,
51
- status: R === j ? void 0 : R
52
- }), K = s(() => U?.cosListAccessGrants ?? [], [U]), [de, { loading: q }] = r(), [fe] = ee(), [pe, J] = c(!1), [Y, X] = c(F), me = () => {
53
- X({
54
- ...F,
55
- datasetId: I === j ? "" : I
56
- }), J(!0);
57
- }, Z = (e, t) => {
58
- X((n) => ({
49
+ }, [B]), { data: H, loading: fe, error: U, refetch: W } = t({
50
+ datasetId: F === A ? void 0 : F,
51
+ status: L === A ? void 0 : L
52
+ }), G = c(() => H?.cosListAccessGrants ?? [], [H]), [pe, { loading: K }] = r(), [me] = ee(), [he, q] = l(!1), [J, Y] = l(P), ge = () => {
53
+ Y({
54
+ ...P,
55
+ datasetId: F === A ? "" : F
56
+ }), q(!0);
57
+ }, X = (e, t) => {
58
+ Y((n) => ({
59
59
  ...n,
60
60
  [e]: t
61
61
  }));
62
- }, he = async () => {
63
- if (!Y.datasetId) {
62
+ }, _e = async () => {
63
+ if (!J.datasetId) {
64
64
  e.error("Dataset is required", "Choose which dataset this grant applies to.");
65
65
  return;
66
66
  }
67
- if (!Y.granteeId.trim()) {
67
+ if (!J.granteeId.trim()) {
68
68
  e.error("Grantee is required", "Enter the workspace User ID to grant access to.");
69
69
  return;
70
70
  }
71
71
  let t;
72
- if (Y.expiresAt) {
73
- let n = new Date(Y.expiresAt);
72
+ if (J.expiresAt) {
73
+ let n = new Date(J.expiresAt);
74
74
  if (Number.isNaN(n.getTime())) {
75
75
  e.error("Invalid expiry", "Enter a valid expiry date or leave it blank.");
76
76
  return;
77
77
  }
78
78
  t = n.toISOString();
79
79
  }
80
- (await de({ variables: { input: {
81
- datasetId: Y.datasetId,
82
- granteeId: Y.granteeId.trim(),
83
- scopes: Y.scopes.length ? Y.scopes : void 0,
84
- reason: Y.reason.trim() || void 0,
80
+ (await pe({ variables: { input: {
81
+ datasetId: J.datasetId,
82
+ granteeId: J.granteeId.trim(),
83
+ scopes: J.scopes.length ? J.scopes : void 0,
84
+ reason: J.reason.trim() || void 0,
85
85
  expiresAt: t
86
- } } })).data?.cosGrantAccess?.id && (e.success("Access granted"), J(!1), X(F), await G());
87
- }, ge = async (t) => {
88
- let n = await fe({ variables: { id: t.id } });
86
+ } } })).data?.cosGrantAccess?.id && (e.success("Access granted"), q(!1), Y(P), await W());
87
+ }, Z = async (t) => {
88
+ let n = await me({ variables: { id: t.id } });
89
89
  if (n.error) throw Error(n.error.message);
90
90
  if (!n.data?.cosRevokeAccess?.id) throw e.error("Could not revoke grant", "The server did not confirm the change."), Error("Revoke not confirmed");
91
- e.success("Access revoked"), await G();
92
- }, Q = /* @__PURE__ */ u(p, {
91
+ e.success("Access revoked"), await W();
92
+ }, Q = /* @__PURE__ */ f(h, {
93
93
  type: "button",
94
- onClick: me,
95
- children: [/* @__PURE__ */ l(d, { className: "size-4" }), "Grant access"]
96
- }), $ = I === j;
97
- return /* @__PURE__ */ u(ae, {
94
+ onClick: ge,
95
+ children: [/* @__PURE__ */ d(p, { className: "size-4" }), "Grant access"]
96
+ }), $ = F === A;
97
+ return /* @__PURE__ */ f(ie, {
98
98
  title: "Data access",
99
99
  description: "Govern who can reach restricted and embargoed datasets, with scoped, expiring grants.",
100
100
  actions: Q,
101
- children: [/* @__PURE__ */ u("div", {
101
+ children: [/* @__PURE__ */ f("div", {
102
102
  className: "space-y-4",
103
- children: [/* @__PURE__ */ u("div", {
103
+ children: [/* @__PURE__ */ f("div", {
104
104
  className: "flex flex-wrap items-center gap-3",
105
- children: [/* @__PURE__ */ l("div", {
105
+ children: [/* @__PURE__ */ d("div", {
106
106
  className: "w-full max-w-[18rem]",
107
- children: /* @__PURE__ */ u(x, {
108
- value: I,
109
- onValueChange: L,
110
- children: [/* @__PURE__ */ l(w, {
107
+ children: /* @__PURE__ */ f(S, {
108
+ value: F,
109
+ onValueChange: I,
110
+ children: [/* @__PURE__ */ d(T, {
111
111
  "aria-label": "Filter by dataset",
112
- children: /* @__PURE__ */ l(T, { placeholder: "All datasets" })
113
- }), /* @__PURE__ */ u(S, { children: [/* @__PURE__ */ l(C, {
114
- value: j,
112
+ children: /* @__PURE__ */ d(E, { placeholder: "All datasets" })
113
+ }), /* @__PURE__ */ f(C, { children: [/* @__PURE__ */ d(w, {
114
+ value: A,
115
115
  children: "All datasets"
116
- }), V.map((e) => /* @__PURE__ */ l(C, {
116
+ }), B.map((e) => /* @__PURE__ */ d(w, {
117
117
  value: e.id,
118
118
  children: e.name
119
119
  }, e.id))] })]
120
120
  })
121
- }), /* @__PURE__ */ l("div", {
121
+ }), /* @__PURE__ */ d("div", {
122
122
  className: "w-full max-w-[14rem]",
123
- children: /* @__PURE__ */ u(x, {
124
- value: R,
125
- onValueChange: z,
126
- children: [/* @__PURE__ */ l(w, {
123
+ children: /* @__PURE__ */ f(S, {
124
+ value: L,
125
+ onValueChange: R,
126
+ children: [/* @__PURE__ */ d(T, {
127
127
  "aria-label": "Filter by status",
128
- children: /* @__PURE__ */ l(T, { placeholder: "All statuses" })
129
- }), /* @__PURE__ */ u(S, { children: [/* @__PURE__ */ l(C, {
130
- value: j,
128
+ children: /* @__PURE__ */ d(E, { placeholder: "All statuses" })
129
+ }), /* @__PURE__ */ f(C, { children: [/* @__PURE__ */ d(w, {
130
+ value: A,
131
131
  children: "All statuses"
132
- }), M.map((e) => /* @__PURE__ */ l(C, {
132
+ }), j.map((e) => /* @__PURE__ */ d(w, {
133
133
  value: e,
134
- children: o(e)
134
+ children: s(e)
135
135
  }, e))] })]
136
136
  })
137
137
  })]
138
138
  }), (() => {
139
- if (ue) return /* @__PURE__ */ l(re, {
139
+ if (fe) return /* @__PURE__ */ d(ne, {
140
140
  variant: "rows",
141
141
  rows: 6,
142
142
  label: "Loading access grants…"
143
143
  });
144
- if (W) return /* @__PURE__ */ l(ne, {
145
- message: W.message,
146
- onRetry: () => void G()
144
+ if (U) return /* @__PURE__ */ d(te, {
145
+ message: U.message,
146
+ onRetry: () => void W()
147
147
  });
148
- if (K.length === 0) {
149
- let e = I !== j || R !== j;
150
- return /* @__PURE__ */ l(i, {
151
- icon: oe,
148
+ if (G.length === 0) {
149
+ let e = F !== A || L !== A;
150
+ return /* @__PURE__ */ d(a, {
151
+ icon: ae,
152
152
  title: e ? "No grants match these filters" : "No access grants yet",
153
153
  description: e ? "Try clearing the dataset or status filter to see more grants." : "Grant a workspace member scoped access to a restricted or embargoed dataset.",
154
154
  action: e ? void 0 : Q
155
155
  });
156
156
  }
157
- return /* @__PURE__ */ l("div", {
158
- className: "overflow-x-auto rounded-card border border-border-default bg-bg-elevated",
159
- children: /* @__PURE__ */ u(ce, { children: [/* @__PURE__ */ l(O, { children: /* @__PURE__ */ u(k, { children: [
160
- $ ? /* @__PURE__ */ l(D, { children: "Dataset" }) : null,
161
- /* @__PURE__ */ l(D, { children: "Grantee" }),
162
- /* @__PURE__ */ l(D, { children: "Status" }),
163
- /* @__PURE__ */ l(D, { children: "Scopes" }),
164
- /* @__PURE__ */ l(D, { children: "Reason" }),
165
- /* @__PURE__ */ l(D, { children: "Granted" }),
166
- /* @__PURE__ */ l(D, { children: "Expires" }),
167
- /* @__PURE__ */ l(D, { children: "Revoked" }),
168
- /* @__PURE__ */ l(D, {
157
+ return /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d("div", {
158
+ className: "hidden rounded-card border border-border-default bg-bg-elevated md:block",
159
+ children: /* @__PURE__ */ f(ce, { children: [/* @__PURE__ */ d(ue, { children: /* @__PURE__ */ f(k, { children: [
160
+ $ ? /* @__PURE__ */ d(O, { children: "Dataset" }) : null,
161
+ /* @__PURE__ */ d(O, { children: "Grantee" }),
162
+ /* @__PURE__ */ d(O, { children: "Status" }),
163
+ /* @__PURE__ */ d(O, { children: "Scopes" }),
164
+ /* @__PURE__ */ d(O, { children: "Reason" }),
165
+ /* @__PURE__ */ d(O, { children: "Granted" }),
166
+ /* @__PURE__ */ d(O, { children: "Expires" }),
167
+ /* @__PURE__ */ d(O, { children: "Revoked" }),
168
+ /* @__PURE__ */ d(O, {
169
169
  className: "text-right",
170
170
  children: "Actions"
171
171
  })
172
- ] }) }), /* @__PURE__ */ l(le, { children: K.map((e) => /* @__PURE__ */ u(k, { children: [
173
- $ ? /* @__PURE__ */ l(E, {
172
+ ] }) }), /* @__PURE__ */ d(le, { children: G.map((e) => /* @__PURE__ */ f(k, { children: [
173
+ $ ? /* @__PURE__ */ d(D, {
174
174
  className: "max-w-[12rem]",
175
- children: /* @__PURE__ */ l("span", {
175
+ children: /* @__PURE__ */ d("span", {
176
176
  className: "line-clamp-1 text-sm text-text-primary",
177
- children: H.get(e.datasetId) ?? /* @__PURE__ */ l("span", {
177
+ children: V.get(e.datasetId) ?? /* @__PURE__ */ d("span", {
178
178
  className: "font-mono text-xs text-text-secondary",
179
179
  children: e.datasetId
180
180
  })
181
181
  })
182
182
  }) : null,
183
- /* @__PURE__ */ l(E, {
183
+ /* @__PURE__ */ d(D, {
184
184
  className: "max-w-[12rem]",
185
- children: /* @__PURE__ */ l("span", {
185
+ children: /* @__PURE__ */ d("span", {
186
186
  className: "block truncate font-mono text-xs text-text-primary",
187
187
  children: e.granteeId
188
188
  })
189
189
  }),
190
- /* @__PURE__ */ l(E, { children: /* @__PURE__ */ l(a, { status: e.status }) }),
191
- /* @__PURE__ */ l(E, { children: /* @__PURE__ */ l("div", {
190
+ /* @__PURE__ */ d(D, { children: /* @__PURE__ */ d(o, { status: e.status }) }),
191
+ /* @__PURE__ */ d(D, { children: /* @__PURE__ */ d("div", {
192
192
  className: "flex max-w-[12rem] flex-wrap gap-1",
193
- children: e.scopes.length === 0 ? /* @__PURE__ */ l("span", {
193
+ children: e.scopes.length === 0 ? /* @__PURE__ */ d("span", {
194
194
  className: "text-xs text-text-secondary",
195
195
  children: "—"
196
- }) : e.scopes.map((e) => /* @__PURE__ */ l(f, {
196
+ }) : e.scopes.map((e) => /* @__PURE__ */ d(m, {
197
197
  variant: "outline",
198
198
  className: "text-xs",
199
199
  children: e
200
200
  }, e))
201
201
  }) }),
202
- /* @__PURE__ */ l(E, {
202
+ /* @__PURE__ */ d(D, {
203
203
  className: "max-w-[14rem]",
204
- children: e.reason ? /* @__PURE__ */ l("span", {
204
+ children: e.reason ? /* @__PURE__ */ d("span", {
205
205
  className: "line-clamp-1 text-sm text-text-secondary",
206
206
  children: e.reason
207
- }) : /* @__PURE__ */ l("span", {
207
+ }) : /* @__PURE__ */ d("span", {
208
208
  className: "text-sm text-text-secondary",
209
209
  children: "—"
210
210
  })
211
211
  }),
212
- /* @__PURE__ */ l(E, {
212
+ /* @__PURE__ */ d(D, {
213
213
  className: "whitespace-nowrap text-sm text-text-secondary",
214
- children: P(e.grantedAt)
214
+ children: N(e.grantedAt)
215
215
  }),
216
- /* @__PURE__ */ l(E, {
216
+ /* @__PURE__ */ d(D, {
217
217
  className: "whitespace-nowrap text-sm text-text-secondary",
218
- children: P(e.expiresAt)
218
+ children: N(e.expiresAt)
219
219
  }),
220
- /* @__PURE__ */ l(E, {
220
+ /* @__PURE__ */ d(D, {
221
221
  className: "whitespace-nowrap text-sm text-text-secondary",
222
- children: P(e.revokedAt)
222
+ children: N(e.revokedAt)
223
223
  }),
224
- /* @__PURE__ */ l(E, {
224
+ /* @__PURE__ */ d(D, {
225
225
  className: "text-right",
226
- children: N(e.status) ? /* @__PURE__ */ l(te, {
226
+ children: M(e.status) ? /* @__PURE__ */ d(i, {
227
227
  ariaLabel: `Actions for grant to ${e.granteeId}`,
228
228
  entityName: e.granteeId,
229
- onDelete: () => ge(e),
229
+ onDelete: () => Z(e),
230
230
  deleteLabel: "Revoke grant"
231
- }) : /* @__PURE__ */ l("span", {
231
+ }) : /* @__PURE__ */ d("span", {
232
232
  className: "text-xs text-text-secondary",
233
233
  children: "—"
234
234
  })
235
235
  })
236
236
  ] }, e.id)) })] })
237
- });
237
+ }), /* @__PURE__ */ d("ul", {
238
+ className: "space-y-3 md:hidden",
239
+ children: G.map((e) => /* @__PURE__ */ d("li", {
240
+ className: "rounded-card border border-border-default bg-bg-elevated",
241
+ children: /* @__PURE__ */ f("div", {
242
+ className: "flex items-start justify-between gap-2 p-4",
243
+ children: [/* @__PURE__ */ f("div", {
244
+ className: "min-w-0 flex-1 space-y-2",
245
+ children: [
246
+ /* @__PURE__ */ f("div", {
247
+ className: "flex flex-wrap items-center gap-2",
248
+ children: [$ ? /* @__PURE__ */ d("span", {
249
+ className: "truncate text-sm font-medium text-text-primary",
250
+ children: V.get(e.datasetId) ?? "Dataset"
251
+ }) : null, /* @__PURE__ */ d(o, { status: e.status })]
252
+ }),
253
+ /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
254
+ className: "text-xs text-text-secondary",
255
+ children: "Grantee (User ID)"
256
+ }), /* @__PURE__ */ d("p", {
257
+ className: "truncate font-mono text-xs text-text-primary",
258
+ children: e.granteeId
259
+ })] }),
260
+ e.scopes.length > 0 ? /* @__PURE__ */ d("div", {
261
+ className: "flex flex-wrap gap-1",
262
+ children: e.scopes.map((e) => /* @__PURE__ */ d(m, {
263
+ variant: "outline",
264
+ className: "text-xs",
265
+ children: e
266
+ }, e))
267
+ }) : null,
268
+ e.reason ? /* @__PURE__ */ d("p", {
269
+ className: "line-clamp-2 text-xs text-text-secondary",
270
+ children: e.reason
271
+ }) : null,
272
+ /* @__PURE__ */ f("div", {
273
+ className: "flex flex-wrap gap-x-3 gap-y-1 text-xs text-text-secondary",
274
+ children: [
275
+ /* @__PURE__ */ f("span", { children: ["Granted ", N(e.grantedAt)] }),
276
+ /* @__PURE__ */ f("span", { children: ["Expires ", N(e.expiresAt)] }),
277
+ e.revokedAt ? /* @__PURE__ */ f("span", { children: ["Revoked ", N(e.revokedAt)] }) : null
278
+ ]
279
+ })
280
+ ]
281
+ }), M(e.status) ? /* @__PURE__ */ d(i, {
282
+ ariaLabel: `Actions for grant to ${e.granteeId}`,
283
+ entityName: e.granteeId,
284
+ onDelete: () => Z(e),
285
+ deleteLabel: "Revoke grant"
286
+ }) : null]
287
+ })
288
+ }, e.id))
289
+ })] });
238
290
  })()]
239
- }), /* @__PURE__ */ l(m, {
240
- open: pe,
241
- onOpenChange: (e) => J(e || q ? e : !1),
242
- children: /* @__PURE__ */ u(h, {
291
+ }), /* @__PURE__ */ d(oe, {
292
+ open: he,
293
+ onOpenChange: (e) => q(e || K ? e : !1),
294
+ children: /* @__PURE__ */ f(se, {
243
295
  className: "max-h-[85vh] max-w-md overflow-y-auto",
244
296
  children: [
245
- /* @__PURE__ */ u(_, { children: [/* @__PURE__ */ l(v, { children: "Grant data access" }), /* @__PURE__ */ l(g, { children: "Give a workspace member scoped access to a dataset. Access is identified by the member's User ID." })] }),
246
- /* @__PURE__ */ u("div", {
297
+ /* @__PURE__ */ f(v, { children: [/* @__PURE__ */ d(y, { children: "Grant data access" }), /* @__PURE__ */ d(g, { children: "Give a workspace member scoped access to a dataset. Access is identified by the member's User ID." })] }),
298
+ /* @__PURE__ */ f("div", {
247
299
  className: "space-y-4",
248
300
  children: [
249
- /* @__PURE__ */ u("div", {
301
+ /* @__PURE__ */ f("div", {
250
302
  className: "space-y-1.5",
251
- children: [/* @__PURE__ */ l(b, {
303
+ children: [/* @__PURE__ */ d(x, {
252
304
  htmlFor: "grant-dataset",
253
305
  children: "Dataset"
254
- }), /* @__PURE__ */ u(x, {
255
- value: Y.datasetId || void 0,
256
- onValueChange: (e) => Z("datasetId", e),
257
- children: [/* @__PURE__ */ l(w, {
306
+ }), /* @__PURE__ */ f(S, {
307
+ value: J.datasetId || void 0,
308
+ onValueChange: (e) => X("datasetId", e),
309
+ children: [/* @__PURE__ */ d(T, {
258
310
  id: "grant-dataset",
259
311
  "aria-label": "Dataset",
260
- children: /* @__PURE__ */ l(T, { placeholder: "Select a dataset" })
261
- }), /* @__PURE__ */ l(S, { children: V.map((e) => /* @__PURE__ */ l(C, {
312
+ children: /* @__PURE__ */ d(E, { placeholder: "Select a dataset" })
313
+ }), /* @__PURE__ */ d(C, { children: B.map((e) => /* @__PURE__ */ d(w, {
262
314
  value: e.id,
263
315
  children: e.name
264
316
  }, e.id)) })]
265
317
  })]
266
318
  }),
267
- /* @__PURE__ */ u("div", {
319
+ /* @__PURE__ */ f("div", {
268
320
  className: "space-y-1.5",
269
321
  children: [
270
- /* @__PURE__ */ l(b, {
322
+ /* @__PURE__ */ d(x, {
271
323
  htmlFor: "grant-grantee",
272
324
  children: "Grantee (User ID)"
273
325
  }),
274
- /* @__PURE__ */ l(y, {
326
+ /* @__PURE__ */ d(b, {
275
327
  id: "grant-grantee",
276
- value: Y.granteeId,
277
- onChange: (e) => Z("granteeId", e.target.value),
328
+ value: J.granteeId,
329
+ onChange: (e) => X("granteeId", e.target.value),
278
330
  placeholder: "e.g. 4fe35990-…",
279
331
  className: "font-mono"
280
332
  }),
281
- /* @__PURE__ */ l("p", {
333
+ /* @__PURE__ */ d("p", {
282
334
  className: "text-xs text-text-secondary",
283
335
  children: "Paste the workspace member's User ID. You can copy it from the member's profile (“Get ID”) or the workspace member directory."
284
336
  })
285
337
  ]
286
338
  }),
287
- /* @__PURE__ */ l(ie, {
288
- value: Y.scopes,
289
- onChange: (e) => Z("scopes", e),
339
+ /* @__PURE__ */ d(re, {
340
+ value: J.scopes,
341
+ onChange: (e) => X("scopes", e),
290
342
  label: "Scopes",
291
343
  placeholder: "e.g. read, download"
292
344
  }),
293
- /* @__PURE__ */ u("div", {
345
+ /* @__PURE__ */ f("div", {
294
346
  className: "space-y-1.5",
295
- children: [/* @__PURE__ */ l(b, {
347
+ children: [/* @__PURE__ */ d(x, {
296
348
  htmlFor: "grant-reason",
297
349
  children: "Reason"
298
- }), /* @__PURE__ */ l(A, {
350
+ }), /* @__PURE__ */ d(de, {
299
351
  id: "grant-reason",
300
- value: Y.reason,
301
- onChange: (e) => Z("reason", e.target.value),
352
+ value: J.reason,
353
+ onChange: (e) => X("reason", e.target.value),
302
354
  rows: 2,
303
355
  placeholder: "Why this member needs access."
304
356
  })]
305
357
  }),
306
- /* @__PURE__ */ u("div", {
358
+ /* @__PURE__ */ f("div", {
307
359
  className: "space-y-1.5",
308
360
  children: [
309
- /* @__PURE__ */ l(b, {
361
+ /* @__PURE__ */ d(x, {
310
362
  htmlFor: "grant-expires",
311
363
  children: "Expires (optional)"
312
364
  }),
313
- /* @__PURE__ */ l(y, {
365
+ /* @__PURE__ */ d(b, {
314
366
  id: "grant-expires",
315
367
  type: "datetime-local",
316
- value: Y.expiresAt,
317
- onChange: (e) => Z("expiresAt", e.target.value)
368
+ value: J.expiresAt,
369
+ onChange: (e) => X("expiresAt", e.target.value)
318
370
  }),
319
- /* @__PURE__ */ l("p", {
371
+ /* @__PURE__ */ d("p", {
320
372
  className: "text-xs text-text-secondary",
321
373
  children: "Leave blank for an open-ended grant."
322
374
  })
@@ -324,17 +376,17 @@ function I() {
324
376
  })
325
377
  ]
326
378
  }),
327
- /* @__PURE__ */ u(se, { children: [/* @__PURE__ */ l(p, {
379
+ /* @__PURE__ */ f(_, { children: [/* @__PURE__ */ d(h, {
328
380
  type: "button",
329
381
  variant: "outline",
330
- onClick: () => J(!1),
331
- disabled: q,
382
+ onClick: () => q(!1),
383
+ disabled: K,
332
384
  children: "Cancel"
333
- }), /* @__PURE__ */ u(p, {
385
+ }), /* @__PURE__ */ f(h, {
334
386
  type: "button",
335
- onClick: () => void he(),
336
- disabled: q,
337
- children: [/* @__PURE__ */ l(d, { className: "size-4" }), q ? "Granting…" : "Grant access"]
387
+ onClick: () => void _e(),
388
+ disabled: K,
389
+ children: [/* @__PURE__ */ d(p, { className: "size-4" }), K ? "Granting…" : "Grant access"]
338
390
  })] })
339
391
  ]
340
392
  })
@@ -342,6 +394,6 @@ function I() {
342
394
  });
343
395
  }
344
396
  //#endregion
345
- export { I as default };
397
+ export { F as default };
346
398
 
347
399
  //# sourceMappingURL=AccessPage.js.map