@mesgflow/ui-kit 0.6.0 → 0.7.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 (199) hide show
  1. package/README.md +56 -5
  2. package/fesm2022/mesgflow-ui-kit-accordion.mjs +3 -2
  3. package/fesm2022/mesgflow-ui-kit-accordion.mjs.map +1 -1
  4. package/fesm2022/mesgflow-ui-kit-agenda.mjs +208 -0
  5. package/fesm2022/mesgflow-ui-kit-agenda.mjs.map +1 -0
  6. package/fesm2022/mesgflow-ui-kit-aspect-ratio.mjs +37 -0
  7. package/fesm2022/mesgflow-ui-kit-aspect-ratio.mjs.map +1 -0
  8. package/fesm2022/mesgflow-ui-kit-blocks.mjs +207 -0
  9. package/fesm2022/mesgflow-ui-kit-blocks.mjs.map +1 -0
  10. package/fesm2022/mesgflow-ui-kit-box-input.mjs +2 -2
  11. package/fesm2022/mesgflow-ui-kit-box-input.mjs.map +1 -1
  12. package/fesm2022/mesgflow-ui-kit-button.mjs +188 -242
  13. package/fesm2022/mesgflow-ui-kit-button.mjs.map +1 -1
  14. package/fesm2022/mesgflow-ui-kit-card.mjs +37 -16
  15. package/fesm2022/mesgflow-ui-kit-card.mjs.map +1 -1
  16. package/fesm2022/mesgflow-ui-kit-carousel.mjs +308 -0
  17. package/fesm2022/mesgflow-ui-kit-carousel.mjs.map +1 -0
  18. package/fesm2022/mesgflow-ui-kit-checkbox.mjs +16 -21
  19. package/fesm2022/mesgflow-ui-kit-checkbox.mjs.map +1 -1
  20. package/fesm2022/mesgflow-ui-kit-chip.mjs +2 -2
  21. package/fesm2022/mesgflow-ui-kit-chip.mjs.map +1 -1
  22. package/fesm2022/mesgflow-ui-kit-code-block.mjs +9 -5
  23. package/fesm2022/mesgflow-ui-kit-code-block.mjs.map +1 -1
  24. package/fesm2022/mesgflow-ui-kit-color-picker.mjs +6 -4
  25. package/fesm2022/mesgflow-ui-kit-color-picker.mjs.map +1 -1
  26. package/fesm2022/mesgflow-ui-kit-combobox.mjs +145 -65
  27. package/fesm2022/mesgflow-ui-kit-combobox.mjs.map +1 -1
  28. package/fesm2022/mesgflow-ui-kit-context-menu.mjs +4 -6
  29. package/fesm2022/mesgflow-ui-kit-context-menu.mjs.map +1 -1
  30. package/fesm2022/mesgflow-ui-kit-core.mjs +441 -128
  31. package/fesm2022/mesgflow-ui-kit-core.mjs.map +1 -1
  32. package/fesm2022/mesgflow-ui-kit-countdown.mjs +149 -0
  33. package/fesm2022/mesgflow-ui-kit-countdown.mjs.map +1 -0
  34. package/fesm2022/mesgflow-ui-kit-date-picker.mjs +131 -10
  35. package/fesm2022/mesgflow-ui-kit-date-picker.mjs.map +1 -1
  36. package/fesm2022/mesgflow-ui-kit-dialog.mjs +117 -34
  37. package/fesm2022/mesgflow-ui-kit-dialog.mjs.map +1 -1
  38. package/fesm2022/mesgflow-ui-kit-drawer.mjs +109 -0
  39. package/fesm2022/mesgflow-ui-kit-drawer.mjs.map +1 -0
  40. package/fesm2022/mesgflow-ui-kit-dropzone.mjs +3 -3
  41. package/fesm2022/mesgflow-ui-kit-dropzone.mjs.map +1 -1
  42. package/fesm2022/mesgflow-ui-kit-field.mjs +53 -12
  43. package/fesm2022/mesgflow-ui-kit-field.mjs.map +1 -1
  44. package/fesm2022/mesgflow-ui-kit-file-upload.mjs +356 -0
  45. package/fesm2022/mesgflow-ui-kit-file-upload.mjs.map +1 -0
  46. package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs +131 -0
  47. package/fesm2022/mesgflow-ui-kit-i18n-tr.mjs.map +1 -1
  48. package/fesm2022/mesgflow-ui-kit-icon.mjs +6 -1
  49. package/fesm2022/mesgflow-ui-kit-icon.mjs.map +1 -1
  50. package/fesm2022/mesgflow-ui-kit-icons-lucide.mjs +371 -0
  51. package/fesm2022/mesgflow-ui-kit-icons-lucide.mjs.map +1 -0
  52. package/fesm2022/mesgflow-ui-kit-inline-edit.mjs +279 -0
  53. package/fesm2022/mesgflow-ui-kit-inline-edit.mjs.map +1 -0
  54. package/fesm2022/mesgflow-ui-kit-input.mjs +147 -4
  55. package/fesm2022/mesgflow-ui-kit-input.mjs.map +1 -1
  56. package/fesm2022/mesgflow-ui-kit-lightbox.mjs +299 -0
  57. package/fesm2022/mesgflow-ui-kit-lightbox.mjs.map +1 -0
  58. package/fesm2022/mesgflow-ui-kit-link.mjs +2 -2
  59. package/fesm2022/mesgflow-ui-kit-link.mjs.map +1 -1
  60. package/fesm2022/mesgflow-ui-kit-listbox.mjs +151 -0
  61. package/fesm2022/mesgflow-ui-kit-listbox.mjs.map +1 -0
  62. package/fesm2022/mesgflow-ui-kit-mention.mjs +283 -0
  63. package/fesm2022/mesgflow-ui-kit-mention.mjs.map +1 -0
  64. package/fesm2022/mesgflow-ui-kit-menu.mjs +169 -5
  65. package/fesm2022/mesgflow-ui-kit-menu.mjs.map +1 -1
  66. package/fesm2022/mesgflow-ui-kit-nav-menu.mjs +276 -0
  67. package/fesm2022/mesgflow-ui-kit-nav-menu.mjs.map +1 -0
  68. package/fesm2022/mesgflow-ui-kit-notification-center.mjs +281 -0
  69. package/fesm2022/mesgflow-ui-kit-notification-center.mjs.map +1 -0
  70. package/fesm2022/mesgflow-ui-kit-number-input.mjs +7 -4
  71. package/fesm2022/mesgflow-ui-kit-number-input.mjs.map +1 -1
  72. package/fesm2022/mesgflow-ui-kit-pagination.mjs +4 -3
  73. package/fesm2022/mesgflow-ui-kit-pagination.mjs.map +1 -1
  74. package/fesm2022/mesgflow-ui-kit-password-input.mjs +7 -2
  75. package/fesm2022/mesgflow-ui-kit-password-input.mjs.map +1 -1
  76. package/fesm2022/mesgflow-ui-kit-popover.mjs +9 -49
  77. package/fesm2022/mesgflow-ui-kit-popover.mjs.map +1 -1
  78. package/fesm2022/mesgflow-ui-kit-progress.mjs +162 -21
  79. package/fesm2022/mesgflow-ui-kit-progress.mjs.map +1 -1
  80. package/fesm2022/mesgflow-ui-kit-radio.mjs +4 -6
  81. package/fesm2022/mesgflow-ui-kit-radio.mjs.map +1 -1
  82. package/fesm2022/mesgflow-ui-kit-rating.mjs +2 -2
  83. package/fesm2022/mesgflow-ui-kit-rating.mjs.map +1 -1
  84. package/fesm2022/mesgflow-ui-kit-search-input.mjs +9 -5
  85. package/fesm2022/mesgflow-ui-kit-search-input.mjs.map +1 -1
  86. package/fesm2022/mesgflow-ui-kit-segmented-control.mjs +12 -8
  87. package/fesm2022/mesgflow-ui-kit-segmented-control.mjs.map +1 -1
  88. package/fesm2022/mesgflow-ui-kit-select.mjs +3 -2
  89. package/fesm2022/mesgflow-ui-kit-select.mjs.map +1 -1
  90. package/fesm2022/mesgflow-ui-kit-sidebar.mjs +16 -13
  91. package/fesm2022/mesgflow-ui-kit-sidebar.mjs.map +1 -1
  92. package/fesm2022/mesgflow-ui-kit-skeleton.mjs +4 -3
  93. package/fesm2022/mesgflow-ui-kit-skeleton.mjs.map +1 -1
  94. package/fesm2022/mesgflow-ui-kit-slider.mjs +250 -3
  95. package/fesm2022/mesgflow-ui-kit-slider.mjs.map +1 -1
  96. package/fesm2022/mesgflow-ui-kit-sortable.mjs +526 -0
  97. package/fesm2022/mesgflow-ui-kit-sortable.mjs.map +1 -0
  98. package/fesm2022/mesgflow-ui-kit-spinner.mjs +42 -13
  99. package/fesm2022/mesgflow-ui-kit-spinner.mjs.map +1 -1
  100. package/fesm2022/mesgflow-ui-kit-split-button.mjs +205 -0
  101. package/fesm2022/mesgflow-ui-kit-split-button.mjs.map +1 -0
  102. package/fesm2022/mesgflow-ui-kit-splitter.mjs +210 -3
  103. package/fesm2022/mesgflow-ui-kit-splitter.mjs.map +1 -1
  104. package/fesm2022/mesgflow-ui-kit-stat-tile.mjs +11 -4
  105. package/fesm2022/mesgflow-ui-kit-stat-tile.mjs.map +1 -1
  106. package/fesm2022/mesgflow-ui-kit-stepper.mjs +167 -60
  107. package/fesm2022/mesgflow-ui-kit-stepper.mjs.map +1 -1
  108. package/fesm2022/mesgflow-ui-kit-switch.mjs +2 -2
  109. package/fesm2022/mesgflow-ui-kit-switch.mjs.map +1 -1
  110. package/fesm2022/mesgflow-ui-kit-table.mjs +16 -10
  111. package/fesm2022/mesgflow-ui-kit-table.mjs.map +1 -1
  112. package/fesm2022/mesgflow-ui-kit-tabs.mjs +410 -169
  113. package/fesm2022/mesgflow-ui-kit-tabs.mjs.map +1 -1
  114. package/fesm2022/mesgflow-ui-kit-tag-input.mjs +7 -2
  115. package/fesm2022/mesgflow-ui-kit-tag-input.mjs.map +1 -1
  116. package/fesm2022/mesgflow-ui-kit-theming.mjs +4 -4
  117. package/fesm2022/mesgflow-ui-kit-theming.mjs.map +1 -1
  118. package/fesm2022/mesgflow-ui-kit-time-picker.mjs +3 -3
  119. package/fesm2022/mesgflow-ui-kit-time-picker.mjs.map +1 -1
  120. package/fesm2022/mesgflow-ui-kit-toast.mjs +113 -30
  121. package/fesm2022/mesgflow-ui-kit-toast.mjs.map +1 -1
  122. package/fesm2022/mesgflow-ui-kit-toggle.mjs +3 -2
  123. package/fesm2022/mesgflow-ui-kit-toggle.mjs.map +1 -1
  124. package/fesm2022/mesgflow-ui-kit-toolbar.mjs +4 -2
  125. package/fesm2022/mesgflow-ui-kit-toolbar.mjs.map +1 -1
  126. package/fesm2022/mesgflow-ui-kit-tooltip.mjs +73 -50
  127. package/fesm2022/mesgflow-ui-kit-tooltip.mjs.map +1 -1
  128. package/fesm2022/mesgflow-ui-kit-tour.mjs +8 -20
  129. package/fesm2022/mesgflow-ui-kit-tour.mjs.map +1 -1
  130. package/fesm2022/mesgflow-ui-kit-transfer-list.mjs +288 -0
  131. package/fesm2022/mesgflow-ui-kit-transfer-list.mjs.map +1 -0
  132. package/fesm2022/mesgflow-ui-kit-tree.mjs +1 -1
  133. package/fesm2022/mesgflow-ui-kit-tree.mjs.map +1 -1
  134. package/fesm2022/mesgflow-ui-kit-virtual-list.mjs +109 -0
  135. package/fesm2022/mesgflow-ui-kit-virtual-list.mjs.map +1 -0
  136. package/fesm2022/mesgflow-ui-kit.mjs +92 -12836
  137. package/fesm2022/mesgflow-ui-kit.mjs.map +1 -1
  138. package/package.json +87 -3
  139. package/schematics/collection.json +10 -0
  140. package/schematics/migration.json +10 -0
  141. package/schematics/migrations/v0-7.cjs +70 -0
  142. package/schematics/ng-add/index.cjs +234 -0
  143. package/schematics/ng-add/schema.json +43 -0
  144. package/tokens/color.css +96 -0
  145. package/tokens/controls.css +145 -0
  146. package/tokens/elevation.css +62 -6
  147. package/tokens/motion.css +304 -66
  148. package/tokens/radius.css +14 -0
  149. package/tokens.css +1 -0
  150. package/tokens.json +1583 -0
  151. package/types/mesgflow-ui-kit-agenda.d.ts +49 -0
  152. package/types/mesgflow-ui-kit-aspect-ratio.d.ts +18 -0
  153. package/types/mesgflow-ui-kit-blocks.d.ts +128 -0
  154. package/types/mesgflow-ui-kit-button.d.ts +23 -38
  155. package/types/mesgflow-ui-kit-card.d.ts +26 -16
  156. package/types/mesgflow-ui-kit-carousel.d.ts +51 -0
  157. package/types/mesgflow-ui-kit-checkbox.d.ts +8 -5
  158. package/types/mesgflow-ui-kit-code-block.d.ts +4 -1
  159. package/types/mesgflow-ui-kit-combobox.d.ts +47 -22
  160. package/types/mesgflow-ui-kit-core.d.ts +271 -21
  161. package/types/mesgflow-ui-kit-countdown.d.ts +47 -0
  162. package/types/mesgflow-ui-kit-date-picker.d.ts +31 -1
  163. package/types/mesgflow-ui-kit-dialog.d.ts +29 -6
  164. package/types/mesgflow-ui-kit-drawer.d.ts +45 -0
  165. package/types/mesgflow-ui-kit-field.d.ts +17 -8
  166. package/types/mesgflow-ui-kit-file-upload.d.ts +64 -0
  167. package/types/mesgflow-ui-kit-hover-card.d.ts +2 -2
  168. package/types/mesgflow-ui-kit-icons-lucide.d.ts +27 -0
  169. package/types/mesgflow-ui-kit-inline-edit.d.ts +42 -0
  170. package/types/mesgflow-ui-kit-input.d.ts +64 -2
  171. package/types/mesgflow-ui-kit-lightbox.d.ts +54 -0
  172. package/types/mesgflow-ui-kit-listbox.d.ts +30 -0
  173. package/types/mesgflow-ui-kit-mention.d.ts +59 -0
  174. package/types/mesgflow-ui-kit-menu.d.ts +41 -2
  175. package/types/mesgflow-ui-kit-nav-menu.d.ts +58 -0
  176. package/types/mesgflow-ui-kit-notification-center.d.ts +41 -0
  177. package/types/mesgflow-ui-kit-number-input.d.ts +3 -1
  178. package/types/mesgflow-ui-kit-password-input.d.ts +3 -1
  179. package/types/mesgflow-ui-kit-popover.d.ts +13 -5
  180. package/types/mesgflow-ui-kit-progress.d.ts +33 -12
  181. package/types/mesgflow-ui-kit-radio.d.ts +2 -2
  182. package/types/mesgflow-ui-kit-search-input.d.ts +3 -1
  183. package/types/mesgflow-ui-kit-segmented-control.d.ts +4 -0
  184. package/types/mesgflow-ui-kit-sidebar.d.ts +1 -1
  185. package/types/mesgflow-ui-kit-slider.d.ts +60 -1
  186. package/types/mesgflow-ui-kit-sortable.d.ts +103 -0
  187. package/types/mesgflow-ui-kit-spinner.d.ts +5 -8
  188. package/types/mesgflow-ui-kit-split-button.d.ts +47 -0
  189. package/types/mesgflow-ui-kit-splitter.d.ts +64 -1
  190. package/types/mesgflow-ui-kit-stat-tile.d.ts +3 -0
  191. package/types/mesgflow-ui-kit-stepper.d.ts +54 -32
  192. package/types/mesgflow-ui-kit-table.d.ts +2 -0
  193. package/types/mesgflow-ui-kit-tabs.d.ts +193 -93
  194. package/types/mesgflow-ui-kit-tag-input.d.ts +3 -1
  195. package/types/mesgflow-ui-kit-toast.d.ts +48 -22
  196. package/types/mesgflow-ui-kit-tooltip.d.ts +15 -12
  197. package/types/mesgflow-ui-kit-transfer-list.d.ts +34 -0
  198. package/types/mesgflow-ui-kit-virtual-list.d.ts +35 -0
  199. package/types/mesgflow-ui-kit.d.ts +87 -5444
