@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,185 @@
1
+ import * as _mesgflow_ui_kit_command from '@mesgflow/ui-kit/command';
2
+ import * as _mesgflow_ui_kit_core from '@mesgflow/ui-kit/core';
3
+ import * as _angular_core from '@angular/core';
4
+ import { DialogRef } from '@angular/cdk/dialog';
5
+
6
+ /** `mf-command`'ın tek öğesi — `data` tüketicinin kendi yükü (rota, eylem kimliği vb.). */
7
+ interface MfCommandItem<T = unknown> {
8
+ /** Benzersiz — `@for` track anahtarı ve DOM kimliği buradan türer. */
9
+ id: string;
10
+ label: string;
11
+ /** Aynı `group`'taki öğeler başlık altında toplanır; grup sırası = ilk görünme sırası. */
12
+ group?: string;
13
+ icon?: string;
14
+ /** Etiketin yanında sönük ikincil metin (ör. yol, açıklama). Aranır ama vurgulanmaz. */
15
+ hint?: string;
16
+ /** Etikette geçmeyen eş anlamlılar ("theme" → "Görünüm"). */
17
+ keywords?: readonly string[];
18
+ /** Görsel kısayol yongaları (`['Ctrl', 'S']`) — kısayolu DİNLEMEZ, yalnızca gösterir. */
19
+ shortcut?: readonly string[];
20
+ disabled?: boolean;
21
+ data?: T;
22
+ }
23
+ /** Etiketin görüntülenen parçaları — `match: true` olanlar vurgulanır. */
24
+ interface MfCommandSegment {
25
+ text: string;
26
+ match: boolean;
27
+ }
28
+ interface MfCommandResult<T = unknown> {
29
+ item: MfCommandItem<T>;
30
+ score: number;
31
+ segments: MfCommandSegment[];
32
+ }
33
+ declare function foldText(text: string, locale?: string): string;
34
+ /**
35
+ * Puan basamakları (yüksek → düşük): tam etiket 1000 · etiket başı 800 · kelime başı 600 ·
36
+ * etiket içi 400 · anahtar kelime / ipucu 200–300 · bulanık alt-dizi 100+. Aynı basamakta kısa
37
+ * etiket öne geçer (daha "tam" eşleşme). Etiketi eşleşmeyen öğenin segmentleri vurgusuzdur.
38
+ */
39
+ declare function scoreCommand<T>(item: MfCommandItem<T>, foldedQuery: string, locale?: string): MfCommandResult<T> | null;
40
+ /**
41
+ * Boş sorguda öğeler verildiği sırada döner; doluyken puana göre (eşitlikte verilen sıra —
42
+ * `Array.prototype.sort` kararlı) sıralanır ve ilk `limit` tutulur.
43
+ */
44
+ declare function filterCommands<T>(items: readonly MfCommandItem<T>[], query: string, options?: {
45
+ limit?: number;
46
+ locale?: string;
47
+ }): MfCommandResult<T>[];
48
+ interface MfCommandGroup<T = unknown> {
49
+ label: string;
50
+ results: MfCommandResult<T>[];
51
+ }
52
+ /** Sonuçları `group`'a göre toplar — grup sırası, o gruptaki EN İYİ sonucun sırasıdır. */
53
+ declare function groupCommands<T>(results: readonly MfCommandResult<T>[]): MfCommandGroup<T>[];
54
+
55
+ /**
56
+ * `<mf-command [items]="commands" (run)="onRun($event)" />`
57
+ *
58
+ * Komut paleti gövdesi — arama kutusu + gruplu sonuç listesi. Tek başına (sayfa içi, ör. bir
59
+ * ayarlar arama alanı) kullanılabilir; ⌘K deneyimi için `CommandPaletteService.open()` bunu bir
60
+ * dialog içinde açar (bkz. `command-palette.service.ts`).
61
+ *
62
+ * ARIA 1.2 combobox deseni: odak HER ZAMAN input'ta kalır, etkin satır `aria-activedescendant`
63
+ * ile duyurulur (satırlar odaklanamaz — `mousedown` engellenir, aksi halde input odağı kaybederdi).
64
+ * Arama aksan/büyük-küçük harf duyarsız, alt-dizi (fuzzy) eşleşmeli ve eşleşen harfleri vurgular
65
+ * (bkz. `command-search.ts`). Esc: sorgu doluysa ÖNCE sorguyu temizler (Raycast/Linear davranışı),
66
+ * boşsa olayı yukarı bırakır — dialog'un kendi Esc kapanışı çalışır.
67
+ */
68
+ declare class Command<T = unknown> {
69
+ readonly items: _angular_core.InputSignal<readonly MfCommandItem<T>[]>;
70
+ readonly query: _angular_core.ModelSignal<string>;
71
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
72
+ readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
73
+ /** Dolu sorguda gösterilecek en fazla sonuç — boş sorguda tüm liste (tüketici sıralaması) gösterilir. */
74
+ readonly limit: _angular_core.InputSignal<number>;
75
+ /** Alt bilgi şeridi: ↑↓ / ↵ / Esc ipuçları (dialog içinde anlamlı; sayfa içi kullanımda genelde kapalı). */
76
+ readonly hints: _angular_core.InputSignalWithTransform<boolean, unknown>;
77
+ /** Açılışta input'a odaklan — dialog zaten ilk odaklanabilir öğeye odaklanır, sayfa içinde istenirse. */
78
+ readonly autofocus: _angular_core.InputSignalWithTransform<boolean, unknown>;
79
+ readonly run: _angular_core.OutputEmitterRef<MfCommandItem<T>>;
80
+ protected readonly labels: _angular_core.Signal<_mesgflow_ui_kit_core.MfCommandLabels>;
81
+ private readonly locale;
82
+ private readonly host;
83
+ private readonly inputRef;
84
+ private readonly idPrefix;
85
+ protected readonly listboxId: string;
86
+ protected readonly effectivePlaceholder: _angular_core.Signal<string>;
87
+ protected readonly effectiveAriaLabel: _angular_core.Signal<string>;
88
+ private readonly results;
89
+ protected readonly groups: _angular_core.Signal<_mesgflow_ui_kit_command.MfCommandGroup<T>[]>;
90
+ /** Görüntülenme sırasıyla düz liste — klavye gezinmesi bunun üzerinde yürür. */
91
+ private readonly flat;
92
+ /** Sonuç kümesi her değiştiğinde ilk etkin satıra sıfırlanır; kullanıcı gezinince elle güncellenir. */
93
+ protected readonly activeId: _angular_core.WritableSignal<string | null>;
94
+ protected readonly activeDomId: _angular_core.Signal<string | null>;
95
+ protected readonly liveText: _angular_core.Signal<string>;
96
+ constructor();
97
+ /** DOM kimliği sıra numarasından türer — `item.id` boşluk/`/` içerebilir, geçerli bir `id` olmayabilir. */
98
+ private readonly indexById;
99
+ protected optionId(itemId: string): string;
100
+ protected groupId(index: number): string;
101
+ protected onInput(value: string): void;
102
+ protected onKeydown(event: KeyboardEvent): void;
103
+ protected setActive(result: MfCommandResult<T>): void;
104
+ protected select(result: MfCommandResult<T>): void;
105
+ /** Programatik odak — ör. sayfa içi kullanımda bir kısayolla aramaya atlamak için. */
106
+ focus(): void;
107
+ private enabled;
108
+ private move;
109
+ private edge;
110
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Command<any>, never>;
111
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Command<any>, "mf-command", ["mfCommand"], { "items": { "alias": "items"; "required": true; "isSignal": true; }; "query": { "alias": "query"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "hints": { "alias": "hints"; "required": false; "isSignal": true; }; "autofocus": { "alias": "autofocus"; "required": false; "isSignal": true; }; }, { "query": "queryChange"; "run": "run"; }, never, ["[mfCommandInputEnd]"], true, never>;
112
+ }
113
+
114
+ interface CommandPaletteData<T = unknown> {
115
+ items: readonly MfCommandItem<T>[];
116
+ placeholder?: string;
117
+ query?: string;
118
+ limit?: number;
119
+ }
120
+ /**
121
+ * `CommandPaletteService.open()`'ın dialog içeriği — `<mf-dialog>` KULLANMAZ: Dialog'un her zaman
122
+ * çizdiği başlık/kapat şeridi bir komut paletine uymuyor; yüzey `overlaySurface` reçetesinin cam
123
+ * olmayan, daha yüksek gölgeli hâli (palet içeriğin ÜSTÜNDE yüzen tek odak — Linear/Raycast).
124
+ * Dialog kabı kendi `aria-label`'ını servisten alır; odak/Esc/backdrop CDK'dan gelir.
125
+ */
126
+ declare class CommandPalette<T = unknown> {
127
+ protected readonly data: CommandPaletteData<T>;
128
+ protected readonly ref: DialogRef<MfCommandItem<T>, CommandPalette<T>>;
129
+ /** `DialogService` çıkış animasyonu turu — `Dialog`'un aynı reaktif sınıfı (bkz. dialog.service.ts). */
130
+ private readonly surface;
131
+ protected readonly closing: _angular_core.Signal<boolean>;
132
+ protected readonly sheet: _angular_core.Signal<boolean>;
133
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPalette<any>, never>;
134
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CommandPalette<any>, "mf-command-palette", never, {}, {}, never, never, true, never>;
135
+ }
136
+
137
+ /** `Ctrl/⌘ + <hotkey>` mi? Düzenlenebilir bir metin alanındayken (`contenteditable`) kısayol yutulmaz. */
138
+ declare function isCommandHotkey(event: KeyboardEvent, hotkey?: string): boolean;
139
+ /**
140
+ * `<button mfButton [mfCommandPaletteTrigger]="commands" (commandRun)="go($event)">Ara</button>`
141
+ *
142
+ * Tıklamada VE global `Ctrl/⌘+K` kısayolunda paleti açar; seçilen öğeyi `commandRun` ile verir.
143
+ * `aria-keyshortcuts` kısayolu yardımcı teknolojiye duyurur. Kısayol dinleyicisi belgeye bağlı —
144
+ * sayfada TEK tetikleyici `hotkey` taşımalı (diğerleri `[hotkeyDisabled]="true"`).
145
+ */
146
+ declare class CommandPaletteTrigger<T = unknown> {
147
+ readonly items: _angular_core.InputSignal<readonly MfCommandItem<T>[]>;
148
+ readonly placeholder: _angular_core.InputSignal<string | undefined>;
149
+ readonly hotkey: _angular_core.InputSignal<string>;
150
+ readonly hotkeyDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
151
+ readonly commandRun: _angular_core.OutputEmitterRef<MfCommandItem<T>>;
152
+ private readonly palette;
153
+ protected readonly keyshortcuts: _angular_core.Signal<string | null>;
154
+ protected onDocumentKeydown(event: KeyboardEvent): void;
155
+ open(): Promise<void>;
156
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPaletteTrigger<any>, never>;
157
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<CommandPaletteTrigger<any>, "[mfCommandPaletteTrigger]", ["mfCommandPaletteTrigger"], { "items": { "alias": "mfCommandPaletteTrigger"; "required": true; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "hotkey": { "alias": "hotkey"; "required": false; "isSignal": true; }; "hotkeyDisabled": { "alias": "hotkeyDisabled"; "required": false; "isSignal": true; }; }, { "commandRun": "commandRun"; }, never, never, true, never>;
158
+ }
159
+
160
+ type CommandPaletteOptions = Omit<CommandPaletteData, 'items'>;
161
+ /**
162
+ * ⌘K paletinin tek açılış noktası — `DialogService` üzerine ince katman (odak tuzağı, Esc,
163
+ * backdrop, odak iadesi, çıkış animasyonu, mobil sheet HEPSİ oradan):
164
+ *
165
+ * ```ts
166
+ * const item = await palette.open(commands);
167
+ * if (item) void router.navigateByUrl(item.data.url);
168
+ * ```
169
+ *
170
+ * Aynı anda tek palet: açıkken yeniden `open()` yeni bir dialog yığmaz, açık olanın sonucunu
171
+ * bekleyen aynı `Promise`'i döner (kısayola iki kez basmak iki palet açmasın).
172
+ */
173
+ declare class CommandPaletteService {
174
+ private readonly dialog;
175
+ private readonly labels;
176
+ private active;
177
+ get isOpen(): boolean;
178
+ open<T>(items: readonly MfCommandItem<T>[], options?: CommandPaletteOptions): Promise<MfCommandItem<T> | undefined>;
179
+ close(): void;
180
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CommandPaletteService, never>;
181
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
182
+ }
183
+
184
+ export { Command, CommandPalette, CommandPaletteService, CommandPaletteTrigger, filterCommands, foldText, groupCommands, isCommandHotkey, scoreCommand };
185
+ export type { CommandPaletteData, CommandPaletteOptions, MfCommandGroup, MfCommandItem, MfCommandResult, MfCommandSegment };
@@ -0,0 +1,40 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { OnDestroy, TemplateRef } from '@angular/core';
3
+
4
+ /**
5
+ * `<div [mfContextMenu]="menuTpl" #ctx="mfContextMenu">Sağ tıkla</div>
6
+ * <ng-template #menuTpl>
7
+ * <mf-menu (itemSelected)="onSelect($event); ctx.close()">
8
+ * <button mfMenuItem value="edit">Düzenle</button>
9
+ * <button mfMenuItem value="delete">Sil</button>
10
+ * </mf-menu>
11
+ * </ng-template>`
12
+ *
13
+ * Sağ tıkla İMLEÇ KONUMUNDA bir menü açar — native tarayıcı bağlam menüsü
14
+ * `event.preventDefault()` ile bastırılır. Kitteki ilk "gerçek DOM elemanına
15
+ * değil bir NOKTAYA sabitlenen" overlay (bkz. `Tooltip`'in aynı
16
+ * `flexibleConnectedTo` + elle `Overlay.create()` deseni) — `mf-popover`
17
+ * KULLANILMADI çünkü `Popover.origin` bir `CdkOverlayOrigin` (gerçek bir
18
+ * DOM elemanı) şart koşuyor, imleç noktası değil; CDK'nın
19
+ * `flexibleConnectedTo` stratejisi bir `{x, y}` noktasını da DOĞRUDAN kabul
20
+ * ediyor, ayrı bir "görünmez sanal anchor elemanı" hilesi GEREKMİYOR.
21
+ *
22
+ * Menü seçimi/kapanışı çağıranın kendi sorumluluğunda — `mfMenuTrigger`
23
+ * deseniyle AYNI ilke (bkz. `menu-trigger.ts`): `itemSelected`'te
24
+ * `ctx.close()`'u KENDİ elle çağırırsın.
25
+ */
26
+ declare class ContextMenu implements OnDestroy {
27
+ readonly mfContextMenu: _angular_core.InputSignal<TemplateRef<unknown> | null>;
28
+ readonly disabled: _angular_core.InputSignal<boolean>;
29
+ private readonly overlay;
30
+ private readonly viewContainerRef;
31
+ private overlayRef?;
32
+ protected onContextMenu(event: MouseEvent): void;
33
+ /** Public — menü içeriğinden (bkz. sınıf üstündeki JSDoc örneği) elle kapatmak için. */
34
+ close(): void;
35
+ ngOnDestroy(): void;
36
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContextMenu, never>;
37
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ContextMenu, "[mfContextMenu]", ["mfContextMenu"], { "mfContextMenu": { "alias": "mfContextMenu"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
38
+ }
39
+
40
+ export { ContextMenu };
@@ -0,0 +1,47 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import * as _mesgflow_ui_kit_core from '@mesgflow/ui-kit/core';
3
+
4
+ /**
5
+ * Metni panoya yazar. `navigator.clipboard` yoksa ya da reddedilirse (güvenli olmayan bağlam,
6
+ * izin) gizli bir `<textarea>` + `execCommand('copy')` yedeğine düşer — eski ama HTTP'de de
7
+ * çalışan tek yol. Başarısızsa `false`.
8
+ */
9
+ declare function copyToClipboard(text: string, doc?: Document): Promise<boolean>;
10
+ /**
11
+ * `<button mfButton [mfCopy]="token" #c="mfCopy">{{ c.copied() ? '✓' : 'Kopyala' }}</button>`
12
+ *
13
+ * Herhangi bir düğmeyi kopyala düğmesine çevirir — görünüm tamamen tüketicide; hazır görünüm
14
+ * için `<mf-copy-button>`. `copied()` başarıdan sonra 2 sn `true` kalır (ikon/etiket değişimi
15
+ * için), `failed()` başarısızlıkta. Metin tıklama ANINDA okunur (dinamik değerler güncel olur).
16
+ */
17
+ declare class Copy {
18
+ readonly value: _angular_core.InputSignal<string>;
19
+ readonly copySuccess: _angular_core.OutputEmitterRef<string>;
20
+ readonly copyError: _angular_core.OutputEmitterRef<void>;
21
+ readonly copied: _angular_core.WritableSignal<boolean>;
22
+ readonly failed: _angular_core.WritableSignal<boolean>;
23
+ private readonly document;
24
+ private timer;
25
+ constructor();
26
+ copy(): Promise<boolean>;
27
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Copy, never>;
28
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<Copy, "[mfCopy]", ["mfCopy"], { "value": { "alias": "mfCopy"; "required": true; "isSignal": true; }; }, { "copySuccess": "copySuccess"; "copyError": "copyError"; }, never, never, true, never>;
29
+ }
30
+
31
+ /**
32
+ * `<mf-copy-button [value]="apiKey" />` — ikon düğmesi: tıklanınca ikon ✓'ye döner (2 sn),
33
+ * başarısızsa ⚠; sonuç `aria-live` ile duyurulur. Düğmenin erişilebilir adı SABİT ("Copy" ya da
34
+ * `label`) — ekran okuyucu durum değişimini canlı bölgeden duyar, ad oynamaz.
35
+ */
36
+ declare class CopyButton {
37
+ readonly value: _angular_core.InputSignal<string>;
38
+ /** Düğmenin adı + ipucu. Verilmezse `MfLabels.copy.copy`. */
39
+ readonly label: _angular_core.InputSignal<string | undefined>;
40
+ protected readonly labels: _angular_core.Signal<_mesgflow_ui_kit_core.MfCopyLabels>;
41
+ protected readonly effectiveLabel: _angular_core.Signal<string>;
42
+ protected iconClass(copied: boolean, failed: boolean): string;
43
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CopyButton, never>;
44
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CopyButton, "mf-copy-button", ["mfCopyButton"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
45
+ }
46
+
47
+ export { Copy, CopyButton, copyToClipboard };