@mesgflow/ui-kit 0.11.0 → 0.12.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.
@@ -384,6 +384,40 @@ interface MfPasswordInputLabels {
384
384
  show: string;
385
385
  hide: string;
386
386
  }
387
+ /** Parola gücü ölçeri (`mf-password-strength`). */
388
+ interface MfPasswordStrengthLabels {
389
+ /** `role="meter"` çubuğunun erişilebilir adı (ekran okuyucu özetinin de başı). */
390
+ ariaLabel: string;
391
+ levels: {
392
+ weak: string;
393
+ fair: string;
394
+ good: string;
395
+ strong: string;
396
+ };
397
+ /** Tahmincinin uyarı kodlarına karşılık gelen tek satırlık ipuçları. */
398
+ warnings: {
399
+ tooShort: string;
400
+ common: string;
401
+ personal: string;
402
+ repeated: string;
403
+ sequence: string;
404
+ };
405
+ /** Gereksinim listesinin (`<ul>`) erişilebilir adı. */
406
+ requirementsLabel: string;
407
+ /** Yerleşik gereksinim metinleri — `minLength`'te `{count}` sayıyla değiştirilir. */
408
+ requirements: {
409
+ minLength: string;
410
+ lowercase: string;
411
+ uppercase: string;
412
+ digit: string;
413
+ symbol: string;
414
+ };
415
+ /** Ekran okuyucu özeti — `{met}` / `{total}` sayılarla değiştirilir. */
416
+ requirementsMet: string;
417
+ /** Gereksinim satırının ekran okuyucu durumu (ikon yalnızca görsel). */
418
+ met: string;
419
+ unmet: string;
420
+ }
387
421
  interface MfQrCodeLabels {
388
422
  /** `role="img"` için varsayılan erişilebilir ad. */
389
423
  ariaLabel: string;
@@ -628,6 +662,7 @@ interface MfLabels {
628
662
  stepper: MfStepperLabels;
629
663
  progress: MfProgressLabels;
630
664
  passwordInput: MfPasswordInputLabels;
665
+ passwordStrength: MfPasswordStrengthLabels;
631
666
  qrCode: MfQrCodeLabels;
632
667
  chip: MfChipLabels;
633
668
  alert: MfAlertLabels;
@@ -703,6 +738,7 @@ declare const MF_OTP_INPUT_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.M
703
738
  declare const MF_STEPPER_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfStepperLabels>>;
704
739
  declare const MF_PROGRESS_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfProgressLabels>>;
705
740
  declare const MF_PASSWORD_INPUT_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfPasswordInputLabels>>;
741
+ declare const MF_PASSWORD_STRENGTH_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfPasswordStrengthLabels>>;
706
742
  declare const MF_QR_CODE_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfQrCodeLabels>>;
707
743
  declare const MF_CHIP_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfChipLabels>>;
708
744
  declare const MF_ALERT_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfAlertLabels>>;
@@ -762,5 +798,5 @@ interface ProvideMesgflowUiOptions {
762
798
  */
763
799
  declare function provideMesgflowUi(options?: ProvideMesgflowUiOptions): EnvironmentProviders;
764
800
 
765
- export { MF_AGENDA_LABELS, MF_ALERT_LABELS, MF_AUTH_CARD_LABELS, MF_AVATAR_GROUP_LABELS, MF_BOX_INPUT_LABELS, MF_BREADCRUMB_LABELS, MF_CAROUSEL_LABELS, MF_CHARACTER_COUNT_LABELS, MF_CHART_LABELS, MF_CHIP_LABELS, MF_COLOR_PICKER_LABELS, MF_COMBOBOX_LABELS, MF_COMMAND_LABELS, MF_COMMON_LABELS, MF_COPY_LABELS, MF_COUNTDOWN_LABELS, MF_DATE_LOCALE, MF_DATE_PICKER_LABELS, MF_DIALOG_LABELS, MF_DROPZONE_LABELS, MF_FILE_UPLOAD_LABELS, MF_INLINE_EDIT_LABELS, MF_INVITE_MEMBERS_LABELS, MF_LABELS, MF_LIGHTBOX_LABELS, MF_MENTION_LABELS, MF_NOTIFICATION_CENTER_LABELS, MF_OTP_INPUT_LABELS, MF_PAGINATION_LABELS, MF_PANEL_GROUP_LABELS, MF_PASSWORD_INPUT_LABELS, MF_PROGRESS_LABELS, MF_QR_CODE_LABELS, MF_RATING_LABELS, MF_SEARCH_INPUT_LABELS, MF_SELECT_LABELS, MF_SIDEBAR_LABELS, MF_SLIDER_LABELS, MF_SORTABLE_LABELS, MF_SPLIT_BUTTON_LABELS, MF_STAT_TILE_LABELS, MF_STEPPER_LABELS, MF_TABLE_LABELS, MF_TABS_LABELS, MF_THEME_SWITCHER_LABELS, MF_TIME_PICKER_LABELS, MF_TOAST_LABELS, MF_TOUR_LABELS, MF_TRANSFER_LIST_LABELS, MF_TREE_SELECT_LABELS, SlidingIndicator, ValueAccessorBase, cn, containerSurface, controlSize, controlSurface, disabledRecipe, errorRecipe, exitDurationMs, focusRecipe, glassSurface, inlineStartRatio, isRtl, mergeLabels, mfLabelsEn, nextId, overlayPositions, overlaySurface, parseCssDuration, pointerPositions, prefersReducedMotion, pressRecipe, provideMesgflowUi, scrollFromInlineStart, transitionRecipe };
766
- export type { DeepPartial, MfAgendaLabels, MfAlertLabels, MfAuthCardLabels, MfAvatarGroupLabels, MfBoxInputLabels, MfBreadcrumbLabels, MfCarouselLabels, MfCharacterCountLabels, MfChartLabels, MfChipLabels, MfColorPickerLabels, MfComboboxLabels, MfCommandLabels, MfCommonLabels, MfControlSize, MfCopyLabels, MfCountdownLabels, MfDatePickerLabels, MfDialogLabels, MfDropzoneLabels, MfFileUploadLabels, MfInlineEditLabels, MfInviteMembersLabels, MfLabels, MfLightboxLabels, MfMentionLabels, MfNotificationCenterLabels, MfOtpInputLabels, MfPaginationLabels, MfPanelGroupLabels, MfPasswordInputLabels, MfPlacement, MfProgressLabels, MfQrCodeLabels, MfRatingLabels, MfSearchInputLabels, MfSelectLabels, MfSidebarLabels, MfSize, MfSliderLabels, MfSortableLabels, MfSplitButtonLabels, MfStatTileLabels, MfStepperLabels, MfTableFilterLabels, MfTableFilterOperatorLabels, MfTableLabels, MfTablePaginationLabels, MfTabsLabels, MfThemeSwitcherLabels, MfTimePickerLabels, MfToastLabels, MfTone, MfTourLabels, MfTransferListLabels, MfTreeSelectLabels, ProvideMesgflowUiOptions, SlidingIndicatorAxis };
801
+ export { MF_AGENDA_LABELS, MF_ALERT_LABELS, MF_AUTH_CARD_LABELS, MF_AVATAR_GROUP_LABELS, MF_BOX_INPUT_LABELS, MF_BREADCRUMB_LABELS, MF_CAROUSEL_LABELS, MF_CHARACTER_COUNT_LABELS, MF_CHART_LABELS, MF_CHIP_LABELS, MF_COLOR_PICKER_LABELS, MF_COMBOBOX_LABELS, MF_COMMAND_LABELS, MF_COMMON_LABELS, MF_COPY_LABELS, MF_COUNTDOWN_LABELS, MF_DATE_LOCALE, MF_DATE_PICKER_LABELS, MF_DIALOG_LABELS, MF_DROPZONE_LABELS, MF_FILE_UPLOAD_LABELS, MF_INLINE_EDIT_LABELS, MF_INVITE_MEMBERS_LABELS, MF_LABELS, MF_LIGHTBOX_LABELS, MF_MENTION_LABELS, MF_NOTIFICATION_CENTER_LABELS, MF_OTP_INPUT_LABELS, MF_PAGINATION_LABELS, MF_PANEL_GROUP_LABELS, MF_PASSWORD_INPUT_LABELS, MF_PASSWORD_STRENGTH_LABELS, MF_PROGRESS_LABELS, MF_QR_CODE_LABELS, MF_RATING_LABELS, MF_SEARCH_INPUT_LABELS, MF_SELECT_LABELS, MF_SIDEBAR_LABELS, MF_SLIDER_LABELS, MF_SORTABLE_LABELS, MF_SPLIT_BUTTON_LABELS, MF_STAT_TILE_LABELS, MF_STEPPER_LABELS, MF_TABLE_LABELS, MF_TABS_LABELS, MF_THEME_SWITCHER_LABELS, MF_TIME_PICKER_LABELS, MF_TOAST_LABELS, MF_TOUR_LABELS, MF_TRANSFER_LIST_LABELS, MF_TREE_SELECT_LABELS, SlidingIndicator, ValueAccessorBase, cn, containerSurface, controlSize, controlSurface, disabledRecipe, errorRecipe, exitDurationMs, focusRecipe, glassSurface, inlineStartRatio, isRtl, mergeLabels, mfLabelsEn, nextId, overlayPositions, overlaySurface, parseCssDuration, pointerPositions, prefersReducedMotion, pressRecipe, provideMesgflowUi, scrollFromInlineStart, transitionRecipe };
802
+ export type { DeepPartial, MfAgendaLabels, MfAlertLabels, MfAuthCardLabels, MfAvatarGroupLabels, MfBoxInputLabels, MfBreadcrumbLabels, MfCarouselLabels, MfCharacterCountLabels, MfChartLabels, MfChipLabels, MfColorPickerLabels, MfComboboxLabels, MfCommandLabels, MfCommonLabels, MfControlSize, MfCopyLabels, MfCountdownLabels, MfDatePickerLabels, MfDialogLabels, MfDropzoneLabels, MfFileUploadLabels, MfInlineEditLabels, MfInviteMembersLabels, MfLabels, MfLightboxLabels, MfMentionLabels, MfNotificationCenterLabels, MfOtpInputLabels, MfPaginationLabels, MfPanelGroupLabels, MfPasswordInputLabels, MfPasswordStrengthLabels, MfPlacement, MfProgressLabels, MfQrCodeLabels, MfRatingLabels, MfSearchInputLabels, MfSelectLabels, MfSidebarLabels, MfSize, MfSliderLabels, MfSortableLabels, MfSplitButtonLabels, MfStatTileLabels, MfStepperLabels, MfTableFilterLabels, MfTableFilterOperatorLabels, MfTableLabels, MfTablePaginationLabels, MfTabsLabels, MfThemeSwitcherLabels, MfTimePickerLabels, MfToastLabels, MfTone, MfTourLabels, MfTransferListLabels, MfTreeSelectLabels, ProvideMesgflowUiOptions, SlidingIndicatorAxis };
@@ -75,7 +75,7 @@ declare class ConfirmDialog {
75
75
  protected readonly toneIcon: _angular_core.Signal<string>;
76
76
  protected readonly toneBadgeClass: _angular_core.Signal<string>;
77
77
  /** Her ton `filled` — warning da diğer tonlarla aynı `bg-X-fill` rol deseninde dolu blok kullanıyor (bkz. button.variants.ts), eski `outlined` istisnası kaldırıldı. */
78
- protected readonly confirmTone: _angular_core.Signal<"warning" | "danger" | "info" | "success" | "neutral" | "help" | "primary" | null | undefined>;
78
+ protected readonly confirmTone: _angular_core.Signal<"danger" | "warning" | "info" | "success" | "neutral" | "help" | "primary" | null | undefined>;
79
79
  protected readonly submitting: _angular_core.WritableSignal<boolean>;
80
80
  protected readonly actionError: _angular_core.WritableSignal<string | null>;
81
81
  protected onCancel(): void;
@@ -0,0 +1,180 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { InjectionToken } from '@angular/core';
3
+ import { MfPasswordStrengthLabels } from '@mesgflow/ui-kit/core';
4
+ import * as class_variance_authority_types from 'class-variance-authority/types';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ /** 0 = tahmin edilmesi çok kolay … 4 = çok güçlü (zxcvbn ile aynı ölçek). */
8
+ type MfPasswordStrengthScore = 0 | 1 | 2 | 3 | 4;
9
+ type MfPasswordStrengthLevel = 'weak' | 'fair' | 'good' | 'strong';
10
+ /** Tahmincinin en baskın zayıflığı — metni `MfLabels.passwordStrength.warnings`'ten gelir. */
11
+ type MfPasswordStrengthWarning = 'tooShort' | 'common' | 'personal' | 'repeated' | 'sequence';
12
+ interface MfPasswordStrengthResult {
13
+ score: MfPasswordStrengthScore;
14
+ /** Yerleşik ipucu kodu — `hint` verilmediyse etiketlerden metne çevrilir. */
15
+ warning?: MfPasswordStrengthWarning;
16
+ /** Hazır (zaten yerelleştirilmiş) ipucu metni — `warning`'in önüne geçer (özel tahminciler için). */
17
+ hint?: string;
18
+ }
19
+ interface MfPasswordStrengthOptions {
20
+ /** Bunun altındaki uzunluk en fazla skor 1 alır (`tooShort`). Varsayılan 8. */
21
+ minLength?: number;
22
+ /** Parolada geçmemesi gereken kişisel değerler (e-posta, ad, kullanıcı adı…). */
23
+ userInputs?: readonly string[];
24
+ }
25
+ type MfPasswordStrengthEstimator = (value: string, options: Required<MfPasswordStrengthOptions>) => MfPasswordStrengthResult;
26
+ /**
27
+ * Bağımlılıksız, birkaç KB'lık tahmin edilebilirlik tahmincisi. "1 büyük harf + 1 rakam" saymaz
28
+ * (NIST 800-63B): her karakterin TAHMİN EDİLEMEZ olup olmadığına bakar, tahmin edilebilir
29
+ * olanları (tekrar, ardışık dizi, klavye satırı, yıl, yaygın kelime, kişisel değer) entropiye
30
+ * saymaz, kalan "etkin uzunluk × log2(karakter havuzu)" bitini 0–4'e eşler.
31
+ *
32
+ * Sınırı: tam bir sözlük taşımaz — sözlükte olup listede olmayan kelime tabanlı parolaları
33
+ * fazla puanlayabilir. Tam kapsam için `zxcvbn-ts`'i `MF_PASSWORD_STRENGTH_ESTIMATOR` ile takın.
34
+ */
35
+ declare function estimatePasswordStrength(value: string, options?: MfPasswordStrengthOptions): MfPasswordStrengthResult;
36
+ /**
37
+ * `mf-password-strength`'in kullandığı tahminci — varsayılan `estimatePasswordStrength`.
38
+ * Uygulama genelinde değiştirmek için (ör. `zxcvbn-ts`):
39
+ * `{ provide: MF_PASSWORD_STRENGTH_ESTIMATOR, useValue: (v, o) => fromZxcvbn(zxcvbn(v, o.userInputs)) }`.
40
+ */
41
+ declare const MF_PASSWORD_STRENGTH_ESTIMATOR: InjectionToken<MfPasswordStrengthEstimator>;
42
+ /** Skoru görsel seviyeye eşler: 0–1 zayıf, 2 orta, 3 iyi, 4 güçlü. */
43
+ declare function passwordStrengthLevel(score: MfPasswordStrengthScore): MfPasswordStrengthLevel;
44
+
45
+ /**
46
+ * Kontrol listesinin bir satırı. Yerleşik türlerin metni `MfLabels.passwordStrength.requirements`'tan
47
+ * gelir; `custom` türün `label`'ı tüketicinin kendi (zaten yerelleştirilmiş) metnidir.
48
+ */
49
+ type MfPasswordRequirement = {
50
+ kind: 'minLength';
51
+ value: number;
52
+ } | {
53
+ kind: 'lowercase' | 'uppercase' | 'digit' | 'symbol';
54
+ } | {
55
+ kind: 'custom';
56
+ id: string;
57
+ label: string;
58
+ test: (value: string) => boolean;
59
+ };
60
+ interface MfPasswordRequirementCheck {
61
+ requirement: MfPasswordRequirement;
62
+ met: boolean;
63
+ }
64
+ /** Tek bir gereksinimi sınar — Unicode-farkında (`ş` küçük harf, `Ğ` büyük harf sayılır). */
65
+ declare function meetsPasswordRequirement(value: string, requirement: MfPasswordRequirement): boolean;
66
+ /** Gereksinim listesini sınar — form doğrulayıcısında da aynı sonucu üretmek için dışa açık. */
67
+ declare function checkPasswordRequirements(value: string, requirements: readonly MfPasswordRequirement[]): MfPasswordRequirementCheck[];
68
+
69
+ /**
70
+ * `<mf-password-input inputId="pw" autocomplete="new-password" [(value)]="password" />
71
+ * <mf-password-strength for="pw" [value]="password()" [requirements]="rules" />`
72
+ *
73
+ * Kayıt / parola değiştirme formlarında parola alanının ALTINA kompoze edilen güç ölçer —
74
+ * `mf-character-count`'un `mfInput`'a göre durduğu yerde durur, değeri herhangi bir kaynaktan
75
+ * alabilir. Parolayı saklamaz, yaymaz: tek girdisi `value`.
76
+ *
77
+ * - Ölçüm: tahmin edilebilirlik (uzunluk ağırlıklı + tekrar/dizi/yaygın kelime/kişisel değer
78
+ * cezaları), "1 büyük harf + 1 rakam" sayımı DEĞİL — bkz. `estimatePasswordStrength`.
79
+ * Uygulama genelinde `MF_PASSWORD_STRENGTH_ESTIMATOR`, örnek bazında `[result]` ile değişir
80
+ * (ör. `zxcvbn-ts`, sunucu/HIBP sonucu).
81
+ * - Görsel: 4 segment + seviye etiketi + tek satır ipucu; isteğe bağlı gereksinim listesi.
82
+ * Renk tek gösterge değil — segment sayısı ve metin de aynı bilgiyi taşır (WCAG 1.4.1).
83
+ * - Erişilebilirlik: çubuk `role="meter"` (`aria-valuetext` = seviye adı). Görünen metin
84
+ * ekran okuyucudan gizli; yerine `for` ile bağlanan kontrolün `aria-describedby`'ına eklenen
85
+ * gizli bir özet okunur (yalnızca kendi id'sini ekler/çıkarır — `mf-field` ile çakışmaz).
86
+ * `aria-live` bölgesi her tuşta DEĞİL, yalnızca seviye değişince duyurur.
87
+ *
88
+ * Dışa açık sinyaller (`#strength="mfPasswordStrength"`): `score()`, `level()`, `satisfied()` —
89
+ * ör. gönder düğmesini `!strength.satisfied()` iken kilitlemek için.
90
+ */
91
+ declare class PasswordStrength {
92
+ /** Ölçülecek parola. */
93
+ readonly value: _angular_core.InputSignal<string>;
94
+ /** Parola `<input>`'unun id'si (`mf-password-input [inputId]` / `mf-field for` ile aynı). */
95
+ readonly for: _angular_core.InputSignal<string | undefined>;
96
+ readonly size: _angular_core.InputSignal<"sm" | "md" | "lg" | null | undefined>;
97
+ /** Kontrol listesi — boşsa çizilmez. Karşılanmayan varken skor en fazla "orta" gösterilir. */
98
+ readonly requirements: _angular_core.InputSignal<readonly MfPasswordRequirement[]>;
99
+ /** Parolada geçmemesi gereken kişisel değerler (e-posta, ad…) — yerleşik tahminciye iletilir. */
100
+ readonly userInputs: _angular_core.InputSignal<readonly string[]>;
101
+ /** Bunun altındaki uzunluk en fazla "zayıf" sayılır. */
102
+ readonly minLength: _angular_core.InputSignal<number>;
103
+ /** Kontrollü mod: verilirse tahminci ÇALIŞMAZ, bu sonuç gösterilir (async/sunucu tahmincileri). */
104
+ readonly result: _angular_core.InputSignal<MfPasswordStrengthResult | undefined>;
105
+ /** Örnek bazında metin override'ı — verilmeyen alanlar `provideMesgflowUi` etiketlerinden gelir. */
106
+ readonly labels: _angular_core.InputSignal<{
107
+ ariaLabel?: string | undefined;
108
+ levels?: {
109
+ weak?: string | undefined;
110
+ fair?: string | undefined;
111
+ good?: string | undefined;
112
+ strong?: string | undefined;
113
+ } | undefined;
114
+ warnings?: {
115
+ tooShort?: string | undefined;
116
+ common?: string | undefined;
117
+ personal?: string | undefined;
118
+ repeated?: string | undefined;
119
+ sequence?: string | undefined;
120
+ } | undefined;
121
+ requirementsLabel?: string | undefined;
122
+ requirements?: {
123
+ minLength?: string | undefined;
124
+ lowercase?: string | undefined;
125
+ uppercase?: string | undefined;
126
+ digit?: string | undefined;
127
+ symbol?: string | undefined;
128
+ } | undefined;
129
+ requirementsMet?: string | undefined;
130
+ met?: string | undefined;
131
+ unmet?: string | undefined;
132
+ } | undefined>;
133
+ private readonly document;
134
+ private readonly estimator;
135
+ private readonly injectedLabels;
136
+ protected readonly text: _angular_core.Signal<MfPasswordStrengthLabels>;
137
+ protected readonly segments: readonly [0, 1, 2, 3];
138
+ protected readonly staggerMs = 40;
139
+ protected readonly descriptionId: string;
140
+ private readonly estimate;
141
+ protected readonly checks: _angular_core.Signal<{
142
+ met: boolean;
143
+ key: string;
144
+ label: string;
145
+ }[]>;
146
+ /** Tüm gereksinimler karşılandı mı (liste boşsa `true`). */
147
+ readonly satisfied: _angular_core.Signal<boolean>;
148
+ /** Gösterilen skor (0–4) — karşılanmamış gereksinim varken en fazla 2. */
149
+ readonly score: _angular_core.Signal<MfPasswordStrengthScore>;
150
+ /** Görsel seviye — değer boşken `null`. */
151
+ readonly level: _angular_core.Signal<MfPasswordStrengthLevel | null>;
152
+ protected readonly filled: _angular_core.Signal<number>;
153
+ protected readonly levelLabel: _angular_core.Signal<string>;
154
+ protected readonly hint: _angular_core.Signal<string>;
155
+ protected readonly metCount: _angular_core.Signal<number>;
156
+ protected readonly requirementsSummary: _angular_core.Signal<string>;
157
+ /** Kontrole odaklanınca okunan gizli özet. Değer boşken gereksinimleri sıralar. */
158
+ protected readonly description: _angular_core.Signal<string>;
159
+ /**
160
+ * Canlı bölge metni YALNIZCA seviyeye bağlı — aynı seviyede yazmaya devam etmek metni
161
+ * değiştirmediği için DOM'a yazılmaz, ekran okuyucu her tuşta konuşmaz.
162
+ */
163
+ protected readonly announcement: _angular_core.Signal<string>;
164
+ protected readonly levelText: _angular_core.Signal<string>;
165
+ protected readonly trackClasses: _angular_core.Signal<string>;
166
+ protected readonly hostClasses: _angular_core.Signal<string>;
167
+ protected segmentFill(index: number): string;
168
+ constructor();
169
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<PasswordStrength, never>;
170
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PasswordStrength, "mf-password-strength", ["mfPasswordStrength"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "for": { "alias": "for"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "requirements": { "alias": "requirements"; "required": false; "isSignal": true; }; "userInputs": { "alias": "userInputs"; "required": false; "isSignal": true; }; "minLength": { "alias": "minLength"; "required": false; "isSignal": true; }; "result": { "alias": "result"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
171
+ }
172
+
173
+ /** Segment satırı — boyut ekseni `mf-progress` çubuğunun kalınlıklarıyla aynı ritimde. */
174
+ declare const passwordStrengthTrackVariants: (props?: ({
175
+ size?: "sm" | "md" | "lg" | null | undefined;
176
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
177
+ type PasswordStrengthSize = VariantProps<typeof passwordStrengthTrackVariants>['size'];
178
+
179
+ export { MF_PASSWORD_STRENGTH_ESTIMATOR, PasswordStrength, checkPasswordRequirements, estimatePasswordStrength, meetsPasswordRequirement, passwordStrengthLevel, passwordStrengthTrackVariants };
180
+ export type { MfPasswordRequirement, MfPasswordRequirementCheck, MfPasswordStrengthEstimator, MfPasswordStrengthLevel, MfPasswordStrengthOptions, MfPasswordStrengthResult, MfPasswordStrengthScore, MfPasswordStrengthWarning, PasswordStrengthSize };
@@ -221,6 +221,14 @@ declare class SidebarTenantSwitcher {
221
221
  private readonly sidebarLabels;
222
222
  protected readonly effectiveLabel: _angular_core.Signal<string>;
223
223
  protected readonly effectiveNoTenantsLabel: _angular_core.Signal<string>;
224
+ /**
225
+ * Tetiğin erişilebilir adı. `description` varken görsel ikinci satır eylem
226
+ * etiketinin ("Switch tenant") yerini alır — ad eylemi söylemezdi; bu yüzden
227
+ * "{eylem}: {ad}" verilir, açıklama `aria-describedby` ile okunur. Açıklama
228
+ * yoksa eski davranış: genişken içerikten türer ("{ad} {eylem}"), daraltılmışken ad.
229
+ */
230
+ protected readonly triggerAriaLabel: _angular_core.Signal<string | null>;
231
+ protected readonly descriptionId: string;
224
232
  protected readonly cn: typeof cn;
225
233
  protected readonly open: _angular_core.WritableSignal<boolean>;
226
234
  protected readonly highlighted: _angular_core.WritableSignal<number>;
@@ -655,7 +655,7 @@ declare class TableFilterMenu<T> {
655
655
  /** Kaldirilan filtrenin id'si — checkbox listesi sifir secime inince (ekleme YA DA duzenleme modunda) emit edilir, ust bilesen o id'yi chip listesinden cikarir. */
656
656
  readonly remove: _angular_core.OutputEmitterRef<string>;
657
657
  readonly closed: _angular_core.OutputEmitterRef<void>;
658
- protected readonly step: _angular_core.WritableSignal<"value" | "field">;
658
+ protected readonly step: _angular_core.WritableSignal<"field" | "value">;
659
659
  protected readonly fieldQuery: _angular_core.WritableSignal<string>;
660
660
  protected readonly fieldHighlighted: _angular_core.WritableSignal<number>;
661
661
  protected readonly selectedField: _angular_core.WritableSignal<string | null>;
@@ -52,6 +52,7 @@ export * from '@mesgflow/ui-kit/otp-input';
52
52
  export * from '@mesgflow/ui-kit/page-header';
53
53
  export * from '@mesgflow/ui-kit/pagination';
54
54
  export * from '@mesgflow/ui-kit/password-input';
55
+ export * from '@mesgflow/ui-kit/password-strength';
55
56
  export * from '@mesgflow/ui-kit/popover';
56
57
  export * from '@mesgflow/ui-kit/progress';
57
58
  export * from '@mesgflow/ui-kit/qr-code';