@procaaso/alphinity-ui-components 1.8.3 → 1.9.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/dist/index.d.cts CHANGED
@@ -1,17 +1,16 @@
1
- import * as React$1 from 'react';
2
- import React__default from 'react';
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 React__default.ButtonHTMLAttributes<HTMLButtonElement> {
9
+ interface ButtonProps extends react__default.ButtonHTMLAttributes<HTMLButtonElement> {
11
10
  variant?: 'primary' | 'secondary';
12
- children: React__default.ReactNode;
11
+ children: react__default.ReactNode;
13
12
  }
14
- declare const Button: React__default.FC<ButtonProps>;
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<React__default.HTMLAttributes<HTMLDivElement>, 'onChange'> {
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,7 +42,7 @@ 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: React__default.FC<SelectorProps>;
45
+ declare const Selector: react__default.FC<SelectorProps>;
47
46
 
48
47
  /**
49
48
  * Status levels for telemetry values
@@ -189,7 +188,7 @@ interface ModeConfig {
189
188
  /** Precision for second setpoint */
190
189
  secondPrecision?: number;
191
190
  }
192
- interface ControlPanelProps extends React__default.HTMLAttributes<HTMLDivElement> {
191
+ interface ControlPanelProps extends react__default.HTMLAttributes<HTMLDivElement> {
193
192
  /** Panel title/identifier */
194
193
  title: string;
195
194
  /** Currently selected mode */
@@ -250,9 +249,9 @@ interface ControlPanelProps extends React__default.HTMLAttributes<HTMLDivElement
250
249
  /** Custom stop button text */
251
250
  stopButtonText?: string;
252
251
  }
253
- declare const ControlPanel: React__default.FC<ControlPanelProps>;
252
+ declare const ControlPanel: react__default.FC<ControlPanelProps>;
254
253
 
255
- interface StatusIndicatorProps extends React__default.HTMLAttributes<HTMLDivElement> {
254
+ interface StatusIndicatorProps extends react__default.HTMLAttributes<HTMLDivElement> {
256
255
  /** Status state determining color and behavior */
257
256
  status: 'off' | 'normal' | 'alarm' | 'warning' | 'active' | 'fault';
258
257
  /** Size of the indicator */
@@ -268,9 +267,9 @@ interface StatusIndicatorProps extends React__default.HTMLAttributes<HTMLDivElem
268
267
  /** Whether the indicator should have a 3D LED effect */
269
268
  led?: boolean;
270
269
  }
271
- declare const StatusIndicator: React__default.FC<StatusIndicatorProps>;
270
+ declare const StatusIndicator: react__default.FC<StatusIndicatorProps>;
272
271
 
273
- interface ValueEntryProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
272
+ interface ValueEntryProps extends Omit<react__default.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
274
273
  /** Current value */
275
274
  value: number | string;
276
275
  /** Callback when value changes */
@@ -292,9 +291,9 @@ interface ValueEntryProps extends Omit<React__default.InputHTMLAttributes<HTMLIn
292
291
  /** Whether the input is read-only */
293
292
  readOnly?: boolean;
294
293
  }
295
- declare const ValueEntry: React__default.FC<ValueEntryProps>;
294
+ declare const ValueEntry: react__default.FC<ValueEntryProps>;
296
295
 
297
- interface LegacyValueEntryProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
296
+ interface LegacyValueEntryProps extends Omit<react__default.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
298
297
  /** Current value */
299
298
  value: number | string;
300
299
  /** Callback when value changes */
@@ -316,7 +315,7 @@ interface LegacyValueEntryProps extends Omit<React__default.InputHTMLAttributes<
316
315
  /** Whether the input is read-only */
317
316
  readOnly?: boolean;
318
317
  }
319
- declare const LegacyValueEntry: React__default.FC<LegacyValueEntryProps>;
318
+ declare const LegacyValueEntry: react__default.FC<LegacyValueEntryProps>;
320
319
 
321
320
  interface NodeControlConfig {
322
321
  /** Node ID */
@@ -354,7 +353,7 @@ interface NodeControlConfig {
354
353
  /** Whether setpoint is read-only */
355
354
  readOnly?: boolean;
356
355
  }
357
- interface NodeControlsPanelProps extends React__default.HTMLAttributes<HTMLDivElement> {
356
+ interface NodeControlsPanelProps extends react__default.HTMLAttributes<HTMLDivElement> {
358
357
  /** Control configuration for the selected node */
359
358
  config: NodeControlConfig | null;
360
359
  /** Callback to close the panel */
@@ -373,7 +372,7 @@ interface NodeControlsPanelProps extends React__default.HTMLAttributes<HTMLDivEl
373
372
  * - Clear visual feedback
374
373
  * - Bottom or side slide-in animation
375
374
  */
376
- declare const NodeControlsPanel: React__default.FC<NodeControlsPanelProps>;
375
+ declare const NodeControlsPanel: react__default.FC<NodeControlsPanelProps>;
377
376
 
378
377
  /**
379
378
  * A custom action button rendered in the device control panel (e.g. Tare, Zero).
@@ -659,6 +658,20 @@ interface DeviceControlPanelProps {
659
658
  undockIcon?: string;
660
659
  /** Style for mode selector: 'buttons' (horizontal scroll), 'dropdown' (select), or 'modal' (click to open modal) */
661
660
  modeSelectionStyle?: 'buttons' | 'dropdown' | 'modal';
661
+ /**
662
+ * Render this panel's OWN result toast. Default true, so existing
663
+ * consumers are unchanged.
664
+ *
665
+ * Set false when the host application already surfaces command and save
666
+ * results through its own notification channel. Without it the operator
667
+ * sees two notices for one action - this panel's optimistic "command
668
+ * sent", in this panel's styling, followed by the host's message for the
669
+ * real outcome - which reads as two different mechanisms.
670
+ *
671
+ * The result still lands in `binding.state`, so a host that opts out can
672
+ * read it and render its own.
673
+ */
674
+ showBuiltInToast?: boolean;
662
675
  /** Embedded mode - uses static positioning for rendering in containers (default: false) */
663
676
  embedded?: boolean;
664
677
  }
@@ -669,9 +682,9 @@ interface DeviceControlPanelProps {
669
682
  * its live values move, so the memo bails only on genuinely idle ticks - the
670
683
  * win is proportional to how often values are flat at display precision.
671
684
  */
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): react_jsx_runtime.JSX.Element | null;
685
+ 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
686
  /** Memo boundary - see DeviceControlPanelImpl doc comment (kiosk heap-leak fix). */
674
- declare const DeviceControlPanel: React__default.MemoExoticComponent<typeof DeviceControlPanelImpl>;
687
+ declare const DeviceControlPanel: react__default.MemoExoticComponent<typeof DeviceControlPanelImpl>;
675
688
 
676
689
  interface NumpadDialogProps {
677
690
  /** Whether the dialog is open */
@@ -720,7 +733,7 @@ interface NumpadDialogProps {
720
733
  * out-of-range values are rejected (never silently clamped). The field pre-fills
721
734
  * with the current value so an operator never blind-zeroes a live setpoint.
722
735
  */
723
- declare const NumpadDialog: React__default.FC<NumpadDialogProps>;
736
+ declare const NumpadDialog: react__default.FC<NumpadDialogProps>;
724
737
 
725
738
  type DisplayMode = 'standard' | 'dashboard';
726
739
  interface FullscreenContainerProps {
@@ -731,9 +744,9 @@ type OverlayTheme = 'tank' | 'pressure' | 'vessel' | 'flow';
731
744
  interface SVGLockedOverlayProps {
732
745
  svgX: number;
733
746
  svgY: number;
734
- children: React__default.ReactNode;
747
+ children: react__default.ReactNode;
735
748
  theme?: OverlayTheme;
736
- style?: React__default.CSSProperties;
749
+ style?: react__default.CSSProperties;
737
750
  className?: string;
738
751
  onClick?: () => void;
739
752
  containerSelector?: string;
@@ -778,20 +791,20 @@ interface EquipmentIndicatorProps {
778
791
  color: string;
779
792
  label: string;
780
793
  size?: number;
781
- style?: React__default.CSSProperties;
794
+ style?: react__default.CSSProperties;
782
795
  className?: string;
783
796
  }
784
797
  interface FullscreenWorkspaceTab {
785
798
  label: string;
786
799
  value: string;
787
- content: React__default.ReactNode;
788
- }
789
- interface FullscreenWorkspaceProps extends React__default.HTMLAttributes<HTMLDivElement> {
790
- svgContent: React__default.ReactNode;
791
- overlays?: React__default.ReactNode;
792
- leftPanel?: React__default.ReactNode;
793
- rightPanel?: React__default.ReactNode;
794
- footer?: React__default.ReactNode;
800
+ content: react__default.ReactNode;
801
+ }
802
+ interface FullscreenWorkspaceProps extends react__default.HTMLAttributes<HTMLDivElement> {
803
+ svgContent: react__default.ReactNode;
804
+ overlays?: react__default.ReactNode;
805
+ leftPanel?: react__default.ReactNode;
806
+ rightPanel?: react__default.ReactNode;
807
+ footer?: react__default.ReactNode;
795
808
  tabs?: FullscreenWorkspaceTab[];
796
809
  activeTab?: string;
797
810
  onTabChange?: (value: string) => void;
@@ -812,60 +825,60 @@ interface FullscreenWorkspaceProps extends React__default.HTMLAttributes<HTMLDiv
812
825
  zoomDisabled?: boolean;
813
826
  }
814
827
 
815
- declare const FullscreenContainer: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
828
+ 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
829
  theme?: _emotion_react.Theme;
817
830
  } & FullscreenContainerProps, {}, {}>;
818
- declare const LeftPanel: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
831
+ 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
832
  theme?: _emotion_react.Theme;
820
833
  } & {
821
834
  collapsed: boolean;
822
835
  }, {}, {}>;
823
- declare const RightPanel: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
836
+ 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
837
  theme?: _emotion_react.Theme;
825
838
  } & {
826
839
  collapsed: boolean;
827
840
  }, {}, {}>;
828
- declare const SVGArea: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
841
+ 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
842
  theme?: _emotion_react.Theme;
830
843
  }, {}, {}>;
831
- declare const LeftToggleButton: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<React$1.DetailedHTMLProps<React$1.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"> & {
844
+ 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
845
  theme?: _emotion_react.Theme;
833
846
  } & {
834
847
  collapsed: boolean;
835
848
  }, {}, {}>;
836
- declare const RightToggleButton: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<React$1.DetailedHTMLProps<React$1.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"> & {
849
+ 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
850
  theme?: _emotion_react.Theme;
838
851
  } & {
839
852
  collapsed: boolean;
840
853
  }, {}, {}>;
841
- declare const DisplayModeToggle: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<React$1.DetailedHTMLProps<React$1.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"> & {
854
+ 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
855
  theme?: _emotion_react.Theme;
843
856
  } & {
844
857
  mode: DisplayMode;
845
858
  }, {}, {}>;
