ps-helix 5.0.0 → 5.1.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ps-helix",
3
- "version": "5.0.0",
3
+ "version": "5.1.2",
4
4
  "description": "Helix Design System - A comprehensive Angular component library",
5
5
  "author": "Fabrice PEREZ - Product designer at PACK Solutions",
6
6
  "license": "MIT",
@@ -487,6 +487,10 @@ interface InfoCardData {
487
487
  valueWidth?: string;
488
488
  /** Optional custom CSS class for styling */
489
489
  customClass?: string;
490
+ /** Whether this row's value can be copied (overrides component-level copyable) */
491
+ copyable?: boolean;
492
+ /** Raw value to copy if different from the displayed value */
493
+ copyValue?: string;
490
494
  }
491
495
  /**
492
496
  * Configuration options for the info card
@@ -529,7 +533,7 @@ type InfoCardVariant = 'default' | 'elevated' | 'outlined';
529
533
  * ></psh-info-card>
530
534
  * ```
531
535
  */
532
- declare class PshInfoCardComponent implements AfterContentInit {
536
+ declare class PshInfoCardComponent implements AfterContentInit, OnDestroy {
533
537
  hasHeaderActions: _angular_core.WritableSignal<boolean>;
534
538
  /** Title displayed in the card header */
535
539
  title: _angular_core.InputSignal<string>;
@@ -557,12 +561,25 @@ declare class PshInfoCardComponent implements AfterContentInit {
557
561
  disabled: _angular_core.InputSignal<boolean>;
558
562
  /** Emitted when card is clicked */
559
563
  clicked: _angular_core.OutputEmitterRef<MouseEvent | KeyboardEvent>;
564
+ /** Whether to show copy buttons on rows (opt-in) */
565
+ copyable: _angular_core.InputSignal<boolean>;
566
+ /** Label prefix for the copy button aria-label */
567
+ copyButtonLabel: _angular_core.InputSignal<string>;
568
+ /** Text shown as feedback after successful copy */
569
+ copyFeedbackText: _angular_core.InputSignal<string>;
570
+ /** Emitted when a row value is successfully copied */
571
+ copied: _angular_core.OutputEmitterRef<InfoCardData>;
572
+ /** Emitted when a copy attempt fails */
573
+ copyFailed: _angular_core.OutputEmitterRef<InfoCardData>;
574
+ /** Tracks the row index currently showing success feedback */
575
+ copiedRowIndex: _angular_core.WritableSignal<number | null>;
560
576
  /** Whether to auto-enable full width buttons on mobile (default: true) */
561
577
  autoFullWidthOnMobile: _angular_core.InputSignal<boolean>;
562
578
  /** Signal to track if viewport is mobile */
563
579
  isMobile: _angular_core.WritableSignal<boolean>;
564
580
  private platformId;
565
581
  private resizeObserver?;
582
+ private feedbackTimeout?;
566
583
  /** Determines if the empty state should be shown */
567
584
  shouldShowEmptyState: _angular_core.Signal<boolean | undefined>;
568
585
  /** Returns the empty state message to display */
@@ -593,8 +610,11 @@ declare class PshInfoCardComponent implements AfterContentInit {
593
610
  * Handles keyboard navigation
594
611
  */
595
612
  handleKeydown(event: KeyboardEvent): void;
613
+ isRowCopyable(item: InfoCardData): boolean;
614
+ hasNonEmptyValue(item: InfoCardData): boolean;
615
+ copyRowValue(item: InfoCardData, index: number): void;
596
616
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PshInfoCardComponent, never>;
597
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PshInfoCardComponent, "psh-info-card", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "cssClass": { "alias": "cssClass"; "required": false; "isSignal": true; }; "customStyle": { "alias": "customStyle"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "autoFullWidthOnMobile": { "alias": "autoFullWidthOnMobile"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, never, ["[card-header-actions]", "[card-actions]"], true, never>;
617
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PshInfoCardComponent, "psh-info-card", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "cssClass": { "alias": "cssClass"; "required": false; "isSignal": true; }; "customStyle": { "alias": "customStyle"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "hoverable": { "alias": "hoverable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "copyable": { "alias": "copyable"; "required": false; "isSignal": true; }; "copyButtonLabel": { "alias": "copyButtonLabel"; "required": false; "isSignal": true; }; "copyFeedbackText": { "alias": "copyFeedbackText"; "required": false; "isSignal": true; }; "autoFullWidthOnMobile": { "alias": "autoFullWidthOnMobile"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; "copied": "copied"; "copyFailed": "copyFailed"; }, never, ["[card-header-actions]", "[card-actions]"], true, never>;
598
618
  }
599
619
 
600
620
  /**
@@ -1024,6 +1044,7 @@ declare class PshMenuComponent<T = string> {
1024
1044
  showTooltip: _angular_core.Signal<boolean>;
1025
1045
  constructor();
1026
1046
  private getState;
1047
+ handleItemClick(item: MenuItem<T>, event: Event, isChild: boolean): void;
1027
1048
  toggleItem(item: MenuItem<T>, event?: Event): void;
1028
1049
  toggleCollapse(): void;
1029
1050
  isExpanded(item: MenuItem<T>): boolean;