@tetrascience-npm/tetrascience-react-ui 0.5.0-beta.70.1 → 0.5.0-beta.72.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2310,6 +2310,99 @@ export declare interface PlateMapEditorProps<T extends WellRecord = WellRecord>
2310
2310
  className?: string;
2311
2311
  }
2312
2312
 
2313
+ /**
2314
+ * Card-agnostic metadata form panel. Renders the staged-value form (or a
2315
+ * caller-supplied `formSlot`) plus an optional legend. Bring your own
2316
+ * container — drop it bare into a sidebar, wrap it in a `Card`, or stack it
2317
+ * above the grid.
2318
+ */
2319
+ export declare function PlateMapForm<T extends WellRecord = WellRecord>({ fields, value, onChange, selectionSize, onApply, onClear, applyLabel, clearLabel, extras, legend, formSlot, className, }: PlateMapFormProps<T>): JSX.Element;
2320
+
2321
+ export declare interface PlateMapFormProps<T extends WellRecord = WellRecord> {
2322
+ fields: WellField<T>[];
2323
+ /** Staged values applied across the current selection on Apply. */
2324
+ value: Partial<T>;
2325
+ onChange: (next: Partial<T>) => void;
2326
+ selectionSize: number;
2327
+ onApply: () => void;
2328
+ onClear: () => void;
2329
+ applyLabel?: string;
2330
+ clearLabel?: string;
2331
+ /** Helper slot rendered between the fields and the action row. */
2332
+ extras?: React_2.ReactNode;
2333
+ /** Legend block rendered beneath the form, separated by a divider. */
2334
+ legend?: React_2.ReactNode;
2335
+ /**
2336
+ * Fully replaces the built-in `WellMetadataForm` — e.g. a drag-and-drop
2337
+ * source palette. The legend slot still renders beneath the replacement.
2338
+ */
2339
+ formSlot?: React_2.ReactNode;
2340
+ className?: string;
2341
+ }
2342
+
2343
+ /**
2344
+ * Card-agnostic plate grid panel. Renders the selection toolbar, hover
2345
+ * summary, the interactive `PlatePaintGrid`, and optional group shortcuts —
2346
+ * and owns the ephemeral hover state internally. The plate title, plate
2347
+ * selector, and actions menu are intentionally NOT part of this panel; compose
2348
+ * `PlateMapPlateSelector` and `PlateMapActionsMenu` around it for full layout
2349
+ * freedom.
2350
+ */
2351
+ export declare function PlateMapGrid<T extends WellRecord = WellRecord>({ format, rows, columns, values, selection, onSelectionChange, colorForWell, fields, renderHoverSummary, onHoveredWellChange, hoveredWellId, toolbar, hideSelectionControls, selectAllLabel, deselectAllLabel, emptyWellFillColor, wellShape, framed, wrapWell, highlightedWellIds, onWellDoubleClick, selectionFillMode, flashWellId, flashWellKey, cellSize, autoScale, minCellSize, maxCellSize, groups, activeGroupId, onGroupClick, className, }: PlateMapGridProps<T>): JSX.Element;
2352
+
2353
+ export declare interface PlateMapGridProps<T extends WellRecord = WellRecord> {
2354
+ format: PlateFormat;
2355
+ rows?: number;
2356
+ columns?: number;
2357
+ values: Map<WellId, T>;
2358
+ selection: Set<WellId>;
2359
+ onSelectionChange: (next: Set<WellId>) => void;
2360
+ /** Resolves the SVG fill color for a well. */
2361
+ colorForWell: (well: T | undefined, wellId: WellId) => string;
2362
+ /** Field schema used to build the default hover summary string. */
2363
+ fields?: WellField<T>[];
2364
+ /** Custom hover summary for the strip above the grid. */
2365
+ renderHoverSummary?: (well: T | undefined, wellId: WellId) => React_2.ReactNode;
2366
+ /** Fires whenever the currently hovered well changes (null on leave). */
2367
+ onHoveredWellChange?: (wellId: WellId | null) => void;
2368
+ /**
2369
+ * Controlled hovered well id. When provided, the panel reflects this value
2370
+ * instead of tracking hover internally — useful for syncing the hover
2371
+ * summary with external state (e.g. resetting it on a plate switch).
2372
+ */
2373
+ hoveredWellId?: WellId | null;
2374
+ /** Controls rendered to the left of the built-in select/deselect links. */
2375
+ toolbar?: React_2.ReactNode;
2376
+ /** Hide the built-in "Select all" / "Deselect all" links. */
2377
+ hideSelectionControls?: boolean;
2378
+ selectAllLabel?: string;
2379
+ deselectAllLabel?: string;
2380
+ /** Fill color for empty wells. Pass `null` to delegate empty wells to `colorForWell`. */
2381
+ emptyWellFillColor?: string | null;
2382
+ /** Well shape forwarded to `PlatePaintGrid`. Defaults to `"rect"`. */
2383
+ wellShape?: WellShape;
2384
+ /** When true, wraps the grid in a card-like plate frame (rounded + border + soft shadow). */
2385
+ framed?: boolean;
2386
+ /** Render-prop that places a node inside each absolute-positioned well cell. */
2387
+ wrapWell?: (wellId: WellId, cellSize: number) => React_2.ReactNode;
2388
+ /** Wells to highlight (e.g. when hovering a legend item externally). */
2389
+ highlightedWellIds?: ReadonlySet<WellId>;
2390
+ onWellDoubleClick?: (wellId: WellId) => void;
2391
+ selectionFillMode?: "selection" | "well";
2392
+ flashWellId?: WellId;
2393
+ flashWellKey?: number;
2394
+ /** Fixed well size. When unset, the grid grows with the available width. */
2395
+ cellSize?: number;
2396
+ autoScale?: boolean;
2397
+ minCellSize?: number;
2398
+ maxCellSize?: number;
2399
+ /** Optional grouped well shortcuts rendered under the grid. */
2400
+ groups?: PlateMapGroupOption[];
2401
+ activeGroupId?: string;
2402
+ onGroupClick?: (group: PlateMapGroupOption) => void;
2403
+ className?: string;
2404
+ }
2405
+
2313
2406
  export declare interface PlateMapGroupOption {
2314
2407
  id: string;
2315
2408
  label: string;
@@ -2322,6 +2415,35 @@ export declare interface PlateMapGroupOption {
2322
2415
  disabled?: boolean;
2323
2416
  }
2324
2417
 
2418
+ /**
2419
+ * Card-agnostic sample-manifest panel. A thin wrapper over `WellManifestTable`
2420
+ * with an optional heading and no width constraint of its own, so it can span
2421
+ * the full screen width or sit inside any container the caller chooses.
2422
+ */
2423
+ export declare function PlateMapManifest<T extends WellRecord = WellRecord>({ values, onChange, columns, fields, selection, onSelectionChange, emptyEntry, isPopulated, filterable, groupable, pageSize, pageSizeOptions, title, className, }: PlateMapManifestProps<T>): JSX.Element;
2424
+
2425
+ export declare interface PlateMapManifestProps<T extends WellRecord = WellRecord> {
2426
+ values: Map<WellId, T>;
2427
+ onChange: (next: Map<WellId, T>) => void;
2428
+ columns: WellColumn<T>[];
2429
+ fields?: WellField<T>[];
2430
+ selection?: Set<WellId>;
2431
+ onSelectionChange?: (next: Set<WellId>) => void;
2432
+ /** Builds an empty record when a manifest row is freshly created. */
2433
+ emptyEntry: (id: WellId) => T;
2434
+ /** Filter for the manifest's "hide empty" mode. */
2435
+ isPopulated?: (row: T) => boolean;
2436
+ /** Enables the filter popover on the manifest table. */
2437
+ filterable?: boolean;
2438
+ /** Enables the group-by selector on the manifest table. */
2439
+ groupable?: boolean;
2440
+ pageSize?: number;
2441
+ pageSizeOptions?: number[];
2442
+ /** Optional heading rendered above the table. Omit for a bare table. */
2443
+ title?: React_2.ReactNode;
2444
+ className?: string;
2445
+ }
2446
+
2325
2447
  export declare interface PlateMapPlateOption {
2326
2448
  /** Stable plate id. For imported CSVs this should be the user-provided barcode. */
2327
2449
  id: string;