@@ -1,9 +1,72 @@
1
1
  import { clsx } from 'clsx';
2
- import { twMerge } from 'tailwind-merge';
3
- import { InjectionToken, signal, inject, computed, isSignal, makeEnvironmentProviders } from '@angular/core';
2
+ import { extendTailwindMerge } from 'tailwind-merge';
3
+ import * as i0 from '@angular/core';
4
+ import { input, inject, ElementRef, afterRenderEffect, DestroyRef, afterNextRender, Directive, InjectionToken, signal, computed, isSignal, makeEnvironmentProviders } from '@angular/core';
4
5
  import { enUS } from 'date-fns/locale';
5
6
 
6
- /** clsx ile koşullu class'ları birleştirir, tailwind-merge ile çakışan utility'leri (ör. iki farklı `bg-*`) sonuncusu kazanacak şekilde çözer. */
7
+ /**
8
+ * Kitin kendi utility'lerini tanıyan tailwind-merge örneği. Öncesinde düz
9
+ * `twMerge` `text-eyebrow`'u bir METİN RENGİ sanıp `text-fg` ile çakıştırıyor
10
+ * (birini siliyor), `h-control-md` ile `h-8`'i ise hiç çözemiyordu (ikisi de
11
+ * kalıp CSS sırası kazananı belirliyordu) — `docs/tr/mimari.md` "twMerge
12
+ * gotcha" artık bu yapılandırmayla kapandı. Yeni bir özel utility
13
+ * (`@utility`/`@theme` ile) eklerken buraya da ekleyin.
14
+ */
15
+ const twMerge = extendTailwindMerge({
16
+ extend: {
17
+ theme: {
18
+ text: [
19
+ 'label',
20
+ 'caption',
21
+ 'eyebrow',
22
+ 'title-sm',
23
+ 'title',
24
+ 'title-lg',
25
+ 'display',
26
+ 'display-lg',
27
+ 'metric',
28
+ ],
29
+ shadow: ['1', '2', '3', 'control', 'filled', 'glow', 'highlight'],
30
+ ease: ['emphasis', 'spring', 'exit'],
31
+ animate: [
32
+ 'progress-slide',
33
+ 'spin-slow',
34
+ 'dialog-in',
35
+ 'dialog-out',
36
+ 'sheet-in',
37
+ 'sheet-out',
38
+ 'drawer-in',
39
+ 'drawer-out',
40
+ 'drawer-start-in',
41
+ 'drawer-start-out',
42
+ 'drawer-top-in',
43
+ 'drawer-top-out',
44
+ 'pop',
45
+ 'overlay-in',
46
+ 'overlay-out',
47
+ 'toast-in',
48
+ 'toast-out',
49
+ 'countdown',
50
+ 'list-in',
51
+ 'draw',
52
+ 'shimmer',
53
+ 'fade-in',
54
+ ],
55
+ font: ['display'],
56
+ tracking: ['label'],
57
+ },
58
+ classGroups: {
59
+ 'h-control': [{ 'h-control': ['xs', 'sm', 'md', 'lg', 'xl'] }],
60
+ duration: [{ duration: ['instant', 'fast', 'base', 'slow', 'slower'] }],
61
+ z: [{ z: ['sticky', 'nav', 'overlay', 'toast'] }],
62
+ },
63
+ conflictingClassGroups: {
64
+ 'h-control': ['h', 'size'],
65
+ h: ['h-control'],
66
+ },
67
+ },
68
+ });
69
+ /** clsx ile koşullu class'ları birleştirir, tailwind-merge ile çakışan utility'leri (ör. iki farklı `bg-*`) sonuncusu kazanacak şekilde çözer — kitin özel token'ları dahil. */
7
70
  function cn(...inputs) {
8
71
  return twMerge(clsx(inputs));
9
72
  }
