@procaaso/alphinity-ui-components 1.10.0 → 1.11.0
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/IMPLEMENTATION_GUIDE.md +1351 -1351
- package/README.md +95 -95
- package/dist/index.cjs +707 -234
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +109 -2
- package/dist/index.d.ts +109 -2
- package/dist/index.js +601 -138
- package/dist/index.js.map +1 -1
- package/package.json +85 -85
package/dist/index.d.cts
CHANGED
|
@@ -327,6 +327,8 @@ interface StatusIndicatorProps extends react__default.HTMLAttributes<HTMLDivElem
|
|
|
327
327
|
shape?: 'circle' | 'square' | 'diamond';
|
|
328
328
|
/** Whether the indicator should have a 3D LED effect */
|
|
329
329
|
led?: boolean;
|
|
330
|
+
/** Whether the indicator is rendered at all. When false, nothing is rendered. Defaults to true. */
|
|
331
|
+
visible?: boolean;
|
|
330
332
|
/**
|
|
331
333
|
* True when the underlying tag's state is a maintenance force, not a
|
|
332
334
|
* measured reading (#3607, R19). Renders a small glyph badge, never a
|
|
@@ -1173,6 +1175,18 @@ declare const DEFAULT_STATUS_COLORS: Record<DeviceStatus, StatusColorEntry>;
|
|
|
1173
1175
|
* outlines a forced value's box/ring so it stays findable at a glance.
|
|
1174
1176
|
*/
|
|
1175
1177
|
declare const FORCED_MARK_COLOR: StatusColorEntry;
|
|
1178
|
+
/**
|
|
1179
|
+
* Position-unknown marking color (views-library #27). Deliberately outside
|
|
1180
|
+
* DEFAULT_STATUS_COLORS, for the same reason as FORCED_MARK_COLOR: a device
|
|
1181
|
+
* whose position the control system has disclaimed is not a health status,
|
|
1182
|
+
* and must not compete with warning/alarm/fault. Values match the consuming
|
|
1183
|
+
* HMI ISA token module (light theme).
|
|
1184
|
+
*
|
|
1185
|
+
* `fill` is the pattern background, `text` is the hatch line color.
|
|
1186
|
+
*/
|
|
1187
|
+
declare const UNKNOWN_MARK_COLOR: StatusColorEntry;
|
|
1188
|
+
/** Dark-theme values for UNKNOWN_MARK_COLOR. */
|
|
1189
|
+
declare const UNKNOWN_MARK_COLOR_DARK: StatusColorEntry;
|
|
1176
1190
|
/**
|
|
1177
1191
|
* Resolve a status string to a full color entry.
|
|
1178
1192
|
*
|
|
@@ -1198,6 +1212,13 @@ interface NodeInstance {
|
|
|
1198
1212
|
fill?: string;
|
|
1199
1213
|
stroke?: string;
|
|
1200
1214
|
};
|
|
1215
|
+
/**
|
|
1216
|
+
* Opt-in. True when the control system has disclaimed this device's position
|
|
1217
|
+
* (for example a valve with bad limit-switch feedback). The symbol renders
|
|
1218
|
+
* with a diagonal hatch, a non-colour cue, so it differs from a CLOSED
|
|
1219
|
+
* symbol. Default off. Wins over status and customColors.
|
|
1220
|
+
*/
|
|
1221
|
+
positionUnknown?: boolean;
|
|
1201
1222
|
metadata?: Record<string, unknown>;
|
|
1202
1223
|
}
|
|
1203
1224
|
interface Transform {
|
|
@@ -1495,6 +1516,34 @@ interface UseTelemetryStatusOptions {
|
|
|
1495
1516
|
*/
|
|
1496
1517
|
declare function useTelemetryStatus(telemetry: TelemetryMap, diagram: Diagram, setDiagram: (diagram: Diagram) => void, options?: UseTelemetryStatusOptions): void;
|
|
1497
1518
|
|
|
1519
|
+
/** Options for the signal-binding sync. */
|
|
1520
|
+
interface UseBooleanIndicatorsOptions {
|
|
1521
|
+
/** Whether the sync is enabled (default: true). Disable in edit mode. */
|
|
1522
|
+
enabled?: boolean;
|
|
1523
|
+
/** Symbol id treated as a status indicator (default: 'status-indicator'). */
|
|
1524
|
+
symbolId?: string;
|
|
1525
|
+
}
|
|
1526
|
+
/**
|
|
1527
|
+
* Drive a status-indicator node's color and visibility from independent named
|
|
1528
|
+
* signals.
|
|
1529
|
+
*
|
|
1530
|
+
* Each indicator node names two tags in its metadata:
|
|
1531
|
+
* - `colorSource` — a tag whose truthy value shows `onColor`, falsy shows `offColor`.
|
|
1532
|
+
* - `visibleSource` — a tag whose truthy value shows the node, falsy hides it.
|
|
1533
|
+
*
|
|
1534
|
+
* Both are resolved against a tag → value index built from every published
|
|
1535
|
+
* telemetry binding, so color and visibility can follow completely different
|
|
1536
|
+
* signals. A blank source leaves that property alone (color unbound, visibility
|
|
1537
|
+
* static). Writes `customColors.fill` and `visible` — never touches the renderer
|
|
1538
|
+
* props, so the NodeRenderer memo boundary stays intact.
|
|
1539
|
+
*
|
|
1540
|
+
* @example
|
|
1541
|
+
* ```tsx
|
|
1542
|
+
* useBooleanIndicators(telemetry, diagram, setDiagram, { enabled: mode === 'runtime' });
|
|
1543
|
+
* ```
|
|
1544
|
+
*/
|
|
1545
|
+
declare function useBooleanIndicators(telemetry: TelemetryMap, diagram: Diagram, setDiagram: (diagram: Diagram) => void, options?: UseBooleanIndicatorsOptions): void;
|
|
1546
|
+
|
|
1498
1547
|
interface DragPoint {
|
|
1499
1548
|
x: number;
|
|
1500
1549
|
y: number;
|
|
@@ -1704,6 +1753,10 @@ interface NodeConfigPanelProps {
|
|
|
1704
1753
|
onUpdateTelemetry: (updates: any) => void;
|
|
1705
1754
|
/** Callback when telemetry binding is added for the first time */
|
|
1706
1755
|
onAddTelemetry?: () => void;
|
|
1756
|
+
/** Callback to remove/clear the telemetry binding for this node */
|
|
1757
|
+
onRemoveTelemetry?: () => void;
|
|
1758
|
+
/** Known signal/tag names, used to autocomplete and validate 'tag' fields. */
|
|
1759
|
+
availableTags?: string[];
|
|
1707
1760
|
/** Callback when node is removed */
|
|
1708
1761
|
onRemove: () => void;
|
|
1709
1762
|
/** Additional CSS class name */
|
|
@@ -1725,7 +1778,7 @@ interface NodeConfigPanelProps {
|
|
|
1725
1778
|
* />
|
|
1726
1779
|
* ```
|
|
1727
1780
|
*/
|
|
1728
|
-
declare function NodeConfigPanel({ node, binding, onUpdateNode, onUpdateTelemetry, onAddTelemetry, onRemove, className, style, }: NodeConfigPanelProps): react__default.JSX.Element;
|
|
1781
|
+
declare function NodeConfigPanel({ node, binding, onUpdateNode, onUpdateTelemetry, onAddTelemetry, onRemoveTelemetry, availableTags, onRemove, className, style, }: NodeConfigPanelProps): react__default.JSX.Element;
|
|
1729
1782
|
|
|
1730
1783
|
/**
|
|
1731
1784
|
* Validates a diagram object structure
|
|
@@ -1806,6 +1859,60 @@ declare function getSymbolDefinition(symbolId: string): SymbolDefinition | undef
|
|
|
1806
1859
|
*/
|
|
1807
1860
|
declare function getAvailableSymbols(): string[];
|
|
1808
1861
|
|
|
1862
|
+
/**
|
|
1863
|
+
* Appearance schema — the reusable contract for per-element editable properties.
|
|
1864
|
+
*
|
|
1865
|
+
* A placeable element declares its editable appearance fields as data. The
|
|
1866
|
+
* properties panel (NodeConfigPanel) renders any schema generically, and the
|
|
1867
|
+
* renderer (NodeRenderer) reads the same defaults. Add a new element by adding
|
|
1868
|
+
* one schema entry — no panel code changes. This is the pattern the
|
|
1869
|
+
* "add a placeable element" skill generates.
|
|
1870
|
+
*/
|
|
1871
|
+
type AppearanceFieldKind = 'select' | 'boolean' | 'number' | 'text' | 'tag';
|
|
1872
|
+
/**
|
|
1873
|
+
* Where a field's value is read from and written to on the NodeInstance.
|
|
1874
|
+
* - 'metadata' (default): the untyped node.metadata bag, keyed by field.key
|
|
1875
|
+
* - 'visible': the node.visible flag
|
|
1876
|
+
* - 'scale': node.transform.scale (via valueMap for select options)
|
|
1877
|
+
*/
|
|
1878
|
+
type AppearanceTarget = 'metadata' | 'visible' | 'scale';
|
|
1879
|
+
interface AppearanceField {
|
|
1880
|
+
/** metadata key, or the driver for the special 'visible'/'scale' targets */
|
|
1881
|
+
key: string;
|
|
1882
|
+
kind: AppearanceFieldKind;
|
|
1883
|
+
/** Human label for the panel; defaults to key when absent */
|
|
1884
|
+
label?: string;
|
|
1885
|
+
/** Options for kind 'select' */
|
|
1886
|
+
options?: string[];
|
|
1887
|
+
/** Where the value is stored; defaults to 'metadata' */
|
|
1888
|
+
target?: AppearanceTarget;
|
|
1889
|
+
/** Default value when the node has no value set */
|
|
1890
|
+
default?: string | number | boolean;
|
|
1891
|
+
/** For target 'scale': maps a select option to a numeric scale factor */
|
|
1892
|
+
valueMap?: Record<string, number>;
|
|
1893
|
+
/** Optional help text shown under the control in the panel */
|
|
1894
|
+
help?: string;
|
|
1895
|
+
}
|
|
1896
|
+
type AppearanceValue = string | number | boolean;
|
|
1897
|
+
/** Named color presets for the boolean indicator (name → hex). */
|
|
1898
|
+
declare const COLOR_PRESETS: Record<string, string>;
|
|
1899
|
+
/** Resolve a color preset name to a hex value, falling back to grey. */
|
|
1900
|
+
declare function resolvePresetColor(name: string | undefined): string;
|
|
1901
|
+
/** Appearance schema for the Status LED symbol. */
|
|
1902
|
+
declare const STATUS_LED_APPEARANCE: AppearanceField[];
|
|
1903
|
+
/** Return the editable appearance fields for a symbol, or [] if it declares none. */
|
|
1904
|
+
declare function getAppearanceSchema(symbolId: string): AppearanceField[];
|
|
1905
|
+
/**
|
|
1906
|
+
* Default values for the 'metadata'-targeted fields of a symbol, keyed by field key.
|
|
1907
|
+
* The renderer merges these under the node's own metadata, so a freshly dropped
|
|
1908
|
+
* element looks correct before any editing.
|
|
1909
|
+
*/
|
|
1910
|
+
declare function getAppearanceDefaults(symbolId: string): Record<string, AppearanceValue>;
|
|
1911
|
+
/** Read the current value of a field from a node, applying the field default. */
|
|
1912
|
+
declare function readAppearanceValue(node: NodeInstance, field: AppearanceField): AppearanceValue;
|
|
1913
|
+
/** Produce the NodeInstance update for a new field value. */
|
|
1914
|
+
declare function writeAppearanceValue(node: NodeInstance, field: AppearanceField, value: AppearanceValue): Partial<NodeInstance>;
|
|
1915
|
+
|
|
1809
1916
|
/**
|
|
1810
1917
|
* Telemetry status type
|
|
1811
1918
|
*/
|
|
@@ -2222,4 +2329,4 @@ interface SimulationOptions {
|
|
|
2222
2329
|
*/
|
|
2223
2330
|
declare function useSimulation(telemetry: TelemetryMap, updateTelemetryBatch: (updates: Array<any>) => void, options?: SimulationOptions): void;
|
|
2224
2331
|
|
|
2225
|
-
export { type AnchorType, Button, type ButtonProps, CardHeader, CardUnit, CardValue, CircularGauge, type CircularGaugeProps, type CommandKind, type ConfigActions, type ConfigDisplay, type ConfigParameter, type ConfigSection, type ConfigState, type ConfigTheme, type ControlCapabilities, type ControlMode, ControlPanel, type ControlPanelProps, type ControlParameter, type ControlState, type CustomAction, DEFAULT_STATUS_COLORS, DEFAULT_THRESHOLDS, DashboardCard, type DataBinding, type DeviceConfigBinding, type DeviceConfigMap, DeviceConfigPanel, type DeviceConfigPanelProps, type DeviceControlBinding, type DeviceControlMap, DeviceControlPanel, type DeviceControlPanelProps, type DeviceStatus, type Diagram, type DiagramMetadata, type DisplayMode, DisplayModeToggle, type DragPoint, type DragState, EquipmentIndicator, type EquipmentIndicatorProps, EquipmentIndicatorWithSparkline, type EquipmentIndicatorWithSparklineProps, FORCED_MARK_COLOR, FixedSVGContainer, FooterPanel, type ForcedState, FullscreenContainer, FullscreenWorkspace, type FullscreenWorkspaceProps, type FullscreenWorkspaceTab, type KeyboardShortcutsOptions, LeftPanel, LeftToggleButton, LegacyValueEntry, type LegacyValueEntryProps, type ModeConfig, NodeConfigPanel, type NodeConfigPanelProps, type NodeControlConfig, NodeControlsPanel, type NodeControlsPanelProps, type NodeInstance, NumpadDialog, type NumpadDialogProps, type Overlay, type OverlayContent, type OverlayTheme, type OverlayType, PIDCanvas, type PIDCanvasControls, type PIDCanvasFeatures, type PIDCanvasProps, PanelContent, PanelTabs, type PipeEdge, type PipeStyle, type Point, type PortDefinition, type PortInstance, type PortType, RightPanel, RightToggleButton, SVGArea, SVGLockedOverlay, type SVGLockedOverlayProps, type ScalingMetadata, ScrollableSVGWrapper, type SelectionState, Selector, type SelectorOption, type SelectorProps, type SimulationOptions, Sparkline, type SparklineProps, type StatusColorEntry, type StatusColorMap, StatusIndicator, type StatusIndicatorProps, type SymbolCategory, type SymbolDefinition, SymbolLibrary, type SymbolLibraryProps, type SymbolMetadata, type TelemetryBinding, type TelemetryMap, type TelemetryStatus$1 as TelemetryStatus, type TelemetryValue, ThemeProvider, ThemeToggle, type ThemeToggleProps, type Thresholds, type Transform, TrendLine, type TrendLineProps, type UseDeviceControlsOptions, type UseDragOptions, type UseDragResult, type UseSelectionOptions, type UseSelectionResult, type UseTelemetryOptions, type UseTelemetryResult, type UseTelemetryStatusOptions, type UseViewBoxOptions, type UseViewBoxResult, ValueEntry, type ValueEntryProps, type ViewBox, ZoomButton, ZoomControls, calculateThresholdStatus, createConfigBinding, createControlBinding, exampleDiagram, exportDiagram, generateRoutePoints, getAvailableSymbols, getPortWorldPosition, getSymbolDefinition, importDiagram, mockSymbolLibrary, nodeHasPort, overlayStyles, registerSymbol, registerSymbols, resolveStatusColor, useDeviceConfigs, useDeviceControls, useDrag, useKeyboardShortcuts, useSelection, useSimulation, useTelemetry, useTelemetryStatus, useTheme, useViewBox, validateDiagram };
|
|
2332
|
+
export { type AnchorType, type AppearanceField, type AppearanceFieldKind, type AppearanceTarget, type AppearanceValue, Button, type ButtonProps, COLOR_PRESETS, CardHeader, CardUnit, CardValue, CircularGauge, type CircularGaugeProps, type CommandKind, type ConfigActions, type ConfigDisplay, type ConfigParameter, type ConfigSection, type ConfigState, type ConfigTheme, type ControlCapabilities, type ControlMode, ControlPanel, type ControlPanelProps, type ControlParameter, type ControlState, type CustomAction, DEFAULT_STATUS_COLORS, DEFAULT_THRESHOLDS, DashboardCard, type DataBinding, type DeviceConfigBinding, type DeviceConfigMap, DeviceConfigPanel, type DeviceConfigPanelProps, type DeviceControlBinding, type DeviceControlMap, DeviceControlPanel, type DeviceControlPanelProps, type DeviceStatus, type Diagram, type DiagramMetadata, type DisplayMode, DisplayModeToggle, type DragPoint, type DragState, EquipmentIndicator, type EquipmentIndicatorProps, EquipmentIndicatorWithSparkline, type EquipmentIndicatorWithSparklineProps, FORCED_MARK_COLOR, FixedSVGContainer, FooterPanel, type ForcedState, FullscreenContainer, FullscreenWorkspace, type FullscreenWorkspaceProps, type FullscreenWorkspaceTab, type KeyboardShortcutsOptions, LeftPanel, LeftToggleButton, LegacyValueEntry, type LegacyValueEntryProps, type ModeConfig, NodeConfigPanel, type NodeConfigPanelProps, type NodeControlConfig, NodeControlsPanel, type NodeControlsPanelProps, type NodeInstance, NumpadDialog, type NumpadDialogProps, type Overlay, type OverlayContent, type OverlayTheme, type OverlayType, PIDCanvas, type PIDCanvasControls, type PIDCanvasFeatures, type PIDCanvasProps, PanelContent, PanelTabs, type PipeEdge, type PipeStyle, type Point, type PortDefinition, type PortInstance, type PortType, RightPanel, RightToggleButton, STATUS_LED_APPEARANCE, SVGArea, SVGLockedOverlay, type SVGLockedOverlayProps, type ScalingMetadata, ScrollableSVGWrapper, type SelectionState, Selector, type SelectorOption, type SelectorProps, type SimulationOptions, Sparkline, type SparklineProps, type StatusColorEntry, type StatusColorMap, StatusIndicator, type StatusIndicatorProps, type SymbolCategory, type SymbolDefinition, SymbolLibrary, type SymbolLibraryProps, type SymbolMetadata, type TelemetryBinding, type TelemetryMap, type TelemetryStatus$1 as TelemetryStatus, type TelemetryValue, ThemeProvider, ThemeToggle, type ThemeToggleProps, type Thresholds, type Transform, TrendLine, type TrendLineProps, UNKNOWN_MARK_COLOR, UNKNOWN_MARK_COLOR_DARK, type UseBooleanIndicatorsOptions, type UseDeviceControlsOptions, type UseDragOptions, type UseDragResult, type UseSelectionOptions, type UseSelectionResult, type UseTelemetryOptions, type UseTelemetryResult, type UseTelemetryStatusOptions, type UseViewBoxOptions, type UseViewBoxResult, ValueEntry, type ValueEntryProps, type ViewBox, ZoomButton, ZoomControls, calculateThresholdStatus, createConfigBinding, createControlBinding, exampleDiagram, exportDiagram, generateRoutePoints, getAppearanceDefaults, getAppearanceSchema, getAvailableSymbols, getPortWorldPosition, getSymbolDefinition, importDiagram, mockSymbolLibrary, nodeHasPort, overlayStyles, readAppearanceValue, registerSymbol, registerSymbols, resolvePresetColor, resolveStatusColor, useBooleanIndicators, useDeviceConfigs, useDeviceControls, useDrag, useKeyboardShortcuts, useSelection, useSimulation, useTelemetry, useTelemetryStatus, useTheme, useViewBox, validateDiagram, writeAppearanceValue };
|
package/dist/index.d.ts
CHANGED
|
@@ -327,6 +327,8 @@ interface StatusIndicatorProps extends react__default.HTMLAttributes<HTMLDivElem
|
|
|
327
327
|
shape?: 'circle' | 'square' | 'diamond';
|
|
328
328
|
/** Whether the indicator should have a 3D LED effect */
|
|
329
329
|
led?: boolean;
|
|
330
|
+
/** Whether the indicator is rendered at all. When false, nothing is rendered. Defaults to true. */
|
|
331
|
+
visible?: boolean;
|
|
330
332
|
/**
|
|
331
333
|
* True when the underlying tag's state is a maintenance force, not a
|
|
332
334
|
* measured reading (#3607, R19). Renders a small glyph badge, never a
|
|
@@ -1173,6 +1175,18 @@ declare const DEFAULT_STATUS_COLORS: Record<DeviceStatus, StatusColorEntry>;
|
|
|
1173
1175
|
* outlines a forced value's box/ring so it stays findable at a glance.
|
|
1174
1176
|
*/
|
|
1175
1177
|
declare const FORCED_MARK_COLOR: StatusColorEntry;
|
|
1178
|
+
/**
|
|
1179
|
+
* Position-unknown marking color (views-library #27). Deliberately outside
|
|
1180
|
+
* DEFAULT_STATUS_COLORS, for the same reason as FORCED_MARK_COLOR: a device
|
|
1181
|
+
* whose position the control system has disclaimed is not a health status,
|
|
1182
|
+
* and must not compete with warning/alarm/fault. Values match the consuming
|
|
1183
|
+
* HMI ISA token module (light theme).
|
|
1184
|
+
*
|
|
1185
|
+
* `fill` is the pattern background, `text` is the hatch line color.
|
|
1186
|
+
*/
|
|
1187
|
+
declare const UNKNOWN_MARK_COLOR: StatusColorEntry;
|
|
1188
|
+
/** Dark-theme values for UNKNOWN_MARK_COLOR. */
|
|
1189
|
+
declare const UNKNOWN_MARK_COLOR_DARK: StatusColorEntry;
|
|
1176
1190
|
/**
|
|
1177
1191
|
* Resolve a status string to a full color entry.
|
|
1178
1192
|
*
|
|
@@ -1198,6 +1212,13 @@ interface NodeInstance {
|
|
|
1198
1212
|
fill?: string;
|
|
1199
1213
|
stroke?: string;
|
|
1200
1214
|
};
|
|
1215
|
+
/**
|
|
1216
|
+
* Opt-in. True when the control system has disclaimed this device's position
|
|
1217
|
+
* (for example a valve with bad limit-switch feedback). The symbol renders
|
|
1218
|
+
* with a diagonal hatch, a non-colour cue, so it differs from a CLOSED
|
|
1219
|
+
* symbol. Default off. Wins over status and customColors.
|
|
1220
|
+
*/
|
|
1221
|
+
positionUnknown?: boolean;
|
|
1201
1222
|
metadata?: Record<string, unknown>;
|
|
1202
1223
|
}
|
|
1203
1224
|
interface Transform {
|
|
@@ -1495,6 +1516,34 @@ interface UseTelemetryStatusOptions {
|
|
|
1495
1516
|
*/
|
|
1496
1517
|
declare function useTelemetryStatus(telemetry: TelemetryMap, diagram: Diagram, setDiagram: (diagram: Diagram) => void, options?: UseTelemetryStatusOptions): void;
|
|
1497
1518
|
|
|
1519
|
+
/** Options for the signal-binding sync. */
|
|
1520
|
+
interface UseBooleanIndicatorsOptions {
|
|
1521
|
+
/** Whether the sync is enabled (default: true). Disable in edit mode. */
|
|
1522
|
+
enabled?: boolean;
|
|
1523
|
+
/** Symbol id treated as a status indicator (default: 'status-indicator'). */
|
|
1524
|
+
symbolId?: string;
|
|
1525
|
+
}
|
|
1526
|
+
/**
|
|
1527
|
+
* Drive a status-indicator node's color and visibility from independent named
|
|
1528
|
+
* signals.
|
|
1529
|
+
*
|
|
1530
|
+
* Each indicator node names two tags in its metadata:
|
|
1531
|
+
* - `colorSource` — a tag whose truthy value shows `onColor`, falsy shows `offColor`.
|
|
1532
|
+
* - `visibleSource` — a tag whose truthy value shows the node, falsy hides it.
|
|
1533
|
+
*
|
|
1534
|
+
* Both are resolved against a tag → value index built from every published
|
|
1535
|
+
* telemetry binding, so color and visibility can follow completely different
|
|
1536
|
+
* signals. A blank source leaves that property alone (color unbound, visibility
|
|
1537
|
+
* static). Writes `customColors.fill` and `visible` — never touches the renderer
|
|
1538
|
+
* props, so the NodeRenderer memo boundary stays intact.
|
|
1539
|
+
*
|
|
1540
|
+
* @example
|
|
1541
|
+
* ```tsx
|
|
1542
|
+
* useBooleanIndicators(telemetry, diagram, setDiagram, { enabled: mode === 'runtime' });
|
|
1543
|
+
* ```
|
|
1544
|
+
*/
|
|
1545
|
+
declare function useBooleanIndicators(telemetry: TelemetryMap, diagram: Diagram, setDiagram: (diagram: Diagram) => void, options?: UseBooleanIndicatorsOptions): void;
|
|
1546
|
+
|
|
1498
1547
|
interface DragPoint {
|
|
1499
1548
|
x: number;
|
|
1500
1549
|
y: number;
|
|
@@ -1704,6 +1753,10 @@ interface NodeConfigPanelProps {
|
|
|
1704
1753
|
onUpdateTelemetry: (updates: any) => void;
|
|
1705
1754
|
/** Callback when telemetry binding is added for the first time */
|
|
1706
1755
|
onAddTelemetry?: () => void;
|
|
1756
|
+
/** Callback to remove/clear the telemetry binding for this node */
|
|
1757
|
+
onRemoveTelemetry?: () => void;
|
|
1758
|
+
/** Known signal/tag names, used to autocomplete and validate 'tag' fields. */
|
|
1759
|
+
availableTags?: string[];
|
|
1707
1760
|
/** Callback when node is removed */
|
|
1708
1761
|
onRemove: () => void;
|
|
1709
1762
|
/** Additional CSS class name */
|
|
@@ -1725,7 +1778,7 @@ interface NodeConfigPanelProps {
|
|
|
1725
1778
|
* />
|
|
1726
1779
|
* ```
|
|
1727
1780
|
*/
|
|
1728
|
-
declare function NodeConfigPanel({ node, binding, onUpdateNode, onUpdateTelemetry, onAddTelemetry, onRemove, className, style, }: NodeConfigPanelProps): react__default.JSX.Element;
|
|
1781
|
+
declare function NodeConfigPanel({ node, binding, onUpdateNode, onUpdateTelemetry, onAddTelemetry, onRemoveTelemetry, availableTags, onRemove, className, style, }: NodeConfigPanelProps): react__default.JSX.Element;
|
|
1729
1782
|
|
|
1730
1783
|
/**
|
|
1731
1784
|
* Validates a diagram object structure
|
|
@@ -1806,6 +1859,60 @@ declare function getSymbolDefinition(symbolId: string): SymbolDefinition | undef
|
|
|
1806
1859
|
*/
|
|
1807
1860
|
declare function getAvailableSymbols(): string[];
|
|
1808
1861
|
|
|
1862
|
+
/**
|
|
1863
|
+
* Appearance schema — the reusable contract for per-element editable properties.
|
|
1864
|
+
*
|
|
1865
|
+
* A placeable element declares its editable appearance fields as data. The
|
|
1866
|
+
* properties panel (NodeConfigPanel) renders any schema generically, and the
|
|
1867
|
+
* renderer (NodeRenderer) reads the same defaults. Add a new element by adding
|
|
1868
|
+
* one schema entry — no panel code changes. This is the pattern the
|
|
1869
|
+
* "add a placeable element" skill generates.
|
|
1870
|
+
*/
|
|
1871
|
+
type AppearanceFieldKind = 'select' | 'boolean' | 'number' | 'text' | 'tag';
|
|
1872
|
+
/**
|
|
1873
|
+
* Where a field's value is read from and written to on the NodeInstance.
|
|
1874
|
+
* - 'metadata' (default): the untyped node.metadata bag, keyed by field.key
|
|
1875
|
+
* - 'visible': the node.visible flag
|
|
1876
|
+
* - 'scale': node.transform.scale (via valueMap for select options)
|
|
1877
|
+
*/
|
|
1878
|
+
type AppearanceTarget = 'metadata' | 'visible' | 'scale';
|
|
1879
|
+
interface AppearanceField {
|
|
1880
|
+
/** metadata key, or the driver for the special 'visible'/'scale' targets */
|
|
1881
|
+
key: string;
|
|
1882
|
+
kind: AppearanceFieldKind;
|
|
1883
|
+
/** Human label for the panel; defaults to key when absent */
|
|
1884
|
+
label?: string;
|
|
1885
|
+
/** Options for kind 'select' */
|
|
1886
|
+
options?: string[];
|
|
1887
|
+
/** Where the value is stored; defaults to 'metadata' */
|
|
1888
|
+
target?: AppearanceTarget;
|
|
1889
|
+
/** Default value when the node has no value set */
|
|
1890
|
+
default?: string | number | boolean;
|
|
1891
|
+
/** For target 'scale': maps a select option to a numeric scale factor */
|
|
1892
|
+
valueMap?: Record<string, number>;
|
|
1893
|
+
/** Optional help text shown under the control in the panel */
|
|
1894
|
+
help?: string;
|
|
1895
|
+
}
|
|
1896
|
+
type AppearanceValue = string | number | boolean;
|
|
1897
|
+
/** Named color presets for the boolean indicator (name → hex). */
|
|
1898
|
+
declare const COLOR_PRESETS: Record<string, string>;
|
|
1899
|
+
/** Resolve a color preset name to a hex value, falling back to grey. */
|
|
1900
|
+
declare function resolvePresetColor(name: string | undefined): string;
|
|
1901
|
+
/** Appearance schema for the Status LED symbol. */
|
|
1902
|
+
declare const STATUS_LED_APPEARANCE: AppearanceField[];
|
|
1903
|
+
/** Return the editable appearance fields for a symbol, or [] if it declares none. */
|
|
1904
|
+
declare function getAppearanceSchema(symbolId: string): AppearanceField[];
|
|
1905
|
+
/**
|
|
1906
|
+
* Default values for the 'metadata'-targeted fields of a symbol, keyed by field key.
|
|
1907
|
+
* The renderer merges these under the node's own metadata, so a freshly dropped
|
|
1908
|
+
* element looks correct before any editing.
|
|
1909
|
+
*/
|
|
1910
|
+
declare function getAppearanceDefaults(symbolId: string): Record<string, AppearanceValue>;
|
|
1911
|
+
/** Read the current value of a field from a node, applying the field default. */
|
|
1912
|
+
declare function readAppearanceValue(node: NodeInstance, field: AppearanceField): AppearanceValue;
|
|
1913
|
+
/** Produce the NodeInstance update for a new field value. */
|
|
1914
|
+
declare function writeAppearanceValue(node: NodeInstance, field: AppearanceField, value: AppearanceValue): Partial<NodeInstance>;
|
|
1915
|
+
|
|
1809
1916
|
/**
|
|
1810
1917
|
* Telemetry status type
|
|
1811
1918
|
*/
|
|
@@ -2222,4 +2329,4 @@ interface SimulationOptions {
|
|
|
2222
2329
|
*/
|
|
2223
2330
|
declare function useSimulation(telemetry: TelemetryMap, updateTelemetryBatch: (updates: Array<any>) => void, options?: SimulationOptions): void;
|
|
2224
2331
|
|
|
2225
|
-
export { type AnchorType, Button, type ButtonProps, CardHeader, CardUnit, CardValue, CircularGauge, type CircularGaugeProps, type CommandKind, type ConfigActions, type ConfigDisplay, type ConfigParameter, type ConfigSection, type ConfigState, type ConfigTheme, type ControlCapabilities, type ControlMode, ControlPanel, type ControlPanelProps, type ControlParameter, type ControlState, type CustomAction, DEFAULT_STATUS_COLORS, DEFAULT_THRESHOLDS, DashboardCard, type DataBinding, type DeviceConfigBinding, type DeviceConfigMap, DeviceConfigPanel, type DeviceConfigPanelProps, type DeviceControlBinding, type DeviceControlMap, DeviceControlPanel, type DeviceControlPanelProps, type DeviceStatus, type Diagram, type DiagramMetadata, type DisplayMode, DisplayModeToggle, type DragPoint, type DragState, EquipmentIndicator, type EquipmentIndicatorProps, EquipmentIndicatorWithSparkline, type EquipmentIndicatorWithSparklineProps, FORCED_MARK_COLOR, FixedSVGContainer, FooterPanel, type ForcedState, FullscreenContainer, FullscreenWorkspace, type FullscreenWorkspaceProps, type FullscreenWorkspaceTab, type KeyboardShortcutsOptions, LeftPanel, LeftToggleButton, LegacyValueEntry, type LegacyValueEntryProps, type ModeConfig, NodeConfigPanel, type NodeConfigPanelProps, type NodeControlConfig, NodeControlsPanel, type NodeControlsPanelProps, type NodeInstance, NumpadDialog, type NumpadDialogProps, type Overlay, type OverlayContent, type OverlayTheme, type OverlayType, PIDCanvas, type PIDCanvasControls, type PIDCanvasFeatures, type PIDCanvasProps, PanelContent, PanelTabs, type PipeEdge, type PipeStyle, type Point, type PortDefinition, type PortInstance, type PortType, RightPanel, RightToggleButton, SVGArea, SVGLockedOverlay, type SVGLockedOverlayProps, type ScalingMetadata, ScrollableSVGWrapper, type SelectionState, Selector, type SelectorOption, type SelectorProps, type SimulationOptions, Sparkline, type SparklineProps, type StatusColorEntry, type StatusColorMap, StatusIndicator, type StatusIndicatorProps, type SymbolCategory, type SymbolDefinition, SymbolLibrary, type SymbolLibraryProps, type SymbolMetadata, type TelemetryBinding, type TelemetryMap, type TelemetryStatus$1 as TelemetryStatus, type TelemetryValue, ThemeProvider, ThemeToggle, type ThemeToggleProps, type Thresholds, type Transform, TrendLine, type TrendLineProps, type UseDeviceControlsOptions, type UseDragOptions, type UseDragResult, type UseSelectionOptions, type UseSelectionResult, type UseTelemetryOptions, type UseTelemetryResult, type UseTelemetryStatusOptions, type UseViewBoxOptions, type UseViewBoxResult, ValueEntry, type ValueEntryProps, type ViewBox, ZoomButton, ZoomControls, calculateThresholdStatus, createConfigBinding, createControlBinding, exampleDiagram, exportDiagram, generateRoutePoints, getAvailableSymbols, getPortWorldPosition, getSymbolDefinition, importDiagram, mockSymbolLibrary, nodeHasPort, overlayStyles, registerSymbol, registerSymbols, resolveStatusColor, useDeviceConfigs, useDeviceControls, useDrag, useKeyboardShortcuts, useSelection, useSimulation, useTelemetry, useTelemetryStatus, useTheme, useViewBox, validateDiagram };
|
|
2332
|
+
export { type AnchorType, type AppearanceField, type AppearanceFieldKind, type AppearanceTarget, type AppearanceValue, Button, type ButtonProps, COLOR_PRESETS, CardHeader, CardUnit, CardValue, CircularGauge, type CircularGaugeProps, type CommandKind, type ConfigActions, type ConfigDisplay, type ConfigParameter, type ConfigSection, type ConfigState, type ConfigTheme, type ControlCapabilities, type ControlMode, ControlPanel, type ControlPanelProps, type ControlParameter, type ControlState, type CustomAction, DEFAULT_STATUS_COLORS, DEFAULT_THRESHOLDS, DashboardCard, type DataBinding, type DeviceConfigBinding, type DeviceConfigMap, DeviceConfigPanel, type DeviceConfigPanelProps, type DeviceControlBinding, type DeviceControlMap, DeviceControlPanel, type DeviceControlPanelProps, type DeviceStatus, type Diagram, type DiagramMetadata, type DisplayMode, DisplayModeToggle, type DragPoint, type DragState, EquipmentIndicator, type EquipmentIndicatorProps, EquipmentIndicatorWithSparkline, type EquipmentIndicatorWithSparklineProps, FORCED_MARK_COLOR, FixedSVGContainer, FooterPanel, type ForcedState, FullscreenContainer, FullscreenWorkspace, type FullscreenWorkspaceProps, type FullscreenWorkspaceTab, type KeyboardShortcutsOptions, LeftPanel, LeftToggleButton, LegacyValueEntry, type LegacyValueEntryProps, type ModeConfig, NodeConfigPanel, type NodeConfigPanelProps, type NodeControlConfig, NodeControlsPanel, type NodeControlsPanelProps, type NodeInstance, NumpadDialog, type NumpadDialogProps, type Overlay, type OverlayContent, type OverlayTheme, type OverlayType, PIDCanvas, type PIDCanvasControls, type PIDCanvasFeatures, type PIDCanvasProps, PanelContent, PanelTabs, type PipeEdge, type PipeStyle, type Point, type PortDefinition, type PortInstance, type PortType, RightPanel, RightToggleButton, STATUS_LED_APPEARANCE, SVGArea, SVGLockedOverlay, type SVGLockedOverlayProps, type ScalingMetadata, ScrollableSVGWrapper, type SelectionState, Selector, type SelectorOption, type SelectorProps, type SimulationOptions, Sparkline, type SparklineProps, type StatusColorEntry, type StatusColorMap, StatusIndicator, type StatusIndicatorProps, type SymbolCategory, type SymbolDefinition, SymbolLibrary, type SymbolLibraryProps, type SymbolMetadata, type TelemetryBinding, type TelemetryMap, type TelemetryStatus$1 as TelemetryStatus, type TelemetryValue, ThemeProvider, ThemeToggle, type ThemeToggleProps, type Thresholds, type Transform, TrendLine, type TrendLineProps, UNKNOWN_MARK_COLOR, UNKNOWN_MARK_COLOR_DARK, type UseBooleanIndicatorsOptions, type UseDeviceControlsOptions, type UseDragOptions, type UseDragResult, type UseSelectionOptions, type UseSelectionResult, type UseTelemetryOptions, type UseTelemetryResult, type UseTelemetryStatusOptions, type UseViewBoxOptions, type UseViewBoxResult, ValueEntry, type ValueEntryProps, type ViewBox, ZoomButton, ZoomControls, calculateThresholdStatus, createConfigBinding, createControlBinding, exampleDiagram, exportDiagram, generateRoutePoints, getAppearanceDefaults, getAppearanceSchema, getAvailableSymbols, getPortWorldPosition, getSymbolDefinition, importDiagram, mockSymbolLibrary, nodeHasPort, overlayStyles, readAppearanceValue, registerSymbol, registerSymbols, resolvePresetColor, resolveStatusColor, useBooleanIndicators, useDeviceConfigs, useDeviceControls, useDrag, useKeyboardShortcuts, useSelection, useSimulation, useTelemetry, useTelemetryStatus, useTheme, useViewBox, validateDiagram, writeAppearanceValue };
|