@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,42 @@
1
+ import * as i0 from '@angular/core';
2
+ import * as i1 from '@angular/aria/accordion';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+
5
+ /**
6
+ * `<mf-accordion multiExpandable><mf-accordion-item summary="...">...</mf-accordion-item></mf-accordion>`
7
+ *
8
+ * Salt bir kapsayıcı — ARIA/klavye/genişletme-modu mantığı `@angular/aria/accordion`'ın
9
+ * `AccordionGroup` pattern'inden `hostDirectives` ile ödünç alınıyor (bkz.
10
+ * `tabs.ts`'teki AYNI desen). `multiExpandable`/`disabled` girdileri
11
+ * `hostDirectives`'in `inputs` listesiyle dışarı açıldı.
12
+ */
13
+ declare class Accordion {
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<Accordion, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<Accordion, "mf-accordion", ["mfAccordion"], {}, {}, never, ["*"], true, [{ directive: typeof i1.AccordionGroup; inputs: { "multiExpandable": "multiExpandable"; "disabled": "disabled"; }; outputs: {}; }]>;
16
+ }
17
+
18
+ /**
19
+ * `<mf-accordion-item summary="Genel">İçerik…</mf-accordion-item>` —
20
+ * `mf-accordion` içine konur. `ngAccordionTrigger`/`ngAccordionPanel`/
21
+ * `ngAccordionContent` (`@angular/aria/accordion`) doğrudan bu component'in
22
+ * KENDİ template'inde kullanılıyor (`hostDirectives` DEĞİL — `Tab`'ın aksine
23
+ * trigger butonu ve panel div'i İKİ AYRI DOM elemanı, tek host'a sığmıyor;
24
+ * bkz. `Select`'in `cdkOverlayOrigin`/`cdkConnectedOverlay`'i kendi
25
+ * template'inde birleştirme deseniyle AYNI gerekçe).
26
+ *
27
+ * İçerik `ngAccordionContent` sayesinde LAZY — panel ilk açılana kadar hiç
28
+ * oluşturulmaz.
29
+ */
30
+ declare class AccordionItem {
31
+ readonly summary: i0.InputSignal<string>;
32
+ readonly disabled: i0.InputSignal<boolean>;
33
+ protected readonly triggerClasses: i0.Signal<string>;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<AccordionItem, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<AccordionItem, "mf-accordion-item", never, { "summary": { "alias": "summary"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
36
+ }
37
+
38
+ declare const accordionTriggerVariants: (props?: ({
39
+ disabled?: boolean | null | undefined;
40
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
41
+
42
+ export { Accordion, AccordionItem, accordionTriggerVariants };
@@ -0,0 +1,60 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { MfTone } from '@mesgflow/ui-kit/core';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ /**
7
+ * `<mf-alert tone="danger" title="Kayıt başarısız">Ağ bağlantısı koptu.</mf-alert>`
8
+ *
9
+ * İçerik (gövde metni) `<ng-content />` ile projekte edilir. İkon ayrı bir
10
+ * content-projection SLOT'u DEĞİL — `icon` girdisi (bkz. `ConfirmDialog`'un
11
+ * aynı deseni, `dialog/confirm-dialog.ts`): tone'a göre makul bir varsayılanı
12
+ * var, tüketici farklı bir Material Symbol adı geçebilir ya da `icon=""` ile
13
+ * tamamen kapatabilir. Gerçek content-slot algılaması (`@ContentChild` +
14
+ * "sağlandı mı" kontrolü) bu basit vakada gereksiz karmaşıklık.
15
+ *
16
+ * `role`: `danger`/`warning` kullanıcının DİKKATİNİ kesmesi gereken durumlar
17
+ * — `role="alert"` (assertive, ekran okuyucu anında keser). Diğer tonlar
18
+ * `role="status"` (polite, mevcut anonsu beklemeden araya girmez).
19
+ */
20
+ declare class Alert {
21
+ readonly tone: _angular_core.InputSignal<MfTone>;
22
+ readonly title: _angular_core.InputSignal<string>;
23
+ /** `null` (varsayılan) → `tone`'a göre otomatik ikon. Boş string (`''`) → ikon YOK. Başka bir Material Symbol adı → onu kullan. */
24
+ readonly icon: _angular_core.InputSignal<string | null>;
25
+ readonly dismissible: _angular_core.InputSignal<boolean>;
26
+ readonly dismissLabel: _angular_core.InputSignal<string | undefined>;
27
+ readonly dismissed: _angular_core.OutputEmitterRef<void>;
28
+ private readonly injectedLabels;
29
+ protected readonly effectiveDismissLabel: _angular_core.Signal<string>;
30
+ protected readonly containerClasses: _angular_core.Signal<string>;
31
+ protected readonly role: _angular_core.Signal<"alert" | "status">;
32
+ protected readonly iconName: _angular_core.Signal<string>;
33
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Alert, never>;
34
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Alert, "mf-alert", ["mfAlert"], { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "dismissLabel": { "alias": "dismissLabel"; "required": false; "isSignal": true; }; }, { "dismissed": "dismissed"; }, never, ["*"], true, never>;
35
+ }
36
+
37
+ /**
38
+ * Badge/Chip/Avatar/StatTile ile AYNI "tonal işaret" dili (bkz.
39
+ * badge.variants.ts'teki gerekçe) — rol token'ı `bg-X-tint text-X-tint-fg`
40
+ * (`color-mix()` ile rampanın kendi basamağının %12 alfası; light çapa 600,
41
+ * dark çapa 400 — "Deep Emerald & Slate v2" spec'inin "Soft Tinting"
42
+ * tekniği). Alert her türlü zeminin üstüne (kart, sayfa, panel) oturabiliyor
43
+ * — `color-mix` sayesinde her zeminde AYRI ayrı doğru karışıyor, eski "düz
44
+ * basamak çifti" (`bg-X-50 dark:bg-X-900`) döneminde zeminden bağımsız
45
+ * garantili kontrast İÇİN gerekliydi, artık `check:contrast` dört yüzeyde
46
+ * (surface/canvas/overlay/surface-alt) `color-mix` sonucunu doğruluyor.
47
+ *
48
+ * Kenarlık `border-X/30` — Button'ın `outlined` görünümüyle AYNI dil (renkli-
49
+ * şeffaf çizgi, düz gri DEĞİL); primary `border-accent/30` kullanır (kendi
50
+ * `X-tint` token'ı yok, `accent`/`primary-tint` çifti aynı işi görür). Geniş
51
+ * bir banner için sadece dolgu yetersiz kalıyordu (kenar tanımı olmadan
52
+ * sayfa zeminiyle karışıyordu, `Badge`'in küçük pilinde bu sorun yoktu).
53
+ */
54
+ declare const alertVariants: (props?: ({
55
+ tone?: "neutral" | "primary" | "success" | "warning" | "danger" | "info" | "help" | null | undefined;
56
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
57
+ type AlertTone = VariantProps<typeof alertVariants>['tone'];
58
+
59
+ export { Alert, alertVariants };
60
+ export type { AlertTone };
@@ -0,0 +1,28 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ interface AvatarGroupItem {
4
+ name: string;
5
+ src?: string | null;
6
+ }
7
+ /**
8
+ * `<mf-avatar-group [items]="teamMembers" [max]="5" />` — üst üste binen
9
+ * (`-space-x-2` + `ring-2 ring-surface` her avatarı komşusundan ayırır)
10
+ * bir avatar yığını. `max`'ı aşan üyeler tek bir "+N" göstergesine
11
+ * TOPLANIR (tıklanabilir değil — sadece özet; tam listeyi göstermek
12
+ * çağıranın kendi tooltip/popover'ına bırakılır).
13
+ */
14
+ declare class AvatarGroup {
15
+ readonly items: _angular_core.InputSignal<AvatarGroupItem[]>;
16
+ readonly max: _angular_core.InputSignal<number>;
17
+ readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
18
+ private readonly avatarGroupLabels;
19
+ protected readonly effectiveOverflowLabel: _angular_core.Signal<string>;
20
+ protected readonly visible: _angular_core.Signal<AvatarGroupItem[]>;
21
+ protected readonly overflowCount: _angular_core.Signal<number>;
22
+ protected readonly overflowClasses: _angular_core.Signal<string>;
23
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AvatarGroup, never>;
24
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AvatarGroup, "mf-avatar-group", ["mfAvatarGroup"], { "items": { "alias": "items"; "required": true; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
25
+ }
26
+
27
+ export { AvatarGroup };
28
+ export type { AvatarGroupItem };
@@ -0,0 +1,23 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { MfTone } from '@mesgflow/ui-kit/core';
3
+
4
+ type AvatarTone = MfTone;
5
+ declare class Avatar {
6
+ readonly name: _angular_core.InputSignal<string>;
7
+ readonly src: _angular_core.InputSignal<string | null>;
8
+ readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
9
+ readonly shape: _angular_core.InputSignal<"round" | "square">;
10
+ /** Her isim için sabit, farklı bir renk (ör. tenant switcher listesi) — `tone` verilmişse yoksayılır. */
11
+ readonly colorful: _angular_core.InputSignal<boolean>;
12
+ /** İsimden bağımsız, hep AYNI sabit renk (ör. tek bir kullanıcının kendi profili) — `colorful`'dan öncelikli. */
13
+ readonly tone: _angular_core.InputSignal<MfTone | null>;
14
+ protected readonly shapeClasses: _angular_core.Signal<"rounded-md" | "rounded-full">;
15
+ protected readonly colorClasses: _angular_core.Signal<string>;
16
+ protected readonly initials: _angular_core.Signal<string>;
17
+ protected readonly sizeClasses: _angular_core.Signal<string>;
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Avatar, never>;
19
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Avatar, "mf-avatar", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "colorful": { "alias": "colorful"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
20
+ }
21
+
22
+ export { Avatar };
23
+ export type { AvatarTone };
@@ -0,0 +1,39 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ /** `<span mfBadge tone="success">Aktif</span>` */
6
+ declare class Badge {
7
+ readonly tone: _angular_core.InputSignal<"neutral" | "primary" | "success" | "warning" | "danger" | "info" | "help" | null | undefined>;
8
+ readonly size: _angular_core.InputSignal<"sm" | "md" | null | undefined>;
9
+ protected readonly classes: _angular_core.Signal<string>;
10
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Badge, never>;
11
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Badge, "span[mfBadge]", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ }
13
+
14
+ /**
15
+ * Kullanıcının beğendiği bir Artifact'teki `.pill` deseni birebir uyarlandı:
16
+ * mono + büyük harf + geniş harf aralığı + `currentColor` nokta göstergesi
17
+ * (`before:`). Bu bileşenin kendisi bu tazelemenin imza motiflerinden biri
18
+ * ("mono mikro-etiket") — `text-eyebrow` token'ı (tokens/typography.css)
19
+ * TAM OLARAK bu dili konuşmak için var (kalın ağırlık + geniş tracking bir
20
+ * arada); font-weight/letter-spacing'i elle tekrar YAZMAK yerine doğrudan
21
+ * o token kullanılıyor (bkz. plan Faz 1d — sm/md artık FONT BOYUTUNDA değil,
22
+ * sadece dolguda ayrışıyor, ikisi de aynı mikro-etiket ölçeğini paylaşıyor).
23
+ *
24
+ * Renkli tonlar rol token'ı `bg-X-tint text-X-tint-fg` kullanır — spec'in
25
+ * "Soft Tinting" tekniği: `color-mix()` ile rampanın kendi basamağının %12
26
+ * alfası (light çapa 600, dark çapa 400), metin rampanın 800/400 basamağı.
27
+ * Rozet her türlü zeminin (kart, tablo satırı, toolbar) üstüne oturabiliyor —
28
+ * `color-mix` her zeminde AYRI karışıp `check:contrast`'ta dört yüzeyde de
29
+ * doğrulanıyor (bkz. projects/ui-kit/README.md "Token mimarisi").
30
+ */
31
+ declare const badgeVariants: (props?: ({
32
+ tone?: "neutral" | "primary" | "success" | "warning" | "danger" | "info" | "help" | null | undefined;
33
+ size?: "sm" | "md" | null | undefined;
34
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
35
+ type BadgeTone = VariantProps<typeof badgeVariants>['tone'];
36
+ type BadgeSize = VariantProps<typeof badgeVariants>['size'];
37
+
38
+ export { Badge, badgeVariants };
39
+ export type { BadgeSize, BadgeTone };
@@ -0,0 +1,42 @@
1
+ import * as _mesgflow_ui_kit_core from '@mesgflow/ui-kit/core';
2
+ import { MfTone } from '@mesgflow/ui-kit/core';
3
+ import * as _angular_core from '@angular/core';
4
+
5
+ type BannerAppearance = 'tint' | 'fill';
6
+ /**
7
+ * `<mf-banner tone="primary" appearance="fill" icon="campaign" dismissible dismissKey="v0.5">
8
+ * Yeni sürüm yayında. <a href="/changelog">Neler değişti?</a>
9
+ * <button mfButton size="sm" action>Güncelle</button>
10
+ * </mf-banner>`
11
+ *
12
+ * Sayfanın/bölümün üst kenarında tam genişlik duyuru şeridi — `Alert`'ten farkı: kart değil
13
+ * kenardan kenara şerit, alt kenarlık; `fill` görünümü marka/durum rengiyle dolu. İçerideki
14
+ * bağlantılar metin rengini devralır ve altı çizilir (dolu zeminde `mfLink`'in marka rengi
15
+ * kontrastı bozardı). Eylem düğmesi `[action]` slotuna.
16
+ *
17
+ * `dismissKey` verilirse kapatma bu tarayıcıda hatırlanır (`localStorage`) — duyuru bir daha
18
+ * gösterilmez; depolama erişilemezse (gizli pencere) sessizce yalnızca oturumluk kapanır.
19
+ * Varsayılan olarak `role` YOK (statik duyuru); sonradan beliren, duyurulması gereken bir
20
+ * şerit için `announce` → `role="status"`.
21
+ */
22
+ declare class Banner {
23
+ readonly tone: _angular_core.InputSignal<MfTone>;
24
+ readonly appearance: _angular_core.InputSignal<BannerAppearance>;
25
+ readonly icon: _angular_core.InputSignal<string | null>;
26
+ readonly align: _angular_core.InputSignal<"start" | "center">;
27
+ readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
28
+ /** Kalıcı kapatma anahtarı — değiştirmek (ör. sürüm) duyuruyu yeniden gösterir. */
29
+ readonly dismissKey: _angular_core.InputSignal<string | undefined>;
30
+ readonly announce: _angular_core.InputSignalWithTransform<boolean, unknown>;
31
+ readonly open: _angular_core.ModelSignal<boolean>;
32
+ readonly dismissed: _angular_core.OutputEmitterRef<void>;
33
+ protected readonly labels: _angular_core.Signal<_mesgflow_ui_kit_core.MfAlertLabels>;
34
+ protected readonly hostClasses: _angular_core.Signal<string>;
35
+ constructor();
36
+ protected dismiss(): void;
37
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Banner, never>;
38
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Banner, "mf-banner", ["mfBanner"], { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "dismissKey": { "alias": "dismissKey"; "required": false; "isSignal": true; }; "announce": { "alias": "announce"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; }, { "open": "openChange"; "dismissed": "dismissed"; }, never, ["*", "[action]"], true, never>;
39
+ }
40
+
41
+ export { Banner };
42
+ export type { BannerAppearance };
@@ -0,0 +1,45 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import { ValueAccessorBase } from '@mesgflow/ui-kit/core';
4
+
5
+ interface BoxValue {
6
+ top: number;
7
+ right: number;
8
+ bottom: number;
9
+ left: number;
10
+ }
11
+ /**
12
+ * `<mf-box-input [(value)]="padding" unit="px" />` — 4 kenar (padding/
13
+ * margin/border) kutu-model girdisi. Bağlantılı mod (varsayılan AÇIK): tek
14
+ * input değiştirmek dördünü BİRDEN değiştirir — zincir ikonuna tıklayınca
15
+ * kenarlar bağımsızlaşır (kenarı ayırırken mevcut `top` değeri dördüne
16
+ * BASILMAZ — sadece tekrar bağlarken senkronlanır). `NumberInput` üstüne
17
+ * kompoze edilmiş bir COMPONENT (gerçek iç yapı — bkz. README "Directive mi,
18
+ * component mi?").
19
+ */
20
+ declare class BoxInput extends ValueAccessorBase<BoxValue> implements ControlValueAccessor {
21
+ readonly value: _angular_core.ModelSignal<BoxValue>;
22
+ readonly unit: _angular_core.InputSignal<string>;
23
+ readonly min: _angular_core.InputSignal<number>;
24
+ readonly max: _angular_core.InputSignal<number | null>;
25
+ readonly disabled: _angular_core.InputSignal<boolean>;
26
+ protected readonly linked: _angular_core.WritableSignal<boolean>;
27
+ protected readonly sides: (keyof BoxValue)[];
28
+ private readonly boxInputLabels;
29
+ protected readonly sideLabels: _angular_core.Signal<{
30
+ top: string;
31
+ right: string;
32
+ bottom: string;
33
+ left: string;
34
+ }>;
35
+ protected readonly linkToggleTitle: _angular_core.Signal<string>;
36
+ writeValue(value: BoxValue): void;
37
+ protected sideValue(side: keyof BoxValue): number;
38
+ protected setSide(side: keyof BoxValue, next: number | null): void;
39
+ protected toggleLinked(): void;
40
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<BoxInput, never>;
41
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<BoxInput, "mf-box-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
42
+ }
43
+
44
+ export { BoxInput };
45
+ export type { BoxValue };
@@ -0,0 +1,48 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ /**
4
+ * `<mf-brand [name]="i18n().auth.layout.brandName" />`
5
+ *
6
+ * Marka işareti TEK kaynağa indirildi — daha önce üç ayrı yerde üç farklı
7
+ * şey vardı: auth masaüstü panelinde sabit kodlu "MF", mobil auth bloğunda
8
+ * ve layout sidebar'ında sabit kodlu "N", sidebar'da ayrıca `bg-teal-600`
9
+ * (eski marka rengi, köşeli/`rounded-*` olmayan bir kare). İşaret artık
10
+ * `name()`'in İLK HARFİNDEN türetiliyor — `brandName` çevirisi değişse bile
11
+ * bir daha asenkron/bayat kalamaz.
12
+ *
13
+ * `labelTone="auto"` (varsayılan) isim metnini moda-duyarlı `text-fg` ile
14
+ * boyar — ama auth-layout'un sol paneli gibi TEMADAN BAĞIMSIZ hep koyu kalan
15
+ * zeminlerde bu YANLIŞ: light modda `text-fg` koyu metne döner, koyu panel
16
+ * üstünde görünmez olur (gerçek bug, tarayıcıda yakalandı). O bağlamlarda
17
+ * `labelTone="light"` ver — sabit beyaz metin, moddan bağımsız. Simetrik
18
+ * olarak `labelTone="dark"` — sabit koyu (`primary-900`) metin, TEMADAN
19
+ * BAĞIMSIZ hep AÇIK kalan zeminler için (`appearance="brand-light"` sidebar
20
+ * gibi): `auto` orada da YANLIŞ olurdu — dark site modunda `text-fg` açık
21
+ * renge döner, ki zemin (primary-100) hep açık kaldığından metin kaybolurdu.
22
+ *
23
+ * İşaret zemini `bg-accent-fill` — Sidebar `appearance="brand"` içine
24
+ * (`[brand]` slotu ile) projelendiğinde bu artık primary-900'e (kök
25
+ * sidebar'la AYNI zemin) denk düşer, işaret kaybolurdu. `group-data-
26
+ * [appearance=brand]/sidebar:` varyantı (özgüllük 0,2,0, `bg-accent-fill`in
27
+ * 0,1,0'ını İKİ MODDA da yener) o bağlamda primary-400 (`#10b981`) + ink
28
+ * (`primary-950`, ≈6.9:1) zeminine geçer — Sidebar'ın kendi `data-appearance`
29
+ * attribute'una bağlı, `Brand`'e yeni bir input EKLENMEDEN.
30
+ *
31
+ * `appearance="brand-light"` (kök primary-100, İKİ modda da AYNI) için AYRI
32
+ * bir override GEREKİR — DARK site modunda `bg-accent-fill` primary-400'e
33
+ * kayıyor, primary-100 zemine karşı sadece 2.15:1 (AA altı, neredeyse
34
+ * kaybolur). Sabit koyu blok + beyaz metin (`primary-900`/`white`) — bu,
35
+ * LIGHT site modunda zaten `bg-accent-fill`in verdiği sonuçla (primary-900)
36
+ * ÖRTÜŞÜYOR, sadece dark site modundaki tutarsızlığı gideriyor.
37
+ */
38
+ declare class Brand {
39
+ readonly name: _angular_core.InputSignal<string>;
40
+ readonly size: _angular_core.InputSignal<"sm" | "md">;
41
+ readonly showLabel: _angular_core.InputSignal<boolean>;
42
+ readonly labelTone: _angular_core.InputSignal<"auto" | "light" | "dark">;
43
+ protected readonly mark: _angular_core.Signal<string>;
44
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Brand, never>;
45
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Brand, "mf-brand", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "showLabel": { "alias": "showLabel"; "required": false; "isSignal": true; }; "labelTone": { "alias": "labelTone"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
46
+ }
47
+
48
+ export { Brand };
@@ -0,0 +1,26 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ interface BreadcrumbItem {
4
+ label: string;
5
+ href?: string;
6
+ }
7
+ /**
8
+ * `<mf-breadcrumb [items]="[{label: 'Ayarlar', href: '/ayarlar'}, {label: 'Ekip'}]" />`
9
+ *
10
+ * SON öğe (mevcut sayfa) `href` verilse BİLE bağlantı OLARAK render
11
+ * EDİLMEZ — WAI-ARIA breadcrumb deseninin önerdiği gibi düz metin +
12
+ * `aria-current="page"`. Host `role="navigation"` taşır (`nav` etiketi
13
+ * DEĞİL — `mf-breadcrumb` özel bir eleman, ama landmark semantiği aynı
14
+ * şekilde çalışır).
15
+ */
16
+ declare class Breadcrumb {
17
+ readonly items: _angular_core.InputSignal<BreadcrumbItem[]>;
18
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
19
+ private readonly injectedLabels;
20
+ protected readonly effectiveAriaLabel: _angular_core.Signal<string>;
21
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Breadcrumb, never>;
22
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Breadcrumb, "mf-breadcrumb", ["mfBreadcrumb"], { "items": { "alias": "items"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
23
+ }
24
+
25
+ export { Breadcrumb };
26
+ export type { BreadcrumbItem };
@@ -0,0 +1,17 @@
1
+ import * as i0 from '@angular/core';
2
+
3
+ /**
4
+ * `<mf-button-group><button mfButton appearance="outlined">A</button>...</mf-button-group>`
5
+ * — bitişik butonları TEK bir segment şeridi gibi birleştirir: iç köşeler
6
+ * kare, kenarlıklar 1px çakışır (`-ms-px`), hover/odaklı buton `z-10` ile
7
+ * komşusunun üstüne çıkar (çakışan kenarlık kesilmesin diye). En anlamlısı
8
+ * `appearance="outlined"` butonlarla — dolu/düz-metin butonlarda zaten
9
+ * görünür kenarlık yok, sadece aralarındaki boşluk kapanır.
10
+ */
11
+ declare class ButtonGroup {
12
+ readonly ariaLabel: i0.InputSignal<string>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonGroup, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonGroup, "mf-button-group", ["mfButtonGroup"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
15
+ }
16
+
17
+ export { ButtonGroup };
@@ -0,0 +1,75 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ /**
6
+ * `<button mfButton>`/`<a mfButton>` — selector native elemanın KENDİSİNİ
7
+ * hedefler (`button[mfButton], a[mfButton]`), bir SARMALAYICI etiket
8
+ * (`<mf-button>`) DEĞİL (bkz. `projects/ui-kit/README.md` "Directive mi,
9
+ * component mi?") — bu yüzden tüketicinin `class="..."` ile verdiği static
10
+ * class GENE doğrudan gerçek native elemana düşer, eskiden directive'ken
11
+ * olduğu gibi (host'ta kalıp içe düşmeme sorunu YOK). Directive'ten
12
+ * component'e yükseltilmenin TEK sebebi: `loading`'i gerçek bir
13
+ * `<mf-spinner>`'a, `iconStart`/`iconEnd`'i gerçek ikon element'lerine
14
+ * bağlayabilmek için bir ŞABLONA ihtiyaç duyulması — tüketicinin kendi
15
+ * içeriği `<ng-content />` ile AYNEN korunur.
16
+ *
17
+ * `tone` (renk) × `appearance` (dolu/kenarlıklı/düz-metin) bağımsız iki
18
+ * girdi — ör. `tone="danger" appearance="text" size="icon"` sadece ikon
19
+ * gösteren, kenarlıksız bir sil butonu için.
20
+ */
21
+ declare class Button {
22
+ readonly tone: _angular_core.InputSignal<"primary" | "neutral" | "success" | "warning" | "danger" | "info" | "help" | null | undefined>;
23
+ readonly appearance: _angular_core.InputSignal<"filled" | "outlined" | "text" | null | undefined>;
24
+ readonly size: _angular_core.InputSignal<"sm" | "md" | "lg" | "icon" | null | undefined>;
25
+ /** Sadece `size="icon"`'da etkili — bkz. button.variants.ts. */
26
+ readonly shape: _angular_core.InputSignal<"round" | "square" | null | undefined>;
27
+ /** Native <button> varsayılan type="submit" sürprizini önlemek için — <a>'da yok sayılır. */
28
+ readonly type: _angular_core.InputSignal<"button" | "submit" | "reset">;
29
+ /**
30
+ * `true` iken içeriğin (`<ng-content />`) ÖNÜNE `<mf-spinner size="xs" />`
31
+ * eklenir — `iconStart` varsa YERİNE geçer, etiket metni görünür KALIR
32
+ * (buton "Kaydet" yazıp yanında dönen bir gösterge taşır, metin
33
+ * kaybolmaz). `disabled`'ı KENDİLİĞİNDEN yönetmez — tüketici
34
+ * `[disabled]="loading() || ..."` ile kendi bağlar.
35
+ */
36
+ readonly loading: _angular_core.InputSignal<boolean>;
37
+ /** Material Symbol adı (bkz. `Icon`) — içeriğin ÖNÜNE eklenir. `loading=true` iken spinner onun YERİNE geçer. */
38
+ readonly iconStart: _angular_core.InputSignal<string>;
39
+ /** Material Symbol adı — içeriğin ARDINA eklenir. `loading=true` iken GİZLENİR (tek bir dönen gösterge yeterli — `iconStart` ile aynı ilke). */
40
+ readonly iconEnd: _angular_core.InputSignal<string>;
41
+ protected readonly classes: _angular_core.Signal<string>;
42
+ protected readonly nativeType: _angular_core.Signal<"button" | "submit" | "reset">;
43
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Button, never>;
44
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Button, "button[mfButton], a[mfButton]", ["mfButton"], { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "iconStart": { "alias": "iconStart"; "required": false; "isSignal": true; }; "iconEnd": { "alias": "iconEnd"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
45
+ }
46
+
47
+ /**
48
+ * İki bağımsız eksen: `tone` (anlamsal renk, bkz. `MfTone`) × `appearance`
49
+ * (dolu/kenarlıklı/düz-metin). Her kombinasyon
50
+ * `compoundVariants`'ta açık — okunabilirlik netlik demek, kısayola kaçma.
51
+ *
52
+ * Gloss/iç-highlight YOK — 2 kez reddedildi.
53
+ * `outlined` kenarlığı bilinçli olarak jenerik gri DEĞİL, rengin kendisinin
54
+ * düşük opaklıklı hali (`border-accent/30` gibi) — düz gri çizgi "90'lar
55
+ * form elemanı" hissi veriyordu, renkli-şeffaf kenarlık modern/kasıtlı durur.
56
+ * Bu opaklık artık TEK bir class'ta iki modu birden doğru veriyor: `accent`/
57
+ * `success`/`warning`/`danger`/`info` çıplak isimleri `styles.css`'te
58
+ * moda göre takas olan rol token'ları (600 basamağı light, 400 basamağı
59
+ * dark) — `dark:` ikizi yazmaya gerek YOK.
60
+ */
61
+ declare const buttonVariants: (props?: ({
62
+ tone?: "primary" | "neutral" | "success" | "warning" | "danger" | "info" | "help" | null | undefined;
63
+ appearance?: "filled" | "outlined" | "text" | null | undefined;
64
+ size?: "sm" | "md" | "lg" | "icon" | null | undefined;
65
+ shape?: "round" | "square" | null | undefined;
66
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
67
+ type ButtonTone = VariantProps<typeof buttonVariants>['tone'];
68
+ /** @deprecated `ButtonTone` kullan — `severity` girdisi `tone`'a taşındı (bkz. plan Faz 1a). */
69
+ type ButtonSeverity = ButtonTone;
70
+ type ButtonAppearance = VariantProps<typeof buttonVariants>['appearance'];
71
+ type ButtonSize = VariantProps<typeof buttonVariants>['size'];
72
+ type ButtonShape = VariantProps<typeof buttonVariants>['shape'];
73
+
74
+ export { Button, buttonVariants };
75
+ export type { ButtonAppearance, ButtonSeverity, ButtonShape, ButtonSize, ButtonTone };
@@ -0,0 +1,71 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import { VariantProps } from 'class-variance-authority';
4
+
5
+ /** `<div mfCard padding="md" [interactive]="true">...</div>` — `interactive` tıklanabilir/navigasyona giden kartlar için hover'da hafif bir yükselme ekler. */
6
+ declare class Card {
7
+ readonly padding: _angular_core.InputSignal<"none" | "sm" | "md" | null | undefined>;
8
+ readonly interactive: _angular_core.InputSignal<boolean | null | undefined>;
9
+ protected readonly classes: _angular_core.Signal<string>;
10
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Card, never>;
11
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Card, "[mfCard]", never, { "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
+ }
13
+
14
+ /** `<div mfCardBody>...</div>` — bkz. `CardHeader`'ın JSDoc'u. */
15
+ declare class CardBody {
16
+ readonly padding: _angular_core.InputSignal<"none" | "sm" | "md" | null | undefined>;
17
+ protected readonly classes: _angular_core.Signal<string>;
18
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardBody, never>;
19
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CardBody, "[mfCardBody]", never, { "padding": { "alias": "padding"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
20
+ }
21
+
22
+ /**
23
+ * `<div mfCardFooter bordered>...</div>` — bkz. `CardHeader`'ın JSDoc'u.
24
+ * Aksiyon düğmeleri için sağa yaslanmış bir satır varsayar (`justify-end`).
25
+ */
26
+ declare class CardFooter {
27
+ readonly padding: _angular_core.InputSignal<"none" | "sm" | "md" | null | undefined>;
28
+ readonly bordered: _angular_core.InputSignal<boolean>;
29
+ protected readonly classes: _angular_core.Signal<string>;
30
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardFooter, never>;
31
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CardFooter, "[mfCardFooter]", never, { "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
32
+ }
33
+
34
+ /**
35
+ * `<div mfCard padding="none"><div mfCardHeader bordered>...</div>...</div>`
36
+ * — bkz. `cardSectionPadding`'in JSDoc'u (dış `mfCard`'ın `padding="none"`
37
+ * olması beklenir). `bordered` alttaki içerikten ayıran bir `border-b` ekler
38
+ * — tek başlık kartlarında (alt parça yok) gereksiz, o yüzden varsayılan `false`.
39
+ */
40
+ declare class CardHeader {
41
+ readonly padding: _angular_core.InputSignal<"none" | "sm" | "md" | null | undefined>;
42
+ readonly bordered: _angular_core.InputSignal<boolean>;
43
+ protected readonly classes: _angular_core.Signal<string>;
44
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CardHeader, never>;
45
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CardHeader, "[mfCardHeader]", never, { "padding": { "alias": "padding"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
46
+ }
47
+
48
+ /**
49
+ * BORDER-FIRST (2026-09 Deep Emerald geçişi, kullanıcı kararıyla önceki
50
+ * "light modda kenarlıksız, sadece gölge" ilkesinin YERİNE geçti): iki modda
51
+ * da `border-hairline` (color.css — %8-12 opak marka-tonlu 1px çizgi),
52
+ * gölge YOK. `interactive` kartlarda hover'da hafif bir yükselme hâlâ
53
+ * `shadow-2` ile veriliyor — bu artık istisna, varsayılan durum gölgesiz.
54
+ */
55
+ declare const cardVariants: (props?: ({
56
+ padding?: "none" | "sm" | "md" | null | undefined;
57
+ interactive?: boolean | null | undefined;
58
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
59
+ type CardPadding = VariantProps<typeof cardVariants>['padding'];
60
+ type CardInteractive = VariantProps<typeof cardVariants>['interactive'];
61
+ /**
62
+ * `CardHeader`/`CardBody`/`CardFooter`'ın paylaştığı dolgu ölçeği — `Card`'ın
63
+ * kendi `padding` ekseniyle AYNI üç basamak. Alt parçalar kullanılırken dış
64
+ * `mfCard`'ın `padding="none"` olması BEKLENİR (aksi halde dolgu iki katmanda
65
+ * çakışır) — bu, çağıranın sorumluluğunda (bkz. `Field`'ın `for`/id
66
+ * eşleşmesiyle aynı desen, `field.ts`'teki not).
67
+ */
68
+ declare const cardSectionPadding: Record<NonNullable<CardPadding>, string>;
69
+
70
+ export { Card, CardBody, CardFooter, CardHeader, cardSectionPadding, cardVariants };
71
+ export type { CardInteractive, CardPadding };