@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CosmicIntersectionRoutes.d.ts","sourceRoot":"","sources":["../../src/cosmicintersection/CosmicIntersectionRoutes.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CosmicIntersectionRoutes.d.ts","sourceRoot":"","sources":["../../src/cosmicintersection/CosmicIntersectionRoutes.tsx"],"names":[],"mappings":"AAkEA,wBAAgB,wBAAwB,gCAkDvC;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -1,149 +1,154 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { useCosmicIntersection as e } from "./context/CosmicIntersectionContext.js";
|
|
2
|
+
import { Suspense as t, lazy as n } from "react";
|
|
3
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
4
|
+
import { Navigate as a, Route as o, Routes as s } from "react-router";
|
|
4
5
|
//#region src/cosmicintersection/CosmicIntersectionRoutes.tsx
|
|
5
|
-
var
|
|
6
|
-
function
|
|
7
|
-
return /* @__PURE__ */
|
|
6
|
+
var c = n(() => import("./pages/dashboard/DashboardPage.js")), l = n(() => import("./pages/datasets/DatasetsPage.js")), u = n(() => import("./pages/datasets/DatasetDetailPage.js")), d = n(() => import("./pages/datasets/DatasetFormPage.js")), f = n(() => import("./pages/discovery/DiscoveryPage.js")), p = n(() => import("./pages/lineage/LineagePage.js")), m = n(() => import("./pages/sources/SourcesPage.js")), h = n(() => import("./pages/sources/SourceDetailPage.js")), g = n(() => import("./pages/sources/SourceFormPage.js")), _ = n(() => import("./pages/collections/CollectionsPage.js")), v = n(() => import("./pages/collections/CollectionDetailPage.js")), y = n(() => import("./pages/collections/CollectionFormPage.js")), b = n(() => import("./pages/pipelines/PipelinesPage.js")), x = n(() => import("./pages/pipelines/PipelineDetailPage.js")), S = n(() => import("./pages/pipelines/PipelineFormPage.js")), C = n(() => import("./pages/runs/RunsPage.js")), w = n(() => import("./pages/runs/RunDetailPage.js")), T = n(() => import("./pages/notebooks/NotebooksPage.js")), E = n(() => import("./pages/notebooks/NotebookDetailPage.js")), D = n(() => import("./pages/notebooks/NotebookFormPage.js")), O = n(() => import("./pages/analyses/AnalysesPage.js")), k = n(() => import("./pages/releases/ReleasesPage.js")), A = n(() => import("./pages/releases/ReleaseFormPage.js")), j = n(() => import("./pages/access/AccessPage.js"));
|
|
7
|
+
function M() {
|
|
8
|
+
return /* @__PURE__ */ r("div", {
|
|
8
9
|
className: "flex min-h-[320px] items-center justify-center",
|
|
9
|
-
children: /* @__PURE__ */
|
|
10
|
+
children: /* @__PURE__ */ r("div", { className: "size-8 animate-spin rounded-full border-2 border-border-default border-t-text-primary" })
|
|
10
11
|
});
|
|
11
12
|
}
|
|
12
|
-
function
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
function N() {
|
|
14
|
+
let { basePath: t } = e();
|
|
15
|
+
return /* @__PURE__ */ r(a, {
|
|
16
|
+
to: t || "/",
|
|
17
|
+
replace: !0
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
function P() {
|
|
21
|
+
return /* @__PURE__ */ r(t, {
|
|
22
|
+
fallback: /* @__PURE__ */ r(M, {}),
|
|
23
|
+
children: /* @__PURE__ */ i(s, { children: [
|
|
24
|
+
/* @__PURE__ */ r(o, {
|
|
17
25
|
index: !0,
|
|
18
|
-
element: /* @__PURE__ */
|
|
26
|
+
element: /* @__PURE__ */ r(c, {})
|
|
19
27
|
}),
|
|
20
|
-
/* @__PURE__ */
|
|
28
|
+
/* @__PURE__ */ r(o, {
|
|
21
29
|
path: "discovery",
|
|
22
|
-
element: /* @__PURE__ */
|
|
30
|
+
element: /* @__PURE__ */ r(f, {})
|
|
23
31
|
}),
|
|
24
|
-
/* @__PURE__ */
|
|
32
|
+
/* @__PURE__ */ r(o, {
|
|
25
33
|
path: "lineage",
|
|
26
|
-
element: /* @__PURE__ */
|
|
34
|
+
element: /* @__PURE__ */ r(p, {})
|
|
27
35
|
}),
|
|
28
|
-
/* @__PURE__ */
|
|
36
|
+
/* @__PURE__ */ r(o, {
|
|
29
37
|
path: "lineage/:datasetId",
|
|
30
|
-
element: /* @__PURE__ */
|
|
38
|
+
element: /* @__PURE__ */ r(p, {})
|
|
31
39
|
}),
|
|
32
|
-
/* @__PURE__ */
|
|
40
|
+
/* @__PURE__ */ r(o, {
|
|
33
41
|
path: "datasets",
|
|
34
|
-
element: /* @__PURE__ */
|
|
42
|
+
element: /* @__PURE__ */ r(l, {})
|
|
35
43
|
}),
|
|
36
|
-
/* @__PURE__ */
|
|
44
|
+
/* @__PURE__ */ r(o, {
|
|
37
45
|
path: "datasets/create",
|
|
38
|
-
element: /* @__PURE__ */
|
|
46
|
+
element: /* @__PURE__ */ r(d, {})
|
|
39
47
|
}),
|
|
40
|
-
/* @__PURE__ */
|
|
48
|
+
/* @__PURE__ */ r(o, {
|
|
41
49
|
path: "datasets/:id",
|
|
42
|
-
element: /* @__PURE__ */
|
|
50
|
+
element: /* @__PURE__ */ r(u, {})
|
|
43
51
|
}),
|
|
44
|
-
/* @__PURE__ */
|
|
52
|
+
/* @__PURE__ */ r(o, {
|
|
45
53
|
path: "datasets/:id/edit",
|
|
46
|
-
element: /* @__PURE__ */
|
|
54
|
+
element: /* @__PURE__ */ r(d, {})
|
|
47
55
|
}),
|
|
48
|
-
/* @__PURE__ */
|
|
56
|
+
/* @__PURE__ */ r(o, {
|
|
49
57
|
path: "sources",
|
|
50
|
-
element: /* @__PURE__ */
|
|
58
|
+
element: /* @__PURE__ */ r(m, {})
|
|
51
59
|
}),
|
|
52
|
-
/* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ r(o, {
|
|
53
61
|
path: "sources/create",
|
|
54
|
-
element: /* @__PURE__ */
|
|
62
|
+
element: /* @__PURE__ */ r(g, {})
|
|
55
63
|
}),
|
|
56
|
-
/* @__PURE__ */
|
|
64
|
+
/* @__PURE__ */ r(o, {
|
|
57
65
|
path: "sources/:id",
|
|
58
|
-
element: /* @__PURE__ */
|
|
66
|
+
element: /* @__PURE__ */ r(h, {})
|
|
59
67
|
}),
|
|
60
|
-
/* @__PURE__ */
|
|
68
|
+
/* @__PURE__ */ r(o, {
|
|
61
69
|
path: "sources/:id/edit",
|
|
62
|
-
element: /* @__PURE__ */
|
|
70
|
+
element: /* @__PURE__ */ r(g, {})
|
|
63
71
|
}),
|
|
64
|
-
/* @__PURE__ */
|
|
72
|
+
/* @__PURE__ */ r(o, {
|
|
65
73
|
path: "collections",
|
|
66
|
-
element: /* @__PURE__ */
|
|
74
|
+
element: /* @__PURE__ */ r(_, {})
|
|
67
75
|
}),
|
|
68
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ r(o, {
|
|
69
77
|
path: "collections/create",
|
|
70
|
-
element: /* @__PURE__ */
|
|
78
|
+
element: /* @__PURE__ */ r(y, {})
|
|
71
79
|
}),
|
|
72
|
-
/* @__PURE__ */
|
|
80
|
+
/* @__PURE__ */ r(o, {
|
|
73
81
|
path: "collections/:id",
|
|
74
|
-
element: /* @__PURE__ */
|
|
82
|
+
element: /* @__PURE__ */ r(v, {})
|
|
75
83
|
}),
|
|
76
|
-
/* @__PURE__ */
|
|
84
|
+
/* @__PURE__ */ r(o, {
|
|
77
85
|
path: "collections/:id/edit",
|
|
78
|
-
element: /* @__PURE__ */
|
|
86
|
+
element: /* @__PURE__ */ r(y, {})
|
|
79
87
|
}),
|
|
80
|
-
/* @__PURE__ */
|
|
88
|
+
/* @__PURE__ */ r(o, {
|
|
81
89
|
path: "pipelines",
|
|
82
|
-
element: /* @__PURE__ */
|
|
90
|
+
element: /* @__PURE__ */ r(b, {})
|
|
83
91
|
}),
|
|
84
|
-
/* @__PURE__ */
|
|
92
|
+
/* @__PURE__ */ r(o, {
|
|
85
93
|
path: "pipelines/create",
|
|
86
|
-
element: /* @__PURE__ */
|
|
94
|
+
element: /* @__PURE__ */ r(S, {})
|
|
87
95
|
}),
|
|
88
|
-
/* @__PURE__ */
|
|
96
|
+
/* @__PURE__ */ r(o, {
|
|
89
97
|
path: "pipelines/:id",
|
|
90
|
-
element: /* @__PURE__ */
|
|
98
|
+
element: /* @__PURE__ */ r(x, {})
|
|
91
99
|
}),
|
|
92
|
-
/* @__PURE__ */
|
|
100
|
+
/* @__PURE__ */ r(o, {
|
|
93
101
|
path: "pipelines/:id/edit",
|
|
94
|
-
element: /* @__PURE__ */
|
|
102
|
+
element: /* @__PURE__ */ r(S, {})
|
|
95
103
|
}),
|
|
96
|
-
/* @__PURE__ */
|
|
104
|
+
/* @__PURE__ */ r(o, {
|
|
97
105
|
path: "runs",
|
|
98
|
-
element: /* @__PURE__ */
|
|
106
|
+
element: /* @__PURE__ */ r(C, {})
|
|
99
107
|
}),
|
|
100
|
-
/* @__PURE__ */
|
|
108
|
+
/* @__PURE__ */ r(o, {
|
|
101
109
|
path: "runs/:id",
|
|
102
|
-
element: /* @__PURE__ */
|
|
110
|
+
element: /* @__PURE__ */ r(w, {})
|
|
103
111
|
}),
|
|
104
|
-
/* @__PURE__ */
|
|
112
|
+
/* @__PURE__ */ r(o, {
|
|
105
113
|
path: "notebooks",
|
|
106
|
-
element: /* @__PURE__ */
|
|
114
|
+
element: /* @__PURE__ */ r(T, {})
|
|
107
115
|
}),
|
|
108
|
-
/* @__PURE__ */
|
|
116
|
+
/* @__PURE__ */ r(o, {
|
|
109
117
|
path: "notebooks/create",
|
|
110
|
-
element: /* @__PURE__ */
|
|
118
|
+
element: /* @__PURE__ */ r(D, {})
|
|
111
119
|
}),
|
|
112
|
-
/* @__PURE__ */
|
|
120
|
+
/* @__PURE__ */ r(o, {
|
|
113
121
|
path: "notebooks/:id",
|
|
114
|
-
element: /* @__PURE__ */
|
|
122
|
+
element: /* @__PURE__ */ r(E, {})
|
|
115
123
|
}),
|
|
116
|
-
/* @__PURE__ */
|
|
124
|
+
/* @__PURE__ */ r(o, {
|
|
117
125
|
path: "notebooks/:id/edit",
|
|
118
|
-
element: /* @__PURE__ */
|
|
126
|
+
element: /* @__PURE__ */ r(D, {})
|
|
119
127
|
}),
|
|
120
|
-
/* @__PURE__ */
|
|
128
|
+
/* @__PURE__ */ r(o, {
|
|
121
129
|
path: "analyses",
|
|
122
|
-
element: /* @__PURE__ */
|
|
130
|
+
element: /* @__PURE__ */ r(O, {})
|
|
123
131
|
}),
|
|
124
|
-
/* @__PURE__ */
|
|
132
|
+
/* @__PURE__ */ r(o, {
|
|
125
133
|
path: "releases",
|
|
126
|
-
element: /* @__PURE__ */
|
|
134
|
+
element: /* @__PURE__ */ r(k, {})
|
|
127
135
|
}),
|
|
128
|
-
/* @__PURE__ */
|
|
136
|
+
/* @__PURE__ */ r(o, {
|
|
129
137
|
path: "releases/create",
|
|
130
|
-
element: /* @__PURE__ */
|
|
138
|
+
element: /* @__PURE__ */ r(A, {})
|
|
131
139
|
}),
|
|
132
|
-
/* @__PURE__ */
|
|
140
|
+
/* @__PURE__ */ r(o, {
|
|
133
141
|
path: "access",
|
|
134
|
-
element: /* @__PURE__ */
|
|
142
|
+
element: /* @__PURE__ */ r(j, {})
|
|
135
143
|
}),
|
|
136
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ r(o, {
|
|
137
145
|
path: "*",
|
|
138
|
-
element: /* @__PURE__ */
|
|
139
|
-
to: "",
|
|
140
|
-
replace: !0
|
|
141
|
-
})
|
|
146
|
+
element: /* @__PURE__ */ r(N, {})
|
|
142
147
|
})
|
|
143
148
|
] })
|
|
144
149
|
});
|
|
145
150
|
}
|
|
146
151
|
//#endregion
|
|
147
|
-
export {
|
|
152
|
+
export { P as default };
|
|
148
153
|
|
|
149
154
|
//# sourceMappingURL=CosmicIntersectionRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CosmicIntersectionRoutes.js","names":[],"sources":["../../src/cosmicintersection/CosmicIntersectionRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Navigate, Route, Routes } from 'react-router';\n\n// Canonical page files — all default exports. Page agents overwrite the\n// placeholder stubs in place; these import paths are the contract.\nconst DashboardPage = lazy(() => import('./pages/dashboard/DashboardPage'));\n\nconst DatasetsPage = lazy(() => import('./pages/datasets/DatasetsPage'));\nconst DatasetDetailPage = lazy(() => import('./pages/datasets/DatasetDetailPage'));\nconst DatasetFormPage = lazy(() => import('./pages/datasets/DatasetFormPage'));\n\n// Faceted full-text discovery over the federated catalog.\nconst DiscoveryPage = lazy(() => import('./pages/discovery/DiscoveryPage'));\n\n// Provenance / lineage graph (Source → Dataset → Run → Notebook → Release).\nconst LineagePage = lazy(() => import('./pages/lineage/LineagePage'));\n\nconst SourcesPage = lazy(() => import('./pages/sources/SourcesPage'));\nconst SourceDetailPage = lazy(() => import('./pages/sources/SourceDetailPage'));\nconst SourceFormPage = lazy(() => import('./pages/sources/SourceFormPage'));\n\nconst CollectionsPage = lazy(() => import('./pages/collections/CollectionsPage'));\nconst CollectionDetailPage = lazy(() => import('./pages/collections/CollectionDetailPage'));\nconst CollectionFormPage = lazy(() => import('./pages/collections/CollectionFormPage'));\n\nconst PipelinesPage = lazy(() => import('./pages/pipelines/PipelinesPage'));\nconst PipelineDetailPage = lazy(() => import('./pages/pipelines/PipelineDetailPage'));\nconst PipelineFormPage = lazy(() => import('./pages/pipelines/PipelineFormPage'));\n\nconst RunsPage = lazy(() => import('./pages/runs/RunsPage'));\nconst RunDetailPage = lazy(() => import('./pages/runs/RunDetailPage'));\n\nconst NotebooksPage = lazy(() => import('./pages/notebooks/NotebooksPage'));\nconst NotebookDetailPage = lazy(() => import('./pages/notebooks/NotebookDetailPage'));\nconst NotebookFormPage = lazy(() => import('./pages/notebooks/NotebookFormPage'));\n\nconst AnalysesPage = lazy(() => import('./pages/analyses/AnalysesPage'));\n\nconst ReleasesPage = lazy(() => import('./pages/releases/ReleasesPage'));\nconst ReleaseFormPage = lazy(() => import('./pages/releases/ReleaseFormPage'));\n\nconst AccessPage = lazy(() => import('./pages/access/AccessPage'));\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <div className=\"size-8 animate-spin rounded-full border-2 border-border-default border-t-text-primary\" />\n </div>\n );\n}\n\nexport function CosmicIntersectionRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<DashboardPage />} />\n\n <Route path=\"discovery\" element={<DiscoveryPage />} />\n\n <Route path=\"lineage\" element={<LineagePage />} />\n <Route path=\"lineage/:datasetId\" element={<LineagePage />} />\n\n <Route path=\"datasets\" element={<DatasetsPage />} />\n <Route path=\"datasets/create\" element={<DatasetFormPage />} />\n <Route path=\"datasets/:id\" element={<DatasetDetailPage />} />\n <Route path=\"datasets/:id/edit\" element={<DatasetFormPage />} />\n\n <Route path=\"sources\" element={<SourcesPage />} />\n <Route path=\"sources/create\" element={<SourceFormPage />} />\n <Route path=\"sources/:id\" element={<SourceDetailPage />} />\n <Route path=\"sources/:id/edit\" element={<SourceFormPage />} />\n\n <Route path=\"collections\" element={<CollectionsPage />} />\n <Route path=\"collections/create\" element={<CollectionFormPage />} />\n <Route path=\"collections/:id\" element={<CollectionDetailPage />} />\n <Route path=\"collections/:id/edit\" element={<CollectionFormPage />} />\n\n <Route path=\"pipelines\" element={<PipelinesPage />} />\n <Route path=\"pipelines/create\" element={<PipelineFormPage />} />\n <Route path=\"pipelines/:id\" element={<PipelineDetailPage />} />\n <Route path=\"pipelines/:id/edit\" element={<PipelineFormPage />} />\n\n <Route path=\"runs\" element={<RunsPage />} />\n <Route path=\"runs/:id\" element={<RunDetailPage />} />\n\n <Route path=\"notebooks\" element={<NotebooksPage />} />\n <Route path=\"notebooks/create\" element={<NotebookFormPage />} />\n <Route path=\"notebooks/:id\" element={<NotebookDetailPage />} />\n <Route path=\"notebooks/:id/edit\" element={<NotebookFormPage />} />\n\n <Route path=\"analyses\" element={<AnalysesPage />} />\n\n <Route path=\"releases\" element={<ReleasesPage />} />\n <Route path=\"releases/create\" element={<ReleaseFormPage />} />\n\n <Route path=\"access\" element={<AccessPage />} />\n\n <Route path=\"*\" element={<
|
|
1
|
+
{"version":3,"file":"CosmicIntersectionRoutes.js","names":[],"sources":["../../src/cosmicintersection/CosmicIntersectionRoutes.tsx"],"sourcesContent":["import { lazy, Suspense } from 'react';\nimport { Navigate, Route, Routes } from 'react-router';\n\nimport { useCosmicIntersection } from './context/CosmicIntersectionContext';\n\n// Canonical page files — all default exports. Page agents overwrite the\n// placeholder stubs in place; these import paths are the contract.\nconst DashboardPage = lazy(() => import('./pages/dashboard/DashboardPage'));\n\nconst DatasetsPage = lazy(() => import('./pages/datasets/DatasetsPage'));\nconst DatasetDetailPage = lazy(() => import('./pages/datasets/DatasetDetailPage'));\nconst DatasetFormPage = lazy(() => import('./pages/datasets/DatasetFormPage'));\n\n// Faceted full-text discovery over the federated catalog.\nconst DiscoveryPage = lazy(() => import('./pages/discovery/DiscoveryPage'));\n\n// Provenance / lineage graph (Source → Dataset → Run → Notebook → Release).\nconst LineagePage = lazy(() => import('./pages/lineage/LineagePage'));\n\nconst SourcesPage = lazy(() => import('./pages/sources/SourcesPage'));\nconst SourceDetailPage = lazy(() => import('./pages/sources/SourceDetailPage'));\nconst SourceFormPage = lazy(() => import('./pages/sources/SourceFormPage'));\n\nconst CollectionsPage = lazy(() => import('./pages/collections/CollectionsPage'));\nconst CollectionDetailPage = lazy(() => import('./pages/collections/CollectionDetailPage'));\nconst CollectionFormPage = lazy(() => import('./pages/collections/CollectionFormPage'));\n\nconst PipelinesPage = lazy(() => import('./pages/pipelines/PipelinesPage'));\nconst PipelineDetailPage = lazy(() => import('./pages/pipelines/PipelineDetailPage'));\nconst PipelineFormPage = lazy(() => import('./pages/pipelines/PipelineFormPage'));\n\nconst RunsPage = lazy(() => import('./pages/runs/RunsPage'));\nconst RunDetailPage = lazy(() => import('./pages/runs/RunDetailPage'));\n\nconst NotebooksPage = lazy(() => import('./pages/notebooks/NotebooksPage'));\nconst NotebookDetailPage = lazy(() => import('./pages/notebooks/NotebookDetailPage'));\nconst NotebookFormPage = lazy(() => import('./pages/notebooks/NotebookFormPage'));\n\nconst AnalysesPage = lazy(() => import('./pages/analyses/AnalysesPage'));\n\nconst ReleasesPage = lazy(() => import('./pages/releases/ReleasesPage'));\nconst ReleaseFormPage = lazy(() => import('./pages/releases/ReleaseFormPage'));\n\nconst AccessPage = lazy(() => import('./pages/access/AccessPage'));\n\nfunction PageLoader() {\n return (\n <div className=\"flex min-h-[320px] items-center justify-center\">\n <div className=\"size-8 animate-spin rounded-full border-2 border-border-default border-t-text-primary\" />\n </div>\n );\n}\n\n/**\n * Sends an unknown path under the product back to its dashboard.\n *\n * The target is the absolute base path from the shell rather than a relative\n * `to=\"\"`: inside a splat (`*`) route a relative target resolves against the\n * unmatched URL itself, so `<Navigate to=\"\" />` re-navigated to the same\n * unknown path and left a blank page.\n */\nfunction RedirectToDashboard() {\n const { basePath } = useCosmicIntersection();\n return <Navigate to={basePath || '/'} replace />;\n}\n\nexport function CosmicIntersectionRoutes() {\n return (\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={<DashboardPage />} />\n\n <Route path=\"discovery\" element={<DiscoveryPage />} />\n\n <Route path=\"lineage\" element={<LineagePage />} />\n <Route path=\"lineage/:datasetId\" element={<LineagePage />} />\n\n <Route path=\"datasets\" element={<DatasetsPage />} />\n <Route path=\"datasets/create\" element={<DatasetFormPage />} />\n <Route path=\"datasets/:id\" element={<DatasetDetailPage />} />\n <Route path=\"datasets/:id/edit\" element={<DatasetFormPage />} />\n\n <Route path=\"sources\" element={<SourcesPage />} />\n <Route path=\"sources/create\" element={<SourceFormPage />} />\n <Route path=\"sources/:id\" element={<SourceDetailPage />} />\n <Route path=\"sources/:id/edit\" element={<SourceFormPage />} />\n\n <Route path=\"collections\" element={<CollectionsPage />} />\n <Route path=\"collections/create\" element={<CollectionFormPage />} />\n <Route path=\"collections/:id\" element={<CollectionDetailPage />} />\n <Route path=\"collections/:id/edit\" element={<CollectionFormPage />} />\n\n <Route path=\"pipelines\" element={<PipelinesPage />} />\n <Route path=\"pipelines/create\" element={<PipelineFormPage />} />\n <Route path=\"pipelines/:id\" element={<PipelineDetailPage />} />\n <Route path=\"pipelines/:id/edit\" element={<PipelineFormPage />} />\n\n <Route path=\"runs\" element={<RunsPage />} />\n <Route path=\"runs/:id\" element={<RunDetailPage />} />\n\n <Route path=\"notebooks\" element={<NotebooksPage />} />\n <Route path=\"notebooks/create\" element={<NotebookFormPage />} />\n <Route path=\"notebooks/:id\" element={<NotebookDetailPage />} />\n <Route path=\"notebooks/:id/edit\" element={<NotebookFormPage />} />\n\n <Route path=\"analyses\" element={<AnalysesPage />} />\n\n <Route path=\"releases\" element={<ReleasesPage />} />\n <Route path=\"releases/create\" element={<ReleaseFormPage />} />\n\n <Route path=\"access\" element={<AccessPage />} />\n\n <Route path=\"*\" element={<RedirectToDashboard />} />\n </Routes>\n </Suspense>\n );\n}\n\nexport default CosmicIntersectionRoutes;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props for a record-detail dialog that the AI assistant must stay usable
|
|
3
|
+
* beside.
|
|
4
|
+
*
|
|
5
|
+
* Releases and analyses have no detail route: the page opens the focused
|
|
6
|
+
* record in a dialog and keeps its id in `?id=` (`useSelectedRecord`), which
|
|
7
|
+
* the assistant's page context turns into `entityType` + `entityId`. A modal
|
|
8
|
+
* dialog defeats that: Radix hides everything outside it from assistive
|
|
9
|
+
* technology, traps focus inside it and blocks pointer events on the rest of
|
|
10
|
+
* the page, so the assistant panel cannot be typed into while the record it
|
|
11
|
+
* would resolve is on screen. "Publish this release" could only be asked after
|
|
12
|
+
* closing the release, at which point `?id=` is gone.
|
|
13
|
+
*
|
|
14
|
+
* These detail dialogs therefore open non-modally, and a click or focus move
|
|
15
|
+
* into the assistant widget does not count as "outside" (which would close the
|
|
16
|
+
* dialog and drop the record from the page context). Every other outside
|
|
17
|
+
* interaction still closes the dialog, exactly as before. Form dialogs that
|
|
18
|
+
* collect input stay modal; this is only for read-only record views.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* The shared fe-libs `AssistantWidget` launcher and window
|
|
22
|
+
* (`@burdenoff/fe-libs/shared/components`, `assistantWidget/AssistantWidget.tsx`).
|
|
23
|
+
* Matched by the test ids that component publishes; a widget that renders
|
|
24
|
+
* without them simply falls back to the ordinary close-on-outside behaviour.
|
|
25
|
+
*/
|
|
26
|
+
export declare const ASSISTANT_WIDGET_SELECTOR = "[data-testid=\"assistant-widget-window\"], [data-testid=\"assistant-widget-launcher\"]";
|
|
27
|
+
/** True when the event started inside the assistant launcher or window. */
|
|
28
|
+
export declare function isAssistantWidgetEvent(event: Pick<Event, 'target'>): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Spread on `DialogContent`: ignore outside interactions that land in the
|
|
31
|
+
* assistant widget, so talking to the assistant keeps the record open.
|
|
32
|
+
*/
|
|
33
|
+
export declare function keepOpenForAssistant(event: Pick<Event, 'target' | 'preventDefault'>): void;
|
|
34
|
+
/** Spread on the `Dialog` root of a record-detail dialog. */
|
|
35
|
+
export declare const ASSISTANT_AWARE_DIALOG_ROOT_PROPS: {
|
|
36
|
+
readonly modal: false;
|
|
37
|
+
};
|
|
38
|
+
/** Spread on the `DialogContent` of a record-detail dialog. */
|
|
39
|
+
export declare const ASSISTANT_AWARE_DIALOG_CONTENT_PROPS: {
|
|
40
|
+
readonly onInteractOutside: typeof keepOpenForAssistant;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=assistantAwareDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistantAwareDialog.d.ts","sourceRoot":"","sources":["../../../src/cosmicintersection/lib/assistantAwareDialog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,2FACgD,CAAC;AAEvF,2EAA2E;AAC3E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,OAAO,CAG5E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAE1F;AAED,6DAA6D;AAC7D,eAAO,MAAM,iCAAiC;;CAA4B,CAAC;AAE3E,+DAA+D;AAC/D,eAAO,MAAM,oCAAoC;;CAEvC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function e(e) {
|
|
2
|
+
let t = e.target;
|
|
3
|
+
return t instanceof Element && t.closest("[data-testid=\"assistant-widget-window\"], [data-testid=\"assistant-widget-launcher\"]") !== null;
|
|
4
|
+
}
|
|
5
|
+
function t(t) {
|
|
6
|
+
e(t) && t.preventDefault();
|
|
7
|
+
}
|
|
8
|
+
var n = { modal: !1 }, r = { onInteractOutside: t };
|
|
9
|
+
//#endregion
|
|
10
|
+
export { r as ASSISTANT_AWARE_DIALOG_CONTENT_PROPS, n as ASSISTANT_AWARE_DIALOG_ROOT_PROPS };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=assistantAwareDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistantAwareDialog.js","names":[],"sources":["../../../src/cosmicintersection/lib/assistantAwareDialog.ts"],"sourcesContent":["/**\n * Props for a record-detail dialog that the AI assistant must stay usable\n * beside.\n *\n * Releases and analyses have no detail route: the page opens the focused\n * record in a dialog and keeps its id in `?id=` (`useSelectedRecord`), which\n * the assistant's page context turns into `entityType` + `entityId`. A modal\n * dialog defeats that: Radix hides everything outside it from assistive\n * technology, traps focus inside it and blocks pointer events on the rest of\n * the page, so the assistant panel cannot be typed into while the record it\n * would resolve is on screen. \"Publish this release\" could only be asked after\n * closing the release, at which point `?id=` is gone.\n *\n * These detail dialogs therefore open non-modally, and a click or focus move\n * into the assistant widget does not count as \"outside\" (which would close the\n * dialog and drop the record from the page context). Every other outside\n * interaction still closes the dialog, exactly as before. Form dialogs that\n * collect input stay modal; this is only for read-only record views.\n */\n\n/**\n * The shared fe-libs `AssistantWidget` launcher and window\n * (`@burdenoff/fe-libs/shared/components`, `assistantWidget/AssistantWidget.tsx`).\n * Matched by the test ids that component publishes; a widget that renders\n * without them simply falls back to the ordinary close-on-outside behaviour.\n */\nexport const ASSISTANT_WIDGET_SELECTOR =\n '[data-testid=\"assistant-widget-window\"], [data-testid=\"assistant-widget-launcher\"]';\n\n/** True when the event started inside the assistant launcher or window. */\nexport function isAssistantWidgetEvent(event: Pick<Event, 'target'>): boolean {\n const target = event.target;\n return target instanceof Element && target.closest(ASSISTANT_WIDGET_SELECTOR) !== null;\n}\n\n/**\n * Spread on `DialogContent`: ignore outside interactions that land in the\n * assistant widget, so talking to the assistant keeps the record open.\n */\nexport function keepOpenForAssistant(event: Pick<Event, 'target' | 'preventDefault'>): void {\n if (isAssistantWidgetEvent(event)) event.preventDefault();\n}\n\n/** Spread on the `Dialog` root of a record-detail dialog. */\nexport const ASSISTANT_AWARE_DIALOG_ROOT_PROPS = { modal: false } as const;\n\n/** Spread on the `DialogContent` of a record-detail dialog. */\nexport const ASSISTANT_AWARE_DIALOG_CONTENT_PROPS = {\n onInteractOutside: keepOpenForAssistant,\n} as const;\n"],"mappings":"AA8BA,SAAgB,EAAuB,GAAuC;CAC5E,IAAM,IAAS,EAAM;CACrB,OAAO,aAAkB,WAAW,EAAO,QAAA,wFAAiC,MAAM;AACpF;AAMA,SAAgB,EAAqB,GAAuD;CAC1F,AAAI,EAAuB,CAAK,KAAG,EAAM,eAAe;AAC1D;AAGA,IAAa,IAAoC,EAAE,OAAO,GAAM,GAGnD,IAAuC,EAClD,mBAAmB,EACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalysesPage.d.ts","sourceRoot":"","sources":["../../../../src/cosmicintersection/pages/analyses/AnalysesPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AnalysesPage.d.ts","sourceRoot":"","sources":["../../../../src/cosmicintersection/pages/analyses/AnalysesPage.tsx"],"names":[],"mappings":"AA2lBA,MAAM,CAAC,OAAO,UAAU,YAAY,gCAoXnC"}
|