@mesgflow/ui-kit 0.6.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/LICENSE +21 -0
- package/README.md +200 -0
- package/fesm2022/mesgflow-ui-kit-accordion.mjs +75 -0
- package/fesm2022/mesgflow-ui-kit-accordion.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-alert.mjs +165 -0
- package/fesm2022/mesgflow-ui-kit-alert.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-avatar-group.mjs +88 -0
- package/fesm2022/mesgflow-ui-kit-avatar-group.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-avatar.mjs +123 -0
- package/fesm2022/mesgflow-ui-kit-avatar.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-badge.mjs +68 -0
- package/fesm2022/mesgflow-ui-kit-badge.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-banner.mjs +111 -0
- package/fesm2022/mesgflow-ui-kit-banner.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-box-input.mjs +78 -0
- package/fesm2022/mesgflow-ui-kit-box-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-brand.mjs +120 -0
- package/fesm2022/mesgflow-ui-kit-brand.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs +84 -0
- package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-button-group.mjs +37 -0
- package/fesm2022/mesgflow-ui-kit-button-group.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-button.mjs +359 -0
- package/fesm2022/mesgflow-ui-kit-button.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-card.mjs +128 -0
- package/fesm2022/mesgflow-ui-kit-card.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-chart.mjs +538 -0
- package/fesm2022/mesgflow-ui-kit-chart.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs +45 -0
- package/fesm2022/mesgflow-ui-kit-checkbox.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-chip.mjs +123 -0
- package/fesm2022/mesgflow-ui-kit-chip.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-code-block.mjs +71 -0
- package/fesm2022/mesgflow-ui-kit-code-block.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-collapsible.mjs +89 -0
- package/fesm2022/mesgflow-ui-kit-collapsible.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs +210 -0
- package/fesm2022/mesgflow-ui-kit-color-picker.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-combobox.mjs +181 -0
- package/fesm2022/mesgflow-ui-kit-combobox.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-command.mjs +491 -0
- package/fesm2022/mesgflow-ui-kit-command.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs +92 -0
- package/fesm2022/mesgflow-ui-kit-context-menu.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-copy-button.mjs +167 -0
- package/fesm2022/mesgflow-ui-kit-copy-button.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-core.mjs +624 -0
- package/fesm2022/mesgflow-ui-kit-core.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs +643 -0
- package/fesm2022/mesgflow-ui-kit-date-picker.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-description-list.mjs +76 -0
- package/fesm2022/mesgflow-ui-kit-description-list.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-dialog.mjs +700 -0
- package/fesm2022/mesgflow-ui-kit-dialog.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-divider.mjs +62 -0
- package/fesm2022/mesgflow-ui-kit-divider.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs +126 -0
- package/fesm2022/mesgflow-ui-kit-dropzone.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-empty-state.mjs +70 -0
- package/fesm2022/mesgflow-ui-kit-empty-state.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-field.mjs +42 -0
- package/fesm2022/mesgflow-ui-kit-field.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-hover-card.mjs +171 -0
- package/fesm2022/mesgflow-ui-kit-hover-card.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs +258 -0
- package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-icon.mjs +174 -0
- package/fesm2022/mesgflow-ui-kit-icon.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-input.mjs +448 -0
- package/fesm2022/mesgflow-ui-kit-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-kbd.mjs +24 -0
- package/fesm2022/mesgflow-ui-kit-kbd.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-link.mjs +48 -0
- package/fesm2022/mesgflow-ui-kit-link.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-menu.mjs +105 -0
- package/fesm2022/mesgflow-ui-kit-menu.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-number-input.mjs +153 -0
- package/fesm2022/mesgflow-ui-kit-number-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-otp-input.mjs +164 -0
- package/fesm2022/mesgflow-ui-kit-otp-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-page-header.mjs +83 -0
- package/fesm2022/mesgflow-ui-kit-page-header.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-pagination.mjs +99 -0
- package/fesm2022/mesgflow-ui-kit-pagination.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-password-input.mjs +120 -0
- package/fesm2022/mesgflow-ui-kit-password-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-popover.mjs +213 -0
- package/fesm2022/mesgflow-ui-kit-popover.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-progress.mjs +82 -0
- package/fesm2022/mesgflow-ui-kit-progress.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-radio.mjs +123 -0
- package/fesm2022/mesgflow-ui-kit-radio.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-rating.mjs +116 -0
- package/fesm2022/mesgflow-ui-kit-rating.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-scroll-area.mjs +84 -0
- package/fesm2022/mesgflow-ui-kit-scroll-area.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-search-input.mjs +154 -0
- package/fesm2022/mesgflow-ui-kit-search-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs +95 -0
- package/fesm2022/mesgflow-ui-kit-segmented-control.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-select.mjs +227 -0
- package/fesm2022/mesgflow-ui-kit-select.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs +449 -0
- package/fesm2022/mesgflow-ui-kit-sidebar.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs +74 -0
- package/fesm2022/mesgflow-ui-kit-skeleton.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-slider.mjs +179 -0
- package/fesm2022/mesgflow-ui-kit-slider.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-spinner.mjs +67 -0
- package/fesm2022/mesgflow-ui-kit-spinner.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-splitter.mjs +97 -0
- package/fesm2022/mesgflow-ui-kit-splitter.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs +98 -0
- package/fesm2022/mesgflow-ui-kit-stat-tile.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-stepper.mjs +133 -0
- package/fesm2022/mesgflow-ui-kit-stepper.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-switch.mjs +73 -0
- package/fesm2022/mesgflow-ui-kit-switch.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-table.mjs +1783 -0
- package/fesm2022/mesgflow-ui-kit-table.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tabs.mjs +569 -0
- package/fesm2022/mesgflow-ui-kit-tabs.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs +138 -0
- package/fesm2022/mesgflow-ui-kit-tag-input.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs +53 -0
- package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-theming.mjs +1016 -0
- package/fesm2022/mesgflow-ui-kit-theming.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs +138 -0
- package/fesm2022/mesgflow-ui-kit-time-picker.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-timeline.mjs +91 -0
- package/fesm2022/mesgflow-ui-kit-timeline.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-toast.mjs +202 -0
- package/fesm2022/mesgflow-ui-kit-toast.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-toggle.mjs +243 -0
- package/fesm2022/mesgflow-ui-kit-toggle.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs +99 -0
- package/fesm2022/mesgflow-ui-kit-toolbar.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs +160 -0
- package/fesm2022/mesgflow-ui-kit-tooltip.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tour.mjs +272 -0
- package/fesm2022/mesgflow-ui-kit-tour.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tree-select.mjs +177 -0
- package/fesm2022/mesgflow-ui-kit-tree-select.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit-tree.mjs +82 -0
- package/fesm2022/mesgflow-ui-kit-tree.mjs.map +1 -0
- package/fesm2022/mesgflow-ui-kit.mjs +12851 -0
- package/fesm2022/mesgflow-ui-kit.mjs.map +1 -0
- package/package.json +374 -0
- package/preset.css +20 -0
- package/tokens/color.css +693 -0
- package/tokens/contrast.css +68 -0
- package/tokens/elevation.css +68 -0
- package/tokens/motion.css +277 -0
- package/tokens/radius.css +69 -0
- package/tokens/typography.css +127 -0
- package/tokens.css +41 -0
- package/types/mesgflow-ui-kit-accordion.d.ts +42 -0
- package/types/mesgflow-ui-kit-alert.d.ts +60 -0
- package/types/mesgflow-ui-kit-avatar-group.d.ts +28 -0
- package/types/mesgflow-ui-kit-avatar.d.ts +23 -0
- package/types/mesgflow-ui-kit-badge.d.ts +39 -0
- package/types/mesgflow-ui-kit-banner.d.ts +42 -0
- package/types/mesgflow-ui-kit-box-input.d.ts +45 -0
- package/types/mesgflow-ui-kit-brand.d.ts +48 -0
- package/types/mesgflow-ui-kit-breadcrumb.d.ts +26 -0
- package/types/mesgflow-ui-kit-button-group.d.ts +17 -0
- package/types/mesgflow-ui-kit-button.d.ts +75 -0
- package/types/mesgflow-ui-kit-card.d.ts +71 -0
- package/types/mesgflow-ui-kit-chart.d.ts +242 -0
- package/types/mesgflow-ui-kit-checkbox.d.ts +17 -0
- package/types/mesgflow-ui-kit-chip.d.ts +46 -0
- package/types/mesgflow-ui-kit-code-block.d.ts +56 -0
- package/types/mesgflow-ui-kit-collapsible.d.ts +39 -0
- package/types/mesgflow-ui-kit-color-picker.d.ts +78 -0
- package/types/mesgflow-ui-kit-combobox.d.ts +74 -0
- package/types/mesgflow-ui-kit-command.d.ts +185 -0
- package/types/mesgflow-ui-kit-context-menu.d.ts +40 -0
- package/types/mesgflow-ui-kit-copy-button.d.ts +47 -0
- package/types/mesgflow-ui-kit-core.d.ts +508 -0
- package/types/mesgflow-ui-kit-date-picker.d.ts +215 -0
- package/types/mesgflow-ui-kit-description-list.d.ts +23 -0
- package/types/mesgflow-ui-kit-dialog.d.ts +342 -0
- package/types/mesgflow-ui-kit-divider.d.ts +23 -0
- package/types/mesgflow-ui-kit-dropzone.d.ts +47 -0
- package/types/mesgflow-ui-kit-empty-state.d.ts +18 -0
- package/types/mesgflow-ui-kit-field.d.ts +26 -0
- package/types/mesgflow-ui-kit-hover-card.d.ts +52 -0
- package/types/mesgflow-ui-kit-i18n-tr.d.ts +14 -0
- package/types/mesgflow-ui-kit-icon.d.ts +76 -0
- package/types/mesgflow-ui-kit-input.d.ts +186 -0
- package/types/mesgflow-ui-kit-kbd.d.ts +9 -0
- package/types/mesgflow-ui-kit-link.d.ts +20 -0
- package/types/mesgflow-ui-kit-menu.d.ts +53 -0
- package/types/mesgflow-ui-kit-number-input.d.ts +55 -0
- package/types/mesgflow-ui-kit-otp-input.d.ts +44 -0
- package/types/mesgflow-ui-kit-page-header.d.ts +31 -0
- package/types/mesgflow-ui-kit-pagination.d.ts +50 -0
- package/types/mesgflow-ui-kit-password-input.d.ts +33 -0
- package/types/mesgflow-ui-kit-popover.d.ts +62 -0
- package/types/mesgflow-ui-kit-progress.d.ts +32 -0
- package/types/mesgflow-ui-kit-radio.d.ts +59 -0
- package/types/mesgflow-ui-kit-rating.d.ts +56 -0
- package/types/mesgflow-ui-kit-scroll-area.d.ts +27 -0
- package/types/mesgflow-ui-kit-search-input.d.ts +72 -0
- package/types/mesgflow-ui-kit-segmented-control.d.ts +54 -0
- package/types/mesgflow-ui-kit-select.d.ts +89 -0
- package/types/mesgflow-ui-kit-sidebar.d.ts +224 -0
- package/types/mesgflow-ui-kit-skeleton.d.ts +29 -0
- package/types/mesgflow-ui-kit-slider.d.ts +40 -0
- package/types/mesgflow-ui-kit-spinner.d.ts +31 -0
- package/types/mesgflow-ui-kit-splitter.d.ts +40 -0
- package/types/mesgflow-ui-kit-stat-tile.d.ts +54 -0
- package/types/mesgflow-ui-kit-stepper.d.ts +48 -0
- package/types/mesgflow-ui-kit-switch.d.ts +34 -0
- package/types/mesgflow-ui-kit-table.d.ts +805 -0
- package/types/mesgflow-ui-kit-tabs.d.ts +269 -0
- package/types/mesgflow-ui-kit-tag-input.d.ts +33 -0
- package/types/mesgflow-ui-kit-theme-switcher.d.ts +27 -0
- package/types/mesgflow-ui-kit-theming.d.ts +745 -0
- package/types/mesgflow-ui-kit-time-picker.d.ts +54 -0
- package/types/mesgflow-ui-kit-timeline.d.ts +27 -0
- package/types/mesgflow-ui-kit-toast.d.ts +94 -0
- package/types/mesgflow-ui-kit-toggle.d.ts +110 -0
- package/types/mesgflow-ui-kit-toolbar.d.ts +52 -0
- package/types/mesgflow-ui-kit-tooltip.d.ts +55 -0
- package/types/mesgflow-ui-kit-tour.d.ts +66 -0
- package/types/mesgflow-ui-kit-tree-select.d.ts +65 -0
- package/types/mesgflow-ui-kit-tree.d.ts +44 -0
- package/types/mesgflow-ui-kit.d.ts +5444 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import * as i1 from '@angular/aria/tabs';
|
|
3
|
+
import { TabList as TabList$1, TabPanel as TabPanel$1 } from '@angular/aria/tabs';
|
|
4
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
5
|
+
import { VariantProps } from 'class-variance-authority';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* `<button mfTab value="genel">Genel</button>` — bir `mf-tab-list` içine
|
|
9
|
+
* konur. ARIA/klavye/seçim davranışı `@angular/aria/tabs`'ın `Tab`
|
|
10
|
+
* pattern'inden `hostDirectives` ile geliyor (bkz. `tabs.ts` üstündeki not);
|
|
11
|
+
* bu directive sadece görsel katmanı ekliyor. `value`/`disabled`/`id`
|
|
12
|
+
* girdileri `hostDirectives`'in `inputs` listesiyle dışarı açıldı — tüketici
|
|
13
|
+
* doğrudan `[value]`/`[disabled]` bağlar, `ngTab` attribute'unu YAZMAZ.
|
|
14
|
+
*
|
|
15
|
+
* Varyant (`underline`/`card`) ebeveyn `mf-tab-list`'ten `inject()` ile
|
|
16
|
+
* okunuyor — `Tab` kendi varyant girdisini TAŞIMIYOR, tek kaynak listede.
|
|
17
|
+
*/
|
|
18
|
+
declare class Tab {
|
|
19
|
+
private readonly ariaTab;
|
|
20
|
+
private readonly tabList;
|
|
21
|
+
protected readonly classes: _angular_core.Signal<string>;
|
|
22
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tab, never>;
|
|
23
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Tab, "button[mfTab]", never, {}, {}, never, never, true, [{ directive: typeof i1.Tab; inputs: { "value": "value"; "disabled": "disabled"; "id": "id"; }; outputs: {}; }]>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* `<div mfTabScroller>` — taşan bir sekme şeridini kaydırılabilir yapar:
|
|
28
|
+
* native scrollbar'ı gizler, kenar "solma" maskesini (`mask-image`)
|
|
29
|
+
* kaydırılabilir yöne göre günceller, `canScrollStart`/`canScrollEnd`
|
|
30
|
+
* sinyallerini dışarı verir (ok butonlarının görünürlüğü için — bkz.
|
|
31
|
+
* `tab-list.html`/`tab-strip.html`, ikisi de bu directive'i paylaşıyor).
|
|
32
|
+
*
|
|
33
|
+
* `orientation` varsayılanı `'horizontal'` — `TabStrip` (üst sekme çubuğu)
|
|
34
|
+
* bunu hiç geçmez, davranışı DEĞİŞMEZ. Dikey bir grup rayı gerektiren
|
|
35
|
+
* tüketiciler `orientation="vertical"` geçer (bkz. `tab-list.ts`).
|
|
36
|
+
*
|
|
37
|
+
* `mask-image` template'te `[style.mask-image]` ile DEĞİL, doğrudan
|
|
38
|
+
* `style.setProperty` ile yazılıyor — Angular'ın stil binding sözdizimi
|
|
39
|
+
* tire içeren (`-webkit-`) property adlarını binding adı olarak kabul
|
|
40
|
+
* etmiyor, ikisini TEK yerden (burada) senkron yazmak için imperatif yol
|
|
41
|
+
* daha güvenli (bkz. Tooltip'in de DOM'a doğrudan yazdığı emsal).
|
|
42
|
+
*/
|
|
43
|
+
declare class TabScroller {
|
|
44
|
+
private readonly el;
|
|
45
|
+
readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">;
|
|
46
|
+
private readonly vertical;
|
|
47
|
+
readonly canScrollStart: _angular_core.WritableSignal<boolean>;
|
|
48
|
+
readonly canScrollEnd: _angular_core.WritableSignal<boolean>;
|
|
49
|
+
constructor();
|
|
50
|
+
scrollByDir(dir: -1 | 1): void;
|
|
51
|
+
scrollIntoViewIfNeeded(target: HTMLElement): void;
|
|
52
|
+
updateEdges(): void;
|
|
53
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabScroller, never>;
|
|
54
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<TabScroller, "[mfTabScroller]", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
type TabsVariant = 'underline' | 'card';
|
|
58
|
+
type TabsOrientation = 'horizontal' | 'vertical';
|
|
59
|
+
/**
|
|
60
|
+
* Bkz. `tab-list.ts`. `underline`'da ray AYRI, kayan bir `<span>` (JS ile
|
|
61
|
+
* konumlanır — bkz. `TabList.positionIndicator`); `card`'da ray HER sekmenin
|
|
62
|
+
* kendi `box-shadow`'unda yaşar (bkz. `tabVariants` compound'u), çünkü
|
|
63
|
+
* `card` görünümünde her sekme zaten kendi kenarlığıyla ayrık bir kutu —
|
|
64
|
+
* kayan tek bir gösterge o kutuların üstünden "kayarak" geçmezdi, doğal
|
|
65
|
+
* durmazdı. `relative` — kayan gösterge `absolute` konumlanıyor buna göre.
|
|
66
|
+
*
|
|
67
|
+
* `orientation` ekseni sol dikey grup rayı gerektiren ekranlar için eklendi —
|
|
68
|
+
* `@angular/aria/tabs`'ın ARIA/klavye desteği zaten yön-agnostik
|
|
69
|
+
* (`hostDirectives`'in `orientation` girdisi, bkz. `tab-list.ts`), eksik
|
|
70
|
+
* olan sadece bu görsel katmandı.
|
|
71
|
+
*/
|
|
72
|
+
declare const tabListVariants: (props?: ({
|
|
73
|
+
variant?: "underline" | "card" | null | undefined;
|
|
74
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
75
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
76
|
+
/**
|
|
77
|
+
* `selected`/`disabled` burada `aria-selected`/`aria-disabled` CSS
|
|
78
|
+
* seçicileriyle DEĞİL, `Tab`'ın kendi `computed()`'ıyla (bkz. `tab.ts`)
|
|
79
|
+
* okunan sinyal değerleriyle besleniyor — kod tabanındaki yerleşik desen
|
|
80
|
+
* (Select'in `optionClasses`, Table'ın `rowClasses`) TS'te hesaplanan koşullu
|
|
81
|
+
* class, CSS attribute-selector değil.
|
|
82
|
+
*/
|
|
83
|
+
declare const tabVariants: (props?: ({
|
|
84
|
+
variant?: "underline" | "card" | null | undefined;
|
|
85
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
86
|
+
selected?: boolean | null | undefined;
|
|
87
|
+
disabled?: boolean | null | undefined;
|
|
88
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
89
|
+
type TabSelected = VariantProps<typeof tabVariants>['selected'];
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* `<mf-tab-list [(selectedTab)]="active" variant="underline">…</mf-tab-list>`
|
|
93
|
+
* — `mf-tabs` içine konur, `mfTab` butonlarını sarar. ARIA/klavye
|
|
94
|
+
* (Ok tuşları/Home/End) `@angular/aria/tabs`'ın `TabList` pattern'inden
|
|
95
|
+
* `hostDirectives` ile geliyor (bkz. `tabs.ts` üstündeki not).
|
|
96
|
+
*
|
|
97
|
+
* İki premium detay burada yaşıyor:
|
|
98
|
+
* 1. **Kayan ray göstergesi** (`underline` varyantı) — aktif sekme
|
|
99
|
+
* değişince `positionIndicator()` DOM'dan `[aria-selected="true"]`
|
|
100
|
+
* elemanın `offsetLeft`/`offsetWidth`'ini (yatayda) ya da `offsetTop`/
|
|
101
|
+
* `offsetHeight`'ını (dikeyde) ölçüp göstergeyi kaydırıyor (emsal:
|
|
102
|
+
* `table-pagination.ts`'in odak restorasyonundaki `afterRenderEffect` +
|
|
103
|
+
* `viewChild(ElementRef)` deseni). `ResizeObserver` yeniden boyutlanmada
|
|
104
|
+
* (font yüklenmesi, viewport) yeniden ölçer. `card` varyantında AYRI bir
|
|
105
|
+
* gösterge YOK — ray her sekmenin kendi `box-shadow`'unda yaşıyor
|
|
106
|
+
* (bkz. tabs.variants.ts).
|
|
107
|
+
* 2. **Taşma yönetimi** — `mfTabScroller` (bkz. o dosya) kaydırma+kenar
|
|
108
|
+
* solma maskesi sağlıyor; ok butonları SADECE o yönde taşma varken
|
|
109
|
+
* render edilir. Aktif sekme değişince görünür alana kaydırılır.
|
|
110
|
+
*
|
|
111
|
+
* `tab-list.html`'deki sarmalayıcı `<div>`'in çapraz eksen hizalaması BİLEREK
|
|
112
|
+
* yöne göre koşullu: dikeyde (`flex-col`) çapraz eksen GENİŞLİK olur, `items-
|
|
113
|
+
* center` orada "çocukları raya GERME, kendi içerik genişliğine küçült" demek
|
|
114
|
+
* — bu, genişliğin `mfTabScroller`/`#row`/butonlara hiç iletilmemesine ve
|
|
115
|
+
* `truncate`'in (role-form.html'deki İngilizce grup adlarıyla canlı
|
|
116
|
+
* doğrulandı) hiç devreye girmeden ham/elipsissiz kırpılmasına yol açan
|
|
117
|
+
* GERÇEK bir bugdu. `items-stretch` çapraz ekseni doğru şekilde geriyor —
|
|
118
|
+
* bunu tekrar `items-center`'a "sadeleştirme".
|
|
119
|
+
*
|
|
120
|
+
* `orientation` girdisi `@angular/aria`'nın `TabList` pattern'inden
|
|
121
|
+
* `hostDirectives` ile geliyor (ARIA/klavye zaten yön-agnostik) — burada
|
|
122
|
+
* ikinci kez `input()` olarak TANIMLANMIYOR (NG2017, bkz. `TabPanel.
|
|
123
|
+
* preserveContent`'teki aynı kısıt), `ariaTabList.orientation()` üzerinden
|
|
124
|
+
* `protected readonly orientation` olarak okunuyor; `Tab` (tab.ts) bunu
|
|
125
|
+
* `variant()` ile aynı `inject()` deseniyle ebeveynden alıyor.
|
|
126
|
+
*/
|
|
127
|
+
declare class TabList {
|
|
128
|
+
readonly variant: _angular_core.InputSignal<TabsVariant>;
|
|
129
|
+
readonly scrollStartLabel: _angular_core.InputSignal<string | undefined>;
|
|
130
|
+
readonly scrollEndLabel: _angular_core.InputSignal<string | undefined>;
|
|
131
|
+
private readonly tabsLabels;
|
|
132
|
+
protected readonly effectiveScrollStartLabel: _angular_core.Signal<string>;
|
|
133
|
+
protected readonly effectiveScrollEndLabel: _angular_core.Signal<string>;
|
|
134
|
+
/** `mfTab` (bkz. tab.ts) varyantı buradan `inject()` ile okuyor — tek kaynak. */
|
|
135
|
+
protected readonly ariaTabList: TabList$1;
|
|
136
|
+
/** `Tab` (tab.ts) bunu `variant()` ile aynı `inject()` deseniyle okuyor — bu yüzden `public`. */
|
|
137
|
+
readonly orientation: _angular_core.Signal<"horizontal" | "vertical">;
|
|
138
|
+
protected readonly isVertical: _angular_core.Signal<boolean>;
|
|
139
|
+
protected readonly listClasses: _angular_core.Signal<string>;
|
|
140
|
+
protected readonly indicatorClasses: _angular_core.Signal<string>;
|
|
141
|
+
protected readonly scroller: _angular_core.Signal<TabScroller | undefined>;
|
|
142
|
+
protected readonly showStartArrow: _angular_core.Signal<boolean>;
|
|
143
|
+
protected readonly showEndArrow: _angular_core.Signal<boolean>;
|
|
144
|
+
private readonly rowEl;
|
|
145
|
+
private readonly indicatorEl;
|
|
146
|
+
constructor();
|
|
147
|
+
private positionIndicator;
|
|
148
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabList, never>;
|
|
149
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabList, "mf-tab-list", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "scrollStartLabel": { "alias": "scrollStartLabel"; "required": false; "isSignal": true; }; "scrollEndLabel": { "alias": "scrollEndLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.TabList; inputs: { "orientation": "orientation"; "wrap": "wrap"; "softDisabled": "softDisabled"; "focusMode": "focusMode"; "selectionMode": "selectionMode"; "disabled": "disabled"; "selectedTab": "selectedTab"; }; outputs: { "selectedTabChange": "selectedTabChange"; }; }]>;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* ```html
|
|
154
|
+
* <mf-tab-panel value="genel">
|
|
155
|
+
* <ng-template ngTabContent>İçerik…</ng-template>
|
|
156
|
+
* </mf-tab-panel>
|
|
157
|
+
* ```
|
|
158
|
+
*
|
|
159
|
+
* `ngTabContent` (`@angular/aria/tabs`'ın `TabContent`'i) doğrudan
|
|
160
|
+
* kullanılır — ayrı bir `appTabContent` sarmalayıcı YOK, tek katmanlı bir
|
|
161
|
+
* yapıya sarmalayıcı eklemenin karşılığı yok (bkz. `TabContent`'in kendi
|
|
162
|
+
* `DeferredContent` mekanizması, panel aktif olana kadar içeriği hiç
|
|
163
|
+
* oluşturmaz — lazy). `<ng-content />` bilerek TEK satır: panelin kendi
|
|
164
|
+
* `role="tabpanel"`/`tabindex`/`inert` host bağlamaları `hostDirectives`'ten
|
|
165
|
+
* geliyor, ekstra bir sarmalayıcıya gerek yok.
|
|
166
|
+
*
|
|
167
|
+
* `[class.hidden]` ELLE eklendi — `AriaTabPanel`'in `inert` attribute'u
|
|
168
|
+
* elemanı erişilebilirlik ağacından/etkileşimden çıkarıyor ama GÖRSEL olarak
|
|
169
|
+
* gizlemiyor (kütüphanenin kendi dokümantasyonu: "Proper styling is required
|
|
170
|
+
* for visual hiding" — gerçek bulgu, ui-kit'te pasif panellerin boş
|
|
171
|
+
* dolgulu kutular olarak GÖRÜNÜR kaldığı görüldü).
|
|
172
|
+
*/
|
|
173
|
+
declare class TabPanel {
|
|
174
|
+
protected readonly ariaTabPanel: TabPanel$1;
|
|
175
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabPanel, never>;
|
|
176
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabPanel, "mf-tab-panel", never, {}, {}, never, ["*"], true, [{ directive: typeof i1.TabPanel; inputs: { "value": "value"; "id": "id"; }; outputs: {}; }]>;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
interface TabStripItem {
|
|
180
|
+
key: string;
|
|
181
|
+
label: string;
|
|
182
|
+
icon?: string;
|
|
183
|
+
/** `false`/`undefined` ise kapatma butonu gösterilmez (ör. sabitlenmiş kök sekme). */
|
|
184
|
+
closable?: boolean;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* `<mf-tab-strip [items]="items()" [(activeKey)]="active" (close)="onClose($event)" />`
|
|
189
|
+
*
|
|
190
|
+
* `mf-tabs`/`mf-tab-list` (bkz. `tabs.ts`) ARIA `tabs` pattern'i PANEL
|
|
191
|
+
* varsayar (`aria-controls` gerçek bir `role=tabpanel`'e işaret eder) — bu
|
|
192
|
+
* şerit ise bir ROTA/DOKÜMAN şeridi: panel yok, içerik `router-outlet`'ten
|
|
193
|
+
* gelir, sekmeler kapatılabilir. Bu yüzden `@angular/aria/tabs`'ı DEĞİL,
|
|
194
|
+
* elle roving tabindex kullanıyor (emsal: `table-pagination.ts`'in
|
|
195
|
+
* `onNavKeydown`'ı) — ARIA `tab` rolü/`aria-selected` yine de elle
|
|
196
|
+
* uygulanıyor, sadece pattern motoru YOK.
|
|
197
|
+
*
|
|
198
|
+
* Ok tuşları SADECE odağı taşır (`activeKey` DEĞİŞMEZ) — her ok vuruşunda
|
|
199
|
+
* gerçek bir router navigasyonu tetiklemek (bkz. `TabsStore.activate`)
|
|
200
|
+
* pahalı/istenmeyen bir yan etki olurdu. `Enter`/`Space` ya da tık asıl
|
|
201
|
+
* seçimi commit eder. `Delete` odaktaki (kapatılabilir) sekmeyi kapatır.
|
|
202
|
+
*
|
|
203
|
+
* Kapatma butonu gerçek bir `<button>` ama tab elemanının kendisi `role=tab`
|
|
204
|
+
* taşıyan bir `<div>` — `mfTab`'ın (aria Tabs sisteminin) aksine burada bir
|
|
205
|
+
* `<button>` İÇİNE başka bir interaktif eleman GÖMÜLMÜYOR (geçersiz HTML
|
|
206
|
+
* olurdu, bkz. `table-filter-bar.html`'deki chip deseni — aynı gerekçeyle
|
|
207
|
+
* orada da İKİ KARDEŞ buton var, iç içe değil). Kapatma butonu bilerek
|
|
208
|
+
* `tabindex="-1"` — birincil roving-tabindex sırasının parçası değil (fare/
|
|
209
|
+
* dokunma birincil, `Delete` tuşu klavye eşdeğeri).
|
|
210
|
+
*
|
|
211
|
+
* Sağ tık menüsü TAMAMEN tüketiciye ait — bu bileşen belirli bir dropdown
|
|
212
|
+
* kütüphanesini BİLMİYOR (bkz. projects/ui-kit/README.md "Directive mi, component
|
|
213
|
+
* mi?" ruhu — dropdown-agnostik kalma), sadece ham `(itemContextMenu)` olayını
|
|
214
|
+
* yukarı veriyor.
|
|
215
|
+
*/
|
|
216
|
+
declare class TabStrip {
|
|
217
|
+
readonly items: _angular_core.InputSignal<TabStripItem[]>;
|
|
218
|
+
readonly activeKey: _angular_core.ModelSignal<string>;
|
|
219
|
+
/** Verilirse aktif sekmenin `aria-controls`'ü buna işaret eder (tek bir paylaşımlı içerik bölgesi — router-outlet). */
|
|
220
|
+
readonly contentId: _angular_core.InputSignal<string | null>;
|
|
221
|
+
readonly scrollStartLabel: _angular_core.InputSignal<string | undefined>;
|
|
222
|
+
readonly scrollEndLabel: _angular_core.InputSignal<string | undefined>;
|
|
223
|
+
/** Kapatma butonunun `aria-label`'ı — sekmenin kendi etiketiyle birleştirilir (ör. "Close: Roles"). */
|
|
224
|
+
readonly closeLabel: _angular_core.InputSignal<string | undefined>;
|
|
225
|
+
private readonly tabsLabels;
|
|
226
|
+
protected readonly effectiveScrollStartLabel: _angular_core.Signal<string>;
|
|
227
|
+
protected readonly effectiveScrollEndLabel: _angular_core.Signal<string>;
|
|
228
|
+
protected readonly effectiveCloseLabel: _angular_core.Signal<string>;
|
|
229
|
+
readonly close: _angular_core.OutputEmitterRef<string>;
|
|
230
|
+
readonly itemContextMenu: _angular_core.OutputEmitterRef<{
|
|
231
|
+
event: MouseEvent;
|
|
232
|
+
item: TabStripItem;
|
|
233
|
+
}>;
|
|
234
|
+
protected readonly focusedKey: _angular_core.WritableSignal<string | null>;
|
|
235
|
+
protected readonly scroller: _angular_core.Signal<TabScroller | undefined>;
|
|
236
|
+
protected readonly showStartArrow: _angular_core.Signal<boolean>;
|
|
237
|
+
protected readonly showEndArrow: _angular_core.Signal<boolean>;
|
|
238
|
+
private readonly rowEl;
|
|
239
|
+
protected tabClasses(item: TabStripItem): string;
|
|
240
|
+
protected tabIndexFor(item: TabStripItem): number;
|
|
241
|
+
protected select(key: string): void;
|
|
242
|
+
protected onCloseClick(event: MouseEvent, key: string): void;
|
|
243
|
+
protected onContextMenu(event: MouseEvent, item: TabStripItem): void;
|
|
244
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
245
|
+
private focusIndex;
|
|
246
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabStrip, never>;
|
|
247
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabStrip, "mf-tab-strip", ["mfTabStrip"], { "items": { "alias": "items"; "required": true; "isSignal": true; }; "activeKey": { "alias": "activeKey"; "required": true; "isSignal": true; }; "contentId": { "alias": "contentId"; "required": false; "isSignal": true; }; "scrollStartLabel": { "alias": "scrollStartLabel"; "required": false; "isSignal": true; }; "scrollEndLabel": { "alias": "scrollEndLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; }, { "activeKey": "activeKeyChange"; "close": "close"; "itemContextMenu": "itemContextMenu"; }, never, never, true, never>;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* `<mf-tabs><mf-tab-list>...</mf-tab-list><mf-tab-panel>...</mf-tab-panel></mf-tabs>`
|
|
252
|
+
*
|
|
253
|
+
* Salt bir kapsayıcı — tüm ARIA/klavye/state mantığı `@angular/aria/tabs`'ın
|
|
254
|
+
* `Tabs` pattern'inden `hostDirectives` ile ödünç alınıyor (bkz.
|
|
255
|
+
* projects/ui-kit/README.md "a11y checklist": "mümkün olduğunca `@angular/aria`...
|
|
256
|
+
* elle ARIA yazmak son çare"). `hostDirectives`, ana bileşenin (`mf-tabs`)
|
|
257
|
+
* host elemanına `Tabs`'ın DI sağlayıcısını (`TABS` token) ekliyor — alttaki
|
|
258
|
+
* `mf-tab-list`/`mf-tab-panel` bunu `inject()` ile bulup kendini
|
|
259
|
+
* kaydediyor, template'te `ngTabs` attribute'unu ELLE yazmaya gerek yok
|
|
260
|
+
* (`hostDirectives`'te selector yok sayılır, bkz. Angular directive
|
|
261
|
+
* composition API).
|
|
262
|
+
*/
|
|
263
|
+
declare class Tabs {
|
|
264
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tabs, never>;
|
|
265
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tabs, "mf-tabs", ["mfTabs"], {}, {}, never, ["*"], true, [{ directive: typeof i1.Tabs; inputs: {}; outputs: {}; }]>;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export { Tab, TabList, TabPanel, TabScroller, TabStrip, Tabs, tabListVariants, tabVariants };
|
|
269
|
+
export type { TabSelected, TabStripItem, TabsOrientation, TabsVariant };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
3
|
+
import { ValueAccessorBase } from '@mesgflow/ui-kit/core';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* `<mf-tag-input [(value)]="tags" placeholder="Etiket ekle..." />` — Enter
|
|
7
|
+
* veya virgül taslak metni bir etikete çevirir, her etiket kaldırılabilir
|
|
8
|
+
* bir `Chip` olarak görünür. Taslak BOŞKEN Backspace SON etiketi kaldırır
|
|
9
|
+
* (yaygın "tag input" klavye deseni — ayrı bir onay adımı gerekmez, geri
|
|
10
|
+
* alması kolay bir eylem). `InputGroup`'un `[wrap]="true"` moduyla (bkz.
|
|
11
|
+
* `input-group.ts`) etiketler çoğaldıkça kabuk BÜYÜR, taşırmaz.
|
|
12
|
+
*/
|
|
13
|
+
declare class TagInput extends ValueAccessorBase<string[]> implements ControlValueAccessor {
|
|
14
|
+
readonly value: _angular_core.ModelSignal<string[]>;
|
|
15
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
16
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
17
|
+
readonly hasError: _angular_core.InputSignal<boolean>;
|
|
18
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
19
|
+
readonly fullWidth: _angular_core.InputSignal<boolean>;
|
|
20
|
+
/** Verilmezse alttaki `Chip`'in kendi `MF_CHIP_LABELS` düşüşü kullanılır (bkz. `chip.ts`). */
|
|
21
|
+
readonly removeLabel: _angular_core.InputSignal<string | undefined>;
|
|
22
|
+
/** Aynı etiketin (büyük/küçük harf duyarsız) İKİ KEZ eklenmesini engeller. */
|
|
23
|
+
readonly unique: _angular_core.InputSignal<boolean>;
|
|
24
|
+
private readonly inputEl;
|
|
25
|
+
writeValue(value: string[]): void;
|
|
26
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
27
|
+
protected commitDraft(): void;
|
|
28
|
+
protected removeTag(tag: string): void;
|
|
29
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagInput, never>;
|
|
30
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagInput, "mf-tag-input", ["mfTagInput"], { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "hasError": { "alias": "hasError"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "removeLabel": { "alias": "removeLabel"; "required": false; "isSignal": true; }; "unique": { "alias": "unique"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { TagInput };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as _mesgflow_ui_kit_core from '@mesgflow/ui-kit/core';
|
|
2
|
+
import * as _angular_core from '@angular/core';
|
|
3
|
+
import { MfColorModeService, MfColorMode } from '@mesgflow/ui-kit/theming';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* `<mf-theme-switcher />` — açık / koyu / sistem. Durum `MfColorModeService`'te (kalıcı, sistem
|
|
7
|
+
* tercihini canlı izler); bu bileşen yalnızca görünüm.
|
|
8
|
+
*
|
|
9
|
+
* - `segmented` (varsayılan): kitin `ToggleGroup`'u (tek seçim, boşaltılamaz) — üç ikonlu düğme,
|
|
10
|
+
* her biri adlı, seçili olan `aria-pressed`.
|
|
11
|
+
* - `button`: tek ikon düğmesi, light → dark → system döngüsü; adı mevcut modu söyler
|
|
12
|
+
* ("Color theme: Dark"), ipucu da.
|
|
13
|
+
*/
|
|
14
|
+
declare class ThemeSwitcher {
|
|
15
|
+
readonly appearance: _angular_core.InputSignal<"segmented" | "button">;
|
|
16
|
+
readonly size: _angular_core.InputSignal<"sm" | "md">;
|
|
17
|
+
protected readonly colorMode: MfColorModeService;
|
|
18
|
+
protected readonly labels: _angular_core.Signal<_mesgflow_ui_kit_core.MfThemeSwitcherLabels>;
|
|
19
|
+
protected readonly icons: Record<MfColorMode, string>;
|
|
20
|
+
protected readonly modes: readonly MfColorMode[];
|
|
21
|
+
protected readonly cycleLabel: _angular_core.Signal<string>;
|
|
22
|
+
protected select(values: readonly string[]): void;
|
|
23
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeSwitcher, never>;
|
|
24
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeSwitcher, "mf-theme-switcher", ["mfThemeSwitcher"], { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export { ThemeSwitcher };
|