@mesgflow/ui-kit 0.6.0 → 0.7.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/README.md +56 -5
- package/fesm2022/mesgflow-ui-kit-accordion.mjs +3 -2
- package/fesm2022/mesgflow-ui-kit-accordion.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-agenda.mjs +208 -0
- package/fesm2022/mesgflow-ui-kit-agenda.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-aspect-ratio.mjs +37 -0
- package/fesm2022/mesgflow-ui-kit-aspect-ratio.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-blocks.mjs +207 -0
- package/fesm2022/mesgflow-ui-kit-blocks.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-box-input.mjs +2 -2
- package/fesm2022/mesgflow-ui-kit-box-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-button.mjs +188 -242
- package/fesm2022/mesgflow-ui-kit-button.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-card.mjs +37 -16
- package/fesm2022/mesgflow-ui-kit-card.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-carousel.mjs +308 -0
- package/fesm2022/mesgflow-ui-kit-carousel.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs +16 -21
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-chip.mjs +2 -2
- package/fesm2022/mesgflow-ui-kit-chip.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-code-block.mjs +9 -5
- package/fesm2022/mesgflow-ui-kit-code-block.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs +6 -4
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-combobox.mjs +145 -65
- package/fesm2022/mesgflow-ui-kit-combobox.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs +4 -6
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-core.mjs +441 -128
- package/fesm2022/mesgflow-ui-kit-core.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-countdown.mjs +149 -0
- package/fesm2022/mesgflow-ui-kit-countdown.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs +131 -10
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-dialog.mjs +117 -34
- package/fesm2022/mesgflow-ui-kit-dialog.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-drawer.mjs +109 -0
- package/fesm2022/mesgflow-ui-kit-drawer.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-field.mjs +53 -12
- package/fesm2022/mesgflow-ui-kit-field.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-file-upload.mjs +356 -0
- package/fesm2022/mesgflow-ui-kit-file-upload.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs +131 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-icon.mjs +6 -1
- package/fesm2022/mesgflow-ui-kit-icon.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-icons-lucide.mjs +371 -0
- package/fesm2022/mesgflow-ui-kit-icons-lucide.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-inline-edit.mjs +279 -0
- package/fesm2022/mesgflow-ui-kit-inline-edit.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-input.mjs +147 -4
- package/fesm2022/mesgflow-ui-kit-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-lightbox.mjs +299 -0
- package/fesm2022/mesgflow-ui-kit-lightbox.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-link.mjs +2 -2
- package/fesm2022/mesgflow-ui-kit-link.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-listbox.mjs +151 -0
- package/fesm2022/mesgflow-ui-kit-listbox.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-mention.mjs +283 -0
- package/fesm2022/mesgflow-ui-kit-mention.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-menu.mjs +169 -5
- package/fesm2022/mesgflow-ui-kit-menu.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-nav-menu.mjs +276 -0
- package/fesm2022/mesgflow-ui-kit-nav-menu.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-notification-center.mjs +281 -0
- package/fesm2022/mesgflow-ui-kit-notification-center.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-number-input.mjs +7 -4
- package/fesm2022/mesgflow-ui-kit-number-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-pagination.mjs +4 -3
- package/fesm2022/mesgflow-ui-kit-pagination.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-password-input.mjs +7 -2
- package/fesm2022/mesgflow-ui-kit-password-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-popover.mjs +9 -49
- package/fesm2022/mesgflow-ui-kit-popover.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-progress.mjs +162 -21
- package/fesm2022/mesgflow-ui-kit-progress.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-radio.mjs +4 -6
- package/fesm2022/mesgflow-ui-kit-radio.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-rating.mjs +2 -2
- package/fesm2022/mesgflow-ui-kit-rating.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-search-input.mjs +9 -5
- package/fesm2022/mesgflow-ui-kit-search-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs +12 -8
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-select.mjs +3 -2
- package/fesm2022/mesgflow-ui-kit-select.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs +16 -13
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs +4 -3
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-slider.mjs +250 -3
- package/fesm2022/mesgflow-ui-kit-slider.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-sortable.mjs +526 -0
- package/fesm2022/mesgflow-ui-kit-sortable.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-spinner.mjs +42 -13
- package/fesm2022/mesgflow-ui-kit-spinner.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-split-button.mjs +205 -0
- package/fesm2022/mesgflow-ui-kit-split-button.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-splitter.mjs +210 -3
- package/fesm2022/mesgflow-ui-kit-splitter.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs +11 -4
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-stepper.mjs +167 -60
- package/fesm2022/mesgflow-ui-kit-stepper.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-switch.mjs +2 -2
- package/fesm2022/mesgflow-ui-kit-switch.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-table.mjs +16 -10
- package/fesm2022/mesgflow-ui-kit-table.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-tabs.mjs +410 -169
- package/fesm2022/mesgflow-ui-kit-tabs.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs +7 -2
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-theming.mjs +4 -4
- package/fesm2022/mesgflow-ui-kit-theming.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-toast.mjs +113 -30
- package/fesm2022/mesgflow-ui-kit-toast.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-toggle.mjs +3 -2
- package/fesm2022/mesgflow-ui-kit-toggle.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs +4 -2
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs +73 -50
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-tour.mjs +8 -20
- package/fesm2022/mesgflow-ui-kit-tour.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-transfer-list.mjs +288 -0
- package/fesm2022/mesgflow-ui-kit-transfer-list.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tree.mjs +1 -1
- package/fesm2022/mesgflow-ui-kit-tree.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-virtual-list.mjs +109 -0
- package/fesm2022/mesgflow-ui-kit-virtual-list.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit.mjs +92 -12836
- package/fesm2022/mesgflow-ui-kit.mjs.map +1 -1
- package/package.json +87 -3
- package/schematics/collection.json +10 -0
- package/schematics/migration.json +10 -0
- package/schematics/migrations/v0-7.cjs +70 -0
- package/schematics/ng-add/index.cjs +234 -0
- package/schematics/ng-add/schema.json +43 -0
- package/tokens/color.css +96 -0
- package/tokens/controls.css +145 -0
- package/tokens/elevation.css +62 -6
- package/tokens/motion.css +304 -66
- package/tokens/radius.css +14 -0
- package/tokens.css +1 -0
- package/tokens.json +1583 -0
- package/types/mesgflow-ui-kit-agenda.d.ts +49 -0
- package/types/mesgflow-ui-kit-aspect-ratio.d.ts +18 -0
- package/types/mesgflow-ui-kit-blocks.d.ts +128 -0
- package/types/mesgflow-ui-kit-button.d.ts +23 -38
- package/types/mesgflow-ui-kit-card.d.ts +26 -16
- package/types/mesgflow-ui-kit-carousel.d.ts +51 -0
- package/types/mesgflow-ui-kit-checkbox.d.ts +8 -5
- package/types/mesgflow-ui-kit-code-block.d.ts +4 -1
- package/types/mesgflow-ui-kit-combobox.d.ts +47 -22
- package/types/mesgflow-ui-kit-core.d.ts +271 -21
- package/types/mesgflow-ui-kit-countdown.d.ts +47 -0
- package/types/mesgflow-ui-kit-date-picker.d.ts +31 -1
- package/types/mesgflow-ui-kit-dialog.d.ts +29 -6
- package/types/mesgflow-ui-kit-drawer.d.ts +45 -0
- package/types/mesgflow-ui-kit-field.d.ts +17 -8
- package/types/mesgflow-ui-kit-file-upload.d.ts +64 -0
- package/types/mesgflow-ui-kit-hover-card.d.ts +2 -2
- package/types/mesgflow-ui-kit-icons-lucide.d.ts +27 -0
- package/types/mesgflow-ui-kit-inline-edit.d.ts +42 -0
- package/types/mesgflow-ui-kit-input.d.ts +64 -2
- package/types/mesgflow-ui-kit-lightbox.d.ts +54 -0
- package/types/mesgflow-ui-kit-listbox.d.ts +30 -0
- package/types/mesgflow-ui-kit-mention.d.ts +59 -0
- package/types/mesgflow-ui-kit-menu.d.ts +41 -2
- package/types/mesgflow-ui-kit-nav-menu.d.ts +58 -0
- package/types/mesgflow-ui-kit-notification-center.d.ts +41 -0
- package/types/mesgflow-ui-kit-number-input.d.ts +3 -1
- package/types/mesgflow-ui-kit-password-input.d.ts +3 -1
- package/types/mesgflow-ui-kit-popover.d.ts +13 -5
- package/types/mesgflow-ui-kit-progress.d.ts +33 -12
- package/types/mesgflow-ui-kit-radio.d.ts +2 -2
- package/types/mesgflow-ui-kit-search-input.d.ts +3 -1
- package/types/mesgflow-ui-kit-segmented-control.d.ts +4 -0
- package/types/mesgflow-ui-kit-sidebar.d.ts +1 -1
- package/types/mesgflow-ui-kit-slider.d.ts +60 -1
- package/types/mesgflow-ui-kit-sortable.d.ts +103 -0
- package/types/mesgflow-ui-kit-spinner.d.ts +5 -8
- package/types/mesgflow-ui-kit-split-button.d.ts +47 -0
- package/types/mesgflow-ui-kit-splitter.d.ts +64 -1
- package/types/mesgflow-ui-kit-stat-tile.d.ts +3 -0
- package/types/mesgflow-ui-kit-stepper.d.ts +54 -32
- package/types/mesgflow-ui-kit-table.d.ts +2 -0
- package/types/mesgflow-ui-kit-tabs.d.ts +193 -93
- package/types/mesgflow-ui-kit-tag-input.d.ts +3 -1
- package/types/mesgflow-ui-kit-toast.d.ts +48 -22
- package/types/mesgflow-ui-kit-tooltip.d.ts +15 -12
- package/types/mesgflow-ui-kit-transfer-list.d.ts +34 -0
- package/types/mesgflow-ui-kit-virtual-list.d.ts +35 -0
- package/types/mesgflow-ui-kit.d.ts +87 -5444
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ClassValue } from 'clsx';
|
|
2
2
|
import { ConnectedPosition } from '@angular/cdk/overlay';
|
|
3
|
-
import * as
|
|
3
|
+
import * as _angular_core from '@angular/core';
|
|
4
4
|
import { InjectionToken, Signal, EnvironmentProviders } from '@angular/core';
|
|
5
|
+
import * as _mesgflow_ui_kit_core from '@mesgflow/ui-kit/core';
|
|
5
6
|
import { Locale } from 'date-fns/locale';
|
|
6
7
|
|
|
7
|
-
/** clsx ile koşullu class'ları birleştirir, tailwind-merge ile çakışan utility'leri (ör. iki farklı `bg-*`) sonuncusu kazanacak şekilde çözer. */
|
|
8
|
+
/** clsx ile koşullu class'ları birleştirir, tailwind-merge ile çakışan utility'leri (ör. iki farklı `bg-*`) sonuncusu kazanacak şekilde çözer — kitin özel token'ları dahil. */
|
|
8
9
|
declare function cn(...inputs: ClassValue[]): string;
|
|
9
10
|
|
|
10
11
|
/**
|
|
@@ -22,13 +23,17 @@ declare function scrollFromInlineStart(el: Element): number;
|
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* Kit genelinde paylaşılan primitif tipler — her bileşenin kendi `size`/`tone`
|
|
25
|
-
* union'ını elle tekrar tanımlamak yerine buradan türetir.
|
|
26
|
-
* "Faz 1a" — `tone` kelime dağarcığının (severity/tone/type karmaşasının)
|
|
27
|
-
* birleştiği tek kaynak burası olacak.
|
|
26
|
+
* union'ını elle tekrar tanımlamak yerine buradan türetir.
|
|
28
27
|
*/
|
|
29
28
|
type MfSize = 'sm' | 'md' | 'lg';
|
|
29
|
+
/**
|
|
30
|
+
* Genişletilmiş kontrol ölçeği — `xs` (yoğun tablo/araç çubuğu) ve `xl`
|
|
31
|
+
* (hero/pazarlama CTA). Yalnızca bu uçları GERÇEKTEN destekleyen bileşenler
|
|
32
|
+
* (Button, Input) kullanır; diğerleri `MfSize`'da kalır.
|
|
33
|
+
*/
|
|
34
|
+
type MfControlSize = 'xs' | MfSize | 'xl';
|
|
30
35
|
type MfTone = 'neutral' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'help';
|
|
31
|
-
type MfPlacement = 'top' | 'bottom' | 'left' | 'right' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
|
|
36
|
+
type MfPlacement = 'top' | 'bottom' | 'left' | 'right' | 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
|
|
32
37
|
|
|
33
38
|
/**
|
|
34
39
|
* Paylaşılan class reçeteleri — kontrol/overlay/kapsayıcı bileşenlerinin
|
|
@@ -46,7 +51,7 @@ declare const disabledRecipe = "disabled:pointer-events-none disabled:opacity-50
|
|
|
46
51
|
/** Input/Select/Combobox/NumberInput/... — tüm form kontrollerinin ortak kabuğu. `shadow-control` (bkz. elevation.css) — `shadow-1` DEĞİL, kontroller kapsayıcılarla AYNI yükselti basamağını paylaşmaz. */
|
|
47
52
|
declare const controlSurface = "rounded-md border border-border bg-surface text-fg shadow-control transition-colors duration-fast ease-emphasis hover:border-border-strong focus-within:border-accent";
|
|
48
53
|
/** `size: MfSize` eksenindeki TÜM kontrollerin ortak yükseklik/dolgu/font eşlemesi — bkz. `radius.css`'teki `--control-h-*` token'ları. */
|
|
49
|
-
declare const controlSize: Record<
|
|
54
|
+
declare const controlSize: Record<MfControlSize, string>;
|
|
50
55
|
/**
|
|
51
56
|
* Popover/Menu/Select/Combobox/... overlay panellerinin ortak kabuğu — BORDER-
|
|
52
57
|
* FIRST (2026-09 Deep Emerald geçişi, kullanıcı kararıyla eski "light modda
|
|
@@ -111,19 +116,78 @@ declare abstract class ValueAccessorBase<T> {
|
|
|
111
116
|
}
|
|
112
117
|
|
|
113
118
|
/**
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
+
* Tüm bağlı overlay'lerin (Popover, Tooltip, HoverCard, Tour, ContextMenu ve
|
|
120
|
+
* Popover üstüne kurulan Select/Combobox/DatePicker/...) TEK konum üreticisi:
|
|
121
|
+
* tercih edilen yerleşim + taşmada karşı tarafa çevrilen (flip) yedek.
|
|
122
|
+
*
|
|
123
|
+
* Her pozisyon bir `panelClass` taşır — CDK hangisini SEÇERSE pane'e o
|
|
124
|
+
* eklenir: `mf-side-*` (giriş kayma yönü) + `mf-origin-*` (`transform-origin`),
|
|
125
|
+
* bkz. styles/tokens/motion.css. Böylece panel yukarı çevrildiğinde (flip) animasyon
|
|
126
|
+
* da tetikleyiciden dışarı doğru açılır (Radix
|
|
127
|
+
* `--radix-popper-transform-origin` eşleniği, abonelik gerekmeden).
|
|
119
128
|
*
|
|
120
|
-
*
|
|
121
|
-
* `Tooltip` ve 10 kopya `ConnectedPosition[]` içeren diğer bileşenlerin buna
|
|
122
|
-
* geçişi Faz 1c'nin ("Overlay birleştirme") kapsamı: her biri kendi klavye/
|
|
123
|
-
* vurgu mantığını koruyarak taşınmalı ve tarayıcıda tek tek doğrulanmalı —
|
|
124
|
-
* bu fazın (yapısal taşıma) riskiyle karıştırılmamalı.
|
|
129
|
+
* `left`/`right` MANTIKSAL (`start`/`end`) — RTL'de CDK kendisi çevirir.
|
|
125
130
|
*/
|
|
126
131
|
declare function overlayPositions(placement: MfPlacement, offset?: number): ConnectedPosition[];
|
|
132
|
+
/**
|
|
133
|
+
* İmleç konumuna açılan paneller (ContextMenu) — köşe tetikleyiciye yapışık,
|
|
134
|
+
* dört çeyrekte flip; origin her zaman imlece bakan köşe.
|
|
135
|
+
*/
|
|
136
|
+
declare function pointerPositions(): ConnectedPosition[];
|
|
137
|
+
|
|
138
|
+
/** `prefers-reduced-motion: reduce` — SSR/jsdom'da (matchMedia yok) `false`. */
|
|
139
|
+
declare function prefersReducedMotion(): boolean;
|
|
140
|
+
/** CSS süre string'ini (`120ms`, `0.2s`) milisaniyeye çevirir; çözülemezse `null`. */
|
|
141
|
+
declare function parseCssDuration(raw: string): number | null;
|
|
142
|
+
/**
|
|
143
|
+
* Overlay/dialog/toast çıkış animasyonunun süresi — `--mf-duration-exit`
|
|
144
|
+
* (styles/tokens/motion.css) TEK kaynak. Eskiden `dialog.service.ts`,
|
|
145
|
+
* `popover.ts`, `toast.service.ts` her biri `EXIT_MS = 120` sabitini CSS'le
|
|
146
|
+
* ELLE eşitliyordu; token değişince JS kısa kalıp panel animasyonun ortasında
|
|
147
|
+
* kopuyordu. Reduced-motion'da `0` (panel anında kaldırılır).
|
|
148
|
+
*/
|
|
149
|
+
declare function exitDurationMs(): number;
|
|
150
|
+
|
|
151
|
+
type SlidingIndicatorAxis = 'x' | 'y';
|
|
152
|
+
/**
|
|
153
|
+
* `<span mfSlidingIndicator [track]="selected()" class="-bottom-px h-0.5 bg-accent-fill"></span>`
|
|
154
|
+
*
|
|
155
|
+
* Kitin ortak "kayan gösterge" motoru — Tabs'ın çizgisi/hapı, SegmentedControl'ün
|
|
156
|
+
* parçası, TabNav'ın çizgisi ve hover-izleme vurgusu AYNI hareketi paylaşsın diye.
|
|
157
|
+
* Kapsayıcı (varsayılan `parentElement`, `relative` olmalı) içinde `target`'ı
|
|
158
|
+
* bulur, onun `offsetLeft/offsetWidth`'ine (x) ya da `offsetTop/offsetHeight`'ına
|
|
159
|
+
* (y) göre `transform` + boyut yazar.
|
|
160
|
+
*
|
|
161
|
+
* - **Hareket:** hedef bir öğeden BAŞKA bir öğeye geçince yay eğrisiyle kayar
|
|
162
|
+
* (`ease-spring`, `duration-slow`). İlk görünüm, hedefin yeniden belirmesi ve
|
|
163
|
+
* yeniden boyutlanma (ResizeObserver, font yüklenmesi) ANINDA — göstergenin
|
|
164
|
+
* 0'dan "uçarak" gelmesi olmaz. Opaklık her zaman yumuşak geçer.
|
|
165
|
+
* - **Çapraz eksen** tüketicinin sınıfıdır (`-bottom-px h-0.5`, `inset-y-0`…);
|
|
166
|
+
* motor yalnız ana ekseni yazar.
|
|
167
|
+
* - **RTL:** `left-0` + `offsetLeft` + `translateX` üçü de fiziksel — birlikte
|
|
168
|
+
* RTL'de doğru (bkz. scripts/rtl-rules.mjs allowlist).
|
|
169
|
+
* - `target` `null` ise gösterge son konumunda solar (hover bitişi).
|
|
170
|
+
* - Azaltılmış harekette `motion.css`'in global anahtarı geçişleri sıfırlar.
|
|
171
|
+
*/
|
|
172
|
+
declare class SlidingIndicator {
|
|
173
|
+
readonly axis: _angular_core.InputSignal<SlidingIndicatorAxis>;
|
|
174
|
+
/** Kapsayıcı içinde çözülen CSS seçici, somut bir öğe ya da `null` (gizli). */
|
|
175
|
+
readonly target: _angular_core.InputSignal<string | HTMLElement | null>;
|
|
176
|
+
/** Herhangi bir değer — değişince (ör. seçim sinyali) hedef yeniden ölçülür. */
|
|
177
|
+
readonly track: _angular_core.InputSignal<unknown>;
|
|
178
|
+
/** Ölçüm kapsayıcısı; varsayılan `parentElement` (offsetParent olmalı). */
|
|
179
|
+
readonly container: _angular_core.InputSignal<HTMLElement | undefined>;
|
|
180
|
+
private readonly el;
|
|
181
|
+
private current;
|
|
182
|
+
constructor();
|
|
183
|
+
/** Dışarıdan yeniden ölçüm (ör. içerik değişti ama seçim değişmedi). */
|
|
184
|
+
refresh(animate?: boolean): void;
|
|
185
|
+
private box;
|
|
186
|
+
private resolve;
|
|
187
|
+
private update;
|
|
188
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlidingIndicator, never>;
|
|
189
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SlidingIndicator, "[mfSlidingIndicator]", ["mfSlidingIndicator"], { "axis": { "alias": "axis"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "track": { "alias": "track"; "required": false; "isSignal": true; }; "container": { "alias": "container"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
190
|
+
}
|
|
127
191
|
|
|
128
192
|
/**
|
|
129
193
|
* Kitin TÜM metinlerinin TEK şekli — `MF_LABELS` injection token'ının taşıdığı
|
|
@@ -171,6 +235,9 @@ interface MfDatePickerLabels {
|
|
|
171
235
|
presetLast7: string;
|
|
172
236
|
presetLast30: string;
|
|
173
237
|
presetThisMonth: string;
|
|
238
|
+
/** DateTimePicker alt alanlarının adları. */
|
|
239
|
+
date: string;
|
|
240
|
+
time: string;
|
|
174
241
|
}
|
|
175
242
|
interface MfTimePickerLabels {
|
|
176
243
|
placeholder: string;
|
|
@@ -283,6 +350,10 @@ interface MfBoxInputLabels {
|
|
|
283
350
|
interface MfComboboxLabels {
|
|
284
351
|
placeholder: string;
|
|
285
352
|
noResults: string;
|
|
353
|
+
/** `creatable` satırı — `{query}` yazılan metinle değiştirilir. */
|
|
354
|
+
create: string;
|
|
355
|
+
/** Çoklu seçimde çip kaldırma düğmesi — `{label}` seçenek adıyla değiştirilir. */
|
|
356
|
+
remove: string;
|
|
286
357
|
}
|
|
287
358
|
interface MfSelectLabels {
|
|
288
359
|
placeholder: string;
|
|
@@ -300,6 +371,11 @@ interface MfOtpInputLabels {
|
|
|
300
371
|
}
|
|
301
372
|
interface MfStepperLabels {
|
|
302
373
|
ariaLabel: string;
|
|
374
|
+
/** İsteğe bağlı adım etiketi. */
|
|
375
|
+
optional: string;
|
|
376
|
+
/** Ekran okuyucu için adım durumu (ikon yalnızca görsel). */
|
|
377
|
+
completed: string;
|
|
378
|
+
error: string;
|
|
303
379
|
}
|
|
304
380
|
interface MfProgressLabels {
|
|
305
381
|
ariaLabel: string;
|
|
@@ -385,6 +461,148 @@ interface MfChartLabels {
|
|
|
385
461
|
showChart: string;
|
|
386
462
|
category: string;
|
|
387
463
|
}
|
|
464
|
+
/** StatTile değişim yönünün ekran okuyucu metni (ikon yalnızca görsel). */
|
|
465
|
+
interface MfStatTileLabels {
|
|
466
|
+
increase: string;
|
|
467
|
+
decrease: string;
|
|
468
|
+
noChange: string;
|
|
469
|
+
}
|
|
470
|
+
/** RangeSlider tutamaçlarının erişilebilir adları. */
|
|
471
|
+
interface MfSliderLabels {
|
|
472
|
+
minThumb: string;
|
|
473
|
+
maxThumb: string;
|
|
474
|
+
}
|
|
475
|
+
interface MfSplitButtonLabels {
|
|
476
|
+
/** Menü (▾) düğmesinin erişilebilir adı. */
|
|
477
|
+
moreActions: string;
|
|
478
|
+
}
|
|
479
|
+
interface MfFileUploadLabels {
|
|
480
|
+
uploading: string;
|
|
481
|
+
done: string;
|
|
482
|
+
failed: string;
|
|
483
|
+
queued: string;
|
|
484
|
+
retry: string;
|
|
485
|
+
cancel: string;
|
|
486
|
+
remove: string;
|
|
487
|
+
/** Liste başlığı — `{count}` dosya sayısıyla değiştirilir. */
|
|
488
|
+
files: string;
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Sıralanabilir liste/Kanban klavye duyuruları. Yer tutucular: `{item}`,
|
|
492
|
+
* `{position}`, `{total}`, `{column}`.
|
|
493
|
+
*/
|
|
494
|
+
interface MfSortableLabels {
|
|
495
|
+
instructions: string;
|
|
496
|
+
grabbed: string;
|
|
497
|
+
moved: string;
|
|
498
|
+
movedToColumn: string;
|
|
499
|
+
dropped: string;
|
|
500
|
+
cancelled: string;
|
|
501
|
+
dragHandle: string;
|
|
502
|
+
/** Kanban kartının `aria-roledescription`'ı. */
|
|
503
|
+
card: string;
|
|
504
|
+
}
|
|
505
|
+
interface MfCountdownLabels {
|
|
506
|
+
days: string;
|
|
507
|
+
hours: string;
|
|
508
|
+
minutes: string;
|
|
509
|
+
seconds: string;
|
|
510
|
+
/** Ekran okuyucu özeti — `{time}` kalan süre metniyle değiştirilir. */
|
|
511
|
+
remaining: string;
|
|
512
|
+
finished: string;
|
|
513
|
+
}
|
|
514
|
+
interface MfCarouselLabels {
|
|
515
|
+
previous: string;
|
|
516
|
+
next: string;
|
|
517
|
+
/** `{index}` / `{total}` */
|
|
518
|
+
slide: string;
|
|
519
|
+
pause: string;
|
|
520
|
+
play: string;
|
|
521
|
+
/** Nokta düğmeleri — `{index}` */
|
|
522
|
+
goTo: string;
|
|
523
|
+
carousel: string;
|
|
524
|
+
}
|
|
525
|
+
interface MfInlineEditLabels {
|
|
526
|
+
edit: string;
|
|
527
|
+
save: string;
|
|
528
|
+
cancel: string;
|
|
529
|
+
empty: string;
|
|
530
|
+
}
|
|
531
|
+
interface MfTransferListLabels {
|
|
532
|
+
available: string;
|
|
533
|
+
selected: string;
|
|
534
|
+
moveRight: string;
|
|
535
|
+
moveLeft: string;
|
|
536
|
+
moveAllRight: string;
|
|
537
|
+
moveAllLeft: string;
|
|
538
|
+
search: string;
|
|
539
|
+
/** `{selected}` / `{total}` */
|
|
540
|
+
count: string;
|
|
541
|
+
empty: string;
|
|
542
|
+
}
|
|
543
|
+
interface MfLightboxLabels {
|
|
544
|
+
close: string;
|
|
545
|
+
previous: string;
|
|
546
|
+
next: string;
|
|
547
|
+
zoomIn: string;
|
|
548
|
+
zoomOut: string;
|
|
549
|
+
/** `{index}` / `{total}` */
|
|
550
|
+
counter: string;
|
|
551
|
+
gallery: string;
|
|
552
|
+
}
|
|
553
|
+
interface MfNotificationCenterLabels {
|
|
554
|
+
title: string;
|
|
555
|
+
markAllRead: string;
|
|
556
|
+
empty: string;
|
|
557
|
+
emptyDescription: string;
|
|
558
|
+
unread: string;
|
|
559
|
+
/** Tetikleyici adı — `{count}` okunmamış sayısı. */
|
|
560
|
+
trigger: string;
|
|
561
|
+
viewAll: string;
|
|
562
|
+
}
|
|
563
|
+
interface MfAgendaLabels {
|
|
564
|
+
allDay: string;
|
|
565
|
+
empty: string;
|
|
566
|
+
today: string;
|
|
567
|
+
tomorrow: string;
|
|
568
|
+
}
|
|
569
|
+
interface MfMentionLabels {
|
|
570
|
+
suggestions: string;
|
|
571
|
+
noResults: string;
|
|
572
|
+
}
|
|
573
|
+
interface MfAuthCardLabels {
|
|
574
|
+
title: string;
|
|
575
|
+
description: string;
|
|
576
|
+
email: string;
|
|
577
|
+
emailPlaceholder: string;
|
|
578
|
+
password: string;
|
|
579
|
+
forgotPassword: string;
|
|
580
|
+
remember: string;
|
|
581
|
+
submit: string;
|
|
582
|
+
/** Sağlayıcı düğmeleriyle e-posta formu arasındaki ayırıcı. */
|
|
583
|
+
divider: string;
|
|
584
|
+
noAccount: string;
|
|
585
|
+
signUp: string;
|
|
586
|
+
emailRequired: string;
|
|
587
|
+
emailInvalid: string;
|
|
588
|
+
passwordRequired: string;
|
|
589
|
+
errorTitle: string;
|
|
590
|
+
}
|
|
591
|
+
interface MfInviteMembersLabels {
|
|
592
|
+
title: string;
|
|
593
|
+
description: string;
|
|
594
|
+
emails: string;
|
|
595
|
+
emailsPlaceholder: string;
|
|
596
|
+
role: string;
|
|
597
|
+
submit: string;
|
|
598
|
+
/** `{emails}` — geçersiz adresler virgülle. */
|
|
599
|
+
invalidEmails: string;
|
|
600
|
+
emailsRequired: string;
|
|
601
|
+
}
|
|
602
|
+
interface MfPanelGroupLabels {
|
|
603
|
+
/** Ayırıcı adı — `{index}` */
|
|
604
|
+
resize: string;
|
|
605
|
+
}
|
|
388
606
|
interface MfLabels {
|
|
389
607
|
common: MfCommonLabels;
|
|
390
608
|
dialog: MfDialogLabels;
|
|
@@ -417,6 +635,22 @@ interface MfLabels {
|
|
|
417
635
|
rating: MfRatingLabels;
|
|
418
636
|
themeSwitcher: MfThemeSwitcherLabels;
|
|
419
637
|
treeSelect: MfTreeSelectLabels;
|
|
638
|
+
statTile: MfStatTileLabels;
|
|
639
|
+
slider: MfSliderLabels;
|
|
640
|
+
splitButton: MfSplitButtonLabels;
|
|
641
|
+
fileUpload: MfFileUploadLabels;
|
|
642
|
+
sortable: MfSortableLabels;
|
|
643
|
+
countdown: MfCountdownLabels;
|
|
644
|
+
carousel: MfCarouselLabels;
|
|
645
|
+
inlineEdit: MfInlineEditLabels;
|
|
646
|
+
transferList: MfTransferListLabels;
|
|
647
|
+
lightbox: MfLightboxLabels;
|
|
648
|
+
notificationCenter: MfNotificationCenterLabels;
|
|
649
|
+
agenda: MfAgendaLabels;
|
|
650
|
+
mention: MfMentionLabels;
|
|
651
|
+
panelGroup: MfPanelGroupLabels;
|
|
652
|
+
authCard: MfAuthCardLabels;
|
|
653
|
+
inviteMembers: MfInviteMembersLabels;
|
|
420
654
|
}
|
|
421
655
|
/** `provideMesgflowUi({ labels })`'ın kabul ettiği şekil — her alt-alan opsiyonel, verilmeyen her yaprak `mfLabelsEn`'den gelir. */
|
|
422
656
|
type DeepPartial<T> = T extends object ? {
|
|
@@ -475,6 +709,22 @@ declare const MF_TOUR_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfTour
|
|
|
475
709
|
declare const MF_RATING_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfRatingLabels>>;
|
|
476
710
|
declare const MF_THEME_SWITCHER_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfThemeSwitcherLabels>>;
|
|
477
711
|
declare const MF_TREE_SELECT_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfTreeSelectLabels>>;
|
|
712
|
+
declare const MF_STAT_TILE_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfStatTileLabels>>;
|
|
713
|
+
declare const MF_SLIDER_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfSliderLabels>>;
|
|
714
|
+
declare const MF_SPLIT_BUTTON_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfSplitButtonLabels>>;
|
|
715
|
+
declare const MF_FILE_UPLOAD_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfFileUploadLabels>>;
|
|
716
|
+
declare const MF_SORTABLE_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfSortableLabels>>;
|
|
717
|
+
declare const MF_COUNTDOWN_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfCountdownLabels>>;
|
|
718
|
+
declare const MF_CAROUSEL_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfCarouselLabels>>;
|
|
719
|
+
declare const MF_INLINE_EDIT_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfInlineEditLabels>>;
|
|
720
|
+
declare const MF_TRANSFER_LIST_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfTransferListLabels>>;
|
|
721
|
+
declare const MF_LIGHTBOX_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfLightboxLabels>>;
|
|
722
|
+
declare const MF_NOTIFICATION_CENTER_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfNotificationCenterLabels>>;
|
|
723
|
+
declare const MF_AGENDA_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfAgendaLabels>>;
|
|
724
|
+
declare const MF_MENTION_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfMentionLabels>>;
|
|
725
|
+
declare const MF_PANEL_GROUP_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfPanelGroupLabels>>;
|
|
726
|
+
declare const MF_AUTH_CARD_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfAuthCardLabels>>;
|
|
727
|
+
declare const MF_INVITE_MEMBERS_LABELS: InjectionToken<Signal<_mesgflow_ui_kit_core.MfInviteMembersLabels>>;
|
|
478
728
|
|
|
479
729
|
interface ProvideMesgflowUiOptions {
|
|
480
730
|
/**
|
|
@@ -485,8 +735,8 @@ interface ProvideMesgflowUiOptions {
|
|
|
485
735
|
* `MfLabels` nesnesi sağlamak ZORUNLU değil.
|
|
486
736
|
*/
|
|
487
737
|
labels?: DeepPartial<MfLabels> | Signal<DeepPartial<MfLabels>>;
|
|
488
|
-
/** Calendar/DatePicker ay/gün adları — varsayılan `date-fns/locale`'in `enUS`'u. */
|
|
489
|
-
dateLocale?: Locale
|
|
738
|
+
/** Calendar/DatePicker ay/gün adları — varsayılan `date-fns/locale`'in `enUS`'u. Dil değişince canlı güncellenmesi için bir `Signal` da verilebilir. */
|
|
739
|
+
dateLocale?: Locale | Signal<Locale>;
|
|
490
740
|
}
|
|
491
741
|
/**
|
|
492
742
|
* `app.config.ts`'in `providers` dizisine eklenir — `MF_LABELS`/`MF_DATE_LOCALE`'ı
|
|
@@ -504,5 +754,5 @@ interface ProvideMesgflowUiOptions {
|
|
|
504
754
|
*/
|
|
505
755
|
declare function provideMesgflowUi(options?: ProvideMesgflowUiOptions): EnvironmentProviders;
|
|
506
756
|
|
|
507
|
-
export { MF_ALERT_LABELS, MF_AVATAR_GROUP_LABELS, MF_BOX_INPUT_LABELS, MF_BREADCRUMB_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_DATE_LOCALE, MF_DATE_PICKER_LABELS, MF_DIALOG_LABELS, MF_DROPZONE_LABELS, MF_LABELS, MF_OTP_INPUT_LABELS, MF_PAGINATION_LABELS, MF_PASSWORD_INPUT_LABELS, MF_PROGRESS_LABELS, MF_RATING_LABELS, MF_SEARCH_INPUT_LABELS, MF_SELECT_LABELS, MF_SIDEBAR_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_TREE_SELECT_LABELS, ValueAccessorBase, cn, containerSurface, controlSize, controlSurface, disabledRecipe, errorRecipe, focusRecipe, glassSurface, inlineStartRatio, isRtl, mergeLabels, mfLabelsEn, nextId, overlayPositions, overlaySurface, pressRecipe, provideMesgflowUi, scrollFromInlineStart, transitionRecipe };
|
|
508
|
-
export type { DeepPartial, MfAlertLabels, MfAvatarGroupLabels, MfBoxInputLabels, MfBreadcrumbLabels, MfCharacterCountLabels, MfChartLabels, MfChipLabels, MfColorPickerLabels, MfComboboxLabels, MfCommandLabels, MfCommonLabels, MfCopyLabels, MfDatePickerLabels, MfDialogLabels, MfDropzoneLabels, MfLabels, MfOtpInputLabels, MfPaginationLabels, MfPasswordInputLabels, MfPlacement, MfProgressLabels, MfRatingLabels, MfSearchInputLabels, MfSelectLabels, MfSidebarLabels, MfSize, MfStepperLabels, MfTableFilterLabels, MfTableFilterOperatorLabels, MfTableLabels, MfTablePaginationLabels, MfTabsLabels, MfThemeSwitcherLabels, MfTimePickerLabels, MfToastLabels, MfTone, MfTourLabels, MfTreeSelectLabels, ProvideMesgflowUiOptions };
|
|
757
|
+
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_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 };
|
|
758
|
+
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, MfRatingLabels, MfSearchInputLabels, MfSelectLabels, MfSidebarLabels, MfSize, MfSliderLabels, MfSortableLabels, MfSplitButtonLabels, MfStatTileLabels, MfStepperLabels, MfTableFilterLabels, MfTableFilterOperatorLabels, MfTableLabels, MfTablePaginationLabels, MfTabsLabels, MfThemeSwitcherLabels, MfTimePickerLabels, MfToastLabels, MfTone, MfTourLabels, MfTransferListLabels, MfTreeSelectLabels, ProvideMesgflowUiOptions, SlidingIndicatorAxis };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
|
|
3
|
+
interface CountdownParts {
|
|
4
|
+
days: number;
|
|
5
|
+
hours: number;
|
|
6
|
+
minutes: number;
|
|
7
|
+
seconds: number;
|
|
8
|
+
total: number;
|
|
9
|
+
}
|
|
10
|
+
/** Kalan milisaniyeyi gün/saat/dakika/saniye parçalarına böler. */
|
|
11
|
+
declare function countdownParts(ms: number): CountdownParts;
|
|
12
|
+
/**
|
|
13
|
+
* `<mf-countdown [to]="launchAt" (finished)="reveal()" />`
|
|
14
|
+
*
|
|
15
|
+
* Hedef zamana geri sayım — kampanya, açık artırma, oturum süresi.
|
|
16
|
+
* - `appearance="segments"` (varsayılan): kutucuklar; `inline`: tek satır metin.
|
|
17
|
+
* - `role="timer"` + ekran okuyucu özeti yalnızca DAKİKADA bir güncellenir
|
|
18
|
+
* (her saniye duyuru yapılırsa okuyucu susmaz).
|
|
19
|
+
* - Rakamlar `tabular-nums` — saniye değişirken genişlik titremez.
|
|
20
|
+
* - Sıfıra ulaşınca `finished` bir kez yayar.
|
|
21
|
+
*/
|
|
22
|
+
declare class Countdown {
|
|
23
|
+
readonly to: _angular_core.InputSignal<number | Date>;
|
|
24
|
+
readonly appearance: _angular_core.InputSignal<"segments" | "inline">;
|
|
25
|
+
/** Gün sıfırsa gün kutusunu gizle. */
|
|
26
|
+
readonly hideEmptyDays: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
27
|
+
readonly finished: _angular_core.OutputEmitterRef<void>;
|
|
28
|
+
private readonly labels;
|
|
29
|
+
private readonly now;
|
|
30
|
+
private fired;
|
|
31
|
+
protected readonly parts: _angular_core.Signal<CountdownParts>;
|
|
32
|
+
protected readonly units: _angular_core.Signal<{
|
|
33
|
+
key: string;
|
|
34
|
+
value: number;
|
|
35
|
+
label: string;
|
|
36
|
+
}[]>;
|
|
37
|
+
protected readonly inlineText: _angular_core.Signal<string>;
|
|
38
|
+
/** Dakika çözünürlüğünde özet — her saniye DEĞİŞMEZ. */
|
|
39
|
+
protected readonly summary: _angular_core.Signal<string>;
|
|
40
|
+
constructor();
|
|
41
|
+
protected pad(n: number): string;
|
|
42
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Countdown, never>;
|
|
43
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Countdown, "mf-countdown", ["mfCountdown"], { "to": { "alias": "to"; "required": true; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "hideEmptyDays": { "alias": "hideEmptyDays"; "required": false; "isSignal": true; }; }, { "finished": "finished"; }, never, never, true, never>;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export { Countdown, countdownParts };
|
|
47
|
+
export type { CountdownParts };
|
|
@@ -2,6 +2,7 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import { Locale } from 'date-fns';
|
|
3
3
|
import { MfDatePickerLabels, ValueAccessorBase } from '@mesgflow/ui-kit/core';
|
|
4
4
|
import { ControlValueAccessor } from '@angular/forms';
|
|
5
|
+
import { TimeValue } from '@mesgflow/ui-kit/time-picker';
|
|
5
6
|
|
|
6
7
|
interface DateRange {
|
|
7
8
|
start: Date | null;
|
|
@@ -211,5 +212,34 @@ declare class DateRangePicker extends ValueAccessorBase<DateRange> implements Co
|
|
|
211
212
|
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
|
}
|
|
213
214
|
|
|
214
|
-
|
|
215
|
+
/**
|
|
216
|
+
* `<mf-date-time-picker [(value)]="publishAt" [min]="now" ariaLabel="Yayın zamanı" />`
|
|
217
|
+
*
|
|
218
|
+
* Tarih + saat — TEK bir `Date` değeri. Mevcut `mf-date-picker` ve
|
|
219
|
+
* `mf-time-picker`'ın kompozisyonu (aynı klavye/erişilebilirlik davranışı):
|
|
220
|
+
* - Tarih değişince saat korunur; saat önce seçilirse tarih bugüne yerleşir.
|
|
221
|
+
* - İki alan `role="group"` altında tek bir ad paylaşır.
|
|
222
|
+
* - Reactive Forms / Signal Forms ile `value` üzerinden çalışır.
|
|
223
|
+
*/
|
|
224
|
+
declare class DateTimePicker extends ValueAccessorBase<Date | null> implements ControlValueAccessor {
|
|
225
|
+
readonly value: _angular_core.ModelSignal<Date | null>;
|
|
226
|
+
readonly min: _angular_core.InputSignal<Date | null>;
|
|
227
|
+
readonly max: _angular_core.InputSignal<Date | null>;
|
|
228
|
+
readonly minuteStep: _angular_core.InputSignal<number>;
|
|
229
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
230
|
+
readonly hasError: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
231
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
232
|
+
private readonly labels;
|
|
233
|
+
protected readonly dateLabel: _angular_core.Signal<string>;
|
|
234
|
+
protected readonly timeLabel: _angular_core.Signal<string>;
|
|
235
|
+
protected readonly time: _angular_core.Signal<TimeValue | null>;
|
|
236
|
+
writeValue(value: Date | null): void;
|
|
237
|
+
protected onDate(date: Date | null): void;
|
|
238
|
+
protected onTime(time: TimeValue | null): void;
|
|
239
|
+
private commit;
|
|
240
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DateTimePicker, never>;
|
|
241
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DateTimePicker, "mf-date-time-picker", ["mfDateTimePicker"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "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>;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export { Calendar, DatePicker, DateRangePicker, DateTimePicker, buildMonthMatrix, dateRangeForPreset, formatDateInput, isCurrentMonth, isDayDisabled, isSameDay, isWithinRange, parseDateInput, shiftMonth, shiftYear };
|
|
215
245
|
export type { DateRange, DateRangePresetId };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef } from '@angular/core';
|
|
2
3
|
import * as _mesgflow_ui_kit_core from '@mesgflow/ui-kit/core';
|
|
3
4
|
import * as i1 from '@angular/cdk/drag-drop';
|
|
4
5
|
import { DialogRef } from '@angular/cdk/dialog';
|
|
@@ -7,8 +8,14 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
|
|
|
7
8
|
import { VariantProps } from 'class-variance-authority';
|
|
8
9
|
|
|
9
10
|
type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
10
|
-
/**
|
|
11
|
-
|
|
11
|
+
/**
|
|
12
|
+
* `'center'` (varsayılan, klasik modal) ya da bir kenar çekmecesi. `start`/`end`
|
|
13
|
+
* MANTIKSAL (RTL'de çevrilir), `left`/`right` fiziksel; `top`/`bottom` tam
|
|
14
|
+
* genişlikte üst/alt panel. Bkz. `DialogService.openDrawer()` ve `<mf-drawer>`.
|
|
15
|
+
*/
|
|
16
|
+
type DialogPlacement = 'center' | 'start' | 'end' | 'left' | 'right' | 'top' | 'bottom';
|
|
17
|
+
/** Çekmecenin FİZİKSEL kenarı — yerleşim + yazı yönünden türetilir. */
|
|
18
|
+
type DrawerSide = 'left' | 'right' | 'top' | 'bottom';
|
|
12
19
|
interface DialogOptions<D> {
|
|
13
20
|
data?: D;
|
|
14
21
|
size?: DialogSize;
|
|
@@ -20,6 +27,12 @@ interface DialogOptions<D> {
|
|
|
20
27
|
draggable?: boolean;
|
|
21
28
|
/** Sağ-alt köşede serbest boyutlandırma tutamacı gösterir. Drawer'da etkisiz. */
|
|
22
29
|
resizable?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* < 640px'te panel alttan açılan bir sheet'e dönüşsün mü. Varsayılan `true`
|
|
32
|
+
* (orta ve yan paneller); `top`/`bottom` zaten tam genişlik olduğu için etkisiz.
|
|
33
|
+
* Mobilde de soldan açılması gereken bir gezinme çekmecesi için `false`.
|
|
34
|
+
*/
|
|
35
|
+
sheetOnMobile?: boolean;
|
|
23
36
|
/** `true` ise ESC/backdrop tıklaması kapatmaz (programatik `dialogRef.close()` yine çalışır). */
|
|
24
37
|
disableClose?: boolean;
|
|
25
38
|
ariaLabel?: string;
|
|
@@ -91,6 +104,8 @@ interface DialogCustomSize {
|
|
|
91
104
|
declare class DialogSurface {
|
|
92
105
|
readonly size: _angular_core.WritableSignal<DialogSize>;
|
|
93
106
|
readonly placement: _angular_core.WritableSignal<DialogPlacement>;
|
|
107
|
+
/** Çekmecenin fiziksel kenarı (`center`'da `null`) — `DialogService` yön bilgisiyle çözer. */
|
|
108
|
+
readonly side: _angular_core.WritableSignal<DrawerSide | null>;
|
|
94
109
|
readonly maximizable: _angular_core.WritableSignal<boolean>;
|
|
95
110
|
readonly draggable: _angular_core.WritableSignal<boolean>;
|
|
96
111
|
readonly resizable: _angular_core.WritableSignal<boolean>;
|
|
@@ -231,7 +246,7 @@ declare class DialogResizeHandle {
|
|
|
231
246
|
* Kapanış animasyonu: CDK'nın `DialogRef.close()`'u `overlayRef.dispose()`'u SENKRON
|
|
232
247
|
* çağırıyor, bir "kapanıyor" olayı/kancası yok. `closePredicate` bunun için bilinçli
|
|
233
248
|
* bir kaçamak — `false` döndürmek kapanmayı iptal ediyor: ilk çağrıda `surface.closing`'i
|
|
234
|
-
* `true` yapıp gerçek kapanmayı `
|
|
249
|
+
* `true` yapıp gerçek kapanmayı `exitDurationMs()` kadar geciktiriyoruz (panel bu sürede `Dialog`'un
|
|
235
250
|
* kendi reaktif `animate-dialog-out`/`animate-sheet-out`/`animate-drawer-out` class'ıyla
|
|
236
251
|
* görsel olarak kapanır), ikinci çağrıda (zaten `closing()===true`) gerçek `dispose()`'a
|
|
237
252
|
* izin veriyoruz. ESC/backdrop/programatik `dialogRef.close(...)` HEPSİ bu predicate'ten
|
|
@@ -249,9 +264,14 @@ declare class DialogService {
|
|
|
249
264
|
private readonly injector;
|
|
250
265
|
private readonly breakpointObserver;
|
|
251
266
|
private readonly labels;
|
|
267
|
+
private readonly dir;
|
|
252
268
|
/** `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
269
|
private readonly surfaces;
|
|
254
|
-
|
|
270
|
+
/**
|
|
271
|
+
* Bir component'i ya da bir `TemplateRef'i açar (şablon yolu `<mf-drawer>` gibi
|
|
272
|
+
* bildirimsel sarmalayıcılar içindir — şablonun injector'ı da `DialogSurface'i görür).
|
|
273
|
+
*/
|
|
274
|
+
open<R = void, D = undefined, C = unknown>(component: ComponentType<C> | TemplateRef<C>, options?: DialogOptions<D>): DialogRef<R, C>;
|
|
255
275
|
/**
|
|
256
276
|
* Kayıt oluştur/düzenle formlarının TEK açılış noktası — sağdan drawer.
|
|
257
277
|
* `maximizable` bilerek zorla kapatılıyor: drawer zaten tam yükseklik, büyütme
|
|
@@ -261,7 +281,9 @@ declare class DialogService {
|
|
|
261
281
|
* genişlikte açılmalı. İstisna: iki sütunlu bir form (sol dikey ray + sağ
|
|
262
282
|
* panel gibi) `md` içine sığmazsa `xl` (960px) geçilebilir.
|
|
263
283
|
*/
|
|
264
|
-
openDrawer<R = void, D = undefined, C = unknown>(component: ComponentType<C>, options?: Omit<DialogOptions<D>, 'placement'>
|
|
284
|
+
openDrawer<R = void, D = undefined, C = unknown>(component: ComponentType<C>, options?: Omit<DialogOptions<D>, 'placement'> & {
|
|
285
|
+
placement?: Exclude<DialogPlacement, 'center'>;
|
|
286
|
+
}): DialogRef<R, C>;
|
|
265
287
|
/** `Promise<boolean>` döner — `if (await dialog.confirm(...))` çağıran taraf için `.subscribe()` zincirinden daha sade. */
|
|
266
288
|
confirm(data: ConfirmDialogData): Promise<boolean>;
|
|
267
289
|
/**
|
|
@@ -335,8 +357,9 @@ declare class DialogService {
|
|
|
335
357
|
declare const dialogVariants: (props?: ({
|
|
336
358
|
size?: "sm" | "md" | "lg" | "xl" | "full" | null | undefined;
|
|
337
359
|
state?: "normal" | "maximized" | "sheet" | "drawer" | null | undefined;
|
|
360
|
+
side?: "left" | "right" | "top" | "bottom" | "none" | null | undefined;
|
|
338
361
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
339
362
|
type DialogVariants = VariantProps<typeof dialogVariants>;
|
|
340
363
|
|
|
341
364
|
export { ConfirmDialog, Dialog, DialogResizeHandle, DialogService, DialogSurface, dialogVariants };
|
|
342
|
-
export type { ConfirmDialogData, ConfirmTone, DialogCustomSize, DialogOptions, DialogPlacement, DialogSize, DialogVariants };
|
|
365
|
+
export type { ConfirmDialogData, ConfirmTone, DialogCustomSize, DialogOptions, DialogPlacement, DialogSize, DialogVariants, DrawerSide };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { DialogPlacement } from '@mesgflow/ui-kit/dialog';
|
|
3
|
+
|
|
4
|
+
type DrawerPlacement = Exclude<DialogPlacement, 'center'>;
|
|
5
|
+
/**
|
|
6
|
+
* `<mf-drawer [(open)]="filtersOpen" title="Filtreler" placement="end" size="sm">…</mf-drawer>`
|
|
7
|
+
*
|
|
8
|
+
* Bildirimsel çekmece (sheet) — `DialogService.openDrawer()`'ın şablon
|
|
9
|
+
* sürümü: içerik bir component yazmadan doğrudan şablonda durur, açık/kapalı
|
|
10
|
+
* durumu `open` modeliyle iki yönlü bağlanır.
|
|
11
|
+
*
|
|
12
|
+
* - `placement`: `start` / `end` (mantıksal, RTL'de çevrilir), `left` / `right`,
|
|
13
|
+
* `top` / `bottom`. Her kenar kendi kayma animasyonuyla açılır.
|
|
14
|
+
* - Dialog altyapısının TÜM davranışı: odak tuzağı + geri dönüş, Escape,
|
|
15
|
+
* backdrop tıklaması, çıkış animasyonu, kirli-form koruması, cam yüzey.
|
|
16
|
+
* - `<div drawer-footer>` slotu sabit altbilgiye gider (Kaydet/İptal).
|
|
17
|
+
* - `sheetOnMobile="false"`: mobilde de kenardan açılır (gezinme çekmeceleri).
|
|
18
|
+
*/
|
|
19
|
+
declare class Drawer {
|
|
20
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
21
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
22
|
+
readonly subtitle: _angular_core.InputSignal<string>;
|
|
23
|
+
readonly icon: _angular_core.InputSignal<string>;
|
|
24
|
+
readonly placement: _angular_core.InputSignal<DrawerPlacement>;
|
|
25
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg" | "xl">;
|
|
26
|
+
/** `true` ise Escape/backdrop kapatmaz — yalnızca programatik `open.set(false)`. */
|
|
27
|
+
readonly disableClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
28
|
+
readonly sheetOnMobile: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
29
|
+
/** Görünür başlık yoksa ekran okuyucu için ad. */
|
|
30
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
31
|
+
/** Kapanış tamamlandığında (animasyon dahil). */
|
|
32
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
33
|
+
private readonly dialog;
|
|
34
|
+
private readonly panel;
|
|
35
|
+
private ref;
|
|
36
|
+
constructor();
|
|
37
|
+
/** Programatik kapatma — `open.set(false)` ile eşdeğer. */
|
|
38
|
+
hide(): void;
|
|
39
|
+
private show;
|
|
40
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Drawer, never>;
|
|
41
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Drawer, "mf-drawer", ["mfDrawer"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "sheetOnMobile": { "alias": "sheetOnMobile"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["*", "[drawer-footer]"], true, never>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { Drawer };
|
|
45
|
+
export type { DrawerPlacement };
|