@@ -47,9 +110,11 @@ const disabledRecipe = 'disabled:pointer-events-none disabled:opacity-50 disable
47
110
  const controlSurface = 'rounded-md border border-border bg-surface text-fg shadow-control transition-colors duration-fast ease-emphasis hover:border-border-strong focus-within:border-accent';
48
111
  /** `size: MfSize` eksenindeki TÜM kontrollerin ortak yükseklik/dolgu/font eşlemesi — bkz. `radius.css`'teki `--control-h-*` token'ları. */
49
112
  const controlSize = {
113
+ xs: 'h-control-xs px-2 text-xs',
50
114
  sm: 'h-control-sm px-2.5 text-sm',
51
115
  md: 'h-control-md px-3 text-sm',
52
116
  lg: 'h-control-lg px-3.5 text-base',
117
+ xl: 'h-control-xl px-4 text-base',
53
118
  };
54
119
  /**
55
120
  * Popover/Menu/Select/Combobox/... overlay panellerinin ortak kabuğu — BORDER-
@@ -121,135 +186,233 @@ class ValueAccessorBase {
121
186
  }
122
187
  }
123
188
 
189
+ const OPPOSITE = { top: 'bottom', bottom: 'top', start: 'end', end: 'start' };
190
+ function split(placement) {
191
+ const [rawSide, rawAlign] = placement.split('-');
192
+ const side = rawSide === 'left' ? 'start' : rawSide === 'right' ? 'end' : rawSide;
193
+ return [side, rawAlign ?? 'center'];
194
+ }
195
+ function position(side, align, offset) {
196
+ if (side === 'top' || side === 'bottom') {
197
+ const below = side === 'bottom';
198
+ return {
199
+ originX: align,
200
+ originY: below ? 'bottom' : 'top',
201
+ overlayX: align,
202
+ overlayY: below ? 'top' : 'bottom',
203
+ offsetY: below ? offset : -offset,
204
+ // Panel aşağıdaysa ÜSTÜNDEN (tetikleyiciye bakan kenarından) büyür.
205
+ panelClass: [`mf-side-${side}`, `mf-origin-${below ? 'top' : 'bottom'}-${align}`],
206
+ };
207
+ }
208
+ const atEnd = side === 'end';
209
+ const alignY = align === 'start' ? 'top' : align === 'end' ? 'bottom' : 'center';
210
+ return {
211
+ originX: atEnd ? 'end' : 'start',
212
+ originY: alignY,
213
+ overlayX: atEnd ? 'start' : 'end',
214
+ overlayY: alignY,
215
+ offsetX: atEnd ? offset : -offset,
216
+ panelClass: [`mf-side-${side}`, `mf-origin-${alignY}-${atEnd ? 'start' : 'end'}`],
217
+ };
218
+ }
124
219
  /**
125
- * `Popover`'ın (`PLACEMENTS`) ve `Tooltip`'in (`POSITIONS`) kendi dosyalarında
126
- * ayrı ayrı tuttuğu CDK `ConnectedPosition[]` çiftlerinin ORTAK geometri
127
- * üretici hâli — 8 yerleşimin (4 köşe + 4 kenar) hepsini tek bir fonksiyonla
128
- * üretir, `offset` çağıranın KENDİ mevcut değerini (Popover 4px, Tooltip 8px,
129
- * diğer overlay'ler 4-8px arası değişen) korumasını sağlar.
220
+ * Tüm bağlı overlay'lerin (Popover, Tooltip, HoverCard, Tour, ContextMenu ve
221
+ * Popover üstüne kurulan Select/Combobox/DatePicker/...) TEK konum üreticisi:
222
+ * tercih edilen yerleşim + taşmada karşı tarafa çevrilen (flip) yedek.
130
223
  *
131
- * Bu modül BİLEREK henüz hiçbir bileşene BAĞLANMADI (Faz 0c) — `Popover`,
132
- * `Tooltip` ve 10 kopya `ConnectedPosition[]` içeren diğer bileşenlerin buna
133
- * geçişi Faz 1c'nin ("Overlay birleştirme") kapsamı: her biri kendi klavye/
134
- * vurgu mantığını koruyarak taşınmalı ve tarayıcıda tek tek doğrulanmalı —
135
- * bu fazın (yapısal taşıma) riskiyle karıştırılmamalı.
224
+ * Her pozisyon bir `panelClass` taşır — CDK hangisini SEÇERSE pane'e o
225
+ * eklenir: `mf-side-*` (giriş kayma yönü) + `mf-origin-*` (`transform-origin`),
226
+ * bkz. styles/tokens/motion.css. Böylece panel yukarı çevrildiğinde (flip) animasyon
227
+ * da tetikleyiciden dışarı doğru açılır (Radix
228
+ * `--radix-popper-transform-origin` eşleniği, abonelik gerekmeden).
229
+ *
230
+ * `left`/`right` MANTIKSAL (`start`/`end`) — RTL'de CDK kendisi çevirir.
136
231
  */
