@camstack/ui-library 1.2.259 → 1.2.261

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.
@@ -37,6 +37,7 @@ export { IconAction, type IconActionProps } from "./icon-action";
37
37
  export type { DeviceListAddonOption, DeviceListDeviceProps, DeviceListBatchActions, DeviceListIntegrationIconResolver, DeviceListIntegrationOption } from "./device-mode";
38
38
  export type { DeviceListColumn, DeviceListGenericProps, GenericPageSizeSelector } from "./generic-mode";
39
39
  export { PageSizeSelect, pageSizeLabel, type PageSizeSelectProps } from "./page-size-select";
40
+ export { Pagination, computePageButtons, type PaginationProps, type PageButton } from "./pagination";
40
41
  /**
41
42
  * Default registry-device list, or a generic render-prop list (`mode:'generic'`).
42
43
  * Existing call sites pass no `mode` and resolve to the device variant unchanged.
@@ -16,6 +16,10 @@ export type { BatteryBadgeProps, BatteryStatusLike } from "./battery-badge";
16
16
  export { BatteryBadge } from "./battery-badge";
17
17
  export type { NetworkLinkBadgeProps, NetworkLinkStatusLike } from "./network-link-badge";
18
18
  export { NetworkLinkBadge } from "./network-link-badge";
19
+ export { NODE_COLOR_IDS, assignNodeColorId, nodeColorClass, nodeTextColorClass } from "./node-color";
20
+ export type { NodeColorId } from "./node-color";
21
+ export type { RoleNodePillProps } from "./role-node-pill";
22
+ export { RoleNodePill } from "./role-node-pill";
19
23
  export * from "./breadcrumb";
20
24
  export type { AdaptiveHintsReport, AdaptiveOfferPhase, ApplyDownlinkProbe, DownlinkProbeAnswer } from "./adaptive-downlink";
21
25
  export type { CameraStreamPlayerProps, ClientOfferResult, ClientStreamHints, PlayerConnectionState, PlayerWebrtcTarget, SessionSignalingState, SignalingResult } from "./camera-stream-player";
@@ -48,6 +52,8 @@ export { PtzPanel } from "./cap-settings/PtzPanel";
48
52
  export { RecordingPanel } from "./cap-settings/RecordingPanel";
49
53
  export { SendFrameToTrainingButton, type SendFrameToTrainingButtonProps } from "./training/send-frame-to-training";
50
54
  export { TrainingCollectionPicker, type TrainingCollectionPickerProps } from "./training/training-collection-picker";
55
+ export { TrainingBaseModelPicker, type TrainingBaseModelPickerProps, type TrainingBaseModelRow, type TrainingBaseModelPlacement } from "./training/TrainingBaseModelPicker";
56
+ export { ROOT_DETECTOR_STEP_ID, clusterRootModelIds, defaultSelectClusterRoots, mapRootDetectorPlacements, type RootDetectorDeviceInput, type RootDetectorNodeInput } from "./training/root-detector-placements";
51
57
  export { type TrainingFrameRefusal, trainingRefusalText } from "./training/training-refusal-text";
52
58
  export type { SceneCaptureVariant } from "./cap-settings/scene-monitor-copy";
53
59
  export { badgeFor, coverageLine, humanDuration, ROI_AREA_WARN_FRACTION, roiTooLarge, SCENE_CAPTURE_VARIANTS, statusLine, variantLabel } from "./cap-settings/scene-monitor-copy";
@@ -162,6 +168,8 @@ export { PipelineRuntimeSelector } from "./pipeline-runtime-selector";
162
168
  export type { PipelineStepDisplayConfig, PipelineStepProps } from "./pipeline-step";
163
169
  export { ConfigSchemaField, PipelineStep } from "./pipeline-step";
164
170
  export * from "./provider-badge";
171
+ export { AddProviderEntryDialog, ProviderEntryPills } from "./provider-entries";
172
+ export type { AddProviderEntryCreateInput, AddProviderEntryDialogProps, ProviderEntryPill, ProviderEntryPillsProps, ProviderEntryStatus, ProviderEntryTypeOption } from "./provider-entries";
165
173
  export type { PTZOverlayProps } from "./ptz-overlay";
166
174
  export { PTZOverlay } from "./ptz-overlay";
167
175
  export type { QrCodeProps } from "./qr-code";
@@ -0,0 +1,4 @@
1
+ import { NODE_COLOR_IDS, assignNodeColorId, type NodeColorId } from "@camstack/types";
2
+ export { NODE_COLOR_IDS, assignNodeColorId, type NodeColorId };
3
+ export declare function nodeColorClass(id: NodeColorId): string;
4
+ export declare function nodeTextColorClass(id: NodeColorId): string;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * AddProviderEntryDialog — create one credential entry for a provider type.
3
+ *
4
+ * The host supplies the creatable types (`describeTypes`); the dialog never
5
+ * invents them. Submit hands `{ typeId, name }` to `onCreate` — credentials
6
+ * and settings live on the entry body after create (Task 11).
7
+ */
8
+ import { type JSX } from "react";
9
+ export interface ProviderEntryTypeOption {
10
+ readonly typeId: string;
11
+ readonly label: string;
12
+ readonly iconUrl: string | null;
13
+ }
14
+ export interface AddProviderEntryCreateInput {
15
+ readonly typeId: string;
16
+ readonly name: string;
17
+ }
18
+ export interface AddProviderEntryDialogProps {
19
+ readonly open: boolean;
20
+ readonly onOpenChange: (open: boolean) => void;
21
+ readonly types: readonly ProviderEntryTypeOption[];
22
+ readonly onCreate: (input: AddProviderEntryCreateInput) => void | Promise<void>;
23
+ /** When true, Create is disabled and shows a spinner. */
24
+ readonly submitting?: boolean;
25
+ readonly title?: string;
26
+ readonly description?: string;
27
+ }
28
+ export declare function AddProviderEntryDialog({ open, onOpenChange, types, onCreate, submitting, title, description }: AddProviderEntryDialogProps): JSX.Element;
@@ -0,0 +1,19 @@
1
+ import type { JSX } from "react";
2
+ export type ProviderEntryStatus = "ok" | "warning" | "error" | "unknown";
3
+ export interface ProviderEntryPill {
4
+ readonly entryId: string;
5
+ readonly name: string;
6
+ readonly typeId: string;
7
+ readonly iconUrl: string | null;
8
+ readonly status: ProviderEntryStatus;
9
+ }
10
+ export interface ProviderEntryPillsProps {
11
+ /** Names the strip for assistive tech ("Training providers"). */
12
+ readonly label: string;
13
+ readonly entries: readonly ProviderEntryPill[];
14
+ readonly selectedEntryId: string | null;
15
+ readonly onSelect: (entryId: string) => void;
16
+ readonly onAdd?: () => void;
17
+ readonly addLabel?: string;
18
+ }
19
+ export declare function ProviderEntryPills({ label, entries, selectedEntryId, onSelect, onAdd, addLabel }: ProviderEntryPillsProps): JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { AddProviderEntryDialog, type AddProviderEntryCreateInput, type AddProviderEntryDialogProps, type ProviderEntryTypeOption } from "./AddProviderEntryDialog";
2
+ export { ProviderEntryPills, type ProviderEntryPill, type ProviderEntryPillsProps, type ProviderEntryStatus } from "./ProviderEntryPills";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * RoleNodePill — one pipeline role and the node that hosts it, tinted by that
3
+ * node's palette colour (agent-settings `color`, else stable hash).
4
+ */
5
+ import type { NodeColorId } from "@camstack/types";
6
+ import type { JSX } from "react";
7
+ export interface RoleNodePillProps {
8
+ readonly roleLabel: string;
9
+ readonly nodeName: string;
10
+ readonly colorId: NodeColorId;
11
+ readonly emphasized?: boolean;
12
+ readonly pinned?: boolean;
13
+ }
14
+ export declare function RoleNodePill({ roleLabel, nodeName, colorId, emphasized, pinned }: RoleNodePillProps): JSX.Element;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * TrainingBaseModelPicker — multi-select trainable base models for a new
3
+ * training job. Each row lists every cluster placement where that model is the
4
+ * effective root detector (`node · device`), or “Not in use on any node”.
5
+ * Select-all-roots picks the roots the cluster actually runs (not every catalog
6
+ * id); Clear empties the selection. The host supplies rows + clusterRootModelIds
7
+ * (via {@link mapRootDetectorPlacements} / {@link defaultSelectClusterRoots}).
8
+ */
9
+ import type { JSX } from "react";
10
+ import { type TrainingBaseModelPlacement } from "./root-detector-placements";
11
+ export type { TrainingBaseModelPlacement };
12
+ export interface TrainingBaseModelRow {
13
+ readonly modelId: string;
14
+ readonly label: string;
15
+ readonly recommended?: boolean;
16
+ readonly placements: readonly TrainingBaseModelPlacement[];
17
+ }
18
+ export interface TrainingBaseModelPickerProps {
19
+ readonly models: readonly TrainingBaseModelRow[];
20
+ /** Model ids that are an effective root detector on any node. */
21
+ readonly clusterRootModelIds: readonly string[];
22
+ readonly value: readonly string[];
23
+ readonly onChange: (modelIds: readonly string[]) => void;
24
+ readonly disabled?: boolean;
25
+ }
26
+ /**
27
+ * Multi-select of trainable base models with full multi-placement listing and
28
+ * Select-all-roots / Clear over cluster root detectors.
29
+ */
30
+ export declare function TrainingBaseModelPicker({ models, clusterRootModelIds, value, onChange, disabled }: TrainingBaseModelPickerProps): JSX.Element;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Pure mapper: per-node inference devices → placements of each effective root
3
+ * detector model. Training's base-model picker lists every `node · device`
4
+ * where a trainable base is the cluster's object-detection root.
5
+ *
6
+ * Mirrors Model Studio's `acceleratorsRunningModel` decision (effective model
7
+ * via {@link resolveEffectiveStepModel}) but aggregates across nodes and does
8
+ * not gate on on-disk currency — "in use" here means the root the node would
9
+ * run. ui-library must not import addon-model-studio; a sync guard can later
10
+ * hold the two pure paths equal.
11
+ */
12
+ import { type AcceleratorIdentity } from "../accelerator-label";
13
+ import { type StepModelCatalog } from "../resolve-step-default-model";
14
+ /** Root detection step — the only step whose models are trainable bases. */
15
+ export declare const ROOT_DETECTOR_STEP_ID: "object-detection";
16
+ export interface TrainingBaseModelPlacement {
17
+ readonly nodeId: string;
18
+ readonly deviceKey: string;
19
+ /** Short accelerator label (`NPU`, `iGPU`, …); the row formats as `node · label`. */
20
+ readonly label: string;
21
+ }
22
+ export interface RootDetectorDeviceInput extends AcceleratorIdentity {
23
+ readonly enabled: boolean;
24
+ readonly format: string;
25
+ readonly defaultModelId?: string;
26
+ readonly steps?: Readonly<Record<string, {
27
+ readonly modelId?: string;
28
+ }>>;
29
+ }
30
+ /** One online node's catalog + devices for root-detector placement. */
31
+ export interface RootDetectorNodeInput {
32
+ readonly nodeId: string;
33
+ readonly devices: readonly RootDetectorDeviceInput[];
34
+ /** Object-detection step catalog (`slot: 'detector'`). */
35
+ readonly catalog: StepModelCatalog & {
36
+ readonly slot?: string;
37
+ };
38
+ }
39
+ /**
40
+ * For each modelId that is the effective root on at least one enabled device,
41
+ * the full list of placements (sorted by node, then device label).
42
+ */
43
+ export declare function mapRootDetectorPlacements(nodes: readonly RootDetectorNodeInput[], stepId?: string): ReadonlyMap<string, readonly TrainingBaseModelPlacement[]>;
44
+ /** Model ids that appear as an effective root somewhere in the cluster. */
45
+ export declare function clusterRootModelIds(placements: ReadonlyMap<string, readonly TrainingBaseModelPlacement[]>): readonly string[];
46
+ /**
47
+ * Intersection of listed trainable models and cluster root detectors — the
48
+ * Select-all-roots action. Order follows `trainableModelIds`.
49
+ */
50
+ export declare function defaultSelectClusterRoots(trainableModelIds: readonly string[], clusterRootIds: readonly string[]): readonly string[];
@@ -1347,6 +1347,10 @@ export declare const usePipelineAnalyticsGetTrainingExportSummary: typeof trpc.p
1347
1347
  export declare const usePipelineAnalyticsGetTrainingExportUrl: typeof trpc.pipelineAnalytics.getTrainingExportUrl.useQuery;
