@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,9 +1,72 @@
|
|
|
1
1
|
import { clsx } from 'clsx';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { extendTailwindMerge } from 'tailwind-merge';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { input, inject, ElementRef, afterRenderEffect, DestroyRef, afterNextRender, Directive, InjectionToken, signal, computed, isSignal, makeEnvironmentProviders } from '@angular/core';
|
|
4
5
|
import { enUS } from 'date-fns/locale';
|
|
5
6
|
|
|
6
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Kitin kendi utility'lerini tanıyan tailwind-merge örneği. Öncesinde düz
|
|
9
|
+
* `twMerge` `text-eyebrow`'u bir METİN RENGİ sanıp `text-fg` ile çakıştırıyor
|
|
10
|
+
* (birini siliyor), `h-control-md` ile `h-8`'i ise hiç çözemiyordu (ikisi de
|
|
11
|
+
* kalıp CSS sırası kazananı belirliyordu) — `docs/tr/mimari.md` "twMerge
|
|
12
|
+
* gotcha" artık bu yapılandırmayla kapandı. Yeni bir özel utility
|
|
13
|
+
* (`@utility`/`@theme` ile) eklerken buraya da ekleyin.
|
|
14
|
+
*/
|
|
15
|
+
const twMerge = extendTailwindMerge({
|
|
16
|
+
extend: {
|
|
17
|
+
theme: {
|
|
18
|
+
text: [
|
|
19
|
+
'label',
|
|
20
|
+
'caption',
|
|
21
|
+
'eyebrow',
|
|
22
|
+
'title-sm',
|
|
23
|
+
'title',
|
|
24
|
+
'title-lg',
|
|
25
|
+
'display',
|
|
26
|
+
'display-lg',
|
|
27
|
+
'metric',
|
|
28
|
+
],
|
|
29
|
+
shadow: ['1', '2', '3', 'control', 'filled', 'glow', 'highlight'],
|
|
30
|
+
ease: ['emphasis', 'spring', 'exit'],
|
|
31
|
+
animate: [
|
|
32
|
+
'progress-slide',
|
|
33
|
+
'spin-slow',
|
|
34
|
+
'dialog-in',
|
|
35
|
+
'dialog-out',
|
|
36
|
+
'sheet-in',
|
|
37
|
+
'sheet-out',
|
|
38
|
+
'drawer-in',
|
|
39
|
+
'drawer-out',
|
|
40
|
+
'drawer-start-in',
|
|
41
|
+
'drawer-start-out',
|
|
42
|
+
'drawer-top-in',
|
|
43
|
+
'drawer-top-out',
|
|
44
|
+
'pop',
|
|
45
|
+
'overlay-in',
|
|
46
|
+
'overlay-out',
|
|
47
|
+
'toast-in',
|
|
48
|
+
'toast-out',
|
|
49
|
+
'countdown',
|
|
50
|
+
'list-in',
|
|
51
|
+
'draw',
|
|
52
|
+
'shimmer',
|
|
53
|
+
'fade-in',
|
|
54
|
+
],
|
|
55
|
+
font: ['display'],
|
|
56
|
+
tracking: ['label'],
|
|
57
|
+
},
|
|
58
|
+
classGroups: {
|
|
59
|
+
'h-control': [{ 'h-control': ['xs', 'sm', 'md', 'lg', 'xl'] }],
|
|
60
|
+
duration: [{ duration: ['instant', 'fast', 'base', 'slow', 'slower'] }],
|
|
61
|
+
z: [{ z: ['sticky', 'nav', 'overlay', 'toast'] }],
|
|
62
|
+
},
|
|
63
|
+
conflictingClassGroups: {
|
|
64
|
+
'h-control': ['h', 'size'],
|
|
65
|
+
h: ['h-control'],
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
/** 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. */
|
|
7
70
|
function cn(...inputs) {
|
|
8
71
|
return twMerge(clsx(inputs));
|
|
9
72
|
}
|
|
@@ -47,9 +110,11 @@ const disabledRecipe = 'disabled:pointer-events-none disabled:opacity-50 disable
|
|
|
47
110
|
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
111
|
/** `size: MfSize` eksenindeki TÜM kontrollerin ortak yükseklik/dolgu/font eşlemesi — bkz. `radius.css`'teki `--control-h-*` token'ları. */
|
|
49
112
|
const controlSize = {
|
|
113
|
+
xs: 'h-control-xs px-2 text-xs',
|
|
50
114
|
sm: 'h-control-sm px-2.5 text-sm',
|
|
51
115
|
md: 'h-control-md px-3 text-sm',
|
|
52
116
|
lg: 'h-control-lg px-3.5 text-base',
|
|
117
|
+
xl: 'h-control-xl px-4 text-base',
|
|
53
118
|
};
|
|
54
119
|
/**
|
|
55
120
|
* Popover/Menu/Select/Combobox/... overlay panellerinin ortak kabuğu — BORDER-
|
|
@@ -121,135 +186,233 @@ class ValueAccessorBase {
|
|
|
121
186
|
}
|
|
122
187
|
}
|
|
123
188
|
|
|
189
|
+
const OPPOSITE = { top: 'bottom', bottom: 'top', start: 'end', end: 'start' };
|
|
190
|
+
function split(placement) {
|
|
191
|
+
const [rawSide, rawAlign] = placement.split('-');
|
|
192
|
+
const side = rawSide === 'left' ? 'start' : rawSide === 'right' ? 'end' : rawSide;
|
|
193
|
+
return [side, rawAlign ?? 'center'];
|
|
194
|
+
}
|
|
195
|
+
function position(side, align, offset) {
|
|
196
|
+
if (side === 'top' || side === 'bottom') {
|
|
197
|
+
const below = side === 'bottom';
|
|
198
|
+
return {
|
|
199
|
+
originX: align,
|
|
200
|
+
originY: below ? 'bottom' : 'top',
|
|
201
|
+
overlayX: align,
|
|
202
|
+
overlayY: below ? 'top' : 'bottom',
|
|
203
|
+
offsetY: below ? offset : -offset,
|
|
204
|
+
// Panel aşağıdaysa ÜSTÜNDEN (tetikleyiciye bakan kenarından) büyür.
|
|
205
|
+
panelClass: [`mf-side-${side}`, `mf-origin-${below ? 'top' : 'bottom'}-${align}`],
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
const atEnd = side === 'end';
|
|
209
|
+
const alignY = align === 'start' ? 'top' : align === 'end' ? 'bottom' : 'center';
|
|
210
|
+
return {
|
|
211
|
+
originX: atEnd ? 'end' : 'start',
|
|
212
|
+
originY: alignY,
|
|
213
|
+
overlayX: atEnd ? 'start' : 'end',
|
|
214
|
+
overlayY: alignY,
|
|
215
|
+
offsetX: atEnd ? offset : -offset,
|
|
216
|
+
panelClass: [`mf-side-${side}`, `mf-origin-${alignY}-${atEnd ? 'start' : 'end'}`],
|
|
217
|
+
};
|
|
218
|
+
}
|
|
124
219
|
/**
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* üretir, `offset` çağıranın KENDİ mevcut değerini (Popover 4px, Tooltip 8px,
|
|
129
|
-
* diğer overlay'ler 4-8px arası değişen) korumasını sağlar.
|
|
220
|
+
* Tüm bağlı overlay'lerin (Popover, Tooltip, HoverCard, Tour, ContextMenu ve
|
|
221
|
+
* Popover üstüne kurulan Select/Combobox/DatePicker/...) TEK konum üreticisi:
|
|
222
|
+
* tercih edilen yerleşim + taşmada karşı tarafa çevrilen (flip) yedek.
|
|
130
223
|
*
|
|
131
|
-
*
|
|
132
|
-
* `
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
224
|
+
* Her pozisyon bir `panelClass` taşır — CDK hangisini SEÇERSE pane'e o
|
|
225
|
+
* eklenir: `mf-side-*` (giriş kayma yönü) + `mf-origin-*` (`transform-origin`),
|
|
226
|
+
* bkz. styles/tokens/motion.css. Böylece panel yukarı çevrildiğinde (flip) animasyon
|
|
227
|
+
* da tetikleyiciden dışarı doğru açılır (Radix
|
|
228
|
+
* `--radix-popper-transform-origin` eşleniği, abonelik gerekmeden).
|
|
229
|
+
*
|
|
230
|
+
* `left`/`right` MANTIKSAL (`start`/`end`) — RTL'de CDK kendisi çevirir.
|
|
136
231
|
*/
|
|
137
232
|
function overlayPositions(placement, offset = 4) {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
233
|
+
const [side, align] = split(placement);
|
|
234
|
+
return [position(side, align, offset), position(OPPOSITE[side], align, offset)];
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* İmleç konumuna açılan paneller (ContextMenu) — köşe tetikleyiciye yapışık,
|
|
238
|
+
* dört çeyrekte flip; origin her zaman imlece bakan köşe.
|
|
239
|
+
*/
|
|
240
|
+
function pointerPositions() {
|
|
241
|
+
return [
|
|
242
|
+
{
|
|
243
|
+
originX: 'start',
|
|
244
|
+
originY: 'top',
|
|
245
|
+
overlayX: 'start',
|
|
246
|
+
overlayY: 'top',
|
|
247
|
+
panelClass: ['mf-side-bottom', 'mf-origin-top-start'],
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
originX: 'start',
|
|
251
|
+
originY: 'top',
|
|
252
|
+
overlayX: 'start',
|
|
253
|
+
overlayY: 'bottom',
|
|
254
|
+
panelClass: ['mf-side-top', 'mf-origin-bottom-start'],
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
originX: 'start',
|
|
258
|
+
originY: 'top',
|
|
259
|
+
overlayX: 'end',
|
|
260
|
+
overlayY: 'top',
|
|
261
|
+
panelClass: ['mf-side-bottom', 'mf-origin-top-end'],
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
originX: 'start',
|
|
265
|
+
originY: 'top',
|
|
266
|
+
overlayX: 'end',
|
|
267
|
+
overlayY: 'bottom',
|
|
268
|
+
panelClass: ['mf-side-top', 'mf-origin-bottom-end'],
|
|
269
|
+
},
|
|
270
|
+
];
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/** `prefers-reduced-motion: reduce` — SSR/jsdom'da (matchMedia yok) `false`. */
|
|
274
|
+
function prefersReducedMotion() {
|
|
275
|
+
return (typeof matchMedia !== 'undefined' && matchMedia('(prefers-reduced-motion: reduce)').matches);
|
|
276
|
+
}
|
|
277
|
+
/** CSS süre string'ini (`120ms`, `0.2s`) milisaniyeye çevirir; çözülemezse `null`. */
|
|
278
|
+
function parseCssDuration(raw) {
|
|
279
|
+
const value = raw.trim();
|
|
280
|
+
const match = /^(-?\d*\.?\d+)(ms|s)$/.exec(value);
|
|
281
|
+
if (!match)
|
|
282
|
+
return null;
|
|
283
|
+
const n = Number(match[1]);
|
|
284
|
+
return match[2] === 's' ? n * 1000 : n;
|
|
285
|
+
}
|
|
286
|
+
const DEFAULT_EXIT_MS = 120;
|
|
287
|
+
/**
|
|
288
|
+
* Overlay/dialog/toast çıkış animasyonunun süresi — `--mf-duration-exit`
|
|
289
|
+
* (styles/tokens/motion.css) TEK kaynak. Eskiden `dialog.service.ts`,
|
|
290
|
+
* `popover.ts`, `toast.service.ts` her biri `EXIT_MS = 120` sabitini CSS'le
|
|
291
|
+
* ELLE eşitliyordu; token değişince JS kısa kalıp panel animasyonun ortasında
|
|
292
|
+
* kopuyordu. Reduced-motion'da `0` (panel anında kaldırılır).
|
|
293
|
+
*/
|
|
294
|
+
function exitDurationMs() {
|
|
295
|
+
if (prefersReducedMotion())
|
|
296
|
+
return 0;
|
|
297
|
+
if (typeof document === 'undefined' || typeof getComputedStyle === 'undefined') {
|
|
298
|
+
return DEFAULT_EXIT_MS;
|
|
299
|
+
}
|
|
300
|
+
const raw = getComputedStyle(document.documentElement).getPropertyValue('--mf-duration-exit');
|
|
301
|
+
return parseCssDuration(raw) ?? DEFAULT_EXIT_MS;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
/**
|
|
305
|
+
* `<span mfSlidingIndicator [track]="selected()" class="-bottom-px h-0.5 bg-accent-fill"></span>`
|
|
306
|
+
*
|
|
307
|
+
* Kitin ortak "kayan gösterge" motoru — Tabs'ın çizgisi/hapı, SegmentedControl'ün
|
|
308
|
+
* parçası, TabNav'ın çizgisi ve hover-izleme vurgusu AYNI hareketi paylaşsın diye.
|
|
309
|
+
* Kapsayıcı (varsayılan `parentElement`, `relative` olmalı) içinde `target`'ı
|
|
310
|
+
* bulur, onun `offsetLeft/offsetWidth`'ine (x) ya da `offsetTop/offsetHeight`'ına
|
|
311
|
+
* (y) göre `transform` + boyut yazar.
|
|
312
|
+
*
|
|
313
|
+
* - **Hareket:** hedef bir öğeden BAŞKA bir öğeye geçince yay eğrisiyle kayar
|
|
314
|
+
* (`ease-spring`, `duration-slow`). İlk görünüm, hedefin yeniden belirmesi ve
|
|
315
|
+
* yeniden boyutlanma (ResizeObserver, font yüklenmesi) ANINDA — göstergenin
|
|
316
|
+
* 0'dan "uçarak" gelmesi olmaz. Opaklık her zaman yumuşak geçer.
|
|
317
|
+
* - **Çapraz eksen** tüketicinin sınıfıdır (`-bottom-px h-0.5`, `inset-y-0`…);
|
|
318
|
+
* motor yalnız ana ekseni yazar.
|
|
319
|
+
* - **RTL:** `left-0` + `offsetLeft` + `translateX` üçü de fiziksel — birlikte
|
|
320
|
+
* RTL'de doğru (bkz. scripts/rtl-rules.mjs allowlist).
|
|
321
|
+
* - `target` `null` ise gösterge son konumunda solar (hover bitişi).
|
|
322
|
+
* - Azaltılmış harekette `motion.css`'in global anahtarı geçişleri sıfırlar.
|
|
323
|
+
*/
|
|
324
|
+
class SlidingIndicator {
|
|
325
|
+
axis = input('x', /* @ts-ignore */
|
|
326
|
+
...(ngDevMode ? [{ debugName: "axis" }] : /* istanbul ignore next */ []));
|
|
327
|
+
/** Kapsayıcı içinde çözülen CSS seçici, somut bir öğe ya da `null` (gizli). */
|
|
328
|
+
target = input('[aria-selected="true"]', /* @ts-ignore */
|
|
329
|
+
...(ngDevMode ? [{ debugName: "target" }] : /* istanbul ignore next */ []));
|
|
330
|
+
/** Herhangi bir değer — değişince (ör. seçim sinyali) hedef yeniden ölçülür. */
|
|
331
|
+
track = input(/* @ts-ignore */
|
|
332
|
+
...(ngDevMode ? [undefined, { debugName: "track" }] : /* istanbul ignore next */ []));
|
|
333
|
+
/** Ölçüm kapsayıcısı; varsayılan `parentElement` (offsetParent olmalı). */
|
|
334
|
+
container = input(/* @ts-ignore */
|
|
335
|
+
...(ngDevMode ? [undefined, { debugName: "container" }] : /* istanbul ignore next */ []));
|
|
336
|
+
el = inject(ElementRef).nativeElement;
|
|
337
|
+
current = null;
|
|
338
|
+
constructor() {
|
|
339
|
+
afterRenderEffect(() => {
|
|
340
|
+
this.target();
|
|
341
|
+
this.track();
|
|
342
|
+
this.axis();
|
|
343
|
+
this.update(true);
|
|
344
|
+
});
|
|
345
|
+
const destroyRef = inject(DestroyRef);
|
|
346
|
+
afterNextRender(() => {
|
|
347
|
+
const box = this.box();
|
|
348
|
+
if (!box || typeof ResizeObserver === 'undefined')
|
|
349
|
+
return;
|
|
350
|
+
const observer = new ResizeObserver(() => this.update(false));
|
|
351
|
+
observer.observe(box);
|
|
352
|
+
destroyRef.onDestroy(() => observer.disconnect());
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
/** Dışarıdan yeniden ölçüm (ör. içerik değişti ama seçim değişmedi). */
|
|
356
|
+
refresh(animate = false) {
|
|
357
|
+
this.update(animate);
|
|
358
|
+
}
|
|
359
|
+
box() {
|
|
360
|
+
return this.container() ?? this.el.parentElement;
|
|
361
|
+
}
|
|
362
|
+
resolve() {
|
|
363
|
+
const target = this.target();
|
|
364
|
+
if (!target)
|
|
365
|
+
return null;
|
|
366
|
+
if (typeof target !== 'string')
|
|
367
|
+
return target;
|
|
368
|
+
return this.box()?.querySelector(target) ?? null;
|
|
369
|
+
}
|
|
370
|
+
update(allowAnimate) {
|
|
371
|
+
const target = this.resolve();
|
|
372
|
+
const style = this.el.style;
|
|
373
|
+
if (!target) {
|
|
374
|
+
style.opacity = '0';
|
|
375
|
+
this.current = null;
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
const animate = allowAnimate && this.current !== null && this.current !== target;
|
|
379
|
+
// Anında yol: geometri geçişsiz yazılır, opaklık yine yumuşak kalır.
|
|
380
|
+
if (!animate)
|
|
381
|
+
style.transitionProperty = 'opacity';
|
|
382
|
+
if (this.axis() === 'y') {
|
|
383
|
+
style.transform = `translateY(${target.offsetTop}px)`;
|
|
384
|
+
style.height = `${target.offsetHeight}px`;
|
|
385
|
+
style.width = '';
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
style.transform = `translateX(${target.offsetLeft}px)`;
|
|
389
|
+
style.width = `${target.offsetWidth}px`;
|
|
390
|
+
style.height = '';
|
|
391
|
+
}
|
|
392
|
+
style.opacity = '1';
|
|
393
|
+
if (!animate) {
|
|
394
|
+
// Yeniden akışı zorla ki geçiş özelliği geri gelince konum değişimi animasyonlanmasın.
|
|
395
|
+
void this.el.getBoundingClientRect();
|
|
396
|
+
style.transitionProperty = '';
|
|
397
|
+
}
|
|
398
|
+
this.current = target;
|
|
251
399
|
}
|
|
400
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SlidingIndicator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
401
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: SlidingIndicator, isStandalone: true, selector: "[mfSlidingIndicator]", inputs: { axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, track: { classPropertyName: "track", publicName: "track", isSignal: true, isRequired: false, transformFunction: null }, container: { classPropertyName: "container", publicName: "container", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "class.left-0": "axis() === 'x'", "class.top-0": "axis() === 'y'" }, classAttribute: "pointer-events-none absolute opacity-0 transition-[transform,width,height,opacity] duration-slow ease-spring" }, exportAs: ["mfSlidingIndicator"], ngImport: i0 });
|
|
252
402
|
}
|
|
403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SlidingIndicator, decorators: [{
|
|
404
|
+
type: Directive,
|
|
405
|
+
args: [{
|
|
406
|
+
selector: '[mfSlidingIndicator]',
|
|
407
|
+
exportAs: 'mfSlidingIndicator',
|
|
408
|
+
host: {
|
|
409
|
+
class: 'pointer-events-none absolute opacity-0 transition-[transform,width,height,opacity] duration-slow ease-spring',
|
|
410
|
+
'[class.left-0]': "axis() === 'x'",
|
|
411
|
+
'[class.top-0]': "axis() === 'y'",
|
|
412
|
+
'aria-hidden': 'true',
|
|
413
|
+
},
|
|
414
|
+
}]
|
|
415
|
+
}], ctorParameters: () => [], propDecorators: { axis: [{ type: i0.Input, args: [{ isSignal: true, alias: "axis", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], track: [{ type: i0.Input, args: [{ isSignal: true, alias: "track", required: false }] }], container: [{ type: i0.Input, args: [{ isSignal: true, alias: "container", required: false }] }] } });
|
|
253
416
|
|
|
254
417
|
function isPlainObject(value) {
|
|
255
418
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
@@ -319,6 +482,8 @@ const mfLabelsEn = {
|
|
|
319
482
|
presetLast7: 'Last 7 days',
|
|
320
483
|
presetLast30: 'Last 30 days',
|
|
321
484
|
presetThisMonth: 'This month',
|
|
485
|
+
date: 'Date',
|
|
486
|
+
time: 'Time',
|
|
322
487
|
},
|
|
323
488
|
timePicker: {
|
|
324
489
|
placeholder: 'hh:mm',
|
|
@@ -428,6 +593,8 @@ const mfLabelsEn = {
|
|
|
428
593
|
combobox: {
|
|
429
594
|
placeholder: 'Search...',
|
|
430
595
|
noResults: 'No results',
|
|
596
|
+
create: 'Create “{query}”',
|
|
597
|
+
remove: 'Remove {label}',
|
|
431
598
|
},
|
|
432
599
|
select: {
|
|
433
600
|
placeholder: 'Select',
|
|
@@ -445,6 +612,9 @@ const mfLabelsEn = {
|
|
|
445
612
|
},
|
|
446
613
|
stepper: {
|
|
447
614
|
ariaLabel: 'Steps',
|
|
615
|
+
optional: 'Optional',
|
|
616
|
+
completed: 'Completed',
|
|
617
|
+
error: 'Needs attention',
|
|
448
618
|
},
|
|
449
619
|
progress: {
|
|
450
620
|
ariaLabel: 'Progress',
|
|
@@ -520,6 +690,130 @@ const mfLabelsEn = {
|
|
|
520
690
|
searchPlaceholder: 'Search…',
|
|
521
691
|
noResults: 'No results',
|
|
522
692
|
},
|
|
693
|
+
statTile: {
|
|
694
|
+
increase: 'Increase',
|
|
695
|
+
decrease: 'Decrease',
|
|
696
|
+
noChange: 'No change',
|
|
697
|
+
},
|
|
698
|
+
slider: {
|
|
699
|
+
minThumb: 'Minimum',
|
|
700
|
+
maxThumb: 'Maximum',
|
|
701
|
+
},
|
|
702
|
+
splitButton: {
|
|
703
|
+
moreActions: 'More actions',
|
|
704
|
+
},
|
|
705
|
+
fileUpload: {
|
|
706
|
+
uploading: 'Uploading…',
|
|
707
|
+
done: 'Uploaded',
|
|
708
|
+
failed: 'Upload failed',
|
|
709
|
+
queued: 'Waiting…',
|
|
710
|
+
retry: 'Retry',
|
|
711
|
+
cancel: 'Cancel',
|
|
712
|
+
remove: 'Remove',
|
|
713
|
+
files: '{count} files',
|
|
714
|
+
},
|
|
715
|
+
sortable: {
|
|
716
|
+
instructions: 'Press Space to pick up, arrow keys to move, Space to drop, Escape to cancel.',
|
|
717
|
+
grabbed: '{item} grabbed. Position {position} of {total}.',
|
|
718
|
+
moved: '{item} moved to position {position} of {total}.',
|
|
719
|
+
movedToColumn: '{item} moved to {column}, position {position} of {total}.',
|
|
720
|
+
dropped: '{item} dropped at position {position} of {total}.',
|
|
721
|
+
cancelled: 'Move cancelled. {item} returned to position {position}.',
|
|
722
|
+
dragHandle: 'Reorder {item}',
|
|
723
|
+
card: 'card',
|
|
724
|
+
},
|
|
725
|
+
countdown: {
|
|
726
|
+
days: 'days',
|
|
727
|
+
hours: 'hours',
|
|
728
|
+
minutes: 'minutes',
|
|
729
|
+
seconds: 'seconds',
|
|
730
|
+
remaining: '{time} remaining',
|
|
731
|
+
finished: 'Time is up',
|
|
732
|
+
},
|
|
733
|
+
carousel: {
|
|
734
|
+
previous: 'Previous slide',
|
|
735
|
+
next: 'Next slide',
|
|
736
|
+
slide: '{index} of {total}',
|
|
737
|
+
pause: 'Pause autoplay',
|
|
738
|
+
play: 'Start autoplay',
|
|
739
|
+
goTo: 'Go to slide {index}',
|
|
740
|
+
carousel: 'Carousel',
|
|
741
|
+
},
|
|
742
|
+
inlineEdit: {
|
|
743
|
+
edit: 'Edit',
|
|
744
|
+
save: 'Save',
|
|
745
|
+
cancel: 'Cancel',
|
|
746
|
+
empty: 'Click to add',
|
|
747
|
+
},
|
|
748
|
+
transferList: {
|
|
749
|
+
available: 'Available',
|
|
750
|
+
selected: 'Selected',
|
|
751
|
+
moveRight: 'Move selected right',
|
|
752
|
+
moveLeft: 'Move selected left',
|
|
753
|
+
moveAllRight: 'Move all right',
|
|
754
|
+
moveAllLeft: 'Move all left',
|
|
755
|
+
search: 'Search',
|
|
756
|
+
count: '{selected} of {total} selected',
|
|
757
|
+
empty: 'No items',
|
|
758
|
+
},
|
|
759
|
+
lightbox: {
|
|
760
|
+
close: 'Close',
|
|
761
|
+
previous: 'Previous image',
|
|
762
|
+
next: 'Next image',
|
|
763
|
+
zoomIn: 'Zoom in',
|
|
764
|
+
zoomOut: 'Zoom out',
|
|
765
|
+
counter: '{index} of {total}',
|
|
766
|
+
gallery: 'Image viewer',
|
|
767
|
+
},
|
|
768
|
+
notificationCenter: {
|
|
769
|
+
title: 'Notifications',
|
|
770
|
+
markAllRead: 'Mark all as read',
|
|
771
|
+
empty: 'You are all caught up',
|
|
772
|
+
emptyDescription: 'New notifications will show up here.',
|
|
773
|
+
unread: 'Unread',
|
|
774
|
+
trigger: 'Notifications, {count} unread',
|
|
775
|
+
viewAll: 'View all',
|
|
776
|
+
},
|
|
777
|
+
agenda: {
|
|
778
|
+
allDay: 'All day',
|
|
779
|
+
empty: 'Nothing scheduled',
|
|
780
|
+
today: 'Today',
|
|
781
|
+
tomorrow: 'Tomorrow',
|
|
782
|
+
},
|
|
783
|
+
mention: {
|
|
784
|
+
suggestions: 'Suggestions',
|
|
785
|
+
noResults: 'No matches',
|
|
786
|
+
},
|
|
787
|
+
panelGroup: {
|
|
788
|
+
resize: 'Resize panel {index}',
|
|
789
|
+
},
|
|
790
|
+
authCard: {
|
|
791
|
+
title: 'Welcome back',
|
|
792
|
+
description: 'Sign in to continue to your workspace.',
|
|
793
|
+
email: 'Email',
|
|
794
|
+
emailPlaceholder: 'you@company.com',
|
|
795
|
+
password: 'Password',
|
|
796
|
+
forgotPassword: 'Forgot password?',
|
|
797
|
+
remember: 'Keep me signed in',
|
|
798
|
+
submit: 'Sign in',
|
|
799
|
+
divider: 'or continue with email',
|
|
800
|
+
noAccount: 'New here?',
|
|
801
|
+
signUp: 'Create an account',
|
|
802
|
+
emailRequired: 'Email is required',
|
|
803
|
+
emailInvalid: 'Enter a valid email',
|
|
804
|
+
passwordRequired: 'Password is required',
|
|
805
|
+
errorTitle: 'Sign-in failed',
|
|
806
|
+
},
|
|
807
|
+
inviteMembers: {
|
|
808
|
+
title: 'Invite teammates',
|
|
809
|
+
description: 'They will receive an email with a link to join.',
|
|
810
|
+
emails: 'Email addresses',
|
|
811
|
+
emailsPlaceholder: 'name@company.com, press Enter',
|
|
812
|
+
role: 'Role',
|
|
813
|
+
submit: 'Send invites',
|
|
814
|
+
invalidEmails: 'Not valid: {emails}',
|
|
815
|
+
emailsRequired: 'Add at least one email address',
|
|
816
|
+
},
|
|
523
817
|
};
|
|
524
818
|
|
|
525
819
|
/**
|
|
@@ -583,6 +877,22 @@ const MF_TOUR_LABELS = labelToken('tour', 'tour');
|
|
|
583
877
|
const MF_RATING_LABELS = labelToken('rating', 'rating');
|
|
584
878
|
const MF_THEME_SWITCHER_LABELS = labelToken('themeSwitcher', 'theme-switcher');
|
|
585
879
|
const MF_TREE_SELECT_LABELS = labelToken('treeSelect', 'tree-select');
|
|
880
|
+
const MF_STAT_TILE_LABELS = labelToken('statTile', 'stat-tile');
|
|
881
|
+
const MF_SLIDER_LABELS = labelToken('slider', 'slider');
|
|
882
|
+
const MF_SPLIT_BUTTON_LABELS = labelToken('splitButton', 'split-button');
|
|
883
|
+
const MF_FILE_UPLOAD_LABELS = labelToken('fileUpload', 'file-upload');
|
|
884
|
+
const MF_SORTABLE_LABELS = labelToken('sortable', 'sortable');
|
|
885
|
+
const MF_COUNTDOWN_LABELS = labelToken('countdown', 'countdown');
|
|
886
|
+
const MF_CAROUSEL_LABELS = labelToken('carousel', 'carousel');
|
|
887
|
+
const MF_INLINE_EDIT_LABELS = labelToken('inlineEdit', 'inline-edit');
|
|
888
|
+
const MF_TRANSFER_LIST_LABELS = labelToken('transferList', 'transfer-list');
|
|
889
|
+
const MF_LIGHTBOX_LABELS = labelToken('lightbox', 'lightbox');
|
|
890
|
+
const MF_NOTIFICATION_CENTER_LABELS = labelToken('notificationCenter', 'notification-center');
|
|
891
|
+
const MF_AGENDA_LABELS = labelToken('agenda', 'agenda');
|
|
892
|
+
const MF_MENTION_LABELS = labelToken('mention', 'mention');
|
|
893
|
+
const MF_PANEL_GROUP_LABELS = labelToken('panelGroup', 'panel-group');
|
|
894
|
+
const MF_AUTH_CARD_LABELS = labelToken('authCard', 'auth-card');
|
|
895
|
+
const MF_INVITE_MEMBERS_LABELS = labelToken('inviteMembers', 'invite-members');
|
|
586
896
|
|
|
587
897
|
/**
|
|
588
898
|
* `app.config.ts`'in `providers` dizisine eklenir — `MF_LABELS`/`MF_DATE_LOCALE`'ı
|
|
@@ -611,7 +921,10 @@ function provideMesgflowUi(options = {}) {
|
|
|
611
921
|
}
|
|
612
922
|
if (options.dateLocale) {
|
|
613
923
|
const dateLocale = options.dateLocale;
|
|
614
|
-
providers.push({
|
|
924
|
+
providers.push({
|
|
925
|
+
provide: MF_DATE_LOCALE,
|
|
926
|
+
useFactory: () => (isSignal(dateLocale) ? dateLocale : signal(dateLocale)),
|
|
927
|
+
});
|
|
615
928
|
}
|
|
616
929
|
return makeEnvironmentProviders(providers);
|
|
617
930
|
}
|
|
@@ -620,5 +933,5 @@ function provideMesgflowUi(options = {}) {
|
|
|
620
933
|
* Generated bundle index. Do not edit.
|
|
621
934
|
*/
|
|
622
935
|
|
|
623
|
-
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 };
|
|
936
|
+
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 };
|
|
624
937
|
//# sourceMappingURL=mesgflow-ui-kit-core.mjs.map
|