@burdenoff/microfe-cosmicintersection 2026.1030.1 → 2026.1030.3
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/CosmicIntersectionRoutes.d.ts.map +1 -1
- package/dist/cosmicintersection/CosmicIntersectionRoutes.js +82 -77
- package/dist/cosmicintersection/CosmicIntersectionRoutes.js.map +1 -1
- package/dist/cosmicintersection/lib/assistantAwareDialog.d.ts +42 -0
- package/dist/cosmicintersection/lib/assistantAwareDialog.d.ts.map +1 -0
- package/dist/cosmicintersection/lib/assistantAwareDialog.js +12 -0
- package/dist/cosmicintersection/lib/assistantAwareDialog.js.map +1 -0
- package/dist/cosmicintersection/pages/analyses/AnalysesPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/analyses/AnalysesPage.js +185 -182
- package/dist/cosmicintersection/pages/analyses/AnalysesPage.js.map +1 -1
- package/dist/cosmicintersection/pages/releases/ReleasesPage.d.ts.map +1 -1
- package/dist/cosmicintersection/pages/releases/ReleasesPage.js +142 -139
- package/dist/cosmicintersection/pages/releases/ReleasesPage.js.map +1 -1
- package/dist/test/i18nMock.d.ts +16 -0
- package/dist/test/i18nMock.d.ts.map +1 -0
- package/dist/test/setup.d.ts +9 -0
- package/dist/test/setup.d.ts.map +1 -0
- package/package.json +11 -3
|
@@ -9,14 +9,15 @@ import oe from "../../components/LoadingState.js";
|
|
|
9
9
|
import i from "../../components/SafeLink.js";
|
|
10
10
|
import se from "../../components/DiscussionPanel.js";
|
|
11
11
|
import ce from "../../components/PageLayout.js";
|
|
12
|
-
import
|
|
12
|
+
import a, { usePagination as le } from "../../components/Pagination.js";
|
|
13
13
|
import o, { formatEnumLabel as ue } from "../../components/StatusBadge.js";
|
|
14
14
|
import "../../components/index.js";
|
|
15
|
-
import { useSelectedRecord as
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
15
|
+
import { useSelectedRecord as de } from "../../lib/useSelectedRecord.js";
|
|
16
|
+
import { ASSISTANT_AWARE_DIALOG_CONTENT_PROPS as fe, ASSISTANT_AWARE_DIALOG_ROOT_PROPS as pe } from "../../lib/assistantAwareDialog.js";
|
|
17
|
+
import { useMemo as s, useState as c } from "react";
|
|
18
|
+
import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
19
|
+
import { BookOpen as me, Database as he, ExternalLink as f, NotebookPen as ge, Plus as _e, Rocket as p } from "lucide-react";
|
|
20
|
+
import { Button as m, Dialog as h, DialogClose as ve, DialogContent as g, DialogDescription as _, DialogFooter as v, DialogHeader as y, DialogTitle as b, Input as x, Label as ye, Select as be, SelectContent as xe, SelectItem as S, SelectTrigger as Se, SelectValue as Ce, Table as we, TableBody as Te, TableCell as C, TableHead as w, TableHeader as Ee, TableRow as T } from "@burdenoff/fe-libs/ui";
|
|
20
21
|
//#region src/cosmicintersection/pages/releases/ReleasesPage.tsx
|
|
21
22
|
var E = "ALL", D = [
|
|
22
23
|
"DRAFT",
|
|
@@ -41,7 +42,7 @@ function A(e) {
|
|
|
41
42
|
return /^https?:\/\//i.test(t) ? t : `https://doi.org/${t.replace(/^doi:/i, "")}`;
|
|
42
43
|
}
|
|
43
44
|
function j() {
|
|
44
|
-
let { navigate: j } = e(), M = re(), [N,
|
|
45
|
+
let { navigate: j } = e(), M = re(), [N, De] = c(E), P = le({
|
|
45
46
|
pageSize: 20,
|
|
46
47
|
resetKey: N
|
|
47
48
|
}), { data: F, loading: I, error: L, refetch: R } = ne({
|
|
@@ -50,220 +51,220 @@ function j() {
|
|
|
50
51
|
limit: P.limit,
|
|
51
52
|
offset: P.offset
|
|
52
53
|
}
|
|
53
|
-
}), [
|
|
54
|
+
}), [Oe, { loading: z }] = n(), B = s(() => F?.cosListReleases.items ?? [], [F]), ke = F?.cosListReleases.pageInfo, V = ee({ pagination: {
|
|
54
55
|
limit: 100,
|
|
55
56
|
offset: 0
|
|
56
57
|
} }), H = te({ pagination: {
|
|
57
58
|
limit: 100,
|
|
58
59
|
offset: 0
|
|
59
|
-
} }),
|
|
60
|
+
} }), Ae = s(() => {
|
|
60
61
|
let e = /* @__PURE__ */ new Map();
|
|
61
62
|
for (let t of V.data?.cosListDatasets.items ?? []) e.set(t.id, t.name);
|
|
62
63
|
return e;
|
|
63
|
-
}, [V.data]), U =
|
|
64
|
+
}, [V.data]), U = s(() => {
|
|
64
65
|
let e = /* @__PURE__ */ new Map();
|
|
65
66
|
for (let t of H.data?.cosListNotebooks.items ?? []) e.set(t.id, t.title);
|
|
66
67
|
return e;
|
|
67
|
-
}, [H.data]), { selectedId: W, select:
|
|
68
|
+
}, [H.data]), { selectedId: W, select: je } = de(), G = s(() => W ? B.find((e) => e.id === W) ?? null : null, [B, W]), K = (e) => je(e ? e.id : null), q = (e) => {
|
|
68
69
|
K(null), j(e);
|
|
69
|
-
}, [J, Y] =
|
|
70
|
+
}, [J, Y] = c(null), [X, Z] = c(""), Q = (e) => {
|
|
70
71
|
Z(e.doi ?? ""), Y(e);
|
|
71
|
-
},
|
|
72
|
+
}, Me = async () => {
|
|
72
73
|
if (!J) return;
|
|
73
74
|
let e = X.trim();
|
|
74
|
-
(await
|
|
75
|
+
(await Oe({ variables: {
|
|
75
76
|
id: J.id,
|
|
76
77
|
doi: e || void 0
|
|
77
78
|
} })).data?.cosPublishRelease?.id && (t.success(M("cosmicintersection.pages.releases.publishSuccess", "Release published"), M("cosmicintersection.pages.releases.publishSuccessDescription", "“{{name}}” is now public.", { name: J.title })), Y(null), Z(""), await R());
|
|
78
|
-
}, $ = /* @__PURE__ */
|
|
79
|
+
}, $ = /* @__PURE__ */ d(m, {
|
|
79
80
|
type: "button",
|
|
80
81
|
onClick: () => j("releases/create"),
|
|
81
|
-
children: [/* @__PURE__ */
|
|
82
|
+
children: [/* @__PURE__ */ u(_e, { className: "size-4" }), M("cosmicintersection.pages.releases.create", "New release")]
|
|
82
83
|
});
|
|
83
|
-
return /* @__PURE__ */
|
|
84
|
+
return /* @__PURE__ */ d(ce, {
|
|
84
85
|
title: M("cosmicintersection.pages.releases.title", "Releases"),
|
|
85
86
|
description: M("cosmicintersection.pages.releases.description", "Citable, versioned publications that bundle datasets and notebooks for the community."),
|
|
86
87
|
actions: $,
|
|
87
88
|
children: [
|
|
88
|
-
/* @__PURE__ */
|
|
89
|
+
/* @__PURE__ */ d("div", {
|
|
89
90
|
className: "space-y-4",
|
|
90
|
-
children: [/* @__PURE__ */
|
|
91
|
+
children: [/* @__PURE__ */ u("div", {
|
|
91
92
|
className: "flex flex-wrap items-center gap-3",
|
|
92
|
-
children: /* @__PURE__ */
|
|
93
|
+
children: /* @__PURE__ */ u("div", {
|
|
93
94
|
className: "w-full max-w-[14rem]",
|
|
94
|
-
children: /* @__PURE__ */
|
|
95
|
+
children: /* @__PURE__ */ d(be, {
|
|
95
96
|
value: N,
|
|
96
|
-
onValueChange:
|
|
97
|
-
children: [/* @__PURE__ */
|
|
97
|
+
onValueChange: De,
|
|
98
|
+
children: [/* @__PURE__ */ u(Se, {
|
|
98
99
|
"aria-label": "Filter by status",
|
|
99
|
-
children: /* @__PURE__ */
|
|
100
|
-
}), /* @__PURE__ */
|
|
100
|
+
children: /* @__PURE__ */ u(Ce, { placeholder: "All statuses" })
|
|
101
|
+
}), /* @__PURE__ */ d(xe, { children: [/* @__PURE__ */ u(S, {
|
|
101
102
|
value: E,
|
|
102
103
|
children: "All statuses"
|
|
103
|
-
}), D.map((e) => /* @__PURE__ */
|
|
104
|
+
}), D.map((e) => /* @__PURE__ */ u(S, {
|
|
104
105
|
value: e,
|
|
105
106
|
children: ue(e)
|
|
106
107
|
}, e))] })]
|
|
107
108
|
})
|
|
108
109
|
})
|
|
109
110
|
}), (() => {
|
|
110
|
-
if (I) return /* @__PURE__ */
|
|
111
|
+
if (I) return /* @__PURE__ */ u(oe, {
|
|
111
112
|
variant: "rows",
|
|
112
113
|
rows: 6,
|
|
113
114
|
label: M("cosmicintersection.pages.releases.loading", "Loading releases…")
|
|
114
115
|
});
|
|
115
|
-
if (L) return /* @__PURE__ */
|
|
116
|
+
if (L) return /* @__PURE__ */ u(ae, {
|
|
116
117
|
message: L.message,
|
|
117
118
|
onRetry: () => void R()
|
|
118
119
|
});
|
|
119
120
|
if (B.length === 0) {
|
|
120
121
|
let e = N !== E;
|
|
121
|
-
return /* @__PURE__ */
|
|
122
|
-
icon:
|
|
122
|
+
return /* @__PURE__ */ u(ie, {
|
|
123
|
+
icon: p,
|
|
123
124
|
title: e ? M("cosmicintersection.pages.releases.emptyFilterTitle", "No releases match this filter") : M("cosmicintersection.pages.releases.emptyTitle", "No releases yet"),
|
|
124
125
|
description: e ? M("cosmicintersection.pages.releases.emptyFilterDescription", "Try clearing the status filter to see more releases.") : M("cosmicintersection.pages.releases.emptyDescription", "Package datasets and notebooks into a citable, versioned release for publication."),
|
|
125
126
|
action: e ? void 0 : $
|
|
126
127
|
});
|
|
127
128
|
}
|
|
128
|
-
return /* @__PURE__ */
|
|
129
|
-
/* @__PURE__ */
|
|
129
|
+
return /* @__PURE__ */ d(l, { children: [
|
|
130
|
+
/* @__PURE__ */ u("div", {
|
|
130
131
|
className: "hidden rounded-card border border-border-default bg-bg-elevated md:block",
|
|
131
|
-
children: /* @__PURE__ */
|
|
132
|
-
/* @__PURE__ */
|
|
133
|
-
/* @__PURE__ */
|
|
134
|
-
/* @__PURE__ */
|
|
135
|
-
/* @__PURE__ */
|
|
136
|
-
/* @__PURE__ */
|
|
137
|
-
/* @__PURE__ */
|
|
138
|
-
/* @__PURE__ */
|
|
139
|
-
/* @__PURE__ */
|
|
132
|
+
children: /* @__PURE__ */ d(we, { children: [/* @__PURE__ */ u(Ee, { children: /* @__PURE__ */ d(T, { children: [
|
|
133
|
+
/* @__PURE__ */ u(w, { children: "Title" }),
|
|
134
|
+
/* @__PURE__ */ u(w, { children: "Version" }),
|
|
135
|
+
/* @__PURE__ */ u(w, { children: "Status" }),
|
|
136
|
+
/* @__PURE__ */ u(w, { children: "DOI" }),
|
|
137
|
+
/* @__PURE__ */ u(w, { children: "Authors" }),
|
|
138
|
+
/* @__PURE__ */ u(w, { children: "Published" }),
|
|
139
|
+
/* @__PURE__ */ u(w, { children: "License" }),
|
|
140
|
+
/* @__PURE__ */ u(w, {
|
|
140
141
|
className: "text-right",
|
|
141
142
|
children: "Actions"
|
|
142
143
|
})
|
|
143
|
-
] }) }), /* @__PURE__ */
|
|
144
|
-
/* @__PURE__ */
|
|
144
|
+
] }) }), /* @__PURE__ */ u(Te, { children: B.map((e) => /* @__PURE__ */ d(T, { children: [
|
|
145
|
+
/* @__PURE__ */ u(C, { children: /* @__PURE__ */ u("button", {
|
|
145
146
|
type: "button",
|
|
146
147
|
onClick: () => K(e),
|
|
147
148
|
className: "text-left font-medium text-text-primary underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-border-focus",
|
|
148
149
|
children: e.title
|
|
149
150
|
}) }),
|
|
150
|
-
/* @__PURE__ */
|
|
151
|
+
/* @__PURE__ */ u(C, {
|
|
151
152
|
className: "whitespace-nowrap text-sm text-text-secondary",
|
|
152
153
|
children: e.version || "—"
|
|
153
154
|
}),
|
|
154
|
-
/* @__PURE__ */
|
|
155
|
-
/* @__PURE__ */
|
|
155
|
+
/* @__PURE__ */ u(C, { children: /* @__PURE__ */ u(o, { status: e.status }) }),
|
|
156
|
+
/* @__PURE__ */ u(C, {
|
|
156
157
|
className: "max-w-[14rem]",
|
|
157
|
-
children: e.doi ? /* @__PURE__ */
|
|
158
|
+
children: e.doi ? /* @__PURE__ */ d(i, {
|
|
158
159
|
href: A(e.doi),
|
|
159
160
|
className: "inline-flex items-center gap-1 truncate text-sm text-text-primary underline-offset-2 hover:underline",
|
|
160
161
|
fallbackClassName: "block truncate text-sm text-text-secondary",
|
|
161
|
-
children: [/* @__PURE__ */
|
|
162
|
+
children: [/* @__PURE__ */ u("span", {
|
|
162
163
|
className: "truncate",
|
|
163
164
|
children: e.doi
|
|
164
|
-
}), /* @__PURE__ */
|
|
165
|
+
}), /* @__PURE__ */ u(f, {
|
|
165
166
|
className: "size-3.5 shrink-0",
|
|
166
167
|
"aria-hidden": "true"
|
|
167
168
|
})]
|
|
168
|
-
}) : /* @__PURE__ */
|
|
169
|
+
}) : /* @__PURE__ */ u("span", {
|
|
169
170
|
className: "text-sm text-text-secondary",
|
|
170
171
|
children: "—"
|
|
171
172
|
})
|
|
172
173
|
}),
|
|
173
|
-
/* @__PURE__ */
|
|
174
|
+
/* @__PURE__ */ u(C, {
|
|
174
175
|
className: "max-w-[14rem]",
|
|
175
|
-
children: e.authors.length === 0 ? /* @__PURE__ */
|
|
176
|
+
children: e.authors.length === 0 ? /* @__PURE__ */ u("span", {
|
|
176
177
|
className: "text-sm text-text-secondary",
|
|
177
178
|
children: "—"
|
|
178
|
-
}) : /* @__PURE__ */
|
|
179
|
+
}) : /* @__PURE__ */ u("span", {
|
|
179
180
|
className: "line-clamp-1 text-sm text-text-secondary",
|
|
180
181
|
children: e.authors.join(", ")
|
|
181
182
|
})
|
|
182
183
|
}),
|
|
183
|
-
/* @__PURE__ */
|
|
184
|
+
/* @__PURE__ */ u(C, {
|
|
184
185
|
className: "whitespace-nowrap text-sm text-text-secondary",
|
|
185
186
|
children: k(e.publishedAt)
|
|
186
187
|
}),
|
|
187
|
-
/* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ u(C, {
|
|
188
189
|
className: "whitespace-nowrap text-sm text-text-secondary",
|
|
189
190
|
children: e.license || "—"
|
|
190
191
|
}),
|
|
191
|
-
/* @__PURE__ */
|
|
192
|
+
/* @__PURE__ */ u(C, {
|
|
192
193
|
className: "text-right",
|
|
193
|
-
children: /* @__PURE__ */
|
|
194
|
+
children: /* @__PURE__ */ u(r, {
|
|
194
195
|
ariaLabel: `Actions for ${e.title}`,
|
|
195
196
|
onView: () => K(e),
|
|
196
197
|
extraItems: O(e.status) ? [{
|
|
197
198
|
key: "publish",
|
|
198
199
|
label: M("cosmicintersection.pages.releases.publish", "Publish"),
|
|
199
|
-
icon:
|
|
200
|
+
icon: p,
|
|
200
201
|
onSelect: () => Q(e)
|
|
201
202
|
}] : []
|
|
202
203
|
})
|
|
203
204
|
})
|
|
204
205
|
] }, e.id)) })] })
|
|
205
206
|
}),
|
|
206
|
-
/* @__PURE__ */
|
|
207
|
+
/* @__PURE__ */ u("ul", {
|
|
207
208
|
className: "space-y-3 md:hidden",
|
|
208
|
-
children: B.map((e) => /* @__PURE__ */
|
|
209
|
+
children: B.map((e) => /* @__PURE__ */ u("li", {
|
|
209
210
|
className: "rounded-card border border-border-default bg-bg-elevated",
|
|
210
|
-
children: /* @__PURE__ */
|
|
211
|
+
children: /* @__PURE__ */ d("div", {
|
|
211
212
|
className: "flex items-start justify-between gap-2 p-4",
|
|
212
|
-
children: [/* @__PURE__ */
|
|
213
|
+
children: [/* @__PURE__ */ d("div", {
|
|
213
214
|
className: "min-w-0 flex-1 space-y-2",
|
|
214
215
|
children: [
|
|
215
|
-
/* @__PURE__ */
|
|
216
|
+
/* @__PURE__ */ d("div", {
|
|
216
217
|
className: "flex flex-wrap items-center gap-2",
|
|
217
|
-
children: [/* @__PURE__ */
|
|
218
|
+
children: [/* @__PURE__ */ u("button", {
|
|
218
219
|
type: "button",
|
|
219
220
|
onClick: () => K(e),
|
|
220
221
|
className: "truncate text-left font-medium text-text-primary underline-offset-2 hover:underline",
|
|
221
222
|
children: e.title
|
|
222
|
-
}), /* @__PURE__ */
|
|
223
|
+
}), /* @__PURE__ */ u(o, { status: e.status })]
|
|
223
224
|
}),
|
|
224
|
-
/* @__PURE__ */
|
|
225
|
+
/* @__PURE__ */ d("div", {
|
|
225
226
|
className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-text-secondary",
|
|
226
227
|
children: [
|
|
227
|
-
/* @__PURE__ */
|
|
228
|
-
e.license ? /* @__PURE__ */
|
|
229
|
-
/* @__PURE__ */
|
|
228
|
+
/* @__PURE__ */ u("span", { children: e.version || "v—" }),
|
|
229
|
+
e.license ? /* @__PURE__ */ u("span", { children: e.license }) : null,
|
|
230
|
+
/* @__PURE__ */ u("span", { children: k(e.publishedAt) })
|
|
230
231
|
]
|
|
231
232
|
}),
|
|
232
|
-
e.authors.length > 0 ? /* @__PURE__ */
|
|
233
|
+
e.authors.length > 0 ? /* @__PURE__ */ u("p", {
|
|
233
234
|
className: "line-clamp-1 text-xs text-text-secondary",
|
|
234
235
|
children: e.authors.join(", ")
|
|
235
236
|
}) : null,
|
|
236
|
-
e.doi ? /* @__PURE__ */
|
|
237
|
+
e.doi ? /* @__PURE__ */ d(i, {
|
|
237
238
|
href: A(e.doi),
|
|
238
239
|
className: "inline-flex items-center gap-1 text-xs text-text-primary underline-offset-2 hover:underline",
|
|
239
240
|
fallbackClassName: "block truncate text-xs text-text-secondary",
|
|
240
|
-
children: [/* @__PURE__ */
|
|
241
|
+
children: [/* @__PURE__ */ d("span", {
|
|
241
242
|
className: "truncate",
|
|
242
243
|
children: ["DOI: ", e.doi]
|
|
243
|
-
}), /* @__PURE__ */
|
|
244
|
+
}), /* @__PURE__ */ u(f, {
|
|
244
245
|
className: "size-3 shrink-0",
|
|
245
246
|
"aria-hidden": "true"
|
|
246
247
|
})]
|
|
247
248
|
}) : null
|
|
248
249
|
]
|
|
249
|
-
}), /* @__PURE__ */
|
|
250
|
+
}), /* @__PURE__ */ u(r, {
|
|
250
251
|
ariaLabel: `Actions for ${e.title}`,
|
|
251
252
|
onView: () => K(e),
|
|
252
253
|
extraItems: O(e.status) ? [{
|
|
253
254
|
key: "publish",
|
|
254
255
|
label: M("cosmicintersection.pages.releases.publish", "Publish"),
|
|
255
|
-
icon:
|
|
256
|
+
icon: p,
|
|
256
257
|
onSelect: () => Q(e)
|
|
257
258
|
}] : []
|
|
258
259
|
})]
|
|
259
260
|
})
|
|
260
261
|
}, e.id))
|
|
261
262
|
}),
|
|
262
|
-
/* @__PURE__ */
|
|
263
|
+
/* @__PURE__ */ u(a, {
|
|
263
264
|
offset: P.offset,
|
|
264
265
|
limit: P.limit,
|
|
265
266
|
loadedCount: B.length,
|
|
266
|
-
hasMore:
|
|
267
|
+
hasMore: ke?.hasMore ?? !1,
|
|
267
268
|
onPrev: P.prevPage,
|
|
268
269
|
onNext: P.nextPage,
|
|
269
270
|
itemLabel: M("cosmicintersection.pages.releases.itemLabel", "releases"),
|
|
@@ -272,137 +273,139 @@ function j() {
|
|
|
272
273
|
] });
|
|
273
274
|
})()]
|
|
274
275
|
}),
|
|
275
|
-
/* @__PURE__ */
|
|
276
|
+
/* @__PURE__ */ u(h, {
|
|
277
|
+
...pe,
|
|
276
278
|
open: G !== null,
|
|
277
279
|
onOpenChange: (e) => e ? void 0 : K(null),
|
|
278
|
-
children: /* @__PURE__ */
|
|
280
|
+
children: /* @__PURE__ */ u(g, {
|
|
281
|
+
...fe,
|
|
279
282
|
className: "max-h-[85vh] max-w-lg overflow-y-auto",
|
|
280
|
-
children: G ? /* @__PURE__ */
|
|
281
|
-
/* @__PURE__ */
|
|
283
|
+
children: G ? /* @__PURE__ */ d(l, { children: [
|
|
284
|
+
/* @__PURE__ */ d(y, { children: [/* @__PURE__ */ d(b, {
|
|
282
285
|
className: "flex items-center gap-2",
|
|
283
|
-
children: [/* @__PURE__ */
|
|
286
|
+
children: [/* @__PURE__ */ u(me, {
|
|
284
287
|
className: "size-5 text-text-secondary",
|
|
285
288
|
"aria-hidden": "true"
|
|
286
289
|
}), G.title]
|
|
287
|
-
}), /* @__PURE__ */
|
|
290
|
+
}), /* @__PURE__ */ d(_, { children: [
|
|
288
291
|
"Version ",
|
|
289
292
|
G.version || "—",
|
|
290
293
|
" · ",
|
|
291
|
-
/* @__PURE__ */
|
|
294
|
+
/* @__PURE__ */ u(o, { status: G.status })
|
|
292
295
|
] })] }),
|
|
293
|
-
/* @__PURE__ */
|
|
296
|
+
/* @__PURE__ */ d("div", {
|
|
294
297
|
className: "space-y-4 text-sm",
|
|
295
298
|
children: [
|
|
296
|
-
/* @__PURE__ */
|
|
299
|
+
/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
|
|
297
300
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
298
301
|
children: "Abstract"
|
|
299
|
-
}), /* @__PURE__ */
|
|
302
|
+
}), /* @__PURE__ */ u("p", {
|
|
300
303
|
className: "mt-1 whitespace-pre-wrap text-text-primary",
|
|
301
304
|
children: G.abstract?.trim() || "No abstract provided."
|
|
302
305
|
})] }),
|
|
303
|
-
/* @__PURE__ */
|
|
306
|
+
/* @__PURE__ */ d("div", {
|
|
304
307
|
className: "grid grid-cols-2 gap-4",
|
|
305
308
|
children: [
|
|
306
|
-
/* @__PURE__ */
|
|
309
|
+
/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
|
|
307
310
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
308
311
|
children: "Authors"
|
|
309
|
-
}), /* @__PURE__ */
|
|
312
|
+
}), /* @__PURE__ */ u("p", {
|
|
310
313
|
className: "mt-1 text-text-primary",
|
|
311
314
|
children: G.authors.length ? G.authors.join(", ") : "—"
|
|
312
315
|
})] }),
|
|
313
|
-
/* @__PURE__ */
|
|
316
|
+
/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
|
|
314
317
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
315
318
|
children: "License"
|
|
316
|
-
}), /* @__PURE__ */
|
|
319
|
+
}), /* @__PURE__ */ u("p", {
|
|
317
320
|
className: "mt-1 text-text-primary",
|
|
318
321
|
children: G.license || "—"
|
|
319
322
|
})] }),
|
|
320
|
-
/* @__PURE__ */
|
|
323
|
+
/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
|
|
321
324
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
322
325
|
children: "Published"
|
|
323
|
-
}), /* @__PURE__ */
|
|
326
|
+
}), /* @__PURE__ */ u("p", {
|
|
324
327
|
className: "mt-1 text-text-primary",
|
|
325
328
|
children: k(G.publishedAt)
|
|
326
329
|
})] }),
|
|
327
|
-
/* @__PURE__ */
|
|
330
|
+
/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
|
|
328
331
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
329
332
|
children: "DOI"
|
|
330
|
-
}), /* @__PURE__ */
|
|
333
|
+
}), /* @__PURE__ */ u("p", {
|
|
331
334
|
className: "mt-1",
|
|
332
|
-
children: G.doi ? /* @__PURE__ */
|
|
335
|
+
children: G.doi ? /* @__PURE__ */ d(i, {
|
|
333
336
|
href: A(G.doi),
|
|
334
337
|
className: "inline-flex items-center gap-1 text-text-primary underline-offset-2 hover:underline",
|
|
335
338
|
fallbackClassName: "text-text-secondary",
|
|
336
|
-
children: [G.doi, /* @__PURE__ */
|
|
339
|
+
children: [G.doi, /* @__PURE__ */ u(f, {
|
|
337
340
|
className: "size-3.5",
|
|
338
341
|
"aria-hidden": "true"
|
|
339
342
|
})]
|
|
340
|
-
}) : /* @__PURE__ */
|
|
343
|
+
}) : /* @__PURE__ */ u("span", {
|
|
341
344
|
className: "text-text-secondary",
|
|
342
345
|
children: "Not assigned"
|
|
343
346
|
})
|
|
344
347
|
})] })
|
|
345
348
|
]
|
|
346
349
|
}),
|
|
347
|
-
/* @__PURE__ */
|
|
350
|
+
/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ d("p", {
|
|
348
351
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
349
352
|
children: [
|
|
350
353
|
"Datasets (",
|
|
351
354
|
G.datasetIds.length,
|
|
352
355
|
")"
|
|
353
356
|
]
|
|
354
|
-
}), /* @__PURE__ */
|
|
357
|
+
}), /* @__PURE__ */ u("div", {
|
|
355
358
|
className: "mt-1 flex flex-wrap gap-1.5",
|
|
356
|
-
children: G.datasetIds.length === 0 ? /* @__PURE__ */
|
|
359
|
+
children: G.datasetIds.length === 0 ? /* @__PURE__ */ u("span", {
|
|
357
360
|
className: "text-text-secondary",
|
|
358
361
|
children: "None linked."
|
|
359
362
|
}) : G.datasetIds.map((e) => {
|
|
360
|
-
let t =
|
|
361
|
-
return /* @__PURE__ */
|
|
363
|
+
let t = Ae.get(e);
|
|
364
|
+
return /* @__PURE__ */ d(m, {
|
|
362
365
|
type: "button",
|
|
363
366
|
variant: "outline",
|
|
364
367
|
size: "sm",
|
|
365
368
|
className: "h-auto gap-1 px-2 py-1",
|
|
366
369
|
onClick: () => q(`datasets/${e}`),
|
|
367
|
-
children: [/* @__PURE__ */
|
|
370
|
+
children: [/* @__PURE__ */ u(he, {
|
|
368
371
|
className: "size-3.5",
|
|
369
372
|
"aria-hidden": "true"
|
|
370
|
-
}), /* @__PURE__ */
|
|
373
|
+
}), /* @__PURE__ */ u("span", {
|
|
371
374
|
className: t ? "" : "font-mono text-xs",
|
|
372
375
|
children: t ?? e
|
|
373
376
|
})]
|
|
374
377
|
}, e);
|
|
375
378
|
})
|
|
376
379
|
})] }),
|
|
377
|
-
/* @__PURE__ */
|
|
380
|
+
/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
|
|
378
381
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
379
382
|
children: "Notebook"
|
|
380
|
-
}), /* @__PURE__ */
|
|
383
|
+
}), /* @__PURE__ */ u("div", {
|
|
381
384
|
className: "mt-1",
|
|
382
|
-
children: G.notebookId ? /* @__PURE__ */
|
|
385
|
+
children: G.notebookId ? /* @__PURE__ */ d(m, {
|
|
383
386
|
type: "button",
|
|
384
387
|
variant: "outline",
|
|
385
388
|
size: "sm",
|
|
386
389
|
className: "h-auto gap-1 px-2 py-1",
|
|
387
390
|
onClick: () => q(`notebooks/${G.notebookId}`),
|
|
388
|
-
children: [/* @__PURE__ */
|
|
391
|
+
children: [/* @__PURE__ */ u(ge, {
|
|
389
392
|
className: "size-3.5",
|
|
390
393
|
"aria-hidden": "true"
|
|
391
|
-
}), /* @__PURE__ */
|
|
394
|
+
}), /* @__PURE__ */ u("span", {
|
|
392
395
|
className: U.get(G.notebookId) ? "" : "font-mono text-xs",
|
|
393
396
|
children: U.get(G.notebookId) ?? G.notebookId
|
|
394
397
|
})]
|
|
395
|
-
}) : /* @__PURE__ */
|
|
398
|
+
}) : /* @__PURE__ */ u("span", {
|
|
396
399
|
className: "text-text-secondary",
|
|
397
400
|
children: "None linked."
|
|
398
401
|
})
|
|
399
402
|
})] }),
|
|
400
|
-
/* @__PURE__ */
|
|
403
|
+
/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("p", {
|
|
401
404
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
402
405
|
children: "Discussion"
|
|
403
|
-
}), /* @__PURE__ */
|
|
406
|
+
}), /* @__PURE__ */ u("div", {
|
|
404
407
|
className: "mt-2",
|
|
405
|
-
children: /* @__PURE__ */
|
|
408
|
+
children: /* @__PURE__ */ u(se, {
|
|
406
409
|
entityType: "cosmicintersection-release",
|
|
407
410
|
entityId: G.id,
|
|
408
411
|
title: G.title,
|
|
@@ -411,16 +414,16 @@ function j() {
|
|
|
411
414
|
})] })
|
|
412
415
|
]
|
|
413
416
|
}),
|
|
414
|
-
/* @__PURE__ */
|
|
417
|
+
/* @__PURE__ */ d(v, { children: [O(G.status) ? /* @__PURE__ */ d(m, {
|
|
415
418
|
type: "button",
|
|
416
419
|
onClick: () => {
|
|
417
420
|
let e = G;
|
|
418
421
|
K(null), Q(e);
|
|
419
422
|
},
|
|
420
|
-
children: [/* @__PURE__ */
|
|
421
|
-
}) : null, /* @__PURE__ */
|
|
423
|
+
children: [/* @__PURE__ */ u(p, { className: "size-4" }), "Publish"]
|
|
424
|
+
}) : null, /* @__PURE__ */ u(ve, {
|
|
422
425
|
asChild: !0,
|
|
423
|
-
children: /* @__PURE__ */
|
|
426
|
+
children: /* @__PURE__ */ u(m, {
|
|
424
427
|
type: "button",
|
|
425
428
|
variant: "outline",
|
|
426
429
|
children: "Close"
|
|
@@ -429,76 +432,76 @@ function j() {
|
|
|
429
432
|
] }) : null
|
|
430
433
|
})
|
|
431
434
|
}),
|
|
432
|
-
/* @__PURE__ */
|
|
435
|
+
/* @__PURE__ */ u(h, {
|
|
433
436
|
open: J !== null,
|
|
434
437
|
onOpenChange: (e) => e || z ? void 0 : Y(null),
|
|
435
|
-
children: /* @__PURE__ */
|
|
438
|
+
children: /* @__PURE__ */ d(g, {
|
|
436
439
|
className: "max-w-md",
|
|
437
440
|
children: [
|
|
438
|
-
/* @__PURE__ */
|
|
439
|
-
J ? /* @__PURE__ */
|
|
441
|
+
/* @__PURE__ */ d(y, { children: [/* @__PURE__ */ u(b, { children: M("cosmicintersection.pages.releases.publishRelease", "Publish release") }), /* @__PURE__ */ u(_, { children: J ? M("cosmicintersection.pages.releases.publishDescription", "Publish “{{name}}” to make it publicly citable. You can attach a DOI now or later.", { name: J.title }) : "" })] }),
|
|
442
|
+
J ? /* @__PURE__ */ d("dl", {
|
|
440
443
|
className: "grid grid-cols-3 gap-x-4 gap-y-3 rounded-card border border-border-default bg-bg-sunken p-3",
|
|
441
444
|
children: [
|
|
442
|
-
/* @__PURE__ */
|
|
445
|
+
/* @__PURE__ */ d("div", {
|
|
443
446
|
className: "col-span-2 min-w-0",
|
|
444
|
-
children: [/* @__PURE__ */
|
|
447
|
+
children: [/* @__PURE__ */ u("dt", {
|
|
445
448
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
446
449
|
children: "Authors"
|
|
447
|
-
}), /* @__PURE__ */
|
|
450
|
+
}), /* @__PURE__ */ u("dd", {
|
|
448
451
|
className: "mt-0.5 truncate text-sm text-text-primary",
|
|
449
452
|
title: J.authors.join(", "),
|
|
450
453
|
children: J.authors.length ? J.authors.join(", ") : "—"
|
|
451
454
|
})]
|
|
452
455
|
}),
|
|
453
|
-
/* @__PURE__ */
|
|
456
|
+
/* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("dt", {
|
|
454
457
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
455
458
|
children: "Datasets"
|
|
456
|
-
}), /* @__PURE__ */
|
|
459
|
+
}), /* @__PURE__ */ u("dd", {
|
|
457
460
|
className: "mt-0.5 text-sm tabular-nums text-text-primary",
|
|
458
461
|
children: J.datasetIds.length
|
|
459
462
|
})] }),
|
|
460
|
-
/* @__PURE__ */
|
|
463
|
+
/* @__PURE__ */ d("div", {
|
|
461
464
|
className: "col-span-3 min-w-0",
|
|
462
|
-
children: [/* @__PURE__ */
|
|
465
|
+
children: [/* @__PURE__ */ u("dt", {
|
|
463
466
|
className: "text-xs font-medium uppercase tracking-wide text-text-secondary",
|
|
464
467
|
children: "License"
|
|
465
|
-
}), /* @__PURE__ */
|
|
468
|
+
}), /* @__PURE__ */ u("dd", {
|
|
466
469
|
className: "mt-0.5 truncate text-sm text-text-primary",
|
|
467
470
|
children: J.license || "—"
|
|
468
471
|
})]
|
|
469
472
|
})
|
|
470
473
|
]
|
|
471
474
|
}) : null,
|
|
472
|
-
/* @__PURE__ */
|
|
475
|
+
/* @__PURE__ */ d("div", {
|
|
473
476
|
className: "space-y-2",
|
|
474
477
|
children: [
|
|
475
|
-
/* @__PURE__ */
|
|
478
|
+
/* @__PURE__ */ u(ye, {
|
|
476
479
|
htmlFor: "release-doi",
|
|
477
480
|
children: M("cosmicintersection.pages.releases.doiOptional", "DOI (optional)")
|
|
478
481
|
}),
|
|
479
|
-
/* @__PURE__ */
|
|
482
|
+
/* @__PURE__ */ u(x, {
|
|
480
483
|
id: "release-doi",
|
|
481
484
|
value: X,
|
|
482
485
|
onChange: (e) => Z(e.target.value),
|
|
483
486
|
placeholder: "10.1234/cosmic.2026.0001"
|
|
484
487
|
}),
|
|
485
|
-
/* @__PURE__ */
|
|
488
|
+
/* @__PURE__ */ u("p", {
|
|
486
489
|
className: "text-xs text-text-secondary",
|
|
487
490
|
children: M("cosmicintersection.pages.releases.doiHint", "A Digital Object Identifier makes the release permanently referenceable.")
|
|
488
491
|
})
|
|
489
492
|
]
|
|
490
493
|
}),
|
|
491
|
-
/* @__PURE__ */
|
|
494
|
+
/* @__PURE__ */ d(v, { children: [/* @__PURE__ */ u(m, {
|
|
492
495
|
type: "button",
|
|
493
496
|
variant: "outline",
|
|
494
497
|
onClick: () => Y(null),
|
|
495
498
|
disabled: z,
|
|
496
499
|
children: M("cosmicintersection.common.cancel", "Cancel")
|
|
497
|
-
}), /* @__PURE__ */
|
|
500
|
+
}), /* @__PURE__ */ d(m, {
|
|
498
501
|
type: "button",
|
|
499
|
-
onClick: () => void
|
|
502
|
+
onClick: () => void Me(),
|
|
500
503
|
disabled: z,
|
|
501
|
-
children: [/* @__PURE__ */
|
|
504
|
+
children: [/* @__PURE__ */ u(p, { className: "size-4" }), z ? M("cosmicintersection.pages.releases.publishing", "Publishing…") : M("cosmicintersection.pages.releases.publishRelease", "Publish release")]
|
|
502
505
|
})] })
|
|
503
506
|
]
|
|
504
507
|
})
|