@shival99/z-ui 2.4.3 → 2.4.4

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.
Files changed (133) hide show
  1. package/assets/css/base.css +2 -1
  2. package/assets/css/global.css +23 -2
  3. package/assets/css/tailwind.css +7 -4
  4. package/fesm2022/shival99-z-ui-components-z-accordion.mjs +6 -6
  5. package/fesm2022/shival99-z-ui-components-z-accordion.mjs.map +1 -1
  6. package/fesm2022/shival99-z-ui-components-z-audio-player.mjs +3 -3
  7. package/fesm2022/shival99-z-ui-components-z-audio-player.mjs.map +1 -1
  8. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs +27 -12
  9. package/fesm2022/shival99-z-ui-components-z-autocomplete.mjs.map +1 -1
  10. package/fesm2022/shival99-z-ui-components-z-avatar.mjs +6 -6
  11. package/fesm2022/shival99-z-ui-components-z-avatar.mjs.map +1 -1
  12. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs +3 -3
  13. package/fesm2022/shival99-z-ui-components-z-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/shival99-z-ui-components-z-button-group.mjs +11 -11
  15. package/fesm2022/shival99-z-ui-components-z-button-group.mjs.map +1 -1
  16. package/fesm2022/shival99-z-ui-components-z-button.mjs +3 -3
  17. package/fesm2022/shival99-z-ui-components-z-button.mjs.map +1 -1
  18. package/fesm2022/shival99-z-ui-components-z-calendar.mjs +40 -40
  19. package/fesm2022/shival99-z-ui-components-z-calendar.mjs.map +1 -1
  20. package/fesm2022/shival99-z-ui-components-z-card.mjs +7 -7
  21. package/fesm2022/shival99-z-ui-components-z-card.mjs.map +1 -1
  22. package/fesm2022/shival99-z-ui-components-z-chat.mjs +4 -4
  23. package/fesm2022/shival99-z-ui-components-z-chat.mjs.map +1 -1
  24. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs +3 -3
  25. package/fesm2022/shival99-z-ui-components-z-checkbox.mjs.map +1 -1
  26. package/fesm2022/shival99-z-ui-components-z-code.mjs +58 -19
  27. package/fesm2022/shival99-z-ui-components-z-code.mjs.map +1 -1
  28. package/fesm2022/shival99-z-ui-components-z-command.mjs +6 -5
  29. package/fesm2022/shival99-z-ui-components-z-command.mjs.map +1 -1
  30. package/fesm2022/shival99-z-ui-components-z-drawer.mjs +17 -17
  31. package/fesm2022/shival99-z-ui-components-z-drawer.mjs.map +1 -1
  32. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs +12 -4
  33. package/fesm2022/shival99-z-ui-components-z-dropdown-menu.mjs.map +1 -1
  34. package/fesm2022/shival99-z-ui-components-z-editor.mjs +6 -6
  35. package/fesm2022/shival99-z-ui-components-z-editor.mjs.map +1 -1
  36. package/fesm2022/shival99-z-ui-components-z-empty.mjs +3 -3
  37. package/fesm2022/shival99-z-ui-components-z-empty.mjs.map +1 -1
  38. package/fesm2022/shival99-z-ui-components-z-filter.mjs +27 -27
  39. package/fesm2022/shival99-z-ui-components-z-filter.mjs.map +1 -1
  40. package/fesm2022/shival99-z-ui-components-z-gallery.mjs +42 -34
  41. package/fesm2022/shival99-z-ui-components-z-gallery.mjs.map +1 -1
  42. package/fesm2022/shival99-z-ui-components-z-hover-glide.mjs +221 -0
  43. package/fesm2022/shival99-z-ui-components-z-hover-glide.mjs.map +1 -0
  44. package/fesm2022/shival99-z-ui-components-z-icon.mjs +3 -3
  45. package/fesm2022/shival99-z-ui-components-z-icon.mjs.map +1 -1
  46. package/fesm2022/shival99-z-ui-components-z-input.mjs +5 -5
  47. package/fesm2022/shival99-z-ui-components-z-input.mjs.map +1 -1
  48. package/fesm2022/shival99-z-ui-components-z-kanban.mjs +4 -4
  49. package/fesm2022/shival99-z-ui-components-z-kanban.mjs.map +1 -1
  50. package/fesm2022/shival99-z-ui-components-z-loading.mjs +18 -4
  51. package/fesm2022/shival99-z-ui-components-z-loading.mjs.map +1 -1
  52. package/fesm2022/shival99-z-ui-components-z-marquee.mjs +3 -3
  53. package/fesm2022/shival99-z-ui-components-z-marquee.mjs.map +1 -1
  54. package/fesm2022/shival99-z-ui-components-z-media-player.mjs +346 -956
  55. package/fesm2022/shival99-z-ui-components-z-media-player.mjs.map +1 -1
  56. package/fesm2022/shival99-z-ui-components-z-menu.mjs +8 -8
  57. package/fesm2022/shival99-z-ui-components-z-menu.mjs.map +1 -1
  58. package/fesm2022/shival99-z-ui-components-z-metric-card.mjs +5 -5
  59. package/fesm2022/shival99-z-ui-components-z-metric-card.mjs.map +1 -1
  60. package/fesm2022/shival99-z-ui-components-z-modal.mjs +17 -17
  61. package/fesm2022/shival99-z-ui-components-z-modal.mjs.map +1 -1
  62. package/fesm2022/shival99-z-ui-components-z-number-ticker.mjs +352 -0
  63. package/fesm2022/shival99-z-ui-components-z-number-ticker.mjs.map +1 -0
  64. package/fesm2022/shival99-z-ui-components-z-overlay.mjs +9 -9
  65. package/fesm2022/shival99-z-ui-components-z-overlay.mjs.map +1 -1
  66. package/fesm2022/shival99-z-ui-components-z-pagination.mjs +4 -4
  67. package/fesm2022/shival99-z-ui-components-z-pagination.mjs.map +1 -1
  68. package/fesm2022/shival99-z-ui-components-z-popover.mjs +14 -14
  69. package/fesm2022/shival99-z-ui-components-z-popover.mjs.map +1 -1
  70. package/fesm2022/shival99-z-ui-components-z-qrcode.mjs +32 -8
  71. package/fesm2022/shival99-z-ui-components-z-qrcode.mjs.map +1 -1
  72. package/fesm2022/shival99-z-ui-components-z-radio.mjs +3 -3
  73. package/fesm2022/shival99-z-ui-components-z-radio.mjs.map +1 -1
  74. package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs +3 -3
  75. package/fesm2022/shival99-z-ui-components-z-scrollarea.mjs.map +1 -1
  76. package/fesm2022/shival99-z-ui-components-z-select.mjs +181 -26
  77. package/fesm2022/shival99-z-ui-components-z-select.mjs.map +1 -1
  78. package/fesm2022/shival99-z-ui-components-z-show-more.mjs +3 -3
  79. package/fesm2022/shival99-z-ui-components-z-show-more.mjs.map +1 -1
  80. package/fesm2022/shival99-z-ui-components-z-skeleton-auto.mjs +4 -4
  81. package/fesm2022/shival99-z-ui-components-z-skeleton-auto.mjs.map +1 -1
  82. package/fesm2022/shival99-z-ui-components-z-skeleton.mjs +5 -5
  83. package/fesm2022/shival99-z-ui-components-z-skeleton.mjs.map +1 -1
  84. package/fesm2022/shival99-z-ui-components-z-steps.mjs +4 -4
  85. package/fesm2022/shival99-z-ui-components-z-steps.mjs.map +1 -1
  86. package/fesm2022/shival99-z-ui-components-z-switch.mjs +5 -5
  87. package/fesm2022/shival99-z-ui-components-z-switch.mjs.map +1 -1
  88. package/fesm2022/shival99-z-ui-components-z-table.mjs +107 -105
  89. package/fesm2022/shival99-z-ui-components-z-table.mjs.map +1 -1
  90. package/fesm2022/shival99-z-ui-components-z-tabs.mjs +327 -31
  91. package/fesm2022/shival99-z-ui-components-z-tabs.mjs.map +1 -1
  92. package/fesm2022/shival99-z-ui-components-z-tags.mjs +15 -15
  93. package/fesm2022/shival99-z-ui-components-z-tags.mjs.map +1 -1
  94. package/fesm2022/shival99-z-ui-components-z-timeline.mjs +4 -4
  95. package/fesm2022/shival99-z-ui-components-z-timeline.mjs.map +1 -1
  96. package/fesm2022/shival99-z-ui-components-z-toast.mjs +10 -9
  97. package/fesm2022/shival99-z-ui-components-z-toast.mjs.map +1 -1
  98. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs +11 -11
  99. package/fesm2022/shival99-z-ui-components-z-tooltip.mjs.map +1 -1
  100. package/fesm2022/shival99-z-ui-components-z-upload.mjs +3 -3
  101. package/fesm2022/shival99-z-ui-components-z-upload.mjs.map +1 -1
  102. package/fesm2022/shival99-z-ui-i18n.mjs +6 -26
  103. package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -1
  104. package/fesm2022/shival99-z-ui-pipes.mjs +18 -18
  105. package/fesm2022/shival99-z-ui-pipes.mjs.map +1 -1
  106. package/fesm2022/shival99-z-ui-services.mjs +31 -31
  107. package/fesm2022/shival99-z-ui-services.mjs.map +1 -1
  108. package/package.json +21 -1
  109. package/types/shival99-z-ui-components-z-autocomplete.d.ts +6 -2
  110. package/types/shival99-z-ui-components-z-calendar.d.ts +4 -4
  111. package/types/shival99-z-ui-components-z-card.d.ts +21 -21
  112. package/types/shival99-z-ui-components-z-code.d.ts +16 -3
  113. package/types/shival99-z-ui-components-z-drawer.d.ts +1 -1
  114. package/types/shival99-z-ui-components-z-editor.d.ts +8 -8
  115. package/types/shival99-z-ui-components-z-gallery.d.ts +4 -1
  116. package/types/shival99-z-ui-components-z-hover-glide.d.ts +48 -0
  117. package/types/shival99-z-ui-components-z-icon.d.ts +1 -1
  118. package/types/shival99-z-ui-components-z-loading.d.ts +9 -2
  119. package/types/shival99-z-ui-components-z-media-player.d.ts +102 -172
  120. package/types/shival99-z-ui-components-z-metric-card.d.ts +19 -19
  121. package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
  122. package/types/shival99-z-ui-components-z-number-ticker.d.ts +110 -0
  123. package/types/shival99-z-ui-components-z-overlay.d.ts +3 -3
  124. package/types/shival99-z-ui-components-z-popover.d.ts +11 -8
  125. package/types/shival99-z-ui-components-z-qrcode.d.ts +5 -2
  126. package/types/shival99-z-ui-components-z-select.d.ts +45 -7
  127. package/types/shival99-z-ui-components-z-switch.d.ts +22 -21
  128. package/types/shival99-z-ui-components-z-table.d.ts +1 -1
  129. package/types/shival99-z-ui-components-z-tabs.d.ts +59 -7
  130. package/types/shival99-z-ui-components-z-toast.d.ts +1 -1
  131. package/types/shival99-z-ui-components-z-tooltip.d.ts +2 -2
  132. package/types/shival99-z-ui-components-z-upload.d.ts +3 -3
  133. package/types/shival99-z-ui-services.d.ts +10 -10
