@mesgflow/ui-kit 0.10.0 → 0.11.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.
@@ -32,6 +32,9 @@ class Drawer {
32
32
  /** `true` ise Escape/backdrop kapatmaz — yalnızca programatik `open.set(false)`. */
33
33
  disableClose = input(false, { ...(ngDevMode ? { debugName: "disableClose" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
34
34
  sheetOnMobile = input(true, { ...(ngDevMode ? { debugName: "sheetOnMobile" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
35
+ /** Kapat (X) düğmesinin erişilebilir adı — bkz. `Dialog.closeLabel`. `disableClose` iken X çizilmez. */
36
+ closeLabel = input(/* @ts-ignore */
37
+ ...(ngDevMode ? [undefined, { debugName: "closeLabel" }] : /* istanbul ignore next */ []));
35
38
  /** Görünür başlık yoksa ekran okuyucu için ad. */
36
39
  ariaLabel = input(/* @ts-ignore */
37
40
  ...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
@@ -74,14 +77,20 @@ class Drawer {
74
77
  });
75
78
  }
76
79
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: Drawer, deps: [], target: i0.ɵɵFactoryTarget.Component });
77
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.7", type: Drawer, isStandalone: true, selector: "mf-drawer", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disableClose: { classPropertyName: "disableClose", publicName: "disableClose", isSignal: true, isRequired: false, transformFunction: null }, sheetOnMobile: { classPropertyName: "sheetOnMobile", publicName: "sheetOnMobile", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", closed: "closed" }, host: { classAttribute: "contents" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }], exportAs: ["mfDrawer"], ngImport: i0, template: `
80
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.7", type: Drawer, isStandalone: true, selector: "mf-drawer", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disableClose: { classPropertyName: "disableClose", publicName: "disableClose", isSignal: true, isRequired: false, transformFunction: null }, sheetOnMobile: { classPropertyName: "sheetOnMobile", publicName: "sheetOnMobile", isSignal: true, isRequired: false, transformFunction: null }, closeLabel: { classPropertyName: "closeLabel", publicName: "closeLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { open: "openChange", closed: "closed" }, host: { classAttribute: "contents" }, viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true, isSignal: true }], exportAs: ["mfDrawer"], ngImport: i0, template: `
78
81
  <ng-template #panel>
79
- <mf-dialog [title]="title()" [subtitle]="subtitle()" [icon]="icon()" (close)="hide()">
82
+ <mf-dialog
83
+ [title]="title()"
84
+ [subtitle]="subtitle()"
85
+ [icon]="icon()"
86
+ [closeLabel]="closeLabel()"
87
+ (close)="hide()"
88
+ >
80
89
  <ng-content />
81
90
  <div dialog-footer class="contents"><ng-content select="[drawer-footer]" /></div>
82
91
  </mf-dialog>
83
92
  </ng-template>
84
- `, isInline: true, dependencies: [{ kind: "component", type: Dialog, selector: "mf-dialog", inputs: ["title", "subtitle", "icon", "size", "fillBody", "autoClose"], outputs: ["close"], exportAs: ["mfDialog"] }] });
93
+ `, isInline: true, dependencies: [{ kind: "component", type: Dialog, selector: "mf-dialog", inputs: ["title", "subtitle", "icon", "size", "fillBody", "autoClose", "closeLabel", "showClose"], outputs: ["close"], exportAs: ["mfDialog"] }] });
85
94
  }
86
95
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: Drawer, decorators: [{
87
96
  type: Component,
@@ -92,14 +101,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
92
101
  host: { class: 'contents' },
93
102
  template: `
94
103
  <ng-template #panel>
95
- <mf-dialog [title]="title()" [subtitle]="subtitle()" [icon]="icon()" (close)="hide()">
104
+ <mf-dialog
105
+ [title]="title()"
106
+ [subtitle]="subtitle()"
107
+ [icon]="icon()"
108
+ [closeLabel]="closeLabel()"
109
+ (close)="hide()"
110
+ >
96
111
  <ng-content />
97
112
  <div dialog-footer class="contents"><ng-content select="[drawer-footer]" /></div>
98
113
  </mf-dialog>
99
114
  </ng-template>
100
115
  `,
101
116
  }]
102
- }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disableClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableClose", required: false }] }], sheetOnMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "sheetOnMobile", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], panel: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }] } });
117
+ }], ctorParameters: () => [], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }, { type: i0.Output, args: ["openChange"] }], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], disableClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableClose", required: false }] }], sheetOnMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "sheetOnMobile", required: false }] }], closeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeLabel", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], panel: [{ type: i0.ViewChild, args: ['panel', { isSignal: true }] }] } });
103
118
 