846
- declare const ZoomControls: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
859
+ 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
860
  theme?: _emotion_react.Theme;
848
861
  }, {}, {}>;
849
- declare const ZoomButton: _emotion_styled.StyledComponent<_mui_material.IconButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, "classes"> & _mui_material_OverridableComponent.CommonProps & Omit<React$1.DetailedHTMLProps<React$1.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"> & {
862
+ 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
863
  theme?: _emotion_react.Theme;
851
864
  }, {}, {}>;
852
- declare const FooterPanel: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
865
+ 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
866
  theme?: _emotion_react.Theme;
854
867
  }, {}, {}>;
855
- declare const PanelTabs: _emotion_styled.StyledComponent<_mui_material.TabsOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<React$1.DetailedHTMLProps<React$1.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"> & {
868
+ 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
869
  theme?: _emotion_react.Theme;
857
870
  }, {}, {}>;
858
- declare const PanelContent: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
871
+ 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
872
  theme?: _emotion_react.Theme;
860
873
  }, {}, {}>;
861
874
  declare const FixedSVGContainer: _emotion_styled.StyledComponent<{
862
875
  theme?: _emotion_react.Theme;
863
876
  as?: React.ElementType;
864
- }, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
877
+ }, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
865
878
  declare const ScrollableSVGWrapper: _emotion_styled.StyledComponent<{
866
879
  theme?: _emotion_react.Theme;
867
880
  as?: React.ElementType;
868
- }, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
881
+ }, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
869
882
 
