@mesgflow/ui-kit 0.6.0 → 0.8.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 +9 -8
- 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-alert.mjs +3 -3
- 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-avatar-group.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-avatar.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-badge.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-banner.mjs +3 -3
- 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 +4 -4
- package/fesm2022/mesgflow-ui-kit-box-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-brand.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-button-group.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-button.mjs +190 -244
- package/fesm2022/mesgflow-ui-kit-button.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-card.mjs +48 -27
- 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-chart.mjs +12 -12
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs +18 -23
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-chip.mjs +5 -5
- package/fesm2022/mesgflow-ui-kit-chip.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-code-block.mjs +11 -7
- package/fesm2022/mesgflow-ui-kit-code-block.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-collapsible.mjs +9 -9
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs +9 -7
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-combobox.mjs +147 -67
- package/fesm2022/mesgflow-ui-kit-combobox.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-command.mjs +15 -16
- package/fesm2022/mesgflow-ui-kit-command.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs +7 -9
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-copy-button.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-core.mjs +446 -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 +140 -19
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-description-list.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-dialog.mjs +310 -64
- package/fesm2022/mesgflow-ui-kit-dialog.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-divider.mjs +3 -3
- 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 +6 -6
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-empty-state.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-field.mjs +55 -14
- 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-hover-card.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs +135 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-icon.mjs +8 -3
- 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 +162 -19
- package/fesm2022/mesgflow-ui-kit-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-kbd.mjs +3 -3
- 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 +5 -5
- 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 +178 -14
- 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 +9 -6
- package/fesm2022/mesgflow-ui-kit-number-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-otp-input.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-page-header.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-pagination.mjs +7 -6
- package/fesm2022/mesgflow-ui-kit-pagination.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-password-input.mjs +38 -68
- package/fesm2022/mesgflow-ui-kit-password-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-popover.mjs +12 -52
- package/fesm2022/mesgflow-ui-kit-popover.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-progress.mjs +164 -23
- package/fesm2022/mesgflow-ui-kit-progress.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-qr-code.mjs +766 -0
- package/fesm2022/mesgflow-ui-kit-qr-code.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-radio.mjs +10 -12
- package/fesm2022/mesgflow-ui-kit-radio.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-rating.mjs +4 -4
- package/fesm2022/mesgflow-ui-kit-rating.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-scroll-area.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-search-input.mjs +11 -7
- package/fesm2022/mesgflow-ui-kit-search-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs +15 -11
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-select.mjs +6 -5
- package/fesm2022/mesgflow-ui-kit-select.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs +24 -21
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs +6 -5
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-slider.mjs +253 -6
- 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 +44 -15
- 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 +213 -6
- package/fesm2022/mesgflow-ui-kit-splitter.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs +13 -6
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-stepper.mjs +171 -64
- package/fesm2022/mesgflow-ui-kit-stepper.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-switch.mjs +4 -4
- package/fesm2022/mesgflow-ui-kit-switch.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-table.mjs +34 -28
- package/fesm2022/mesgflow-ui-kit-table.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-tabs.mjs +421 -180
- package/fesm2022/mesgflow-ui-kit-tabs.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs +9 -4
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-theming.mjs +7 -7
- package/fesm2022/mesgflow-ui-kit-theming.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs +6 -6
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-timeline.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-toast.mjs +118 -35
- package/fesm2022/mesgflow-ui-kit-toast.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-toggle.mjs +12 -11
- package/fesm2022/mesgflow-ui-kit-toggle.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs +13 -11
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs +76 -53
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-tour.mjs +17 -29
- 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-select.mjs +3 -3
- package/fesm2022/mesgflow-ui-kit-tree.mjs +4 -4
- 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 +93 -12836
- package/fesm2022/mesgflow-ui-kit.mjs.map +1 -1
- package/package.json +91 -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-command.d.ts +2 -2
- package/types/mesgflow-ui-kit-core.d.ts +279 -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 +122 -14
- 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 +35 -5
- 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-qr-code.d.ts +160 -0
- 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 +88 -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,136 +186,234 @@ 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
|
-
originY: 'bottom',
|
|
205
|
-
overlayX: 'center',
|
|
206
|
-
overlayY: 'top',
|
|
207
|
-
offsetY: offset,
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
originX: 'center',
|
|
211
|
-
originY: 'top',
|
|
212
|
-
overlayX: 'center',
|
|
213
|
-
overlayY: 'bottom',
|
|
214
|
-
offsetY: -offset,
|
|
215
|
-
},
|
|
216
|
-
];
|
|
217
|
-
case 'left':
|
|
218
|
-
return [
|
|
219
|
-
{
|
|
220
|
-
originX: 'start',
|
|
221
|
-
originY: 'center',
|
|
222
|
-
overlayX: 'end',
|
|
223
|
-
overlayY: 'center',
|
|
224
|
-
offsetX: -offset,
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
originX: 'end',
|
|
228
|
-
originY: 'center',
|
|
229
|
-
overlayX: 'start',
|
|
230
|
-
overlayY: 'center',
|
|
231
|
-
offsetX: offset,
|
|
232
|
-
},
|
|
233
|
-
];
|
|
234
|
-
case 'right':
|
|
235
|
-
return [
|
|
236
|
-
{
|
|
237
|
-
originX: 'end',
|
|
238
|
-
originY: 'center',
|
|
239
|
-
overlayX: 'start',
|
|
240
|
-
overlayY: 'center',
|
|
241
|
-
offsetX: offset,
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
originX: 'start',
|
|
245
|
-
originY: 'center',
|
|
246
|
-
overlayX: 'end',
|
|
247
|
-
overlayY: 'center',
|
|
248
|
-
offsetX: -offset,
|
|
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;
|
|
251
299
|
}
|
|
300
|
+
const raw = getComputedStyle(document.documentElement).getPropertyValue('--mf-duration-exit');
|
|
301
|
+
return parseCssDuration(raw) ?? DEFAULT_EXIT_MS;
|
|
252
302
|
}
|
|
253
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;
|
|
399
|
+
}
|
|
400
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlidingIndicator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
401
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.7", 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 });
|
|
402
|
+
}
|
|
403
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", 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 }] }] } });
|
|
416
|
+
|
|
254
417
|
function isPlainObject(value) {
|
|
255
418
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
256
419
|
}
|
|
@@ -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',
|
|
@@ -453,6 +623,10 @@ const mfLabelsEn = {
|
|
|
453
623
|
show: 'Show',
|
|
454
624
|
hide: 'Hide',
|
|
455
625
|
},
|
|
626
|
+
qrCode: {
|
|
627
|
+
ariaLabel: 'QR code',
|
|
628
|
+
error: 'QR code could not be generated: the content is too long.',
|
|
629
|
+
},
|
|
456
630
|
chip: {
|
|
457
631
|
remove: 'Remove',
|
|
458
632
|
},
|
|
@@ -520,6 +694,130 @@ const mfLabelsEn = {
|
|
|
520
694
|
searchPlaceholder: 'Search…',
|
|
521
695
|
noResults: 'No results',
|
|
522
696
|
},
|
|
697
|
+
statTile: {
|
|
698
|
+
increase: 'Increase',
|
|
699
|
+
decrease: 'Decrease',
|
|
700
|
+
noChange: 'No change',
|
|
701
|
+
},
|
|
702
|
+
slider: {
|
|
703
|
+
minThumb: 'Minimum',
|
|
704
|
+
maxThumb: 'Maximum',
|
|
705
|
+
},
|
|
706
|
+
splitButton: {
|
|
707
|
+
moreActions: 'More actions',
|
|
708
|
+
},
|
|
709
|
+
fileUpload: {
|
|
710
|
+
uploading: 'Uploading…',
|
|
711
|
+
done: 'Uploaded',
|
|
712
|
+
failed: 'Upload failed',
|
|
713
|
+
queued: 'Waiting…',
|
|
714
|
+
retry: 'Retry',
|
|
715
|
+
cancel: 'Cancel',
|
|
716
|
+
remove: 'Remove',
|
|
717
|
+
files: '{count} files',
|
|
718
|
+
},
|
|
719
|
+
sortable: {
|
|
720
|
+
instructions: 'Press Space to pick up, arrow keys to move, Space to drop, Escape to cancel.',
|
|
721
|
+
grabbed: '{item} grabbed. Position {position} of {total}.',
|
|
722
|
+
moved: '{item} moved to position {position} of {total}.',
|
|
723
|
+
movedToColumn: '{item} moved to {column}, position {position} of {total}.',
|
|
724
|
+
dropped: '{item} dropped at position {position} of {total}.',
|
|
725
|
+
cancelled: 'Move cancelled. {item} returned to position {position}.',
|
|
726
|
+
dragHandle: 'Reorder {item}',
|
|
727
|
+
card: 'card',
|
|
728
|
+
},
|
|
729
|
+
countdown: {
|
|
730
|
+
days: 'days',
|
|
731
|
+
hours: 'hours',
|
|
732
|
+
minutes: 'minutes',
|
|
733
|
+
seconds: 'seconds',
|
|
734
|
+
remaining: '{time} remaining',
|
|
735
|
+
finished: 'Time is up',
|
|
736
|
+
},
|
|
737
|
+
carousel: {
|
|
738
|
+
previous: 'Previous slide',
|
|
739
|
+
next: 'Next slide',
|
|
740
|
+
slide: '{index} of {total}',
|
|
741
|
+
pause: 'Pause autoplay',
|
|
742
|
+
play: 'Start autoplay',
|
|
743
|
+
goTo: 'Go to slide {index}',
|
|
744
|
+
carousel: 'Carousel',
|
|
745
|
+
},
|
|
746
|
+
inlineEdit: {
|
|
747
|
+
edit: 'Edit',
|
|
748
|
+
save: 'Save',
|
|
749
|
+
cancel: 'Cancel',
|
|
750
|
+
empty: 'Click to add',
|
|
751
|
+
},
|
|
752
|
+
transferList: {
|
|
753
|
+
available: 'Available',
|
|
754
|
+
selected: 'Selected',
|
|
755
|
+
moveRight: 'Move selected right',
|
|
756
|
+
moveLeft: 'Move selected left',
|
|
757
|
+
moveAllRight: 'Move all right',
|
|
758
|
+
moveAllLeft: 'Move all left',
|
|
759
|
+
search: 'Search',
|
|
760
|
+
count: '{selected} of {total} selected',
|
|
761
|
+
empty: 'No items',
|
|
762
|
+
},
|
|
763
|
+
lightbox: {
|
|
764
|
+
close: 'Close',
|
|
765
|
+
previous: 'Previous image',
|
|
766
|
+
next: 'Next image',
|
|
767
|
+
zoomIn: 'Zoom in',
|
|
768
|
+
zoomOut: 'Zoom out',
|
|
769
|
+
counter: '{index} of {total}',
|
|
770
|
+
gallery: 'Image viewer',
|
|
771
|
+
},
|
|
772
|
+
notificationCenter: {
|
|
773
|
+
title: 'Notifications',
|
|
774
|
+
markAllRead: 'Mark all as read',
|
|
775
|
+
empty: 'You are all caught up',
|
|
776
|
+
emptyDescription: 'New notifications will show up here.',
|
|
777
|
+
unread: 'Unread',
|
|
778
|
+
trigger: 'Notifications, {count} unread',
|
|
779
|
+
viewAll: 'View all',
|
|
780
|
+
},
|
|
781
|
+
agenda: {
|
|
782
|
+
allDay: 'All day',
|
|
783
|
+
empty: 'Nothing scheduled',
|
|
784
|
+
today: 'Today',
|
|
785
|
+
tomorrow: 'Tomorrow',
|
|
786
|
+
},
|
|
787
|
+
mention: {
|
|
788
|
+
suggestions: 'Suggestions',
|
|
789
|
+
noResults: 'No matches',
|
|
790
|
+
},
|
|
791
|
+
panelGroup: {
|
|
792
|
+
resize: 'Resize panel {index}',
|
|
793
|
+
},
|
|
794
|
+
authCard: {
|
|
795
|
+
title: 'Welcome back',
|
|
796
|
+
description: 'Sign in to continue to your workspace.',
|
|
797
|
+
email: 'Email',
|
|
798
|
+
emailPlaceholder: 'you@company.com',
|
|
799
|
+
password: 'Password',
|
|
800
|
+
forgotPassword: 'Forgot password?',
|
|
801
|
+
remember: 'Keep me signed in',
|
|
802
|
+
submit: 'Sign in',
|
|
803
|
+
divider: 'or continue with email',
|
|
804
|
+
noAccount: 'New here?',
|
|
805
|
+
signUp: 'Create an account',
|
|
806
|
+
emailRequired: 'Email is required',
|
|
807
|
+
emailInvalid: 'Enter a valid email',
|
|
808
|
+
passwordRequired: 'Password is required',
|
|
809
|
+
errorTitle: 'Sign-in failed',
|
|
810
|
+
},
|
|
811
|
+
inviteMembers: {
|
|
812
|
+
title: 'Invite teammates',
|
|
813
|
+
description: 'They will receive an email with a link to join.',
|
|
814
|
+
emails: 'Email addresses',
|
|
815
|
+
emailsPlaceholder: 'name@company.com, press Enter',
|
|
816
|
+
role: 'Role',
|
|
817
|
+
submit: 'Send invites',
|
|
818
|
+
invalidEmails: 'Not valid: {emails}',
|
|
819
|
+
emailsRequired: 'Add at least one email address',
|
|
820
|
+
},
|
|
523
821
|
};
|
|
524
822
|
|
|
525
823
|
/**
|
|
@@ -570,6 +868,7 @@ const MF_OTP_INPUT_LABELS = labelToken('otpInput', 'otp-input');
|
|
|
570
868
|
const MF_STEPPER_LABELS = labelToken('stepper', 'stepper');
|
|
571
869
|
const MF_PROGRESS_LABELS = labelToken('progress', 'progress');
|
|
572
870
|
const MF_PASSWORD_INPUT_LABELS = labelToken('passwordInput', 'password-input');
|
|
871
|
+
const MF_QR_CODE_LABELS = labelToken('qrCode', 'qr-code');
|
|
573
872
|
const MF_CHIP_LABELS = labelToken('chip', 'chip');
|
|
574
873
|
const MF_ALERT_LABELS = labelToken('alert', 'alert');
|
|
575
874
|
const MF_BREADCRUMB_LABELS = labelToken('breadcrumb', 'breadcrumb');
|
|
@@ -583,6 +882,22 @@ const MF_TOUR_LABELS = labelToken('tour', 'tour');
|
|
|
583
882
|
const MF_RATING_LABELS = labelToken('rating', 'rating');
|
|
584
883
|
const MF_THEME_SWITCHER_LABELS = labelToken('themeSwitcher', 'theme-switcher');
|
|
585
884
|
const MF_TREE_SELECT_LABELS = labelToken('treeSelect', 'tree-select');
|
|
885
|
+
const MF_STAT_TILE_LABELS = labelToken('statTile', 'stat-tile');
|
|
886
|
+
const MF_SLIDER_LABELS = labelToken('slider', 'slider');
|
|
887
|
+
const MF_SPLIT_BUTTON_LABELS = labelToken('splitButton', 'split-button');
|
|
888
|
+
const MF_FILE_UPLOAD_LABELS = labelToken('fileUpload', 'file-upload');
|
|
889
|
+
const MF_SORTABLE_LABELS = labelToken('sortable', 'sortable');
|
|
890
|
+
const MF_COUNTDOWN_LABELS = labelToken('countdown', 'countdown');
|
|
891
|
+
const MF_CAROUSEL_LABELS = labelToken('carousel', 'carousel');
|
|
892
|
+
const MF_INLINE_EDIT_LABELS = labelToken('inlineEdit', 'inline-edit');
|
|
893
|
+
const MF_TRANSFER_LIST_LABELS = labelToken('transferList', 'transfer-list');
|
|
894
|
+
const MF_LIGHTBOX_LABELS = labelToken('lightbox', 'lightbox');
|
|
895
|
+
const MF_NOTIFICATION_CENTER_LABELS = labelToken('notificationCenter', 'notification-center');
|
|
896
|
+
const MF_AGENDA_LABELS = labelToken('agenda', 'agenda');
|
|
897
|
+
const MF_MENTION_LABELS = labelToken('mention', 'mention');
|
|
898
|
+
const MF_PANEL_GROUP_LABELS = labelToken('panelGroup', 'panel-group');
|
|
899
|
+
const MF_AUTH_CARD_LABELS = labelToken('authCard', 'auth-card');
|
|
900
|
+
const MF_INVITE_MEMBERS_LABELS = labelToken('inviteMembers', 'invite-members');
|
|
586
901
|
|
|
587
902
|
/**
|
|
588
903
|
* `app.config.ts`'in `providers` dizisine eklenir — `MF_LABELS`/`MF_DATE_LOCALE`'ı
|
|
@@ -611,7 +926,10 @@ function provideMesgflowUi(options = {}) {
|
|
|
611
926
|
}
|
|
612
927
|
if (options.dateLocale) {
|
|
613
928
|
const dateLocale = options.dateLocale;
|
|
614
|
-
providers.push({
|
|
929
|
+
providers.push({
|
|
930
|
+
provide: MF_DATE_LOCALE,
|
|
931
|
+
useFactory: () => (isSignal(dateLocale) ? dateLocale : signal(dateLocale)),
|
|
932
|
+
});
|
|
615
933
|
}
|
|
616
934
|
return makeEnvironmentProviders(providers);
|
|
617
935
|
}
|
|
@@ -620,5 +938,5 @@ function provideMesgflowUi(options = {}) {
|
|
|
620
938
|
* Generated bundle index. Do not edit.
|
|
621
939
|
*/
|
|
622
940
|
|
|
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 };
|
|
941
|
+
export { MF_AGENDA_LABELS, MF_ALERT_LABELS, MF_AUTH_CARD_LABELS, MF_AVATAR_GROUP_LABELS, MF_BOX_INPUT_LABELS, MF_BREADCRUMB_LABELS, MF_CAROUSEL_LABELS, MF_CHARACTER_COUNT_LABELS, MF_CHART_LABELS, MF_CHIP_LABELS, MF_COLOR_PICKER_LABELS, MF_COMBOBOX_LABELS, MF_COMMAND_LABELS, MF_COMMON_LABELS, MF_COPY_LABELS, MF_COUNTDOWN_LABELS, MF_DATE_LOCALE, MF_DATE_PICKER_LABELS, MF_DIALOG_LABELS, MF_DROPZONE_LABELS, MF_FILE_UPLOAD_LABELS, MF_INLINE_EDIT_LABELS, MF_INVITE_MEMBERS_LABELS, MF_LABELS, MF_LIGHTBOX_LABELS, MF_MENTION_LABELS, MF_NOTIFICATION_CENTER_LABELS, MF_OTP_INPUT_LABELS, MF_PAGINATION_LABELS, MF_PANEL_GROUP_LABELS, MF_PASSWORD_INPUT_LABELS, MF_PROGRESS_LABELS, MF_QR_CODE_LABELS, MF_RATING_LABELS, MF_SEARCH_INPUT_LABELS, MF_SELECT_LABELS, MF_SIDEBAR_LABELS, MF_SLIDER_LABELS, MF_SORTABLE_LABELS, MF_SPLIT_BUTTON_LABELS, MF_STAT_TILE_LABELS, MF_STEPPER_LABELS, MF_TABLE_LABELS, MF_TABS_LABELS, MF_THEME_SWITCHER_LABELS, MF_TIME_PICKER_LABELS, MF_TOAST_LABELS, MF_TOUR_LABELS, MF_TRANSFER_LIST_LABELS, MF_TREE_SELECT_LABELS, SlidingIndicator, ValueAccessorBase, cn, containerSurface, controlSize, controlSurface, disabledRecipe, errorRecipe, exitDurationMs, focusRecipe, glassSurface, inlineStartRatio, isRtl, mergeLabels, mfLabelsEn, nextId, overlayPositions, overlaySurface, parseCssDuration, pointerPositions, prefersReducedMotion, pressRecipe, provideMesgflowUi, scrollFromInlineStart, transitionRecipe };
|
|
624
942
|
//# sourceMappingURL=mesgflow-ui-kit-core.mjs.map
|