104
119
  /**
105
120
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"mesgflow-ui-kit-drawer.mjs","sources":["../../../projects/ui-kit/drawer/drawer.ts","../../../projects/ui-kit/drawer/mesgflow-ui-kit-drawer.ts"],"sourcesContent":["import {\r\n Component,\r\n TemplateRef,\r\n booleanAttribute,\r\n effect,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport {\r\n Dialog,\r\n DialogService,\r\n type MfDialogRef,\r\n type DialogPlacement,\r\n type DialogSize,\r\n} from '@mesgflow/ui-kit/dialog';\r\n\r\nexport type DrawerPlacement = Exclude<DialogPlacement, 'center'>;\r\n\r\n/**\r\n * `<mf-drawer [(open)]=\"filtersOpen\" title=\"Filtreler\" placement=\"end\" size=\"sm\">…</mf-drawer>`\r\n *\r\n * Bildirimsel çekmece (sheet) — `DialogService.openDrawer()`'ın şablon\r\n * sürümü: içerik bir component yazmadan doğrudan şablonda durur, açık/kapalı\r\n * durumu `open` modeliyle iki yönlü bağlanır.\r\n *\r\n * - `placement`: `start` / `end` (mantıksal, RTL'de çevrilir), `left` / `right`,\r\n * `top` / `bottom`. Her kenar kendi kayma animasyonuyla açılır.\r\n * - Dialog altyapısının TÜM davranışı: odak tuzağı + geri dönüş, Escape,\r\n * backdrop tıklaması, çıkış animasyonu, kirli-form koruması, cam yüzey.\r\n * - `<div drawer-footer>` slotu sabit altbilgiye gider (Kaydet/İptal).\r\n * - `sheetOnMobile=\"false\"`: mobilde de kenardan açılır (gezinme çekmeceleri).\r\n */\r\n@Component({\r\n selector: 'mf-drawer',\r\n exportAs: 'mfDrawer',\r\n imports: [Dialog],\r\n host: { class: 'contents' },\r\n template: `\r\n <ng-template #panel>\r\n <mf-dialog [title]=\"title()\" [subtitle]=\"subtitle()\" [icon]=\"icon()\" (close)=\"hide()\">\r\n <ng-content />\r\n <div dialog-footer class=\"contents\"><ng-content select=\"[drawer-footer]\" /></div>\r\n </mf-dialog>\r\n </ng-template>\r\n `,\r\n})\r\nexport class Drawer {\r\n readonly open = model(false);\r\n readonly title = input('');\r\n readonly subtitle = input('');\r\n readonly icon = input('');\r\n readonly placement = input<DrawerPlacement>('end');\r\n readonly size = input<Exclude<DialogSize, 'full'>>('md');\r\n /** `true` ise Escape/backdrop kapatmaz — yalnızca programatik `open.set(false)`. */\r\n readonly disableClose = input(false, { transform: booleanAttribute });\r\n readonly sheetOnMobile = input(true, { transform: booleanAttribute });\r\n /** Görünür başlık yoksa ekran okuyucu için ad. */\r\n readonly ariaLabel = input<string>();\r\n\r\n /** Kapanış tamamlandığında (animasyon dahil). */\r\n readonly closed = output<void>();\r\n\r\n private readonly dialog = inject(DialogService);\r\n private readonly panel = viewChild.required<TemplateRef<unknown>>('panel');\r\n private ref: MfDialogRef<unknown, unknown> | null = null;\r\n\r\n constructor() {\r\n effect(() => {\r\n const shouldOpen = this.open();\r\n untracked(() => {\r\n if (shouldOpen && !this.ref) this.show();\r\n else if (!shouldOpen && this.ref) this.ref.close();\r\n });\r\n });\r\n }\r\n\r\n /** Programatik kapatma — `open.set(false)` ile eşdeğer. */\r\n hide(): void {\r\n this.ref?.close();\r\n }\r\n\r\n private show(): void {\r\n const ref = this.dialog.open<unknown, undefined, unknown>(this.panel(), {\r\n placement: this.placement(),\r\n size: this.size(),\r\n disableClose: this.disableClose(),\r\n sheetOnMobile: this.sheetOnMobile(),\r\n ariaLabel: this.ariaLabel() ?? (this.title() || undefined),\r\n maximizable: false,\r\n });\r\n this.ref = ref;\r\n ref.closed.subscribe(() => {\r\n this.ref = null;\r\n if (this.open()) this.open.set(false);\r\n this.closed.emit();\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesgflow-ui-kit-drawer.mjs","sources":["../../../projects/ui-kit/drawer/drawer.ts","../../../projects/ui-kit/drawer/mesgflow-ui-kit-drawer.ts"],"sourcesContent":["import {\r\n Component,\r\n TemplateRef,\r\n booleanAttribute,\r\n effect,\r\n inject,\r\n input,\r\n model,\r\n output,\r\n untracked,\r\n viewChild,\r\n} from '@angular/core';\r\nimport {\r\n Dialog,\r\n DialogService,\r\n type MfDialogRef,\r\n type DialogPlacement,\r\n type DialogSize,\r\n} from '@mesgflow/ui-kit/dialog';\r\n\r\nexport type DrawerPlacement = Exclude<DialogPlacement, 'center'>;\r\n\r\n/**\r\n * `<mf-drawer [(open)]=\"filtersOpen\" title=\"Filtreler\" placement=\"end\" size=\"sm\">…</mf-drawer>`\r\n *\r\n * Bildirimsel çekmece (sheet) — `DialogService.openDrawer()`'ın şablon\r\n * sürümü: içerik bir component yazmadan doğrudan şablonda durur, açık/kapalı\r\n * durumu `open` modeliyle iki yönlü bağlanır.\r\n *\r\n * - `placement`: `start` / `end` (mantıksal, RTL'de çevrilir), `left` / `right`,\r\n * `top` / `bottom`. Her kenar kendi kayma animasyonuyla açılır.\r\n * - Dialog altyapısının TÜM davranışı: odak tuzağı + geri dönüş, Escape,\r\n * backdrop tıklaması, çıkış animasyonu, kirli-form koruması, cam yüzey.\r\n * - `<div drawer-footer>` slotu sabit altbilgiye gider (Kaydet/İptal).\r\n * - `sheetOnMobile=\"false\"`: mobilde de kenardan açılır (gezinme çekmeceleri).\r\n */\r\n@Component({\r\n selector: 'mf-drawer',\r\n exportAs: 'mfDrawer',\r\n imports: [Dialog],\r\n host: { class: 'contents' },\r\n template: `\r\n <ng-template #panel>\r\n <mf-dialog\r\n [title]=\"title()\"\r\n [subtitle]=\"subtitle()\"\r\n [icon]=\"icon()\"\r\n [closeLabel]=\"closeLabel()\"\r\n (close)=\"hide()\"\r\n >\r\n <ng-content />\r\n <div dialog-footer class=\"contents\"><ng-content select=\"[drawer-footer]\" /></div>\r\n </mf-dialog>\r\n </ng-template>\r\n `,\r\n})\r\nexport class Drawer {\r\n readonly open = model(false);\r\n readonly title = input('');\r\n readonly subtitle = input('');\r\n readonly icon = input('');\r\n readonly placement = input<DrawerPlacement>('end');\r\n readonly size = input<Exclude<DialogSize, 'full'>>('md');\r\n /** `true` ise Escape/backdrop kapatmaz — yalnızca programatik `open.set(false)`. */\r\n readonly disableClose = input(false, { transform: booleanAttribute });\r\n readonly sheetOnMobile = input(true, { transform: booleanAttribute });\r\n /** Kapat (X) düğmesinin erişilebilir adı — bkz. `Dialog.closeLabel`. `disableClose` iken X çizilmez. */\r\n readonly closeLabel = input<string>();\r\n /** Görünür başlık yoksa ekran okuyucu için ad. */\r\n readonly ariaLabel = input<string>();\r\n\r\n /** Kapanış tamamlandığında (animasyon dahil). */\r\n readonly closed = output<void>();\r\n\r\n private readonly dialog = inject(DialogService);\r\n private readonly panel = viewChild.required<TemplateRef<unknown>>('panel');\r\n private ref: MfDialogRef<unknown, unknown> | null = null;\r\n\r\n constructor() {\r\n effect(() => {\r\n const shouldOpen = this.open();\r\n untracked(() => {\r\n if (shouldOpen && !this.ref) this.show();\r\n else if (!shouldOpen && this.ref) this.ref.close();\r\n });\r\n });\r\n }\r\n\r\n /** Programatik kapatma — `open.set(false)` ile eşdeğer. */\r\n hide(): void {\r\n this.ref?.close();\r\n }\r\n\r\n private show(): void {\r\n const ref = this.dialog.open<unknown, undefined, unknown>(this.panel(), {\r\n placement: this.placement(),\r\n size: this.size(),\r\n disableClose: this.disableClose(),\r\n sheetOnMobile: this.sheetOnMobile(),\r\n ariaLabel: this.ariaLabel() ?? (this.title() || undefined),\r\n maximizable: false,\r\n });\r\n this.ref = ref;\r\n ref.closed.subscribe(() => {\r\n this.ref = null;\r\n if (this.open()) this.open.set(false);\r\n this.closed.emit();\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ const mfLabelsTr = {
14
14
  remove: 'Kaldır',
15
15
  },
16
16
  dialog: {
17
- close: 'Kapat',
17
+ close: 'Pencereyi kapat',
18
18
  resize: 'Yeniden boyutlandır',
19
19
  fullscreenEnter: 'Tam ekran yap',
20
20
  fullscreenExit: 'Tam ekrandan çık',
@@ -1 +1 @@
1
- {"version":3,"file":"mesgflow-ui-kit-i18n-tr.mjs","sources":["../../../projects/ui-kit/i18n/tr/labels.tr.ts","../../../projects/ui-kit/i18n/tr/mesgflow-ui-kit-i18n-tr.ts"],"sourcesContent":["import type { MfLabels } from '@mesgflow/ui-kit/core';\r\n\r\n/**\r\n * `provideMesgflowUi({ labels: mfLabelsTr, dateLocale: tr })` ile sağlanan\r\n * Türkçe çeviri kümesi — kitin İngilizce varsayılanının (`mfLabelsEn`, bkz.\r\n * `@mesgflow/ui-kit/core`) AYNI şeklini taşır, sadece değerleri Türkçe. AYRI bir\r\n * ikincil giriş noktası (`@mesgflow/ui-kit/i18n/tr`) olmasının sebebi: birincil\r\n * barrel'a (`@mesgflow/ui-kit`) dahil OLMAMASI — Türkçe metin isteyen tüketici\r\n * BİLEREK import eder, İngilizce varsayılanı tercih eden tüketicinin bundle'ına\r\n * hiç girmez.\r\n */\r\nexport const mfLabelsTr: MfLabels = {\r\n common: {\r\n loading: 'Yükleniyor',\r\n clear: 'Temizle',\r\n remove: 'Kaldır',\r\n },\r\n dialog: {\r\n close: 'Kapat',\r\n resize: 'Yeniden boyutlandır',\r\n fullscreenEnter: 'Tam ekran yap',\r\n fullscreenExit: 'Tam ekrandan çık',\r\n confirmOk: 'Tamam',\r\n confirmCancel: 'İptal',\r\n confirmConfirm: 'Onayla',\r\n confirmDelete: 'Sil',\r\n errorGeneric: 'Bir şeyler ters gitti. Lütfen tekrar deneyin.',\r\n discard: {\r\n title: 'Kaydedilmemiş değişiklikler',\r\n content: 'Bu paneli kapatmak girdiklerinizi silecek.',\r\n confirm: 'Vazgeç ve kapat',\r\n cancel: 'Düzenlemeye devam et',\r\n },\r\n },\r\n datePicker: {\r\n today: 'Bugün',\r\n clear: 'Temizle',\r\n apply: 'Uygula',\r\n previousMonth: 'Önceki ay',\r\n nextMonth: 'Sonraki ay',\r\n previousYear: 'Önceki yıl',\r\n nextYear: 'Sonraki yıl',\r\n chooseMonth: 'Ay seç',\r\n chooseYear: 'Yıl seç',\r\n startDate: 'Başlangıç',\r\n endDate: 'Bitiş',\r\n placeholder: 'gg.aa.yyyy',\r\n presetToday: 'Bugün',\r\n presetLast7: 'Son 7 gün',\r\n presetLast30: 'Son 30 gün',\r\n presetThisMonth: 'Bu ay',\r\n date: 'Tarih',\r\n time: 'Saat',\r\n },\r\n timePicker: {\r\n placeholder: 'SS:DD',\r\n clear: 'Temizle',\r\n },\r\n table: {\r\n searchPlaceholder: 'Ara...',\r\n selectedCount: 'seçildi',\r\n edit: 'Düzenle',\r\n delete: 'Sil',\r\n clearSelection: 'Seçimi temizle',\r\n emptyTitle: 'Kayıt yok',\r\n emptyDescription: '',\r\n noResultsTitle: 'Sonuç bulunamadı',\r\n noResultsDescription: 'Farklı bir arama veya filtre deneyin.',\r\n clearFilters: 'Filtreleri temizle',\r\n filterCount: 'filtre',\r\n selectAllAriaLabel: 'Tümünü seç',\r\n selectRowAriaLabel: 'Satırı seç',\r\n actionsColumnLabel: 'İşlemler',\r\n columns: 'Kolonlar',\r\n density: 'Yoğunluk',\r\n densityComfortable: 'Rahat',\r\n densityCompact: 'Sık',\r\n resizeColumn: 'Sütunu yeniden boyutlandır',\r\n expandRow: 'Satırı genişlet',\r\n collapseRow: 'Satırı daralt',\r\n filter: {\r\n addFilter: 'Filtre',\r\n searchField: 'Alan ara...',\r\n noField: 'Alan bulunamadı',\r\n operator: 'Operatör',\r\n value: 'Değer',\r\n apply: 'Uygula',\r\n enterHint: 'Enter',\r\n clearAll: 'Temizle',\r\n and: 'VE',\r\n or: 'VEYA',\r\n remove: 'Kaldır',\r\n back: 'Geri',\r\n dateToday: 'Bugün',\r\n dateLast7: 'Son 7 gün',\r\n dateLast30: 'Son 30 gün',\r\n dateThisMonth: 'Bu ay',\r\n dateCustom: 'Özel aralık',\r\n dateFrom: 'Başlangıç',\r\n dateTo: 'Bitiş',\r\n operators: {\r\n equal: 'eşittir',\r\n notEqual: 'eşit değildir',\r\n greaterThan: 'büyüktür',\r\n greaterOrEqual: 'büyük eşittir',\r\n lessThan: 'küçüktür',\r\n lessOrEqual: 'küçük eşittir',\r\n contains: 'içerir',\r\n startsWith: 'ile başlar',\r\n endsWith: 'ile biter',\r\n in: 'şunlardan biri',\r\n isNull: 'boş',\r\n isNotNull: 'dolu',\r\n between: 'aralığında',\r\n },\r\n },\r\n pagination: {\r\n records: 'kayıt',\r\n perPage: 'sayfa başına',\r\n page: 'Sayfa',\r\n previous: 'Önceki',\r\n next: 'Sonraki',\r\n first: 'İlk sayfa',\r\n last: 'Son sayfa',\r\n pageSizeAriaLabel: 'Sayfa boyutu',\r\n navAriaLabel: 'Sayfalama',\r\n jumpToPage: 'Sayfaya git',\r\n go: 'Git',\r\n },\r\n },\r\n sidebar: {\r\n collapse: 'Menüyü daralt',\r\n expand: 'Menüyü genişlet',\r\n switchTenant: 'Kiracı değiştir',\r\n noTenants: 'Kiracı bulunamadı',\r\n noUser: 'Oturum açılmadı',\r\n nav: 'Ana gezinme',\r\n },\r\n tabs: {\r\n scrollStart: 'Geri kaydır',\r\n scrollEnd: 'İleri kaydır',\r\n close: 'Kapat',\r\n },\r\n dropzone: {\r\n label: 'Dosyaları buraya sürükle veya seçmek için tıkla',\r\n },\r\n colorPicker: {\r\n ariaLabel: 'Renk seç',\r\n hexAriaLabel: 'Hex renk kodu',\r\n pickFromScreenAriaLabel: 'Ekrandan renk seç',\r\n },\r\n boxInput: {\r\n top: 'Üst',\r\n right: 'Sağ',\r\n bottom: 'Alt',\r\n left: 'Sol',\r\n linkSides: 'Kenarları bağla',\r\n unlinkSides: 'Kenarları ayır',\r\n },\r\n combobox: {\r\n placeholder: 'Ara...',\r\n noResults: 'Sonuç yok',\r\n create: '“{query}” oluştur',\r\n remove: '{label} kaldır',\r\n },\r\n select: {\r\n placeholder: 'Seç',\r\n },\r\n searchInput: {\r\n placeholder: 'Ara...',\r\n ariaLabel: 'Ara',\r\n clearAriaLabel: 'Temizle',\r\n },\r\n toast: {\r\n dismiss: 'Kapat',\r\n },\r\n otpInput: {\r\n ariaLabel: 'Tek kullanımlık kod',\r\n },\r\n stepper: {\r\n ariaLabel: 'Adımlar',\r\n optional: 'İsteğe bağlı',\r\n completed: 'Tamamlandı',\r\n error: 'Dikkat gerekiyor',\r\n },\r\n progress: {\r\n ariaLabel: 'İlerleme',\r\n },\r\n passwordInput: {\r\n show: 'Göster',\r\n hide: 'Gizle',\r\n },\r\n qrCode: {\r\n ariaLabel: 'QR kod',\r\n error: 'QR kod oluşturulamadı: içerik çok uzun.',\r\n },\r\n chip: {\r\n remove: 'Kaldır',\r\n },\r\n alert: {\r\n dismiss: 'Kapat',\r\n },\r\n breadcrumb: {\r\n ariaLabel: 'Sayfa yolu',\r\n },\r\n avatarGroup: {\r\n overflowAriaLabel: 'diğer kullanıcı',\r\n },\r\n chart: {\r\n showTable: 'Tablo olarak göster',\r\n showChart: 'Grafik olarak göster',\r\n category: 'Kategori',\r\n },\r\n command: {\r\n placeholder: 'Bir komut yazın ya da arayın…',\r\n ariaLabel: 'Komut paleti',\r\n empty: 'Sonuç bulunamadı.',\r\n resultsCount: 'sonuç',\r\n navigate: 'gezin',\r\n select: 'seç',\r\n close: 'kapat',\r\n },\r\n characterCount: {\r\n remaining: 'karakter kaldı',\r\n overLimit: 'karakter sınırın üzerinde',\r\n characters: 'karakter',\r\n },\r\n copy: {\r\n copy: 'Kopyala',\r\n copied: 'Kopyalandı',\r\n failed: 'Kopyalanamadı',\r\n code: 'Kod',\r\n },\r\n pagination: {\r\n navAriaLabel: 'Sayfalama',\r\n previous: 'Önceki sayfa',\r\n next: 'Sonraki sayfa',\r\n first: 'İlk sayfa',\r\n last: 'Son sayfa',\r\n page: 'Sayfa',\r\n },\r\n tour: {\r\n next: 'İleri',\r\n back: 'Geri',\r\n skip: 'Turu atla',\r\n done: 'Bitir',\r\n stepOf: '/',\r\n },\r\n rating: {\r\n ariaLabel: 'Puan',\r\n outOf: '/',\r\n },\r\n themeSwitcher: {\r\n ariaLabel: 'Renk teması',\r\n light: 'Açık',\r\n dark: 'Koyu',\r\n system: 'Sistem',\r\n },\r\n treeSelect: {\r\n placeholder: 'Seçin',\r\n searchPlaceholder: 'Ara…',\r\n noResults: 'Sonuç bulunamadı',\r\n },\r\n statTile: {\r\n increase: 'Artış',\r\n decrease: 'Azalış',\r\n noChange: 'Değişim yok',\r\n },\r\n slider: {\r\n minThumb: 'En az',\r\n maxThumb: 'En çok',\r\n },\r\n splitButton: {\r\n moreActions: 'Diğer eylemler',\r\n },\r\n fileUpload: {\r\n uploading: 'Yükleniyor…',\r\n done: 'Yüklendi',\r\n failed: 'Yükleme başarısız',\r\n queued: 'Sırada…',\r\n retry: 'Yeniden dene',\r\n cancel: 'İptal',\r\n remove: 'Kaldır',\r\n files: '{count} dosya',\r\n },\r\n sortable: {\r\n instructions:\r\n 'Almak için Boşluk, taşımak için ok tuşları, bırakmak için Boşluk, vazgeçmek için Escape.',\r\n grabbed: '{item} alındı. {total} öğeden {position}. sırada.',\r\n moved: '{item} {position}. sıraya taşındı ({total} öğe).',\r\n movedToColumn: '{item} {column} sütununa taşındı, {position}. sıra ({total} öğe).',\r\n dropped: '{item} {position}. sıraya bırakıldı ({total} öğe).',\r\n cancelled: 'Taşıma iptal edildi. {item} {position}. sıraya döndü.',\r\n dragHandle: '{item} sırasını değiştir',\r\n card: 'kart',\r\n },\r\n countdown: {\r\n days: 'gün',\r\n hours: 'saat',\r\n minutes: 'dakika',\r\n seconds: 'saniye',\r\n remaining: '{time} kaldı',\r\n finished: 'Süre doldu',\r\n },\r\n carousel: {\r\n previous: 'Önceki slayt',\r\n next: 'Sonraki slayt',\r\n slide: '{index} / {total}',\r\n pause: 'Otomatik oynatmayı durdur',\r\n play: 'Otomatik oynatmayı başlat',\r\n goTo: '{index}. slayda git',\r\n carousel: 'Karusel',\r\n },\r\n inlineEdit: {\r\n edit: 'Düzenle',\r\n save: 'Kaydet',\r\n cancel: 'Vazgeç',\r\n empty: 'Eklemek için tıklayın',\r\n },\r\n transferList: {\r\n available: 'Mevcut',\r\n selected: 'Seçilen',\r\n moveRight: 'Seçilenleri sağa taşı',\r\n moveLeft: 'Seçilenleri sola taşı',\r\n moveAllRight: 'Tümünü sağa taşı',\r\n moveAllLeft: 'Tümünü sola taşı',\r\n search: 'Ara',\r\n count: '{total} öğeden {selected} seçili',\r\n empty: 'Öğe yok',\r\n },\r\n lightbox: {\r\n close: 'Kapat',\r\n previous: 'Önceki görsel',\r\n next: 'Sonraki görsel',\r\n zoomIn: 'Yakınlaştır',\r\n zoomOut: 'Uzaklaştır',\r\n counter: '{index} / {total}',\r\n gallery: 'Görsel görüntüleyici',\r\n },\r\n notificationCenter: {\r\n title: 'Bildirimler',\r\n markAllRead: 'Tümünü okundu işaretle',\r\n empty: 'Hepsini okudunuz',\r\n emptyDescription: 'Yeni bildirimler burada görünür.',\r\n unread: 'Okunmamış',\r\n trigger: 'Bildirimler, {count} okunmamış',\r\n viewAll: 'Tümünü gör',\r\n },\r\n agenda: {\r\n allDay: 'Tüm gün',\r\n empty: 'Planlanmış bir şey yok',\r\n today: 'Bugün',\r\n tomorrow: 'Yarın',\r\n },\r\n mention: {\r\n suggestions: 'Öneriler',\r\n noResults: 'Eşleşme yok',\r\n },\r\n panelGroup: {\r\n resize: '{index}. paneli boyutlandır',\r\n },\r\n authCard: {\r\n title: 'Tekrar hoş geldiniz',\r\n description: 'Çalışma alanınıza devam etmek için giriş yapın.',\r\n email: 'E-posta',\r\n emailPlaceholder: 'siz@sirket.com',\r\n password: 'Parola',\r\n forgotPassword: 'Parolanızı mı unuttunuz?',\r\n remember: 'Oturumumu açık tut',\r\n submit: 'Giriş yap',\r\n divider: 'ya da e-postayla devam edin',\r\n noAccount: 'Hesabınız yok mu?',\r\n signUp: 'Hesap oluşturun',\r\n emailRequired: 'E-posta gerekli',\r\n emailInvalid: 'Geçerli bir e-posta girin',\r\n passwordRequired: 'Parola gerekli',\r\n errorTitle: 'Giriş yapılamadı',\r\n },\r\n inviteMembers: {\r\n title: 'Ekip arkadaşlarını davet et',\r\n description: 'Katılma bağlantısı içeren bir e-posta alacaklar.',\r\n emails: 'E-posta adresleri',\r\n emailsPlaceholder: 'ad@sirket.com, Enter’a basın',\r\n role: 'Rol',\r\n submit: 'Davet gönder',\r\n invalidEmails: 'Geçersiz: {emails}',\r\n emailsRequired: 'En az bir e-posta adresi ekleyin',\r\n },\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesgflow-ui-kit-i18n-tr.mjs","sources":["../../../projects/ui-kit/i18n/tr/labels.tr.ts","../../../projects/ui-kit/i18n/tr/mesgflow-ui-kit-i18n-tr.ts"],"sourcesContent":["import type { MfLabels } from '@mesgflow/ui-kit/core';\r\n\r\n/**\r\n * `provideMesgflowUi({ labels: mfLabelsTr, dateLocale: tr })` ile sağlanan\r\n * Türkçe çeviri kümesi — kitin İngilizce varsayılanının (`mfLabelsEn`, bkz.\r\n * `@mesgflow/ui-kit/core`) AYNI şeklini taşır, sadece değerleri Türkçe. AYRI bir\r\n * ikincil giriş noktası (`@mesgflow/ui-kit/i18n/tr`) olmasının sebebi: birincil\r\n * barrel'a (`@mesgflow/ui-kit`) dahil OLMAMASI — Türkçe metin isteyen tüketici\r\n * BİLEREK import eder, İngilizce varsayılanı tercih eden tüketicinin bundle'ına\r\n * hiç girmez.\r\n */\r\nexport const mfLabelsTr: MfLabels = {\r\n common: {\r\n loading: 'Yükleniyor',\r\n clear: 'Temizle',\r\n remove: 'Kaldır',\r\n },\r\n dialog: {\r\n close: 'Pencereyi kapat',\r\n resize: 'Yeniden boyutlandır',\r\n fullscreenEnter: 'Tam ekran yap',\r\n fullscreenExit: 'Tam ekrandan çık',\r\n confirmOk: 'Tamam',\r\n confirmCancel: 'İptal',\r\n confirmConfirm: 'Onayla',\r\n confirmDelete: 'Sil',\r\n errorGeneric: 'Bir şeyler ters gitti. Lütfen tekrar deneyin.',\r\n discard: {\r\n title: 'Kaydedilmemiş değişiklikler',\r\n content: 'Bu paneli kapatmak girdiklerinizi silecek.',\r\n confirm: 'Vazgeç ve kapat',\r\n cancel: 'Düzenlemeye devam et',\r\n },\r\n },\r\n datePicker: {\r\n today: 'Bugün',\r\n clear: 'Temizle',\r\n apply: 'Uygula',\r\n previousMonth: 'Önceki ay',\r\n nextMonth: 'Sonraki ay',\r\n previousYear: 'Önceki yıl',\r\n nextYear: 'Sonraki yıl',\r\n chooseMonth: 'Ay seç',\r\n chooseYear: 'Yıl seç',\r\n startDate: 'Başlangıç',\r\n endDate: 'Bitiş',\r\n placeholder: 'gg.aa.yyyy',\r\n presetToday: 'Bugün',\r\n presetLast7: 'Son 7 gün',\r\n presetLast30: 'Son 30 gün',\r\n presetThisMonth: 'Bu ay',\r\n date: 'Tarih',\r\n time: 'Saat',\r\n },\r\n timePicker: {\r\n placeholder: 'SS:DD',\r\n clear: 'Temizle',\r\n },\r\n table: {\r\n searchPlaceholder: 'Ara...',\r\n selectedCount: 'seçildi',\r\n edit: 'Düzenle',\r\n delete: 'Sil',\r\n clearSelection: 'Seçimi temizle',\r\n emptyTitle: 'Kayıt yok',\r\n emptyDescription: '',\r\n noResultsTitle: 'Sonuç bulunamadı',\r\n noResultsDescription: 'Farklı bir arama veya filtre deneyin.',\r\n clearFilters: 'Filtreleri temizle',\r\n filterCount: 'filtre',\r\n selectAllAriaLabel: 'Tümünü seç',\r\n selectRowAriaLabel: 'Satırı seç',\r\n actionsColumnLabel: 'İşlemler',\r\n columns: 'Kolonlar',\r\n density: 'Yoğunluk',\r\n densityComfortable: 'Rahat',\r\n densityCompact: 'Sık',\r\n resizeColumn: 'Sütunu yeniden boyutlandır',\r\n expandRow: 'Satırı genişlet',\r\n collapseRow: 'Satırı daralt',\r\n filter: {\r\n addFilter: 'Filtre',\r\n searchField: 'Alan ara...',\r\n noField: 'Alan bulunamadı',\r\n operator: 'Operatör',\r\n value: 'Değer',\r\n apply: 'Uygula',\r\n enterHint: 'Enter',\r\n clearAll: 'Temizle',\r\n and: 'VE',\r\n or: 'VEYA',\r\n remove: 'Kaldır',\r\n back: 'Geri',\r\n dateToday: 'Bugün',\r\n dateLast7: 'Son 7 gün',\r\n dateLast30: 'Son 30 gün',\r\n dateThisMonth: 'Bu ay',\r\n dateCustom: 'Özel aralık',\r\n dateFrom: 'Başlangıç',\r\n dateTo: 'Bitiş',\r\n operators: {\r\n equal: 'eşittir',\r\n notEqual: 'eşit değildir',\r\n greaterThan: 'büyüktür',\r\n greaterOrEqual: 'büyük eşittir',\r\n lessThan: 'küçüktür',\r\n lessOrEqual: 'küçük eşittir',\r\n contains: 'içerir',\r\n startsWith: 'ile başlar',\r\n endsWith: 'ile biter',\r\n in: 'şunlardan biri',\r\n isNull: 'boş',\r\n isNotNull: 'dolu',\r\n between: 'aralığında',\r\n },\r\n },\r\n pagination: {\r\n records: 'kayıt',\r\n perPage: 'sayfa başına',\r\n page: 'Sayfa',\r\n previous: 'Önceki',\r\n next: 'Sonraki',\r\n first: 'İlk sayfa',\r\n last: 'Son sayfa',\r\n pageSizeAriaLabel: 'Sayfa boyutu',\r\n navAriaLabel: 'Sayfalama',\r\n jumpToPage: 'Sayfaya git',\r\n go: 'Git',\r\n },\r\n },\r\n sidebar: {\r\n collapse: 'Menüyü daralt',\r\n expand: 'Menüyü genişlet',\r\n switchTenant: 'Kiracı değiştir',\r\n noTenants: 'Kiracı bulunamadı',\r\n noUser: 'Oturum açılmadı',\r\n nav: 'Ana gezinme',\r\n },\r\n tabs: {\r\n scrollStart: 'Geri kaydır',\r\n scrollEnd: 'İleri kaydır',\r\n close: 'Kapat',\r\n },\r\n dropzone: {\r\n label: 'Dosyaları buraya sürükle veya seçmek için tıkla',\r\n },\r\n colorPicker: {\r\n ariaLabel: 'Renk seç',\r\n hexAriaLabel: 'Hex renk kodu',\r\n pickFromScreenAriaLabel: 'Ekrandan renk seç',\r\n },\r\n boxInput: {\r\n top: 'Üst',\r\n right: 'Sağ',\r\n bottom: 'Alt',\r\n left: 'Sol',\r\n linkSides: 'Kenarları bağla',\r\n unlinkSides: 'Kenarları ayır',\r\n },\r\n combobox: {\r\n placeholder: 'Ara...',\r\n noResults: 'Sonuç yok',\r\n create: '“{query}” oluştur',\r\n remove: '{label} kaldır',\r\n },\r\n select: {\r\n placeholder: 'Seç',\r\n },\r\n searchInput: {\r\n placeholder: 'Ara...',\r\n ariaLabel: 'Ara',\r\n clearAriaLabel: 'Temizle',\r\n },\r\n toast: {\r\n dismiss: 'Kapat',\r\n },\r\n otpInput: {\r\n ariaLabel: 'Tek kullanımlık kod',\r\n },\r\n stepper: {\r\n ariaLabel: 'Adımlar',\r\n optional: 'İsteğe bağlı',\r\n completed: 'Tamamlandı',\r\n error: 'Dikkat gerekiyor',\r\n },\r\n progress: {\r\n ariaLabel: 'İlerleme',\r\n },\r\n passwordInput: {\r\n show: 'Göster',\r\n hide: 'Gizle',\r\n },\r\n qrCode: {\r\n ariaLabel: 'QR kod',\r\n error: 'QR kod oluşturulamadı: içerik çok uzun.',\r\n },\r\n chip: {\r\n remove: 'Kaldır',\r\n },\r\n alert: {\r\n dismiss: 'Kapat',\r\n },\r\n breadcrumb: {\r\n ariaLabel: 'Sayfa yolu',\r\n },\r\n avatarGroup: {\r\n overflowAriaLabel: 'diğer kullanıcı',\r\n },\r\n chart: {\r\n showTable: 'Tablo olarak göster',\r\n showChart: 'Grafik olarak göster',\r\n category: 'Kategori',\r\n },\r\n command: {\r\n placeholder: 'Bir komut yazın ya da arayın…',\r\n ariaLabel: 'Komut paleti',\r\n empty: 'Sonuç bulunamadı.',\r\n resultsCount: 'sonuç',\r\n navigate: 'gezin',\r\n select: 'seç',\r\n close: 'kapat',\r\n },\r\n characterCount: {\r\n remaining: 'karakter kaldı',\r\n overLimit: 'karakter sınırın üzerinde',\r\n characters: 'karakter',\r\n },\r\n copy: {\r\n copy: 'Kopyala',\r\n copied: 'Kopyalandı',\r\n failed: 'Kopyalanamadı',\r\n code: 'Kod',\r\n },\r\n pagination: {\r\n navAriaLabel: 'Sayfalama',\r\n previous: 'Önceki sayfa',\r\n next: 'Sonraki sayfa',\r\n first: 'İlk sayfa',\r\n last: 'Son sayfa',\r\n page: 'Sayfa',\r\n },\r\n tour: {\r\n next: 'İleri',\r\n back: 'Geri',\r\n skip: 'Turu atla',\r\n done: 'Bitir',\r\n stepOf: '/',\r\n },\r\n rating: {\r\n ariaLabel: 'Puan',\r\n outOf: '/',\r\n },\r\n themeSwitcher: {\r\n ariaLabel: 'Renk teması',\r\n light: 'Açık',\r\n dark: 'Koyu',\r\n system: 'Sistem',\r\n },\r\n treeSelect: {\r\n placeholder: 'Seçin',\r\n searchPlaceholder: 'Ara…',\r\n noResults: 'Sonuç bulunamadı',\r\n },\r\n statTile: {\r\n increase: 'Artış',\r\n decrease: 'Azalış',\r\n noChange: 'Değişim yok',\r\n },\r\n slider: {\r\n minThumb: 'En az',\r\n maxThumb: 'En çok',\r\n },\r\n splitButton: {\r\n moreActions: 'Diğer eylemler',\r\n },\r\n fileUpload: {\r\n uploading: 'Yükleniyor…',\r\n done: 'Yüklendi',\r\n failed: 'Yükleme başarısız',\r\n queued: 'Sırada…',\r\n retry: 'Yeniden dene',\r\n cancel: 'İptal',\r\n remove: 'Kaldır',\r\n files: '{count} dosya',\r\n },\r\n sortable: {\r\n instructions:\r\n 'Almak için Boşluk, taşımak için ok tuşları, bırakmak için Boşluk, vazgeçmek için Escape.',\r\n grabbed: '{item} alındı. {total} öğeden {position}. sırada.',\r\n moved: '{item} {position}. sıraya taşındı ({total} öğe).',\r\n movedToColumn: '{item} {column} sütununa taşındı, {position}. sıra ({total} öğe).',\r\n dropped: '{item} {position}. sıraya bırakıldı ({total} öğe).',\r\n cancelled: 'Taşıma iptal edildi. {item} {position}. sıraya döndü.',\r\n dragHandle: '{item} sırasını değiştir',\r\n card: 'kart',\r\n },\r\n countdown: {\r\n days: 'gün',\r\n hours: 'saat',\r\n minutes: 'dakika',\r\n seconds: 'saniye',\r\n remaining: '{time} kaldı',\r\n finished: 'Süre doldu',\r\n },\r\n carousel: {\r\n previous: 'Önceki slayt',\r\n next: 'Sonraki slayt',\r\n slide: '{index} / {total}',\r\n pause: 'Otomatik oynatmayı durdur',\r\n play: 'Otomatik oynatmayı başlat',\r\n goTo: '{index}. slayda git',\r\n carousel: 'Karusel',\r\n },\r\n inlineEdit: {\r\n edit: 'Düzenle',\r\n save: 'Kaydet',\r\n cancel: 'Vazgeç',\r\n empty: 'Eklemek için tıklayın',\r\n },\r\n transferList: {\r\n available: 'Mevcut',\r\n selected: 'Seçilen',\r\n moveRight: 'Seçilenleri sağa taşı',\r\n moveLeft: 'Seçilenleri sola taşı',\r\n moveAllRight: 'Tümünü sağa taşı',\r\n moveAllLeft: 'Tümünü sola taşı',\r\n search: 'Ara',\r\n count: '{total} öğeden {selected} seçili',\r\n empty: 'Öğe yok',\r\n },\r\n lightbox: {\r\n close: 'Kapat',\r\n previous: 'Önceki görsel',\r\n next: 'Sonraki görsel',\r\n zoomIn: 'Yakınlaştır',\r\n zoomOut: 'Uzaklaştır',\r\n counter: '{index} / {total}',\r\n gallery: 'Görsel görüntüleyici',\r\n },\r\n notificationCenter: {\r\n title: 'Bildirimler',\r\n markAllRead: 'Tümünü okundu işaretle',\r\n empty: 'Hepsini okudunuz',\r\n emptyDescription: 'Yeni bildirimler burada görünür.',\r\n unread: 'Okunmamış',\r\n trigger: 'Bildirimler, {count} okunmamış',\r\n viewAll: 'Tümünü gör',\r\n },\r\n agenda: {\r\n allDay: 'Tüm gün',\r\n empty: 'Planlanmış bir şey yok',\r\n today: 'Bugün',\r\n tomorrow: 'Yarın',\r\n },\r\n mention: {\r\n suggestions: 'Öneriler',\r\n noResults: 'Eşleşme yok',\r\n },\r\n panelGroup: {\r\n resize: '{index}. paneli boyutlandır',\r\n },\r\n authCard: {\r\n title: 'Tekrar hoş geldiniz',\r\n description: 'Çalışma alanınıza devam etmek için giriş yapın.',\r\n email: 'E-posta',\r\n emailPlaceholder: 'siz@sirket.com',\r\n password: 'Parola',\r\n forgotPassword: 'Parolanızı mı unuttunuz?',\r\n remember: 'Oturumumu açık tut',\r\n submit: 'Giriş yap',\r\n divider: 'ya da e-postayla devam edin',\r\n noAccount: 'Hesabınız yok mu?',\r\n signUp: 'Hesap oluşturun',\r\n emailRequired: 'E-posta gerekli',\r\n emailInvalid: 'Geçerli bir e-posta girin',\r\n passwordRequired: 'Parola gerekli',\r\n errorTitle: 'Giriş yapılamadı',\r\n },\r\n inviteMembers: {\r\n title: 'Ekip arkadaşlarını davet et',\r\n description: 'Katılma bağlantısı içeren bir e-posta alacaklar.',\r\n emails: 'E-posta adresleri',\r\n emailsPlaceholder: 'ad@sirket.com, Enter’a basın',\r\n role: 'Rol',\r\n submit: 'Davet gönder',\r\n invalidEmails: 'Geçersiz: {emails}',\r\n emailsRequired: 'En az bir e-posta adresi ekleyin',\r\n },\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -47,10 +47,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
47
47
  }]
48
48
  }] });
49
49
 
50
- const menuItemVariants = cva('flex w-full cursor-pointer items-center gap-2 rounded-sm px-2.5 text-start py-1.5 text-fg-muted transition-colors duration-fast ease-emphasis active:scale-[0.99]', {
50
+ const menuItemVariants = cva('flex w-full cursor-pointer items-center gap-2 rounded-sm px-2.5 text-start py-1.5 transition-colors duration-fast ease-emphasis active:scale-[0.99]', {
51
51
  variants: {
52
+ /** `danger`: tehlikeli eylem ("Çıkış yap", "Üyeyi çıkar") — ikon slotu `currentColor` ile aynı rengi miras alır. */
53
+ tone: {
54
+ neutral: 'text-fg-muted',
55
+ danger: 'text-danger',
56
+ },
52
57
  active: {
53
- true: 'bg-state-hover text-fg',
58
+ true: '',
54
59
  false: '',
55
60
  },
56
61
  disabled: {
@@ -58,7 +63,11 @@ const menuItemVariants = cva('flex w-full cursor-pointer items-center gap-2 roun
58
63
  false: '',
59
64
  },
60
65
  },
61
- defaultVariants: { active: false, disabled: false },
66
+ compoundVariants: [
67
+ { tone: 'neutral', active: true, class: 'bg-state-hover text-fg' },
68
+ { tone: 'danger', active: true, class: 'bg-danger-tint text-danger-tint-fg' },
69
+ ],
70
+ defaultVariants: { tone: 'neutral', active: false, disabled: false },
62
71
  });
63
72
 
64
73
  /**
@@ -67,18 +76,25 @@ const menuItemVariants = cva('flex w-full cursor-pointer items-center gap-2 roun
67
76
  * `checked` verilirse (true/false) öğe tek-seçimli bir grubun parçası olur:
68
77
  * `role="menuitemradio"` + `aria-checked`, seçili öğenin sağında tik. Verilmezse
69
78
  * (`undefined`) düz `menuitem` — eski davranış birebir.
79
+ *
80
+ * `tone="danger"` tehlikeli eylemi ("Çıkış yap", "Üyeyi çıkar") ayrıştırır: metin
81
+ * `text-danger`, etkin/hover `bg-danger-tint text-danger-tint-fg`; ikon slotu aynı
82
+ * rengi (`currentColor`) miras alır. Yalnızca görsel — ARIA rolü değişmez.
70
83
  */
71
84
  class MenuItem {
72
85
  checked = input(undefined, /* @ts-ignore */
73
86
  ...(ngDevMode ? [{ debugName: "checked" }] : /* istanbul ignore next */ []));
87
+ tone = input('neutral', /* @ts-ignore */
88
+ ...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
74
89
  ariaMenuItem = inject(MenuItem$1);
75
90
  classes = computed(() => cn(menuItemVariants({
91
+ tone: this.tone(),
76
92
  active: this.ariaMenuItem.active(),
77
93
  disabled: this.ariaMenuItem.disabled(),
78
94
  })), /* @ts-ignore */
79
95
  ...(ngDevMode ? [{ debugName: "classes" }] : /* istanbul ignore next */ []));
80
96
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: MenuItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: MenuItem, isStandalone: true, selector: "button[mfMenuItem], div[mfMenuItem]", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "checked() === undefined ? ariaMenuItem.role() : \"menuitemradio\"", "attr.aria-checked": "checked() ?? null" } }, hostDirectives: [{ directive: i1.MenuItem, inputs: ["value", "value", "disabled", "disabled", "id", "id"] }], ngImport: i0, template: `
97
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.7", type: MenuItem, isStandalone: true, selector: "button[mfMenuItem], div[mfMenuItem]", inputs: { checked: { classPropertyName: "checked", publicName: "checked", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "classes()", "attr.role": "checked() === undefined ? ariaMenuItem.role() : \"menuitemradio\"", "attr.aria-checked": "checked() ?? null" } }, hostDirectives: [{ directive: i1.MenuItem, inputs: ["value", "value", "disabled", "disabled", "id", "id"] }], ngImport: i0, template: `
82
98
  <ng-content />
83
99
  @if (checked() !== undefined) {
84
100
  <span mfIcon [size]="16" class="ms-auto shrink-0 text-accent" [class.invisible]="!checked()"
@@ -108,7 +124,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImpor
108
124
  }
109
125
  `,
110
126
  }]
111
- }], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }] } });
127
+ }], propDecorators: { checked: [{ type: i0.Input, args: [{ isSignal: true, alias: "checked", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }] } });
112
128
 
113
129
  /**
114
130
  * `<button mfMenuTrigger [menu]="menuRef" cdkOverlayOrigin #origin="cdkOverlayOrigin">Aç</button>`
@@ -1 +1 @@
1
- {"version":3,"file":"mesgflow-ui-kit-menu.mjs","sources":["../../../projects/ui-kit/menu/menu.ts","../../../projects/ui-kit/menu/menu.variants.ts","../../../projects/ui-kit/menu/menu-item.ts","../../../projects/ui-kit/menu/menu-trigger.ts","../../../projects/ui-kit/menu/menubar.ts","../../../projects/ui-kit/menu/mesgflow-ui-kit-menu.ts"],"sourcesContent":["import { Menu as AriaMenu } from '@angular/aria/menu';\r\nimport { Component } from '@angular/core';\r\n\r\n/**\r\n * `<mf-menu #menu=\"ngMenu\" (itemSelected)=\"onSelect($event)\"><button mfMenuItem value=\"a\">A</button></mf-menu>`\r\n * — genelde bir `mf-popover` içine konur, tetikleyici için `mfMenuTrigger`\r\n * kullanılır (bkz. `menu-trigger.ts`). ARIA/klavye (ok tuşu navigasyonu,\r\n * typeahead, alt-menü açma) `@angular/aria/menu`'nün `Menu` pattern'inden\r\n * `hostDirectives` ile geliyor — `Select`'in listbox'ıyla AYNI görsel dil\r\n * (rounded-lg, shadow-2, bg-overlay).\r\n *\r\n * `hostDirectives` uygulanan bir directive'in KENDİ `exportAs`'ı (`ngMenu`)\r\n * host elemanda hâlâ kullanılabilir (Angular directive composition API'sinin\r\n * dokümante edilmiş davranışı) — bu yüzden `MenuTrigger`'ın `[menu]`\r\n * girdisine doğrudan `#menu=\"ngMenu\"` verilebiliyor, ayrı bir forward'a\r\n * gerek yok.\r\n */\r\n@Component({\r\n selector: 'mf-menu',\r\n exportAs: 'mfMenu',\r\n hostDirectives: [\r\n {\r\n directive: AriaMenu,\r\n inputs: ['wrap', 'disabled', 'typeaheadDelay'],\r\n outputs: ['itemSelected'],\r\n },\r\n ],\r\n host: {\r\n class:\r\n 'block max-h-64 min-w-[10rem] overflow-auto rounded-lg border border-hairline bg-overlay p-1 text-sm shadow-2',\r\n },\r\n template: '<ng-content />',\r\n})\r\nexport class Menu {}\r\n","import { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nexport const menuItemVariants = cva(\r\n 'flex w-full cursor-pointer items-center gap-2 rounded-sm px-2.5 text-start py-1.5 text-fg-muted transition-colors duration-fast ease-emphasis active:scale-[0.99]',\r\n {\r\n variants: {\r\n active: {\r\n true: 'bg-state-hover text-fg',\r\n false: '',\r\n },\r\n disabled: {\r\n true: 'pointer-events-none opacity-50 active:scale-100',\r\n false: '',\r\n },\r\n },\r\n defaultVariants: { active: false, disabled: false },\r\n },\r\n);\r\n\r\nexport type MenuItemActive = VariantProps<typeof menuItemVariants>['active'];\r\n","import { MenuItem as AriaMenuItem } from '@angular/aria/menu';\r\nimport { Component, computed, inject, input } from '@angular/core';\r\nimport { cn } from '@mesgflow/ui-kit/core';\r\nimport { Icon } from '@mesgflow/ui-kit/icon';\r\nimport { menuItemVariants } from './menu.variants';\r\n\r\n/**\r\n * `<button mfMenuItem value=\"delete\">Sil</button>` — `mf-menu` içine konur.\r\n *\r\n * `checked` verilirse (true/false) öğe tek-seçimli bir grubun parçası olur:\r\n * `role=\"menuitemradio\"` + `aria-checked`, seçili öğenin sağında tik. Verilmezse\r\n * (`undefined`) düz `menuitem` — eski davranış birebir.\r\n */\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector -- BİLEREK native eleman + attribute (tik ikonu için şablon gerekiyor)\r\n selector: 'button[mfMenuItem], div[mfMenuItem]',\r\n imports: [Icon],\r\n hostDirectives: [{ directive: AriaMenuItem, inputs: ['value', 'disabled', 'id'] }],\r\n host: {\r\n '[class]': 'classes()',\r\n '[attr.role]': 'checked() === undefined ? ariaMenuItem.role() : \"menuitemradio\"',\r\n '[attr.aria-checked]': 'checked() ?? null',\r\n },\r\n template: `\r\n <ng-content />\r\n @if (checked() !== undefined) {\r\n <span mfIcon [size]=\"16\" class=\"ms-auto shrink-0 text-accent\" [class.invisible]=\"!checked()\"\r\n >check</span\r\n >\r\n }\r\n `,\r\n})\r\nexport class MenuItem<V> {\r\n readonly checked = input<boolean | undefined>(undefined);\r\n\r\n protected readonly ariaMenuItem = inject<AriaMenuItem<V>>(AriaMenuItem);\r\n\r\n protected readonly classes = computed(() =>\r\n cn(\r\n menuItemVariants({\r\n active: this.ariaMenuItem.active(),\r\n disabled: this.ariaMenuItem.disabled(),\r\n }),\r\n ),\r\n );\r\n}\r\n","import { CdkOverlayOrigin, Overlay, type OverlayRef } from '@angular/cdk/overlay';\r\nimport { DomPortal } from '@angular/cdk/portal';\r\nimport { Menu as AriaMenu, MenuTrigger as AriaMenuTrigger } from '@angular/aria/menu';\r\nimport {\r\n DestroyRef,\r\n Directive,\r\n ElementRef,\r\n effect,\r\n inject,\r\n input,\r\n untracked,\r\n type OutputRefSubscription,\r\n} from '@angular/core';\r\nimport { exitDurationMs, overlayPositions, type MfPlacement } from '@mesgflow/ui-kit/core';\r\n\r\n/**\r\n * `<button mfMenuTrigger [menu]=\"menuRef\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\">Aç</button>`\r\n * — `[menu]`'ye `mf-menu`'nün `#ref=\"ngMenu\"` template referansını ver.\r\n * Pozisyonlama (floating panel) bu directive'in İŞİ DEĞİL — `@angular/aria/menu`\r\n * headless, konum bilgisi taşımıyor; `mf-popover`'ın `[open]=\"trigger.expanded()\"`\r\n * ile beslenmesi gerekiyor (bkz. playground'daki Menu demosu, `(closed)`\r\n * çıktısında `trigger.close()` çağırarak iki state'i senkron tutma deseni).\r\n *\r\n * Konumlandırmayı kendisi yapan (ve `@angular/cdk` import'u gerektirmeyen) biçim\r\n * için bkz. `MenuTriggerFor` — `[mfMenuTrigger]=\"menuRef\"`. İkisinin seçicisi\r\n * `[menu]` bağlamasının varlığıyla ayrışır, aynı elemanda asla ikisi birden eşleşmez.\r\n */\r\n@Directive({\r\n selector: '[mfMenuTrigger][menu]',\r\n exportAs: 'mfMenuTrigger',\r\n hostDirectives: [{ directive: AriaMenuTrigger, inputs: ['menu', 'disabled'] }],\r\n})\r\nexport class MenuTrigger {}\r\n\r\n/**\r\n * `<button mfButton [mfMenuTrigger]=\"langMenu\">TR</button>\r\n * <mf-menu #langMenu=\"ngMenu\" (itemSelected)=\"setLang($event)\">…</mf-menu>`\r\n *\r\n * Tek düğmeli açılır menü — tüketici `@angular/cdk` import etmez, `mf-popover`\r\n * sarmalamaz. Menü şablonda NORMAL yerinde durur (kapalıyken gizli), açılınca\r\n * `DomPortal` ile overlay'e TAŞINIR ve tetiğe göre `placement`'a konumlanır;\r\n * kapanınca çıkış animasyonundan sonra eski yerine döner — Angular'ın mantıksal\r\n * ağacı (içerik projeksiyonu, `mfMenuItem` ↔ `mf-menu` DI bağı) hiç değişmez.\r\n *\r\n * `[mfMenuTrigger]`'a `mf-menu`'nün `ngMenu` referansı verilir (`mfMenu` DEĞİL —\r\n * `@angular/aria`'nın tetikleyicisi kendi `Menu` örneğini ister). ARIA/klavye\r\n * (`aria-haspopup`/`aria-expanded`, ok tuşları, typeahead, Enter/Boşluk seçer, Esc\r\n * kapatıp odağı tetiğe döndürür) `@angular/aria/menu`'den; bu directive üstüne:\r\n * seçimde kapanıp odağı tetiğe döndürme, dışarı tıklamada kapanma.\r\n *\r\n * Tetik aynı zamanda bir `CdkOverlayOrigin` (host directive) — ayrıca\r\n * `cdkOverlayOrigin` yazılmaz.\r\n */\r\n@Directive({\r\n selector: '[mfMenuTrigger]:not([menu])',\r\n exportAs: 'mfMenuTrigger',\r\n hostDirectives: [\r\n { directive: AriaMenuTrigger, inputs: ['menu: mfMenuTrigger', 'disabled'] },\r\n CdkOverlayOrigin,\r\n ],\r\n // aria `\"true\"` yazar (ARIA'da `menu` ile eşdeğer) — açık değer ekran okuyucularda daha tutarlı.\r\n host: { '[attr.aria-haspopup]': '\"menu\"' },\r\n})\r\nexport class MenuTriggerFor {\r\n /** Menünün tetiğe göre konumu — `left`/`right` mantıksal (RTL'de çevrilir). */\r\n readonly placement = input<MfPlacement>('bottom-end');\r\n\r\n private readonly aria = inject(AriaMenuTrigger);\r\n private readonly overlay = inject(Overlay);\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private overlayRef?: OverlayRef;\r\n private exitTimer?: ReturnType<typeof setTimeout>;\r\n /** Kapalıyken gizlenen (ve açıkken overlay'e taşınan) menü elemanı. */\r\n private hiddenMenu?: HTMLElement;\r\n private selection?: OutputRefSubscription;\r\n\r\n constructor() {\r\n // Menü bağlanınca: kapalıyken yerinde gizle, seçimde kapan.\r\n effect((onCleanup) => {\r\n const menu = this.aria.menu() as AriaMenu<unknown> | undefined;\r\n if (!menu) return;\r\n untracked(() => this.bindMenu(menu));\r\n onCleanup(() => this.unbindMenu());\r\n });\r\n\r\n effect(() => {\r\n const expanded = this.aria.expanded();\r\n const menu = this.aria.menu() as AriaMenu<unknown> | undefined;\r\n untracked(() => (expanded && menu ? this.attach(menu.element) : this.detach()));\r\n });\r\n\r\n inject(DestroyRef).onDestroy(() => {\r\n clearTimeout(this.exitTimer);\r\n this.overlayRef?.dispose();\r\n this.unbindMenu();\r\n });\r\n }\r\n\r\n /** Public — menüyü kapatır, odak yerinde kalır (aria `close()` ile aynı). */\r\n close(): void {\r\n this.aria.close();\r\n }\r\n\r\n /** Public — menüyü açar ve ilk öğeye odaklanır. */\r\n open(): void {\r\n this.aria.open();\r\n }\r\n\r\n private bindMenu(menu: AriaMenu<unknown>): void {\r\n this.hiddenMenu = menu.element;\r\n if (!this.overlayRef?.hasAttached()) this.hiddenMenu.style.display = 'none';\r\n this.selection = menu.itemSelected.subscribe(() => {\r\n this.aria.close();\r\n this.host.nativeElement.focus();\r\n });\r\n }\r\n\r\n private unbindMenu(): void {\r\n this.selection?.unsubscribe();\r\n this.selection = undefined;\r\n if (this.hiddenMenu) this.hiddenMenu.style.display = '';\r\n this.hiddenMenu = undefined;\r\n }\r\n\r\n private attach(menuEl: HTMLElement): void {\r\n clearTimeout(this.exitTimer);\r\n const ref = this.ensureOverlay();\r\n ref.updatePositionStrategy(this.positionStrategy());\r\n const panel = ref.overlayElement;\r\n panel.classList.remove('animate-overlay-out');\r\n panel.classList.add('animate-overlay-in');\r\n if (ref.hasAttached()) return;\r\n\r\n menuEl.style.display = '';\r\n ref.attach(new DomPortal(menuEl));\r\n }\r\n\r\n private detach(): void {\r\n const ref = this.overlayRef;\r\n if (!ref?.hasAttached()) return;\r\n\r\n const finish = () => {\r\n // `detach()` DomPortal'ı ESKİ yerine geri koyar — orada yine gizli durmalı.\r\n ref.detach();\r\n if (this.hiddenMenu) this.hiddenMenu.style.display = 'none';\r\n };\r\n const exitMs = exitDurationMs();\r\n if (exitMs === 0) {\r\n finish();\r\n return;\r\n }\r\n ref.overlayElement.classList.remove('animate-overlay-in');\r\n ref.overlayElement.classList.add('animate-overlay-out');\r\n clearTimeout(this.exitTimer);\r\n this.exitTimer = setTimeout(finish, exitMs);\r\n }\r\n\r\n private ensureOverlay(): OverlayRef {\r\n if (this.overlayRef) return this.overlayRef;\r\n const ref = this.overlay.create({\r\n positionStrategy: this.positionStrategy(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n });\r\n // Dışarı tıklama kapatır — tetiğin kendisi hariç (onun tıklaması aria'da zaten aç/kapa).\r\n ref.outsidePointerEvents().subscribe((event) => {\r\n const target = event.target as Node | null;\r\n if (target && this.host.nativeElement.contains(target)) return;\r\n if (this.aria.expanded()) this.aria.close();\r\n });\r\n this.overlayRef = ref;\r\n return ref;\r\n }\r\n\r\n private positionStrategy() {\r\n return this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.host)\r\n .withPositions(overlayPositions(this.placement(), 4))\r\n .withPush(false);\r\n }\r\n}\r\n","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport {\r\n Menu as AriaMenu,\r\n MenuBar as AriaMenuBar,\r\n MenuContent,\r\n MenuItem as AriaMenuItem,\r\n} from '@angular/aria/menu';\r\nimport { Component, input, output, signal, viewChildren } from '@angular/core';\r\nimport { overlayPositions } from '@mesgflow/ui-kit/core';\r\nimport { Icon } from '@mesgflow/ui-kit/icon';\r\nimport { Kbd } from '@mesgflow/ui-kit/kbd';\r\n\r\nexport interface MenubarAction<V = string> {\r\n label: string;\r\n value: V;\r\n icon?: string;\r\n /** Görsel kısayol ipucu (ör. `Ctrl+S`) — kısayolu KAYDETMEZ, yalnızca gösterir. */\r\n shortcut?: string;\r\n disabled?: boolean;\r\n danger?: boolean;\r\n /** Bu öğeden SONRA ayırıcı çizgi. */\r\n separatorAfter?: boolean;\r\n}\r\n\r\nexport interface MenubarMenu<V = string> {\r\n label: string;\r\n items: MenubarAction<V>[];\r\n}\r\n\r\n/**\r\n * `<mf-menubar [menus]=\"menus\" (itemSelect)=\"run($event)\" ariaLabel=\"Editör\" />`\r\n *\r\n * Masaüstü uygulama tarzı kalıcı menü çubuğu (Dosya · Düzen · Görünüm) —\r\n * WAI-ARIA APG \"Menubar\": `@angular/aria/menu`'nün `ngMenuBar`/`ngMenu`\r\n * desenleri. Klavye: ←/→ üst menüler arası (açık menü eşlik eder), ↓/Enter\r\n * açar, ↑/↓ öğeler, typeahead, Escape kapatır ve odağı çubuğa döndürür.\r\n *\r\n * Alt menüler CDK bağlı overlay'lerinde; çubuğa ilk odak/hover'da bir kez\r\n * render edilir (`rendered`), görünürlüğü `ngMenu`'nün `data-visible`'ı yönetir.\r\n */\r\n@Component({\r\n selector: 'mf-menubar',\r\n exportAs: 'mfMenubar',\r\n imports: [OverlayModule, AriaMenuBar, AriaMenu, AriaMenuItem, MenuContent, Icon, Kbd],\r\n host: { class: 'block' },\r\n template: `\r\n <div\r\n ngMenuBar\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n class=\"flex items-center gap-0.5 rounded-lg border border-hairline bg-surface p-1 shadow-control\"\r\n (focusin)=\"rendered.set(true)\"\r\n (pointerenter)=\"rendered.set(true)\"\r\n (itemSelected)=\"itemSelect.emit($any($event))\"\r\n >\r\n @for (menu of menus(); track menu.label; let i = $index) {\r\n <div\r\n ngMenuItem\r\n #origin\r\n #top=\"ngMenuItem\"\r\n [value]=\"menu.label\"\r\n [submenu]=\"$any(submenus()[i])\"\r\n class=\"cursor-default rounded-md px-3 py-1 text-sm font-medium text-fg-muted outline-none select-none transition-colors duration-fast ease-emphasis hover:bg-state-hover hover:text-fg data-[active=true]:bg-state-hover data-[active=true]:text-fg aria-expanded:bg-state-selected aria-expanded:text-fg focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus-ring\"\r\n >\r\n {{ menu.label }}\r\n </div>\r\n\r\n <ng-template\r\n [cdkConnectedOverlayOpen]=\"rendered()\"\r\n [cdkConnectedOverlay]=\"{ origin: origin, usePopover: 'inline' }\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayDisableClose]=\"true\"\r\n cdkAttachPopoverAsChild\r\n >\r\n <div\r\n ngMenu\r\n class=\"min-w-[13rem] rounded-lg border border-hairline bg-overlay p-1 text-sm shadow-2 data-[visible=false]:hidden data-[visible=true]:animate-overlay-in\"\r\n >\r\n <ng-template ngMenuContent>\r\n @for (action of menu.items; track action.value) {\r\n <div\r\n ngMenuItem\r\n [value]=\"action.value\"\r\n [disabled]=\"!!action.disabled\"\r\n class=\"flex cursor-default items-center gap-2 rounded-sm px-2.5 py-1.5 text-fg-muted outline-none select-none data-[active=true]:bg-state-hover data-[active=true]:text-fg aria-disabled:pointer-events-none aria-disabled:opacity-50\"\r\n [class.text-danger]=\"action.danger\"\r\n >\r\n <span\r\n mfIcon\r\n [size]=\"16\"\r\n class=\"text-fg-subtle\"\r\n [class.invisible]=\"!action.icon\"\r\n >{{ action.icon || 'circle' }}</span\r\n >\r\n <span class=\"flex-1\">{{ action.label }}</span>\r\n @if (action.shortcut) {\r\n <kbd mfKbd class=\"ms-6\">{{ action.shortcut }}</kbd>\r\n }\r\n </div>\r\n @if (action.separatorAfter) {\r\n <div role=\"separator\" class=\"mx-1 my-1 h-px bg-hairline\"></div>\r\n }\r\n }\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class Menubar<V = string> {\r\n readonly menus = input.required<MenubarMenu<V>[]>();\r\n readonly ariaLabel = input('');\r\n readonly itemSelect = output<V>();\r\n\r\n protected readonly rendered = signal(false);\r\n protected readonly submenus = viewChildren(AriaMenu<V>);\r\n protected readonly positions = overlayPositions('bottom-start', 4);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AriaMenu","AriaMenuItem","AriaMenuTrigger","i1","AriaMenuBar"],"mappings":"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"}
1
+ {"version":3,"file":"mesgflow-ui-kit-menu.mjs","sources":["../../../projects/ui-kit/menu/menu.ts","../../../projects/ui-kit/menu/menu.variants.ts","../../../projects/ui-kit/menu/menu-item.ts","../../../projects/ui-kit/menu/menu-trigger.ts","../../../projects/ui-kit/menu/menubar.ts","../../../projects/ui-kit/menu/mesgflow-ui-kit-menu.ts"],"sourcesContent":["import { Menu as AriaMenu } from '@angular/aria/menu';\r\nimport { Component } from '@angular/core';\r\n\r\n/**\r\n * `<mf-menu #menu=\"ngMenu\" (itemSelected)=\"onSelect($event)\"><button mfMenuItem value=\"a\">A</button></mf-menu>`\r\n * — genelde bir `mf-popover` içine konur, tetikleyici için `mfMenuTrigger`\r\n * kullanılır (bkz. `menu-trigger.ts`). ARIA/klavye (ok tuşu navigasyonu,\r\n * typeahead, alt-menü açma) `@angular/aria/menu`'nün `Menu` pattern'inden\r\n * `hostDirectives` ile geliyor — `Select`'in listbox'ıyla AYNI görsel dil\r\n * (rounded-lg, shadow-2, bg-overlay).\r\n *\r\n * `hostDirectives` uygulanan bir directive'in KENDİ `exportAs`'ı (`ngMenu`)\r\n * host elemanda hâlâ kullanılabilir (Angular directive composition API'sinin\r\n * dokümante edilmiş davranışı) — bu yüzden `MenuTrigger`'ın `[menu]`\r\n * girdisine doğrudan `#menu=\"ngMenu\"` verilebiliyor, ayrı bir forward'a\r\n * gerek yok.\r\n */\r\n@Component({\r\n selector: 'mf-menu',\r\n exportAs: 'mfMenu',\r\n hostDirectives: [\r\n {\r\n directive: AriaMenu,\r\n inputs: ['wrap', 'disabled', 'typeaheadDelay'],\r\n outputs: ['itemSelected'],\r\n },\r\n ],\r\n host: {\r\n class:\r\n 'block max-h-64 min-w-[10rem] overflow-auto rounded-lg border border-hairline bg-overlay p-1 text-sm shadow-2',\r\n },\r\n template: '<ng-content />',\r\n})\r\nexport class Menu {}\r\n","import { cva, type VariantProps } from 'class-variance-authority';\r\n\r\nexport const menuItemVariants = cva(\r\n 'flex w-full cursor-pointer items-center gap-2 rounded-sm px-2.5 text-start py-1.5 transition-colors duration-fast ease-emphasis active:scale-[0.99]',\r\n {\r\n variants: {\r\n /** `danger`: tehlikeli eylem (\"Çıkış yap\", \"Üyeyi çıkar\") — ikon slotu `currentColor` ile aynı rengi miras alır. */\r\n tone: {\r\n neutral: 'text-fg-muted',\r\n danger: 'text-danger',\r\n },\r\n active: {\r\n true: '',\r\n false: '',\r\n },\r\n disabled: {\r\n true: 'pointer-events-none opacity-50 active:scale-100',\r\n false: '',\r\n },\r\n },\r\n compoundVariants: [\r\n { tone: 'neutral', active: true, class: 'bg-state-hover text-fg' },\r\n { tone: 'danger', active: true, class: 'bg-danger-tint text-danger-tint-fg' },\r\n ],\r\n defaultVariants: { tone: 'neutral', active: false, disabled: false },\r\n },\r\n);\r\n\r\nexport type MenuItemActive = VariantProps<typeof menuItemVariants>['active'];\r\nexport type MenuItemTone = NonNullable<VariantProps<typeof menuItemVariants>['tone']>;\r\n","import { MenuItem as AriaMenuItem } from '@angular/aria/menu';\r\nimport { Component, computed, inject, input } from '@angular/core';\r\nimport { cn } from '@mesgflow/ui-kit/core';\r\nimport { Icon } from '@mesgflow/ui-kit/icon';\r\nimport { menuItemVariants, type MenuItemTone } from './menu.variants';\r\n\r\n/**\r\n * `<button mfMenuItem value=\"delete\">Sil</button>` — `mf-menu` içine konur.\r\n *\r\n * `checked` verilirse (true/false) öğe tek-seçimli bir grubun parçası olur:\r\n * `role=\"menuitemradio\"` + `aria-checked`, seçili öğenin sağında tik. Verilmezse\r\n * (`undefined`) düz `menuitem` — eski davranış birebir.\r\n *\r\n * `tone=\"danger\"` tehlikeli eylemi (\"Çıkış yap\", \"Üyeyi çıkar\") ayrıştırır: metin\r\n * `text-danger`, etkin/hover `bg-danger-tint text-danger-tint-fg`; ikon slotu aynı\r\n * rengi (`currentColor`) miras alır. Yalnızca görsel — ARIA rolü değişmez.\r\n */\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector -- BİLEREK native eleman + attribute (tik ikonu için şablon gerekiyor)\r\n selector: 'button[mfMenuItem], div[mfMenuItem]',\r\n imports: [Icon],\r\n hostDirectives: [{ directive: AriaMenuItem, inputs: ['value', 'disabled', 'id'] }],\r\n host: {\r\n '[class]': 'classes()',\r\n '[attr.role]': 'checked() === undefined ? ariaMenuItem.role() : \"menuitemradio\"',\r\n '[attr.aria-checked]': 'checked() ?? null',\r\n },\r\n template: `\r\n <ng-content />\r\n @if (checked() !== undefined) {\r\n <span mfIcon [size]=\"16\" class=\"ms-auto shrink-0 text-accent\" [class.invisible]=\"!checked()\"\r\n >check</span\r\n >\r\n }\r\n `,\r\n})\r\nexport class MenuItem<V> {\r\n readonly checked = input<boolean | undefined>(undefined);\r\n readonly tone = input<MenuItemTone>('neutral');\r\n\r\n protected readonly ariaMenuItem = inject<AriaMenuItem<V>>(AriaMenuItem);\r\n\r\n protected readonly classes = computed(() =>\r\n cn(\r\n menuItemVariants({\r\n tone: this.tone(),\r\n active: this.ariaMenuItem.active(),\r\n disabled: this.ariaMenuItem.disabled(),\r\n }),\r\n ),\r\n );\r\n}\r\n","import { CdkOverlayOrigin, Overlay, type OverlayRef } from '@angular/cdk/overlay';\r\nimport { DomPortal } from '@angular/cdk/portal';\r\nimport { Menu as AriaMenu, MenuTrigger as AriaMenuTrigger } from '@angular/aria/menu';\r\nimport {\r\n DestroyRef,\r\n Directive,\r\n ElementRef,\r\n effect,\r\n inject,\r\n input,\r\n untracked,\r\n type OutputRefSubscription,\r\n} from '@angular/core';\r\nimport { exitDurationMs, overlayPositions, type MfPlacement } from '@mesgflow/ui-kit/core';\r\n\r\n/**\r\n * `<button mfMenuTrigger [menu]=\"menuRef\" cdkOverlayOrigin #origin=\"cdkOverlayOrigin\">Aç</button>`\r\n * — `[menu]`'ye `mf-menu`'nün `#ref=\"ngMenu\"` template referansını ver.\r\n * Pozisyonlama (floating panel) bu directive'in İŞİ DEĞİL — `@angular/aria/menu`\r\n * headless, konum bilgisi taşımıyor; `mf-popover`'ın `[open]=\"trigger.expanded()\"`\r\n * ile beslenmesi gerekiyor (bkz. playground'daki Menu demosu, `(closed)`\r\n * çıktısında `trigger.close()` çağırarak iki state'i senkron tutma deseni).\r\n *\r\n * Konumlandırmayı kendisi yapan (ve `@angular/cdk` import'u gerektirmeyen) biçim\r\n * için bkz. `MenuTriggerFor` — `[mfMenuTrigger]=\"menuRef\"`. İkisinin seçicisi\r\n * `[menu]` bağlamasının varlığıyla ayrışır, aynı elemanda asla ikisi birden eşleşmez.\r\n */\r\n@Directive({\r\n selector: '[mfMenuTrigger][menu]',\r\n exportAs: 'mfMenuTrigger',\r\n hostDirectives: [{ directive: AriaMenuTrigger, inputs: ['menu', 'disabled'] }],\r\n})\r\nexport class MenuTrigger {}\r\n\r\n/**\r\n * `<button mfButton [mfMenuTrigger]=\"langMenu\">TR</button>\r\n * <mf-menu #langMenu=\"ngMenu\" (itemSelected)=\"setLang($event)\">…</mf-menu>`\r\n *\r\n * Tek düğmeli açılır menü — tüketici `@angular/cdk` import etmez, `mf-popover`\r\n * sarmalamaz. Menü şablonda NORMAL yerinde durur (kapalıyken gizli), açılınca\r\n * `DomPortal` ile overlay'e TAŞINIR ve tetiğe göre `placement`'a konumlanır;\r\n * kapanınca çıkış animasyonundan sonra eski yerine döner — Angular'ın mantıksal\r\n * ağacı (içerik projeksiyonu, `mfMenuItem` ↔ `mf-menu` DI bağı) hiç değişmez.\r\n *\r\n * `[mfMenuTrigger]`'a `mf-menu`'nün `ngMenu` referansı verilir (`mfMenu` DEĞİL —\r\n * `@angular/aria`'nın tetikleyicisi kendi `Menu` örneğini ister). ARIA/klavye\r\n * (`aria-haspopup`/`aria-expanded`, ok tuşları, typeahead, Enter/Boşluk seçer, Esc\r\n * kapatıp odağı tetiğe döndürür) `@angular/aria/menu`'den; bu directive üstüne:\r\n * seçimde kapanıp odağı tetiğe döndürme, dışarı tıklamada kapanma.\r\n *\r\n * Tetik aynı zamanda bir `CdkOverlayOrigin` (host directive) — ayrıca\r\n * `cdkOverlayOrigin` yazılmaz.\r\n */\r\n@Directive({\r\n selector: '[mfMenuTrigger]:not([menu])',\r\n exportAs: 'mfMenuTrigger',\r\n hostDirectives: [\r\n { directive: AriaMenuTrigger, inputs: ['menu: mfMenuTrigger', 'disabled'] },\r\n CdkOverlayOrigin,\r\n ],\r\n // aria `\"true\"` yazar (ARIA'da `menu` ile eşdeğer) — açık değer ekran okuyucularda daha tutarlı.\r\n host: { '[attr.aria-haspopup]': '\"menu\"' },\r\n})\r\nexport class MenuTriggerFor {\r\n /** Menünün tetiğe göre konumu — `left`/`right` mantıksal (RTL'de çevrilir). */\r\n readonly placement = input<MfPlacement>('bottom-end');\r\n\r\n private readonly aria = inject(AriaMenuTrigger);\r\n private readonly overlay = inject(Overlay);\r\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\r\n private overlayRef?: OverlayRef;\r\n private exitTimer?: ReturnType<typeof setTimeout>;\r\n /** Kapalıyken gizlenen (ve açıkken overlay'e taşınan) menü elemanı. */\r\n private hiddenMenu?: HTMLElement;\r\n private selection?: OutputRefSubscription;\r\n\r\n constructor() {\r\n // Menü bağlanınca: kapalıyken yerinde gizle, seçimde kapan.\r\n effect((onCleanup) => {\r\n const menu = this.aria.menu() as AriaMenu<unknown> | undefined;\r\n if (!menu) return;\r\n untracked(() => this.bindMenu(menu));\r\n onCleanup(() => this.unbindMenu());\r\n });\r\n\r\n effect(() => {\r\n const expanded = this.aria.expanded();\r\n const menu = this.aria.menu() as AriaMenu<unknown> | undefined;\r\n untracked(() => (expanded && menu ? this.attach(menu.element) : this.detach()));\r\n });\r\n\r\n inject(DestroyRef).onDestroy(() => {\r\n clearTimeout(this.exitTimer);\r\n this.overlayRef?.dispose();\r\n this.unbindMenu();\r\n });\r\n }\r\n\r\n /** Public — menüyü kapatır, odak yerinde kalır (aria `close()` ile aynı). */\r\n close(): void {\r\n this.aria.close();\r\n }\r\n\r\n /** Public — menüyü açar ve ilk öğeye odaklanır. */\r\n open(): void {\r\n this.aria.open();\r\n }\r\n\r\n private bindMenu(menu: AriaMenu<unknown>): void {\r\n this.hiddenMenu = menu.element;\r\n if (!this.overlayRef?.hasAttached()) this.hiddenMenu.style.display = 'none';\r\n this.selection = menu.itemSelected.subscribe(() => {\r\n this.aria.close();\r\n this.host.nativeElement.focus();\r\n });\r\n }\r\n\r\n private unbindMenu(): void {\r\n this.selection?.unsubscribe();\r\n this.selection = undefined;\r\n if (this.hiddenMenu) this.hiddenMenu.style.display = '';\r\n this.hiddenMenu = undefined;\r\n }\r\n\r\n private attach(menuEl: HTMLElement): void {\r\n clearTimeout(this.exitTimer);\r\n const ref = this.ensureOverlay();\r\n ref.updatePositionStrategy(this.positionStrategy());\r\n const panel = ref.overlayElement;\r\n panel.classList.remove('animate-overlay-out');\r\n panel.classList.add('animate-overlay-in');\r\n if (ref.hasAttached()) return;\r\n\r\n menuEl.style.display = '';\r\n ref.attach(new DomPortal(menuEl));\r\n }\r\n\r\n private detach(): void {\r\n const ref = this.overlayRef;\r\n if (!ref?.hasAttached()) return;\r\n\r\n const finish = () => {\r\n // `detach()` DomPortal'ı ESKİ yerine geri koyar — orada yine gizli durmalı.\r\n ref.detach();\r\n if (this.hiddenMenu) this.hiddenMenu.style.display = 'none';\r\n };\r\n const exitMs = exitDurationMs();\r\n if (exitMs === 0) {\r\n finish();\r\n return;\r\n }\r\n ref.overlayElement.classList.remove('animate-overlay-in');\r\n ref.overlayElement.classList.add('animate-overlay-out');\r\n clearTimeout(this.exitTimer);\r\n this.exitTimer = setTimeout(finish, exitMs);\r\n }\r\n\r\n private ensureOverlay(): OverlayRef {\r\n if (this.overlayRef) return this.overlayRef;\r\n const ref = this.overlay.create({\r\n positionStrategy: this.positionStrategy(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n });\r\n // Dışarı tıklama kapatır — tetiğin kendisi hariç (onun tıklaması aria'da zaten aç/kapa).\r\n ref.outsidePointerEvents().subscribe((event) => {\r\n const target = event.target as Node | null;\r\n if (target && this.host.nativeElement.contains(target)) return;\r\n if (this.aria.expanded()) this.aria.close();\r\n });\r\n this.overlayRef = ref;\r\n return ref;\r\n }\r\n\r\n private positionStrategy() {\r\n return this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.host)\r\n .withPositions(overlayPositions(this.placement(), 4))\r\n .withPush(false);\r\n }\r\n}\r\n","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport {\r\n Menu as AriaMenu,\r\n MenuBar as AriaMenuBar,\r\n MenuContent,\r\n MenuItem as AriaMenuItem,\r\n} from '@angular/aria/menu';\r\nimport { Component, input, output, signal, viewChildren } from '@angular/core';\r\nimport { overlayPositions } from '@mesgflow/ui-kit/core';\r\nimport { Icon } from '@mesgflow/ui-kit/icon';\r\nimport { Kbd } from '@mesgflow/ui-kit/kbd';\r\n\r\nexport interface MenubarAction<V = string> {\r\n label: string;\r\n value: V;\r\n icon?: string;\r\n /** Görsel kısayol ipucu (ör. `Ctrl+S`) — kısayolu KAYDETMEZ, yalnızca gösterir. */\r\n shortcut?: string;\r\n disabled?: boolean;\r\n danger?: boolean;\r\n /** Bu öğeden SONRA ayırıcı çizgi. */\r\n separatorAfter?: boolean;\r\n}\r\n\r\nexport interface MenubarMenu<V = string> {\r\n label: string;\r\n items: MenubarAction<V>[];\r\n}\r\n\r\n/**\r\n * `<mf-menubar [menus]=\"menus\" (itemSelect)=\"run($event)\" ariaLabel=\"Editör\" />`\r\n *\r\n * Masaüstü uygulama tarzı kalıcı menü çubuğu (Dosya · Düzen · Görünüm) —\r\n * WAI-ARIA APG \"Menubar\": `@angular/aria/menu`'nün `ngMenuBar`/`ngMenu`\r\n * desenleri. Klavye: ←/→ üst menüler arası (açık menü eşlik eder), ↓/Enter\r\n * açar, ↑/↓ öğeler, typeahead, Escape kapatır ve odağı çubuğa döndürür.\r\n *\r\n * Alt menüler CDK bağlı overlay'lerinde; çubuğa ilk odak/hover'da bir kez\r\n * render edilir (`rendered`), görünürlüğü `ngMenu`'nün `data-visible`'ı yönetir.\r\n */\r\n@Component({\r\n selector: 'mf-menubar',\r\n exportAs: 'mfMenubar',\r\n imports: [OverlayModule, AriaMenuBar, AriaMenu, AriaMenuItem, MenuContent, Icon, Kbd],\r\n host: { class: 'block' },\r\n template: `\r\n <div\r\n ngMenuBar\r\n [attr.aria-label]=\"ariaLabel() || null\"\r\n class=\"flex items-center gap-0.5 rounded-lg border border-hairline bg-surface p-1 shadow-control\"\r\n (focusin)=\"rendered.set(true)\"\r\n (pointerenter)=\"rendered.set(true)\"\r\n (itemSelected)=\"itemSelect.emit($any($event))\"\r\n >\r\n @for (menu of menus(); track menu.label; let i = $index) {\r\n <div\r\n ngMenuItem\r\n #origin\r\n #top=\"ngMenuItem\"\r\n [value]=\"menu.label\"\r\n [submenu]=\"$any(submenus()[i])\"\r\n class=\"cursor-default rounded-md px-3 py-1 text-sm font-medium text-fg-muted outline-none select-none transition-colors duration-fast ease-emphasis hover:bg-state-hover hover:text-fg data-[active=true]:bg-state-hover data-[active=true]:text-fg aria-expanded:bg-state-selected aria-expanded:text-fg focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-focus-ring\"\r\n >\r\n {{ menu.label }}\r\n </div>\r\n\r\n <ng-template\r\n [cdkConnectedOverlayOpen]=\"rendered()\"\r\n [cdkConnectedOverlay]=\"{ origin: origin, usePopover: 'inline' }\"\r\n [cdkConnectedOverlayPositions]=\"positions\"\r\n [cdkConnectedOverlayDisableClose]=\"true\"\r\n cdkAttachPopoverAsChild\r\n >\r\n <div\r\n ngMenu\r\n class=\"min-w-[13rem] rounded-lg border border-hairline bg-overlay p-1 text-sm shadow-2 data-[visible=false]:hidden data-[visible=true]:animate-overlay-in\"\r\n >\r\n <ng-template ngMenuContent>\r\n @for (action of menu.items; track action.value) {\r\n <div\r\n ngMenuItem\r\n [value]=\"action.value\"\r\n [disabled]=\"!!action.disabled\"\r\n class=\"flex cursor-default items-center gap-2 rounded-sm px-2.5 py-1.5 text-fg-muted outline-none select-none data-[active=true]:bg-state-hover data-[active=true]:text-fg aria-disabled:pointer-events-none aria-disabled:opacity-50\"\r\n [class.text-danger]=\"action.danger\"\r\n >\r\n <span\r\n mfIcon\r\n [size]=\"16\"\r\n class=\"text-fg-subtle\"\r\n [class.invisible]=\"!action.icon\"\r\n >{{ action.icon || 'circle' }}</span\r\n >\r\n <span class=\"flex-1\">{{ action.label }}</span>\r\n @if (action.shortcut) {\r\n <kbd mfKbd class=\"ms-6\">{{ action.shortcut }}</kbd>\r\n }\r\n </div>\r\n @if (action.separatorAfter) {\r\n <div role=\"separator\" class=\"mx-1 my-1 h-px bg-hairline\"></div>\r\n }\r\n }\r\n </ng-template>\r\n </div>\r\n </ng-template>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class Menubar<V = string> {\r\n readonly menus = input.required<MenubarMenu<V>[]>();\r\n readonly ariaLabel = input('');\r\n readonly itemSelect = output<V>();\r\n\r\n protected readonly rendered = signal(false);\r\n protected readonly submenus = viewChildren(AriaMenu<V>);\r\n protected readonly positions = overlayPositions('bottom-start', 4);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AriaMenu","AriaMenuItem","AriaMenuTrigger","i1","AriaMenuBar"],"mappings":"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"}