@procaaso/alphinity-ui-components 1.8.3 → 1.10.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 +458 -129
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +266 -75
- package/dist/index.d.ts +266 -75
- package/dist/index.js +457 -129
- package/dist/index.js.map +1 -1
- package/package.json +85 -85
package/dist/index.d.cts
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
3
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
import * as _mui_material_OverridableComponent from '@mui/material/OverridableComponent';
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import react__default from 'react';
|
|
5
3
|
import * as _emotion_styled from '@emotion/styled';
|
|
6
4
|
import * as _emotion_react from '@emotion/react';
|
|
7
5
|
import * as _mui_system from '@mui/system';
|
|
8
6
|
import * as _mui_material from '@mui/material';
|
|
7
|
+
import * as _mui_material_OverridableComponent from '@mui/material/OverridableComponent';
|
|
9
8
|
|
|
10
|
-
interface ButtonProps extends
|
|
9
|
+
interface ButtonProps extends react__default.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
11
10
|
variant?: 'primary' | 'secondary';
|
|
12
|
-
children:
|
|
11
|
+
children: react__default.ReactNode;
|
|
13
12
|
}
|
|
14
|
-
declare const Button:
|
|
13
|
+
declare const Button: react__default.FC<ButtonProps>;
|
|
15
14
|
|
|
16
15
|
interface SelectorOption {
|
|
17
16
|
/** Unique value for the option */
|
|
@@ -23,7 +22,7 @@ interface SelectorOption {
|
|
|
23
22
|
/** Optional description for tooltip or additional context */
|
|
24
23
|
description?: string;
|
|
25
24
|
}
|
|
26
|
-
interface SelectorProps extends Omit<
|
|
25
|
+
interface SelectorProps extends Omit<react__default.HTMLAttributes<HTMLDivElement>, 'onChange'> {
|
|
27
26
|
/** Currently selected value */
|
|
28
27
|
value: string;
|
|
29
28
|
/** Callback when selection changes */
|
|
@@ -43,12 +42,44 @@ interface SelectorProps extends Omit<React__default.HTMLAttributes<HTMLDivElemen
|
|
|
43
42
|
/** Whether the dropdown should open upward */
|
|
44
43
|
dropdownUp?: boolean;
|
|
45
44
|
}
|
|
46
|
-
declare const Selector:
|
|
45
|
+
declare const Selector: react__default.FC<SelectorProps>;
|
|
47
46
|
|
|
48
47
|
/**
|
|
49
48
|
* Status levels for telemetry values
|
|
50
49
|
*/
|
|
51
50
|
type TelemetryStatus$1 = 'normal' | 'warning' | 'alarm' | 'fault' | 'off';
|
|
51
|
+
/**
|
|
52
|
+
* Marks a value as a maintenance force rather than a measured reading
|
|
53
|
+
* (alphinity-tffi issue #3607, unit U11). A forced value is a deliberate
|
|
54
|
+
* substitution at the instrument, so a surface that shows it must show
|
|
55
|
+
* `active` and, when known, the real value beside it. Never render `active`
|
|
56
|
+
* as a `TelemetryStatus` color; forced and alarm/warning/fault are
|
|
57
|
+
* independent facts about the same reading.
|
|
58
|
+
*/
|
|
59
|
+
interface ForcedState {
|
|
60
|
+
/** True while the tag carries an active maintenance force. Source: the control program's Sts_SimulationActive flag. */
|
|
61
|
+
active: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* The real, unforced value, in the same unit as the primary value.
|
|
64
|
+
* Optional: the backend does not publish this yet for every tag kind
|
|
65
|
+
* (alphinity-tffi unit U3b). Render the forced mark alone when this is
|
|
66
|
+
* absent; never show a placeholder in its place.
|
|
67
|
+
*
|
|
68
|
+
* Covers both directions this feature forces, and the two read
|
|
69
|
+
* differently even though the field is the same:
|
|
70
|
+
* - Forced INPUT (a transmitter): the real, currently measured value.
|
|
71
|
+
* - Forced OUTPUT (a valve, a lamp, a commanded position): the value the
|
|
72
|
+
* control system would be commanding right now if the force were not
|
|
73
|
+
* active. Not the feedback tag. XV valve position feedback (ZSC/ZSO) is
|
|
74
|
+
* synthesized from the commanded position, not sensed by a physical
|
|
75
|
+
* limit switch (alphinity-tffi #774, a permanent design choice), and
|
|
76
|
+
* pump feedback reaches the bus but nothing consumes it as a position.
|
|
77
|
+
* Showing either as "real" would present a derived number as measured -
|
|
78
|
+
* the exact confidently-wrong display this feature exists to prevent.
|
|
79
|
+
* A commanded value, honestly labeled, is the only real answer here.
|
|
80
|
+
*/
|
|
81
|
+
realValue?: number | string | boolean;
|
|
82
|
+
}
|
|
52
83
|
/**
|
|
53
84
|
* Live telemetry value with status
|
|
54
85
|
*/
|
|
@@ -99,6 +130,11 @@ interface TelemetryBinding {
|
|
|
99
130
|
tag: string;
|
|
100
131
|
/** Current telemetry value */
|
|
101
132
|
value: TelemetryValue;
|
|
133
|
+
/**
|
|
134
|
+
* Maintenance force state (#3607, R19). Absent or `active: false` means
|
|
135
|
+
* the value is a real reading; render nothing extra. See `ForcedState`.
|
|
136
|
+
*/
|
|
137
|
+
forced?: ForcedState;
|
|
102
138
|
/**
|
|
103
139
|
* Uniform scaling / EU metadata (units, range, precision). When present it is
|
|
104
140
|
* the authoritative source for the displayed units, decimal precision, and
|
|
@@ -189,7 +225,7 @@ interface ModeConfig {
|
|
|
189
225
|
/** Precision for second setpoint */
|
|
190
226
|
secondPrecision?: number;
|
|
191
227
|
}
|
|
192
|
-
interface ControlPanelProps extends
|
|
228
|
+
interface ControlPanelProps extends react__default.HTMLAttributes<HTMLDivElement> {
|
|
193
229
|
/** Panel title/identifier */
|
|
194
230
|
title: string;
|
|
195
231
|
/** Currently selected mode */
|
|
@@ -198,10 +234,34 @@ interface ControlPanelProps extends React__default.HTMLAttributes<HTMLDivElement
|
|
|
198
234
|
modeOptions: SelectorOption[];
|
|
199
235
|
/** Callback when mode changes */
|
|
200
236
|
onModeChange: (mode: string) => void;
|
|
201
|
-
/**
|
|
237
|
+
/** Typed/target setpoint value (editable) */
|
|
202
238
|
setpointValue: number | string;
|
|
203
239
|
/** Callback when setpoint changes */
|
|
204
240
|
onSetpointChange: (value: number | string) => void;
|
|
241
|
+
/**
|
|
242
|
+
* The setpoint the control loop is currently running: read-only feedback
|
|
243
|
+
* from live telemetry, shown beside the typed setpoint above so an
|
|
244
|
+
* operator sees target and current separately (the typed field never
|
|
245
|
+
* "snaps back" to reflect the live value).
|
|
246
|
+
*
|
|
247
|
+
* Optional and hidden by default: the caller decides when a live-feedback
|
|
248
|
+
* row is worth showing, since always showing a normally-differing current
|
|
249
|
+
* value can read as a fault when none exists. When this tag carries a
|
|
250
|
+
* maintenance force, the caller MUST pass this prop at that time - a
|
|
251
|
+
* hidden value shows nothing, forced or not, but a shown value must carry
|
|
252
|
+
* its FORCED mark (#3607, R19).
|
|
253
|
+
*/
|
|
254
|
+
currentSetpointValue?: number | string;
|
|
255
|
+
/**
|
|
256
|
+
* True when `currentSetpointValue` is a maintenance force, not a measured
|
|
257
|
+
* reading. Ignored when `currentSetpointValue` is not provided.
|
|
258
|
+
*/
|
|
259
|
+
currentSetpointForced?: boolean;
|
|
260
|
+
/**
|
|
261
|
+
* The real, unforced value for `currentSetpointValue`. Optional; absent
|
|
262
|
+
* until the backend publishes it (alphinity-tffi unit U3b).
|
|
263
|
+
*/
|
|
264
|
+
currentSetpointRealValue?: number | string;
|
|
205
265
|
/** Current second setpoint value (for ramp mode, etc.) */
|
|
206
266
|
secondSetpointValue?: number | string;
|
|
207
267
|
/** Callback when second setpoint changes */
|
|
@@ -250,9 +310,9 @@ interface ControlPanelProps extends React__default.HTMLAttributes<HTMLDivElement
|
|
|
250
310
|
/** Custom stop button text */
|
|
251
311
|
stopButtonText?: string;
|
|
252
312
|
}
|
|
253
|
-
declare const ControlPanel:
|
|
313
|
+
declare const ControlPanel: react__default.FC<ControlPanelProps>;
|
|
254
314
|
|
|
255
|
-
interface StatusIndicatorProps extends
|
|
315
|
+
interface StatusIndicatorProps extends react__default.HTMLAttributes<HTMLDivElement> {
|
|
256
316
|
/** Status state determining color and behavior */
|
|
257
317
|
status: 'off' | 'normal' | 'alarm' | 'warning' | 'active' | 'fault';
|
|
258
318
|
/** Size of the indicator */
|
|
@@ -267,10 +327,26 @@ interface StatusIndicatorProps extends React__default.HTMLAttributes<HTMLDivElem
|
|
|
267
327
|
shape?: 'circle' | 'square' | 'diamond';
|
|
268
328
|
/** Whether the indicator should have a 3D LED effect */
|
|
269
329
|
led?: boolean;
|
|
330
|
+
/**
|
|
331
|
+
* True when the underlying tag's state is a maintenance force, not a
|
|
332
|
+
* measured reading (#3607, R19). Renders a small glyph badge, never a
|
|
333
|
+
* color change: this indicator's whole signal is color plus a short
|
|
334
|
+
* label today, and color alone fails a colorblind operator.
|
|
335
|
+
*/
|
|
336
|
+
forced?: boolean;
|
|
337
|
+
/**
|
|
338
|
+
* The real, unforced state, shown as text beside `label` when `forced`
|
|
339
|
+
* is true. For a forced discrete OUTPUT (a lamp, a valve OPEN/CLOSED
|
|
340
|
+
* indicator - R2), this is the state the system would command if the
|
|
341
|
+
* force were not active, not a second physical reading. Optional:
|
|
342
|
+
* absent until the backend publishes it. When absent, only the forced
|
|
343
|
+
* glyph badge renders.
|
|
344
|
+
*/
|
|
345
|
+
realValue?: string;
|
|
270
346
|
}
|
|
271
|
-
declare const StatusIndicator:
|
|
347
|
+
declare const StatusIndicator: react__default.FC<StatusIndicatorProps>;
|
|
272
348
|
|
|
273
|
-
interface ValueEntryProps extends Omit<
|
|
349
|
+
interface ValueEntryProps extends Omit<react__default.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
|
|
274
350
|
/** Current value */
|
|
275
351
|
value: number | string;
|
|
276
352
|
/** Callback when value changes */
|
|
@@ -291,10 +367,23 @@ interface ValueEntryProps extends Omit<React__default.InputHTMLAttributes<HTMLIn
|
|
|
291
367
|
label?: string;
|
|
292
368
|
/** Whether the input is read-only */
|
|
293
369
|
readOnly?: boolean;
|
|
370
|
+
/**
|
|
371
|
+
* True when `value` is a maintenance force, not a measured reading
|
|
372
|
+
* (#3607, R19). Source: the control program's Sts_SimulationActive flag.
|
|
373
|
+
* Renders a FORCED badge; never changes `status`, which stays an
|
|
374
|
+
* independent fact about the same reading.
|
|
375
|
+
*/
|
|
376
|
+
forced?: boolean;
|
|
377
|
+
/**
|
|
378
|
+
* The real, unforced value, shown beside `value` when `forced` is true.
|
|
379
|
+
* Optional: the backend does not publish this for every tag kind yet
|
|
380
|
+
* (alphinity-tffi unit U3b). When absent, only the FORCED badge renders.
|
|
381
|
+
*/
|
|
382
|
+
realValue?: number | string;
|
|
294
383
|
}
|
|
295
|
-
declare const ValueEntry:
|
|
384
|
+
declare const ValueEntry: react__default.FC<ValueEntryProps>;
|
|
296
385
|
|
|
297
|
-
interface LegacyValueEntryProps extends Omit<
|
|
386
|
+
interface LegacyValueEntryProps extends Omit<react__default.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
|
|
298
387
|
/** Current value */
|
|
299
388
|
value: number | string;
|
|
300
389
|
/** Callback when value changes */
|
|
@@ -315,8 +404,18 @@ interface LegacyValueEntryProps extends Omit<React__default.InputHTMLAttributes<
|
|
|
315
404
|
label?: string;
|
|
316
405
|
/** Whether the input is read-only */
|
|
317
406
|
readOnly?: boolean;
|
|
407
|
+
/**
|
|
408
|
+
* True when `value` is a maintenance force, not a measured reading
|
|
409
|
+
* (#3607, R19). Renders a FORCED badge; never changes `status`.
|
|
410
|
+
*/
|
|
411
|
+
forced?: boolean;
|
|
412
|
+
/**
|
|
413
|
+
* The real, unforced value, shown beside `value` when `forced` is true.
|
|
414
|
+
* Optional; absent until the backend publishes it (unit U3b).
|
|
415
|
+
*/
|
|
416
|
+
realValue?: number | string;
|
|
318
417
|
}
|
|
319
|
-
declare const LegacyValueEntry:
|
|
418
|
+
declare const LegacyValueEntry: react__default.FC<LegacyValueEntryProps>;
|
|
320
419
|
|
|
321
420
|
interface NodeControlConfig {
|
|
322
421
|
/** Node ID */
|
|
@@ -329,10 +428,16 @@ interface NodeControlConfig {
|
|
|
329
428
|
currentMode: string;
|
|
330
429
|
/** Callback when mode changes */
|
|
331
430
|
onModeChange: (mode: string) => void;
|
|
332
|
-
/**
|
|
431
|
+
/** Typed/target setpoint value (editable) */
|
|
333
432
|
setpoint: number | string;
|
|
334
433
|
/** Callback when setpoint changes */
|
|
335
434
|
onSetpointChange: (value: number | string) => void;
|
|
435
|
+
/** Current setpoint: read-only feedback from live telemetry. See ControlPanelProps.currentSetpointValue. */
|
|
436
|
+
currentSetpoint?: number | string;
|
|
437
|
+
/** True when `currentSetpoint` is a maintenance force, not a measured reading. */
|
|
438
|
+
currentSetpointForced?: boolean;
|
|
439
|
+
/** The real, unforced value for `currentSetpoint`. Optional; absent until the backend publishes it. */
|
|
440
|
+
currentSetpointRealValue?: number | string;
|
|
336
441
|
/** Optional second setpoint value */
|
|
337
442
|
secondSetpoint?: number | string;
|
|
338
443
|
/** Callback for second setpoint */
|
|
@@ -354,7 +459,7 @@ interface NodeControlConfig {
|
|
|
354
459
|
/** Whether setpoint is read-only */
|
|
355
460
|
readOnly?: boolean;
|
|
356
461
|
}
|
|
357
|
-
interface NodeControlsPanelProps extends
|
|
462
|
+
interface NodeControlsPanelProps extends react__default.HTMLAttributes<HTMLDivElement> {
|
|
358
463
|
/** Control configuration for the selected node */
|
|
359
464
|
config: NodeControlConfig | null;
|
|
360
465
|
/** Callback to close the panel */
|
|
@@ -373,7 +478,7 @@ interface NodeControlsPanelProps extends React__default.HTMLAttributes<HTMLDivEl
|
|
|
373
478
|
* - Clear visual feedback
|
|
374
479
|
* - Bottom or side slide-in animation
|
|
375
480
|
*/
|
|
376
|
-
declare const NodeControlsPanel:
|
|
481
|
+
declare const NodeControlsPanel: react__default.FC<NodeControlsPanelProps>;
|
|
377
482
|
|
|
378
483
|
/**
|
|
379
484
|
* A custom action button rendered in the device control panel (e.g. Tare, Zero).
|
|
@@ -451,6 +556,11 @@ interface ControlParameter {
|
|
|
451
556
|
precision?: number;
|
|
452
557
|
/** Current value */
|
|
453
558
|
value: number | string | boolean;
|
|
559
|
+
/**
|
|
560
|
+
* Maintenance force state for this parameter (#3607, R19). Absent or
|
|
561
|
+
* `active: false` means `value` is a real reading. See `ForcedState`.
|
|
562
|
+
*/
|
|
563
|
+
forced?: ForcedState;
|
|
454
564
|
/** Whether parameter is read-only */
|
|
455
565
|
readOnly?: boolean;
|
|
456
566
|
/** Parameter type */
|
|
@@ -659,6 +769,20 @@ interface DeviceControlPanelProps {
|
|
|
659
769
|
undockIcon?: string;
|
|
660
770
|
/** Style for mode selector: 'buttons' (horizontal scroll), 'dropdown' (select), or 'modal' (click to open modal) */
|
|
661
771
|
modeSelectionStyle?: 'buttons' | 'dropdown' | 'modal';
|
|
772
|
+
/**
|
|
773
|
+
* Render this panel's OWN result toast. Default true, so existing
|
|
774
|
+
* consumers are unchanged.
|
|
775
|
+
*
|
|
776
|
+
* Set false when the host application already surfaces command and save
|
|
777
|
+
* results through its own notification channel. Without it the operator
|
|
778
|
+
* sees two notices for one action - this panel's optimistic "command
|
|
779
|
+
* sent", in this panel's styling, followed by the host's message for the
|
|
780
|
+
* real outcome - which reads as two different mechanisms.
|
|
781
|
+
*
|
|
782
|
+
* The result still lands in `binding.state`, so a host that opts out can
|
|
783
|
+
* read it and render its own.
|
|
784
|
+
*/
|
|
785
|
+
showBuiltInToast?: boolean;
|
|
662
786
|
/** Embedded mode - uses static positioning for rendering in containers (default: false) */
|
|
663
787
|
embedded?: boolean;
|
|
664
788
|
}
|
|
@@ -669,9 +793,9 @@ interface DeviceControlPanelProps {
|
|
|
669
793
|
* its live values move, so the memo bails only on genuinely idle ticks - the
|
|
670
794
|
* win is proportional to how often values are flat at display precision.
|
|
671
795
|
*/
|
|
672
|
-
declare function DeviceControlPanelImpl({ binding, onClose, position, align, touchOptimized, compact, fontScale, maxHeight, maxWidth, toastDuration, onModeChange, onParameterChange, onParameterActivate, onStart, onStop, startPending, stopPending, onCustomAction, onOpenConfig, showConfigButton, onUndock, undockIcon, modeSelectionStyle, embedded, }: DeviceControlPanelProps):
|
|
796
|
+
declare function DeviceControlPanelImpl({ binding, onClose, position, align, touchOptimized, compact, fontScale, maxHeight, maxWidth, toastDuration, onModeChange, onParameterChange, onParameterActivate, onStart, onStop, startPending, stopPending, onCustomAction, onOpenConfig, showConfigButton, onUndock, undockIcon, modeSelectionStyle, showBuiltInToast, embedded, }: DeviceControlPanelProps): react__default.JSX.Element | null;
|
|
673
797
|
/** Memo boundary - see DeviceControlPanelImpl doc comment (kiosk heap-leak fix). */
|
|
674
|
-
declare const DeviceControlPanel:
|
|
798
|
+
declare const DeviceControlPanel: react__default.MemoExoticComponent<typeof DeviceControlPanelImpl>;
|
|
675
799
|
|
|
676
800
|
interface NumpadDialogProps {
|
|
677
801
|
/** Whether the dialog is open */
|
|
@@ -720,7 +844,7 @@ interface NumpadDialogProps {
|
|
|
720
844
|
* out-of-range values are rejected (never silently clamped). The field pre-fills
|
|
721
845
|
* with the current value so an operator never blind-zeroes a live setpoint.
|
|
722
846
|
*/
|
|
723
|
-
declare const NumpadDialog:
|
|
847
|
+
declare const NumpadDialog: react__default.FC<NumpadDialogProps>;
|
|
724
848
|
|
|
725
849
|
type DisplayMode = 'standard' | 'dashboard';
|
|
726
850
|
interface FullscreenContainerProps {
|
|
@@ -731,9 +855,9 @@ type OverlayTheme = 'tank' | 'pressure' | 'vessel' | 'flow';
|
|
|
731
855
|
interface SVGLockedOverlayProps {
|
|
732
856
|
svgX: number;
|
|
733
857
|
svgY: number;
|
|
734
|
-
children:
|
|
858
|
+
children: react__default.ReactNode;
|
|
735
859
|
theme?: OverlayTheme;
|
|
736
|
-
style?:
|
|
860
|
+
style?: react__default.CSSProperties;
|
|
737
861
|
className?: string;
|
|
738
862
|
onClick?: () => void;
|
|
739
863
|
containerSelector?: string;
|
|
@@ -745,6 +869,11 @@ interface TrendLineProps {
|
|
|
745
869
|
color?: string;
|
|
746
870
|
strokeWidth?: number;
|
|
747
871
|
backgroundColor?: string;
|
|
872
|
+
/**
|
|
873
|
+
* True when `values` trends a maintenance force, not measured readings
|
|
874
|
+
* (#3607, R19). Renders a FORCED tag; the trend line itself is unchanged.
|
|
875
|
+
*/
|
|
876
|
+
forced?: boolean;
|
|
748
877
|
}
|
|
749
878
|
interface CircularGaugeProps {
|
|
750
879
|
value: number;
|
|
@@ -753,12 +882,27 @@ interface CircularGaugeProps {
|
|
|
753
882
|
label: string;
|
|
754
883
|
size?: number;
|
|
755
884
|
color?: string;
|
|
885
|
+
/**
|
|
886
|
+
* True when `value` is a maintenance force, not a measured reading
|
|
887
|
+
* (#3607, R19). Source: the control program's Sts_SimulationActive flag.
|
|
888
|
+
*/
|
|
889
|
+
forced?: boolean;
|
|
890
|
+
/**
|
|
891
|
+
* The real, unforced value, shown beside `value` when `forced` is true.
|
|
892
|
+
* Optional; absent until the backend publishes it (unit U3b).
|
|
893
|
+
*/
|
|
894
|
+
realValue?: number;
|
|
756
895
|
}
|
|
757
896
|
interface SparklineProps {
|
|
758
897
|
data: number[];
|
|
759
898
|
width: number;
|
|
760
899
|
height: number;
|
|
761
900
|
color: string;
|
|
901
|
+
/**
|
|
902
|
+
* True when `data` trends a maintenance force, not measured readings
|
|
903
|
+
* (#3607, R19). Renders a FORCED tag; the trend line itself is unchanged.
|
|
904
|
+
*/
|
|
905
|
+
forced?: boolean;
|
|
762
906
|
}
|
|
763
907
|
interface EquipmentIndicatorWithSparklineProps {
|
|
764
908
|
svgX: number;
|
|
@@ -771,6 +915,13 @@ interface EquipmentIndicatorWithSparklineProps {
|
|
|
771
915
|
x: number;
|
|
772
916
|
y: number;
|
|
773
917
|
};
|
|
918
|
+
/**
|
|
919
|
+
* True when this equipment's state is a maintenance force, not a measured
|
|
920
|
+
* reading (#3607, R19). Renders a small glyph badge, never a color
|
|
921
|
+
* change: this indicator's whole signal is color plus a short label
|
|
922
|
+
* today, and color alone fails a colorblind operator.
|
|
923
|
+
*/
|
|
924
|
+
forced?: boolean;
|
|
774
925
|
}
|
|
775
926
|
interface EquipmentIndicatorProps {
|
|
776
927
|
svgX: number;
|
|
@@ -778,20 +929,26 @@ interface EquipmentIndicatorProps {
|
|
|
778
929
|
color: string;
|
|
779
930
|
label: string;
|
|
780
931
|
size?: number;
|
|
781
|
-
style?:
|
|
932
|
+
style?: react__default.CSSProperties;
|
|
782
933
|
className?: string;
|
|
934
|
+
/**
|
|
935
|
+
* True when this equipment's state is a maintenance force, not a measured
|
|
936
|
+
* reading (#3607, R19). Renders a small glyph badge, never a color
|
|
937
|
+
* change. See EquipmentIndicatorWithSparklineProps.forced.
|
|
938
|
+
*/
|
|
939
|
+
forced?: boolean;
|
|
783
940
|
}
|
|
784
941
|
interface FullscreenWorkspaceTab {
|
|
785
942
|
label: string;
|
|
786
943
|
value: string;
|
|
787
|
-
content:
|
|
788
|
-
}
|
|
789
|
-
interface FullscreenWorkspaceProps extends
|
|
790
|
-
svgContent:
|
|
791
|
-
overlays?:
|
|
792
|
-
leftPanel?:
|
|
793
|
-
rightPanel?:
|
|
794
|
-
footer?:
|
|
944
|
+
content: react__default.ReactNode;
|
|
945
|
+
}
|
|
946
|
+
interface FullscreenWorkspaceProps extends react__default.HTMLAttributes<HTMLDivElement> {
|
|
947
|
+
svgContent: react__default.ReactNode;
|
|
948
|
+
overlays?: react__default.ReactNode;
|
|
949
|
+
leftPanel?: react__default.ReactNode;
|
|
950
|
+
rightPanel?: react__default.ReactNode;
|
|
951
|
+
footer?: react__default.ReactNode;
|
|
795
952
|
tabs?: FullscreenWorkspaceTab[];
|
|
796
953
|
activeTab?: string;
|
|
797
954
|
onTabChange?: (value: string) => void;
|
|
@@ -812,60 +969,60 @@ interface FullscreenWorkspaceProps extends React__default.HTMLAttributes<HTMLDiv
|
|
|
812
969
|
zoomDisabled?: boolean;
|
|
813
970
|
}
|
|
814
971
|
|
|
815
|
-
declare const FullscreenContainer: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<
|
|
972
|
+
declare const FullscreenContainer: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
|
|
816
973
|
theme?: _emotion_react.Theme;
|
|
817
974
|
} & FullscreenContainerProps, {}, {}>;
|
|
818
|
-
declare const LeftPanel: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<
|
|
975
|
+
declare const LeftPanel: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
|
|
819
976
|
theme?: _emotion_react.Theme;
|
|
820
977
|
} & {
|
|
821
978
|
collapsed: boolean;
|
|
822
979
|
}, {}, {}>;
|
|
823
|
-
declare const RightPanel: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<
|
|
980
|
+
declare const RightPanel: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
|
|
824
981
|
theme?: _emotion_react.Theme;
|
|
825
982
|
} & {
|
|
826
983
|
collapsed: boolean;
|
|
827
984
|
}, {}, {}>;
|
|
828
|
-
declare const SVGArea: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<
|
|
985
|
+
declare const SVGArea: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
|
|
829
986
|
theme?: _emotion_react.Theme;
|
|
830
987
|
}, {}, {}>;
|
|
831
|
-
declare const LeftToggleButton: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<
|
|
988
|
+
declare const LeftToggleButton: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children" | "className" | "disabled" | "style" | "tabIndex" | "color" | "size" | "sx" | "classes" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator"> & {
|
|
832
989
|
theme?: _emotion_react.Theme;
|
|
833
990
|
} & {
|
|
834
991
|
collapsed: boolean;
|
|
835
992
|
}, {}, {}>;
|
|
836
|
-
declare const RightToggleButton: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<
|
|
993
|
+
declare const RightToggleButton: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children" | "className" | "disabled" | "style" | "tabIndex" | "color" | "size" | "sx" | "classes" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator"> & {
|
|
837
994
|
theme?: _emotion_react.Theme;
|
|
838
995
|
} & {
|
|
839
996
|
collapsed: boolean;
|
|
840
997
|
}, {}, {}>;
|
|
841
|
-
declare const DisplayModeToggle: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<
|
|
998
|
+
declare const DisplayModeToggle: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children" | "className" | "disabled" | "style" | "tabIndex" | "color" | "size" | "sx" | "classes" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator"> & {
|
|
842
999
|
theme?: _emotion_react.Theme;
|
|
843
1000
|
} & {
|
|
844
1001
|
mode: DisplayMode;
|
|
845
1002
|
}, {}, {}>;
|
|
846
|
-
declare const ZoomControls: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<
|
|
1003
|
+
declare const ZoomControls: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
|
|
847
1004
|
theme?: _emotion_react.Theme;
|
|
848
1005
|
}, {}, {}>;
|
|
849
|
-
declare const ZoomButton: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<
|
|
1006
|
+
declare const ZoomButton: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<react.DetailedHTMLProps<react.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children" | "className" | "disabled" | "style" | "tabIndex" | "color" | "size" | "sx" | "classes" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator"> & {
|
|
850
1007
|
theme?: _emotion_react.Theme;
|
|
851
1008
|
}, {}, {}>;
|
|
852
|
-
declare const FooterPanel: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<
|
|
1009
|
+
declare const FooterPanel: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
|
|
853
1010
|
theme?: _emotion_react.Theme;
|
|
854
1011
|
}, {}, {}>;
|
|
855
|
-
declare const PanelTabs: _emotion_styled.StyledComponent<_mui_material.TabsOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<
|
|
1012
|
+
declare const PanelTabs: _emotion_styled.StyledComponent<_mui_material.TabsOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "variant" | "children" | "className" | "value" | "style" | "aria-label" | "aria-labelledby" | "onChange" | "sx" | "classes" | "action" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "orientation" | "ScrollButtonComponent" | "scrollButtons" | "selectionFollowsFocus" | "TabIndicatorProps" | "TabScrollButtonProps" | "textColor" | "visibleScrollbar" | "slots" | "slotProps"> & {
|
|
856
1013
|
theme?: _emotion_react.Theme;
|
|
857
1014
|
}, {}, {}>;
|
|
858
|
-
declare const PanelContent: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<
|
|
1015
|
+
declare const PanelContent: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
|
|
859
1016
|
theme?: _emotion_react.Theme;
|
|
860
1017
|
}, {}, {}>;
|
|
861
1018
|
declare const FixedSVGContainer: _emotion_styled.StyledComponent<{
|
|
862
1019
|
theme?: _emotion_react.Theme;
|
|
863
1020
|
as?: React.ElementType;
|
|
864
|
-
},
|
|
1021
|
+
}, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
865
1022
|
declare const ScrollableSVGWrapper: _emotion_styled.StyledComponent<{
|
|
866
1023
|
theme?: _emotion_react.Theme;
|
|
867
1024
|
as?: React.ElementType;
|
|
868
|
-
},
|
|
1025
|
+
}, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
869
1026
|
|
|
870
1027
|
declare const baseOverlayStyles: {
|
|
871
1028
|
readonly tank: {
|
|
@@ -918,8 +1075,8 @@ declare const baseOverlayStyles: {
|
|
|
918
1075
|
};
|
|
919
1076
|
};
|
|
920
1077
|
declare const overlayStyles: Record<OverlayTheme, typeof baseOverlayStyles[OverlayTheme]>;
|
|
921
|
-
declare const SVGLockedOverlay: ({ svgX, svgY, children, theme, style, className, onClick, containerSelector, }: SVGLockedOverlayProps) =>
|
|
922
|
-
declare const DashboardCard: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<
|
|
1078
|
+
declare const SVGLockedOverlay: ({ svgX, svgY, children, theme, style, className, onClick, containerSelector, }: SVGLockedOverlayProps) => react.JSX.Element;
|
|
1079
|
+
declare const DashboardCard: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
|
|
923
1080
|
theme?: _emotion_react.Theme;
|
|
924
1081
|
} & {
|
|
925
1082
|
svgX: number;
|
|
@@ -931,23 +1088,23 @@ declare const CardHeader: _emotion_styled.StyledComponent<{
|
|
|
931
1088
|
as?: React.ElementType;
|
|
932
1089
|
} & {
|
|
933
1090
|
color?: string;
|
|
934
|
-
},
|
|
1091
|
+
}, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
935
1092
|
declare const CardValue: _emotion_styled.StyledComponent<{
|
|
936
1093
|
theme?: _emotion_react.Theme;
|
|
937
1094
|
as?: React.ElementType;
|
|
938
|
-
},
|
|
1095
|
+
}, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
939
1096
|
declare const CardUnit: _emotion_styled.StyledComponent<{
|
|
940
1097
|
theme?: _emotion_react.Theme;
|
|
941
1098
|
as?: React.ElementType;
|
|
942
|
-
},
|
|
1099
|
+
}, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
943
1100
|
|
|
944
|
-
declare const TrendLine: ({ values, width, height, color, strokeWidth, backgroundColor, }: TrendLineProps) =>
|
|
945
|
-
declare const CircularGauge: ({ value, max, unit, label, size, color, }: CircularGaugeProps) =>
|
|
946
|
-
declare const Sparkline: ({ data, width, height, color }: SparklineProps) =>
|
|
947
|
-
declare const EquipmentIndicatorWithSparkline: ({ svgX, svgY, color, label, size, sparklineData, sparklineOffset, }: EquipmentIndicatorWithSparklineProps) =>
|
|
948
|
-
declare const EquipmentIndicator: ({ svgX, svgY, color, label, size, style, className, }: EquipmentIndicatorProps) =>
|
|
1101
|
+
declare const TrendLine: ({ values, width, height, color, strokeWidth, backgroundColor, forced, }: TrendLineProps) => react.JSX.Element;
|
|
1102
|
+
declare const CircularGauge: ({ value, max, unit, label, size, color, forced, realValue, }: CircularGaugeProps) => react.JSX.Element;
|
|
1103
|
+
declare const Sparkline: ({ data, width, height, color, forced }: SparklineProps) => react.JSX.Element | null;
|
|
1104
|
+
declare const EquipmentIndicatorWithSparkline: ({ svgX, svgY, color, label, size, sparklineData, sparklineOffset, forced, }: EquipmentIndicatorWithSparklineProps) => react.JSX.Element;
|
|
1105
|
+
declare const EquipmentIndicator: ({ svgX, svgY, color, label, size, style, className, forced, }: EquipmentIndicatorProps) => react.JSX.Element;
|
|
949
1106
|
|
|
950
|
-
declare function FullscreenWorkspace({ svgContent, overlays, leftPanel, rightPanel, footer, tabs, activeTab, onTabChange, defaultLeftCollapsed, defaultRightCollapsed, leftCollapsed: leftCollapsedProp, rightCollapsed: rightCollapsedProp, onLeftCollapseChange, onRightCollapseChange, displayMode, defaultDisplayMode, onDisplayModeChange, showDisplayModeToggle, showZoomControls, onZoomIn, onZoomOut, onResetZoom, zoomDisabled, className, ...rest }: FullscreenWorkspaceProps):
|
|
1107
|
+
declare function FullscreenWorkspace({ svgContent, overlays, leftPanel, rightPanel, footer, tabs, activeTab, onTabChange, defaultLeftCollapsed, defaultRightCollapsed, leftCollapsed: leftCollapsedProp, rightCollapsed: rightCollapsedProp, onLeftCollapseChange, onRightCollapseChange, displayMode, defaultDisplayMode, onDisplayModeChange, showDisplayModeToggle, showZoomControls, onZoomIn, onZoomOut, onResetZoom, zoomDisabled, className, ...rest }: FullscreenWorkspaceProps): react__default.ReactElement;
|
|
951
1108
|
|
|
952
1109
|
type Theme = 'modern' | 'hmi';
|
|
953
1110
|
interface ThemeContextType {
|
|
@@ -957,17 +1114,17 @@ interface ThemeContextType {
|
|
|
957
1114
|
}
|
|
958
1115
|
declare const useTheme: () => ThemeContextType;
|
|
959
1116
|
interface ThemeProviderProps {
|
|
960
|
-
children:
|
|
1117
|
+
children: react__default.ReactNode;
|
|
961
1118
|
}
|
|
962
|
-
declare const ThemeProvider:
|
|
1119
|
+
declare const ThemeProvider: react__default.FC<ThemeProviderProps>;
|
|
963
1120
|
|
|
964
|
-
interface ThemeToggleProps extends
|
|
1121
|
+
interface ThemeToggleProps extends react__default.HTMLAttributes<HTMLDivElement> {
|
|
965
1122
|
/** Size of the toggle */
|
|
966
1123
|
size?: 'small' | 'medium' | 'large';
|
|
967
1124
|
/** Position of the toggle */
|
|
968
1125
|
position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'inline';
|
|
969
1126
|
}
|
|
970
|
-
declare const ThemeToggle:
|
|
1127
|
+
declare const ThemeToggle: react__default.FC<ThemeToggleProps>;
|
|
971
1128
|
|
|
972
1129
|
/**
|
|
973
1130
|
* ISA-101 High Performance HMI — Unified Status Color System
|
|
@@ -1005,6 +1162,17 @@ type StatusColorMap = Partial<Record<DeviceStatus, Partial<StatusColorEntry>>>;
|
|
|
1005
1162
|
* - stopping: amber (transitional)
|
|
1006
1163
|
*/
|
|
1007
1164
|
declare const DEFAULT_STATUS_COLORS: Record<DeviceStatus, StatusColorEntry>;
|
|
1165
|
+
/**
|
|
1166
|
+
* Maintenance-force marking color (#3607, R19). Deliberately outside
|
|
1167
|
+
* DEFAULT_STATUS_COLORS: a forced value is not a health status, and must
|
|
1168
|
+
* never share a color with warning/alarm/fault or read as one of them.
|
|
1169
|
+
* Violet is unused elsewhere in this palette.
|
|
1170
|
+
*
|
|
1171
|
+
* Light fill + dark text, not a solid vivid chip: reads as a calm marker
|
|
1172
|
+
* rather than an alarm sticker, while the vivid `border` shade still
|
|
1173
|
+
* outlines a forced value's box/ring so it stays findable at a glance.
|
|
1174
|
+
*/
|
|
1175
|
+
declare const FORCED_MARK_COLOR: StatusColorEntry;
|
|
1008
1176
|
/**
|
|
1009
1177
|
* Resolve a status string to a full color entry.
|
|
1010
1178
|
*
|
|
@@ -1436,13 +1604,13 @@ interface PIDCanvasFeatures {
|
|
|
1436
1604
|
/** Background color for canvas (default: '#ffffff') */
|
|
1437
1605
|
backgroundColor?: string;
|
|
1438
1606
|
}
|
|
1439
|
-
interface PIDCanvasProps extends
|
|
1607
|
+
interface PIDCanvasProps extends react__default.HTMLAttributes<HTMLDivElement> {
|
|
1440
1608
|
/** The diagram to render */
|
|
1441
1609
|
diagram: Diagram;
|
|
1442
1610
|
/** Optional className for the container */
|
|
1443
1611
|
className?: string;
|
|
1444
1612
|
/** Optional inline styles for the container */
|
|
1445
|
-
style?:
|
|
1613
|
+
style?: react__default.CSSProperties;
|
|
1446
1614
|
/** Enable interactive features (pan, zoom, selection, telemetry, dragNodes) */
|
|
1447
1615
|
features?: PIDCanvasFeatures;
|
|
1448
1616
|
/** Callback when selection changes */
|
|
@@ -1498,20 +1666,20 @@ interface PIDCanvasControls {
|
|
|
1498
1666
|
*
|
|
1499
1667
|
* Future: Editing tools, symbol library UI
|
|
1500
1668
|
*/
|
|
1501
|
-
declare function PIDCanvasImpl({ diagram, className, style, features, onSelectionChange, onNodeClick, onPipeClick, onNodeMove, onDiagramChange, onDelete, onItemsCopied, onPaste, onSymbolDrop, onPipeCreated, onMounted, telemetry, statusColorMap, ...props }: PIDCanvasProps):
|
|
1669
|
+
declare function PIDCanvasImpl({ diagram, className, style, features, onSelectionChange, onNodeClick, onPipeClick, onNodeMove, onDiagramChange, onDelete, onItemsCopied, onPaste, onSymbolDrop, onPipeCreated, onMounted, telemetry, statusColorMap, ...props }: PIDCanvasProps): react__default.ReactElement;
|
|
1502
1670
|
/**
|
|
1503
1671
|
* Memo boundary - see PIDCanvasImpl doc comment (renderer-OOM fix). Shallow
|
|
1504
1672
|
* compare: `diagram`, `telemetry`, `features`, `style`, `statusColorMap`, and
|
|
1505
1673
|
* every callback are compared by identity; hosts that keep them stable skip
|
|
1506
1674
|
* the full-canvas re-render entirely when unrelated screen state changes.
|
|
1507
1675
|
*/
|
|
1508
|
-
declare const PIDCanvas:
|
|
1676
|
+
declare const PIDCanvas: react__default.MemoExoticComponent<typeof PIDCanvasImpl>;
|
|
1509
1677
|
|
|
1510
1678
|
interface SymbolLibraryProps {
|
|
1511
1679
|
/** Optional className for styling */
|
|
1512
1680
|
className?: string;
|
|
1513
1681
|
/** Callback when a symbol drag starts */
|
|
1514
|
-
onSymbolDragStart?: (symbolId: string, event:
|
|
1682
|
+
onSymbolDragStart?: (symbolId: string, event: react__default.DragEvent) => void;
|
|
1515
1683
|
/** Show category filter */
|
|
1516
1684
|
showCategories?: boolean;
|
|
1517
1685
|
/** Custom symbol categories */
|
|
@@ -1523,7 +1691,7 @@ interface SymbolLibraryProps {
|
|
|
1523
1691
|
* Displays available symbols organized by category
|
|
1524
1692
|
* Supports drag-and-drop to add new nodes to diagrams
|
|
1525
1693
|
*/
|
|
1526
|
-
declare function SymbolLibrary({ className, onSymbolDragStart, showCategories, categories, }: SymbolLibraryProps):
|
|
1694
|
+
declare function SymbolLibrary({ className, onSymbolDragStart, showCategories, categories, }: SymbolLibraryProps): react__default.ReactElement;
|
|
1527
1695
|
|
|
1528
1696
|
interface NodeConfigPanelProps {
|
|
1529
1697
|
/** Selected node to configure */
|
|
@@ -1541,7 +1709,7 @@ interface NodeConfigPanelProps {
|
|
|
1541
1709
|
/** Additional CSS class name */
|
|
1542
1710
|
className?: string;
|
|
1543
1711
|
/** Custom styles */
|
|
1544
|
-
style?:
|
|
1712
|
+
style?: react__default.CSSProperties;
|
|
1545
1713
|
}
|
|
1546
1714
|
/**
|
|
1547
1715
|
* NodeConfigPanel - Reusable configuration panel for editing node properties and telemetry
|
|
@@ -1557,7 +1725,7 @@ interface NodeConfigPanelProps {
|
|
|
1557
1725
|
* />
|
|
1558
1726
|
* ```
|
|
1559
1727
|
*/
|
|
1560
|
-
declare function NodeConfigPanel({ node, binding, onUpdateNode, onUpdateTelemetry, onAddTelemetry, onRemove, className, style, }: NodeConfigPanelProps):
|
|
1728
|
+
declare function NodeConfigPanel({ node, binding, onUpdateNode, onUpdateTelemetry, onAddTelemetry, onRemove, className, style, }: NodeConfigPanelProps): react__default.JSX.Element;
|
|
1561
1729
|
|
|
1562
1730
|
/**
|
|
1563
1731
|
* Validates a diagram object structure
|
|
@@ -1717,6 +1885,15 @@ interface ConfigParameter {
|
|
|
1717
1885
|
type: 'number' | 'string' | 'boolean' | 'select' | 'multiselect';
|
|
1718
1886
|
/** Current value */
|
|
1719
1887
|
value: any;
|
|
1888
|
+
/**
|
|
1889
|
+
* Maintenance force state for this parameter (#3607, R19). A field the
|
|
1890
|
+
* operator has not overridden falls back to control's live value (the
|
|
1891
|
+
* pilet's own DashboardScreen does this on every config refresh), so
|
|
1892
|
+
* `value` here can be a live, forced reading, not only a static setting.
|
|
1893
|
+
* Absent or `active: false` means `value` is a real reading or a real
|
|
1894
|
+
* saved setting. See `ForcedState`.
|
|
1895
|
+
*/
|
|
1896
|
+
forced?: ForcedState;
|
|
1720
1897
|
/** Default value */
|
|
1721
1898
|
defaultValue?: any;
|
|
1722
1899
|
/** Whether parameter is read-only */
|
|
@@ -1976,6 +2153,20 @@ interface DeviceConfigPanelProps {
|
|
|
1976
2153
|
onOpenControls?: () => void;
|
|
1977
2154
|
/** Show controls button in header */
|
|
1978
2155
|
showControlsButton?: boolean;
|
|
2156
|
+
/**
|
|
2157
|
+
* Render this panel's OWN result toast. Default true, so existing
|
|
2158
|
+
* consumers are unchanged.
|
|
2159
|
+
*
|
|
2160
|
+
* Set false when the host application already surfaces command and save
|
|
2161
|
+
* results through its own notification channel. Without it the operator
|
|
2162
|
+
* sees two notices for one action - this panel's optimistic "command
|
|
2163
|
+
* sent", in this panel's styling, followed by the host's message for the
|
|
2164
|
+
* real outcome - which reads as two different mechanisms.
|
|
2165
|
+
*
|
|
2166
|
+
* The result still lands in `binding.state`, so a host that opts out can
|
|
2167
|
+
* read it and render its own.
|
|
2168
|
+
*/
|
|
2169
|
+
showBuiltInToast?: boolean;
|
|
1979
2170
|
/** Embedded mode - uses static positioning for rendering in containers (default: false) */
|
|
1980
2171
|
embedded?: boolean;
|
|
1981
2172
|
}
|
|
@@ -1989,9 +2180,9 @@ interface DeviceConfigPanelProps {
|
|
|
1989
2180
|
* pays off when the host passes identity-stable `binding` and handler props;
|
|
1990
2181
|
* an unstable host degrades gracefully to the old behavior.
|
|
1991
2182
|
*/
|
|
1992
|
-
declare function DeviceConfigPanelImpl({ binding, onClose, onUndock, undockIcon, position, align, touchOptimized, compact, fontScale, maxHeight, maxWidth, toastDuration, onOpenControls, showControlsButton, embedded, }: DeviceConfigPanelProps):
|
|
2183
|
+
declare function DeviceConfigPanelImpl({ binding, onClose, onUndock, undockIcon, position, align, touchOptimized, compact, fontScale, maxHeight, maxWidth, toastDuration, onOpenControls, showControlsButton, showBuiltInToast, embedded, }: DeviceConfigPanelProps): react__default.JSX.Element | null;
|
|
1993
2184
|
/** Memo boundary - see DeviceConfigPanelImpl doc comment (kiosk heap-leak fix). */
|
|
1994
|
-
declare const DeviceConfigPanel:
|
|
2185
|
+
declare const DeviceConfigPanel: react__default.MemoExoticComponent<typeof DeviceConfigPanelImpl>;
|
|
1995
2186
|
|
|
1996
2187
|
/**
|
|
1997
2188
|
* Options for simulation behavior
|
|
@@ -2031,4 +2222,4 @@ interface SimulationOptions {
|
|
|
2031
2222
|
*/
|
|
2032
2223
|
declare function useSimulation(telemetry: TelemetryMap, updateTelemetryBatch: (updates: Array<any>) => void, options?: SimulationOptions): void;
|
|
2033
2224
|
|
|
2034
|
-
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, FixedSVGContainer, FooterPanel, 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 };
|
|
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 };
|