@@ -1,200 +1,130 @@
1
- import * as _angular_platform_browser from '@angular/platform-browser';
1
+ import * as vidstack from 'vidstack';
2
+ import { MediaPlayerProps, DefaultLayoutProps, PlyrLayoutProps, DefaultLayoutTranslations, PlyrLayoutTranslations } from 'vidstack';
2
3
  import * as _angular_core from '@angular/core';
3
- import { OnDestroy, ElementRef } from '@angular/core';
4
+ import { ElementRef } from '@angular/core';
4
5
  import { ClassValue } from 'clsx';
6
+ import { MediaPlayerElement } from 'vidstack/elements';
5
7
  import { VariantProps } from 'class-variance-authority';
6
8
  import * as class_variance_authority_types from 'class-variance-authority/types';
7
9
 
8
10
  declare const zMediaPlayerVariants: (props?: ({
9
- zLayout?: "theater" | "fullscreen" | "default" | null | undefined;
11
+ zLayout?: "default" | null | undefined;
10
12
  } & class_variance_authority_types.ClassProp) | undefined) => string;
11
13
 
12
14
  type ZMediaPlayerVariants = VariantProps<typeof zMediaPlayerVariants>;
13
- interface ZMediaPlayerSubtitleTrack {
14
- label: string;
15
- src: string;
16
- srclang: string;
17
- default?: boolean;
18
- }
15
+ type ZMediaPlayerProviderKind = 'video' | 'audio' | 'hls' | 'dash' | 'youtube' | 'vimeo';
16
+ type ZMediaPlayerSkin = 'default' | 'plyr';
19
17
  interface ZMediaPlayerSource {
20
18
  label: string;
19
+ kind: ZMediaPlayerProviderKind;
21
20
  src: string;
21
+ default?: boolean;
22
22
  }
