@mesgflow/ui-kit 0.9.0 → 0.10.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/fesm2022/mesgflow-ui-kit-badge.mjs +20 -6
- package/fesm2022/mesgflow-ui-kit-badge.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-input.mjs +101 -95
- package/fesm2022/mesgflow-ui-kit-input.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-menu.mjs +198 -16
- package/fesm2022/mesgflow-ui-kit-menu.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-popover.mjs +43 -13
- package/fesm2022/mesgflow-ui-kit-popover.mjs.map +1 -1
- package/fesm2022/mesgflow-ui-kit-split-button.mjs +1 -1
- package/fesm2022/mesgflow-ui-kit-split-button.mjs.map +1 -1
- package/package.json +1 -1
- package/types/mesgflow-ui-kit-badge.d.ts +9 -3
- package/types/mesgflow-ui-kit-input.d.ts +6 -6
- package/types/mesgflow-ui-kit-menu.d.ts +64 -8
- package/types/mesgflow-ui-kit-popover.d.ts +32 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesgflow-ui-kit-split-button.mjs","sources":["../../../projects/ui-kit/split-button/split-button.ts","../../../projects/ui-kit/split-button/mesgflow-ui-kit-split-button.ts"],"sourcesContent":["import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { Component, booleanAttribute, computed, inject, input, output } from '@angular/core';\r\nimport { Button, type ButtonAppearance, type ButtonTone } from '@mesgflow/ui-kit/button';\r\nimport { MF_SPLIT_BUTTON_LABELS, cn } from '@mesgflow/ui-kit/core';\r\nimport { Icon } from '@mesgflow/ui-kit/icon';\r\nimport { Menu, MenuItem, MenuTrigger } from '@mesgflow/ui-kit/menu';\r\nimport { Popover } from '@mesgflow/ui-kit/popover';\r\n\r\nexport interface SplitButtonItem<V = string> {\r\n label: string;\r\n value: V;\r\n icon?: string;\r\n disabled?: boolean;\r\n /** Tehlikeli eylem (Sil) — kırmızı metin. */\r\n danger?: boolean;\r\n}\r\n\r\n/**\r\n * `<mf-split-button label=\"Kaydet\" [items]=\"more\" (primaryClick)=\"save()\" (itemSelect)=\"run($event)\" />`\r\n *\r\n * Birincil eylem + ilgili ikincil eylemler menüsü (GitHub \"Merge ▾\", Gmail\r\n * \"Gönder ▾\"). İki gerçek düğme: soldaki eylemi çalıştırır, sağdaki\r\n * (`aria-haspopup=\"menu\"`) menüyü açar — ekran okuyucu ikisini ayrı duyurur.\r\n *\r\n * Menü `@angular/aria/menu` (ok tuşları, typeahead, Escape) + `mf-popover`\r\n * (tetikleyiciden büyüyen panel). Öğeler VERİ olarak verilir: `mfMenuItem`\r\n * içerik projeksiyonuyla aria menüsüne bağlanamadığı için bu bileşen onları\r\n * kendi şablonunda çizer.\r\n */\r\n@Component({\r\n selector: 'mf-split-button',\r\n exportAs: 'mfSplitButton',\r\n imports: [OverlayModule, Button, Icon, Menu, MenuItem, MenuTrigger, Popover],\r\n host: { class: 'inline-flex' },\r\n template: `\r\n <div class=\"inline-flex\" role=\"group\" [attr.aria-label]=\"label()\">\r\n <button\r\n mfButton\r\n type=\"button\"\r\n [tone]=\"tone()\"\r\n [appearance]=\"appearance()\"\r\n [size]=\"size()\"\r\n [iconStart]=\"icon()\"\r\n [loading]=\"loading()\"\r\n [disabled]=\"disabled()\"\r\n [class]=\"primaryClass()\"\r\n (click)=\"primaryClick.emit()\"\r\n >\r\n {{ label() }}\r\n </button>\r\n <button\r\n mfButton\r\n type=\"button\"\r\n cdkOverlayOrigin\r\n #origin=\"cdkOverlayOrigin\"\r\n mfMenuTrigger\r\n #trigger=\"ngMenuTrigger\"\r\n [menu]=\"menuRef\"\r\n [tone]=\"tone()\"\r\n [appearance]=\"appearance()\"\r\n [size]=\"size()\"\r\n [disabled]=\"disabled()\"\r\n [class]=\"toggleClass()\"\r\n [attr.aria-label]=\"effectiveMenuLabel()\"\r\n >\r\n <span\r\n mfIcon\r\n [size]=\"16\"\r\n class=\"transition-transform duration-fast ease-emphasis\"\r\n [class.rotate-180]=\"trigger.expanded()\"\r\n >expand_more</span\r\n >\r\n </button>\r\n </div>\r\n <mf-popover\r\n [origin]=\"origin\"\r\n [open]=\"trigger.expanded()\"\r\n (closed)=\"trigger.close()\"\r\n placement=\"bottom-end\"\r\n padding=\"none\"\r\n >\r\n <mf-menu #menuRef=\"ngMenu\" (itemSelected)=\"onSelect($event); trigger.close()\">\r\n @for (item of items(); track item.value) {\r\n <button\r\n mfMenuItem\r\n [value]=\"item.value\"\r\n [disabled]=\"!!item.disabled\"\r\n [class.text-danger]=\"item.danger\"\r\n >\r\n @if (item.icon) {\r\n <span mfIcon [size]=\"16\" class=\"text-fg-subtle\" [class.text-danger]=\"item.danger\">{{\r\n item.icon\r\n }}</span>\r\n }\r\n {{ item.label }}\r\n </button>\r\n }\r\n </mf-menu>\r\n </mf-popover>\r\n `,\r\n})\r\nexport class SplitButton<V = string> {\r\n readonly label = input.required<string>();\r\n readonly items = input.required<SplitButtonItem<V>[]>();\r\n readonly icon = input('');\r\n readonly tone = input<ButtonTone>('primary');\r\n readonly appearance = input<ButtonAppearance>('filled');\r\n readonly size = input<'sm' | 'md' | 'lg'>('md');\r\n readonly loading = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n /** Menü düğmesinin erişilebilir adı — verilmezse `MF_SPLIT_BUTTON_LABELS`. */\r\n readonly menuLabel = input<string>();\r\n\r\n readonly primaryClick = output<void>();\r\n readonly itemSelect = output<V>();\r\n\r\n private readonly labels = inject(MF_SPLIT_BUTTON_LABELS);\r\n protected readonly effectiveMenuLabel = computed(\r\n () => this.menuLabel() ?? this.labels().moreActions,\r\n );\r\n\r\n /** Bitişik iki düğme: iç köşeler kare, ayırıcı çizgi (dolu görünümde açık ton). */\r\n protected readonly primaryClass = computed(() => cn('rounded-e-none'));\r\n protected readonly toggleClass = computed(() =>\r\n cn(\r\n 'rounded-s-none px-2',\r\n this.appearance() === 'filled' || this.appearance() === 'soft'\r\n ? 'border-s-white/20 dark:border-s-black/20'\r\n : '-ms-px',\r\n ),\r\n );\r\n\r\n protected onSelect(value: V): void {\r\n this.itemSelect.emit(value);\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-split-button.mjs","sources":["../../../projects/ui-kit/split-button/split-button.ts","../../../projects/ui-kit/split-button/mesgflow-ui-kit-split-button.ts"],"sourcesContent":["import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { Component, booleanAttribute, computed, inject, input, output } from '@angular/core';\r\nimport { Button, type ButtonAppearance, type ButtonTone } from '@mesgflow/ui-kit/button';\r\nimport { MF_SPLIT_BUTTON_LABELS, cn } from '@mesgflow/ui-kit/core';\r\nimport { Icon } from '@mesgflow/ui-kit/icon';\r\nimport { Menu, MenuItem, MenuTrigger } from '@mesgflow/ui-kit/menu';\r\nimport { Popover } from '@mesgflow/ui-kit/popover';\r\n\r\nexport interface SplitButtonItem<V = string> {\r\n label: string;\r\n value: V;\r\n icon?: string;\r\n disabled?: boolean;\r\n /** Tehlikeli eylem (Sil) — kırmızı metin. */\r\n danger?: boolean;\r\n}\r\n\r\n/**\r\n * `<mf-split-button label=\"Kaydet\" [items]=\"more\" (primaryClick)=\"save()\" (itemSelect)=\"run($event)\" />`\r\n *\r\n * Birincil eylem + ilgili ikincil eylemler menüsü (GitHub \"Merge ▾\", Gmail\r\n * \"Gönder ▾\"). İki gerçek düğme: soldaki eylemi çalıştırır, sağdaki\r\n * (`aria-haspopup=\"menu\"`) menüyü açar — ekran okuyucu ikisini ayrı duyurur.\r\n *\r\n * Menü `@angular/aria/menu` (ok tuşları, typeahead, Escape) + `mf-popover`\r\n * (tetikleyiciden büyüyen panel). Öğeler VERİ olarak verilir: `mfMenuItem`\r\n * içerik projeksiyonuyla aria menüsüne bağlanamadığı için bu bileşen onları\r\n * kendi şablonunda çizer.\r\n */\r\n@Component({\r\n selector: 'mf-split-button',\r\n exportAs: 'mfSplitButton',\r\n imports: [OverlayModule, Button, Icon, Menu, MenuItem, MenuTrigger, Popover],\r\n host: { class: 'inline-flex' },\r\n template: `\r\n <div class=\"inline-flex\" role=\"group\" [attr.aria-label]=\"label()\">\r\n <button\r\n mfButton\r\n type=\"button\"\r\n [tone]=\"tone()\"\r\n [appearance]=\"appearance()\"\r\n [size]=\"size()\"\r\n [iconStart]=\"icon()\"\r\n [loading]=\"loading()\"\r\n [disabled]=\"disabled()\"\r\n [class]=\"primaryClass()\"\r\n (click)=\"primaryClick.emit()\"\r\n >\r\n {{ label() }}\r\n </button>\r\n <button\r\n mfButton\r\n type=\"button\"\r\n cdkOverlayOrigin\r\n #origin=\"cdkOverlayOrigin\"\r\n mfMenuTrigger\r\n #trigger=\"ngMenuTrigger\"\r\n [menu]=\"menuRef\"\r\n [tone]=\"tone()\"\r\n [appearance]=\"appearance()\"\r\n [size]=\"size()\"\r\n [disabled]=\"disabled()\"\r\n [class]=\"toggleClass()\"\r\n [attr.aria-label]=\"effectiveMenuLabel()\"\r\n >\r\n <span\r\n mfIcon\r\n [size]=\"16\"\r\n class=\"transition-transform duration-fast ease-emphasis\"\r\n [class.rotate-180]=\"trigger.expanded()\"\r\n >expand_more</span\r\n >\r\n </button>\r\n </div>\r\n <mf-popover\r\n [origin]=\"origin\"\r\n [open]=\"trigger.expanded()\"\r\n (closed)=\"trigger.close()\"\r\n placement=\"bottom-end\"\r\n padding=\"none\"\r\n >\r\n <mf-menu #menuRef=\"ngMenu\" (itemSelected)=\"onSelect($event); trigger.close()\">\r\n @for (item of items(); track item.value) {\r\n <button\r\n mfMenuItem\r\n [value]=\"item.value\"\r\n [disabled]=\"!!item.disabled\"\r\n [class.text-danger]=\"item.danger\"\r\n >\r\n @if (item.icon) {\r\n <span mfIcon [size]=\"16\" class=\"text-fg-subtle\" [class.text-danger]=\"item.danger\">{{\r\n item.icon\r\n }}</span>\r\n }\r\n {{ item.label }}\r\n </button>\r\n }\r\n </mf-menu>\r\n </mf-popover>\r\n `,\r\n})\r\nexport class SplitButton<V = string> {\r\n readonly label = input.required<string>();\r\n readonly items = input.required<SplitButtonItem<V>[]>();\r\n readonly icon = input('');\r\n readonly tone = input<ButtonTone>('primary');\r\n readonly appearance = input<ButtonAppearance>('filled');\r\n readonly size = input<'sm' | 'md' | 'lg'>('md');\r\n readonly loading = input(false, { transform: booleanAttribute });\r\n readonly disabled = input(false, { transform: booleanAttribute });\r\n /** Menü düğmesinin erişilebilir adı — verilmezse `MF_SPLIT_BUTTON_LABELS`. */\r\n readonly menuLabel = input<string>();\r\n\r\n readonly primaryClick = output<void>();\r\n readonly itemSelect = output<V>();\r\n\r\n private readonly labels = inject(MF_SPLIT_BUTTON_LABELS);\r\n protected readonly effectiveMenuLabel = computed(\r\n () => this.menuLabel() ?? this.labels().moreActions,\r\n );\r\n\r\n /** Bitişik iki düğme: iç köşeler kare, ayırıcı çizgi (dolu görünümde açık ton). */\r\n protected readonly primaryClass = computed(() => cn('rounded-e-none'));\r\n protected readonly toggleClass = computed(() =>\r\n cn(\r\n 'rounded-s-none px-2',\r\n this.appearance() === 'filled' || this.appearance() === 'soft'\r\n ? 'border-s-white/20 dark:border-s-black/20'\r\n : '-ms-px',\r\n ),\r\n );\r\n\r\n protected onSelect(value: V): void {\r\n this.itemSelect.emit(value);\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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mesgflow/ui-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "Independent Angular component kit (button, select, dialog, table, sidebar, and more) built on a Tailwind v4 design token system. See README.md for setup and prerequisites.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Hurdeniz YENER",
|
|
@@ -2,13 +2,17 @@ import * as _angular_core from '@angular/core';
|
|
|
2
2
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* `<span mfBadge tone="success">Aktif</span>` — cümle biçimi için
|
|
7
|
+
* `<span mfBadge tone="warning" casing="sentence">Hazırlanıyor</span>`.
|
|
8
|
+
*/
|
|
6
9
|
declare class Badge {
|
|
7
10
|
readonly tone: _angular_core.InputSignal<"neutral" | "primary" | "success" | "warning" | "danger" | "info" | "help" | null | undefined>;
|
|
8
11
|
readonly size: _angular_core.InputSignal<"sm" | "md" | null | undefined>;
|
|
12
|
+
readonly casing: _angular_core.InputSignal<"eyebrow" | "sentence" | null | undefined>;
|
|
9
13
|
protected readonly classes: _angular_core.Signal<string>;
|
|
10
14
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Badge, never>;
|
|
11
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Badge, "span[mfBadge]", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Badge, "span[mfBadge]", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "casing": { "alias": "casing"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
12
16
|
}
|
|
13
17
|
|
|
14
18
|
/**
|
|
@@ -30,10 +34,12 @@ declare class Badge {
|
|
|
30
34
|
*/
|
|
31
35
|
declare const badgeVariants: (props?: ({
|
|
32
36
|
tone?: "neutral" | "primary" | "success" | "warning" | "danger" | "info" | "help" | null | undefined;
|
|
37
|
+
casing?: "eyebrow" | "sentence" | null | undefined;
|
|
33
38
|
size?: "sm" | "md" | null | undefined;
|
|
34
39
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
35
40
|
type BadgeTone = VariantProps<typeof badgeVariants>['tone'];
|
|
36
41
|
type BadgeSize = VariantProps<typeof badgeVariants>['size'];
|
|
42
|
+
type BadgeCasing = VariantProps<typeof badgeVariants>['casing'];
|
|
37
43
|
|
|
38
44
|
export { Badge, badgeVariants };
|
|
39
|
-
export type { BadgeSize, BadgeTone };
|
|
45
|
+
export type { BadgeCasing, BadgeSize, BadgeTone };
|
|
@@ -71,6 +71,7 @@ declare class Input {
|
|
|
71
71
|
readonly maxRows: _angular_core.InputSignal<number | null>;
|
|
72
72
|
private readonly elementRef;
|
|
73
73
|
private readonly nativeSizing;
|
|
74
|
+
private readonly inGroup;
|
|
74
75
|
private lastValue;
|
|
75
76
|
private lastWidth;
|
|
76
77
|
protected readonly classes: _angular_core.Signal<string>;
|
|
@@ -84,7 +85,7 @@ declare class Input {
|
|
|
84
85
|
/**
|
|
85
86
|
* `<mf-input-group>
|
|
86
87
|
* <span mfInputPrefix><span mfIcon>search</span></span>
|
|
87
|
-
* <input mfInput
|
|
88
|
+
* <input mfInput />
|
|
88
89
|
* <span mfInputSuffix><button type="button">×</button></span>
|
|
89
90
|
* </mf-input-group>`
|
|
90
91
|
*
|
|
@@ -92,15 +93,14 @@ declare class Input {
|
|
|
92
93
|
* yazdığı "kabuk" reçetesini (bkz. plan Faz 2 P0) `core/recipes.ts`'in
|
|
93
94
|
* `controlSurface`/`controlSize`'ına indirger — üç ayrı kopya yerine TEK
|
|
94
95
|
* kaynak. İçindeki `input[mfInput]` KENDİ border/shadow/outline'ını
|
|
95
|
-
*
|
|
96
|
-
* sağlıyor, "çift kenarlık" olmasın diye
|
|
97
|
-
* `wrapperClasses` notu, aynı gerekçe).
|
|
96
|
+
* kapatır — grubu DI ile algılayıp (bkz. `input.ts` `IN_GROUP_CLASSES`); kabuk
|
|
97
|
+
* bunları BURADAN sağlıyor, "çift kenarlık" olmasın diye. Tüketici sınıf yazmaz.
|
|
98
98
|
*
|
|
99
99
|
* Odak halkası `has-[:focus-visible]:outline` ile İÇ elemanlardan HERHANGİ
|
|
100
100
|
* biri klavye-odaklandığında TÜM kabuğun etrafında TEK bir halka çizer
|
|
101
101
|
* (`DateRangePicker`'ın iki input'u arasında geçişte "zıplayan" iki ayrı
|
|
102
|
-
* halka yerine) — `input[mfInput]`'un KENDİ `focus-visible:outline`'ı
|
|
103
|
-
*
|
|
102
|
+
* halka yerine) — `input[mfInput]`'un KENDİ `focus-visible:outline`'ı bu
|
|
103
|
+
* yüzden grup içinde otomatik kapanır, aksi halde İKİ halka üst üste binerdi.
|
|
104
104
|
*/
|
|
105
105
|
declare class InputGroup {
|
|
106
106
|
readonly size: _angular_core.InputSignal<MfSize>;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import * as i1 from '@angular/aria/menu';
|
|
3
|
-
import { Menu as Menu$1 } from '@angular/aria/menu';
|
|
3
|
+
import { MenuItem as MenuItem$1, Menu as Menu$1 } from '@angular/aria/menu';
|
|
4
|
+
import { MfPlacement } from '@mesgflow/ui-kit/core';
|
|
5
|
+
import * as i2 from '@angular/cdk/overlay';
|
|
4
6
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
5
7
|
import { VariantProps } from 'class-variance-authority';
|
|
6
|
-
import * as _angular_cdk_overlay from '@angular/cdk/overlay';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* `<mf-menu #menu="ngMenu" (itemSelected)="onSelect($event)"><button mfMenuItem value="a">A</button></mf-menu>`
|
|
@@ -24,12 +25,19 @@ declare class Menu {
|
|
|
24
25
|
static ɵcmp: i0.ɵɵComponentDeclaration<Menu, "mf-menu", ["mfMenu"], {}, {}, never, ["*"], true, [{ directive: typeof i1.Menu; inputs: { "wrap": "wrap"; "disabled": "disabled"; "typeaheadDelay": "typeaheadDelay"; }; outputs: { "itemSelected": "itemSelected"; }; }]>;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* `<button mfMenuItem value="delete">Sil</button>` — `mf-menu` içine konur.
|
|
30
|
+
*
|
|
31
|
+
* `checked` verilirse (true/false) öğe tek-seçimli bir grubun parçası olur:
|
|
32
|
+
* `role="menuitemradio"` + `aria-checked`, seçili öğenin sağında tik. Verilmezse
|
|
33
|
+
* (`undefined`) düz `menuitem` — eski davranış birebir.
|
|
34
|
+
*/
|
|
28
35
|
declare class MenuItem<V> {
|
|
29
|
-
|
|
36
|
+
readonly checked: i0.InputSignal<boolean | undefined>;
|
|
37
|
+
protected readonly ariaMenuItem: MenuItem$1<V>;
|
|
30
38
|
protected readonly classes: i0.Signal<string>;
|
|
31
39
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuItem<any>, never>;
|
|
32
|
-
static
|
|
40
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MenuItem<any>, "button[mfMenuItem], div[mfMenuItem]", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.MenuItem; inputs: { "value": "value"; "disabled": "disabled"; "id": "id"; }; outputs: {}; }]>;
|
|
33
41
|
}
|
|
34
42
|
|
|
35
43
|
/**
|
|
@@ -39,10 +47,58 @@ declare class MenuItem<V> {
|
|
|
39
47
|
* headless, konum bilgisi taşımıyor; `mf-popover`'ın `[open]="trigger.expanded()"`
|
|
40
48
|
* ile beslenmesi gerekiyor (bkz. playground'daki Menu demosu, `(closed)`
|
|
41
49
|
* çıktısında `trigger.close()` çağırarak iki state'i senkron tutma deseni).
|
|
50
|
+
*
|
|
51
|
+
* Konumlandırmayı kendisi yapan (ve `@angular/cdk` import'u gerektirmeyen) biçim
|
|
52
|
+
* için bkz. `MenuTriggerFor` — `[mfMenuTrigger]="menuRef"`. İkisinin seçicisi
|
|
53
|
+
* `[menu]` bağlamasının varlığıyla ayrışır, aynı elemanda asla ikisi birden eşleşmez.
|
|
42
54
|
*/
|
|
43
55
|
declare class MenuTrigger {
|
|
44
56
|
static ɵfac: i0.ɵɵFactoryDeclaration<MenuTrigger, never>;
|
|
45
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<MenuTrigger, "[mfMenuTrigger]", ["mfMenuTrigger"], {}, {}, never, never, true, [{ directive: typeof i1.MenuTrigger; inputs: { "menu": "menu"; "disabled": "disabled"; }; outputs: {}; }]>;
|
|
57
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MenuTrigger, "[mfMenuTrigger][menu]", ["mfMenuTrigger"], {}, {}, never, never, true, [{ directive: typeof i1.MenuTrigger; inputs: { "menu": "menu"; "disabled": "disabled"; }; outputs: {}; }]>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* `<button mfButton [mfMenuTrigger]="langMenu">TR</button>
|
|
61
|
+
* <mf-menu #langMenu="ngMenu" (itemSelected)="setLang($event)">…</mf-menu>`
|
|
62
|
+
*
|
|
63
|
+
* Tek düğmeli açılır menü — tüketici `@angular/cdk` import etmez, `mf-popover`
|
|
64
|
+
* sarmalamaz. Menü şablonda NORMAL yerinde durur (kapalıyken gizli), açılınca
|
|
65
|
+
* `DomPortal` ile overlay'e TAŞINIR ve tetiğe göre `placement`'a konumlanır;
|
|
66
|
+
* kapanınca çıkış animasyonundan sonra eski yerine döner — Angular'ın mantıksal
|
|
67
|
+
* ağacı (içerik projeksiyonu, `mfMenuItem` ↔ `mf-menu` DI bağı) hiç değişmez.
|
|
68
|
+
*
|
|
69
|
+
* `[mfMenuTrigger]`'a `mf-menu`'nün `ngMenu` referansı verilir (`mfMenu` DEĞİL —
|
|
70
|
+
* `@angular/aria`'nın tetikleyicisi kendi `Menu` örneğini ister). ARIA/klavye
|
|
71
|
+
* (`aria-haspopup`/`aria-expanded`, ok tuşları, typeahead, Enter/Boşluk seçer, Esc
|
|
72
|
+
* kapatıp odağı tetiğe döndürür) `@angular/aria/menu`'den; bu directive üstüne:
|
|
73
|
+
* seçimde kapanıp odağı tetiğe döndürme, dışarı tıklamada kapanma.
|
|
74
|
+
*
|
|
75
|
+
* Tetik aynı zamanda bir `CdkOverlayOrigin` (host directive) — ayrıca
|
|
76
|
+
* `cdkOverlayOrigin` yazılmaz.
|
|
77
|
+
*/
|
|
78
|
+
declare class MenuTriggerFor {
|
|
79
|
+
/** Menünün tetiğe göre konumu — `left`/`right` mantıksal (RTL'de çevrilir). */
|
|
80
|
+
readonly placement: i0.InputSignal<MfPlacement>;
|
|
81
|
+
private readonly aria;
|
|
82
|
+
private readonly overlay;
|
|
83
|
+
private readonly host;
|
|
84
|
+
private overlayRef?;
|
|
85
|
+
private exitTimer?;
|
|
86
|
+
/** Kapalıyken gizlenen (ve açıkken overlay'e taşınan) menü elemanı. */
|
|
87
|
+
private hiddenMenu?;
|
|
88
|
+
private selection?;
|
|
89
|
+
constructor();
|
|
90
|
+
/** Public — menüyü kapatır, odak yerinde kalır (aria `close()` ile aynı). */
|
|
91
|
+
close(): void;
|
|
92
|
+
/** Public — menüyü açar ve ilk öğeye odaklanır. */
|
|
93
|
+
open(): void;
|
|
94
|
+
private bindMenu;
|
|
95
|
+
private unbindMenu;
|
|
96
|
+
private attach;
|
|
97
|
+
private detach;
|
|
98
|
+
private ensureOverlay;
|
|
99
|
+
private positionStrategy;
|
|
100
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MenuTriggerFor, never>;
|
|
101
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MenuTriggerFor, "[mfMenuTrigger]:not([menu])", ["mfMenuTrigger"], { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.MenuTrigger; inputs: { "menu": "mfMenuTrigger"; "disabled": "disabled"; }; outputs: {}; }, { directive: typeof i2.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
|
|
46
102
|
}
|
|
47
103
|
|
|
48
104
|
declare const menuItemVariants: (props?: ({
|
|
@@ -83,10 +139,10 @@ declare class Menubar<V = string> {
|
|
|
83
139
|
readonly itemSelect: i0.OutputEmitterRef<V>;
|
|
84
140
|
protected readonly rendered: i0.WritableSignal<boolean>;
|
|
85
141
|
protected readonly submenus: i0.Signal<readonly Menu$1<V>[]>;
|
|
86
|
-
protected readonly positions:
|
|
142
|
+
protected readonly positions: i2.ConnectedPosition[];
|
|
87
143
|
static ɵfac: i0.ɵɵFactoryDeclaration<Menubar<any>, never>;
|
|
88
144
|
static ɵcmp: i0.ɵɵComponentDeclaration<Menubar<any>, "mf-menubar", ["mfMenubar"], { "menus": { "alias": "menus"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, never, never, true, never>;
|
|
89
145
|
}
|
|
90
146
|
|
|
91
|
-
export { Menu, MenuItem, MenuTrigger, Menubar, menuItemVariants };
|
|
147
|
+
export { Menu, MenuItem, MenuTrigger, MenuTriggerFor, Menubar, menuItemVariants };
|
|
92
148
|
export type { MenuItemActive, MenubarAction, MenubarMenu };
|
|
@@ -1,10 +1,26 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as i1 from '@angular/cdk/overlay';
|
|
2
2
|
import { CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
3
3
|
import * as _angular_core from '@angular/core';
|
|
4
|
+
import { ElementRef } from '@angular/core';
|
|
4
5
|
import { MfPlacement } from '@mesgflow/ui-kit/core';
|
|
5
6
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
6
7
|
import { VariantProps } from 'class-variance-authority';
|
|
7
8
|
|
|
9
|
+
/**
|
|
10
|
+
* `<button #trigger="mfPopoverOrigin" mfPopoverOrigin (click)="open.set(true)">…</button>
|
|
11
|
+
* <mf-popover [origin]="trigger" [(open)]="open">…</mf-popover>`
|
|
12
|
+
*
|
|
13
|
+
* `mf-popover`'ın `[origin]`'i için kitin kendi çapası — tüketici `@angular/cdk`
|
|
14
|
+
* import etmeden `cdkOverlayOrigin` ile aynı işi görür (host directive olarak onu
|
|
15
|
+
* taşır). `[origin]` ayrıca bir `HTMLElement`/`ElementRef` (`#ref` şablon
|
|
16
|
+
* referansı) de kabul eder.
|
|
17
|
+
*/
|
|
18
|
+
declare class PopoverOrigin {
|
|
19
|
+
readonly elementRef: ElementRef<HTMLElement>;
|
|
20
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PopoverOrigin, never>;
|
|
21
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PopoverOrigin, "[mfPopoverOrigin]", ["mfPopoverOrigin"], {}, {}, never, never, true, [{ directive: typeof i1.CdkOverlayOrigin; inputs: {}; outputs: {}; }]>;
|
|
22
|
+
}
|
|
23
|
+
|
|
8
24
|
/**
|
|
9
25
|
* Tüm `MfPlacement` değerleri — `left`/`right` MANTIKSAL (RTL'de çevrilir).
|
|
10
26
|
* `right-start`: tetikleyicinin ÜSTÜYLE hizalı (Sidebar daraltılmış nav
|
|
@@ -12,6 +28,12 @@ import { VariantProps } from 'class-variance-authority';
|
|
|
12
28
|
* beklenmedik yönde kaydırır), 8px boşlukla.
|
|
13
29
|
*/
|
|
14
30
|
type PopoverPlacement = MfPlacement;
|
|
31
|
+
/**
|
|
32
|
+
* `[origin]`'in kabul ettiği çapalar: kitin `mfPopoverOrigin`'i (tercih edilen —
|
|
33
|
+
* tüketici `@angular/cdk` import etmez), CDK'nın `cdkOverlayOrigin`'i (geriye
|
|
34
|
+
* uyumlu) ya da düz bir eleman (`#ref` şablon referansı / `ElementRef`).
|
|
35
|
+
*/
|
|
36
|
+
type PopoverOriginRef = PopoverOrigin | CdkOverlayOrigin | ElementRef<HTMLElement> | HTMLElement;
|
|
15
37
|
/**
|
|
16
38
|
* `<button cdkOverlayOrigin #trigger="cdkOverlayOrigin" (click)="open.set(true)">...</button>`
|
|
17
39
|
* `<mf-popover [origin]="trigger" [(open)]="open">...içerik (ng-content)...</mf-popover>`
|
|
@@ -25,11 +47,12 @@ type PopoverPlacement = MfPlacement;
|
|
|
25
47
|
* Popover'ın panel içeriğiyle nasıl kompoze edeceğine karar vermeli, ayrı ve
|
|
26
48
|
* her ekranın tarayıcıda tek tek doğrulanmasını gerektiren bir iş.
|
|
27
49
|
*
|
|
28
|
-
* `origin
|
|
29
|
-
*
|
|
50
|
+
* `origin`: kitin `mfPopoverOrigin` referansı (tüketici `@angular/cdk` import
|
|
51
|
+
* etmez), geriye uyumlu olarak `cdkOverlayOrigin` ya da düz bir eleman — bkz.
|
|
52
|
+
* `PopoverOriginRef`.
|
|
30
53
|
*/
|
|
31
54
|
declare class Popover {
|
|
32
|
-
readonly origin: _angular_core.InputSignal<
|
|
55
|
+
readonly origin: _angular_core.InputSignal<PopoverOriginRef>;
|
|
33
56
|
readonly open: _angular_core.ModelSignal<boolean>;
|
|
34
57
|
readonly placement: _angular_core.InputSignal<MfPlacement>;
|
|
35
58
|
readonly padding: _angular_core.InputSignal<"none" | "sm" | "md" | "lg" | null | undefined>;
|
|
@@ -53,7 +76,9 @@ declare class Popover {
|
|
|
53
76
|
protected readonly attached: _angular_core.WritableSignal<boolean>;
|
|
54
77
|
protected readonly closing: _angular_core.WritableSignal<boolean>;
|
|
55
78
|
private exitTimer?;
|
|
56
|
-
|
|
79
|
+
/** CDK'ya verilen çapa — `cdkConnectedOverlayOrigin` bir `ElementRef`'i doğrudan kabul eder. */
|
|
80
|
+
protected readonly anchor: _angular_core.Signal<ElementRef<HTMLElement>>;
|
|
81
|
+
protected readonly positions: _angular_core.Signal<i1.ConnectedPosition[]>;
|
|
57
82
|
protected readonly classes: _angular_core.Signal<string>;
|
|
58
83
|
constructor();
|
|
59
84
|
protected close(): void;
|
|
@@ -66,5 +91,5 @@ declare const popoverPanelVariants: (props?: ({
|
|
|
66
91
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
67
92
|
type PopoverPadding = VariantProps<typeof popoverPanelVariants>['padding'];
|
|
68
93
|
|
|
69
|
-
export { Popover, popoverPanelVariants };
|
|
70
|
-
export type { PopoverPadding, PopoverPlacement };
|
|
94
|
+
export { Popover, PopoverOrigin, popoverPanelVariants };
|
|
95
|
+
export type { PopoverOriginRef, PopoverPadding, PopoverPlacement };
|