@sudobility/testomniac_ui 0.0.7 → 0.0.8
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/components/cells/BundleCell.d.ts +3 -1
- package/dist/components/cells/BundleCell.d.ts.map +1 -1
- package/dist/components/cells/BundleCell.js +7 -3
- package/dist/components/cells/BundleCell.js.map +1 -1
- package/dist/components/cells/InteractionCell.d.ts +5 -1
- package/dist/components/cells/InteractionCell.d.ts.map +1 -1
- package/dist/components/cells/InteractionCell.js +6 -2
- package/dist/components/cells/InteractionCell.js.map +1 -1
- package/dist/components/cells/ListCell.d.ts +3 -1
- package/dist/components/cells/ListCell.d.ts.map +1 -1
- package/dist/components/cells/ListCell.js +2 -2
- package/dist/components/cells/ListCell.js.map +1 -1
- package/dist/components/cells/PersonaCell.d.ts +3 -1
- package/dist/components/cells/PersonaCell.d.ts.map +1 -1
- package/dist/components/cells/PersonaCell.js +7 -2
- package/dist/components/cells/PersonaCell.js.map +1 -1
- package/dist/components/cells/ScaffoldCell.d.ts +3 -1
- package/dist/components/cells/ScaffoldCell.d.ts.map +1 -1
- package/dist/components/cells/ScaffoldCell.js +10 -4
- package/dist/components/cells/ScaffoldCell.js.map +1 -1
- package/dist/components/cells/ScenarioCell.d.ts +3 -1
- package/dist/components/cells/ScenarioCell.d.ts.map +1 -1
- package/dist/components/cells/ScenarioCell.js +5 -1
- package/dist/components/cells/ScenarioCell.js.map +1 -1
- package/dist/components/cells/SurfaceCell.d.ts +3 -1
- package/dist/components/cells/SurfaceCell.d.ts.map +1 -1
- package/dist/components/cells/SurfaceCell.js +5 -2
- package/dist/components/cells/SurfaceCell.js.map +1 -1
- package/dist/components/data/DataTable.d.ts.map +1 -1
- package/dist/components/data/DataTable.js +12 -10
- package/dist/components/data/DataTable.js.map +1 -1
- package/dist/components/pages/PagesListView.d.ts.map +1 -1
- package/dist/components/pages/PagesListView.js +6 -5
- package/dist/components/pages/PagesListView.js.map +1 -1
- package/dist/components/pages/PagesMapView.d.ts +3 -1
- package/dist/components/pages/PagesMapView.d.ts.map +1 -1
- package/dist/components/pages/PagesMapView.js +2 -2
- package/dist/components/pages/PagesMapView.js.map +1 -1
- package/dist/components/ui/AddButton.d.ts +19 -0
- package/dist/components/ui/AddButton.d.ts.map +1 -0
- package/dist/components/ui/AddButton.js +12 -0
- package/dist/components/ui/AddButton.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/pages/BundleDetailPage.d.ts.map +1 -1
- package/dist/pages/BundleDetailPage.js +2 -2
- package/dist/pages/BundleDetailPage.js.map +1 -1
- package/dist/pages/BundlesPage.d.ts.map +1 -1
- package/dist/pages/BundlesPage.js +3 -2
- package/dist/pages/BundlesPage.js.map +1 -1
- package/dist/pages/DashboardOverview.d.ts.map +1 -1
- package/dist/pages/DashboardOverview.js +2 -2
- package/dist/pages/DashboardOverview.js.map +1 -1
- package/dist/pages/FindingsListPage.js +50 -44
- package/dist/pages/FindingsListPage.js.map +1 -1
- package/dist/pages/PageDetailPage.d.ts.map +1 -1
- package/dist/pages/PageDetailPage.js +11 -8
- package/dist/pages/PageDetailPage.js.map +1 -1
- package/dist/pages/PageGraphPage.d.ts.map +1 -1
- package/dist/pages/PageGraphPage.js +2 -1
- package/dist/pages/PageGraphPage.js.map +1 -1
- package/dist/pages/PageStateDetailPage.d.ts.map +1 -1
- package/dist/pages/PageStateDetailPage.js +10 -10
- package/dist/pages/PageStateDetailPage.js.map +1 -1
- package/dist/pages/PagesPage.d.ts.map +1 -1
- package/dist/pages/PagesPage.js +6 -5
- package/dist/pages/PagesPage.js.map +1 -1
- package/dist/pages/PatternsPage.d.ts.map +1 -1
- package/dist/pages/PatternsPage.js +8 -8
- package/dist/pages/PatternsPage.js.map +1 -1
- package/dist/pages/PersonasPage.d.ts.map +1 -1
- package/dist/pages/PersonasPage.js +3 -2
- package/dist/pages/PersonasPage.js.map +1 -1
- package/dist/pages/RunSurfaceRunDetailPage.d.ts.map +1 -1
- package/dist/pages/RunSurfaceRunDetailPage.js +4 -4
- package/dist/pages/RunSurfaceRunDetailPage.js.map +1 -1
- package/dist/pages/RunSurfaceRunsPage.d.ts.map +1 -1
- package/dist/pages/RunSurfaceRunsPage.js +2 -2
- package/dist/pages/RunSurfaceRunsPage.js.map +1 -1
- package/dist/pages/RunTestInteractionRunDetailPage.d.ts.map +1 -1
- package/dist/pages/RunTestInteractionRunDetailPage.js +2 -2
- package/dist/pages/RunTestInteractionRunDetailPage.js.map +1 -1
- package/dist/pages/RunTestInteractionRunsPage.d.ts.map +1 -1
- package/dist/pages/RunTestInteractionRunsPage.js +2 -2
- package/dist/pages/RunTestInteractionRunsPage.js.map +1 -1
- package/dist/pages/RunnerGraphPage.d.ts.map +1 -1
- package/dist/pages/RunnerGraphPage.js +2 -1
- package/dist/pages/RunnerGraphPage.js.map +1 -1
- package/dist/pages/RunnerSettingsPage.d.ts.map +1 -1
- package/dist/pages/RunnerSettingsPage.js +2 -1
- package/dist/pages/RunnerSettingsPage.js.map +1 -1
- package/dist/pages/ScaffoldDetailPage.d.ts.map +1 -1
- package/dist/pages/ScaffoldDetailPage.js +3 -3
- package/dist/pages/ScaffoldDetailPage.js.map +1 -1
- package/dist/pages/ScaffoldsPage.d.ts.map +1 -1
- package/dist/pages/ScaffoldsPage.js +4 -3
- package/dist/pages/ScaffoldsPage.js.map +1 -1
- package/dist/pages/ScanProgressPage.d.ts.map +1 -1
- package/dist/pages/ScanProgressPage.js +2 -2
- package/dist/pages/ScanProgressPage.js.map +1 -1
- package/dist/pages/SchedulesPage.d.ts.map +1 -1
- package/dist/pages/SchedulesPage.js +34 -33
- package/dist/pages/SchedulesPage.js.map +1 -1
- package/dist/pages/StartScanPage.d.ts.map +1 -1
- package/dist/pages/StartScanPage.js +3 -3
- package/dist/pages/StartScanPage.js.map +1 -1
- package/dist/pages/TestInteractionDetailPage.d.ts.map +1 -1
- package/dist/pages/TestInteractionDetailPage.js +5 -5
- package/dist/pages/TestInteractionDetailPage.js.map +1 -1
- package/dist/pages/TestInteractionsPage.d.ts.map +1 -1
- package/dist/pages/TestInteractionsPage.js +10 -40
- package/dist/pages/TestInteractionsPage.js.map +1 -1
- package/dist/pages/TestRunDetailPage.d.ts.map +1 -1
- package/dist/pages/TestRunDetailPage.js +4 -3
- package/dist/pages/TestRunDetailPage.js.map +1 -1
- package/dist/pages/TestRunsListPage.d.ts.map +1 -1
- package/dist/pages/TestRunsListPage.js +24 -1
- package/dist/pages/TestRunsListPage.js.map +1 -1
- package/dist/pages/TestScenarioDetailPage.d.ts.map +1 -1
- package/dist/pages/TestScenarioDetailPage.js +5 -5
- package/dist/pages/TestScenarioDetailPage.js.map +1 -1
- package/dist/pages/TestScenariosPage.d.ts.map +1 -1
- package/dist/pages/TestScenariosPage.js +8 -7
- package/dist/pages/TestScenariosPage.js.map +1 -1
- package/dist/pages/TestSurfaceDetailPage.d.ts.map +1 -1
- package/dist/pages/TestSurfaceDetailPage.js +3 -5
- package/dist/pages/TestSurfaceDetailPage.js.map +1 -1
- package/dist/pages/TestSurfacesListPage.d.ts.map +1 -1
- package/dist/pages/TestSurfacesListPage.js +11 -10
- package/dist/pages/TestSurfacesListPage.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { formatDuration, formatDate } from '@sudobility/testomniac_lib';
|
|
3
|
+
import { ContentLayout, CardGrid, GridTile } from '@sudobility/components';
|
|
3
4
|
import { SEOHead } from '../context/config';
|
|
4
5
|
import { useLocalizedNavigate } from '../hooks/useLocalizedNavigate';
|
|
5
6
|
import { useEnvRoutes } from '../context/routing';
|
|
6
7
|
import { useDashboardEnvironmentContext } from '../hooks/useDashboardEnvironmentContext';
|
|
7
8
|
import { StatusBadge } from '../components/scanner/StatusBadge';
|
|
8
9
|
import { ErrorState, LoadingState, EmptyState } from '../components/states';
|
|
10
|
+
/** Best-effort host extraction for a run's scan URL (falls back to null). */
|
|
11
|
+
function runHost(scanUrl) {
|
|
12
|
+
if (!scanUrl)
|
|
13
|
+
return null;
|
|
14
|
+
try {
|
|
15
|
+
return new URL(scanUrl).host;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return scanUrl;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
9
21
|
export function TestRunsListPage() {
|
|
10
22
|
const { navigate } = useLocalizedNavigate();
|
|
11
23
|
const { environmentRuns: testRuns, isLoading, error } = useDashboardEnvironmentContext();
|
|
@@ -13,6 +25,17 @@ export function TestRunsListPage() {
|
|
|
13
25
|
if (error) {
|
|
14
26
|
return _jsx(ErrorState, { message: error });
|
|
15
27
|
}
|
|
16
|
-
return (_jsxs("div", { className: "
|
|
28
|
+
return (_jsx(ContentLayout, { header: _jsxs("div", { className: "border-b border-gray-200 bg-white px-4 pb-4 pt-4 dark:border-gray-800 dark:bg-gray-900 sm:px-6 sm:pt-6", children: [_jsx(SEOHead, { title: "Test Runs", description: "", noIndex: true }), _jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: "Test Runs" })] }), children: _jsxs("div", { className: "px-4 py-4 sm:px-6", children: [isLoading && _jsx(LoadingState, { message: "Loading test runs..." }), !isLoading && testRuns.length === 0 && (_jsx(EmptyState, { title: "No test runs yet", description: "Test runs will appear here after tests are executed." })), !isLoading && testRuns.length > 0 && (_jsx(CardGrid, { density: "wide", children: testRuns.map((run) => {
|
|
29
|
+
const host = runHost(run.scanUrl);
|
|
30
|
+
const metrics = [
|
|
31
|
+
run.pagesFound != null ? `${run.pagesFound} pages` : null,
|
|
32
|
+
formatDuration(run.totalDurationMs),
|
|
33
|
+
run.sizeClass,
|
|
34
|
+
formatDate(run.createdAt),
|
|
35
|
+
]
|
|
36
|
+
.filter(Boolean)
|
|
37
|
+
.join(' · ');
|
|
38
|
+
return (_jsx(GridTile, { topRight: _jsx(StatusBadge, { status: run.status }), title: host ?? `Run #${run.id}`, subtitle: run.scanUrl ?? undefined, footer: _jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: metrics }), onClick: () => navigate(r.run(run.id)) }, run.id));
|
|
39
|
+
}) }))] }) }));
|
|
17
40
|
}
|
|
18
41
|
//# sourceMappingURL=TestRunsListPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestRunsListPage.js","sourceRoot":"","sources":["../../src/pages/TestRunsListPage.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,UAAU,gBAAgB;IAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC5C,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,8BAA8B,EAAE,CAAC;IAEzF,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;IAEzB,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAC,UAAU,IAAC,OAAO,EAAE,KAAK,GAAI,CAAC;IACxC,CAAC;IAED,OAAO,CACL,eAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"TestRunsListPage.js","sourceRoot":"","sources":["../../src/pages/TestRunsListPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestScenarioDetailPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestScenarioDetailPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TestScenarioDetailPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestScenarioDetailPage.tsx"],"names":[],"mappings":"AAmIA,wBAAgB,sBAAsB,gCA6MrC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { useRunnerTestScenarios, useEnvironmentTestInteractions, useTestScenarioSequences, useTestScenarioSequenceTestInteractions, useProductPersonas, useGenerateSequence, } from '@sudobility/testomniac_client';
|
|
4
|
-
import { Alert, ActionButton, Card } from '@sudobility/components';
|
|
4
|
+
import { Alert, ActionButton, Card, ContentLayout } from '@sudobility/components';
|
|
5
5
|
import { SEOHead, useTestomniacApi } from '../context/config';
|
|
6
6
|
import { useRouteParams, useEnvRoutes } from '../context/routing';
|
|
7
7
|
import { InteractionCell, ListCell } from '../components/cells';
|
|
@@ -18,12 +18,12 @@ function SequenceCard({ sequence, isExpanded, onToggle, networkClient, token, in
|
|
|
18
18
|
const isLoading = interactionsQuery.isLoading;
|
|
19
19
|
const sorted = [...testInteractionLinks].sort((a, b) => (a.stepOrder ?? 0) - (b.stepOrder ?? 0));
|
|
20
20
|
const interactionById = new Map(interactions.map(i => [i.id, i]));
|
|
21
|
-
return (_jsxs(Card, { variant: "bordered", padding: "none", className: "overflow-hidden", children: [_jsxs("button", { onClick: onToggle, className: "flex items-center gap-3 w-full px-4 py-
|
|
22
|
-
` — Created: ${new Date(sequence.createdAt).toLocaleDateString()}`] })] })] }), isExpanded && (_jsxs("div", { className: "border-t border-gray-100 dark:border-gray-700 px-4 py-3", children: [isLoading && _jsx("div", { className: "text-xs text-gray-400 py-2", children: "Loading interactions..." }), !isLoading && sorted.length === 0 && (_jsx("div", { className: "text-xs text-gray-400 py-2", children: "No interactions in this sequence." })), !isLoading && sorted.length > 0 && (_jsx("div", { className: "space-y-
|
|
21
|
+
return (_jsxs(Card, { variant: "bordered", padding: "none", className: "overflow-hidden", children: [_jsxs("button", { onClick: onToggle, className: "flex items-center gap-3 w-full px-4 py-2 text-left hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors", children: [_jsx("span", { className: "text-xs text-gray-400", children: isExpanded ? '▼' : '▶' }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: ["Sequence #", sequence.id] }), _jsxs("div", { className: "text-xs text-gray-500 dark:text-gray-400 mt-0.5", children: ["Environment ID: ", sequence.testEnvironmentId, sequence.createdAt &&
|
|
22
|
+
` — Created: ${new Date(sequence.createdAt).toLocaleDateString()}`] })] })] }), isExpanded && (_jsxs("div", { className: "border-t border-gray-100 dark:border-gray-700 px-4 py-3", children: [isLoading && _jsx("div", { className: "text-xs text-gray-400 py-2", children: "Loading interactions..." }), !isLoading && sorted.length === 0 && (_jsx("div", { className: "text-xs text-gray-400 py-2", children: "No interactions in this sequence." })), !isLoading && sorted.length > 0 && (_jsx("div", { className: "space-y-1", children: sorted.map(link => {
|
|
23
23
|
const interaction = interactionById.get(link.testInteractionId);
|
|
24
24
|
const onOpen = () => navigate(interactionPath(link.testInteractionId));
|
|
25
25
|
const stepLabel = (_jsxs("span", { className: "w-6 text-right font-mono text-xs text-gray-400", children: [link.stepOrder, "."] }));
|
|
26
|
-
return interaction ? (_jsx(InteractionCell, { interaction: interaction, onClick: onOpen, leading: stepLabel }, link.id)) : (_jsx(ListCell, { leading: stepLabel, title: `Interaction #${link.testInteractionId}`, onClick: onOpen }, link.id));
|
|
26
|
+
return interaction ? (_jsx(InteractionCell, { interaction: interaction, onClick: onOpen, leading: stepLabel, compact: true }, link.id)) : (_jsx(ListCell, { leading: stepLabel, title: `Interaction #${link.testInteractionId}`, onClick: onOpen, compact: true }, link.id));
|
|
27
27
|
}) })), !isLoading && sorted.length > 0 && (_jsx("div", { className: "mt-4 border-t border-gray-100 pt-3 dark:border-gray-700", children: _jsx(ScriptPanel, { kind: "sequence", id: sequence.id, filename: `sequence-${sequence.id}.spec.ts`, enabled: isExpanded }) }))] }))] }));
|
|
28
28
|
}
|
|
29
29
|
export function TestScenarioDetailPage() {
|
|
@@ -81,6 +81,6 @@ export function TestScenarioDetailPage() {
|
|
|
81
81
|
if (contextError || sequencesError) {
|
|
82
82
|
return (_jsx("div", { className: "p-4 sm:p-6", children: _jsxs("div", { className: "text-center text-red-600 dark:text-red-400 py-8", children: ["Error: ", contextError || sequencesError] }) }));
|
|
83
83
|
}
|
|
84
|
-
return (_jsxs("div", { className: "
|
|
84
|
+
return (_jsx(ContentLayout, { header: _jsxs("div", { className: "border-b border-gray-200 bg-white px-4 pb-4 pt-4 dark:border-gray-800 dark:bg-gray-900 sm:px-6 sm:pt-6", children: [_jsx(SEOHead, { title: scenario?.title ?? `Scenario #${scenarioId}`, description: "", noIndex: true }), _jsx(BackLink, { label: "Test Scenarios", onClick: () => navigate(r.testScenarios()) }), _jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: scenario?.title ?? `Test Scenario #${scenarioId}` }), _jsx(AddToBundleButton, { itemType: "scenario", itemId: Number(scenarioId) })] })] }), children: _jsxs("div", { className: "px-4 py-4 sm:px-6", children: [scenario && (_jsxs("div", { className: "mb-6 space-y-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-x-4 gap-y-1 text-sm text-gray-500 dark:text-gray-400", children: [_jsxs("span", { children: ["Starting path:", ' ', _jsx("code", { className: "text-gray-900 dark:text-gray-100", children: scenario.startingPath })] }), _jsxs("span", { children: ["Device:", ' ', _jsx("code", { className: "text-gray-900 dark:text-gray-100", children: scenario.sizeClass })] }), scenario.personaId && (_jsxs("span", { children: ["Persona:", ' ', _jsx("code", { className: "text-gray-900 dark:text-gray-100", children: personaName ?? `#${scenario.personaId}` })] }))] }), _jsxs(Card, { variant: "bordered", padding: "sm", children: [_jsx("div", { className: "text-xs font-medium text-gray-500 dark:text-gray-400 mb-1", children: "Prompt" }), _jsx("p", { className: "text-sm text-gray-900 dark:text-gray-100 whitespace-pre-wrap", children: scenario.prompt })] })] })), _jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-3", children: [_jsx("h2", { className: "text-sm font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider", children: "Sequences" }), _jsx(ActionButton, { variant: "primary", className: "bg-purple-600 hover:bg-purple-700", onClick: handleGenerateSequence, disabled: !scenarioId, isLoading: isGenerating, loadingText: "Generating...", children: "Generate Sequence" })] }), generateErrorMsg && (_jsx(Alert, { variant: "error", description: generateErrorMsg, className: "mb-3" })), sequencesLoading && (_jsx("div", { className: "text-sm text-gray-500 dark:text-gray-400 py-8 text-center", children: "Loading..." })), !sequencesLoading && sequences.length === 0 && (_jsx(EmptyState, { title: "No sequences yet", description: "Sequences are created when a scenario is run against an environment." })), sequences.length > 0 && (_jsx("div", { className: "space-y-2", children: sequences.map((seq) => (_jsx(SequenceCard, { sequence: seq, isExpanded: expandedSequenceId === seq.id, onToggle: () => setExpandedSequenceId(expandedSequenceId === seq.id ? null : seq.id), networkClient: networkClient, token: token ?? '', interactionPath: r.testInteraction, navigate: navigate, interactions: testInteractions }, seq.id))) }))] }) }));
|
|
85
85
|
}
|
|
86
86
|
//# sourceMappingURL=TestScenarioDetailPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestScenarioDetailPage.js","sourceRoot":"","sources":["../../src/pages/TestScenarioDetailPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,wBAAwB,EACxB,uCAAuC,EACvC,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"TestScenarioDetailPage.js","sourceRoot":"","sources":["../../src/pages/TestScenarioDetailPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,8BAA8B,EAC9B,wBAAwB,EACxB,uCAAuC,EACvC,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAMlF,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,QAAQ,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,SAAS,YAAY,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,aAAa,EACb,KAAK,EACL,eAAe,EACf,QAAQ,EACR,YAAY,GAUb;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,uCAAuC,CAC/D,aAAa,EACb,OAAO,EACP,KAAK,EACL,QAAQ,CAAC,EAAE,EACX,EAAE,OAAO,EAAE,UAAU,EAAE,CACxB,CAAC;IACF,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAChE,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;IAE9C,MAAM,MAAM,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;IAEjG,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAElE,OAAO,CACL,MAAC,IAAI,IAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAC,MAAM,EAAC,SAAS,EAAC,iBAAiB,aACjE,kBACE,OAAO,EAAE,QAAQ,EACjB,SAAS,EAAC,iHAAiH,aAE3H,eAAM,SAAS,EAAC,uBAAuB,YAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAQ,EACvE,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAK,SAAS,EAAC,sDAAsD,2BACxD,QAAQ,CAAC,EAAE,IAClB,EACN,eAAK,SAAS,EAAC,iDAAiD,iCAC7C,QAAQ,CAAC,iBAAiB,EAC1C,QAAQ,CAAC,SAAS;wCACjB,eAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,EAAE,IAChE,IACF,IACC,EAER,UAAU,IAAI,CACb,eAAK,SAAS,EAAC,yDAAyD,aACrE,SAAS,IAAI,cAAK,SAAS,EAAC,4BAA4B,wCAA8B,EACtF,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CACpC,cAAK,SAAS,EAAC,4BAA4B,kDAAwC,CACpF,EACA,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAClC,cAAK,SAAS,EAAC,WAAW,YACvB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;4BACjB,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;4BAChE,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;4BACvE,MAAM,SAAS,GAAG,CAChB,gBAAM,SAAS,EAAC,gDAAgD,aAC7D,IAAI,CAAC,SAAS,SACV,CACR,CAAC;4BACF,OAAO,WAAW,CAAC,CAAC,CAAC,CACnB,KAAC,eAAe,IAEd,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,SAAS,EAClB,OAAO,UAJF,IAAI,CAAC,EAAE,CAKZ,CACH,CAAC,CAAC,CAAC,CACF,KAAC,QAAQ,IAEP,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,gBAAgB,IAAI,CAAC,iBAAiB,EAAE,EAC/C,OAAO,EAAE,MAAM,EACf,OAAO,UAJF,IAAI,CAAC,EAAE,CAKZ,CACH,CAAC;wBACJ,CAAC,CAAC,GACE,CACP,EAEA,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAClC,cAAK,SAAS,EAAC,yDAAyD,YACtE,KAAC,WAAW,IACV,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,QAAQ,CAAC,EAAE,EACf,QAAQ,EAAE,YAAY,QAAQ,CAAC,EAAE,UAAU,EAC3C,OAAO,EAAE,UAAU,GACnB,GACE,CACP,IACG,CACP,IACI,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,cAAc,EAGxC,CAAC;IACL,MAAM,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACvC,MAAM,EACJ,aAAa,EACb,KAAK,EACL,SAAS,EACT,aAAa,EACb,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,GACpB,GAAG,8BAA8B,EAAE,CAAC;IAErC,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC;IAEzB,mEAAmE;IACnE,MAAM,cAAc,GAAG,sBAAsB,CAC3C,aAAa,EACb,OAAO,EACP,KAAK,EACL,aAAa,EAAE,EAAE,IAAI,CAAC,EACtB,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,aAAa,EAAE,CACnD,CAAC;IACF,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAEtD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAEtE,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;QACjF,OAAO,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK;KAChC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAEhD,6EAA6E;IAC7E,kEAAkE;IAClE,MAAM,iBAAiB,GAAG,8BAA8B,CACtD,aAAa,EACb,OAAO,EACP,KAAK,EACL,YAAY,EACZ,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAChC,CAAC;IACF,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAC5D,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,CAAC;IAEtD,MAAM,WAAW,GAAG,QAAQ,EAAE,SAAS;QACrC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK;QACxD,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,cAAc,GAAG,wBAAwB,CAC7C,aAAa,EACb,OAAO,EACP,KAAK,IAAI,EAAE,EACX,MAAM,CAAC,UAAU,CAAC,EAClB,EAAE,OAAO,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,KAAK,EAAE,CACrC,CAAC;IACF,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;IAClD,MAAM,gBAAgB,GAAG,cAAc,CAAC,SAAS,CAAC;IAClD,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;IAC7D,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC;IAEhD,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,wBAAwB,CAAC,SAAS,CAAC;IAExD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9E,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAElF,MAAM,sBAAsB,GAAG,KAAK,IAAI,EAAE;QACxC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC;gBACtD,KAAK,EAAE,KAAK,IAAI,EAAE;gBAClB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC9B,IAAI,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,mBAAmB,CAAC,IAAI,CAAC,KAAK,IAAI,6BAA6B,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;YACD,gBAAgB,EAAE,CAAC;YACnB,wEAAwE;YACxE,uEAAuE;YACvE,mBAAmB,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,mBAAmB,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,YAAY,IAAI,cAAc,EAAE,CAAC;QACnC,OAAO,CACL,cAAK,SAAS,EAAC,YAAY,YACzB,eAAK,SAAS,EAAC,iDAAiD,wBACtD,YAAY,IAAI,cAAc,IAClC,GACF,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,aAAa,IACZ,MAAM,EACJ,eAAK,SAAS,EAAC,wGAAwG,aACrH,KAAC,OAAO,IAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,aAAa,UAAU,EAAE,EAAE,WAAW,EAAC,EAAE,EAAC,OAAO,SAAG,EAEvF,KAAC,QAAQ,IAAC,KAAK,EAAC,gBAAgB,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,GAAI,EAE/E,eAAK,SAAS,EAAC,oEAAoE,aACjF,aAAI,SAAS,EAAC,qDAAqD,YAChE,QAAQ,EAAE,KAAK,IAAI,kBAAkB,UAAU,EAAE,GAC/C,EACL,KAAC,iBAAiB,IAAC,QAAQ,EAAC,UAAU,EAAC,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,GAAI,IACjE,IACF,YAGR,eAAK,SAAS,EAAC,mBAAmB,aAC/B,QAAQ,IAAI,CACX,eAAK,SAAS,EAAC,gBAAgB,aAC7B,eAAK,SAAS,EAAC,sFAAsF,aACnG,6CACiB,GAAG,EAClB,eAAM,SAAS,EAAC,kCAAkC,YAAE,QAAQ,CAAC,YAAY,GAAQ,IAC5E,EACP,sCACU,GAAG,EACX,eAAM,SAAS,EAAC,kCAAkC,YAAE,QAAQ,CAAC,SAAS,GAAQ,IACzE,EACN,QAAQ,CAAC,SAAS,IAAI,CACrB,uCACW,GAAG,EACZ,eAAM,SAAS,EAAC,kCAAkC,YAC/C,WAAW,IAAI,IAAI,QAAQ,CAAC,SAAS,EAAE,GACnC,IACF,CACR,IACG,EACN,MAAC,IAAI,IAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAC,IAAI,aACnC,cAAK,SAAS,EAAC,2DAA2D,uBAEpE,EACN,YAAG,SAAS,EAAC,8DAA8D,YACxE,QAAQ,CAAC,MAAM,GACd,IACC,IACH,CACP,EAGD,eAAK,SAAS,EAAC,yEAAyE,aACtF,aAAI,SAAS,EAAC,iFAAiF,0BAE1F,EACL,KAAC,YAAY,IACX,OAAO,EAAC,SAAS,EACjB,SAAS,EAAC,mCAAmC,EAC7C,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,CAAC,UAAU,EACrB,SAAS,EAAE,YAAY,EACvB,WAAW,EAAC,eAAe,kCAGd,IACX,EAEL,gBAAgB,IAAI,CACnB,KAAC,KAAK,IAAC,OAAO,EAAC,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAC,MAAM,GAAG,CAC1E,EAEA,gBAAgB,IAAI,CACnB,cAAK,SAAS,EAAC,2DAA2D,2BAEpE,CACP,EAEA,CAAC,gBAAgB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAC9C,KAAC,UAAU,IACT,KAAK,EAAC,kBAAkB,EACxB,WAAW,EAAC,sEAAsE,GAClF,CACH,EAEA,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,cAAK,SAAS,EAAC,WAAW,YACvB,SAAS,CAAC,GAAG,CAAC,CAAC,GAAiC,EAAE,EAAE,CAAC,CACpD,KAAC,YAAY,IAEX,QAAQ,EAAE,GAAG,EACb,UAAU,EAAE,kBAAkB,KAAK,GAAG,CAAC,EAAE,EACzC,QAAQ,EAAE,GAAG,EAAE,CACb,qBAAqB,CAAC,kBAAkB,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAEtE,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,eAAe,EAAE,CAAC,CAAC,eAAe,EAClC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,gBAAgB,IAVzB,GAAG,CAAC,EAAE,CAWX,CACH,CAAC,GACE,CACP,IACG,GACQ,CACjB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestScenariosPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestScenariosPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TestScenariosPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestScenariosPage.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,iBAAiB,gCA8JhC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { jsx as _jsx,
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { useRunnerTestScenarios, useDeleteTestScenario, useProductPersonas, useDetectTestScenarios, } from '@sudobility/testomniac_client';
|
|
4
|
-
import { Alert,
|
|
4
|
+
import { Alert, ActionButton, ContentLayout, CardGrid } from '@sudobility/components';
|
|
5
5
|
import { SEOHead, useTestomniacApi } from '../context/config';
|
|
6
|
+
import { AddButton } from '../components/ui/AddButton';
|
|
6
7
|
import { useRouteParams, useEnvRoutes } from '../context/routing';
|
|
7
8
|
import { ScenarioCell } from '../components/cells';
|
|
8
9
|
import { useLocalizedNavigate } from '../hooks/useLocalizedNavigate';
|
|
@@ -57,10 +58,10 @@ export function TestScenariosPage() {
|
|
|
57
58
|
if (contextError || error) {
|
|
58
59
|
return _jsx(ErrorState, { message: contextError || error || '' });
|
|
59
60
|
}
|
|
60
|
-
return (_jsxs("div", { className: "
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
return (_jsx(ContentLayout, { header: _jsxs("div", { className: "border-b border-gray-200 bg-white px-4 pb-4 pt-4 dark:border-gray-800 dark:bg-gray-900 sm:px-6 sm:pt-6", children: [_jsx(SEOHead, { title: "Test Scenarios", description: "", noIndex: true }), _jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: "Test Scenarios" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(ActionButton, { variant: "primary", className: "bg-purple-600 hover:bg-purple-700", onClick: handleDetect, disabled: !productId, isLoading: isDetecting, loadingText: "Detecting...", children: "Detect Scenarios" }), _jsx(AddButton, { label: "New Scenario", active: showForm, onClick: () => setShowForm(!showForm) })] })] })] }), children: _jsxs("div", { className: "px-4 py-4 sm:px-6", children: [detectError && _jsx(Alert, { variant: "error", description: detectError, className: "mb-4" }), showForm && primaryRunner && (_jsx("div", { className: "mb-6", children: _jsx(AddScenarioForm, { networkClient: networkClient, token: token, runnerId: primaryRunner.id, personas: personas, onCreated: () => {
|
|
62
|
+
setShowForm(false);
|
|
63
|
+
refetch();
|
|
64
|
+
}, onCancel: () => setShowForm(false) }) })), (contextLoading || isLoading) && _jsx(LoadingState, { message: "Loading test scenarios..." }), !isLoading && testScenarios.length === 0 && !showForm && (_jsx(EmptyState, { title: "No test scenarios yet", description: "Create a test scenario to define a user flow you want to test." })), !isLoading && testScenarios.length > 0 && (_jsx(CardGrid, { children: testScenarios.map((scenario) => (_jsx(ScenarioCell, { scenario: scenario, variant: "tile", onClick: () => navigate(r.testScenario(scenario.id)), trailing: _jsxs(_Fragment, { children: [scenario.personaId && (_jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: personas.find(p => p.id === scenario.personaId)?.title ??
|
|
65
|
+
`Persona #${scenario.personaId}` })), _jsx(StatusBadge, { status: scenario.sizeClass })] }), actions: _jsx("button", { onClick: () => handleDelete(scenario.id), className: "text-xs text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-300", children: "Delete" }) }, scenario.id))) }))] }) }));
|
|
65
66
|
}
|
|
66
67
|
//# sourceMappingURL=TestScenariosPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestScenariosPage.js","sourceRoot":"","sources":["../../src/pages/TestScenariosPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"TestScenariosPage.js","sourceRoot":"","sources":["../../src/pages/TestScenariosPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestSurfaceDetailPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestSurfaceDetailPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TestSurfaceDetailPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestSurfaceDetailPage.tsx"],"names":[],"mappings":"AAWA,wBAAgB,qBAAqB,gCAyEpC"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useTestSurfaceTestInteractions } from '@sudobility/testomniac_client';
|
|
3
|
+
import { ContentLayout, CardGrid } from '@sudobility/components';
|
|
3
4
|
import { useTestomniacApi } from '../context/config';
|
|
4
5
|
import { useRouteParams, useEnvRoutes } from '../context/routing';
|
|
5
6
|
import BackLink from '../components/navigation/BackLink';
|
|
6
7
|
import { useLocalizedNavigate } from '../hooks/useLocalizedNavigate';
|
|
7
|
-
import {
|
|
8
|
+
import { InteractionCell } from '../components/cells';
|
|
8
9
|
import { AddToBundleButton } from '../components/bundles/AddToBundleButton';
|
|
9
10
|
import { ErrorState, LoadingState, EmptyState } from '../components/states';
|
|
10
|
-
function FileIcon() {
|
|
11
|
-
return (_jsx("svg", { className: "w-5 h-5 flex-shrink-0 text-blue-500 dark:text-blue-400", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 1.5, children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z" }) }));
|
|
12
|
-
}
|
|
13
11
|
export function TestSurfaceDetailPage() {
|
|
14
12
|
const { surfaceId } = useRouteParams();
|
|
15
13
|
const { networkClient, token, baseUrl } = useTestomniacApi();
|
|
@@ -24,6 +22,6 @@ export function TestSurfaceDetailPage() {
|
|
|
24
22
|
if (error) {
|
|
25
23
|
return _jsx(ErrorState, { message: error });
|
|
26
24
|
}
|
|
27
|
-
return (_jsxs("div", { className: "
|
|
25
|
+
return (_jsx(ContentLayout, { header: _jsxs("div", { className: "border-b border-gray-200 bg-white px-4 pb-4 pt-4 dark:border-gray-800 dark:bg-gray-900 sm:px-6 sm:pt-6", children: [_jsx(BackLink, { label: "Test Surfaces", onClick: () => navigate(r.testSurfaces()) }), _jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: ["Test Surface #", surfaceId] }), _jsx(AddToBundleButton, { itemType: "surface", itemId: Number(surfaceId) })] })] }), children: _jsxs("div", { className: "px-4 py-4 sm:px-6", children: [isLoading && _jsx(LoadingState, { message: "Loading..." }), !isLoading && testInteractions.length === 0 && (_jsx(EmptyState, { title: "Empty surface", description: "This test surface has no test interactions." })), testInteractions.length > 0 && (_jsxs("div", { children: [_jsx("h2", { className: "text-sm font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider mb-3", children: "Test Interactions" }), _jsx(CardGrid, { children: testInteractions.map((tc) => (_jsx(InteractionCell, { interaction: tc, variant: "tile", onClick: () => navigate(r.testInteraction(tc.id)) }, tc.id))) })] }))] }) }));
|
|
28
26
|
}
|
|
29
27
|
//# sourceMappingURL=TestSurfaceDetailPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestSurfaceDetailPage.js","sourceRoot":"","sources":["../../src/pages/TestSurfaceDetailPage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,QAAQ,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TestSurfaceDetailPage.js","sourceRoot":"","sources":["../../src/pages/TestSurfaceDetailPage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestSurfacesListPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestSurfacesListPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TestSurfacesListPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestSurfacesListPage.tsx"],"names":[],"mappings":"AAeA,wBAAgB,oBAAoB,gCA8KnC"}
|
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState, useMemo } from 'react';
|
|
3
3
|
import { useEnvironmentTestSurfaces } from '@sudobility/testomniac_client';
|
|
4
4
|
import { getSurfacePriorityBand } from '@sudobility/testomniac_lib';
|
|
5
|
+
import { ContentLayout, CardGrid } from '@sudobility/components';
|
|
5
6
|
import { SEOHead, useTestomniacApi } from '../context/config';
|
|
6
7
|
import { useRouteParams, useEnvRoutes } from '../context/routing';
|
|
7
8
|
import { SurfaceCell } from '../components/cells';
|
|
@@ -55,15 +56,15 @@ export function TestSurfacesListPage() {
|
|
|
55
56
|
if (error) {
|
|
56
57
|
return _jsx(ErrorState, { message: error });
|
|
57
58
|
}
|
|
58
|
-
return (_jsxs("div", { className: "
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
return (_jsx(ContentLayout, { header: _jsxs("div", { className: "border-b border-gray-200 bg-white px-4 pb-4 pt-4 dark:border-gray-800 dark:bg-gray-900 sm:px-6 sm:pt-6", children: [_jsx(SEOHead, { title: "Test Surfaces", description: "", noIndex: true }), _jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: "Test Surfaces" }), !isLoading && testSurfaces.length > 0 && (_jsxs("div", { className: "flex flex-wrap items-center gap-4 mt-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Device:" }), _jsxs("div", { className: "flex items-center rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden", children: [_jsx("button", { onClick: () => setDeviceFilter('all'), className: deviceButtonClass('all'), children: "All" }), _jsx("button", { onClick: () => setDeviceFilter('desktop'), className: deviceButtonClass('desktop'), children: "Desktop" }), _jsx("button", { onClick: () => setDeviceFilter('mobile'), className: deviceButtonClass('mobile'), children: "Mobile" })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Priority:" }), _jsx(SelectField, { value: priorityFilter, onChange: v => setPriorityFilter(v), options: [
|
|
60
|
+
{ value: 'all', label: 'All priorities' },
|
|
61
|
+
{ value: 'critical', label: 'Critical (8+)' },
|
|
62
|
+
{ value: 'high', label: 'High (5-7)' },
|
|
63
|
+
{ value: 'medium', label: 'Medium (3-4)' },
|
|
64
|
+
{ value: 'low', label: 'Low (<3)' },
|
|
65
|
+
] })] }), typeOptions.length > 0 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Type:" }), _jsx(SelectField, { value: typeFilter, onChange: setTypeFilter, options: [
|
|
66
|
+
{ value: 'all', label: 'All types' },
|
|
67
|
+
...typeOptions.map(type => ({ value: type, label: type })),
|
|
68
|
+
] })] })), _jsxs("span", { className: "text-sm text-gray-400 dark:text-gray-500", children: [filteredSurfaces.length, " of ", testSurfaces.length] })] }))] }), children: _jsxs("div", { className: "px-4 py-4 sm:px-6", children: [isLoading && _jsx(LoadingState, { message: "Loading test surfaces..." }), !isLoading && filteredSurfaces.length === 0 && testSurfaces.length > 0 && (_jsx(EmptyState, { title: "No matching test surfaces", description: "Try adjusting the filters to see more results." })), !isLoading && testSurfaces.length === 0 && (_jsx(EmptyState, { title: "No test surfaces yet", description: "Test surfaces will appear here after a scan generates them." })), !isLoading && filteredSurfaces.length > 0 && (_jsx(CardGrid, { children: filteredSurfaces.map((surface) => (_jsx(SurfaceCell, { surface: surface, variant: "tile", onClick: () => navigate(r.testSurface(surface.id)) }, surface.id))) }))] }) }));
|
|
68
69
|
}
|
|
69
70
|
//# sourceMappingURL=TestSurfacesListPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestSurfacesListPage.js","sourceRoot":"","sources":["../../src/pages/TestSurfacesListPage.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TestSurfacesListPage.js","sourceRoot":"","sources":["../../src/pages/TestSurfacesListPage.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/testomniac_ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "Shared dashboard UI components, pages, and hooks for Testomniac apps (router/i18n-agnostic)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@heroicons/react": ">=2.0.0",
|
|
30
|
-
"@sudobility/components": "^5.0.
|
|
30
|
+
"@sudobility/components": "^5.0.82",
|
|
31
31
|
"@sudobility/design": "^1.1.32",
|
|
32
32
|
"@sudobility/testomniac_client": "^0.0.101",
|
|
33
33
|
"@sudobility/testomniac_lib": "^0.0.109",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@eslint/js": "^9.39.1",
|
|
44
44
|
"@heroicons/react": "^2.2.0",
|
|
45
|
-
"@sudobility/components": "^5.0.
|
|
45
|
+
"@sudobility/components": "^5.0.82",
|
|
46
46
|
"@sudobility/design": "^1.1.32",
|
|
47
47
|
"@sudobility/testomniac_client": "^0.0.101",
|
|
48
48
|
"@sudobility/testomniac_lib": "^0.0.109",
|