870
883
  declare const baseOverlayStyles: {
871
884
  readonly tank: {
@@ -918,8 +931,8 @@ declare const baseOverlayStyles: {
918
931
  };
919
932
  };
920
933
  declare const overlayStyles: Record<OverlayTheme, typeof baseOverlayStyles[OverlayTheme]>;
921
- declare const SVGLockedOverlay: ({ svgX, svgY, children, theme, style, className, onClick, containerSelector, }: SVGLockedOverlayProps) => react_jsx_runtime.JSX.Element;
922
- declare const DashboardCard: _emotion_styled.StyledComponent<_mui_system.BoxOwnProps<_mui_material.Theme> & Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof _mui_system.BoxOwnProps<_mui_material.Theme>> & {
934
+ declare const SVGLockedOverlay: ({ svgX, svgY, children, theme, style, className, onClick, containerSelector, }: SVGLockedOverlayProps) => react.JSX.Element;
935
+ 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
936
  theme?: _emotion_react.Theme;
924
937
  } & {
925
938
  svgX: number;
@@ -931,23 +944,23 @@ declare const CardHeader: _emotion_styled.StyledComponent<{
931
944
  as?: React.ElementType;
932
945
  } & {
933
946
  color?: string;
934
- }, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
947
+ }, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
935
948
  declare const CardValue: _emotion_styled.StyledComponent<{
936
949
  theme?: _emotion_react.Theme;
937
950
  as?: React.ElementType;
938
- }, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
951
+ }, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
939
952
  declare const CardUnit: _emotion_styled.StyledComponent<{
940
953
  theme?: _emotion_react.Theme;
941
954
  as?: React.ElementType;
942
- }, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
955
+ }, react.DetailedHTMLProps<react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
943
956
 