23
- interface ZMediaPlayerPlaybackSpeed {
24
- label: string;
25
- value: number;
23
+ /**
24
+ * Mirrors Vidstack's own `MediaPlayerElement` props (minus deprecated aliases and `src`, which
25
+ * this component derives from `zSources`), so every core player setting is configurable without
26
+ * a hand-maintained mapping layer that could drift from the real API.
27
+ */
28
+ interface ZMediaPlayerConfig extends Partial<Omit<MediaPlayerProps, 'src' | 'autoplay' | 'crossorigin' | 'playsinline'>> {
29
+ subtitles?: ZMediaPlayerSubtitleTrack[];
30
+ thumbnailsVtt?: string;
31
+ chaptersVtt?: string;
26
32
  }
27
- interface ZWebkitHTMLVideoElement extends HTMLVideoElement {
28
- webkitSupportsPresentationMode?(mode: 'inline' | 'picture-in-picture'): boolean;
29
- webkitPresentationMode?: 'inline' | 'picture-in-picture';
30
- webkitSetPresentationMode?(mode: 'inline' | 'picture-in-picture'): void;
33
+ /** Mirrors Vidstack's `DefaultVideoLayout`/`DefaultAudioLayout` props (Default skin). */
34
+ type ZMediaPlayerDefaultLayoutConfig = Partial<DefaultLayoutProps>;
35
+ /** Mirrors Vidstack's `PlyrLayout` props (Plyr skin). */
36
+ type ZMediaPlayerPlyrLayoutConfig = Partial<PlyrLayoutProps>;
37
+ type ZMediaPlayerStateEvent = 'loaded' | 'play' | 'pause' | 'ended' | 'time-update' | 'volume-change' | 'rate-change' | 'fullscreen-change' | 'theater-change' | 'pip-change' | 'source-change' | 'subtitle-change' | 'waiting' | 'can-play';
38
+ interface ZMediaPlayerSnapshot {
39
+ paused: boolean;
40
+ playing: boolean;
41
+ ended: boolean;
42
+ waiting: boolean;
43
+ currentTime: number;
44
+ duration: number;
45
+ volume: number;
46
+ muted: boolean;
47
+ playbackRate: number;
48
+ bufferedRatio: number;
49
+ fullscreen: boolean;
50
+ theaterMode: boolean;
51
+ pictureInPicture: boolean;
52
+ activeSourceLabel: string | null;
53
+ activeCaptionsLabel: string | null;
31
54
  }
32
- interface ZDocumentWithPiP extends Document {
33
- pictureInPictureEnabled: boolean;
34
- pictureInPictureElement: Element | null;
35
- exitPictureInPicture(): Promise<void>;
55
+ interface ZMediaPlayerStateChange {
56
+ event: ZMediaPlayerStateEvent;
57
+ state: ZMediaPlayerSnapshot;
36
58
  }
37
- type ZMediaPlayerSettingsPanel = 'main' | 'quality' | 'speed';
38
- /** One cue parsed from a WebVTT storyboard file (`00:00:00.000 --> 00:00:02.000` + `sprite.jpg#xywh=x,y,w,h`). */
39
- interface ZMediaPlayerThumbnailCue {
40
- start: number;
41
- end: number;
42
- src: string;
43
- x: number;
44
- y: number;
45
- w: number;
46
- h: number;
59
+ interface ZMediaPlayerError {
60
+ message: string;
61
+ code?: string | number;
62
+ source: 'provider' | 'thumbnails-vtt' | 'chapters-vtt';
63
+ raw?: unknown;
47
64
  }
48
- /** Toggles which control bar groups are rendered. All default to `true`. */
49
- interface ZMediaPlayerControls {
50
- play: boolean;
51
- volume: boolean;
52
- skip: boolean;
53
- time: boolean;
54
- timeline: boolean;
55
- subtitles: boolean;
56
- settings: boolean;
57
- pip: boolean;
58
- theater: boolean;
65
+ interface ZMediaPlayerVidstackState {
66
+ paused: boolean;
67
+ playing: boolean;
68
+ ended: boolean;
69
+ waiting: boolean;
70
+ currentTime: number;
71
+ duration: number;
72
+ volume: number;
73
+ muted: boolean;
74
+ playbackRate: number;
75
+ bufferedEnd?: number;
76
+ buffered?: {
77
+ length: number;
78
+ end(index: number): number;
79
+ };
59
80
  fullscreen: boolean;
81
+ pictureInPicture: boolean;
82
+ textTrack?: {
83
+ label?: string;
84
+ } | null;
85
+ }
86
+ interface ZMediaPlayerSubtitleTrack {
87
+ label: string;
88
+ src: string;
89
+ srclang: string;
90
+ default?: boolean;
60
91
  }
61
92
 
62
- declare class ZMediaPlayerComponent implements OnDestroy {
63
- private readonly _elementRef;
64
- private readonly _ngZone;
65
- private readonly _sanitizer;
93
+ /**
94
+ * Video, audio, HLS, DASH, YouTube, and Vimeo use Vidstack's Default or Plyr Layout skin
95
+ * (`zSkin`). `zConfig` mirrors Vidstack's own `<media-player>` props; `zDefaultLayoutConfig` /
96
+ * `zPlyrLayoutConfig` mirror the props of the currently active skin.
97
+ */
98
+ declare class ZMediaPlayerComponent {
99
+ private readonly _themeService;
100
+ private readonly _translateService;
66
101
  readonly class: _angular_core.InputSignal<ClassValue>;
67
- readonly zSrc: _angular_core.InputSignal<string>;
68
102
  readonly zSources: _angular_core.InputSignal<ZMediaPlayerSource[]>;
69
- readonly zPoster: _angular_core.InputSignal<string>;
70
- readonly zAutoplay: _angular_core.InputSignal<boolean>;
71
- readonly zLoop: _angular_core.InputSignal<boolean>;
72
- readonly zMuted: _angular_core.InputSignal<boolean>;
73
- readonly zVolume: _angular_core.InputSignal<number>;
74
- readonly zSubtitles: _angular_core.InputSignal<ZMediaPlayerSubtitleTrack[]>;
75
- /** URL to a WebVTT storyboard file powering the YouTube-style timeline hover preview. */
76
- readonly zThumbnailsVtt: _angular_core.InputSignal<string>;
77
- /** Toggles which control bar groups render. Unset groups default to visible. */
78
- readonly zControls: _angular_core.InputSignal<Partial<ZMediaPlayerControls>>;
79
- readonly zLoaded: _angular_core.OutputEmitterRef<void>;
80
- readonly zError: _angular_core.OutputEmitterRef<Error | null>;
81
- readonly zPlay: _angular_core.OutputEmitterRef<boolean>;
82
- readonly zTimeUpdate: _angular_core.OutputEmitterRef<number>;
83
- readonly zVolumeChange: _angular_core.OutputEmitterRef<number>;
84
- readonly zFullscreenChange: _angular_core.OutputEmitterRef<boolean>;
85
- readonly zTheaterModeChange: _angular_core.OutputEmitterRef<boolean>;
86
- readonly zMiniplayerChange: _angular_core.OutputEmitterRef<boolean>;
87
- readonly zQualityChange: _angular_core.OutputEmitterRef<ZMediaPlayerSource>;
88
- readonly videoElement: _angular_core.Signal<ElementRef<HTMLVideoElement> | undefined>;
89
- readonly timelineContainer: _angular_core.Signal<ElementRef<HTMLDivElement> | undefined>;
90
- private readonly _settingsPopover;
91
- protected readonly isPlaying: _angular_core.WritableSignal<boolean>;
92
- protected readonly currentTime: _angular_core.WritableSignal<number>;
93
- protected readonly duration: _angular_core.WritableSignal<number>;
94
- protected readonly volume: _angular_core.WritableSignal<number>;
95
- protected readonly isMuted: _angular_core.WritableSignal<boolean>;
96
- protected readonly playbackSpeed: _angular_core.WritableSignal<number>;
97
- protected readonly activeSourceSrc: _angular_core.WritableSignal<string | null>;
98
- private readonly _activeQualitySourceLabel;
99
- protected readonly showControls: _angular_core.WritableSignal<boolean>;
100
- protected readonly isPointerOver: _angular_core.WritableSignal<boolean>;
101
- protected readonly isBuffering: _angular_core.WritableSignal<boolean>;
102
- protected readonly captionsEnabled: _angular_core.WritableSignal<boolean>;
103
- protected readonly subtitleText: _angular_core.WritableSignal<string>;
104
- protected readonly hasSubtitles: _angular_core.Signal<boolean>;
105
- protected readonly isTheaterMode: _angular_core.WritableSignal<boolean>;
106
- protected readonly isFullscreen: _angular_core.WritableSignal<boolean>;
107
- protected readonly isMiniplayer: _angular_core.WritableSignal<boolean>;
108
- protected readonly showSettings: _angular_core.WritableSignal<boolean>;
109
- protected readonly settingsPanel: _angular_core.WritableSignal<ZMediaPlayerSettingsPanel>;
110
- protected readonly isDragging: _angular_core.WritableSignal<boolean>;
111
- protected readonly bufferedProgress: _angular_core.WritableSignal<number>;
112
- protected readonly progress: _angular_core.WritableSignal<number>;
113
- protected readonly playPauseFlash: _angular_core.WritableSignal<"play" | "pause" | null>;
114
- protected readonly hoverTimeLabel: _angular_core.WritableSignal<string | null>;
115
- protected readonly hoverTime: _angular_core.WritableSignal<number | null>;
116
- protected readonly hoverX: _angular_core.WritableSignal<number>;
117
- private readonly _thumbnailCues;
118
- private readonly _positionedSubtitleTracks;
119
- protected readonly skipOverlayDirection: _angular_core.WritableSignal<"left" | "right" | null>;
120
- protected readonly skipOverlayValue: _angular_core.WritableSignal<number>;
121
- protected readonly skipOverlayPulse: _angular_core.WritableSignal<number>;
122
- protected readonly isPiPSupported: _angular_core.Signal<boolean>;
123
- protected readonly playbackSpeeds: readonly ZMediaPlayerPlaybackSpeed[];
124
- private _controlsTimeout;
125
- private _flashTimeout;
126
- private _skipOverlayTimeout;
127
- private _bufferAnimationFrame;
128
- private _playbackAnimationFrame;
129
- private _mouseMoveCleanup;
130
- private _lastMouseMoveAt;
131
- private _bufferedTarget;
132
- private _accumulatedSkip;
103
+ readonly zConfig: _angular_core.InputSignal<Partial<ZMediaPlayerConfig>>;
104
+ readonly zSkin: _angular_core.InputSignal<ZMediaPlayerSkin>;
105
+ readonly zDefaultLayoutConfig: _angular_core.InputSignal<Partial<vidstack.DefaultLayoutProps>>;
106
+ readonly zPlyrLayoutConfig: _angular_core.InputSignal<Partial<vidstack.PlyrLayoutProps>>;
107
+ readonly zStateChange: _angular_core.OutputEmitterRef<ZMediaPlayerStateChange>;
108
+ readonly zError: _angular_core.OutputEmitterRef<ZMediaPlayerError>;
109
+ protected readonly playerElement: _angular_core.Signal<ElementRef<MediaPlayerElement> | undefined>;
110
+ protected readonly layoutElement: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
111
+ protected readonly activeSource: _angular_core.Signal<ZMediaPlayerSource | null>;
112
+ protected readonly isAudioSource: _angular_core.Signal<boolean>;
113
+ protected readonly isPlyrSkin: _angular_core.Signal<boolean>;
114
+ protected readonly colorScheme: _angular_core.Signal<"light" | "dark" | "system">;
115
+ private readonly _isVietnamese;
116
+ protected readonly defaultLayoutTranslations: _angular_core.Signal<Partial<DefaultLayoutTranslations> | null>;
117
+ protected readonly plyrLayoutTranslations: _angular_core.Signal<Partial<PlyrLayoutTranslations> | null>;
118
+ protected readonly state: _angular_core.WritableSignal<ZMediaPlayerSnapshot>;
133
119
  protected readonly zClasses: _angular_core.Signal<string>;
134
- protected readonly currentTimeLabel: _angular_core.Signal<string>;
135
- protected readonly durationLabel: _angular_core.Signal<string>;
136
- protected readonly controls: _angular_core.Signal<ZMediaPlayerControls>;
137
- protected readonly effectiveSrc: _angular_core.Signal<string>;
138
- protected readonly qualitySources: _angular_core.Signal<ZMediaPlayerSource[]>;
139
- protected readonly activeQualityLabel: _angular_core.Signal<string>;
140
- protected readonly youtubeVideoId: _angular_core.Signal<string | null>;
141
- protected readonly isYouTube: _angular_core.Signal<boolean>;
142
- protected readonly youtubeEmbedUrl: _angular_core.Signal<_angular_platform_browser.SafeResourceUrl | null>;
143
- protected readonly hoverThumbnailCue: _angular_core.Signal<ZMediaPlayerThumbnailCue | null>;
144
120
  constructor();
145
- ngOnDestroy(): void;
146
- private _initializeVideoState;
147
- protected togglePlay(): void;
148
- private _triggerFlashIcon;
149
- protected toggleMute(): void;
150
- protected onVolumeChange(val: number): void;
151
- protected setPlaybackSpeed(speed: number): void;
152
- protected openSettingsPanel(panel: ZMediaPlayerSettingsPanel): void;
153
- protected closeSettingsPanel(): void;
154
- protected onSettingsHidden(): void;
155
- protected toggleInlineSettings(): void;
156
- protected setQualitySource(source: ZMediaPlayerSource): void;
157
- protected seekTo(time: number): void;
158
- protected toggleTheaterMode(): void;
159
- protected toggleFullscreen(): void;
160
- protected onFullscreenStateChange(): void;
161
- protected toggleMiniplayer(): Promise<void>;
162
- protected onEnterPiP(): void;
163
- protected onLeavePiP(): void;
164
- protected onWebkitPresentationModeChanged(): void;
165
- protected toggleSubtitles(): void;
166
- private _positionSubtitleCues;
167
- private _updateSubtitleText;
168
- protected onPlayStateChange(playing: boolean): void;
169
- protected onTimeUpdate(): void;
170
- protected onDurationChange(): void;
171
- protected onLoadedData(): void;
172
- protected onVideoError(): void;
173
- protected onSeeking(seeking: boolean): void;
174
- protected updateBufferedProgress(): void;
175
- private _setBufferedTarget;
176
- private _startPlaybackProgressLoop;
177
- private _stopPlaybackProgressLoop;
178
- private _syncPlaybackProgress;
179
- protected onTimelineDragStart(event: MouseEvent): void;
180
- protected onTimelineHover(event: MouseEvent): void;
181
- protected onTimelineHoverEnd(): void;
182
- private _loadThumbnailVtt;
183
- private _parseThumbnailVtt;
184
- private _parseVttTimestamp;
185
- private _updateTimeFromCoords;
186
- protected onMouseMove(): void;
187
- protected onMouseLeave(): void;
188
- private _resetControlsTimer;
189
- protected onVideoClick(): void;
190
- protected triggerSkip(seconds: number, direction: 'left' | 'right'): void;
191
- private _triggerSkipOverlay;
192
- protected onKeyDown(event: KeyboardEvent): void;
193
- protected toggleSettings(): void;
194
- private _formatTime;
121
+ private _syncState;
122
+ private _emitStateChange;
123
+ private _emitError;
124
+ private _configureStreamingProvider;
195
125
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZMediaPlayerComponent, never>;
196
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZMediaPlayerComponent, "z-media-player", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zSrc": { "alias": "zSrc"; "required": true; "isSignal": true; }; "zSources": { "alias": "zSources"; "required": false; "isSignal": true; }; "zPoster": { "alias": "zPoster"; "required": false; "isSignal": true; }; "zAutoplay": { "alias": "zAutoplay"; "required": false; "isSignal": true; }; "zLoop": { "alias": "zLoop"; "required": false; "isSignal": true; }; "zMuted": { "alias": "zMuted"; "required": false; "isSignal": true; }; "zVolume": { "alias": "zVolume"; "required": false; "isSignal": true; }; "zSubtitles": { "alias": "zSubtitles"; "required": false; "isSignal": true; }; "zThumbnailsVtt": { "alias": "zThumbnailsVtt"; "required": false; "isSignal": true; }; "zControls": { "alias": "zControls"; "required": false; "isSignal": true; }; }, { "zLoaded": "zLoaded"; "zError": "zError"; "zPlay": "zPlay"; "zTimeUpdate": "zTimeUpdate"; "zVolumeChange": "zVolumeChange"; "zFullscreenChange": "zFullscreenChange"; "zTheaterModeChange": "zTheaterModeChange"; "zMiniplayerChange": "zMiniplayerChange"; "zQualityChange": "zQualityChange"; }, never, never, true, never>;
126
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZMediaPlayerComponent, "z-media-player", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zSources": { "alias": "zSources"; "required": true; "isSignal": true; }; "zConfig": { "alias": "zConfig"; "required": false; "isSignal": true; }; "zSkin": { "alias": "zSkin"; "required": false; "isSignal": true; }; "zDefaultLayoutConfig": { "alias": "zDefaultLayoutConfig"; "required": false; "isSignal": true; }; "zPlyrLayoutConfig": { "alias": "zPlyrLayoutConfig"; "required": false; "isSignal": true; }; }, { "zStateChange": "zStateChange"; "zError": "zError"; }, never, never, true, never>;
197
127
  }
198
128
 
199
129
  export { ZMediaPlayerComponent };
200
- export type { ZDocumentWithPiP, ZMediaPlayerControls, ZMediaPlayerPlaybackSpeed, ZMediaPlayerSettingsPanel, ZMediaPlayerSource, ZMediaPlayerSubtitleTrack, ZMediaPlayerThumbnailCue, ZMediaPlayerVariants, ZWebkitHTMLVideoElement };
130
+ export type { ZMediaPlayerConfig, ZMediaPlayerDefaultLayoutConfig, ZMediaPlayerError, ZMediaPlayerPlyrLayoutConfig, ZMediaPlayerProviderKind, ZMediaPlayerSkin, ZMediaPlayerSnapshot, ZMediaPlayerSource, ZMediaPlayerStateChange, ZMediaPlayerStateEvent, ZMediaPlayerSubtitleTrack, ZMediaPlayerVariants, ZMediaPlayerVidstackState };
@@ -1,8 +1,23 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { ZIcon } from '@shival99/z-ui/components/z-icon';
3
3
  import { ClassValue } from 'clsx';
4
- import * as class_variance_authority_types from 'class-variance-authority/types';
5
4
  import { VariantProps } from 'class-variance-authority';
5
+ import * as class_variance_authority_types from 'class-variance-authority/types';
6
+
7
+ declare const zMetricCardVariants: (props?: ({
8
+ zSize?: "sm" | "default" | "lg" | null | undefined;
9
+ zVariant?: "default" | "bordered" | "soft" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ declare const zMetricCardIconVariants: (props?: ({
12
+ zSize?: "sm" | "default" | "lg" | null | undefined;
13
+ zVariant?: "default" | "bordered" | "soft" | null | undefined;
14
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
15
+ declare const zMetricCardValueVariants: (props?: ({
16
+ zSize?: "sm" | "default" | "lg" | null | undefined;
17
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
18
+ declare const zMetricCardTrendVariants: (props?: ({
19
+ zTrendDirection?: "up" | "down" | "neutral" | null | undefined;
20
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
6
21
 
7
22
  type ZMetricCardSize = 'sm' | 'default' | 'lg';
8
23
  type ZMetricCardVariant = 'default' | 'bordered' | 'soft';
@@ -17,6 +32,9 @@ interface ZMetricCardAction {
17
32
  label: string;
18
33
  icon?: ZIcon;
19
34
  }
35
+ type ZMetricCardVariants = VariantProps<typeof zMetricCardVariants>;
36
+ type ZMetricCardIconVariants = VariantProps<typeof zMetricCardIconVariants>;
37
+ type ZMetricCardTrendVariants = VariantProps<typeof zMetricCardTrendVariants>;
20
38
 
21
39
  declare class ZMetricCardComponent {
22
40
  readonly zActionClick: _angular_core.OutputEmitterRef<ZMetricCardAction>;
@@ -45,23 +63,5 @@ declare class ZMetricCardComponent {
45
63
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZMetricCardComponent, "z-metric-card", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zTitle": { "alias": "zTitle"; "required": false; "isSignal": true; }; "zValue": { "alias": "zValue"; "required": false; "isSignal": true; }; "zDescription": { "alias": "zDescription"; "required": false; "isSignal": true; }; "zIcon": { "alias": "zIcon"; "required": false; "isSignal": true; }; "zTrend": { "alias": "zTrend"; "required": false; "isSignal": true; }; "zProgress": { "alias": "zProgress"; "required": false; "isSignal": true; }; "zAction": { "alias": "zAction"; "required": false; "isSignal": true; }; "zSize": { "alias": "zSize"; "required": false; "isSignal": true; }; "zVariant": { "alias": "zVariant"; "required": false; "isSignal": true; }; "zDecor": { "alias": "zDecor"; "required": false; "isSignal": true; }; "zLoading": { "alias": "zLoading"; "required": false; "isSignal": true; }; }, { "zActionClick": "zActionClick"; }, never, ["*"], true, never>;
46
64
  }
47
65
 
48
- declare const zMetricCardVariants: (props?: ({
49
- zSize?: "sm" | "default" | "lg" | null | undefined;
50
- zVariant?: "default" | "bordered" | "soft" | null | undefined;
51
- } & class_variance_authority_types.ClassProp) | undefined) => string;
52
- declare const zMetricCardIconVariants: (props?: ({
53
- zSize?: "sm" | "default" | "lg" | null | undefined;
54
- zVariant?: "default" | "bordered" | "soft" | null | undefined;
55
- } & class_variance_authority_types.ClassProp) | undefined) => string;
56
- declare const zMetricCardValueVariants: (props?: ({
57
- zSize?: "sm" | "default" | "lg" | null | undefined;
58
- } & class_variance_authority_types.ClassProp) | undefined) => string;
59
- declare const zMetricCardTrendVariants: (props?: ({
60
- zTrendDirection?: "up" | "down" | "neutral" | null | undefined;
61
- } & class_variance_authority_types.ClassProp) | undefined) => string;
62
- type ZMetricCardVariants = VariantProps<typeof zMetricCardVariants>;
63
- type ZMetricCardIconVariants = VariantProps<typeof zMetricCardIconVariants>;
64
- type ZMetricCardTrendVariants = VariantProps<typeof zMetricCardTrendVariants>;
65
-
66
66
  export { ZMetricCardComponent, zMetricCardIconVariants, zMetricCardTrendVariants, zMetricCardValueVariants, zMetricCardVariants };
67
67
  export type { ZMetricCardAction, ZMetricCardDecor, ZMetricCardIconVariants, ZMetricCardSize, ZMetricCardTrend, ZMetricCardTrendDirection, ZMetricCardTrendVariants, ZMetricCardVariant, ZMetricCardVariants };
@@ -301,7 +301,7 @@ declare class ZModalService {
301
301
  private _attachModalContent;
302
302
  private _createInjector;
303
303
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZModalService, never>;
304
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ZModalService>;
304
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
305
305
  }
306
306
 
307
307
  declare const Z_MODAL_DATA: InjectionToken<any>;
@@ -0,0 +1,110 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy } from '@angular/core';
3
+ import { ClassValue } from 'clsx';
4
+
5
+ /**
6
+ * How the tweened value is rendered. Each maps onto `Intl.NumberFormat`, so grouping separators and
7
+ * decimal marks follow the locale rather than being assembled by hand.
8
+ *
9
+ * `percent` follows `Intl` semantics and multiplies by 100 — pass `0.42` to render `42%`.
10
+ */
11
+ type ZNumberTickerFormat = 'decimal' | 'currency' | 'percent' | 'compact';
12
+ /**
13
+ * Shape of the roll. `smooth` is an ease-out cubic; `spring` and `bounce` overshoot the target digit
14
+ * and settle back onto it, which a mechanical odometer does when it snaps into place.
15
+ */
16
+ type ZNumberTickerEasing = 'linear' | 'smooth' | 'spring' | 'bounce';
17
+ /** One rendered cell: either a rolling digit wheel at a decimal place, or fixed text between wheels. */
18
+ interface ZNumberTickerCell {
19
+ /** Power of ten this wheel shows — `0` is the units digit, `-1` the first decimal. `null` for text. */
20
+ place: number | null;
21
+ /** A sign cell crossfades between `+` and `-` instead of holding one glyph. */
22
+ isSign: boolean;
23
+ text: string;
24
+ }
25
+
26
+ declare class ZNumberTickerComponent implements OnDestroy {
27
+ private readonly _zone;
28
+ private readonly _isServer;
29
+ readonly class: _angular_core.InputSignal<ClassValue>;
30
+ /** The value to count towards. Changing it re-runs the count from wherever the ticker currently is. */
31
+ readonly zValue: _angular_core.InputSignal<number>;
32
+ /** Where the first count starts. Later changes count from the displayed value, not from here. */
33
+ readonly zStart: _angular_core.InputSignal<number>;
34
+ /** How long the roll takes, in milliseconds. */
35
+ readonly zDuration: _angular_core.InputSignal<number>;
36
+ readonly zEasing: _angular_core.InputSignal<ZNumberTickerEasing>;
37
+ readonly zFormat: _angular_core.InputSignal<ZNumberTickerFormat>;
38
+ /** Locale for grouping separators and decimal marks; defaults to the browser's. */
39
+ readonly zLocale: _angular_core.InputSignal<string | undefined>;
40
+ /** Only read when `zFormat` is `'currency'`. */
41
+ readonly zCurrency: _angular_core.InputSignal<string>;
42
+ /** Zero-pads the integer part, e.g. `2` renders `07` — what a clock segment needs. */
43
+ readonly zMinimumIntegerDigits: _angular_core.InputSignal<number | undefined>;
44
+ /** Passed to `Intl`; `'always'` keeps a `+` on positive values, as a delta figure wants. */
45
+ readonly zSignDisplay: _angular_core.InputSignal<keyof Intl.NumberFormatOptionsSignDisplayRegistry | undefined>;
46
+ readonly zMinimumFractionDigits: _angular_core.InputSignal<number | undefined>;
47
+ readonly zMaximumFractionDigits: _angular_core.InputSignal<number | undefined>;
48
+ /** Digits to roll through, plus a repeated `0` so a 9→0 wrap rolls on rather than snapping back. */
49
+ protected readonly wheelDigits: number[];
50
+ private readonly _progress;
51
+ private readonly _from;
52
+ private readonly _to;
53
+ private readonly _rolling;
54
+ private _frame?;
55
+ private _started;
56
+ /**
57
+ * Only what the roll needs structurally: an inline box, and tabular figures so a digit swap cannot
58
+ * change the width. Type scale, weight and colour are the consumer's — a ticker has no business
59
+ * deciding how big a number on someone's page should be.
60
+ */
61
+ protected readonly tickerClasses: _angular_core.Signal<string>;
62
+ /** Decimal places in the target value, which is what the count should render to. */
63
+ private readonly _targetDecimals;
64
+ /**
65
+ * Kept as one memoised formatter rather than calling `toLocaleString` per frame: constructing an
66
+ * `Intl.NumberFormat` is the expensive part, and the ticker formats on every animation frame.
67
+ */
68
+ private readonly _formatter;
69
+ /**
70
+ * The wheels stay mounted for the whole life of the component. Swapping to plain text between rolls
71
+ * changed the box width every time one finished, which read as the number twitching on the page.
72
+ * Static text is only for the cases where there is no roll at all: the server, and reduced motion.
73
+ */
74
+ protected readonly isRolling: _angular_core.Signal<boolean>;
75
+ protected readonly usesWheels: _angular_core.Signal<boolean>;
76
+ /** Layout is pinned to the endpoints, so wheels are neither added nor removed mid-count. */
77
+ protected readonly cells: _angular_core.Signal<ZNumberTickerCell[]>;
78
+ private readonly _magnitudes;
79
+ protected readonly wheelOffsets: _angular_core.Signal<number[]>;
80
+ /** A sign cell holds both glyphs and crossfades between them across the roll. */
81
+ protected readonly signFrom: _angular_core.Signal<string>;
82
+ protected readonly signTo: _angular_core.Signal<string>;
83
+ protected readonly signProgress: _angular_core.Signal<number>;
84
+ /**
85
+ * The outgoing glyph leaves to the left and the incoming one arrives from the right, both riding the
86
+ * roll's own easing. Distance is a custom property so a consumer can dial the travel down to a pure
87
+ * crossfade (`0`) or open it up.
88
+ */
89
+ protected signTransform(direction: 1 | -1): string;
90
+ /** The plain formatted number, used before the first roll and whenever motion is off. */
91
+ protected readonly formattedValue: _angular_core.Signal<string>;
92
+ constructor();
93
+ /** Where the count has actually reached, so a new target continues from there. */
94
+ private _currentValue;
95
+ protected wheelTransform(index: number): string;
96
+ ngOnDestroy(): void;
97
+ /**
98
+ * Runs the tween outside Angular: a per-frame `requestAnimationFrame` inside the zone would schedule
99
+ * a change-detection pass of its own on every frame. The signal write still schedules one, so the
100
+ * text updates — this only drops the duplicate.
101
+ */
102
+ private _animate;
103
+ private _cancel;
104
+ private _prefersReducedMotion;
105
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZNumberTickerComponent, never>;
106
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZNumberTickerComponent, "z-number-ticker", never, { "class": { "alias": "class"; "required": false; "isSignal": true; }; "zValue": { "alias": "zValue"; "required": false; "isSignal": true; }; "zStart": { "alias": "zStart"; "required": false; "isSignal": true; }; "zDuration": { "alias": "zDuration"; "required": false; "isSignal": true; }; "zEasing": { "alias": "zEasing"; "required": false; "isSignal": true; }; "zFormat": { "alias": "zFormat"; "required": false; "isSignal": true; }; "zLocale": { "alias": "zLocale"; "required": false; "isSignal": true; }; "zCurrency": { "alias": "zCurrency"; "required": false; "isSignal": true; }; "zMinimumIntegerDigits": { "alias": "zMinimumIntegerDigits"; "required": false; "isSignal": true; }; "zSignDisplay": { "alias": "zSignDisplay"; "required": false; "isSignal": true; }; "zMinimumFractionDigits": { "alias": "zMinimumFractionDigits"; "required": false; "isSignal": true; }; "zMaximumFractionDigits": { "alias": "zMaximumFractionDigits"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
107
+ }
108
+
109
+ export { ZNumberTickerComponent };
110
+ export type { ZNumberTickerEasing, ZNumberTickerFormat };
@@ -97,7 +97,7 @@ declare class ZOverlayStackService {
97
97
  */
98
98
  isTopmost(entry: ZOverlayStackEntry): boolean;
99
99
  static ɵfac: i0.ɵɵFactoryDeclaration<ZOverlayStackService, never>;
100
- static ɵprov: i0.ɵɵInjectableDeclaration<ZOverlayStackService>;
100
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
101
101
  }
102
102
 
103
103
  /**
@@ -165,7 +165,7 @@ declare class ZOverlayService {
165
165
  private _showHost;
166
166
  private _getContainer;
167
167
  static ɵfac: i0.ɵɵFactoryDeclaration<ZOverlayService, never>;
168
- static ɵprov: i0.ɵɵInjectableDeclaration<ZOverlayService>;
168
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
169
169
  }
170
170
 
171
171
  /**
@@ -193,7 +193,7 @@ declare class ZScrollLockService {
193
193
  lock(): void;
194
194
  unlock(): void;
195
195
  static ɵfac: i0.ɵɵFactoryDeclaration<ZScrollLockService, never>;
196
- static ɵprov: i0.ɵɵInjectableDeclaration<ZScrollLockService>;
196
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
197
197
  }
198
198
 
199
199
  export { ZOverlayRef, ZOverlayService, ZOverlayStackService, ZScrollLockService, Z_OVERLAY_CONTAINER_CLASS, Z_OVERLAY_DEFAULT_ARROW_EDGE_PADDING, Z_OVERLAY_DEFAULT_VIEWPORT_PADDING, Z_OVERLAY_FALLBACK_ORDER, Z_OVERLAY_HOST_CLASS, Z_OVERLAY_PLACEMENT_MAP, Z_OVERLAY_PLACEMENT_REVERSE_MAP, Z_OVERLAY_PREFERRED_SIDE_ORDER, Z_OVERLAY_SCROLLABLE_CLASS, computeZOverlayArrowOffset, computeZOverlayPlacement, startZOverlayAutoUpdate };
@@ -1,11 +1,16 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { TemplateRef, OnInit, OnDestroy, ElementRef } from '@angular/core';
3
- import * as class_variance_authority_types from 'class-variance-authority/types';
4
3
  import { VariantProps } from 'class-variance-authority';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+
6
+ declare const zPopoverVariants: (props?: ({
7
+ zPosition?: "top" | "top-left" | "top-right" | "bottom" | "bottom-left" | "bottom-right" | "left" | "left-top" | "left-bottom" | "right" | "right-top" | "right-bottom" | null | undefined;
8
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
5
9
 
6
10
  type ZPopoverTrigger = 'click' | 'hover' | 'manual';
7
11
  type ZPopoverPosition = 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right' | 'left' | 'left-top' | 'left-bottom' | 'right' | 'right-top' | 'right-bottom';
8
12
  type ZPopoverContent = TemplateRef<unknown>;
13
+ type ZPopoverWidth = 'auto' | 'trigger' | number;
9
14
  type ZPopoverOverlaySize = {
10
15
  width?: number | string;
11
16
  minWidth?: number | string;
@@ -20,6 +25,7 @@ interface ZPopoverControl {
20
25
  isVisible: () => boolean;
21
26
  updatePosition: () => void;
22
27
  }
28
+ type ZPopoverVariants = VariantProps<typeof zPopoverVariants>;
23
29
 
24
30
  declare class ZPopoverComponent implements OnInit, OnDestroy {
25
31
  private static readonly _openPopovers;
@@ -114,7 +120,7 @@ declare class ZPopoverDirective implements OnInit, OnDestroy {
114
120
  readonly zHideDelay: _angular_core.InputSignal<number>;
115
121
  readonly zDisabled: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
116
122
  readonly zOffset: _angular_core.InputSignal<number>;
117
- readonly zPopoverWidth: _angular_core.InputSignal<number | "auto" | "trigger">;
123
+ readonly zPopoverWidth: _angular_core.InputSignal<ZPopoverWidth>;
118
124
  readonly zTriggerRef: _angular_core.InputSignal<HTMLElement | ElementRef<HTMLElement> | null>;
119
125
  readonly zManualClose: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
120
126
  readonly zOutsideClickClose: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
@@ -193,10 +199,7 @@ declare class ZPopoverDirective implements OnInit, OnDestroy {
193
199
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ZPopoverDirective, "[z-popover]", ["zPopover"], { "zContent": { "alias": "zPopoverContent"; "required": false; "isSignal": true; }; "zPosition": { "alias": "zPosition"; "required": false; "isSignal": true; }; "zTrigger": { "alias": "zTrigger"; "required": false; "isSignal": true; }; "zPopoverTrigger": { "alias": "zPopoverTrigger"; "required": false; "isSignal": true; }; "zClass": { "alias": "zClass"; "required": false; "isSignal": true; }; "zShowDelay": { "alias": "zShowDelay"; "required": false; "isSignal": true; }; "zHideDelay": { "alias": "zHideDelay"; "required": false; "isSignal": true; }; "zDisabled": { "alias": "zDisabled"; "required": false; "isSignal": true; }; "zOffset": { "alias": "zOffset"; "required": false; "isSignal": true; }; "zPopoverWidth": { "alias": "zPopoverWidth"; "required": false; "isSignal": true; }; "zTriggerRef": { "alias": "zTriggerRef"; "required": false; "isSignal": true; }; "zManualClose": { "alias": "zManualClose"; "required": false; "isSignal": true; }; "zOutsideClickClose": { "alias": "zOutsideClickClose"; "required": false; "isSignal": true; }; "zScrollClose": { "alias": "zScrollClose"; "required": false; "isSignal": true; }; "zSticky": { "alias": "zSticky"; "required": false; "isSignal": true; }; "zShowArrow": { "alias": "zShowArrow"; "required": false; "isSignal": true; }; "zKeyboardSafe": { "alias": "zKeyboardSafe"; "required": false; "isSignal": true; }; }, { "zShow": "zShow"; "zHide": "zHide"; "zHideStart": "zHideStart"; "zControl": "zControl"; "zPositionChange": "zPositionChange"; "zOutsideClick": "zOutsideClick"; }, never, never, true, never>;
194
200
  }
195
201
 
196
- declare const zPopoverVariants: (props?: ({
197
- zPosition?: "top" | "top-left" | "top-right" | "bottom" | "bottom-left" | "bottom-right" | "left" | "left-top" | "left-bottom" | "right" | "right-top" | "right-bottom" | null | undefined;
198
- } & class_variance_authority_types.ClassProp) | undefined) => string;
199
- type ZPopoverVariants = VariantProps<typeof zPopoverVariants>;
202
+ declare const Z_POPOVER_ANIMATION_DURATION = 200;
200
203
 
201
- export { ZPopoverComponent, ZPopoverDirective, zPopoverVariants };
202
- export type { ZPopoverContent, ZPopoverControl, ZPopoverOverlaySize, ZPopoverPaneStyles, ZPopoverPosition, ZPopoverTrigger, ZPopoverVariants };
204
+ export { ZPopoverComponent, ZPopoverDirective, Z_POPOVER_ANIMATION_DURATION, zPopoverVariants };
205
+ export type { ZPopoverContent, ZPopoverControl, ZPopoverOverlaySize, ZPopoverPaneStyles, ZPopoverPosition, ZPopoverTrigger, ZPopoverVariants, ZPopoverWidth };
@@ -17,7 +17,7 @@ declare class ZQrCodeComponent {
17
17
  readonly zLogo: _angular_core.InputSignal<string>;
18
18
  readonly zLogoSize: _angular_core.InputSignal<number>;
19
19
  readonly zLogoBgColor: _angular_core.InputSignal<string>;
20
- readonly zLogoBgShape: _angular_core.InputSignal<"circle" | "square" | "none">;
20
+ readonly zLogoBgShape: _angular_core.InputSignal<"square" | "circle" | "none">;
21
21
  readonly zLogoPadding: _angular_core.InputSignal<number>;
22
22
  readonly zFgColor: _angular_core.InputSignal<string>;
23
23
  readonly zBgColor: _angular_core.InputSignal<string>;
@@ -30,7 +30,7 @@ declare class ZQrCodeComponent {
30
30
  readonly zFrameText: _angular_core.InputSignal<string>;
31
31
  readonly zFrameColor: _angular_core.InputSignal<string>;
32
32
  readonly zFramePadding: _angular_core.InputSignal<number>;
33
- readonly zFrameBorderRadius: _angular_core.InputSignal<number>;
33
+ readonly zFrameBorderRadius: _angular_core.InputSignal<number | undefined>;
34
34
  readonly zDownloadable: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
35
35
  readonly zDownloadButton: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
36
36
  readonly zShadow: _angular_core.InputSignalWithTransform<boolean, string | boolean>;
@@ -38,6 +38,9 @@ declare class ZQrCodeComponent {
38
38
  private readonly _canvasRef;
39
39
  private readonly _platformId;
40
40
  protected readonly downloadText: _angular_core.WritableSignal<string>;
41
+ protected readonly frameBorderRadiusStyle: _angular_core.Signal<string>;
42
+ /** Resolves the frame radius to a px number for canvas drawing, reading the theme's --radius-lg when unset. */
43
+ private _resolveFrameBorderRadiusPx;
41
44
  constructor();
42
45
  /**
43
46
  * Renders the stylized QR code onto the canvas element