@mesgflow/ui-kit 0.6.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/LICENSE +21 -0
- package/README.md +200 -0
- package/fesm2022/mesgflow-ui-kit-accordion.mjs +75 -0
- package/fesm2022/mesgflow-ui-kit-accordion.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-alert.mjs +165 -0
- package/fesm2022/mesgflow-ui-kit-alert.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-avatar-group.mjs +88 -0
- package/fesm2022/mesgflow-ui-kit-avatar-group.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-avatar.mjs +123 -0
- package/fesm2022/mesgflow-ui-kit-avatar.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-badge.mjs +68 -0
- package/fesm2022/mesgflow-ui-kit-badge.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-banner.mjs +111 -0
- package/fesm2022/mesgflow-ui-kit-banner.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-box-input.mjs +78 -0
- package/fesm2022/mesgflow-ui-kit-box-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-brand.mjs +120 -0
- package/fesm2022/mesgflow-ui-kit-brand.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs +84 -0
- package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-button-group.mjs +37 -0
- package/fesm2022/mesgflow-ui-kit-button-group.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-button.mjs +359 -0
- package/fesm2022/mesgflow-ui-kit-button.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-card.mjs +128 -0
- package/fesm2022/mesgflow-ui-kit-card.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-chart.mjs +538 -0
- package/fesm2022/mesgflow-ui-kit-chart.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs +45 -0
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-chip.mjs +123 -0
- package/fesm2022/mesgflow-ui-kit-chip.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-code-block.mjs +71 -0
- package/fesm2022/mesgflow-ui-kit-code-block.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-collapsible.mjs +89 -0
- package/fesm2022/mesgflow-ui-kit-collapsible.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs +210 -0
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-combobox.mjs +181 -0
- package/fesm2022/mesgflow-ui-kit-combobox.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-command.mjs +491 -0
- package/fesm2022/mesgflow-ui-kit-command.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs +92 -0
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-copy-button.mjs +167 -0
- package/fesm2022/mesgflow-ui-kit-copy-button.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-core.mjs +624 -0
- package/fesm2022/mesgflow-ui-kit-core.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs +643 -0
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-description-list.mjs +76 -0
- package/fesm2022/mesgflow-ui-kit-description-list.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-dialog.mjs +700 -0
- package/fesm2022/mesgflow-ui-kit-dialog.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-divider.mjs +62 -0
- package/fesm2022/mesgflow-ui-kit-divider.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs +126 -0
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-empty-state.mjs +70 -0
- package/fesm2022/mesgflow-ui-kit-empty-state.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-field.mjs +42 -0
- package/fesm2022/mesgflow-ui-kit-field.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-hover-card.mjs +171 -0
- package/fesm2022/mesgflow-ui-kit-hover-card.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs +258 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-icon.mjs +174 -0
- package/fesm2022/mesgflow-ui-kit-icon.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-input.mjs +448 -0
- package/fesm2022/mesgflow-ui-kit-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-kbd.mjs +24 -0
- package/fesm2022/mesgflow-ui-kit-kbd.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-link.mjs +48 -0
- package/fesm2022/mesgflow-ui-kit-link.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-menu.mjs +105 -0
- package/fesm2022/mesgflow-ui-kit-menu.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-number-input.mjs +153 -0
- package/fesm2022/mesgflow-ui-kit-number-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-otp-input.mjs +164 -0
- package/fesm2022/mesgflow-ui-kit-otp-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-page-header.mjs +83 -0
- package/fesm2022/mesgflow-ui-kit-page-header.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-pagination.mjs +99 -0
- package/fesm2022/mesgflow-ui-kit-pagination.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-password-input.mjs +120 -0
- package/fesm2022/mesgflow-ui-kit-password-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-popover.mjs +213 -0
- package/fesm2022/mesgflow-ui-kit-popover.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-progress.mjs +82 -0
- package/fesm2022/mesgflow-ui-kit-progress.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-radio.mjs +123 -0
- package/fesm2022/mesgflow-ui-kit-radio.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-rating.mjs +116 -0
- package/fesm2022/mesgflow-ui-kit-rating.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-scroll-area.mjs +84 -0
- package/fesm2022/mesgflow-ui-kit-scroll-area.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-search-input.mjs +154 -0
- package/fesm2022/mesgflow-ui-kit-search-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs +95 -0
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-select.mjs +227 -0
- package/fesm2022/mesgflow-ui-kit-select.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs +449 -0
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs +74 -0
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-slider.mjs +179 -0
- package/fesm2022/mesgflow-ui-kit-slider.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-spinner.mjs +67 -0
- package/fesm2022/mesgflow-ui-kit-spinner.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-splitter.mjs +97 -0
- package/fesm2022/mesgflow-ui-kit-splitter.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs +98 -0
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-stepper.mjs +133 -0
- package/fesm2022/mesgflow-ui-kit-stepper.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-switch.mjs +73 -0
- package/fesm2022/mesgflow-ui-kit-switch.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-table.mjs +1783 -0
- package/fesm2022/mesgflow-ui-kit-table.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tabs.mjs +569 -0
- package/fesm2022/mesgflow-ui-kit-tabs.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs +138 -0
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs +53 -0
- package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-theming.mjs +1016 -0
- package/fesm2022/mesgflow-ui-kit-theming.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs +138 -0
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-timeline.mjs +91 -0
- package/fesm2022/mesgflow-ui-kit-timeline.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-toast.mjs +202 -0
- package/fesm2022/mesgflow-ui-kit-toast.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-toggle.mjs +243 -0
- package/fesm2022/mesgflow-ui-kit-toggle.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs +99 -0
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs +160 -0
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tour.mjs +272 -0
- package/fesm2022/mesgflow-ui-kit-tour.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tree-select.mjs +177 -0
- package/fesm2022/mesgflow-ui-kit-tree-select.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tree.mjs +82 -0
- package/fesm2022/mesgflow-ui-kit-tree.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit.mjs +12851 -0
- package/fesm2022/mesgflow-ui-kit.mjs.map +1 -0
- package/package.json +374 -0
- package/preset.css +20 -0
- package/tokens/color.css +693 -0
- package/tokens/contrast.css +68 -0
- package/tokens/elevation.css +68 -0
- package/tokens/motion.css +277 -0
- package/tokens/radius.css +69 -0
- package/tokens/typography.css +127 -0
- package/tokens.css +41 -0
- package/types/mesgflow-ui-kit-accordion.d.ts +42 -0
- package/types/mesgflow-ui-kit-alert.d.ts +60 -0
- package/types/mesgflow-ui-kit-avatar-group.d.ts +28 -0
- package/types/mesgflow-ui-kit-avatar.d.ts +23 -0
- package/types/mesgflow-ui-kit-badge.d.ts +39 -0
- package/types/mesgflow-ui-kit-banner.d.ts +42 -0
- package/types/mesgflow-ui-kit-box-input.d.ts +45 -0
- package/types/mesgflow-ui-kit-brand.d.ts +48 -0
- package/types/mesgflow-ui-kit-breadcrumb.d.ts +26 -0
- package/types/mesgflow-ui-kit-button-group.d.ts +17 -0
- package/types/mesgflow-ui-kit-button.d.ts +75 -0
- package/types/mesgflow-ui-kit-card.d.ts +71 -0
- package/types/mesgflow-ui-kit-chart.d.ts +242 -0
- package/types/mesgflow-ui-kit-checkbox.d.ts +17 -0
- package/types/mesgflow-ui-kit-chip.d.ts +46 -0
- package/types/mesgflow-ui-kit-code-block.d.ts +56 -0
- package/types/mesgflow-ui-kit-collapsible.d.ts +39 -0
- package/types/mesgflow-ui-kit-color-picker.d.ts +78 -0
- package/types/mesgflow-ui-kit-combobox.d.ts +74 -0
- package/types/mesgflow-ui-kit-command.d.ts +185 -0
- package/types/mesgflow-ui-kit-context-menu.d.ts +40 -0
- package/types/mesgflow-ui-kit-copy-button.d.ts +47 -0
- package/types/mesgflow-ui-kit-core.d.ts +508 -0
- package/types/mesgflow-ui-kit-date-picker.d.ts +215 -0
- package/types/mesgflow-ui-kit-description-list.d.ts +23 -0
- package/types/mesgflow-ui-kit-dialog.d.ts +342 -0
- package/types/mesgflow-ui-kit-divider.d.ts +23 -0
- package/types/mesgflow-ui-kit-dropzone.d.ts +47 -0
- package/types/mesgflow-ui-kit-empty-state.d.ts +18 -0
- package/types/mesgflow-ui-kit-field.d.ts +26 -0
- package/types/mesgflow-ui-kit-hover-card.d.ts +52 -0
- package/types/mesgflow-ui-kit-i18n-tr.d.ts +14 -0
- package/types/mesgflow-ui-kit-icon.d.ts +76 -0
- package/types/mesgflow-ui-kit-input.d.ts +186 -0
- package/types/mesgflow-ui-kit-kbd.d.ts +9 -0
- package/types/mesgflow-ui-kit-link.d.ts +20 -0
- package/types/mesgflow-ui-kit-menu.d.ts +53 -0
- package/types/mesgflow-ui-kit-number-input.d.ts +55 -0
- package/types/mesgflow-ui-kit-otp-input.d.ts +44 -0
- package/types/mesgflow-ui-kit-page-header.d.ts +31 -0
- package/types/mesgflow-ui-kit-pagination.d.ts +50 -0
- package/types/mesgflow-ui-kit-password-input.d.ts +33 -0
- package/types/mesgflow-ui-kit-popover.d.ts +62 -0
- package/types/mesgflow-ui-kit-progress.d.ts +32 -0
- package/types/mesgflow-ui-kit-radio.d.ts +59 -0
- package/types/mesgflow-ui-kit-rating.d.ts +56 -0
- package/types/mesgflow-ui-kit-scroll-area.d.ts +27 -0
- package/types/mesgflow-ui-kit-search-input.d.ts +72 -0
- package/types/mesgflow-ui-kit-segmented-control.d.ts +54 -0
- package/types/mesgflow-ui-kit-select.d.ts +89 -0
- package/types/mesgflow-ui-kit-sidebar.d.ts +224 -0
- package/types/mesgflow-ui-kit-skeleton.d.ts +29 -0
- package/types/mesgflow-ui-kit-slider.d.ts +40 -0
- package/types/mesgflow-ui-kit-spinner.d.ts +31 -0
- package/types/mesgflow-ui-kit-splitter.d.ts +40 -0
- package/types/mesgflow-ui-kit-stat-tile.d.ts +54 -0
- package/types/mesgflow-ui-kit-stepper.d.ts +48 -0
- package/types/mesgflow-ui-kit-switch.d.ts +34 -0
- package/types/mesgflow-ui-kit-table.d.ts +805 -0
- package/types/mesgflow-ui-kit-tabs.d.ts +269 -0
- package/types/mesgflow-ui-kit-tag-input.d.ts +33 -0
- package/types/mesgflow-ui-kit-theme-switcher.d.ts +27 -0
- package/types/mesgflow-ui-kit-theming.d.ts +745 -0
- package/types/mesgflow-ui-kit-time-picker.d.ts +54 -0
- package/types/mesgflow-ui-kit-timeline.d.ts +27 -0
- package/types/mesgflow-ui-kit-toast.d.ts +94 -0
- package/types/mesgflow-ui-kit-toggle.d.ts +110 -0
- package/types/mesgflow-ui-kit-toolbar.d.ts +52 -0
- package/types/mesgflow-ui-kit-tooltip.d.ts +55 -0
- package/types/mesgflow-ui-kit-tour.d.ts +66 -0
- package/types/mesgflow-ui-kit-tree-select.d.ts +65 -0
- package/types/mesgflow-ui-kit-tree.d.ts +44 -0
- package/types/mesgflow-ui-kit.d.ts +5444 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { Locale } from 'date-fns';
|
|
3
|
+
import { MfDatePickerLabels, ValueAccessorBase } from '@mesgflow/ui-kit/core';
|
|
4
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
5
|
+
|
|
6
|
+
interface DateRange {
|
|
7
|
+
start: Date | null;
|
|
8
|
+
end: Date | null;
|
|
9
|
+
}
|
|
10
|
+
type DateRangePresetId = 'today' | 'last7' | 'last30' | 'thisMonth';
|
|
11
|
+
/**
|
|
12
|
+
* Hazır tarih aralıkları — kurumsal panellerde tarih filtresinin %90'ı bunlar
|
|
13
|
+
* (bkz. eski `table-filter.model.ts` `dateRangeFor`, ISO metin üreten
|
|
14
|
+
* kardeşi — burada `Date` nesneleri üretiyor, ISO'ya çevirme çağıranın işi,
|
|
15
|
+
* bkz. `date-picker.model.ts` kullanan `table-filter.model.ts`'teki
|
|
16
|
+
* `dateToIso`). `date-picker`'ın kendi paketi TEK KAYNAK — Table bunu import
|
|
17
|
+
* eder, tersi değil.
|
|
18
|
+
*/
|
|
19
|
+
declare function dateRangeForPreset(preset: DateRangePresetId): DateRange;
|
|
20
|
+
/**
|
|
21
|
+
* Bir ay ızgarası — 6 satır × 7 sütun, komşu ay günleri dahil (haftanın ilk
|
|
22
|
+
* günü `locale`'e göre — tr Pazartesi, en-US Pazar; `date-fns/locale`'in
|
|
23
|
+
* `weekStartsOn`'undan otomatik gelir, elle YAZILMAZ).
|
|
24
|
+
*/
|
|
25
|
+
declare function buildMonthMatrix(month: Date, locale: Locale): Date[][];
|
|
26
|
+
declare function isCurrentMonth(day: Date, month: Date): boolean;
|
|
27
|
+
declare function isSameDay(a: Date | null, b: Date | null): boolean;
|
|
28
|
+
declare function isWithinRange(day: Date, start: Date | null, end: Date | null): boolean;
|
|
29
|
+
declare function isDayDisabled(day: Date, min: Date | null, max: Date | null): boolean;
|
|
30
|
+
declare function shiftMonth(month: Date, delta: number): Date;
|
|
31
|
+
declare function shiftYear(month: Date, delta: number): Date;
|
|
32
|
+
declare function formatDateInput(date: Date, locale: Locale): string;
|
|
33
|
+
/** Kullanıcının yazdığı metni çözer; geçersizse `null` (çağıran son geçerli değere geri döner). Sonuç HER ZAMAN gün sınırına (`startOfDay`) normalize edilir. */
|
|
34
|
+
declare function parseDateInput(text: string, locale: Locale): Date | null;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* `<mf-calendar [(month)]="visibleMonth" [selected]="value()" (dayPick)="onPick($event)" />`
|
|
38
|
+
*
|
|
39
|
+
* Takvim ızgarasının gövdesi — hem `DatePicker`/`DateRangePicker`'ın overlay
|
|
40
|
+
* paneli İÇİNDE hem inline (overlay'siz) kullanılabilir. `@angular/aria/grid`
|
|
41
|
+
* KULLANILMADI (bkz. plan): sağ ok ayın son gününden sonraki ayın ilk gününe
|
|
42
|
+
* ATLAMALI, `PageUp`/`PageDown` ±1 ay/±1 yıl yapmalı — grid pattern'i
|
|
43
|
+
* render edilmiş satır/sütun sınırlarıyla kapalı, bu ikisini karşılamıyor.
|
|
44
|
+
* Roving tabindex elle kuruldu (emsal: `table-pagination.ts`'in
|
|
45
|
+
* `afterRenderEffect` + `viewChild(ElementRef)` deseni).
|
|
46
|
+
*
|
|
47
|
+
* Üç görünüm (`view`) — gün ızgarası, ay ızgarası, yıl ızgarası — klasik
|
|
48
|
+
* drill-up/down: başlıktaki "Eylül 2026" ay/yıl görünümüne, oradaki yıl
|
|
49
|
+
* yıl ızgarasına götürür; seçim tersine iner.
|
|
50
|
+
*/
|
|
51
|
+
declare class Calendar {
|
|
52
|
+
readonly month: _angular_core.ModelSignal<Date>;
|
|
53
|
+
readonly mode: _angular_core.InputSignal<"single" | "range">;
|
|
54
|
+
readonly selected: _angular_core.InputSignal<Date | null>;
|
|
55
|
+
readonly rangeStart: _angular_core.InputSignal<Date | null>;
|
|
56
|
+
readonly rangeEnd: _angular_core.InputSignal<Date | null>;
|
|
57
|
+
/** Fare aralığın ikinci ucunun üzerinde gezinirken önizleme — `rangeEnd()` doluysa yok sayılır. */
|
|
58
|
+
readonly hoverEnd: _angular_core.InputSignal<Date | null>;
|
|
59
|
+
readonly min: _angular_core.InputSignal<Date | null>;
|
|
60
|
+
readonly max: _angular_core.InputSignal<Date | null>;
|
|
61
|
+
readonly locale: _angular_core.InputSignal<Locale | undefined>;
|
|
62
|
+
readonly labels: _angular_core.InputSignal<MfDatePickerLabels | undefined>;
|
|
63
|
+
/**
|
|
64
|
+
* `false` → başlık ok/ay-yıl drill-down kontrolleri GİZLENİR, sadece ay/yıl
|
|
65
|
+
* ETİKETİ (statik metin) kalır. `DateRangePicker`'ın İKİNCİ (takipçi)
|
|
66
|
+
* takvimi için — "ikinci ay = birincinin bir fazlası" değişmezini korumak
|
|
67
|
+
* amacıyla o takvim kendi başına gezilemez (bkz. date-range-picker.ts).
|
|
68
|
+
* Gün ızgarası yine TAM etkileşimli kalır — sadece ay/yıl DEĞİŞTİRME devre
|
|
69
|
+
* dışı.
|
|
70
|
+
*/
|
|
71
|
+
readonly navigable: _angular_core.InputSignal<boolean>;
|
|
72
|
+
readonly dayPick: _angular_core.OutputEmitterRef<Date>;
|
|
73
|
+
readonly dayHover: _angular_core.OutputEmitterRef<Date | null>;
|
|
74
|
+
private readonly dateLocaleToken;
|
|
75
|
+
private readonly datePickerLabels;
|
|
76
|
+
protected readonly effectiveLocale: _angular_core.Signal<Locale>;
|
|
77
|
+
protected readonly effectiveLabels: _angular_core.Signal<MfDatePickerLabels>;
|
|
78
|
+
protected readonly view: _angular_core.WritableSignal<"day" | "month" | "year">;
|
|
79
|
+
protected readonly focusedDay: _angular_core.WritableSignal<Date>;
|
|
80
|
+
protected readonly yearPageStart: _angular_core.WritableSignal<number>;
|
|
81
|
+
protected readonly weeks: _angular_core.Signal<Date[][]>;
|
|
82
|
+
protected readonly monthGrid: _angular_core.Signal<Date[]>;
|
|
83
|
+
protected readonly yearGrid: _angular_core.Signal<number[]>;
|
|
84
|
+
protected readonly weekdayLabels: _angular_core.Signal<string[]>;
|
|
85
|
+
protected readonly monthYearLabel: _angular_core.Signal<string>;
|
|
86
|
+
private readonly gridEl;
|
|
87
|
+
private focusPending;
|
|
88
|
+
protected readonly shiftMonth: typeof shiftMonth;
|
|
89
|
+
protected readonly shiftYear: typeof shiftYear;
|
|
90
|
+
constructor();
|
|
91
|
+
protected dayKey(day: Date): string;
|
|
92
|
+
protected tabIndexFor(day: Date): number;
|
|
93
|
+
protected isDisabled(day: Date): boolean;
|
|
94
|
+
protected isSameDaySafe(day: Date): boolean;
|
|
95
|
+
protected dayClasses(day: Date): string;
|
|
96
|
+
protected cellClasses(active: boolean): string;
|
|
97
|
+
protected monthLabel(m: Date): string;
|
|
98
|
+
protected openMonthView(): void;
|
|
99
|
+
protected openYearView(): void;
|
|
100
|
+
protected shiftYearPage(delta: number): void;
|
|
101
|
+
protected pickMonth(m: Date): void;
|
|
102
|
+
protected pickYear(y: number): void;
|
|
103
|
+
protected pick(day: Date): void;
|
|
104
|
+
protected onDayMouseEnter(day: Date): void;
|
|
105
|
+
protected onGridKeydown(event: KeyboardEvent): void;
|
|
106
|
+
private moveFocus;
|
|
107
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Calendar, never>;
|
|
108
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Calendar, "mf-calendar", never, { "month": { "alias": "month"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "rangeStart": { "alias": "rangeStart"; "required": false; "isSignal": true; }; "rangeEnd": { "alias": "rangeEnd"; "required": false; "isSignal": true; }; "hoverEnd": { "alias": "hoverEnd"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "navigable": { "alias": "navigable"; "required": false; "isSignal": true; }; }, { "month": "monthChange"; "dayPick": "dayPick"; "dayHover": "dayHover"; }, never, never, true, never>;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* `<mf-date-picker [(value)]="date" [min]="minDate()" />`
|
|
113
|
+
*
|
|
114
|
+
* Tetikleyici GERÇEK bir `<input mfInput>` — ikon+temizle butonu üstüne
|
|
115
|
+
* bindirilmiş (emsal: `search-input.html`, ayrı bir bordürlü kutuyla
|
|
116
|
+
* SARMALAMIYORUZ, `Input`'un kendi border/shadow/focus'u tek kaynak kalıyor,
|
|
117
|
+
* "çift kenarlık" görünümü olmasın diye). Yazarak giriş + takvimden seçim
|
|
118
|
+
* AYNI `value` model'ine yazıyor.
|
|
119
|
+
*
|
|
120
|
+
* Panel `select.html`'deki CDK overlay bloğunun birebir aynısı (şeffaf
|
|
121
|
+
* backdrop, `(backdropClick)`/`(detach)` → kapat, bottom-start + flip
|
|
122
|
+
* pozisyon). Panel kabuğu sabit formül: `rounded-lg bg-overlay p-3 shadow-2
|
|
123
|
+
* dark:border dark:border-border-subtle` (bkz. table-filter-menu.html).
|
|
124
|
+
*/
|
|
125
|
+
declare class DatePicker extends ValueAccessorBase<Date | null> implements ControlValueAccessor {
|
|
126
|
+
readonly value: _angular_core.ModelSignal<Date | null>;
|
|
127
|
+
readonly min: _angular_core.InputSignal<Date | null>;
|
|
128
|
+
readonly max: _angular_core.InputSignal<Date | null>;
|
|
129
|
+
readonly locale: _angular_core.InputSignal<Locale | undefined>;
|
|
130
|
+
readonly labels: _angular_core.InputSignal<MfDatePickerLabels | undefined>;
|
|
131
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
132
|
+
readonly hasError: _angular_core.InputSignal<boolean>;
|
|
133
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
134
|
+
private readonly dateLocaleToken;
|
|
135
|
+
private readonly datePickerLabels;
|
|
136
|
+
protected readonly effectiveLocale: _angular_core.Signal<Locale>;
|
|
137
|
+
protected readonly effectiveLabels: _angular_core.Signal<MfDatePickerLabels>;
|
|
138
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
139
|
+
protected readonly draft: _angular_core.WritableSignal<string>;
|
|
140
|
+
protected readonly month: _angular_core.WritableSignal<Date>;
|
|
141
|
+
private readonly inputEl;
|
|
142
|
+
constructor();
|
|
143
|
+
writeValue(value: Date | null): void;
|
|
144
|
+
private setValue;
|
|
145
|
+
protected onInput(raw: string): void;
|
|
146
|
+
protected commitDraft(): void;
|
|
147
|
+
protected onDayPick(day: Date): void;
|
|
148
|
+
protected pickToday(): void;
|
|
149
|
+
protected clear(): void;
|
|
150
|
+
protected close(): void;
|
|
151
|
+
protected onEscape(): void;
|
|
152
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePicker, never>;
|
|
153
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePicker, "mf-date-picker", ["mfDatePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* `<mf-date-range-picker [(value)]="range" />` — `value` şekli
|
|
158
|
+
* `{ start: Date | null; end: Date | null }` (bkz. `DateRange`).
|
|
159
|
+
*
|
|
160
|
+
* Tetikleyici tek kutu içinde İKİ metin input'u (başlangıç/bitiş) —
|
|
161
|
+
* `DatePicker`'ın aksine burada `mfInput`'un KENDİ border/shadow'unu
|
|
162
|
+
* KULLANMIYORUZ (iki input yan yana, "çift kenarlık" olmasın diye border/
|
|
163
|
+
* shadow/focus DIŞ kutuya taşındı, iç input'lar çıplak — tek gerekçeli
|
|
164
|
+
* istisna).
|
|
165
|
+
*
|
|
166
|
+
* Panelde solda ön ayar sütunu + sağda iki takvim (ikincisi
|
|
167
|
+
* `[navigable]="false"` — bkz. `calendar.ts`, "birincinin bir fazlası"
|
|
168
|
+
* değişmezini koruyor). Onay YALNIZCA "Uygula"da dışarı çıkar — takvimde
|
|
169
|
+
* gezinme/seçim kendi `draftRange` sinyalinde kalır, `value()` her tık ile
|
|
170
|
+
* DEĞİŞMEZ (emsal: `table-page-jump.ts` — her tuş vuruşunda backend'e istek
|
|
171
|
+
* atmama notu). "Temizle" bunun istisnası — anında commit eder.
|
|
172
|
+
*/
|
|
173
|
+
declare class DateRangePicker extends ValueAccessorBase<DateRange> implements ControlValueAccessor {
|
|
174
|
+
readonly value: _angular_core.ModelSignal<DateRange>;
|
|
175
|
+
readonly min: _angular_core.InputSignal<Date | null>;
|
|
176
|
+
readonly max: _angular_core.InputSignal<Date | null>;
|
|
177
|
+
readonly locale: _angular_core.InputSignal<Locale | undefined>;
|
|
178
|
+
readonly labels: _angular_core.InputSignal<MfDatePickerLabels | undefined>;
|
|
179
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
180
|
+
readonly hasError: _angular_core.InputSignal<boolean>;
|
|
181
|
+
private readonly dateLocaleToken;
|
|
182
|
+
private readonly datePickerLabels;
|
|
183
|
+
protected readonly effectiveLocale: _angular_core.Signal<Locale>;
|
|
184
|
+
protected readonly effectiveLabels: _angular_core.Signal<MfDatePickerLabels>;
|
|
185
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
186
|
+
protected readonly startDraft: _angular_core.WritableSignal<string>;
|
|
187
|
+
protected readonly endDraft: _angular_core.WritableSignal<string>;
|
|
188
|
+
protected readonly draftRange: _angular_core.WritableSignal<DateRange>;
|
|
189
|
+
protected readonly pickStage: _angular_core.WritableSignal<"start" | "end">;
|
|
190
|
+
protected readonly hoverEnd: _angular_core.WritableSignal<Date | null>;
|
|
191
|
+
protected readonly monthLeft: _angular_core.WritableSignal<Date>;
|
|
192
|
+
protected readonly monthRight: _angular_core.WritableSignal<Date>;
|
|
193
|
+
protected readonly presets: DateRangePresetId[];
|
|
194
|
+
private readonly startEl;
|
|
195
|
+
constructor();
|
|
196
|
+
writeValue(value: DateRange): void;
|
|
197
|
+
private setValue;
|
|
198
|
+
protected presetLabel(preset: DateRangePresetId): string;
|
|
199
|
+
protected applyPreset(preset: DateRangePresetId): void;
|
|
200
|
+
protected onStartInput(raw: string): void;
|
|
201
|
+
protected onEndInput(raw: string): void;
|
|
202
|
+
protected commitStartDraft(): void;
|
|
203
|
+
protected commitEndDraft(): void;
|
|
204
|
+
protected onDayHover(day: Date | null): void;
|
|
205
|
+
protected onDayPick(day: Date): void;
|
|
206
|
+
protected apply(): void;
|
|
207
|
+
protected clear(): void;
|
|
208
|
+
protected close(): void;
|
|
209
|
+
protected onEscape(): void;
|
|
210
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateRangePicker, never>;
|
|
211
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateRangePicker, "mf-date-range-picker", ["mfDateRangePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export { Calendar, DatePicker, DateRangePicker, buildMonthMatrix, dateRangeForPreset, formatDateInput, isCurrentMonth, isDayDisabled, isSameDay, isWithinRange, parseDateInput, shiftMonth, shiftYear };
|
|
215
|
+
export type { DateRange, DateRangePresetId };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
interface DescriptionItem {
|
|
4
|
+
label: string;
|
|
5
|
+
value: string;
|
|
6
|
+
}
|
|
7
|
+
type DescriptionListOrientation = 'horizontal' | 'vertical';
|
|
8
|
+
/**
|
|
9
|
+
* `<mf-description-list [items]="[{label: 'E-posta', value: 'a@b.com'}]" />`
|
|
10
|
+
* — salt-okunur alan/değer çiftleri için (ör. bir profil özeti). `horizontal`
|
|
11
|
+
* (varsayılan): etiket solda (1 sütun), değer sağda (2 sütun) — ayarlar
|
|
12
|
+
* panellerindeki tipik "satır" deseni. `vertical`: etiket değerin ÜSTÜNDE,
|
|
13
|
+
* yığılı — dar bir kart/kenar çubuğu içinde daha rahat.
|
|
14
|
+
*/
|
|
15
|
+
declare class DescriptionList {
|
|
16
|
+
readonly items: _angular_core.InputSignal<DescriptionItem[]>;
|
|
17
|
+
readonly orientation: _angular_core.InputSignal<DescriptionListOrientation>;
|
|
18
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DescriptionList, never>;
|
|
19
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DescriptionList, "mf-description-list", ["mfDescriptionList"], { "items": { "alias": "items"; "required": true; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { DescriptionList };
|
|
23
|
+
export type { DescriptionItem, DescriptionListOrientation };
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as _mesgflow_ui_kit_core from '@mesgflow/ui-kit/core';
|
|
3
|
+
import * as i1 from '@angular/cdk/drag-drop';
|
|
4
|
+
import { DialogRef } from '@angular/cdk/dialog';
|
|
5
|
+
import { ComponentType } from '@angular/cdk/portal';
|
|
6
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
7
|
+
import { VariantProps } from 'class-variance-authority';
|
|
8
|
+
|
|
9
|
+
type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
10
|
+
/** `'center'` (varsayılan, klasik modal) ya da `'right'` (sağdan açılan drawer) — bkz. `DialogService.openDrawer()`. */
|
|
11
|
+
type DialogPlacement = 'center' | 'right';
|
|
12
|
+
interface DialogOptions<D> {
|
|
13
|
+
data?: D;
|
|
14
|
+
size?: DialogSize;
|
|
15
|
+
/** Varsayılan `'center'`. `'right'` için doğrudan `DialogService.openDrawer()` kullanılması tercih edilir. */
|
|
16
|
+
placement?: DialogPlacement;
|
|
17
|
+
/** Header'da tam ekran/geri al düğmesi gösterir — durumu `DialogSurface.maximized` taşır. Drawer'da (bkz. `Dialog.maximizeVisible`) etkisiz. */
|
|
18
|
+
maximizable?: boolean;
|
|
19
|
+
/** Header'dan (başlık alanından) sürüklenebilir olur — `@angular/cdk/drag-drop`. Drawer'da etkisiz (bkz. `Dialog.stateVariant`). */
|
|
20
|
+
draggable?: boolean;
|
|
21
|
+
/** Sağ-alt köşede serbest boyutlandırma tutamacı gösterir. Drawer'da etkisiz. */
|
|
22
|
+
resizable?: boolean;
|
|
23
|
+
/** `true` ise ESC/backdrop tıklaması kapatmaz (programatik `dialogRef.close()` yine çalışır). */
|
|
24
|
+
disableClose?: boolean;
|
|
25
|
+
ariaLabel?: string;
|
|
26
|
+
panelClass?: string | string[];
|
|
27
|
+
}
|
|
28
|
+
/** Onay butonu: `danger`→danger, `warning`→warning, diğerleri→primary; hepsi `filled` (bkz. confirm-dialog.ts `confirmTone`). */
|
|
29
|
+
type ConfirmTone = 'danger' | 'warning' | 'info' | 'success' | 'neutral';
|
|
30
|
+
interface ConfirmDialogData {
|
|
31
|
+
title: string;
|
|
32
|
+
content: string;
|
|
33
|
+
/** Varsayılan `'neutral'`. */
|
|
34
|
+
tone?: ConfirmTone;
|
|
35
|
+
/** `true` ise Vazgeç/Onayla çifti yerine tek bir "Tamam" düğmesi gösterilir (bilgilendirme modu). */
|
|
36
|
+
alert?: boolean;
|
|
37
|
+
confirmLabel?: string;
|
|
38
|
+
cancelLabel?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Verilirse onay düğmesi dialog'u KAPATMADAN önce bunu çalıştırır: düğme
|
|
41
|
+
* spinner'a döner, başarıda dialog kapanır, hata fırlatırsa dialog açık
|
|
42
|
+
* kalır ve genel bir hata mesajı gösterilir.
|
|
43
|
+
*/
|
|
44
|
+
action?: () => Promise<unknown>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Onay diyaloğunun içerik component'i — `DialogService.confirm()`/`confirmDelete()`/
|
|
49
|
+
* `alert()` (bkz. dialog.service.ts) bunu açıp `DialogRef<boolean>`'ı `Promise`'e
|
|
50
|
+
* çeviriyor. `Dialog`'un (dialog.ts) `[dialog-header]` kaçış kapısını kullanıyor —
|
|
51
|
+
* ton'a göre renkli ikon rozeti, generic `Dialog`'un kendi `[icon]` input'unun
|
|
52
|
+
* desteklemediği bir şey (o sadece nötr bir rozet çizer), bu yüzden kendi başlığını
|
|
53
|
+
* kendi çiziyor.
|
|
54
|
+
*/
|
|
55
|
+
declare class ConfirmDialog {
|
|
56
|
+
protected readonly data: ConfirmDialogData;
|
|
57
|
+
private readonly dialogRef;
|
|
58
|
+
protected readonly labels: _angular_core.Signal<_mesgflow_ui_kit_core.MfDialogLabels>;
|
|
59
|
+
protected readonly tone: _angular_core.Signal<ConfirmTone>;
|
|
60
|
+
protected readonly toneIcon: _angular_core.Signal<string>;
|
|
61
|
+
protected readonly toneBadgeClass: _angular_core.Signal<string>;
|
|
62
|
+
/** 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ı. */
|
|
63
|
+
protected readonly confirmTone: _angular_core.Signal<"danger" | "warning" | "info" | "success" | "neutral" | "help" | "primary" | null | undefined>;
|
|
64
|
+
protected readonly submitting: _angular_core.WritableSignal<boolean>;
|
|
65
|
+
protected readonly actionError: _angular_core.WritableSignal<string | null>;
|
|
66
|
+
protected onCancel(): void;
|
|
67
|
+
protected onConfirm(): Promise<void>;
|
|
68
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmDialog, never>;
|
|
69
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConfirmDialog, "mf-confirm-dialog", never, {}, {}, never, never, true, never>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
interface DialogCustomSize {
|
|
73
|
+
width: number;
|
|
74
|
+
height: number;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Dialog başına TEK instance — `DialogService.open()` her açılışta yeni bir
|
|
78
|
+
* tane üretip `options`'tan doldurur, CDK `DialogConfig.providers` ile o
|
|
79
|
+
* dialog'un (içerik component'inin) injector'ına verir. `Dialog` (dialog.ts)
|
|
80
|
+
* kendi `@Component.providers`'ında `skipSelf` ile bunu arar — bulamazsa
|
|
81
|
+
* (ör. overlay olmadan tek başına render edilen statik bir önizleme/demo)
|
|
82
|
+
* kendi yerel instance'ını üretir, hiçbir şey patlamaz.
|
|
83
|
+
*
|
|
84
|
+
* Boyut/maximize/drag/resize/sheet durumunun TAMAMI burada yaşıyor — `Dialog`
|
|
85
|
+
* kendi `@Input()`'larıyla DEĞİL, bu sınıfı okuyarak render ediyor. Böylece
|
|
86
|
+
* `DialogService.open(SomeForm, { size:'lg', maximizable:true })` gibi bir
|
|
87
|
+
* çağrı, `SomeForm`'un template'inde 1+ seviye iç içe olan `<mf-dialog>`'a
|
|
88
|
+
* DI üzerinden ulaşabiliyor (`@Input()` ile mümkün olmazdı — DialogService
|
|
89
|
+
* `Dialog`'u değil, `SomeForm`'u örnekliyor).
|
|
90
|
+
*/
|
|
91
|
+
declare class DialogSurface {
|
|
92
|
+
readonly size: _angular_core.WritableSignal<DialogSize>;
|
|
93
|
+
readonly placement: _angular_core.WritableSignal<DialogPlacement>;
|
|
94
|
+
readonly maximizable: _angular_core.WritableSignal<boolean>;
|
|
95
|
+
readonly draggable: _angular_core.WritableSignal<boolean>;
|
|
96
|
+
readonly resizable: _angular_core.WritableSignal<boolean>;
|
|
97
|
+
readonly maximized: _angular_core.WritableSignal<boolean>;
|
|
98
|
+
/** Kullanıcı kenardan boyutlandırdıysa dolu; maximize/sheet'te yok sayılır. */
|
|
99
|
+
readonly customSize: _angular_core.WritableSignal<DialogCustomSize | null>;
|
|
100
|
+
/** < 640px — `DialogService` `BreakpointObserver` ile besler. */
|
|
101
|
+
readonly sheet: _angular_core.WritableSignal<boolean>;
|
|
102
|
+
/** Kapanış animasyonu oynarken `true` — bkz. `DialogService.open()` `closePredicate`. */
|
|
103
|
+
readonly closing: _angular_core.WritableSignal<boolean>;
|
|
104
|
+
toggleMaximize(): void;
|
|
105
|
+
private dirtyCheck;
|
|
106
|
+
/** Başarılı kayıt/programatik kapanışta `true` yapılır — bir sonraki kapanışta kirli-form uyarısı SORULMAZ. */
|
|
107
|
+
readonly bypassDirtyGuard: _angular_core.WritableSignal<boolean>;
|
|
108
|
+
/** İçerik component'i (tüketicinin kendi form component'i) kendi "kirli mi" sorusunu buraya kaydeder — `DialogSurface` formun kendi şemasını bilmez. */
|
|
109
|
+
registerDirty(check: () => boolean): void;
|
|
110
|
+
/** `DialogService.open()`'ın `closePredicate`'i ESC/backdrop/X kapanışında bunu okur. */
|
|
111
|
+
isDirty(): boolean;
|
|
112
|
+
/** Başarılı kayıttan hemen önce çağrılır — programatik `dialogRef.close()` kirli-form uyarısı sormasın diye. */
|
|
113
|
+
markClean(): void;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* `<mf-dialog [title]="..." [subtitle]="..." [icon]="'group'" (close)="onCancel()">`
|
|
118
|
+
* — `DialogService.open()`'ın açtığı her içerik component'i (tüketicinin kendi
|
|
119
|
+
* form component'i, ör. `ConfirmDialog`) kendi kök elemanı olarak bunu kullanır. CDK Dialog'un
|
|
120
|
+
* kendisi (bkz. dialog.service.ts) hiçbir görsel çerçeve DAYATMIYOR (backdrop hariç) —
|
|
121
|
+
* panel görünümü (yuvarlak köşe/gölge/header/footer/kapatma düğmesi) TAMAMEN burada,
|
|
122
|
+
* tek yerde yaşıyor.
|
|
123
|
+
*
|
|
124
|
+
* Boyut/placement/maximize/drag/resize/sheet durumu kendi `@Input()`'ları DEĞİL,
|
|
125
|
+
* `DialogSurface` (DI ile enjekte edilir) — bkz. o dosyanın doc yorumu. `title`/
|
|
126
|
+
* `subtitle`/`icon`/`fillBody` ise İÇERİĞE ait olduğu için normal input —
|
|
127
|
+
* `[dialog-header]` slot'u tamamen özel bir başlık gerektiren durumlar için (bkz.
|
|
128
|
+
* ConfirmDialog) kaçış kapısı olarak kalıyor.
|
|
129
|
+
*
|
|
130
|
+
* `stateVariant()` sırası (sheet → maximized → drawer → normal) bilinçli: mobil
|
|
131
|
+
* sheet her zaman kazanır, ardından drag/resize/mobil-sheet'in yalnızca `normal`'da
|
|
132
|
+
* açık olması (bkz. `dragEnabled`/`resizeHandleVisible`) drawer'da bu ikisinin
|
|
133
|
+
* otomatik kapalı kalmasını BEDAVA sağlıyor — ayrı bir kontrol gerekmiyor.
|
|
134
|
+
*/
|
|
135
|
+
declare class Dialog {
|
|
136
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
137
|
+
readonly subtitle: _angular_core.InputSignal<string>;
|
|
138
|
+
readonly icon: _angular_core.InputSignal<string>;
|
|
139
|
+
/** Sadece `DialogSurface` DI ile enjekte edilmediğinde (ör. statik bir önizleme/demo) etkili — gerçek dialog'larda `DialogService.open({ size })` kullanılır. */
|
|
140
|
+
readonly size: _angular_core.InputSignal<DialogSize | undefined>;
|
|
141
|
+
/**
|
|
142
|
+
* `true` ise gövde kendi kaydırmasını KAPATIR (`overflow:hidden`) ve kalan
|
|
143
|
+
* yüksekliği içeriğe `flex-1` ile devreder — içeriğin KENDİ tek scroll alanını
|
|
144
|
+
* kurması beklenir (ör. uzun bir liste içeren bir form). "Tek kaydırma bölgesi"
|
|
145
|
+
* kuralının uygulama noktası: dialog gövdesi + içerik aynı anda kaymaz.
|
|
146
|
+
*/
|
|
147
|
+
readonly fillBody: _angular_core.InputSignal<boolean>;
|
|
148
|
+
readonly close: _angular_core.OutputEmitterRef<void>;
|
|
149
|
+
protected readonly surface: DialogSurface;
|
|
150
|
+
protected readonly labels: _angular_core.Signal<_mesgflow_ui_kit_core.MfDialogLabels>;
|
|
151
|
+
private readonly elementRef;
|
|
152
|
+
private readonly cdkDrag;
|
|
153
|
+
private readonly scrollBody;
|
|
154
|
+
protected readonly scrolledFromTop: _angular_core.WritableSignal<boolean>;
|
|
155
|
+
protected readonly hasMoreBelow: _angular_core.WritableSignal<boolean>;
|
|
156
|
+
protected readonly stateVariant: _angular_core.Signal<"normal" | "maximized" | "sheet" | "drawer">;
|
|
157
|
+
protected readonly dragEnabled: _angular_core.Signal<boolean>;
|
|
158
|
+
protected readonly resizeHandleVisible: _angular_core.Signal<boolean>;
|
|
159
|
+
/** Drawer zaten tam yükseklik — büyütme düğmesinin anlamı yok, `surface.maximizable()` `true` olsa bile gizlenir. */
|
|
160
|
+
protected readonly maximizeVisible: _angular_core.Signal<boolean>;
|
|
161
|
+
protected readonly hostClasses: _angular_core.Signal<string>;
|
|
162
|
+
protected readonly customWidth: _angular_core.Signal<number | undefined>;
|
|
163
|
+
protected readonly customHeight: _angular_core.Signal<number | undefined>;
|
|
164
|
+
/** Kenara/tam ekrana yaslı yüzeyler (drawer, mobil sheet, maximized): bölgeler KALICI
|
|
165
|
+
* çizgiyle ayrılır — header/content/footer iskeleti her zaman aynı görünür. Ortada
|
|
166
|
+
* yüzen klasik dialog (`normal`, ör. ConfirmDialog) bugünkü kaydırma-gölgesi davranışını
|
|
167
|
+
* korur — kısa bir onay kutusu gereksiz çizgi kazanmaz. */
|
|
168
|
+
protected readonly framed: _angular_core.Signal<boolean>;
|
|
169
|
+
protected readonly headerBorder: _angular_core.Signal<boolean>;
|
|
170
|
+
protected readonly footerBorder: _angular_core.Signal<boolean>;
|
|
171
|
+
constructor();
|
|
172
|
+
protected updateScrollShadow(): void;
|
|
173
|
+
/**
|
|
174
|
+
* Ctrl/Cmd+Enter — tek yerde çözülür, her form bedava kazanır. Kaydet düğmesi
|
|
175
|
+
* footer slot'unda `<form>`'un DIŞINDA yaşıyor (`form="role-form"` attribute
|
|
176
|
+
* ilişkilendirmesiyle çalışıyor) — bu yüzden düğmeye tıklamayı taklit etmek
|
|
177
|
+
* yerine doğrudan `<form>` üzerinde `requestSubmit()` çağrılıyor; bu da native
|
|
178
|
+
* kısıt doğrulamasını çalıştırıp mevcut `(submit)` bağlamasını tetikler.
|
|
179
|
+
*/
|
|
180
|
+
protected requestSubmit(): void;
|
|
181
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Dialog, never>;
|
|
182
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dialog, "mf-dialog", ["mfDialog"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fillBody": { "alias": "fillBody"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, ["[dialog-header]", "*", "[dialog-footer]"], true, [{ directive: typeof i1.CdkDrag; inputs: {}; outputs: {}; }]>;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* `<button mfDialogResizeHandle [ariaLabel]="...">` — `Dialog`'un (dialog.ts)
|
|
187
|
+
* sağ-alt köşesinde, `DialogSurface.customSize`'ı besleyen serbest boyutlandırma
|
|
188
|
+
* tutamacı. Fare/dokunma İLE klavye (ok tuşları) İKİSİ de destekleniyor —
|
|
189
|
+
* projects/ui-kit/README.md "a11y checklist" bölümü "sadece fareyle çalışan bir
|
|
190
|
+
* tutamaç"ı kabul etmiyor.
|
|
191
|
+
*/
|
|
192
|
+
declare class DialogResizeHandle {
|
|
193
|
+
private readonly surface;
|
|
194
|
+
private readonly host;
|
|
195
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
196
|
+
/** `role="slider"` `aria-valuenow` zorunlu kılıyor (axe: `aria-required-attr`) — genişliği raporlar, özel boyut yoksa panelin ölçülen genişliğine, o da yoksa `MIN_WIDTH`'e düşer. */
|
|
197
|
+
protected readonly ariaValueNow: _angular_core.Signal<number>;
|
|
198
|
+
private pointerId;
|
|
199
|
+
private startX;
|
|
200
|
+
private startY;
|
|
201
|
+
private startWidth;
|
|
202
|
+
private startHeight;
|
|
203
|
+
protected onPointerDown(event: PointerEvent): void;
|
|
204
|
+
protected onPointerMove(event: PointerEvent): void;
|
|
205
|
+
protected onPointerUp(event: PointerEvent): void;
|
|
206
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
207
|
+
private panelRect;
|
|
208
|
+
private applySize;
|
|
209
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogResizeHandle, never>;
|
|
210
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DialogResizeHandle, "[mfDialogResizeHandle]", never, { "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Dialog açmanın tek, merkezi noktası — `@angular/cdk/dialog`'un `Dialog`
|
|
215
|
+
* servisi ÜZERİNE ince bir katman (focus-trap/ESC/backdrop-click/geri-scroll-
|
|
216
|
+
* engelleme davranışının TAMAMI CDK'dan geliyor, burada TEKRAR YAZILMADI — bkz.
|
|
217
|
+
* projects/ui-kit/README.md "a11y checklist" bölümündeki "elle yazmak son çare" ilkesi).
|
|
218
|
+
*
|
|
219
|
+
* İçerik component'i (tüketicinin kendi form component'i, ör. `ConfirmDialog`) `@angular/cdk/dialog`'un
|
|
220
|
+
* KENDİ `DIALOG_DATA`/`DialogRef` token'larını doğrudan `inject()` eder — ekstra bir
|
|
221
|
+
* sarmalayıcı token'a gerek yok. Boyut/placement/maximize/drag/resize/sheet durumu
|
|
222
|
+
* `DialogSurface` (bkz. o dosya) üzerinden, `providers` ile o dialog'un injector'ına
|
|
223
|
+
* verilir — `Dialog` (dialog.ts) bunu DI'dan okuyarak render eder.
|
|
224
|
+
*
|
|
225
|
+
* **Tek kural**: kayıt oluştur/düzenle → `openDrawer()` (sağdan, `placement:'right'`);
|
|
226
|
+
* onayla/bilgilendir/sil → `confirm()`/`confirmDelete()`/`alert()` (merkezi, `size:'sm'`).
|
|
227
|
+
* Drawer ayrı bir primitif DEĞİL — `placement` sadece konum stratejisini ve
|
|
228
|
+
* `Dialog.stateVariant()`'ı değiştiren bir eksen, geri kalan her şey (CDK Dialog,
|
|
229
|
+
* closePredicate, kirli-form koruması, mobil sheet, kaydırma gölgesi) ortak.
|
|
230
|
+
*
|
|
231
|
+
* Kapanış animasyonu: CDK'nın `DialogRef.close()`'u `overlayRef.dispose()`'u SENKRON
|
|
232
|
+
* çağırıyor, bir "kapanıyor" olayı/kancası yok. `closePredicate` bunun için bilinçli
|
|
233
|
+
* bir kaçamak — `false` döndürmek kapanmayı iptal ediyor: ilk çağrıda `surface.closing`'i
|
|
234
|
+
* `true` yapıp gerçek kapanmayı `EXIT_MS` geciktiriyoruz (panel bu sürede `Dialog`'un
|
|
235
|
+
* kendi reaktif `animate-dialog-out`/`animate-sheet-out`/`animate-drawer-out` class'ıyla
|
|
236
|
+
* görsel olarak kapanır), ikinci çağrıda (zaten `closing()===true`) gerçek `dispose()`'a
|
|
237
|
+
* izin veriyoruz. ESC/backdrop/programatik `dialogRef.close(...)` HEPSİ bu predicate'ten
|
|
238
|
+
* geçtiği için davranış tekdüze. `prefers-reduced-motion` gecikmeyi tamamen atlıyor —
|
|
239
|
+
* AMA kirli-form kontrolünden SONRA: koruma reduced-motion kullanıcılarında da çalışmalı.
|
|
240
|
+
*
|
|
241
|
+
* **Kirli form koruması**: `surface.isDirty()` `true` dönerse kapanış iptal edilip
|
|
242
|
+
* `confirmDiscard()` (kendi içindeki `ConfirmDialog`, ayrı/temiz bir `DialogSurface`
|
|
243
|
+
* ile) açılır; kullanıcı onaylarsa `surface.markClean()` + gerçek `close()`. İçerik
|
|
244
|
+
* component'i `constructor()`'da `surface.registerDirty(() => ...)` ile kendi
|
|
245
|
+
* "değişti mi" sorusunu kaydeder.
|
|
246
|
+
*/
|
|
247
|
+
declare class DialogService {
|
|
248
|
+
private readonly cdkDialog;
|
|
249
|
+
private readonly injector;
|
|
250
|
+
private readonly breakpointObserver;
|
|
251
|
+
private readonly labels;
|
|
252
|
+
/** `ref` başına `DialogSurface` — tüketicinin kendi URL senkronizasyon mantığı, kirli-form durumunu PROAKTİF sormak için kullanabilir (kendi `closePredicate`'inin async akışıyla yarışmamak için). */
|
|
253
|
+
private readonly surfaces;
|
|
254
|
+
open<R = void, D = undefined, C = unknown>(component: ComponentType<C>, options?: DialogOptions<D>): DialogRef<R, C>;
|
|
255
|
+
/**
|
|
256
|
+
* Kayıt oluştur/düzenle formlarının TEK açılış noktası — sağdan drawer.
|
|
257
|
+
* `maximizable` bilerek zorla kapatılıyor: drawer zaten tam yükseklik, büyütme
|
|
258
|
+
* düğmesinin anlamı yok (bkz. `Dialog.maximizeVisible`).
|
|
259
|
+
*
|
|
260
|
+
* Varsayılan genişlik `md` (560px) — CRUD formları `size` GEÇMEZ, hepsi aynı
|
|
261
|
+
* genişlikte açılmalı. İstisna: iki sütunlu bir form (sol dikey ray + sağ
|
|
262
|
+
* panel gibi) `md` içine sığmazsa `xl` (960px) geçilebilir.
|
|
263
|
+
*/
|
|
264
|
+
openDrawer<R = void, D = undefined, C = unknown>(component: ComponentType<C>, options?: Omit<DialogOptions<D>, 'placement'>): DialogRef<R, C>;
|
|
265
|
+
/** `Promise<boolean>` döner — `if (await dialog.confirm(...))` çağıran taraf için `.subscribe()` zincirinden daha sade. */
|
|
266
|
+
confirm(data: ConfirmDialogData): Promise<boolean>;
|
|
267
|
+
/**
|
|
268
|
+
* Kirli-form kapanış korumasının kendi onay diyaloğu — `confirmDiscard`'ın açtığı
|
|
269
|
+
* `ConfirmDialog`'un `DialogSurface`'i her zaman temiz (yeni instance), bu yüzden
|
|
270
|
+
* özyineleme sorunsuz. `closePredicate` içinden (ESC/backdrop/X) VE tüketicinin
|
|
271
|
+
* kendi route senkronizasyonundan (URL değişip panel PROAKTİF kapatılmadan
|
|
272
|
+
* önce) iki ayrı yoldan çağrılabildiği için `public`.
|
|
273
|
+
*
|
|
274
|
+
* `tone: 'warning'` — onay butonu artık DOLU warning (bkz.
|
|
275
|
+
* `button.variants.ts`/`confirm-dialog.ts`, eski `outlined` istisnası
|
|
276
|
+
* kaldırıldı).
|
|
277
|
+
*/
|
|
278
|
+
confirmDiscard(): Promise<boolean>;
|
|
279
|
+
/** Tüketici bir ref'i kapatmadan ÖNCE kirli mi diye sormak istiyorsa — kendi `closePredicate`'inin async akışıyla yarışmamak için `DialogSurface`'e doğrudan erişim. */
|
|
280
|
+
getSurface(ref: DialogRef<any, any>): DialogSurface | undefined;
|
|
281
|
+
/** `confirm()`'in silme kısayolu — `tone:'danger'` + varsayılan "Sil" etiketi. */
|
|
282
|
+
confirmDelete(data: Omit<ConfirmDialogData, 'tone'>): Promise<boolean>;
|
|
283
|
+
/** Tek butonlu bilgilendirme modu — sonuç önemsiz olduğu için `Promise<void>` döner. */
|
|
284
|
+
alert(data: Omit<ConfirmDialogData, 'alert'>): Promise<void>;
|
|
285
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogService, never>;
|
|
286
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Boyut ölçeği CSS `min()` ile viewport'a göre kendini sınırlıyor —
|
|
291
|
+
* `max-w-[560px]` gibi ayrı bir "hiçbir zaman viewport'tan taşma" class'ıyla
|
|
292
|
+
* `cn()`/tailwind-merge üzerinden birleştirilemezdi (ikisi aynı utility
|
|
293
|
+
* grubu — `max-width` — sonuncusu kazanır, ikisi birden UYGULANMAZ). Tek
|
|
294
|
+
* arbitrary value'da `min(N, 100vw-2rem)` ile ikisi birden garanti ediliyor.
|
|
295
|
+
*
|
|
296
|
+
* `state` (normal/maximized/sheet/drawer) boyut eksenine dik, tek-seçim bir eksen —
|
|
297
|
+
* `Dialog` (dialog.ts) `DialogSurface`'ten okuyup hesaplıyor, tüketici
|
|
298
|
+
* tarafından doğrudan set edilmiyor. `drawer` boyut ölçeğini (sm/md/lg/xl)
|
|
299
|
+
* `normal` ile PAYLAŞIR ama genişliği AYNI şekilde uygulamaz — aşağıdaki
|
|
300
|
+
* `compoundVariants`'a bak.
|
|
301
|
+
*
|
|
302
|
+
* **`drawer` neden `width` de alıyor, `max-width` yetmiyor mu**: sağa yaslı
|
|
303
|
+
* `GlobalPositionStrategy` (`dialog.service.ts`) overlay wrapper'a
|
|
304
|
+
* `align-items:flex-start` veriyor — bu, cross-axis stretch'i KAPATIYOR, yani
|
|
305
|
+
* `.cdk-overlay-pane` içeriğine göre daralıyor (shrink-to-fit). Böyle bir
|
|
306
|
+
* (genişliği belirsiz/auto) kapsayıcı içinde `mf-dialog`'un tabandaki
|
|
307
|
+
* `w-full`'u (`width:100%`) CSS Sizing L3'e göre `width:auto`'ya döner —
|
|
308
|
+
* yani panel `max-w-[min(N,...)]` TAVANINA hiç ulaşmadan, içeriğin doğal
|
|
309
|
+
* genişliğinde kalır. `normal` (ortada yüzen) dialog için bu doğru davranış
|
|
310
|
+
* (kısa bir onay kutusu tavana kadar zorla GENİŞLEMEMELİ), ama drawer için
|
|
311
|
+
* YANLIŞ — üç CRUD formu içerik uzunluğuna göre üç farklı genişlikte açılırdı
|
|
312
|
+
* (gerçek, gözlemlenen bir regresyon). Çözüm: `calc(100vw-2rem)` viewport'a
|
|
313
|
+
* göre DEFINITE bir uzunluk — parent'ın genişliği belirsiz olsa bile bu
|
|
314
|
+
* paradoksu atlıyor. `width` + `max-width` aynı ifadeyi taşıdığı için
|
|
315
|
+
* `max-width` drawer'da fiilen artık gereksiz ama zararsız kalıyor.
|
|
316
|
+
*
|
|
317
|
+
* **`maximized` neden kendi `max-w-none`'ını taşıyor**: `size` (sm/md/lg/xl)
|
|
318
|
+
* her zaman uygulanır, `state` ondan BAĞIMSIZ bir eksendir — `maximized` kendi
|
|
319
|
+
* `max-w-none`'ını taşımazsa, `size`'ın `max-w-[min(N,...)]`'i (aynı `max-width`
|
|
320
|
+
* grubu, ama `size` `state`'ten ÖNCE değerlendirildiği için `state` sonuncusu
|
|
321
|
+
* kazanmadıkça) tek başına kalır ve `w-screen`'i geçersiz kılar — gerçek,
|
|
322
|
+
* gözlemlenen bir regresyon: `maximizable:true, size:'lg'` bir dialog
|
|
323
|
+
* büyütüldüğünde yükseklik `h-[100dvh]`'e ulaşırken genişlik hâlâ `lg`'nin
|
|
324
|
+
* 720px tavanına sıkışıp kalıyordu ("kenarlar kısa, sadece boyu uzuyor").
|
|
325
|
+
*/
|
|
326
|
+
/**
|
|
327
|
+
* Panel yüzeyi `glassSurface` (bkz. `@mesgflow/ui-kit/core` — mikro
|
|
328
|
+
* glassmorphism, 2026-09 Deep Emerald geçişi): arkadaki içerik `backdrop-blur`
|
|
329
|
+
* destekleyen tarayıcılarda hafifçe görünür kalır, backdrop
|
|
330
|
+
* (`.mf-dialog-backdrop`, motion.css) ayrıca karartıyor. `maximized` durumu
|
|
331
|
+
* TAM VIEWPORT'u kapladığı için (arkasında blur'lanacak sayfa içeriği yok,
|
|
332
|
+
* sadece backdrop) camı KAPATIP düz `bg-surface`'e döner — hem maliyetsiz hem
|
|
333
|
+
* anlamsız bir blur'dan kaçınır.
|
|
334
|
+
*/
|
|
335
|
+
declare const dialogVariants: (props?: ({
|
|
336
|
+
size?: "sm" | "md" | "lg" | "xl" | "full" | null | undefined;
|
|
337
|
+
state?: "normal" | "maximized" | "sheet" | "drawer" | null | undefined;
|
|
338
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
339
|
+
type DialogVariants = VariantProps<typeof dialogVariants>;
|
|
340
|
+
|
|
341
|
+
export { ConfirmDialog, Dialog, DialogResizeHandle, DialogService, DialogSurface, dialogVariants };
|
|
342
|
+
export type { ConfirmDialogData, ConfirmTone, DialogCustomSize, DialogOptions, DialogPlacement, DialogSize, DialogVariants };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
type DividerOrientation = 'horizontal' | 'vertical';
|
|
4
|
+
/**
|
|
5
|
+
* `<mf-divider />` (düz çizgi) veya `<mf-divider label="veya" />` (ortasında
|
|
6
|
+
* metin, ör. iki giriş yöntemini ayırmak için). `vertical` yönlendirmede
|
|
7
|
+
* `label` YOKSAYILIR — dikey bir çizginin ortasına metin sığdırmak pratik
|
|
8
|
+
* bir kullanım alanı değil.
|
|
9
|
+
*
|
|
10
|
+
* Etiketli halde iç çizgi parçaları `aria-hidden` — erişilebilir isim tek
|
|
11
|
+
* seferde, host'un `role="separator"` içeriğinden (görünür metinden) gelir,
|
|
12
|
+
* ayrı bir `aria-label` gerekmez.
|
|
13
|
+
*/
|
|
14
|
+
declare class Divider {
|
|
15
|
+
readonly orientation: _angular_core.InputSignal<DividerOrientation>;
|
|
16
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
17
|
+
protected readonly hostClasses: _angular_core.Signal<"flex items-center gap-3" | "inline-block h-full w-px bg-border" | "block h-px w-full bg-border">;
|
|
18
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Divider, never>;
|
|
19
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Divider, "mf-divider", ["mfDivider"], { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { Divider };
|
|
23
|
+
export type { DividerOrientation };
|