944
- declare const TrendLine: ({ values, width, height, color, strokeWidth, backgroundColor, }: TrendLineProps) => react_jsx_runtime.JSX.Element;
945
- declare const CircularGauge: ({ value, max, unit, label, size, color, }: CircularGaugeProps) => react_jsx_runtime.JSX.Element;
946
- declare const Sparkline: ({ data, width, height, color }: SparklineProps) => react_jsx_runtime.JSX.Element | null;
947
- declare const EquipmentIndicatorWithSparkline: ({ svgX, svgY, color, label, size, sparklineData, sparklineOffset, }: EquipmentIndicatorWithSparklineProps) => react_jsx_runtime.JSX.Element;
948
- declare const EquipmentIndicator: ({ svgX, svgY, color, label, size, style, className, }: EquipmentIndicatorProps) => react_jsx_runtime.JSX.Element;
957
+ declare const TrendLine: ({ values, width, height, color, strokeWidth, backgroundColor, }: TrendLineProps) => react.JSX.Element;
958
+ declare const CircularGauge: ({ value, max, unit, label, size, color, }: CircularGaugeProps) => react.JSX.Element;
959
+ declare const Sparkline: ({ data, width, height, color }: SparklineProps) => react.JSX.Element | null;
960
+ declare const EquipmentIndicatorWithSparkline: ({ svgX, svgY, color, label, size, sparklineData, sparklineOffset, }: EquipmentIndicatorWithSparklineProps) => react.JSX.Element;
961
+ declare const EquipmentIndicator: ({ svgX, svgY, color, label, size, style, className, }: EquipmentIndicatorProps) => react.JSX.Element;
949
962
 
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): React__default.ReactElement;
963
+ 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
964
 
