@mesgflow/ui-kit 0.10.0 → 0.11.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mesgflow/ui-kit",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
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",
package/tokens.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$description": "@mesgflow/ui-kit 0.9.0 design tokens (W3C DTCG). Generated from projects/ui-kit/styles/tokens/*.css by scripts/export-tokens.mjs — do not edit.",
2
+ "$description": "@mesgflow/ui-kit 0.11.1 design tokens (W3C DTCG). Generated from projects/ui-kit/styles/tokens/*.css by scripts/export-tokens.mjs — do not edit.",
3
3
  "primitives": {
4
4
  "color": {
5
5
  "primary": {
@@ -111,6 +111,8 @@ declare class DialogSurface {
111
111
  readonly maximizable: _angular_core.WritableSignal<boolean>;
112
112
  readonly draggable: _angular_core.WritableSignal<boolean>;
113
113
  readonly resizable: _angular_core.WritableSignal<boolean>;
114
+ /** `DialogOptions.disableClose` — `true` iken header'daki X çizilmez (bkz. `Dialog.closeVisible`). */
115
+ readonly disableClose: _angular_core.WritableSignal<boolean>;
114
116
  readonly maximized: _angular_core.WritableSignal<boolean>;
115
117
  /** Kullanıcı kenardan boyutlandırdıysa dolu; maximize/sheet'te yok sayılır. */
116
118
  readonly customSize: _angular_core.WritableSignal<DialogCustomSize | null>;
