@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.
- package/fesm2022/mesgflow-ui-kit-core.mjs +63 -10
- package/fesm2022/mesgflow-ui-kit-core.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs +22 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-password-strength.mjs +590 -0
- package/fesm2022/mesgflow-ui-kit-password-strength.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs +17 -3
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit.mjs +1 -0
- package/fesm2022/mesgflow-ui-kit.mjs.map +1 -1
- package/package.json +5 -1
- package/tokens.json +1 -1
- package/types/mesgflow-ui-kit-core.d.ts +38 -2
- package/types/mesgflow-ui-kit-dialog.d.ts +1 -1
- package/types/mesgflow-ui-kit-password-strength.d.ts +180 -0
- package/types/mesgflow-ui-kit-sidebar.d.ts +8 -0
- package/types/mesgflow-ui-kit-table.d.ts +1 -1
- package/types/mesgflow-ui-kit.d.ts +1 -0
|
@@ -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<"
|
|
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<"
|
|
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';
|