1348
1348
  /** Generated alias around `trpc.pipelineAnalytics.listRetrainStaging.useQuery`. */
1349
1349
  export declare const usePipelineAnalyticsListRetrainStaging: typeof trpc.pipelineAnalytics.listRetrainStaging.useQuery;
1350
+ /** Generated alias around `trpc.pipelineAnalytics.listRetrainCorpusPage.useQuery`. */
1351
+ export declare const usePipelineAnalyticsListRetrainCorpusPage: typeof trpc.pipelineAnalytics.listRetrainCorpusPage.useQuery;
1352
+ /** Generated alias around `trpc.pipelineAnalytics.getRetrainCorpusKpi.useQuery`. */
1353
+ export declare const usePipelineAnalyticsGetRetrainCorpusKpi: typeof trpc.pipelineAnalytics.getRetrainCorpusKpi.useQuery;
1350
1354
  /** Generated alias around `trpc.pipelineAnalytics.listRetrainFrames.useQuery`. */
1351
1355
  export declare const usePipelineAnalyticsListRetrainFrames: typeof trpc.pipelineAnalytics.listRetrainFrames.useQuery;
1352
1356
  /** Generated alias around `trpc.pipelineAnalytics.selectRetrainFrames.useMutation`. */
@@ -1373,16 +1377,6 @@ export declare const usePipelineAnalyticsSetRetrainFrameComplete: typeof trpc.pi
1373
1377
  export declare const usePipelineAnalyticsWriteRetrainArchive: typeof trpc.pipelineAnalytics.writeRetrainArchive.useMutation;
