@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.
Files changed (230) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +200 -0
  3. package/fesm2022/mesgflow-ui-kit-accordion.mjs +75 -0
  4. package/fesm2022/mesgflow-ui-kit-accordion.mjs.map +1 -0
  5. package/fesm2022/mesgflow-ui-kit-alert.mjs +165 -0
  6. package/fesm2022/mesgflow-ui-kit-alert.mjs.map +1 -0
  7. package/fesm2022/mesgflow-ui-kit-avatar-group.mjs +88 -0
  8. package/fesm2022/mesgflow-ui-kit-avatar-group.mjs.map +1 -0
  9. package/fesm2022/mesgflow-ui-kit-avatar.mjs +123 -0
  10. package/fesm2022/mesgflow-ui-kit-avatar.mjs.map +1 -0
  11. package/fesm2022/mesgflow-ui-kit-badge.mjs +68 -0
  12. package/fesm2022/mesgflow-ui-kit-badge.mjs.map +1 -0
  13. package/fesm2022/mesgflow-ui-kit-banner.mjs +111 -0
  14. package/fesm2022/mesgflow-ui-kit-banner.mjs.map +1 -0
  15. package/fesm2022/mesgflow-ui-kit-box-input.mjs +78 -0
  16. package/fesm2022/mesgflow-ui-kit-box-input.mjs.map +1 -0
  17. package/fesm2022/mesgflow-ui-kit-brand.mjs +120 -0
  18. package/fesm2022/mesgflow-ui-kit-brand.mjs.map +1 -0
  19. package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs +84 -0
  20. package/fesm2022/mesgflow-ui-kit-breadcrumb.mjs.map +1 -0
  21. package/fesm2022/mesgflow-ui-kit-button-group.mjs +37 -0
  22. package/fesm2022/mesgflow-ui-kit-button-group.mjs.map +1 -0
  23. package/fesm2022/mesgflow-ui-kit-button.mjs +359 -0
  24. package/fesm2022/mesgflow-ui-kit-button.mjs.map +1 -0
  25. package/fesm2022/mesgflow-ui-kit-card.mjs +128 -0
  26. package/fesm2022/mesgflow-ui-kit-card.mjs.map +1 -0
  27. package/fesm2022/mesgflow-ui-kit-chart.mjs +538 -0
  28. package/fesm2022/mesgflow-ui-kit-chart.mjs.map +1 -0
  29. package/fesm2022/mesgflow-ui-kit-checkbox.mjs +45 -0
  30. package/fesm2022/mesgflow-ui-kit-checkbox.mjs.map +1 -0
  31. package/fesm2022/mesgflow-ui-kit-chip.mjs +123 -0
  32. package/fesm2022/mesgflow-ui-kit-chip.mjs.map +1 -0
  33. package/fesm2022/mesgflow-ui-kit-code-block.mjs +71 -0
  34. package/fesm2022/mesgflow-ui-kit-code-block.mjs.map +1 -0
  35. package/fesm2022/mesgflow-ui-kit-collapsible.mjs +89 -0
  36. package/fesm2022/mesgflow-ui-kit-collapsible.mjs.map +1 -0
  37. package/fesm2022/mesgflow-ui-kit-color-picker.mjs +210 -0
  38. package/fesm2022/mesgflow-ui-kit-color-picker.mjs.map +1 -0
  39. package/fesm2022/mesgflow-ui-kit-combobox.mjs +181 -0
  40. package/fesm2022/mesgflow-ui-kit-combobox.mjs.map +1 -0
  41. package/fesm2022/mesgflow-ui-kit-command.mjs +491 -0
  42. package/fesm2022/mesgflow-ui-kit-command.mjs.map +1 -0
  43. package/fesm2022/mesgflow-ui-kit-context-menu.mjs +92 -0
  44. package/fesm2022/mesgflow-ui-kit-context-menu.mjs.map +1 -0
  45. package/fesm2022/mesgflow-ui-kit-copy-button.mjs +167 -0
  46. package/fesm2022/mesgflow-ui-kit-copy-button.mjs.map +1 -0
  47. package/fesm2022/mesgflow-ui-kit-core.mjs +624 -0
  48. package/fesm2022/mesgflow-ui-kit-core.mjs.map +1 -0
  49. package/fesm2022/mesgflow-ui-kit-date-picker.mjs +643 -0
  50. package/fesm2022/mesgflow-ui-kit-date-picker.mjs.map +1 -0
  51. package/fesm2022/mesgflow-ui-kit-description-list.mjs +76 -0
  52. package/fesm2022/mesgflow-ui-kit-description-list.mjs.map +1 -0
  53. package/fesm2022/mesgflow-ui-kit-dialog.mjs +700 -0
  54. package/fesm2022/mesgflow-ui-kit-dialog.mjs.map +1 -0
  55. package/fesm2022/mesgflow-ui-kit-divider.mjs +62 -0
  56. package/fesm2022/mesgflow-ui-kit-divider.mjs.map +1 -0
  57. package/fesm2022/mesgflow-ui-kit-dropzone.mjs +126 -0
  58. package/fesm2022/mesgflow-ui-kit-dropzone.mjs.map +1 -0
  59. package/fesm2022/mesgflow-ui-kit-empty-state.mjs +70 -0
  60. package/fesm2022/mesgflow-ui-kit-empty-state.mjs.map +1 -0
  61. package/fesm2022/mesgflow-ui-kit-field.mjs +42 -0
  62. package/fesm2022/mesgflow-ui-kit-field.mjs.map +1 -0
  63. package/fesm2022/mesgflow-ui-kit-hover-card.mjs +171 -0
  64. package/fesm2022/mesgflow-ui-kit-hover-card.mjs.map +1 -0
  65. package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs +258 -0
  66. package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs.map +1 -0
  67. package/fesm2022/mesgflow-ui-kit-icon.mjs +174 -0
  68. package/fesm2022/mesgflow-ui-kit-icon.mjs.map +1 -0
  69. package/fesm2022/mesgflow-ui-kit-input.mjs +448 -0
  70. package/fesm2022/mesgflow-ui-kit-input.mjs.map +1 -0
  71. package/fesm2022/mesgflow-ui-kit-kbd.mjs +24 -0
  72. package/fesm2022/mesgflow-ui-kit-kbd.mjs.map +1 -0
  73. package/fesm2022/mesgflow-ui-kit-link.mjs +48 -0
  74. package/fesm2022/mesgflow-ui-kit-link.mjs.map +1 -0
  75. package/fesm2022/mesgflow-ui-kit-menu.mjs +105 -0
  76. package/fesm2022/mesgflow-ui-kit-menu.mjs.map +1 -0
  77. package/fesm2022/mesgflow-ui-kit-number-input.mjs +153 -0
  78. package/fesm2022/mesgflow-ui-kit-number-input.mjs.map +1 -0
  79. package/fesm2022/mesgflow-ui-kit-otp-input.mjs +164 -0
  80. package/fesm2022/mesgflow-ui-kit-otp-input.mjs.map +1 -0
  81. package/fesm2022/mesgflow-ui-kit-page-header.mjs +83 -0
  82. package/fesm2022/mesgflow-ui-kit-page-header.mjs.map +1 -0
  83. package/fesm2022/mesgflow-ui-kit-pagination.mjs +99 -0
  84. package/fesm2022/mesgflow-ui-kit-pagination.mjs.map +1 -0
  85. package/fesm2022/mesgflow-ui-kit-password-input.mjs +120 -0
  86. package/fesm2022/mesgflow-ui-kit-password-input.mjs.map +1 -0
  87. package/fesm2022/mesgflow-ui-kit-popover.mjs +213 -0
  88. package/fesm2022/mesgflow-ui-kit-popover.mjs.map +1 -0
  89. package/fesm2022/mesgflow-ui-kit-progress.mjs +82 -0
  90. package/fesm2022/mesgflow-ui-kit-progress.mjs.map +1 -0
  91. package/fesm2022/mesgflow-ui-kit-radio.mjs +123 -0
  92. package/fesm2022/mesgflow-ui-kit-radio.mjs.map +1 -0
  93. package/fesm2022/mesgflow-ui-kit-rating.mjs +116 -0
  94. package/fesm2022/mesgflow-ui-kit-rating.mjs.map +1 -0
  95. package/fesm2022/mesgflow-ui-kit-scroll-area.mjs +84 -0
  96. package/fesm2022/mesgflow-ui-kit-scroll-area.mjs.map +1 -0
  97. package/fesm2022/mesgflow-ui-kit-search-input.mjs +154 -0
  98. package/fesm2022/mesgflow-ui-kit-search-input.mjs.map +1 -0
  99. package/fesm2022/mesgflow-ui-kit-segmented-control.mjs +95 -0
  100. package/fesm2022/mesgflow-ui-kit-segmented-control.mjs.map +1 -0
  101. package/fesm2022/mesgflow-ui-kit-select.mjs +227 -0
  102. package/fesm2022/mesgflow-ui-kit-select.mjs.map +1 -0
  103. package/fesm2022/mesgflow-ui-kit-sidebar.mjs +449 -0
  104. package/fesm2022/mesgflow-ui-kit-sidebar.mjs.map +1 -0
  105. package/fesm2022/mesgflow-ui-kit-skeleton.mjs +74 -0
  106. package/fesm2022/mesgflow-ui-kit-skeleton.mjs.map +1 -0
  107. package/fesm2022/mesgflow-ui-kit-slider.mjs +179 -0
  108. package/fesm2022/mesgflow-ui-kit-slider.mjs.map +1 -0
  109. package/fesm2022/mesgflow-ui-kit-spinner.mjs +67 -0
  110. package/fesm2022/mesgflow-ui-kit-spinner.mjs.map +1 -0
  111. package/fesm2022/mesgflow-ui-kit-splitter.mjs +97 -0
  112. package/fesm2022/mesgflow-ui-kit-splitter.mjs.map +1 -0
  113. package/fesm2022/mesgflow-ui-kit-stat-tile.mjs +98 -0
  114. package/fesm2022/mesgflow-ui-kit-stat-tile.mjs.map +1 -0
  115. package/fesm2022/mesgflow-ui-kit-stepper.mjs +133 -0
  116. package/fesm2022/mesgflow-ui-kit-stepper.mjs.map +1 -0
  117. package/fesm2022/mesgflow-ui-kit-switch.mjs +73 -0
  118. package/fesm2022/mesgflow-ui-kit-switch.mjs.map +1 -0
  119. package/fesm2022/mesgflow-ui-kit-table.mjs +1783 -0
  120. package/fesm2022/mesgflow-ui-kit-table.mjs.map +1 -0
  121. package/fesm2022/mesgflow-ui-kit-tabs.mjs +569 -0
  122. package/fesm2022/mesgflow-ui-kit-tabs.mjs.map +1 -0
  123. package/fesm2022/mesgflow-ui-kit-tag-input.mjs +138 -0
  124. package/fesm2022/mesgflow-ui-kit-tag-input.mjs.map +1 -0
  125. package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs +53 -0
  126. package/fesm2022/mesgflow-ui-kit-theme-switcher.mjs.map +1 -0
  127. package/fesm2022/mesgflow-ui-kit-theming.mjs +1016 -0
  128. package/fesm2022/mesgflow-ui-kit-theming.mjs.map +1 -0
  129. package/fesm2022/mesgflow-ui-kit-time-picker.mjs +138 -0
  130. package/fesm2022/mesgflow-ui-kit-time-picker.mjs.map +1 -0
  131. package/fesm2022/mesgflow-ui-kit-timeline.mjs +91 -0
  132. package/fesm2022/mesgflow-ui-kit-timeline.mjs.map +1 -0
  133. package/fesm2022/mesgflow-ui-kit-toast.mjs +202 -0
  134. package/fesm2022/mesgflow-ui-kit-toast.mjs.map +1 -0
  135. package/fesm2022/mesgflow-ui-kit-toggle.mjs +243 -0
  136. package/fesm2022/mesgflow-ui-kit-toggle.mjs.map +1 -0
  137. package/fesm2022/mesgflow-ui-kit-toolbar.mjs +99 -0
  138. package/fesm2022/mesgflow-ui-kit-toolbar.mjs.map +1 -0
  139. package/fesm2022/mesgflow-ui-kit-tooltip.mjs +160 -0
  140. package/fesm2022/mesgflow-ui-kit-tooltip.mjs.map +1 -0
  141. package/fesm2022/mesgflow-ui-kit-tour.mjs +272 -0
  142. package/fesm2022/mesgflow-ui-kit-tour.mjs.map +1 -0
  143. package/fesm2022/mesgflow-ui-kit-tree-select.mjs +177 -0
  144. package/fesm2022/mesgflow-ui-kit-tree-select.mjs.map +1 -0
  145. package/fesm2022/mesgflow-ui-kit-tree.mjs +82 -0
  146. package/fesm2022/mesgflow-ui-kit-tree.mjs.map +1 -0
  147. package/fesm2022/mesgflow-ui-kit.mjs +12851 -0
  148. package/fesm2022/mesgflow-ui-kit.mjs.map +1 -0
  149. package/package.json +374 -0
  150. package/preset.css +20 -0
  151. package/tokens/color.css +693 -0
  152. package/tokens/contrast.css +68 -0
  153. package/tokens/elevation.css +68 -0
  154. package/tokens/motion.css +277 -0
  155. package/tokens/radius.css +69 -0
  156. package/tokens/typography.css +127 -0
  157. package/tokens.css +41 -0
  158. package/types/mesgflow-ui-kit-accordion.d.ts +42 -0
  159. package/types/mesgflow-ui-kit-alert.d.ts +60 -0
  160. package/types/mesgflow-ui-kit-avatar-group.d.ts +28 -0
  161. package/types/mesgflow-ui-kit-avatar.d.ts +23 -0
  162. package/types/mesgflow-ui-kit-badge.d.ts +39 -0
  163. package/types/mesgflow-ui-kit-banner.d.ts +42 -0
  164. package/types/mesgflow-ui-kit-box-input.d.ts +45 -0
  165. package/types/mesgflow-ui-kit-brand.d.ts +48 -0
  166. package/types/mesgflow-ui-kit-breadcrumb.d.ts +26 -0
  167. package/types/mesgflow-ui-kit-button-group.d.ts +17 -0
  168. package/types/mesgflow-ui-kit-button.d.ts +75 -0
  169. package/types/mesgflow-ui-kit-card.d.ts +71 -0
  170. package/types/mesgflow-ui-kit-chart.d.ts +242 -0
  171. package/types/mesgflow-ui-kit-checkbox.d.ts +17 -0
  172. package/types/mesgflow-ui-kit-chip.d.ts +46 -0
  173. package/types/mesgflow-ui-kit-code-block.d.ts +56 -0
  174. package/types/mesgflow-ui-kit-collapsible.d.ts +39 -0
  175. package/types/mesgflow-ui-kit-color-picker.d.ts +78 -0
  176. package/types/mesgflow-ui-kit-combobox.d.ts +74 -0
  177. package/types/mesgflow-ui-kit-command.d.ts +185 -0
  178. package/types/mesgflow-ui-kit-context-menu.d.ts +40 -0
  179. package/types/mesgflow-ui-kit-copy-button.d.ts +47 -0
  180. package/types/mesgflow-ui-kit-core.d.ts +508 -0
  181. package/types/mesgflow-ui-kit-date-picker.d.ts +215 -0
  182. package/types/mesgflow-ui-kit-description-list.d.ts +23 -0
  183. package/types/mesgflow-ui-kit-dialog.d.ts +342 -0
  184. package/types/mesgflow-ui-kit-divider.d.ts +23 -0
  185. package/types/mesgflow-ui-kit-dropzone.d.ts +47 -0
  186. package/types/mesgflow-ui-kit-empty-state.d.ts +18 -0
  187. package/types/mesgflow-ui-kit-field.d.ts +26 -0
  188. package/types/mesgflow-ui-kit-hover-card.d.ts +52 -0
  189. package/types/mesgflow-ui-kit-i18n-tr.d.ts +14 -0
  190. package/types/mesgflow-ui-kit-icon.d.ts +76 -0
  191. package/types/mesgflow-ui-kit-input.d.ts +186 -0
  192. package/types/mesgflow-ui-kit-kbd.d.ts +9 -0
  193. package/types/mesgflow-ui-kit-link.d.ts +20 -0
  194. package/types/mesgflow-ui-kit-menu.d.ts +53 -0
  195. package/types/mesgflow-ui-kit-number-input.d.ts +55 -0
  196. package/types/mesgflow-ui-kit-otp-input.d.ts +44 -0
  197. package/types/mesgflow-ui-kit-page-header.d.ts +31 -0
  198. package/types/mesgflow-ui-kit-pagination.d.ts +50 -0
  199. package/types/mesgflow-ui-kit-password-input.d.ts +33 -0
  200. package/types/mesgflow-ui-kit-popover.d.ts +62 -0
  201. package/types/mesgflow-ui-kit-progress.d.ts +32 -0
  202. package/types/mesgflow-ui-kit-radio.d.ts +59 -0
  203. package/types/mesgflow-ui-kit-rating.d.ts +56 -0
  204. package/types/mesgflow-ui-kit-scroll-area.d.ts +27 -0
  205. package/types/mesgflow-ui-kit-search-input.d.ts +72 -0
  206. package/types/mesgflow-ui-kit-segmented-control.d.ts +54 -0
  207. package/types/mesgflow-ui-kit-select.d.ts +89 -0
  208. package/types/mesgflow-ui-kit-sidebar.d.ts +224 -0
  209. package/types/mesgflow-ui-kit-skeleton.d.ts +29 -0
  210. package/types/mesgflow-ui-kit-slider.d.ts +40 -0
  211. package/types/mesgflow-ui-kit-spinner.d.ts +31 -0
  212. package/types/mesgflow-ui-kit-splitter.d.ts +40 -0
  213. package/types/mesgflow-ui-kit-stat-tile.d.ts +54 -0
  214. package/types/mesgflow-ui-kit-stepper.d.ts +48 -0
  215. package/types/mesgflow-ui-kit-switch.d.ts +34 -0
  216. package/types/mesgflow-ui-kit-table.d.ts +805 -0
  217. package/types/mesgflow-ui-kit-tabs.d.ts +269 -0
  218. package/types/mesgflow-ui-kit-tag-input.d.ts +33 -0
  219. package/types/mesgflow-ui-kit-theme-switcher.d.ts +27 -0
  220. package/types/mesgflow-ui-kit-theming.d.ts +745 -0
  221. package/types/mesgflow-ui-kit-time-picker.d.ts +54 -0
  222. package/types/mesgflow-ui-kit-timeline.d.ts +27 -0
  223. package/types/mesgflow-ui-kit-toast.d.ts +94 -0
  224. package/types/mesgflow-ui-kit-toggle.d.ts +110 -0
  225. package/types/mesgflow-ui-kit-toolbar.d.ts +52 -0
  226. package/types/mesgflow-ui-kit-tooltip.d.ts +55 -0
  227. package/types/mesgflow-ui-kit-tour.d.ts +66 -0
  228. package/types/mesgflow-ui-kit-tree-select.d.ts +65 -0
  229. package/types/mesgflow-ui-kit-tree.d.ts +44 -0
  230. 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 };