952
965
  type Theme = 'modern' | 'hmi';
953
966
  interface ThemeContextType {
@@ -957,17 +970,17 @@ interface ThemeContextType {
957
970
  }
958
971
  declare const useTheme: () => ThemeContextType;
959
972
  interface ThemeProviderProps {
960
- children: React__default.ReactNode;
973
+ children: react__default.ReactNode;
961
974
  }
962
- declare const ThemeProvider: React__default.FC<ThemeProviderProps>;
975
+ declare const ThemeProvider: react__default.FC<ThemeProviderProps>;
963
976
 
964
- interface ThemeToggleProps extends React__default.HTMLAttributes<HTMLDivElement> {
977
+ interface ThemeToggleProps extends react__default.HTMLAttributes<HTMLDivElement> {
965
978
  /** Size of the toggle */
966
979
  size?: 'small' | 'medium' | 'large';
967
980
  /** Position of the toggle */
968
981
  position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'inline';
969
982
  }
970
- declare const ThemeToggle: React__default.FC<ThemeToggleProps>;
983
+ declare const ThemeToggle: react__default.FC<ThemeToggleProps>;
971
984
 
972
985
  /**
973
986
  * ISA-101 High Performance HMI — Unified Status Color System
@@ -1436,13 +1449,13 @@ interface PIDCanvasFeatures {
1436
1449
  /** Background color for canvas (default: '#ffffff') */
1437
1450
  backgroundColor?: string;
1438
1451
  }
1439
- interface PIDCanvasProps extends React__default.HTMLAttributes<HTMLDivElement> {
1452
+ interface PIDCanvasProps extends react__default.HTMLAttributes<HTMLDivElement> {
1440
1453
  /** The diagram to render */
1441
1454
  diagram: Diagram;
1442
1455
  /** Optional className for the container */
1443
1456
  className?: string;
1444
1457
  /** Optional inline styles for the container */
1445
- style?: React__default.CSSProperties;
1458
+ style?: react__default.CSSProperties;
1446
1459
  /** Enable interactive features (pan, zoom, selection, telemetry, dragNodes) */
1447
1460
  features?: PIDCanvasFeatures;
1448
1461
  /** Callback when selection changes */
@@ -1498,20 +1511,20 @@ interface PIDCanvasControls {
1498
1511
  *
1499
1512
  * Future: Editing tools, symbol library UI
1500
1513
  */
1501
- 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;
1514
+ 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
1515
  /**
1503
1516
  * Memo boundary - see PIDCanvasImpl doc comment (renderer-OOM fix). Shallow
1504
1517
  * compare: `diagram`, `telemetry`, `features`, `style`, `statusColorMap`, and
1505
1518
  * every callback are compared by identity; hosts that keep them stable skip
1506
1519
  * the full-canvas re-render entirely when unrelated screen state changes.
1507
1520
  */
1508
- declare const PIDCanvas: React__default.MemoExoticComponent<typeof PIDCanvasImpl>;
1521
+ declare const PIDCanvas: react__default.MemoExoticComponent<typeof PIDCanvasImpl>;
1509
1522
 
1510
1523
  interface SymbolLibraryProps {
1511
1524
  /** Optional className for styling */
1512
1525
  className?: string;
1513
1526
  /** Callback when a symbol drag starts */
1514
- onSymbolDragStart?: (symbolId: string, event: React__default.DragEvent) => void;
1527
+ onSymbolDragStart?: (symbolId: string, event: react__default.DragEvent) => void;
1515
1528
  /** Show category filter */
1516
1529
  showCategories?: boolean;
1517
1530
  /** Custom symbol categories */
@@ -1523,7 +1536,7 @@ interface SymbolLibraryProps {
1523
1536
  * Displays available symbols organized by category
1524
1537
  * Supports drag-and-drop to add new nodes to diagrams
1525
1538
  */
1526
- declare function SymbolLibrary({ className, onSymbolDragStart, showCategories, categories, }: SymbolLibraryProps): React__default.ReactElement;
1539
+ declare function SymbolLibrary({ className, onSymbolDragStart, showCategories, categories, }: SymbolLibraryProps): react__default.ReactElement;
1527
1540
 
1528
1541
  interface NodeConfigPanelProps {
1529
1542
  /** Selected node to configure */
@@ -1541,7 +1554,7 @@ interface NodeConfigPanelProps {
1541
1554
  /** Additional CSS class name */
1542
1555
  className?: string;
1543
1556
  /** Custom styles */
1544
- style?: React__default.CSSProperties;
1557
+ style?: react__default.CSSProperties;
1545
1558
  }
1546
1559
  /**
1547
1560
  * NodeConfigPanel - Reusable configuration panel for editing node properties and telemetry
@@ -1557,7 +1570,7 @@ interface NodeConfigPanelProps {
1557
1570
  * />
1558
1571
  * ```
1559
1572
  */
1560
- declare function NodeConfigPanel({ node, binding, onUpdateNode, onUpdateTelemetry, onAddTelemetry, onRemove, className, style, }: NodeConfigPanelProps): react_jsx_runtime.JSX.Element;
1573
+ declare function NodeConfigPanel({ node, binding, onUpdateNode, onUpdateTelemetry, onAddTelemetry, onRemove, className, style, }: NodeConfigPanelProps): react__default.JSX.Element;
1561
1574
 
1562
1575
  /**
1563
1576
  * Validates a diagram object structure
@@ -1976,6 +1989,20 @@ interface DeviceConfigPanelProps {
1976
1989
  onOpenControls?: () => void;
1977
1990
  /** Show controls button in header */
1978
1991
  showControlsButton?: boolean;
1992
+ /**
1993
+ * Render this panel's OWN result toast. Default true, so existing
1994
+ * consumers are unchanged.
1995
+ *
1996
+ * Set false when the host application already surfaces command and save
1997
+ * results through its own notification channel. Without it the operator
1998
+ * sees two notices for one action - this panel's optimistic "command
1999
+ * sent", in this panel's styling, followed by the host's message for the
2000
+ * real outcome - which reads as two different mechanisms.
2001
+ *
2002
+ * The result still lands in `binding.state`, so a host that opts out can
2003
+ * read it and render its own.
2004
+ */
2005
+ showBuiltInToast?: boolean;
1979
2006
  /** Embedded mode - uses static positioning for rendering in containers (default: false) */
1980
2007
  embedded?: boolean;
1981
2008
  }
@@ -1989,9 +2016,9 @@ interface DeviceConfigPanelProps {
1989
2016
  * pays off when the host passes identity-stable `binding` and handler props;
1990
2017
  * an unstable host degrades gracefully to the old behavior.
1991
2018
  */
1992
- declare function DeviceConfigPanelImpl({ binding, onClose, onUndock, undockIcon, position, align, touchOptimized, compact, fontScale, maxHeight, maxWidth, toastDuration, onOpenControls, showControlsButton, embedded, }: DeviceConfigPanelProps): react_jsx_runtime.JSX.Element | null;
2019
+ 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
2020
  /** Memo boundary - see DeviceConfigPanelImpl doc comment (kiosk heap-leak fix). */
1994
- declare const DeviceConfigPanel: React__default.MemoExoticComponent<typeof DeviceConfigPanelImpl>;
2021
+ declare const DeviceConfigPanel: react__default.MemoExoticComponent<typeof DeviceConfigPanelImpl>;
1995
2022
 
1996
2023
  /**
1997
2024
  * Options for simulation behavior