1374
1378
  /** Generated alias around `trpc.pipelineAnalytics.offerRetrainArchive.useMutation`. */
1375
1379
  export declare const usePipelineAnalyticsOfferRetrainArchive: typeof trpc.pipelineAnalytics.offerRetrainArchive.useMutation;
1376
- /** Generated alias around `trpc.pipelineAnalytics.previewRetrainDataset.useQuery`. */
1377
- export declare const usePipelineAnalyticsPreviewRetrainDataset: typeof trpc.pipelineAnalytics.previewRetrainDataset.useQuery;
1378
- /** Generated alias around `trpc.pipelineAnalytics.createRetrainDatasetVersion.useMutation`. */
1379
- export declare const usePipelineAnalyticsCreateRetrainDatasetVersion: typeof trpc.pipelineAnalytics.createRetrainDatasetVersion.useMutation;
1380
- /** Generated alias around `trpc.pipelineAnalytics.listRetrainDatasetVersions.useQuery`. */
1381
- export declare const usePipelineAnalyticsListRetrainDatasetVersions: typeof trpc.pipelineAnalytics.listRetrainDatasetVersions.useQuery;
1382
- /** Generated alias around `trpc.pipelineAnalytics.deleteRetrainDatasetVersion.useMutation`. */
1383
- export declare const usePipelineAnalyticsDeleteRetrainDatasetVersion: typeof trpc.pipelineAnalytics.deleteRetrainDatasetVersion.useMutation;
1384
- /** Generated alias around `trpc.pipelineAnalytics.verifyRetrainDatasetVersion.useQuery`. */
1385
- export declare const usePipelineAnalyticsVerifyRetrainDatasetVersion: typeof trpc.pipelineAnalytics.verifyRetrainDatasetVersion.useQuery;
1386
1380
  /** Generated alias around `trpc.pipelineAnalytics.listRetrainAssistProfiles.useQuery`. */