137
232
  function overlayPositions(placement, offset = 4) {
138
- switch (placement) {
139
- case 'bottom-start':
140
- return [
141
- {
142
- originX: 'start',
143
- originY: 'bottom',
144
- overlayX: 'start',
145
- overlayY: 'top',
146
- offsetY: offset,
147
- },
148
- {
149
- originX: 'start',
150
- originY: 'top',
151
- overlayX: 'start',
152
- overlayY: 'bottom',
153
- offsetY: -offset,
154
- },
155
- ];
156
- case 'bottom-end':
157
- return [
158
- { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: offset },
159
- { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -offset },
160
- ];
161
- case 'top-start':
162
- return [
163
- {
164
- originX: 'start',
165
- originY: 'top',
166
- overlayX: 'start',
167
- overlayY: 'bottom',
168
- offsetY: -offset,
169
- },
170
- {
171
- originX: 'start',
172
- originY: 'bottom',
173
- overlayX: 'start',
174
- overlayY: 'top',
175
- offsetY: offset,
176
- },
177
- ];
178
- case 'top-end':
179
- return [
180
- { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom', offsetY: -offset },
181
- { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top', offsetY: offset },
182
- ];
183
- case 'top':
184
- return [
185
- {
186
- originX: 'center',
187
- originY: 'top',
188
- overlayX: 'center',
189
- overlayY: 'bottom',
190
- offsetY: -offset,
191
- },
192
- {
193
- originX: 'center',
194
- originY: 'bottom',
195
- overlayX: 'center',
196
- overlayY: 'top',
197
- offsetY: offset,
198
- },
199
- ];
200
- case 'bottom':
201
- return [
202
- {
203
- originX: 'center',
204
- originY: 'bottom',
205
- overlayX: 'center',
206
- overlayY: 'top',
207
- offsetY: offset,
208
- },
209
- {
210
- originX: 'center',
211
- originY: 'top',
212
- overlayX: 'center',
213
- overlayY: 'bottom',
214
- offsetY: -offset,
215
- },
216
- ];
217
- case 'left':
218
- return [
219
- {
220
- originX: 'start',
221
- originY: 'center',
222
- overlayX: 'end',
223
- overlayY: 'center',
224
- offsetX: -offset,
225
- },
226
- {
227
- originX: 'end',
228
- originY: 'center',
229
- overlayX: 'start',
230
- overlayY: 'center',
231
- offsetX: offset,
232
- },
233
- ];
234
- case 'right':
235
- return [
236
- {
237
- originX: 'end',
238
- originY: 'center',
239
- overlayX: 'start',
240
- overlayY: 'center',
241
- offsetX: offset,
242
- },
243
- {
244
- originX: 'start',
245
- originY: 'center',
246
- overlayX: 'end',
247
- overlayY: 'center',
248
- offsetX: -offset,
249
- },
250
- ];
233
+ const [side, align] = split(placement);
234
+ return [position(side, align, offset), position(OPPOSITE[side], align, offset)];
235
+ }
236
+ /**
237
+ * İmleç konumuna açılan paneller (ContextMenu) — köşe tetikleyiciye yapışık,
238
+ * dört çeyrekte flip; origin her zaman imlece bakan köşe.
239
+ */
240
+ function pointerPositions() {
241
+ return [
242
+ {
243
+ originX: 'start',
244
+ originY: 'top',
245
+ overlayX: 'start',
246
+ overlayY: 'top',
247
+ panelClass: ['mf-side-bottom', 'mf-origin-top-start'],
248
+ },
249
+ {
250
+ originX: 'start',
251
+ originY: 'top',
252
+ overlayX: 'start',
253
+ overlayY: 'bottom',
254
+ panelClass: ['mf-side-top', 'mf-origin-bottom-start'],
255
+ },
256
+ {
257
+ originX: 'start',
258
+ originY: 'top',
259
+ overlayX: 'end',
260
+ overlayY: 'top',
261
+ panelClass: ['mf-side-bottom', 'mf-origin-top-end'],
262
+ },
263
+ {
264
+ originX: 'start',
265
+ originY: 'top',
266
+ overlayX: 'end',
267
+ overlayY: 'bottom',
268
+ panelClass: ['mf-side-top', 'mf-origin-bottom-end'],
269
+ },
270
+ ];
271
+ }
272
+
273
+ /** `prefers-reduced-motion: reduce` — SSR/jsdom'da (matchMedia yok) `false`. */
274
+ function prefersReducedMotion() {
275
+ return (typeof matchMedia !== 'undefined' && matchMedia('(prefers-reduced-motion: reduce)').matches);
276
+ }
277
+ /** CSS süre string'ini (`120ms`, `0.2s`) milisaniyeye çevirir; çözülemezse `null`. */
278
+ function parseCssDuration(raw) {
279
+ const value = raw.trim();
280
+ const match = /^(-?\d*\.?\d+)(ms|s)$/.exec(value);
281
+ if (!match)
282
+ return null;
283
+ const n = Number(match[1]);
284
+ return match[2] === 's' ? n * 1000 : n;
285
+ }
286
+ const DEFAULT_EXIT_MS = 120;
287
+ /**
288
+ * Overlay/dialog/toast çıkış animasyonunun süresi — `--mf-duration-exit`
289
+ * (styles/tokens/motion.css) TEK kaynak. Eskiden `dialog.service.ts`,
290
+ * `popover.ts`, `toast.service.ts` her biri `EXIT_MS = 120` sabitini CSS'le
291
+ * ELLE eşitliyordu; token değişince JS kısa kalıp panel animasyonun ortasında
292
+ * kopuyordu. Reduced-motion'da `0` (panel anında kaldırılır).
293
+ */
294
+ function exitDurationMs() {
295
+ if (prefersReducedMotion())
296
+ return 0;
297
+ if (typeof document === 'undefined' || typeof getComputedStyle === 'undefined') {
298
+ return DEFAULT_EXIT_MS;
299
+ }
300
+ const raw = getComputedStyle(document.documentElement).getPropertyValue('--mf-duration-exit');
301
+ return parseCssDuration(raw) ?? DEFAULT_EXIT_MS;
302
+ }
303
+
304
+ /**
305
+ * `<span mfSlidingIndicator [track]="selected()" class="-bottom-px h-0.5 bg-accent-fill"></span>`
306
+ *
307
+ * Kitin ortak "kayan gösterge" motoru — Tabs'ın çizgisi/hapı, SegmentedControl'ün
308
+ * parçası, TabNav'ın çizgisi ve hover-izleme vurgusu AYNI hareketi paylaşsın diye.
309
+ * Kapsayıcı (varsayılan `parentElement`, `relative` olmalı) içinde `target`'ı
310
+ * bulur, onun `offsetLeft/offsetWidth`'ine (x) ya da `offsetTop/offsetHeight`'ına
311
+ * (y) göre `transform` + boyut yazar.
312
+ *
313
+ * - **Hareket:** hedef bir öğeden BAŞKA bir öğeye geçince yay eğrisiyle kayar
314
+ * (`ease-spring`, `duration-slow`). İlk görünüm, hedefin yeniden belirmesi ve
315
+ * yeniden boyutlanma (ResizeObserver, font yüklenmesi) ANINDA — göstergenin
316
+ * 0'dan "uçarak" gelmesi olmaz. Opaklık her zaman yumuşak geçer.
317
+ * - **Çapraz eksen** tüketicinin sınıfıdır (`-bottom-px h-0.5`, `inset-y-0`…);
318
+ * motor yalnız ana ekseni yazar.
319
+ * - **RTL:** `left-0` + `offsetLeft` + `translateX` üçü de fiziksel — birlikte
320
+ * RTL'de doğru (bkz. scripts/rtl-rules.mjs allowlist).
321
+ * - `target` `null` ise gösterge son konumunda solar (hover bitişi).
322
+ * - Azaltılmış harekette `motion.css`'in global anahtarı geçişleri sıfırlar.
323
+ */
324
+ class SlidingIndicator {
325
+ axis = input('x', /* @ts-ignore */
326
+ ...(ngDevMode ? [{ debugName: "axis" }] : /* istanbul ignore next */ []));
327
+ /** Kapsayıcı içinde çözülen CSS seçici, somut bir öğe ya da `null` (gizli). */
328
+ target = input('[aria-selected="true"]', /* @ts-ignore */
329
+ ...(ngDevMode ? [{ debugName: "target" }] : /* istanbul ignore next */ []));
330
+ /** Herhangi bir değer — değişince (ör. seçim sinyali) hedef yeniden ölçülür. */
331
+ track = input(/* @ts-ignore */
332
+ ...(ngDevMode ? [undefined, { debugName: "track" }] : /* istanbul ignore next */ []));
333
+ /** Ölçüm kapsayıcısı; varsayılan `parentElement` (offsetParent olmalı). */
334
+ container = input(/* @ts-ignore */
335
+ ...(ngDevMode ? [undefined, { debugName: "container" }] : /* istanbul ignore next */ []));
336
+ el = inject(ElementRef).nativeElement;
337
+ current = null;
338
+ constructor() {
339
+ afterRenderEffect(() => {
340
+ this.target();
341
+ this.track();
342
+ this.axis();
343
+ this.update(true);
344
+ });
345
+ const destroyRef = inject(DestroyRef);
346
+ afterNextRender(() => {
347
+ const box = this.box();
348
+ if (!box || typeof ResizeObserver === 'undefined')
349
+ return;
350
+ const observer = new ResizeObserver(() => this.update(false));
351
+ observer.observe(box);
352
+ destroyRef.onDestroy(() => observer.disconnect());
353
+ });
354
+ }
355
+ /** Dışarıdan yeniden ölçüm (ör. içerik değişti ama seçim değişmedi). */
356
+ refresh(animate = false) {
357
+ this.update(animate);
358
+ }
359
+ box() {
360
+ return this.container() ?? this.el.parentElement;
361
+ }
362
+ resolve() {
363
+ const target = this.target();
364
+ if (!target)
365
+ return null;
366
+ if (typeof target !== 'string')
367
+ return target;
368
+ return this.box()?.querySelector(target) ?? null;
369
+ }
370
+ update(allowAnimate) {
371
+ const target = this.resolve();
372
+ const style = this.el.style;
373
+ if (!target) {
374
+ style.opacity = '0';
375
+ this.current = null;
376
+ return;
377
+ }
378
+ const animate = allowAnimate && this.current !== null && this.current !== target;
379
+ // Anında yol: geometri geçişsiz yazılır, opaklık yine yumuşak kalır.
380
+ if (!animate)
381
+ style.transitionProperty = 'opacity';
382
+ if (this.axis() === 'y') {
383
+ style.transform = `translateY(${target.offsetTop}px)`;
384
+ style.height = `${target.offsetHeight}px`;
385
+ style.width = '';
386
+ }
387
+ else {
388
+ style.transform = `translateX(${target.offsetLeft}px)`;
389
+ style.width = `${target.offsetWidth}px`;
390
+ style.height = '';
391
+ }
392
+ style.opacity = '1';
393
+ if (!animate) {
394
+ // Yeniden akışı zorla ki geçiş özelliği geri gelince konum değişimi animasyonlanmasın.
395
+ void this.el.getBoundingClientRect();
396
+ style.transitionProperty = '';
397
+ }
398
+ this.current = target;
251
399
  }
400
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SlidingIndicator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
401
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: SlidingIndicator, isStandalone: true, selector: "[mfSlidingIndicator]", inputs: { axis: { classPropertyName: "axis", publicName: "axis", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, track: { classPropertyName: "track", publicName: "track", isSignal: true, isRequired: false, transformFunction: null }, container: { classPropertyName: "container", publicName: "container", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "aria-hidden": "true" }, properties: { "class.left-0": "axis() === 'x'", "class.top-0": "axis() === 'y'" }, classAttribute: "pointer-events-none absolute opacity-0 transition-[transform,width,height,opacity] duration-slow ease-spring" }, exportAs: ["mfSlidingIndicator"], ngImport: i0 });
252
402
  }
403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SlidingIndicator, decorators: [{
404
+ type: Directive,
405
+ args: [{
406
+ selector: '[mfSlidingIndicator]',
407
+ exportAs: 'mfSlidingIndicator',
408
+ host: {
409
+ class: 'pointer-events-none absolute opacity-0 transition-[transform,width,height,opacity] duration-slow ease-spring',
410
+ '[class.left-0]': "axis() === 'x'",
411
+ '[class.top-0]': "axis() === 'y'",
412
+ 'aria-hidden': 'true',
413
+ },
414
+ }]
415
+ }], ctorParameters: () => [], propDecorators: { axis: [{ type: i0.Input, args: [{ isSignal: true, alias: "axis", required: false }] }], target: [{ type: i0.Input, args: [{ isSignal: true, alias: "target", required: false }] }], track: [{ type: i0.Input, args: [{ isSignal: true, alias: "track", required: false }] }], container: [{ type: i0.Input, args: [{ isSignal: true, alias: "container", required: false }] }] } });
253
416
 
