@burdenoff/microfe-cosmicintersection 2026.805.1 → 2026.830.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.
- package/dist/cosmicintersection/api/cosmicApi.d.ts +84 -2
- package/dist/cosmicintersection/api/cosmicApi.d.ts.map +1 -1
- package/dist/cosmicintersection/api/cosmicApi.js +135 -79
- package/dist/cosmicintersection/api/cosmicApi.js.map +1 -1
- package/dist/cosmicintersection/components/ActionMenu.d.ts +1 -1
- package/dist/cosmicintersection/components/ActionMenu.d.ts.map +1 -1
- package/dist/cosmicintersection/components/ActionMenu.js +51 -54
- package/dist/cosmicintersection/components/ActionMenu.js.map +1 -1
- package/dist/cosmicintersection/components/EntityFormShell.d.ts +1 -1
- package/dist/cosmicintersection/components/EntityFormShell.d.ts.map +1 -1
- package/dist/cosmicintersection/components/EntityFormShell.js +29 -27
- package/dist/cosmicintersection/components/EntityFormShell.js.map +1 -1
- package/dist/cosmicintersection/components/ErrorState.d.ts +1 -1
- package/dist/cosmicintersection/components/ErrorState.d.ts.map +1 -1
- package/dist/cosmicintersection/components/ErrorState.js +19 -17
- package/dist/cosmicintersection/components/ErrorState.js.map +1 -1
- package/dist/cosmicintersection/components/FileUploadField.d.ts.map +1 -1
- package/dist/cosmicintersection/components/FileUploadField.js +61 -60
- package/dist/cosmicintersection/components/FileUploadField.js.map +1 -1
- package/dist/cosmicintersection/components/LineageGraph.d.ts +6 -1
- package/dist/cosmicintersection/components/LineageGraph.d.ts.map +1 -1
- package/dist/cosmicintersection/components/LineageGraph.js.map +1 -1
- package/dist/cosmicintersection/components/LoadingState.d.ts +1 -1
- package/dist/cosmicintersection/components/LoadingState.d.ts.map +1 -1
- package/dist/cosmicintersection/components/LoadingState.js +15 -13
- package/dist/cosmicintersection/components/LoadingState.js.map +1 -1
- package/dist/cosmicintersection/components/PageLayout.d.ts.map +1 -1
- package/dist/cosmicintersection/components/PageLayout.js +28 -27
- package/dist/cosmicintersection/components/PageLayout.js.map +1 -1
- package/dist/cosmicintersection/components/Pagination.d.ts.map +1 -1
- package/dist/cosmicintersection/components/Pagination.js +38 -35
- package/dist/cosmicintersection/components/Pagination.js.map +1 -1
- package/dist/cosmicintersection/components/StatusBadge.d.ts.map +1 -1
- package/dist/cosmicintersection/components/StatusBadge.js +30 -9
- package/dist/cosmicintersection/components/StatusBadge.js.map +1 -1
- package/dist/cosmicintersection/components/StepDAG.d.ts.map +1 -1
- package/dist/cosmicintersection/components/StepDAG.js +22 -18
- package/dist/cosmicintersection/components/StepDAG.js.map +1 -1
- package/dist/cosmicintersection/pages/access/AccessPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/access/AccessPage.js +147 -146
- package/dist/cosmicintersection/pages/access/AccessPage.js.map +1 -1
- package/dist/cosmicintersection/pages/analyses/AnalysesPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/analyses/AnalysesPage.js +260 -259
- package/dist/cosmicintersection/pages/analyses/AnalysesPage.js.map +1 -1
- package/dist/cosmicintersection/pages/collections/CollectionsPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/collections/CollectionsPage.js +80 -65
- package/dist/cosmicintersection/pages/collections/CollectionsPage.js.map +1 -1
- package/dist/cosmicintersection/pages/dashboard/DashboardPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/dashboard/DashboardPage.js +132 -131
- package/dist/cosmicintersection/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/cosmicintersection/pages/datasets/DatasetDetailPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/datasets/DatasetDetailPage.js +212 -164
- package/dist/cosmicintersection/pages/datasets/DatasetDetailPage.js.map +1 -1
- package/dist/cosmicintersection/pages/datasets/DatasetsPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/datasets/DatasetsPage.js +178 -177
- package/dist/cosmicintersection/pages/datasets/DatasetsPage.js.map +1 -1
- package/dist/cosmicintersection/pages/discovery/DiscoveryPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/discovery/DiscoveryPage.js +138 -145
- package/dist/cosmicintersection/pages/discovery/DiscoveryPage.js.map +1 -1
- package/dist/cosmicintersection/pages/lineage/LineagePage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/lineage/LineagePage.js +78 -88
- package/dist/cosmicintersection/pages/lineage/LineagePage.js.map +1 -1
- package/dist/cosmicintersection/pages/notebooks/NotebooksPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/notebooks/NotebooksPage.js +125 -124
- package/dist/cosmicintersection/pages/notebooks/NotebooksPage.js.map +1 -1
- package/dist/cosmicintersection/pages/pipelines/PipelinesPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/pipelines/PipelinesPage.js +152 -151
- package/dist/cosmicintersection/pages/pipelines/PipelinesPage.js.map +1 -1
- package/dist/cosmicintersection/pages/releases/ReleasesPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/releases/ReleasesPage.js +175 -174
- package/dist/cosmicintersection/pages/releases/ReleasesPage.js.map +1 -1
- package/dist/cosmicintersection/pages/runs/RunDetailPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/runs/RunDetailPage.js +252 -118
- package/dist/cosmicintersection/pages/runs/RunDetailPage.js.map +1 -1
- package/dist/cosmicintersection/pages/runs/RunsPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/runs/RunsPage.js +197 -188
- package/dist/cosmicintersection/pages/runs/RunsPage.js.map +1 -1
- package/dist/cosmicintersection/pages/sources/SourcesPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/sources/SourcesPage.js +65 -64
- package/dist/cosmicintersection/pages/sources/SourcesPage.js.map +1 -1
- package/dist/dev/main.d.ts.map +1 -1
- package/dist/shared/hooks/useTr.d.ts +12 -0
- package/dist/shared/hooks/useTr.d.ts.map +1 -0
- package/dist/shared/hooks/useTr.js +16 -0
- package/dist/shared/hooks/useTr.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { useCosmicIntersection as e } from "../../context/CosmicIntersectionContext.js";
|
|
2
2
|
import { notify as t } from "../../lib/toast.js";
|
|
3
|
-
import { useCosArchiveDatasetMutation as n, useCosCollectionsQuery as r, useCosDatasetsQuery as i, useCosPublishDatasetMutation as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
3
|
+
import { useCosArchiveDatasetMutation as n, useCosCollectionsQuery as r, useCosDatasetsQuery as i, useCosPublishDatasetMutation as ee, useCosSourcesQuery as te } from "../../api/cosmicApi.js";
|
|
4
|
+
import { useTr as ne } from "../../../shared/hooks/useTr.js";
|
|
5
|
+
import a from "../../components/ActionMenu.js";
|
|
6
|
+
import re from "../../components/EmptyState.js";
|
|
7
|
+
import ie from "../../components/ErrorState.js";
|
|
8
|
+
import o from "../../components/LoadingState.js";
|
|
9
|
+
import s from "../../components/PageLayout.js";
|
|
10
|
+
import c, { usePagination as ae } from "../../components/Pagination.js";
|
|
11
|
+
import l, { formatEnumLabel as u } from "../../components/StatusBadge.js";
|
|
11
12
|
import "../../components/index.js";
|
|
12
|
-
import { useMemo as
|
|
13
|
-
import { Fragment as
|
|
14
|
-
import { Compass as
|
|
15
|
-
import { Badge as
|
|
13
|
+
import { useMemo as d, useState as f } from "react";
|
|
14
|
+
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
15
|
+
import { Compass as g, Database as _, Plus as v } from "lucide-react";
|
|
16
|
+
import { Badge as y, Button as b, Select as x, SelectContent as S, SelectItem as C, SelectTrigger as w, SelectValue as T, Table as oe, TableBody as se, TableCell as E, TableHead as D, TableHeader as ce, TableRow as O } from "@burdenoff/fe-libs/ui";
|
|
16
17
|
//#region src/cosmicintersection/pages/datasets/DatasetsPage.tsx
|
|
17
|
-
var
|
|
18
|
+
var le = [
|
|
18
19
|
"DRAFT",
|
|
19
20
|
"INGESTING",
|
|
20
21
|
"AVAILABLE",
|
|
21
22
|
"DEPRECATED",
|
|
22
23
|
"ARCHIVED"
|
|
23
|
-
],
|
|
24
|
+
], k = [
|
|
24
25
|
"PUBLIC",
|
|
25
26
|
"WORKSPACE",
|
|
26
27
|
"RESTRICTED",
|
|
27
28
|
"EMBARGOED"
|
|
28
|
-
], A = "__all__",
|
|
29
|
+
], A = "__all__", ue = 200;
|
|
29
30
|
function j(e) {
|
|
30
31
|
if (!e) return "—";
|
|
31
32
|
let t = Number(e);
|
|
@@ -47,342 +48,342 @@ function M(e) {
|
|
|
47
48
|
return Number.isNaN(t.getTime()) ? "—" : t.toLocaleDateString();
|
|
48
49
|
}
|
|
49
50
|
function N() {
|
|
50
|
-
let { navigate: N } = e(),
|
|
51
|
+
let { navigate: N } = e(), P = ne(), [F, I] = f(A), [L, R] = f(A), [z, B] = f(A), [V, H] = f(A), [U, de] = f(A), W = ae({
|
|
51
52
|
pageSize: 20,
|
|
52
|
-
resetKey: `${
|
|
53
|
-
}), { data: G, loading: K, error:
|
|
54
|
-
status:
|
|
55
|
-
sourceId:
|
|
56
|
-
collectionId:
|
|
57
|
-
format:
|
|
58
|
-
accessLevel:
|
|
53
|
+
resetKey: `${F}|${L}|${z}|${V}|${U}`
|
|
54
|
+
}), { data: G, loading: K, error: fe, refetch: q } = i({
|
|
55
|
+
status: F === A ? void 0 : F,
|
|
56
|
+
sourceId: L === A ? void 0 : L,
|
|
57
|
+
collectionId: z === A ? void 0 : z,
|
|
58
|
+
format: V === A ? void 0 : V,
|
|
59
|
+
accessLevel: U === A ? void 0 : U,
|
|
59
60
|
pagination: {
|
|
60
61
|
limit: W.limit,
|
|
61
62
|
offset: W.offset
|
|
62
63
|
}
|
|
63
|
-
}),
|
|
64
|
+
}), pe = te({ pagination: {
|
|
64
65
|
limit: 100,
|
|
65
66
|
offset: 0
|
|
66
|
-
} }),
|
|
67
|
-
limit:
|
|
67
|
+
} }), me = r(), J = i({ pagination: {
|
|
68
|
+
limit: ue,
|
|
68
69
|
offset: 0
|
|
69
|
-
} }), [
|
|
70
|
+
} }), [he] = ee(), [ge] = n(), Y = d(() => G?.cosListDatasets?.items ?? [], [G]), _e = G?.cosListDatasets?.pageInfo, ve = pe.data?.cosListSources?.items ?? [], ye = me.data?.cosListCollections ?? [], X = d(() => {
|
|
70
71
|
let e = /* @__PURE__ */ new Set();
|
|
71
72
|
for (let t of J.data?.cosListDatasets?.items ?? []) t.format && e.add(t.format);
|
|
72
73
|
return [...e].sort((e, t) => e.localeCompare(t));
|
|
73
|
-
}, [J.data]), Z =
|
|
74
|
-
(await
|
|
74
|
+
}, [J.data]), Z = F === A && L === A && z === A && V === A && U === A, Q = async (e) => {
|
|
75
|
+
(await he({ variables: { id: e.id } })).data?.cosPublishDataset && (t.success(P("cosmicintersection.pages.datasets.publishSuccess", "Dataset published"), P("cosmicintersection.pages.datasets.publishSuccessDescription", "“{{name}}” is now available.", { name: e.name })), await q());
|
|
75
76
|
}, $ = async (e) => {
|
|
76
|
-
let n = await
|
|
77
|
+
let n = await ge({ variables: { id: e.id } });
|
|
77
78
|
if (n.error) throw Error(n.error.message);
|
|
78
|
-
if (!n.data?.cosArchiveDataset) throw t.error("Could not archive dataset", "The server did not confirm the change."), Error("Archive not confirmed");
|
|
79
|
-
t.success("Dataset archived"), await q();
|
|
79
|
+
if (!n.data?.cosArchiveDataset) throw t.error(P("cosmicintersection.pages.datasets.archiveError", "Could not archive dataset"), P("cosmicintersection.pages.datasets.archiveErrorDescription", "The server did not confirm the change.")), Error("Archive not confirmed");
|
|
80
|
+
t.success(P("cosmicintersection.pages.datasets.archiveSuccess", "Dataset archived")), await q();
|
|
80
81
|
};
|
|
81
|
-
return /* @__PURE__ */
|
|
82
|
-
title: "Datasets",
|
|
83
|
-
description: "Federated science datasets — catalog, schema, lineage and access, all from live data.",
|
|
84
|
-
actions: /* @__PURE__ */
|
|
82
|
+
return /* @__PURE__ */ m(s, {
|
|
83
|
+
title: P("cosmicintersection.pages.datasets.title", "Datasets"),
|
|
84
|
+
description: P("cosmicintersection.pages.datasets.description", "Federated science datasets — catalog, schema, lineage and access, all from live data."),
|
|
85
|
+
actions: /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ h(b, {
|
|
85
86
|
type: "button",
|
|
86
87
|
variant: "outline",
|
|
87
88
|
onClick: () => N("discovery"),
|
|
88
|
-
children: [/* @__PURE__ */
|
|
89
|
-
}), /* @__PURE__ */
|
|
89
|
+
children: [/* @__PURE__ */ m(g, { className: "size-4" }), P("nav.discover", "Discover")]
|
|
90
|
+
}), /* @__PURE__ */ h(b, {
|
|
90
91
|
type: "button",
|
|
91
92
|
onClick: () => N("datasets/create"),
|
|
92
|
-
children: [/* @__PURE__ */
|
|
93
|
+
children: [/* @__PURE__ */ m(v, { className: "size-4" }), P("cosmicintersection.pages.datasets.create", "New dataset")]
|
|
93
94
|
})] }),
|
|
94
|
-
children: /* @__PURE__ */
|
|
95
|
+
children: /* @__PURE__ */ h("div", {
|
|
95
96
|
className: "space-y-4",
|
|
96
|
-
children: [/* @__PURE__ */
|
|
97
|
+
children: [/* @__PURE__ */ h("div", {
|
|
97
98
|
className: "flex flex-wrap items-end gap-3",
|
|
98
99
|
children: [
|
|
99
|
-
/* @__PURE__ */
|
|
100
|
+
/* @__PURE__ */ h("label", {
|
|
100
101
|
className: "space-y-1 text-sm",
|
|
101
|
-
children: [/* @__PURE__ */
|
|
102
|
+
children: [/* @__PURE__ */ m("span", {
|
|
102
103
|
className: "block font-medium text-text-primary",
|
|
103
|
-
children: "Status"
|
|
104
|
-
}), /* @__PURE__ */
|
|
105
|
-
value:
|
|
106
|
-
onValueChange:
|
|
107
|
-
children: [/* @__PURE__ */
|
|
108
|
-
"aria-label": "Filter by status",
|
|
104
|
+
children: P("cosmicintersection.common.status", "Status")
|
|
105
|
+
}), /* @__PURE__ */ h(x, {
|
|
106
|
+
value: F,
|
|
107
|
+
onValueChange: I,
|
|
108
|
+
children: [/* @__PURE__ */ m(w, {
|
|
109
|
+
"aria-label": P("cosmicintersection.common.filterByStatus", "Filter by status"),
|
|
109
110
|
className: "w-44",
|
|
110
|
-
children: /* @__PURE__ */
|
|
111
|
-
}), /* @__PURE__ */
|
|
111
|
+
children: /* @__PURE__ */ m(T, {})
|
|
112
|
+
}), /* @__PURE__ */ h(S, { children: [/* @__PURE__ */ m(C, {
|
|
112
113
|
value: A,
|
|
113
|
-
children: "All statuses"
|
|
114
|
-
}),
|
|
114
|
+
children: P("cosmicintersection.common.allStatuses", "All statuses")
|
|
115
|
+
}), le.map((e) => /* @__PURE__ */ m(C, {
|
|
115
116
|
value: e,
|
|
116
|
-
children:
|
|
117
|
+
children: u(e)
|
|
117
118
|
}, e))] })]
|
|
118
119
|
})]
|
|
119
120
|
}),
|
|
120
|
-
/* @__PURE__ */
|
|
121
|
+
/* @__PURE__ */ h("label", {
|
|
121
122
|
className: "space-y-1 text-sm",
|
|
122
|
-
children: [/* @__PURE__ */
|
|
123
|
+
children: [/* @__PURE__ */ m("span", {
|
|
123
124
|
className: "block font-medium text-text-primary",
|
|
124
|
-
children: "Source"
|
|
125
|
-
}), /* @__PURE__ */
|
|
126
|
-
value:
|
|
127
|
-
onValueChange:
|
|
128
|
-
children: [/* @__PURE__ */
|
|
129
|
-
"aria-label": "Filter by source",
|
|
125
|
+
children: P("cosmicintersection.common.source", "Source")
|
|
126
|
+
}), /* @__PURE__ */ h(x, {
|
|
127
|
+
value: L,
|
|
128
|
+
onValueChange: R,
|
|
129
|
+
children: [/* @__PURE__ */ m(w, {
|
|
130
|
+
"aria-label": P("cosmicintersection.common.filterBySource", "Filter by source"),
|
|
130
131
|
className: "w-48",
|
|
131
|
-
children: /* @__PURE__ */
|
|
132
|
-
}), /* @__PURE__ */
|
|
132
|
+
children: /* @__PURE__ */ m(T, {})
|
|
133
|
+
}), /* @__PURE__ */ h(S, { children: [/* @__PURE__ */ m(C, {
|
|
133
134
|
value: A,
|
|
134
|
-
children: "All sources"
|
|
135
|
-
}),
|
|
135
|
+
children: P("cosmicintersection.common.allSources", "All sources")
|
|
136
|
+
}), ve.map((e) => /* @__PURE__ */ m(C, {
|
|
136
137
|
value: e.id,
|
|
137
138
|
children: e.name
|
|
138
139
|
}, e.id))] })]
|
|
139
140
|
})]
|
|
140
141
|
}),
|
|
141
|
-
/* @__PURE__ */
|
|
142
|
+
/* @__PURE__ */ h("label", {
|
|
142
143
|
className: "space-y-1 text-sm",
|
|
143
|
-
children: [/* @__PURE__ */
|
|
144
|
+
children: [/* @__PURE__ */ m("span", {
|
|
144
145
|
className: "block font-medium text-text-primary",
|
|
145
|
-
children: "Collection"
|
|
146
|
-
}), /* @__PURE__ */
|
|
147
|
-
value:
|
|
148
|
-
onValueChange:
|
|
149
|
-
children: [/* @__PURE__ */
|
|
150
|
-
"aria-label": "Filter by collection",
|
|
146
|
+
children: P("cosmicintersection.common.collection", "Collection")
|
|
147
|
+
}), /* @__PURE__ */ h(x, {
|
|
148
|
+
value: z,
|
|
149
|
+
onValueChange: B,
|
|
150
|
+
children: [/* @__PURE__ */ m(w, {
|
|
151
|
+
"aria-label": P("cosmicintersection.common.filterByCollection", "Filter by collection"),
|
|
151
152
|
className: "w-48",
|
|
152
|
-
children: /* @__PURE__ */
|
|
153
|
-
}), /* @__PURE__ */
|
|
153
|
+
children: /* @__PURE__ */ m(T, {})
|
|
154
|
+
}), /* @__PURE__ */ h(S, { children: [/* @__PURE__ */ m(C, {
|
|
154
155
|
value: A,
|
|
155
|
-
children: "All collections"
|
|
156
|
-
}),
|
|
156
|
+
children: P("cosmicintersection.common.allCollections", "All collections")
|
|
157
|
+
}), ye.map((e) => /* @__PURE__ */ m(C, {
|
|
157
158
|
value: e.id,
|
|
158
159
|
children: e.name
|
|
159
160
|
}, e.id))] })]
|
|
160
161
|
})]
|
|
161
162
|
}),
|
|
162
|
-
/* @__PURE__ */
|
|
163
|
+
/* @__PURE__ */ h("label", {
|
|
163
164
|
className: "space-y-1 text-sm",
|
|
164
|
-
children: [/* @__PURE__ */
|
|
165
|
+
children: [/* @__PURE__ */ m("span", {
|
|
165
166
|
className: "block font-medium text-text-primary",
|
|
166
|
-
children: "Format"
|
|
167
|
-
}), /* @__PURE__ */
|
|
168
|
-
value:
|
|
169
|
-
onValueChange:
|
|
167
|
+
children: P("cosmicintersection.common.format", "Format")
|
|
168
|
+
}), /* @__PURE__ */ h(x, {
|
|
169
|
+
value: V,
|
|
170
|
+
onValueChange: H,
|
|
170
171
|
disabled: X.length === 0,
|
|
171
|
-
children: [/* @__PURE__ */
|
|
172
|
-
"aria-label": "Filter by format",
|
|
172
|
+
children: [/* @__PURE__ */ m(w, {
|
|
173
|
+
"aria-label": P("cosmicintersection.common.filterByFormat", "Filter by format"),
|
|
173
174
|
className: "w-40",
|
|
174
|
-
children: /* @__PURE__ */
|
|
175
|
-
}), /* @__PURE__ */
|
|
175
|
+
children: /* @__PURE__ */ m(T, {})
|
|
176
|
+
}), /* @__PURE__ */ h(S, { children: [/* @__PURE__ */ m(C, {
|
|
176
177
|
value: A,
|
|
177
|
-
children: "All formats"
|
|
178
|
-
}), X.map((e) => /* @__PURE__ */
|
|
178
|
+
children: P("cosmicintersection.common.allFormats", "All formats")
|
|
179
|
+
}), X.map((e) => /* @__PURE__ */ m(C, {
|
|
179
180
|
value: e,
|
|
180
181
|
children: e
|
|
181
182
|
}, e))] })]
|
|
182
183
|
})]
|
|
183
184
|
}),
|
|
184
|
-
/* @__PURE__ */
|
|
185
|
+
/* @__PURE__ */ h("label", {
|
|
185
186
|
className: "space-y-1 text-sm",
|
|
186
|
-
children: [/* @__PURE__ */
|
|
187
|
+
children: [/* @__PURE__ */ m("span", {
|
|
187
188
|
className: "block font-medium text-text-primary",
|
|
188
|
-
children: "Access"
|
|
189
|
-
}), /* @__PURE__ */
|
|
190
|
-
value:
|
|
191
|
-
onValueChange:
|
|
192
|
-
children: [/* @__PURE__ */
|
|
193
|
-
"aria-label": "Filter by access level",
|
|
189
|
+
children: P("cosmicintersection.common.access", "Access")
|
|
190
|
+
}), /* @__PURE__ */ h(x, {
|
|
191
|
+
value: U,
|
|
192
|
+
onValueChange: de,
|
|
193
|
+
children: [/* @__PURE__ */ m(w, {
|
|
194
|
+
"aria-label": P("cosmicintersection.common.filterByAccess", "Filter by access level"),
|
|
194
195
|
className: "w-44",
|
|
195
|
-
children: /* @__PURE__ */
|
|
196
|
-
}), /* @__PURE__ */
|
|
196
|
+
children: /* @__PURE__ */ m(T, {})
|
|
197
|
+
}), /* @__PURE__ */ h(S, { children: [/* @__PURE__ */ m(C, {
|
|
197
198
|
value: A,
|
|
198
|
-
children: "All access levels"
|
|
199
|
-
}),
|
|
199
|
+
children: P("cosmicintersection.common.allAccessLevels", "All access levels")
|
|
200
|
+
}), k.map((e) => /* @__PURE__ */ m(C, {
|
|
200
201
|
value: e,
|
|
201
|
-
children:
|
|
202
|
+
children: u(e)
|
|
202
203
|
}, e))] })]
|
|
203
204
|
})]
|
|
204
205
|
})
|
|
205
206
|
]
|
|
206
|
-
}), K ? /* @__PURE__ */
|
|
207
|
+
}), K ? /* @__PURE__ */ m(o, {
|
|
207
208
|
variant: "rows",
|
|
208
209
|
rows: 6,
|
|
209
|
-
label: "Loading datasets…"
|
|
210
|
-
}) :
|
|
211
|
-
message: "We could not load datasets. Please try again.",
|
|
210
|
+
label: P("cosmicintersection.pages.datasets.loading", "Loading datasets…")
|
|
211
|
+
}) : fe ? /* @__PURE__ */ m(ie, {
|
|
212
|
+
message: P("cosmicintersection.pages.datasets.error", "We could not load datasets. Please try again."),
|
|
212
213
|
onRetry: () => void q()
|
|
213
|
-
}) : Y.length === 0 ? /* @__PURE__ */
|
|
214
|
-
icon:
|
|
215
|
-
title: Z ? "No datasets yet." : "No datasets match these filters.",
|
|
216
|
-
description: Z ? "Register your first dataset to start federating science data across sources." : "Try a different status, source, collection, format or access level.",
|
|
217
|
-
action: Z ? /* @__PURE__ */
|
|
214
|
+
}) : Y.length === 0 ? /* @__PURE__ */ m(re, {
|
|
215
|
+
icon: _,
|
|
216
|
+
title: Z ? P("cosmicintersection.pages.datasets.emptyTitle", "No datasets yet.") : P("cosmicintersection.pages.datasets.emptyFilterTitle", "No datasets match these filters."),
|
|
217
|
+
description: Z ? P("cosmicintersection.pages.datasets.emptyDescription", "Register your first dataset to start federating science data across sources.") : P("cosmicintersection.pages.datasets.emptyFilterDescription", "Try a different status, source, collection, format or access level."),
|
|
218
|
+
action: Z ? /* @__PURE__ */ h(b, {
|
|
218
219
|
type: "button",
|
|
219
220
|
onClick: () => N("datasets/create"),
|
|
220
|
-
children: [/* @__PURE__ */
|
|
221
|
+
children: [/* @__PURE__ */ m(v, { className: "size-4" }), P("cosmicintersection.pages.datasets.create", "New dataset")]
|
|
221
222
|
}) : void 0
|
|
222
|
-
}) : /* @__PURE__ */
|
|
223
|
-
/* @__PURE__ */
|
|
223
|
+
}) : /* @__PURE__ */ h(p, { children: [
|
|
224
|
+
/* @__PURE__ */ m("div", {
|
|
224
225
|
className: "hidden rounded-card border border-border-default bg-bg-elevated md:block",
|
|
225
|
-
children: /* @__PURE__ */
|
|
226
|
-
/* @__PURE__ */
|
|
227
|
-
/* @__PURE__ */
|
|
228
|
-
/* @__PURE__ */
|
|
229
|
-
/* @__PURE__ */
|
|
230
|
-
/* @__PURE__ */
|
|
226
|
+
children: /* @__PURE__ */ h(oe, { children: [/* @__PURE__ */ m(ce, { children: /* @__PURE__ */ h(O, { children: [
|
|
227
|
+
/* @__PURE__ */ m(D, { children: P("cosmicintersection.common.name", "Name") }),
|
|
228
|
+
/* @__PURE__ */ m(D, { children: P("cosmicintersection.common.status", "Status") }),
|
|
229
|
+
/* @__PURE__ */ m(D, { children: P("cosmicintersection.common.access", "Access") }),
|
|
230
|
+
/* @__PURE__ */ m(D, { children: P("cosmicintersection.common.format", "Format") }),
|
|
231
|
+
/* @__PURE__ */ m(D, {
|
|
231
232
|
className: "text-right",
|
|
232
|
-
children: "Size"
|
|
233
|
+
children: P("cosmicintersection.common.size", "Size")
|
|
233
234
|
}),
|
|
234
|
-
/* @__PURE__ */
|
|
235
|
-
/* @__PURE__ */
|
|
236
|
-
/* @__PURE__ */
|
|
235
|
+
/* @__PURE__ */ m(D, { children: P("cosmicintersection.common.tags", "Tags") }),
|
|
236
|
+
/* @__PURE__ */ m(D, { children: P("cosmicintersection.common.updated", "Updated") }),
|
|
237
|
+
/* @__PURE__ */ m(D, {
|
|
237
238
|
className: "text-right",
|
|
238
|
-
children: "Actions"
|
|
239
|
+
children: P("cosmicintersection.common.actions", "Actions")
|
|
239
240
|
})
|
|
240
|
-
] }) }), /* @__PURE__ */
|
|
241
|
+
] }) }), /* @__PURE__ */ m(se, { children: Y.map((e) => /* @__PURE__ */ h(O, {
|
|
241
242
|
className: "cursor-pointer",
|
|
242
243
|
onClick: () => N(`datasets/${e.id}`),
|
|
243
244
|
children: [
|
|
244
|
-
/* @__PURE__ */
|
|
245
|
+
/* @__PURE__ */ h(E, { children: [/* @__PURE__ */ m("span", {
|
|
245
246
|
className: "font-medium text-text-primary",
|
|
246
247
|
children: e.name
|
|
247
|
-
}), e.description ? /* @__PURE__ */
|
|
248
|
+
}), e.description ? /* @__PURE__ */ m("p", {
|
|
248
249
|
className: "mt-0.5 line-clamp-1 max-w-xs text-xs text-text-secondary",
|
|
249
250
|
children: e.description
|
|
250
251
|
}) : null] }),
|
|
251
|
-
/* @__PURE__ */
|
|
252
|
-
/* @__PURE__ */
|
|
252
|
+
/* @__PURE__ */ m(E, { children: /* @__PURE__ */ m(l, { status: e.status }) }),
|
|
253
|
+
/* @__PURE__ */ m(E, { children: /* @__PURE__ */ m("span", {
|
|
253
254
|
className: "text-sm text-text-secondary",
|
|
254
|
-
children:
|
|
255
|
+
children: u(e.accessLevel)
|
|
255
256
|
}) }),
|
|
256
|
-
/* @__PURE__ */
|
|
257
|
+
/* @__PURE__ */ m(E, { children: /* @__PURE__ */ m("span", {
|
|
257
258
|
className: "text-sm text-text-secondary",
|
|
258
259
|
children: e.format || "—"
|
|
259
260
|
}) }),
|
|
260
|
-
/* @__PURE__ */
|
|
261
|
+
/* @__PURE__ */ m(E, {
|
|
261
262
|
className: "text-right text-sm tabular-nums text-text-secondary",
|
|
262
263
|
children: j(e.sizeBytes)
|
|
263
264
|
}),
|
|
264
|
-
/* @__PURE__ */
|
|
265
|
+
/* @__PURE__ */ m(E, { children: /* @__PURE__ */ m("div", {
|
|
265
266
|
className: "flex max-w-[12rem] flex-wrap gap-1",
|
|
266
|
-
children: e.tags.length === 0 ? /* @__PURE__ */
|
|
267
|
+
children: e.tags.length === 0 ? /* @__PURE__ */ m("span", {
|
|
267
268
|
className: "text-xs text-text-secondary",
|
|
268
269
|
children: "—"
|
|
269
|
-
}) : /* @__PURE__ */
|
|
270
|
+
}) : /* @__PURE__ */ h(p, { children: [e.tags.slice(0, 2).map((e) => /* @__PURE__ */ m(y, {
|
|
270
271
|
variant: "secondary",
|
|
271
272
|
children: e
|
|
272
|
-
}, e)), e.tags.length > 2 ? /* @__PURE__ */
|
|
273
|
+
}, e)), e.tags.length > 2 ? /* @__PURE__ */ h(y, {
|
|
273
274
|
variant: "secondary",
|
|
274
275
|
children: ["+", e.tags.length - 2]
|
|
275
276
|
}) : null] })
|
|
276
277
|
}) }),
|
|
277
|
-
/* @__PURE__ */
|
|
278
|
+
/* @__PURE__ */ m(E, {
|
|
278
279
|
className: "whitespace-nowrap text-sm text-text-secondary",
|
|
279
280
|
children: M(e.updatedAt)
|
|
280
281
|
}),
|
|
281
|
-
/* @__PURE__ */
|
|
282
|
+
/* @__PURE__ */ m(E, {
|
|
282
283
|
className: "text-right",
|
|
283
|
-
children: /* @__PURE__ */
|
|
284
|
-
ariaLabel:
|
|
284
|
+
children: /* @__PURE__ */ m(a, {
|
|
285
|
+
ariaLabel: P("cosmicintersection.common.actionsFor", "Actions for {{name}}", { name: e.name }),
|
|
285
286
|
entityName: e.name,
|
|
286
287
|
onView: () => N(`datasets/${e.id}`),
|
|
287
288
|
onEdit: () => N(`datasets/${e.id}/edit`),
|
|
288
289
|
extraItems: e.status === "AVAILABLE" || e.status === "ARCHIVED" ? [] : [{
|
|
289
290
|
key: "publish",
|
|
290
|
-
label: "Publish",
|
|
291
|
+
label: P("cosmicintersection.common.publish", "Publish"),
|
|
291
292
|
onSelect: () => void Q(e)
|
|
292
293
|
}],
|
|
293
294
|
onDelete: () => $(e),
|
|
294
|
-
deleteLabel: "Archive dataset"
|
|
295
|
+
deleteLabel: P("cosmicintersection.pages.datasets.archive", "Archive dataset")
|
|
295
296
|
})
|
|
296
297
|
})
|
|
297
298
|
]
|
|
298
299
|
}, e.id)) })] })
|
|
299
300
|
}),
|
|
300
|
-
/* @__PURE__ */
|
|
301
|
+
/* @__PURE__ */ m("ul", {
|
|
301
302
|
className: "space-y-3 md:hidden",
|
|
302
|
-
children: Y.map((e) => /* @__PURE__ */
|
|
303
|
+
children: Y.map((e) => /* @__PURE__ */ m("li", { children: /* @__PURE__ */ h("div", {
|
|
303
304
|
role: "button",
|
|
304
305
|
tabIndex: 0,
|
|
305
|
-
"aria-label":
|
|
306
|
+
"aria-label": P("cosmicintersection.common.open", "Open {{name}}", { name: e.name }),
|
|
306
307
|
onClick: () => N(`datasets/${e.id}`),
|
|
307
308
|
onKeyDown: (t) => {
|
|
308
309
|
(t.key === "Enter" || t.key === " ") && (t.preventDefault(), N(`datasets/${e.id}`));
|
|
309
310
|
},
|
|
310
311
|
className: "flex flex-col gap-3 rounded-card border border-border-default bg-bg-elevated p-4 outline-none transition-colors hover:bg-bg-sunken focus-visible:ring-2 focus-visible:ring-border-focus",
|
|
311
312
|
children: [
|
|
312
|
-
/* @__PURE__ */
|
|
313
|
+
/* @__PURE__ */ h("div", {
|
|
313
314
|
className: "flex items-start justify-between gap-3",
|
|
314
|
-
children: [/* @__PURE__ */
|
|
315
|
+
children: [/* @__PURE__ */ h("div", {
|
|
315
316
|
className: "min-w-0",
|
|
316
|
-
children: [/* @__PURE__ */
|
|
317
|
+
children: [/* @__PURE__ */ m("p", {
|
|
317
318
|
className: "font-medium text-text-primary",
|
|
318
319
|
children: e.name
|
|
319
|
-
}), e.description ? /* @__PURE__ */
|
|
320
|
+
}), e.description ? /* @__PURE__ */ m("p", {
|
|
320
321
|
className: "mt-0.5 line-clamp-2 text-xs text-text-secondary",
|
|
321
322
|
children: e.description
|
|
322
323
|
}) : null]
|
|
323
|
-
}), /* @__PURE__ */
|
|
324
|
+
}), /* @__PURE__ */ m("div", {
|
|
324
325
|
onClick: (e) => e.stopPropagation(),
|
|
325
|
-
children: /* @__PURE__ */
|
|
326
|
-
ariaLabel:
|
|
326
|
+
children: /* @__PURE__ */ m(a, {
|
|
327
|
+
ariaLabel: P("cosmicintersection.common.actionsFor", "Actions for {{name}}", { name: e.name }),
|
|
327
328
|
entityName: e.name,
|
|
328
329
|
onView: () => N(`datasets/${e.id}`),
|
|
329
330
|
onEdit: () => N(`datasets/${e.id}/edit`),
|
|
330
331
|
extraItems: e.status === "AVAILABLE" || e.status === "ARCHIVED" ? [] : [{
|
|
331
332
|
key: "publish",
|
|
332
|
-
label: "Publish",
|
|
333
|
+
label: P("cosmicintersection.common.publish", "Publish"),
|
|
333
334
|
onSelect: () => void Q(e)
|
|
334
335
|
}],
|
|
335
336
|
onDelete: () => $(e),
|
|
336
|
-
deleteLabel: "Archive dataset"
|
|
337
|
+
deleteLabel: P("cosmicintersection.pages.datasets.archive", "Archive dataset")
|
|
337
338
|
})
|
|
338
339
|
})]
|
|
339
340
|
}),
|
|
340
|
-
/* @__PURE__ */
|
|
341
|
+
/* @__PURE__ */ h("div", {
|
|
341
342
|
className: "flex flex-wrap items-center gap-1.5",
|
|
342
|
-
children: [/* @__PURE__ */
|
|
343
|
+
children: [/* @__PURE__ */ m(l, { status: e.status }), /* @__PURE__ */ m(l, { status: e.accessLevel })]
|
|
343
344
|
}),
|
|
344
|
-
/* @__PURE__ */
|
|
345
|
+
/* @__PURE__ */ h("dl", {
|
|
345
346
|
className: "grid grid-cols-2 gap-x-4 gap-y-1 text-xs",
|
|
346
347
|
children: [
|
|
347
|
-
/* @__PURE__ */
|
|
348
|
+
/* @__PURE__ */ h("div", {
|
|
348
349
|
className: "flex justify-between gap-2",
|
|
349
|
-
children: [/* @__PURE__ */
|
|
350
|
+
children: [/* @__PURE__ */ m("dt", {
|
|
350
351
|
className: "text-text-secondary",
|
|
351
|
-
children: "Format"
|
|
352
|
-
}), /* @__PURE__ */
|
|
352
|
+
children: P("cosmicintersection.common.format", "Format")
|
|
353
|
+
}), /* @__PURE__ */ m("dd", {
|
|
353
354
|
className: "text-text-primary",
|
|
354
355
|
children: e.format || "—"
|
|
355
356
|
})]
|
|
356
357
|
}),
|
|
357
|
-
/* @__PURE__ */
|
|
358
|
+
/* @__PURE__ */ h("div", {
|
|
358
359
|
className: "flex justify-between gap-2",
|
|
359
|
-
children: [/* @__PURE__ */
|
|
360
|
+
children: [/* @__PURE__ */ m("dt", {
|
|
360
361
|
className: "text-text-secondary",
|
|
361
|
-
children: "Size"
|
|
362
|
-
}), /* @__PURE__ */
|
|
362
|
+
children: P("cosmicintersection.common.size", "Size")
|
|
363
|
+
}), /* @__PURE__ */ m("dd", {
|
|
363
364
|
className: "tabular-nums text-text-primary",
|
|
364
365
|
children: j(e.sizeBytes)
|
|
365
366
|
})]
|
|
366
367
|
}),
|
|
367
|
-
/* @__PURE__ */
|
|
368
|
+
/* @__PURE__ */ h("div", {
|
|
368
369
|
className: "flex justify-between gap-2",
|
|
369
|
-
children: [/* @__PURE__ */
|
|
370
|
+
children: [/* @__PURE__ */ m("dt", {
|
|
370
371
|
className: "text-text-secondary",
|
|
371
|
-
children: "Updated"
|
|
372
|
-
}), /* @__PURE__ */
|
|
372
|
+
children: P("cosmicintersection.common.updated", "Updated")
|
|
373
|
+
}), /* @__PURE__ */ m("dd", {
|
|
373
374
|
className: "text-text-primary",
|
|
374
375
|
children: M(e.updatedAt)
|
|
375
376
|
})]
|
|
376
377
|
})
|
|
377
378
|
]
|
|
378
379
|
}),
|
|
379
|
-
e.tags.length > 0 ? /* @__PURE__ */
|
|
380
|
+
e.tags.length > 0 ? /* @__PURE__ */ h("div", {
|
|
380
381
|
className: "flex flex-wrap gap-1",
|
|
381
|
-
children: [e.tags.slice(0, 4).map((e) => /* @__PURE__ */
|
|
382
|
+
children: [e.tags.slice(0, 4).map((e) => /* @__PURE__ */ m(y, {
|
|
382
383
|
variant: "secondary",
|
|
383
384
|
className: "text-xs",
|
|
384
385
|
children: e
|
|
385
|
-
}, e)), e.tags.length > 4 ? /* @__PURE__ */
|
|
386
|
+
}, e)), e.tags.length > 4 ? /* @__PURE__ */ h("span", {
|
|
386
387
|
className: "text-xs text-text-secondary",
|
|
387
388
|
children: ["+", e.tags.length - 4]
|
|
388
389
|
}) : null]
|
|
@@ -390,14 +391,14 @@ function N() {
|
|
|
390
391
|
]
|
|
391
392
|
}) }, e.id))
|
|
392
393
|
}),
|
|
393
|
-
/* @__PURE__ */
|
|
394
|
+
/* @__PURE__ */ m(c, {
|
|
394
395
|
offset: W.offset,
|
|
395
396
|
limit: W.limit,
|
|
396
397
|
loadedCount: Y.length,
|
|
397
|
-
hasMore: !!
|
|
398
|
+
hasMore: !!_e?.hasMore,
|
|
398
399
|
onPrev: W.prevPage,
|
|
399
400
|
onNext: W.nextPage,
|
|
400
|
-
itemLabel: "datasets",
|
|
401
|
+
itemLabel: P("cosmicintersection.pages.datasets.itemLabel", "datasets"),
|
|
401
402
|
loading: K
|
|
402
403
|
})
|
|
403
404
|
] })]
|