1387
1381
  export declare const usePipelineAnalyticsListRetrainAssistProfiles: typeof trpc.pipelineAnalytics.listRetrainAssistProfiles.useQuery;
1388
1382
  /** Generated alias around `trpc.pipelineAnalytics.proposeRetrainAnnotationsWithLlm.useMutation`. */
@@ -1391,6 +1385,8 @@ export declare const usePipelineAnalyticsProposeRetrainAnnotationsWithLlm: typeo
1391
1385
  export declare const usePipelineAnalyticsCreateRetrainCollection: typeof trpc.pipelineAnalytics.createRetrainCollection.useMutation;
1392
1386
  /** Generated alias around `trpc.pipelineAnalytics.listRetrainCollections.useQuery`. */
1393
1387
  export declare const usePipelineAnalyticsListRetrainCollections: typeof trpc.pipelineAnalytics.listRetrainCollections.useQuery;
1388
+ /** Generated alias around `trpc.pipelineAnalytics.resolveRetrainTrainingCorpus.useQuery`. */
1389
+ export declare const usePipelineAnalyticsResolveRetrainTrainingCorpus: typeof trpc.pipelineAnalytics.resolveRetrainTrainingCorpus.useQuery;
1394
1390
  /** Generated alias around `trpc.pipelineAnalytics.renameRetrainCollection.useMutation`. */
