ps-helix 6.0.0 → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -6
- package/fesm2022/ps-helix.mjs +137 -24
- package/fesm2022/ps-helix.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/styles/tokens/effects.tokens.css +39 -38
- package/types/ps-helix.d.ts +58 -13
package/package.json
CHANGED
|
@@ -1,38 +1,39 @@
|
|
|
1
|
-
/* Design Tokens - Visual Effects */
|
|
2
|
-
|
|
3
|
-
:root {
|
|
4
|
-
/* Border Radii - Semantic aliases for sizing.tokens.css radius scale */
|
|
5
|
-
--border-radius: var(--radius-lg); /* 0.5rem / 8px - Default radius */
|
|
6
|
-
--border-radius-lg: var(--radius-xl); /* 0.75rem / 12px - Large radius */
|
|
7
|
-
--border-radius-full: var(--radius-full); /* 9999px - Full circle */
|
|
8
|
-
|
|
9
|
-
/* Shadows */
|
|
10
|
-
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
11
|
-
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
12
|
-
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
|
13
|
-
|
|
14
|
-
/* Z-Index System */
|
|
15
|
-
--z-index-navigation: 50;
|
|
16
|
-
--z-index-dropdown: 100;
|
|
17
|
-
--z-index-tooltip: 200;
|
|
18
|
-
--z-index-modal-backdrop: 999;
|
|
19
|
-
--z-index-modal: 1000;
|
|
20
|
-
--z-index-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
--focus-outline-
|
|
25
|
-
--focus-outline-
|
|
26
|
-
--focus-outline-
|
|
27
|
-
--focus-
|
|
28
|
-
--focus-ring-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
--focus-ring-
|
|
33
|
-
--focus-ring-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
--opacity-
|
|
38
|
-
|
|
1
|
+
/* Design Tokens - Visual Effects */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
/* Border Radii - Semantic aliases for sizing.tokens.css radius scale */
|
|
5
|
+
--border-radius: var(--radius-lg); /* 0.5rem / 8px - Default radius */
|
|
6
|
+
--border-radius-lg: var(--radius-xl); /* 0.75rem / 12px - Large radius */
|
|
7
|
+
--border-radius-full: var(--radius-full); /* 9999px - Full circle */
|
|
8
|
+
|
|
9
|
+
/* Shadows */
|
|
10
|
+
--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
11
|
+
--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
|
12
|
+
--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
|
|
13
|
+
|
|
14
|
+
/* Z-Index System */
|
|
15
|
+
--z-index-navigation: 50;
|
|
16
|
+
--z-index-dropdown: 100;
|
|
17
|
+
--z-index-tooltip: 200;
|
|
18
|
+
--z-index-modal-backdrop: 999;
|
|
19
|
+
--z-index-modal: 1000;
|
|
20
|
+
--z-index-overlay: 1100; /* body-teleported popovers (select/dropdown/menu) above modals */
|
|
21
|
+
--z-index-toast: 9999;
|
|
22
|
+
|
|
23
|
+
/* Focus System */
|
|
24
|
+
--focus-outline-width: 2px;
|
|
25
|
+
--focus-outline-style: solid;
|
|
26
|
+
--focus-outline-color: var(--primary-color);
|
|
27
|
+
--focus-outline-offset: 2px;
|
|
28
|
+
--focus-ring-width: 3px;
|
|
29
|
+
--focus-ring-color: rgba(var(--primary-color-rgb), 0.2);
|
|
30
|
+
|
|
31
|
+
/* Focus variants */
|
|
32
|
+
--focus-ring-error: rgba(var(--danger-color-rgb), 0.2);
|
|
33
|
+
--focus-ring-success: rgba(var(--success-color-rgb), 0.2);
|
|
34
|
+
--focus-ring-warning: rgba(var(--warning-color-rgb), 0.2);
|
|
35
|
+
|
|
36
|
+
/* Opacity System */
|
|
37
|
+
--opacity-disabled: 0.6;
|
|
38
|
+
--opacity-loading: 0.7;
|
|
39
|
+
}
|
package/types/ps-helix.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { AfterContentChecked, OnDestroy, AfterContentInit, InjectionToken, AfterViewInit, EventEmitter, TemplateRef, Type } from '@angular/core';
|
|
2
|
+
import { AfterContentChecked, OnDestroy, AfterContentInit, InjectionToken, AfterViewInit, EventEmitter, TemplateRef, Type, ViewContainerRef } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor } from '@angular/forms';
|
|
4
4
|
import { FormCheckboxControl, FormValueControl } from '@angular/forms/signals';
|
|
5
5
|
import * as ps_helix from 'ps-helix';
|
|
@@ -123,7 +123,7 @@ declare class PshAvatarComponent {
|
|
|
123
123
|
hasIcon: _angular_core.Signal<boolean>;
|
|
124
124
|
computedAriaLabel: _angular_core.Signal<string>;
|
|
125
125
|
statusColor: _angular_core.Signal<string | undefined>;
|
|
126
|
-
state: _angular_core.Signal<"default"
|
|
126
|
+
state: _angular_core.Signal<AvatarStatus | "default">;
|
|
127
127
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PshAvatarComponent, never>;
|
|
128
128
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PshAvatarComponent, "psh-avatar", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "initials": { "alias": "initials"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "status": { "alias": "status"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "size": "sizeChange"; "shape": "shapeChange"; "src": "srcChange"; "alt": "altChange"; }, never, never, true, never>;
|
|
129
129
|
}
|
|
@@ -288,7 +288,7 @@ declare class PshCardComponent implements OnDestroy {
|
|
|
288
288
|
/** État désactivé - réduit l'opacité */
|
|
289
289
|
disabled: _angular_core.InputSignal<boolean>;
|
|
290
290
|
/** Émis lors du clic sur la carte (si interactive) */
|
|
291
|
-
clicked: _angular_core.OutputEmitterRef<
|
|
291
|
+
clicked: _angular_core.OutputEmitterRef<MouseEvent | KeyboardEvent>;
|
|
292
292
|
/** Classes CSS calculées selon les propriétés */
|
|
293
293
|
computedClasses: _angular_core.Signal<string>;
|
|
294
294
|
/** Styles calculés */
|
|
@@ -356,7 +356,7 @@ declare class PshStatCardComponent {
|
|
|
356
356
|
/** Active la direction row pour le card-body (icône et contenu côte à côte en flex-row) */
|
|
357
357
|
rowDirection: _angular_core.InputSignal<boolean>;
|
|
358
358
|
/** Émis lors du clic sur la carte */
|
|
359
|
-
clicked: _angular_core.OutputEmitterRef<
|
|
359
|
+
clicked: _angular_core.OutputEmitterRef<MouseEvent | KeyboardEvent>;
|
|
360
360
|
private computedValue;
|
|
361
361
|
private computedDescription;
|
|
362
362
|
private computedIcon;
|
|
@@ -450,7 +450,7 @@ declare class PshHorizontalCardComponent {
|
|
|
450
450
|
/** Hauteur du contenu latéral sur mobile (utiliser les tokens de sizing) */
|
|
451
451
|
mobileHeight: _angular_core.InputSignal<string>;
|
|
452
452
|
/** Émis lors du clic sur la carte */
|
|
453
|
-
clicked: _angular_core.OutputEmitterRef<
|
|
453
|
+
clicked: _angular_core.OutputEmitterRef<MouseEvent | KeyboardEvent>;
|
|
454
454
|
/** Classes CSS calculées selon les propriétés */
|
|
455
455
|
computedClasses: _angular_core.Signal<string>;
|
|
456
456
|
/** Styles calculés */
|
|
@@ -560,7 +560,7 @@ declare class PshInfoCardComponent implements AfterContentInit, OnDestroy {
|
|
|
560
560
|
/** Whether the card is disabled */
|
|
561
561
|
disabled: _angular_core.InputSignal<boolean>;
|
|
562
562
|
/** Emitted when card is clicked */
|
|
563
|
-
clicked: _angular_core.OutputEmitterRef<
|
|
563
|
+
clicked: _angular_core.OutputEmitterRef<MouseEvent | KeyboardEvent>;
|
|
564
564
|
/** Whether to show copy buttons on rows (opt-in) */
|
|
565
565
|
copyable: _angular_core.InputSignal<boolean>;
|
|
566
566
|
/** Label prefix for the copy button aria-label */
|
|
@@ -1006,7 +1006,7 @@ declare class PshTextareaComponent implements ControlValueAccessor, FormValueCon
|
|
|
1006
1006
|
hasError: _angular_core.Signal<boolean>;
|
|
1007
1007
|
computedAriaLabel: _angular_core.Signal<string | null>;
|
|
1008
1008
|
describedBy: _angular_core.Signal<string | null>;
|
|
1009
|
-
state: _angular_core.Signal<"
|
|
1009
|
+
state: _angular_core.Signal<"success" | "default" | "disabled" | "error" | "readonly" | "focused">;
|
|
1010
1010
|
characterCountLabel: "caractères";
|
|
1011
1011
|
constructor();
|
|
1012
1012
|
private onChange;
|
|
@@ -1649,7 +1649,11 @@ declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, F
|
|
|
1649
1649
|
private readonly elementRef;
|
|
1650
1650
|
private readonly destroyRef;
|
|
1651
1651
|
private readonly overlayPosition;
|
|
1652
|
-
private readonly
|
|
1652
|
+
private readonly portal;
|
|
1653
|
+
private readonly viewContainer;
|
|
1654
|
+
private readonly panelTpl;
|
|
1655
|
+
private portalRef;
|
|
1656
|
+
private readonly repositionHandler;
|
|
1653
1657
|
protected readonly resolvedSide: _angular_core.WritableSignal<"top" | "bottom">;
|
|
1654
1658
|
protected readonly selectId: string;
|
|
1655
1659
|
readonly value: _angular_core.ModelSignal<T | T[] | null>;
|
|
@@ -1684,7 +1688,7 @@ declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, F
|
|
|
1684
1688
|
scrollEnd: _angular_core.OutputEmitterRef<void>;
|
|
1685
1689
|
isOpen: _angular_core.Signal<boolean>;
|
|
1686
1690
|
searchTerm: _angular_core.Signal<string>;
|
|
1687
|
-
state: _angular_core.Signal<"
|
|
1691
|
+
state: _angular_core.Signal<"success" | "default" | "disabled" | "error">;
|
|
1688
1692
|
computedAriaLabel: _angular_core.Signal<string>;
|
|
1689
1693
|
describedBy: _angular_core.Signal<"error-message" | "success-message" | "hint-message" | null>;
|
|
1690
1694
|
flatFilteredOptions: _angular_core.Signal<FlatOption<T>[]>;
|
|
@@ -1692,6 +1696,9 @@ declare class PshSelectComponent<T = unknown> implements ControlValueAccessor, F
|
|
|
1692
1696
|
selectedLabel: _angular_core.Signal<string>;
|
|
1693
1697
|
filteredOptions: _angular_core.Signal<(SelectOption<T> | SelectOptionGroup<T>)[]>;
|
|
1694
1698
|
constructor();
|
|
1699
|
+
/** Teleports the options panel to the body-level overlay layer and positions it. */
|
|
1700
|
+
private openPanel;
|
|
1701
|
+
private closePanel;
|
|
1695
1702
|
private reposition;
|
|
1696
1703
|
private onChange;
|
|
1697
1704
|
private onTouched;
|
|
@@ -2254,7 +2261,7 @@ declare const TABLE_CONFIG: InjectionToken<Partial<TableConfig>>;
|
|
|
2254
2261
|
declare class PshTableComponent {
|
|
2255
2262
|
private config;
|
|
2256
2263
|
variant: _angular_core.InputSignal<"default" | "outline">;
|
|
2257
|
-
size: _angular_core.InputSignal<"
|
|
2264
|
+
size: _angular_core.InputSignal<"small" | "medium" | "large">;
|
|
2258
2265
|
striped: _angular_core.InputSignal<boolean>;
|
|
2259
2266
|
hoverable: _angular_core.InputSignal<boolean>;
|
|
2260
2267
|
bordered: _angular_core.InputSignal<boolean>;
|
|
@@ -2266,7 +2273,7 @@ declare class PshTableComponent {
|
|
|
2266
2273
|
emptyMessage: _angular_core.InputSignal<string>;
|
|
2267
2274
|
noResultsMessage: _angular_core.InputSignal<string>;
|
|
2268
2275
|
globalSearchPlaceholder: _angular_core.InputSignal<string>;
|
|
2269
|
-
tableLayout: _angular_core.InputSignal<"
|
|
2276
|
+
tableLayout: _angular_core.InputSignal<"fixed" | "auto">;
|
|
2270
2277
|
truncateText: _angular_core.InputSignal<boolean>;
|
|
2271
2278
|
expandable: _angular_core.InputSignal<boolean>;
|
|
2272
2279
|
singleExpand: _angular_core.InputSignal<boolean>;
|
|
@@ -2851,5 +2858,43 @@ declare class PshOverlayService {
|
|
|
2851
2858
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PshOverlayService>;
|
|
2852
2859
|
}
|
|
2853
2860
|
|
|
2854
|
-
|
|
2855
|
-
|
|
2861
|
+
/** A handle to a teleported overlay panel. */
|
|
2862
|
+
interface PshPortalRef {
|
|
2863
|
+
/** The panel's root element — use it to position and to scope click-outside. */
|
|
2864
|
+
readonly panel: HTMLElement;
|
|
2865
|
+
/**
|
|
2866
|
+
* Positions the panel as `fixed` relative to `anchor`'s viewport rect, on the
|
|
2867
|
+
* given side with `gap` px of spacing. Bounds `max-height` to the available
|
|
2868
|
+
* viewport space so the panel never overflows the screen.
|
|
2869
|
+
*/
|
|
2870
|
+
position(anchor: HTMLElement, side: 'top' | 'bottom', gap: number): void;
|
|
2871
|
+
/** Destroys the embedded view and removes the panel from the overlay layer. */
|
|
2872
|
+
detach(): void;
|
|
2873
|
+
}
|
|
2874
|
+
/**
|
|
2875
|
+
* Teleports a `TemplateRef` into a single body-level overlay layer so popover
|
|
2876
|
+
* panels (select / dropdown / menu…) escape any ancestor `overflow`, `transform`
|
|
2877
|
+
* or stacking context and can layer above modals.
|
|
2878
|
+
*
|
|
2879
|
+
* A lightweight, CDK-free "manual portal": the embedded view is created from the
|
|
2880
|
+
* consumer's `ViewContainerRef` (so it stays in that component's change-detection
|
|
2881
|
+
* tree and keeps its bindings reactive), then its root nodes are moved into the
|
|
2882
|
+
* shared `.psh-overlay-layer`. The layer is `position: fixed; inset: 0;
|
|
2883
|
+
* pointer-events: none` at `z-index: var(--z-index-overlay)`; panels re-enable
|
|
2884
|
+
* pointer events. The layer is created lazily and removed once empty.
|
|
2885
|
+
*/
|
|
2886
|
+
declare class PshPortalService {
|
|
2887
|
+
private readonly document;
|
|
2888
|
+
private layer;
|
|
2889
|
+
private count;
|
|
2890
|
+
/** Teleports `tpl` into the overlay layer and returns a handle to control it. */
|
|
2891
|
+
attach(tpl: TemplateRef<unknown>, vcr: ViewContainerRef): PshPortalRef;
|
|
2892
|
+
private position;
|
|
2893
|
+
private detach;
|
|
2894
|
+
private ensureLayer;
|
|
2895
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PshPortalService, never>;
|
|
2896
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<PshPortalService>;
|
|
2897
|
+
}
|
|
2898
|
+
|
|
2899
|
+
export { CHECKBOX_CONFIG, CUSTOMER_CONTEXT_SERVICE, INPUT_LABELS, MODAL_CONFIG, ModalService, NgxTranslateProvider, PAGINATION_CONFIG, PROGRESSBAR_CONFIG, PSH_THEME_OPTIONS, PshAlertComponent, PshAvatarComponent, PshBadgeComponent, PshButtonComponent, PshCardComponent, PshCheckboxComponent, PshClickOutsideDirective, PshCollapseComponent, PshDropdownComponent, PshFlowStepComponent, PshFocusTrapDirective, PshHorizontalCardComponent, PshInfoCardComponent, PshInputComponent, PshLiveAnnouncerService, PshMenuComponent, PshModalComponent, PshOverlayPositionService, PshOverlayService, PshPaginationComponent, PshPortalService, PshProgressbarComponent, PshRadioComponent, PshSelectComponent, PshSidebarComponent, PshSpinLoaderComponent, PshStatCardComponent, PshStateFlowIndicatorComponent, PshStepComponent, PshStepperComponent, PshSwitchComponent, PshTabBarComponent, PshTabComponent, PshTableComponent, PshTabsComponent, PshTagComponent, PshTextareaComponent, PshToastComponent, PshToastService, PshTooltipComponent, RADIO_CONFIG, RADIO_STYLES, SIDEBAR_CONFIG, SPINLOADER_CONFIG, STATE_FLOW_INDICATOR_CONFIG, STEPPER_CONFIG, SWITCH_CONFIG, ScrollService, TABLE_CONFIG, TABS_CONFIG, TAB_BAR_CONFIG, TAG_CONFIG, TEXTAREA_LABELS, TOAST_CONFIG, TOOLTIP_CONFIG, TRANSLATION_PROVIDER, ThemeService, ToastComponent, ToastService, provideTranslation };
|
|
2900
|
+
export type { AlertConfig, AlertLabels, AlertRole, AlertSize, AlertType, AnnouncerPoliteness, AutocompleteConfig, AvatarConfig, AvatarShape, AvatarSize, AvatarStatus, BadgeDisplayType, BadgePosition, BadgeSize, BadgeVariant, ButtonAppearance, ButtonIconPosition, ButtonSize, ButtonVariant, CardActionsAlignment, CardColorVariant, CardDensity, CardVariant, CheckboxConfig, CheckboxLabelPosition, CheckboxSize, CollapseSize, CollapseVariant, CustomerContextService, DropdownAppearance, DropdownConfig, DropdownItem, DropdownPlacement, DropdownSize, DropdownVariant, FlowStepConfig, IconPosition, InfoCardData, InfoCardOptions, InfoCardVariant, InputConfig, InputSize, InputType, InputVariant, MenuItem, MenuMode, MenuVariant, ModalConfig, ModalSize, OverlayHandle, OverlayPositionOptions, OverlaySide, PaginationConfig, PaginationSize, PaginationVariant, ProgressbarConfig, ProgressbarLabelPosition, ProgressbarMode, ProgressbarSize, ProgressbarVariant, PshPortalRef, PshThemeOptions, RadioConfig, RadioSize, SearchConfig, SelectOption, SelectOptionGroup, SelectSize, SelectVariant, SidebarConfig, SidebarMode, SidebarPosition, SpinLoaderColor, SpinLoaderConfig, SpinLoaderSize, SpinLoaderVariant, StatCardLayout, StatCardVariant, StatTagVariant, StateFlowIndicatorAriaLabels, StateFlowIndicatorConfig, StateFlowIndicatorSize, StepConfig, StepperAriaLabels, StepperConfig, StepperVariant, SuggestionResult, SwitchConfig, SwitchSize, Tab, TabBarChangeEvent, TabBarConfig, TabBarItem, TabChangeEvent, TableCellContext, TableColumn, TableConfig, TableExpandedRowContext, TableRow, TableRowClickEvent, TableRowExpandEvent, TableSort, TabsConfig, TabsSize, TabsVariant, TagConfig, TagSize, TagVariant, TextareaConfig, TextareaResize, TextareaSize, TextareaVariant, Theme, ThemeConfig, Toast, ToastConfig, ToastPosition, ToastType, TooltipConfig, TooltipPosition, TooltipVariant, TranslationConfig, TranslationEntry, TranslationProvider };
|