@@ -169,6 +171,19 @@ declare class Dialog {
169
171
  * `false`: yalnızca `close` yayınlanır — kapanışı tamamen tüketici yönetir.
170
172
  */
171
173
  readonly autoClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
174
+ /**
175
+ * Kapat (X) düğmesinin erişilebilir adı — verilmezse `MfLabels.dialog.close`
176
+ * ("Close dialog" / "Pencereyi kapat"). İçerikte aynı adlı bir birincil eylem
177
+ * varsa (ör. "İki adımlı doğrulamayı kapat" diyaloğunun "Kapat"ı) iki düğme
178
+ * ekran okuyucuda ayrışsın diye.
179
+ */
180
+ readonly closeLabel: _angular_core.InputSignal<string | undefined>;
181
+ /**
182
+ * X düğmesi çizilsin mi. Verilmezse `DialogOptions.disableClose`'un tersi —
183
+ * Escape/backdrop'la kapanmayan bir dialog'da X de yoktur (kullanıcı bir
184
+ * eylem seçmek zorunda).
185
+ */
186
+ readonly showClose: _angular_core.InputSignal<boolean | undefined>;
172
187
  readonly close: _angular_core.OutputEmitterRef<void>;
173
188
  protected readonly surface: DialogSurface;
174
189
  protected readonly labels: _angular_core.Signal<_mesgflow_ui_kit_core.MfDialogLabels>;
@@ -185,6 +200,7 @@ declare class Dialog {
185
200
  protected readonly dragEnabled: _angular_core.Signal<boolean>;
186
201
  protected readonly resizeHandleVisible: _angular_core.Signal<boolean>;
187
202
  /** Drawer zaten tam yükseklik — büyütme düğmesinin anlamı yok, `surface.maximizable()` `true` olsa bile gizlenir. */
203
+ protected readonly closeVisible: _angular_core.Signal<boolean>;
188
204
  protected readonly maximizeVisible: _angular_core.Signal<boolean>;
189
205
  protected readonly hostClasses: _angular_core.Signal<string>;
190
206
  protected readonly customWidth: _angular_core.Signal<number | undefined>;
@@ -209,7 +225,7 @@ declare class Dialog {
209
225
  */
210
226
  protected requestSubmit(): void;
211
227
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Dialog, never>;
212
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dialog, "mf-dialog", ["mfDialog"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fillBody": { "alias": "fillBody"; "required": false; "isSignal": true; }; "autoClose": { "alias": "autoClose"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, ["[dialog-header]", "*", "[dialog-footer]"], true, [{ directive: typeof i1.CdkDrag; inputs: {}; outputs: {}; }]>;
228
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dialog, "mf-dialog", ["mfDialog"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "fillBody": { "alias": "fillBody"; "required": false; "isSignal": true; }; "autoClose": { "alias": "autoClose"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "showClose": { "alias": "showClose"; "required": false; "isSignal": true; }; }, { "close": "close"; }, never, ["[dialog-header]", "*", "[dialog-footer]"], true, [{ directive: typeof i1.CdkDrag; inputs: {}; outputs: {}; }]>;
213
229
  }
214
230
 
215
231
  /** `open` → (`close()` çağrıldı, çıkış animasyonu oynuyor) `closing` → (dispose edildi) `closed`. */
@@ -26,6 +26,8 @@ declare class Drawer {
26
26
  /** `true` ise Escape/backdrop kapatmaz — yalnızca programatik `open.set(false)`. */
27
27
  readonly disableClose: _angular_core.InputSignalWithTransform<boolean, unknown>;
28
28
  readonly sheetOnMobile: _angular_core.InputSignalWithTransform<boolean, unknown>;
29
+ /** Kapat (X) düğmesinin erişilebilir adı — bkz. `Dialog.closeLabel`. `disableClose` iken X çizilmez. */
30
+ readonly closeLabel: _angular_core.InputSignal<string | undefined>;
29
31
  /** Görünür başlık yoksa ekran okuyucu için ad. */
30
32
  readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
31
33
  /** Kapanış tamamlandığında (animasyon dahil). */
@@ -38,7 +40,7 @@ declare class Drawer {
38
40
  hide(): void;
39
41
  private show;
40
42
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Drawer, never>;
41
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Drawer, "mf-drawer", ["mfDrawer"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "sheetOnMobile": { "alias": "sheetOnMobile"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["*", "[drawer-footer]"], true, never>;
43
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Drawer, "mf-drawer", ["mfDrawer"], { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disableClose": { "alias": "disableClose"; "required": false; "isSignal": true; }; "sheetOnMobile": { "alias": "sheetOnMobile"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "closed": "closed"; }, never, ["*", "[drawer-footer]"], true, never>;
42
44
  }
43
45
 
44
46
  export { Drawer };
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import * as i1 from '@angular/aria/menu';
3
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';
6
4
  import * as class_variance_authority_types from 'class-variance-authority/types';
7
5
  import { VariantProps } from 'class-variance-authority';
6
+ import { MfPlacement } from '@mesgflow/ui-kit/core';
7
+ import * as i2 from '@angular/cdk/overlay';
8
8
 
9
9
  /**
10
10
  * `<mf-menu #menu="ngMenu" (itemSelected)="onSelect($event)"><button mfMenuItem value="a">A</button></mf-menu>`
@@ -25,19 +25,32 @@ declare class Menu {
25
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"; }; }]>;
26
26
  }
27
27
 
28
+ declare const menuItemVariants: (props?: ({
29
+ tone?: "neutral" | "danger" | null | undefined;
30
+ active?: boolean | null | undefined;
31
+ disabled?: boolean | null | undefined;
32
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
33
+ type MenuItemActive = VariantProps<typeof menuItemVariants>['active'];
34
+ type MenuItemTone = NonNullable<VariantProps<typeof menuItemVariants>['tone']>;
35
+
28
36
  /**
29
37
  * `<button mfMenuItem value="delete">Sil</button>` — `mf-menu` içine konur.
30
38
  *
31
39
  * `checked` verilirse (true/false) öğe tek-seçimli bir grubun parçası olur:
32
40
  * `role="menuitemradio"` + `aria-checked`, seçili öğenin sağında tik. Verilmezse
33
41
  * (`undefined`) düz `menuitem` — eski davranış birebir.
42
+ *
43
+ * `tone="danger"` tehlikeli eylemi ("Çıkış yap", "Üyeyi çıkar") ayrıştırır: metin
44
+ * `text-danger`, etkin/hover `bg-danger-tint text-danger-tint-fg`; ikon slotu aynı
45
+ * rengi (`currentColor`) miras alır. Yalnızca görsel — ARIA rolü değişmez.
34
46
  */
35
47
  declare class MenuItem<V> {
36
48
  readonly checked: i0.InputSignal<boolean | undefined>;
49
+ readonly tone: i0.InputSignal<MenuItemTone>;
37
50
  protected readonly ariaMenuItem: MenuItem$1<V>;
38
51
  protected readonly classes: i0.Signal<string>;
39
52
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuItem<any>, never>;
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: {}; }]>;
53
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuItem<any>, "button[mfMenuItem], div[mfMenuItem]", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.MenuItem; inputs: { "value": "value"; "disabled": "disabled"; "id": "id"; }; outputs: {}; }]>;
41
54
  }
42
55
 
43
56
  /**
@@ -101,12 +114,6 @@ declare class MenuTriggerFor {
101
114
  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: {}; }]>;
102
115
  }
103
116
 
104
- declare const menuItemVariants: (props?: ({
105
- active?: boolean | null | undefined;
106
- disabled?: boolean | null | undefined;
107
- } & class_variance_authority_types.ClassProp) | undefined) => string;
108
- type MenuItemActive = VariantProps<typeof menuItemVariants>['active'];
109
-
110
117
  interface MenubarAction<V = string> {
111
118
  label: string;
112
119
  value: V;
@@ -145,4 +152,4 @@ declare class Menubar<V = string> {
145
152
  }
146
153
 
147
154
  export { Menu, MenuItem, MenuTrigger, MenuTriggerFor, Menubar, menuItemVariants };
148
- export type { MenuItemActive, MenubarAction, MenubarMenu };
155
+ export type { MenuItemActive, MenuItemTone, MenubarAction, MenubarMenu };
@@ -1,6 +1,7 @@
1
1
  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
+ import { BadgeTone } from '@mesgflow/ui-kit/badge';
4
5
  import { cn } from '@mesgflow/ui-kit/core';
5
6
 
6
7
  /**
@@ -33,7 +34,10 @@ import { cn } from '@mesgflow/ui-kit/core';
33
34
  declare const sidebarVariants: (props?: ({
34
35
  collapsed?: boolean | null | undefined;
35
36
  appearance?: "chrome" | "brand" | "brand-light" | null | undefined;
37
+ embedded?: boolean | null | undefined;
36
38
  } & class_variance_authority_types.ClassProp) | undefined) => string;
39
+ /** `[brand]` yuvasının tenant switcher'a göre yeri — bkz. `Sidebar.brandPlacement`. */
40
+ type SidebarBrandPlacement = 'replace' | 'above';
37
41
  /**
38
42
  * Nav satırı (leaf veya parent-toggle) — `rounded-sm`(6px, menü öğesi kademesi,
39
43
  * bkz. styles.css radius notu), panel değil kontrol. `border-s-2 border-s-
@@ -66,6 +70,17 @@ interface SidebarNavItem {
66
70
  interface SidebarTenant {
67
71
  id: string;
68
72
  name: string;
73
+ /**
74
+ * Adın altında soluk ikincil satır (panelde ve genişken tetikte) — ör. "Kimlik: acme-2";
75
+ * aynı adlı kiracıları ayrıştırır. Erişilebilir ad "ad, açıklama" olur.
76
+ */
77
+ description?: string;
78
+ /** Paneldeki satırın sonunda durum rozeti — ör. "Hazırlanıyor". */
79
+ badge?: string;
80
+ /** `badge`'in tonu (varsayılan `neutral`). */
81
+ badgeTone?: BadgeTone;
82
+ /** Seçilemez (ör. hazırlanamadı) — satır `aria-disabled`, tık/Enter yok sayılır. */
83
+ disabled?: boolean;
69
84
  }
70
85
  interface SidebarUser {
71
86
  name: string;
@@ -113,6 +128,21 @@ declare class Sidebar {
113
128
  * TORUNU olmadığından her zaman katı `chrome` kalır.
114
129
  */
115
130
  readonly appearance: _angular_core.InputSignal<SidebarAppearance>;
131
+ /**
132
+ * `[brand]` yuvasının tenant switcher'la ilişkisi. `'replace'` (varsayılan,
133
+ * eski davranış): marka YALNIZ `tenants` boşken çizilir, switcher onun
134
+ * yerine geçer. `'above'`: marka her zaman üstte, switcher (liste doluysa)
135
+ * altında. Daraltılmışken yalnız logo için `<mf-brand [showLabel]="!collapsed()">`
136
+ * — ad görsel olarak gizlenir, erişilebilir ad korunur.
137
+ */
138
+ readonly brandPlacement: _angular_core.InputSignal<SidebarBrandPlacement>;
139
+ /**
140
+ * `true`: bir çekmece (`mf-drawer`) gibi kendi yüzeyi olan bir kabın İÇİNDE —
141
+ * dış kenarlık ve `chrome` zemini çizilmez (çift çerçeve olmasın), genişlik
142
+ * kabı doldurur. Marka görünümleri (`brand`/`brand-light`) kontrast için
143
+ * kendi zeminini korur.
144
+ */
145
+ readonly embedded: _angular_core.InputSignalWithTransform<boolean, unknown>;
116
146
  /** Verilmezse `MF_SIDEBAR_LABELS`'a düşer — `SidebarTenantSwitcher`/`SidebarUserMenu`'nün KENDİ etiketleri artık AYRICA buradan prop-drilling YAPILMIYOR, ikisi de `MF_SIDEBAR_LABELS`'ı doğrudan inject ediyor. */
117
147
  readonly collapseLabel: _angular_core.InputSignal<string | undefined>;
118
148
  readonly expandLabel: _angular_core.InputSignal<string | undefined>;
@@ -126,6 +156,7 @@ declare class Sidebar {
126
156
  protected readonly effectiveExpandLabel: _angular_core.Signal<string>;
127
157
  protected readonly effectiveNavAriaLabel: _angular_core.Signal<string>;
128
158
  protected readonly rootClasses: _angular_core.Signal<string>;
159
+ protected readonly showBrandRow: _angular_core.Signal<boolean>;
129
160
  /** Genişkenken hangi gruplar açık — her grup BAĞIMSIZ açılır/kapanır (akordeon değil, kullanıcı kararı). `model()` — tüketici okuyabilir/yazabilir (ör. "hepsini aç" bir buton). */
130
161
  readonly expandedIds: _angular_core.ModelSignal<ReadonlySet<string>>;
131
162
  /**
@@ -143,7 +174,7 @@ declare class Sidebar {
143
174
  protected onTenantSelect(tenant: SidebarTenant): void;
144
175
  protected toggleCollapse(): void;
145
176
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Sidebar, never>;
146
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Sidebar, "mf-sidebar", ["mfSidebar"], { "tenants": { "alias": "tenants"; "required": false; "isSignal": true; }; "activeTenantId": { "alias": "activeTenantId"; "required": false; "isSignal": true; }; "navItems": { "alias": "navItems"; "required": true; "isSignal": true; }; "activeItemId": { "alias": "activeItemId"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "showUserMenu": { "alias": "showUserMenu"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "showCollapseToggle": { "alias": "showCollapseToggle"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; "navAriaLabel": { "alias": "navAriaLabel"; "required": false; "isSignal": true; }; "expandedIds": { "alias": "expandedIds"; "required": false; "isSignal": true; }; "autoExpandActive": { "alias": "autoExpandActive"; "required": false; "isSignal": true; }; }, { "activeTenantId": "activeTenantIdChange"; "activeItemId": "activeItemIdChange"; "collapsed": "collapsedChange"; "tenantChange": "tenantChange"; "itemClick": "itemClick"; "profileClick": "profileClick"; "expandedIds": "expandedIdsChange"; }, never, ["[brand]"], true, never>;
177
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Sidebar, "mf-sidebar", ["mfSidebar"], { "tenants": { "alias": "tenants"; "required": false; "isSignal": true; }; "activeTenantId": { "alias": "activeTenantId"; "required": false; "isSignal": true; }; "navItems": { "alias": "navItems"; "required": true; "isSignal": true; }; "activeItemId": { "alias": "activeItemId"; "required": false; "isSignal": true; }; "user": { "alias": "user"; "required": false; "isSignal": true; }; "showUserMenu": { "alias": "showUserMenu"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "showCollapseToggle": { "alias": "showCollapseToggle"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "brandPlacement": { "alias": "brandPlacement"; "required": false; "isSignal": true; }; "embedded": { "alias": "embedded"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; "navAriaLabel": { "alias": "navAriaLabel"; "required": false; "isSignal": true; }; "expandedIds": { "alias": "expandedIds"; "required": false; "isSignal": true; }; "autoExpandActive": { "alias": "autoExpandActive"; "required": false; "isSignal": true; }; }, { "activeTenantId": "activeTenantIdChange"; "activeItemId": "activeItemIdChange"; "collapsed": "collapsedChange"; "tenantChange": "tenantChange"; "itemClick": "itemClick"; "profileClick": "profileClick"; "expandedIds": "expandedIdsChange"; }, never, ["[brand]"], true, never>;
147
178
  }
148
179
 
149
180
  /**
@@ -190,6 +221,14 @@ declare class SidebarTenantSwitcher {
190
221
  private readonly sidebarLabels;
191
222
  protected readonly effectiveLabel: _angular_core.Signal<string>;
192
223
  protected readonly effectiveNoTenantsLabel: _angular_core.Signal<string>;
224
+ /**
225
+ * Tetiğin erişilebilir adı. `description` varken görsel ikinci satır eylem
226
+ * etiketinin ("Switch tenant") yerini alır — ad eylemi söylemezdi; bu yüzden
227
+ * "{eylem}: {ad}" verilir, açıklama `aria-describedby` ile okunur. Açıklama
228
+ * yoksa eski davranış: genişken içerikten türer ("{ad} {eylem}"), daraltılmışken ad.
229
+ */
230
+ protected readonly triggerAriaLabel: _angular_core.Signal<string | null>;
231
+ protected readonly descriptionId: string;
193
232
  protected readonly cn: typeof cn;
194
233
  protected readonly open: _angular_core.WritableSignal<boolean>;
195
234
  protected readonly highlighted: _angular_core.WritableSignal<number>;
@@ -197,6 +236,8 @@ declare class SidebarTenantSwitcher {
197
236
  protected toggle(): void;
198
237
  protected close(): void;
199
238
  protected select(tenant: SidebarTenant): void;
239
+ /** "Ad, açıklama[, rozet]" — yalnızca ek alan varsa; yoksa `null` (içerikten türetilir, eski davranış). */
240
+ protected optionAriaLabel(tenant: SidebarTenant): string | null;
200
241
  protected optionClasses(tenant: SidebarTenant, index: number): string;
201
242
  protected onTriggerKeydown(event: KeyboardEvent): void;
202
243
  protected onPanelKeydown(event: KeyboardEvent): void;
@@ -221,4 +262,4 @@ declare class SidebarUserMenu {
221
262
  }
222
263
 
223
264
  export { Sidebar, SidebarNavItemRow, SidebarTenantSwitcher, SidebarUserMenu, sidebarNavItemVariants, sidebarVariants };
224
- export type { SidebarAppearance, SidebarCollapsedVariant, SidebarNavItem, SidebarTenant, SidebarUser };
265
+ export type { SidebarAppearance, SidebarBrandPlacement, SidebarCollapsedVariant, SidebarNavItem, SidebarTenant, SidebarUser };
@@ -360,11 +360,11 @@ declare class Table<T> {
360
360
  private readonly host;
361
361
  private readonly scroller;
362
362
  private readonly idPrefix;
363
- protected readonly pageState: _angular_core.WritableSignal<PageRequest>;
364
- protected readonly sortState: _angular_core.WritableSignal<SortDescriptor[]>;
365
- protected readonly searchTerm: _angular_core.WritableSignal<string>;
366
- protected readonly appliedFilters: _angular_core.WritableSignal<AppliedFilter[]>;
367
- protected readonly filterLogic: _angular_core.WritableSignal<FilterLogic>;
363
+ readonly page: _angular_core.ModelSignal<PageRequest>;
364
+ readonly sort: _angular_core.ModelSignal<SortDescriptor[]>;
365
+ readonly search: _angular_core.ModelSignal<string>;
366
+ readonly filters: _angular_core.ModelSignal<AppliedFilter[]>;
367
+ readonly filterLogic: _angular_core.ModelSignal<FilterLogic>;
368
368
  protected readonly selectedRows: _angular_core.WritableSignal<Map<unknown, T>>;
369
369
  protected readonly hiddenColumns: _angular_core.WritableSignal<Set<string>>;
370
370
  protected readonly columnsMenuOpen: _angular_core.WritableSignal<boolean>;
@@ -509,7 +509,7 @@ declare class Table<T> {
509
509
  private searchGroupFor;
510
510
  private emitQuery;
511
511
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Table<any>, never>;
512
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Table<any>, "mf-table", ["mfTable"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "clientSide": { "alias": "clientSide"; "required": false; "isSignal": true; }; "resizableColumns": { "alias": "resizableColumns"; "required": false; "isSignal": true; }; "columnWidths": { "alias": "columnWidths"; "required": false; "isSignal": true; }; "expandedRowTemplate": { "alias": "expandedRowTemplate"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "virtualHeight": { "alias": "virtualHeight"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; }, { "density": "densityChange"; "columnWidths": "columnWidthsChange"; "queryChange": "queryChange"; "selectionChange": "selectionChange"; "edit": "edit"; "delete": "delete"; "rowDblClick": "rowDblClick"; "rowExpandedChange": "rowExpandedChange"; }, never, ["[tableActions]", "[tableBulkActions]"], true, never>;
512
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Table<any>, "mf-table", ["mfTable"], { "title": { "alias": "title"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": true; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "clientSide": { "alias": "clientSide"; "required": false; "isSignal": true; }; "resizableColumns": { "alias": "resizableColumns"; "required": false; "isSignal": true; }; "columnWidths": { "alias": "columnWidths"; "required": false; "isSignal": true; }; "expandedRowTemplate": { "alias": "expandedRowTemplate"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "virtualHeight": { "alias": "virtualHeight"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "filterLogic": { "alias": "filterLogic"; "required": false; "isSignal": true; }; }, { "density": "densityChange"; "columnWidths": "columnWidthsChange"; "queryChange": "queryChange"; "selectionChange": "selectionChange"; "edit": "edit"; "delete": "delete"; "rowDblClick": "rowDblClick"; "rowExpandedChange": "rowExpandedChange"; "page": "pageChange"; "sort": "sortChange"; "search": "searchChange"; "filters": "filtersChange"; "filterLogic": "filterLogicChange"; }, never, ["[tableActions]", "[tableBulkActions]"], true, never>;
513
513
  }
514
514
 
515
515
  declare function matchesFilterGroup<T>(row: T, group: FilterGroup | undefined): boolean;