1395
1391
  export declare const usePipelineAnalyticsRenameRetrainCollection: typeof trpc.pipelineAnalytics.renameRetrainCollection.useMutation;
1396
1392
  /** Generated alias around `trpc.pipelineAnalytics.deleteRetrainCollection.useMutation`. */
@@ -2157,22 +2153,14 @@ export declare const useTerminalSessionWriteInput: typeof trpc.terminalSession.w
2157
2153
  export declare const useTerminalSessionClose: typeof trpc.terminalSession.close.useMutation;
2158
2154
  /** Generated alias around `trpc.toast.onToast.useSubscription`. */
2159
2155
  export declare const useToastOnToast: typeof trpc.toast.onToast.useSubscription;
2160
- /** Generated alias around `trpc.training.putDatasetVersion.useMutation`. */
2161
- export declare const useTrainingPutDatasetVersion: typeof trpc.training.putDatasetVersion.useMutation;
2162
- /** Generated alias around `trpc.training.getDatasetVersion.useQuery`. */
2163
- export declare const useTrainingGetDatasetVersion: typeof trpc.training.getDatasetVersion.useQuery;
2164
- /** Generated alias around `trpc.training.listDatasetVersions.useQuery`. */
2165
- export declare const useTrainingListDatasetVersions: typeof trpc.training.listDatasetVersions.useQuery;
2166
- /** Generated alias around `trpc.training.findDatasetVersionIdByName.useQuery`. */
2167
- export declare const useTrainingFindDatasetVersionIdByName: typeof trpc.training.findDatasetVersionIdByName.useQuery;
2168
- /** Generated alias around `trpc.training.removeDatasetVersion.useMutation`. */
2169
- export declare const useTrainingRemoveDatasetVersion: typeof trpc.training.removeDatasetVersion.useMutation;
2170
2156
  /** Generated alias around `trpc.training.listBaseModels.useQuery`. */
2171
2157
  export declare const useTrainingListBaseModels: typeof trpc.training.listBaseModels.useQuery;
2172
2158
  /** Generated alias around `trpc.training.planJob.useQuery`. */
2173
2159
  export declare const useTrainingPlanJob: typeof trpc.training.planJob.useQuery;
2174
2160
  /** Generated alias around `trpc.training.startJob.useMutation`. */
2175
2161
  export declare const useTrainingStartJob: typeof trpc.training.startJob.useMutation;
2162
+ /** Generated alias around `trpc.training.startJobBatch.useMutation`. */
2163
+ export declare const useTrainingStartJobBatch: typeof trpc.training.startJobBatch.useMutation;
2176
2164
  /** Generated alias around `trpc.training.listJobs.useQuery`. */
2177
2165
  export declare const useTrainingListJobs: typeof trpc.training.listJobs.useQuery;
2178
2166
  /** Generated alias around `trpc.training.getJob.useQuery`. */