254
417
  function isPlainObject(value) {
255
418
  return typeof value === 'object' && value !== null && !Array.isArray(value);
@@ -319,6 +482,8 @@ const mfLabelsEn = {
319
482
  presetLast7: 'Last 7 days',
320
483
  presetLast30: 'Last 30 days',
321
484
  presetThisMonth: 'This month',
485
+ date: 'Date',
486
+ time: 'Time',
322
487
  },
323
488
  timePicker: {
324
489
  placeholder: 'hh:mm',
@@ -428,6 +593,8 @@ const mfLabelsEn = {
428
593
  combobox: {
429
594
  placeholder: 'Search...',
430
595
  noResults: 'No results',
596
+ create: 'Create “{query}”',
597
+ remove: 'Remove {label}',
431
598
  },
432
599
  select: {
433
600
  placeholder: 'Select',
@@ -445,6 +612,9 @@ const mfLabelsEn = {
445
612
  },
446
613
  stepper: {
447
614
  ariaLabel: 'Steps',
615
+ optional: 'Optional',
616
+ completed: 'Completed',
617
+ error: 'Needs attention',
448
618
  },
449
619
  progress: {
450
620
  ariaLabel: 'Progress',
@@ -520,6 +690,130 @@ const mfLabelsEn = {
520
690
  searchPlaceholder: 'Search…',
521
691
  noResults: 'No results',
522
692
  },
693
+ statTile: {
694
+ increase: 'Increase',
695
+ decrease: 'Decrease',
696
+ noChange: 'No change',
697
+ },
698
+ slider: {
699
+ minThumb: 'Minimum',
700
+ maxThumb: 'Maximum',
701
+ },
702
+ splitButton: {
703
+ moreActions: 'More actions',
704
+ },
705
+ fileUpload: {
706
+ uploading: 'Uploading…',
707
+ done: 'Uploaded',
708
+ failed: 'Upload failed',
709
+ queued: 'Waiting…',
710
+ retry: 'Retry',
711
+ cancel: 'Cancel',
712
+ remove: 'Remove',
713
+ files: '{count} files',
714
+ },
715
+ sortable: {
716
+ instructions: 'Press Space to pick up, arrow keys to move, Space to drop, Escape to cancel.',
717
+ grabbed: '{item} grabbed. Position {position} of {total}.',
718
+ moved: '{item} moved to position {position} of {total}.',
719
+ movedToColumn: '{item} moved to {column}, position {position} of {total}.',
720
+ dropped: '{item} dropped at position {position} of {total}.',
721
+ cancelled: 'Move cancelled. {item} returned to position {position}.',
722
+ dragHandle: 'Reorder {item}',
723
+ card: 'card',
724
+ },
725
+ countdown: {
726
+ days: 'days',
727
+ hours: 'hours',
728
+ minutes: 'minutes',
729
+ seconds: 'seconds',
730
+ remaining: '{time} remaining',
731
+ finished: 'Time is up',
732
+ },
733
+ carousel: {
734
+ previous: 'Previous slide',
735
+ next: 'Next slide',
736
+ slide: '{index} of {total}',
737
+ pause: 'Pause autoplay',
738
+ play: 'Start autoplay',
739
+ goTo: 'Go to slide {index}',
740
+ carousel: 'Carousel',
741
+ },
742
+ inlineEdit: {
743
+ edit: 'Edit',
744
+ save: 'Save',
745
+ cancel: 'Cancel',
746
+ empty: 'Click to add',
747
+ },
748
+ transferList: {
749
+ available: 'Available',
750
+ selected: 'Selected',
751
+ moveRight: 'Move selected right',
752
+ moveLeft: 'Move selected left',
753
+ moveAllRight: 'Move all right',
754
+ moveAllLeft: 'Move all left',
755
+ search: 'Search',
756
+ count: '{selected} of {total} selected',
757
+ empty: 'No items',
758
+ },
759
+ lightbox: {
760
+ close: 'Close',
761
+ previous: 'Previous image',
762
+ next: 'Next image',
763
+ zoomIn: 'Zoom in',
764
+ zoomOut: 'Zoom out',
765
+ counter: '{index} of {total}',
766
+ gallery: 'Image viewer',
767
+ },
768
+ notificationCenter: {
769
+ title: 'Notifications',
770
+ markAllRead: 'Mark all as read',
771
+ empty: 'You are all caught up',
772
+ emptyDescription: 'New notifications will show up here.',
773
+ unread: 'Unread',
774
+ trigger: 'Notifications, {count} unread',
775
+ viewAll: 'View all',
776
+ },
777
+ agenda: {
778
+ allDay: 'All day',
779
+ empty: 'Nothing scheduled',
780
+ today: 'Today',
781
+ tomorrow: 'Tomorrow',
782
+ },
783
+ mention: {
784
+ suggestions: 'Suggestions',
785
+ noResults: 'No matches',
786
+ },
787
+ panelGroup: {
788
+ resize: 'Resize panel {index}',
789
+ },
790
+ authCard: {
791
+ title: 'Welcome back',
792
+ description: 'Sign in to continue to your workspace.',
793
+ email: 'Email',
794
+ emailPlaceholder: 'you@company.com',
795
+ password: 'Password',
796
+ forgotPassword: 'Forgot password?',
797
+ remember: 'Keep me signed in',
798
+ submit: 'Sign in',
799
+ divider: 'or continue with email',
800
+ noAccount: 'New here?',
801
+ signUp: 'Create an account',
802
+ emailRequired: 'Email is required',
803
+ emailInvalid: 'Enter a valid email',
804
+ passwordRequired: 'Password is required',
805
+ errorTitle: 'Sign-in failed',
806
+ },
807
+ inviteMembers: {
808
+ title: 'Invite teammates',
809
+ description: 'They will receive an email with a link to join.',
810
+ emails: 'Email addresses',
811
+ emailsPlaceholder: 'name@company.com, press Enter',
812
+ role: 'Role',
813
+ submit: 'Send invites',
814
+ invalidEmails: 'Not valid: {emails}',
815
+ emailsRequired: 'Add at least one email address',
816
+ },
523
817
  };
524
818
 
525
819
  /**
@@ -583,6 +877,22 @@ const MF_TOUR_LABELS = labelToken('tour', 'tour');
583
877
  const MF_RATING_LABELS = labelToken('rating', 'rating');
584
878
  const MF_THEME_SWITCHER_LABELS = labelToken('themeSwitcher', 'theme-switcher');
585
879
  const MF_TREE_SELECT_LABELS = labelToken('treeSelect', 'tree-select');
880
+ const MF_STAT_TILE_LABELS = labelToken('statTile', 'stat-tile');
881
+ const MF_SLIDER_LABELS = labelToken('slider', 'slider');
882
+ const MF_SPLIT_BUTTON_LABELS = labelToken('splitButton', 'split-button');
883
+ const MF_FILE_UPLOAD_LABELS = labelToken('fileUpload', 'file-upload');
884
+ const MF_SORTABLE_LABELS = labelToken('sortable', 'sortable');
885
+ const MF_COUNTDOWN_LABELS = labelToken('countdown', 'countdown');
886
+ const MF_CAROUSEL_LABELS = labelToken('carousel', 'carousel');
887
+ const MF_INLINE_EDIT_LABELS = labelToken('inlineEdit', 'inline-edit');
888
+ const MF_TRANSFER_LIST_LABELS = labelToken('transferList', 'transfer-list');
889
+ const MF_LIGHTBOX_LABELS = labelToken('lightbox', 'lightbox');
890
+ const MF_NOTIFICATION_CENTER_LABELS = labelToken('notificationCenter', 'notification-center');
891
+ const MF_AGENDA_LABELS = labelToken('agenda', 'agenda');
892
+ const MF_MENTION_LABELS = labelToken('mention', 'mention');
893
+ const MF_PANEL_GROUP_LABELS = labelToken('panelGroup', 'panel-group');
894
+ const MF_AUTH_CARD_LABELS = labelToken('authCard', 'auth-card');
895
+ const MF_INVITE_MEMBERS_LABELS = labelToken('inviteMembers', 'invite-members');
586
896
 
587
897
  /**
588
898
  * `app.config.ts`'in `providers` dizisine eklenir — `MF_LABELS`/`MF_DATE_LOCALE`'ı
@@ -611,7 +921,10 @@ function provideMesgflowUi(options = {}) {
611
921
  }
612
922
  if (options.dateLocale) {
613
923
  const dateLocale = options.dateLocale;
614
- providers.push({ provide: MF_DATE_LOCALE, useFactory: () => signal(dateLocale) });
924
+ providers.push({
925
+ provide: MF_DATE_LOCALE,
926
+ useFactory: () => (isSignal(dateLocale) ? dateLocale : signal(dateLocale)),
927
+ });
615
928
  }
616
929
  return makeEnvironmentProviders(providers);
617
930
  }
@@ -620,5 +933,5 @@ function provideMesgflowUi(options = {}) {
620
933
  * Generated bundle index. Do not edit.
621
934
  */
622
935
 
623
- export { MF_ALERT_LABELS, MF_AVATAR_GROUP_LABELS, MF_BOX_INPUT_LABELS, MF_BREADCRUMB_LABELS, MF_CHARACTER_COUNT_LABELS, MF_CHART_LABELS, MF_CHIP_LABELS, MF_COLOR_PICKER_LABELS, MF_COMBOBOX_LABELS, MF_COMMAND_LABELS, MF_COMMON_LABELS, MF_COPY_LABELS, MF_DATE_LOCALE, MF_DATE_PICKER_LABELS, MF_DIALOG_LABELS, MF_DROPZONE_LABELS, MF_LABELS, MF_OTP_INPUT_LABELS, MF_PAGINATION_LABELS, MF_PASSWORD_INPUT_LABELS, MF_PROGRESS_LABELS, MF_RATING_LABELS, MF_SEARCH_INPUT_LABELS, MF_SELECT_LABELS, MF_SIDEBAR_LABELS, MF_STEPPER_LABELS, MF_TABLE_LABELS, MF_TABS_LABELS, MF_THEME_SWITCHER_LABELS, MF_TIME_PICKER_LABELS, MF_TOAST_LABELS, MF_TOUR_LABELS, MF_TREE_SELECT_LABELS, ValueAccessorBase, cn, containerSurface, controlSize, controlSurface, disabledRecipe, errorRecipe, focusRecipe, glassSurface, inlineStartRatio, isRtl, mergeLabels, mfLabelsEn, nextId, overlayPositions, overlaySurface, pressRecipe, provideMesgflowUi, scrollFromInlineStart, transitionRecipe };
936
+ export { MF_AGENDA_LABELS, MF_ALERT_LABELS, MF_AUTH_CARD_LABELS, MF_AVATAR_GROUP_LABELS, MF_BOX_INPUT_LABELS, MF_BREADCRUMB_LABELS, MF_CAROUSEL_LABELS, MF_CHARACTER_COUNT_LABELS, MF_CHART_LABELS, MF_CHIP_LABELS, MF_COLOR_PICKER_LABELS, MF_COMBOBOX_LABELS, MF_COMMAND_LABELS, MF_COMMON_LABELS, MF_COPY_LABELS, MF_COUNTDOWN_LABELS, MF_DATE_LOCALE, MF_DATE_PICKER_LABELS, MF_DIALOG_LABELS, MF_DROPZONE_LABELS, MF_FILE_UPLOAD_LABELS, MF_INLINE_EDIT_LABELS, MF_INVITE_MEMBERS_LABELS, MF_LABELS, MF_LIGHTBOX_LABELS, MF_MENTION_LABELS, MF_NOTIFICATION_CENTER_LABELS, MF_OTP_INPUT_LABELS, MF_PAGINATION_LABELS, MF_PANEL_GROUP_LABELS, MF_PASSWORD_INPUT_LABELS, MF_PROGRESS_LABELS, MF_RATING_LABELS, MF_SEARCH_INPUT_LABELS, MF_SELECT_LABELS, MF_SIDEBAR_LABELS, MF_SLIDER_LABELS, MF_SORTABLE_LABELS, MF_SPLIT_BUTTON_LABELS, MF_STAT_TILE_LABELS, MF_STEPPER_LABELS, MF_TABLE_LABELS, MF_TABS_LABELS, MF_THEME_SWITCHER_LABELS, MF_TIME_PICKER_LABELS, MF_TOAST_LABELS, MF_TOUR_LABELS, MF_TRANSFER_LIST_LABELS, MF_TREE_SELECT_LABELS, SlidingIndicator, ValueAccessorBase, cn, containerSurface, controlSize, controlSurface, disabledRecipe, errorRecipe, exitDurationMs, focusRecipe, glassSurface, inlineStartRatio, isRtl, mergeLabels, mfLabelsEn, nextId, overlayPositions, overlaySurface, parseCssDuration, pointerPositions, prefersReducedMotion, pressRecipe, provideMesgflowUi, scrollFromInlineStart, transitionRecipe };
624
937
  //# sourceMappingURL=mesgflow-ui-kit-core.mjs.map