@ahmetilhn/hanui 4.1.0 → 5.3.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 (75) hide show
  1. package/README.md +259 -39
  2. package/build/charts.cjs +2 -0
  3. package/build/charts.cjs.map +1 -0
  4. package/build/charts.css +1 -0
  5. package/build/charts.js +1843 -0
  6. package/build/charts.js.map +1 -0
  7. package/build/chat.cjs +3 -0
  8. package/build/chat.cjs.map +1 -0
  9. package/build/chat.css +1 -0
  10. package/build/chat.js +707 -0
  11. package/build/chat.js.map +1 -0
  12. package/build/index.cjs +7 -7
  13. package/build/index.cjs.map +1 -1
  14. package/build/index.d.ts +472 -222
  15. package/build/index.js +3336 -3096
  16. package/build/index.js.map +1 -1
  17. package/build/scss/_colors.generated.scss +119 -0
  18. package/build/scss/_index.scss +6 -0
  19. package/build/scss/_metrics.generated.scss +49 -0
  20. package/build/scss/_mixins.scss +675 -0
  21. package/build/scss/_variables.scss +51 -0
  22. package/build/styles.css +1 -1
  23. package/build/types/charts/AreaChart/index.d.ts +14 -0
  24. package/build/types/charts/BarChart/index.d.ts +16 -0
  25. package/build/types/charts/BoxPlot/index.d.ts +43 -0
  26. package/build/types/charts/ComposedChart/index.d.ts +16 -0
  27. package/build/types/charts/Heatmap/index.d.ts +30 -0
  28. package/build/types/charts/Histogram/index.d.ts +29 -0
  29. package/build/types/charts/LineChart/index.d.ts +14 -0
  30. package/build/types/charts/PieChart/index.d.ts +36 -0
  31. package/build/types/charts/RadarChart/index.d.ts +40 -0
  32. package/build/types/charts/ScatterPlot/index.d.ts +41 -0
  33. package/build/types/charts/core/CartesianChart.d.ts +43 -0
  34. package/build/types/charts/core/ChartFrame.d.ts +55 -0
  35. package/build/types/charts/core/axes.d.ts +34 -0
  36. package/build/types/charts/core/cartesian.d.ts +79 -0
  37. package/build/types/charts/core/format.d.ts +9 -0
  38. package/build/types/charts/core/margins.d.ts +9 -0
  39. package/build/types/charts/core/palette.d.ts +13 -0
  40. package/build/types/charts/core/path.d.ts +24 -0
  41. package/build/types/charts/core/scale.d.ts +40 -0
  42. package/build/types/charts/core/series.d.ts +11 -0
  43. package/build/types/charts/core/spatial.d.ts +12 -0
  44. package/build/types/charts/core/stats.d.ts +34 -0
  45. package/build/types/charts/core/types.d.ts +31 -0
  46. package/build/types/charts/core/useChartWidth.d.ts +7 -0
  47. package/build/types/charts/index.d.ts +21 -0
  48. package/build/types/chat/ActionList/index.d.ts +46 -0
  49. package/build/types/chat/AppBar/index.d.ts +21 -0
  50. package/build/types/chat/ChatMessage/index.d.ts +24 -0
  51. package/build/types/chat/ChatThread/index.d.ts +24 -0
  52. package/build/types/chat/Citation/index.d.ts +15 -0
  53. package/build/types/chat/CodeBlock/index.d.ts +27 -0
  54. package/build/types/chat/DescriptionList/index.d.ts +16 -0
  55. package/build/types/chat/Legend/index.d.ts +20 -0
  56. package/build/types/chat/MessageActions/index.d.ts +21 -0
  57. package/build/types/chat/PromptInput/index.d.ts +47 -0
  58. package/build/types/chat/PromptSuggestions/index.d.ts +25 -0
  59. package/build/types/chat/Prose/index.d.ts +15 -0
  60. package/build/types/chat/ReasoningBlock/index.d.ts +24 -0
  61. package/build/types/chat/ReasoningText/index.d.ts +14 -0
  62. package/build/types/chat/SegmentBar/index.d.ts +46 -0
  63. package/build/types/chat/SourceList/index.d.ts +25 -0
  64. package/build/types/chat/TerminalOutput/index.d.ts +25 -0
  65. package/build/types/chat/ToolCall/index.d.ts +41 -0
  66. package/build/types/chat/index.d.ts +26 -0
  67. package/build/types/helpers/class-name.helper.d.ts +3 -0
  68. package/build/types/helpers/component.helper.d.ts +13 -0
  69. package/build/types/helpers/label.helper.d.ts +12 -0
  70. package/build/types/theme/palette.d.ts +203 -0
  71. package/build/types/theme/tokens.d.ts +208 -0
  72. package/build/types/types/common-element-props.type.d.ts +8 -0
  73. package/build/types/types/link.type.d.ts +14 -0
  74. package/build/types/types/theme.type.d.ts +223 -0
  75. package/package.json +19 -2
package/build/index.d.ts CHANGED
@@ -26,8 +26,11 @@ export declare const ABOVE_TABLET_MEDIA_QUERY = "(min-width: 1025px)";
26
26
 
27
27
  export declare const Accordion: typeof Accordion_2;
28
28
 
29
- /** Akordeon — katlanabilir bölümler. */
30
- declare const Accordion_2: FC<Props_37>;
29
+ /**
30
+ * Akordeon — katlanabilir bölümler. Her bölüm bir `Disclosure`: yerel `<details>` mantığı (kontrollü
31
+ * kipte DOM eşitlemesi, `onToggle`, pasif başlık) TEK yerde yaşar.
32
+ */
33
+ declare const Accordion_2: FC<Props_40>;
31
34
 
32
35
  export declare type AccordionItem = {
33
36
  id: string;
@@ -42,7 +45,7 @@ export declare type AccordionItem = {
42
45
  export declare const Alert: typeof Alert_2;
43
46
 
44
47
  /** Bilgi / uyarı kutusu. */
45
- declare const Alert_2: FC<Props_17>;
48
+ declare const Alert_2: FC<Props_18>;
46
49
 
47
50
  export declare type AlertTone = 'info' | 'success' | 'warning' | 'danger';
48
51
 
@@ -55,17 +58,25 @@ export declare const applyThemeConfig: (config: HanuiThemeConfig | undefined) =>
55
58
  export declare const Avatar: typeof Avatar_2;
56
59
 
57
60
  /** Avatar — kullanıcı madalyonu. */
58
- declare const Avatar_2: FC<Props_18>;
61
+ declare const Avatar_2: FC<Props_19>;
62
+
63
+ declare type AvatarShape = 'circle' | 'rounded';
64
+
65
+ /**
66
+ * `auto`: baş harf madalyonu addan SABİT bir kovaya boyanır. `brand`: marka madalyonu — çam zemin,
67
+ * mint işaret, iki temada aynı (logo kuralı; asistanın avatarı, boş sohbetin karosu).
68
+ */
69
+ declare type AvatarTone = 'auto' | 'brand';
59
70
 
60
71
  export declare const Badge: typeof Badge_2;
61
72
 
62
73
  /** Rozet — durum ve sınıflandırma etiketi. */
63
- declare const Badge_2: FC<Props_19>;
74
+ declare const Badge_2: FC<Props_20>;
64
75
 
65
76
  export declare type BadgeTone = 'neutral' | 'success' | 'danger' | 'warning' | 'info'
66
- /** Birincil sınıflandırma tinti (mavi-lacivert aile). */
77
+ /** Birincil sınıflandırma tinti (yeşil aile — Hanparça "Orijinal"). */
67
78
  | 'oem'
68
- /** İkincil sınıflandırma tinti (mor aile). */
79
+ /** İkincil sınıflandırma tinti (menekşe aile — Hanparça "Muadil"). */
69
80
  | 'alt'
70
81
  /** İndirim / olumlu değişim yüzdesi. Tutarın kendisi nötr kalır. */
71
82
  | 'sale'
@@ -143,12 +154,12 @@ declare type BaseProps_4 = {
143
154
  testId?: string;
144
155
  };
145
156
 
146
- export declare const BottomSheet: MemoExoticComponent<({ title, closeLabel, onClose, children, toolbar, footer, closeAbove, className, testId, }: Props_42) => ReactPortal | null>;
157
+ export declare const BottomSheet: MemoExoticComponent<({ title, closeLabel, onClose, children, toolbar, footer, closeAbove, className, testId, }: Props_46) => ReactPortal | null>;
147
158
 
148
159
  export declare const Breadcrumb: typeof Breadcrumb_2;
149
160
 
150
161
  /** Kırıntı yolu. */
151
- declare const Breadcrumb_2: FC<Props_20>;
162
+ declare const Breadcrumb_2: FC<Props_21>;
152
163
 
153
164
  /** Yapılandırmayı CSS metnine çevirir. */
154
165
  export declare const buildThemeCss: (config: HanuiThemeConfig) => string;
@@ -162,6 +173,7 @@ export declare const Button: typeof Button_2;
162
173
  declare const Button_2: ForwardRefExoticComponent<Partial<{
163
174
  variant: UIVariant;
164
175
  size: UISize;
176
+ shape: ButtonShape;
165
177
  isLoading: boolean;
166
178
  isFullWidth: boolean;
167
179
  startIcon: ReactNode;
@@ -186,6 +198,9 @@ declare type ButtonProps = BaseProps_4 & {
186
198
  linkProps?: never;
187
199
  };
188
200
 
201
+ /** Köşe biçimi. `pill` üst bant ve araç çubuğundaki hafif eylemler için; ölçü değişmez. */
202
+ declare type ButtonShape = 'rounded' | 'pill';
203
+
189
204
  export declare const Card: typeof Card_2;
190
205
 
191
206
  /**
@@ -248,7 +263,7 @@ declare type CardSectionProps = {
248
263
  export declare const Carousel: typeof Carousel_2;
249
264
 
250
265
  /** Kaydırılabilir şerit (carousel). */
251
- declare const Carousel_2: FC<Props_21>;
266
+ declare const Carousel_2: FC<Props_22>;
252
267
 
253
268
  export declare const Checkbox: typeof Checkbox_2;
254
269
 
@@ -288,7 +303,7 @@ testId?: string;
288
303
  export declare const ChipGroup: typeof ChipGroup_2;
289
304
 
290
305
  /** Çip grubu — açılır liste yerine tek dokunuşla seçim. */
291
- declare const ChipGroup_2: <T extends string>({ options, label, size, isScrollable, className, ...selection }: Props_6<T>) => JSX.Element;
306
+ declare const ChipGroup_2: <T extends string>({ options, label, size, isScrollable, className, ...selection }: Props_7<T>) => JSX.Element;
292
307
 
293
308
  export declare type ChipOption<T extends string = string> = {
294
309
  value: T;
@@ -309,6 +324,11 @@ declare type CircleProps = {
309
324
  valueText?: string;
310
325
  /** Yüzdeyi çemberin ortasına yazar. */
311
326
  isValueVisible?: boolean;
327
+ /**
328
+ * ⚠ `brand` 5.0'dan beri MÜREKKEP çizer (`selected` — ilerleme bir seçim göstergesi), yeşil
329
+ * DEĞİL: yeşil yalnızca eylem, bağlantı ve odakta. Ad 4.x'ten kaldı; değiştirmek her çağrıyı
330
+ * kırardı ve kazancı yalnızca isim olurdu.
331
+ */
312
332
  tone?: 'brand' | 'success' | 'warning' | 'danger';
313
333
  /** Dış çap (px). */
314
334
  size?: number;
@@ -318,10 +338,14 @@ declare type CircleProps = {
318
338
 
319
339
  export declare const CodeBadge: typeof CodeBadge_2;
320
340
 
321
- /** Teknik kod rozeti — monospace kod, marka zeminli çerçeve. */
322
- declare const CodeBadge_2: FC<Props_22>;
341
+ /**
342
+ * Teknik kod rozeti — monospace kod, MÜREKKEP zemin (iki temada aynı).
343
+ * Etkileşimli kipte (`onClick` / `href`) kod bir düğme ya da bağlantıdır; kopyalama düğmesi onun
344
+ * KARDEŞİ kalır (iç içe düğme geçersiz HTML).
345
+ */
346
+ declare const CodeBadge_2: FC<Props_23>;
323
347
 
324
- export declare type CodeBadgeSize = 'sm' | 'md' | 'lg';
348
+ export declare type CodeBadgeSize = 'xs' | 'sm' | 'md' | 'lg';
325
349
 
326
350
  export declare const Combobox: typeof Combobox_2;
327
351
 
@@ -395,7 +419,7 @@ export declare type CommandItem = {
395
419
  export declare const CommandPalette: typeof CommandPalette_2;
396
420
 
397
421
  /** Komut paleti — klavyeyle her şeye ulaşma. */
398
- declare const CommandPalette_2: ({ isOpen, onClose, items, label, searchPlaceholder, emptyMessage, className, testId, }: Props_44) => JSX.Element;
422
+ declare const CommandPalette_2: ({ isOpen, onClose, items, label, searchPlaceholder, emptyMessage, hotkey, onOpen, className, testId, }: Props_48) => JSX.Element;
399
423
 
400
424
  /** Her bileşenin kabul ettiği ortak kanca noktaları. */
401
425
  export declare type CommonElementProps = Partial<{
@@ -416,14 +440,14 @@ export declare const ConfirmDialog: typeof ConfirmDialog_2;
416
440
  * Onay penceresi.
417
441
  * @example const [target, setTarget] = useState<Address | null>(null);
418
442
  */
419
- declare const ConfirmDialog_2: FC<Props_45>;
443
+ declare const ConfirmDialog_2: FC<Props_49>;
420
444
 
421
445
  export declare type ConfirmKind = 'destructive' | 'warning' | 'neutral';
422
446
 
423
447
  export declare const CopyField: typeof CopyField_2;
424
448
 
425
449
  /** Kopyalanabilir teknik değer — tek dokunuşla panoya. */
426
- declare const CopyField_2: FC<Props_23>;
450
+ declare const CopyField_2: FC<Props_26>;
427
451
 
428
452
  export declare type Crumb = {
429
453
  label: string;
@@ -437,7 +461,7 @@ export declare const DARK_THEME: Record<keyof typeof LIGHT_THEME, string>;
437
461
  export declare const DataTable: typeof DataTable_2;
438
462
 
439
463
  /** Operasyon veri tablosu — durum satırlı tablo sözleşmesi. */
440
- declare const DataTable_2: FC<Props_49>;
464
+ declare const DataTable_2: FC<Props_53>;
441
465
 
442
466
  export declare type DataTableColumn = {
443
467
  /** Sütun kimliği (React key). */
@@ -540,20 +564,34 @@ declare type DirectoryRowProps = {
540
564
  className?: string;
541
565
  };
542
566
 
567
+ export declare const Disclosure: typeof Disclosure_2;
568
+
569
+ /**
570
+ * Tek başına açılır-kapanır bölüm — yerel `<details>` / `<summary>`.
571
+ *
572
+ * Klavye: `Enter` / `Space` başlıkta açar-kapar (tarayıcının kendi davranışı).
573
+ *
574
+ * ⚠ Yerel öğe bilinçli: odak, klavye ve ekran okuyucunun "genişletildi / daraltıldı" duyurusu
575
+ * tarayıcıdan geliyor. Taklit bir `button[aria-expanded]` bunları yeniden yazmak demekti.
576
+ */
577
+ declare const Disclosure_2: FC<Props_41>;
578
+
579
+ export declare type DisclosureVariant = 'framed' | 'plain';
580
+
543
581
  export declare const Divider: typeof Divider_2;
544
582
 
545
583
  /** Ayırıcı çizgi. */
546
- declare const Divider_2: FC<Props_24>;
584
+ declare const Divider_2: FC<Props_27>;
547
585
 
548
586
  export declare const Drawer: typeof Drawer_2;
549
587
 
550
588
  /** Çekmece (drawer) — kenardan açılan kipsel panel. */
551
- declare const Drawer_2: ({ isOpen, onClose, title, closeLabel, children, side, size, footer, toolbar, className, testId, }: Props_46) => JSX.Element;
589
+ declare const Drawer_2: ({ isOpen, onClose, title, closeLabel, children, side, size, footer, toolbar, className, testId, }: Props_50) => JSX.Element;
552
590
 
553
591
  export declare const EmptyState: typeof EmptyState_2;
554
592
 
555
593
  /** Boş durum. */
556
- declare const EmptyState_2: FC<Props_25>;
594
+ declare const EmptyState_2: FC<Props_28>;
557
595
 
558
596
  export declare const Field: typeof Field_2;
559
597
 
@@ -562,7 +600,7 @@ export declare const Field: typeof Field_2;
562
600
  * @example <Field label="E-posta" isRequired requiredLabel="(zorunlu)"…
563
601
  * @example // `{...props}` yaymayan bileşenlerde (Combobox, Select) yalnızca `id`…
564
602
  */
565
- declare const Field_2: FC<Props_15>;
603
+ declare const Field_2: FC<Props_16>;
566
604
 
567
605
  /** Girdiye yayılacak erişilebilirlik bağları. */
568
606
  export declare type FieldChildProps = {
@@ -582,12 +620,12 @@ declare type FieldProps = {
582
620
  export declare const FileUpload: typeof FileUpload_2;
583
621
 
584
622
  /** Dosya yükleme — sürükle-bırak ve düğme. */
585
- declare const FileUpload_2: ({ files, onSelect, onRemove, label, hint, accept, isMultiple, maxSize, removeLabel, dropLabel, sizeErrorText, isDisabled, error, children, className, testId, }: Props_16) => JSX.Element;
623
+ declare const FileUpload_2: ({ files, onSelect, onRemove, label, hint, accept, isMultiple, maxSize, removeLabel, dropLabel, sizeErrorText, isDisabled, error, children, className, testId, }: Props_17) => JSX.Element;
586
624
 
587
625
  export declare const FilterBar: typeof FilterBar_2;
588
626
 
589
627
  /** Filtre şeridi. */
590
- declare const FilterBar_2: FC<Props_50>;
628
+ declare const FilterBar_2: FC<Props_54>;
591
629
 
592
630
  /** Şerit içindeki tek alanın genişlik sözleşmesi. */
593
631
  export declare const FilterBarField: FC<FieldProps>;
@@ -690,6 +728,36 @@ export declare type HanuiLabels = Partial<{
690
728
  empty: string;
691
729
  loading: string;
692
730
  }>;
731
+ /**
732
+ * Sohbet bileşenleri (`@ahmetilhn/hanui/chat`). Çağrı yerine ÖZGÜ metinler buraya girmez:
733
+ * `PromptInput.placeholder`, `ReasoningBlock.summary`, `ToolCall.name`.
734
+ */
735
+ chat: Partial<{
736
+ /** Sohbet akışının bölge adı ("Sohbet"). `ChatThread`. */
737
+ thread: string;
738
+ /** Gönder düğmesi. `PromptInput`. */
739
+ send: string;
740
+ /** Akışı durdur düğmesi. `PromptInput`. */
741
+ stop: string;
742
+ /** Kullanıcı yukarı kaydırınca beliren düğme ("En yeniye in"). `ChatThread`. */
743
+ scrollToLatest: string;
744
+ /** Yanıt tamamlandığında duyurulan cümle ("Yanıt hazır"). `ChatThread`. */
745
+ replyReady: string;
746
+ /** Mesaj eylemleri araç çubuğunun adı. `MessageActions`. */
747
+ messageActions: string;
748
+ /** Kaynak listesinin adı ("Kaynaklar"). `SourceList`. */
749
+ sources: string;
750
+ /** Atıf numarasının okunan adı, örn. `n => 'Kaynak ' + n`. `Citation`. */
751
+ citation: Formatter<[index: number]>;
752
+ /** stderr satırının önündeki gizli işaret ("hata çıktısı"): renk tek başına anlam taşımaz. */
753
+ stderr: string;
754
+ /** Araç çağrısının durum metinleri. `ToolCall`. */
755
+ toolStatus: Partial<Record<'running' | 'ok' | 'error' | 'aborted' | 'interrupted', string>>;
756
+ /** Kod bloğunu kopyalama düğmesi, örn. `language => language + ' kodunu kopyala'`. `CodeBlock`. */
757
+ codeCopy: Formatter<[language: string]>;
758
+ /** Kopyalandıktan sonra duyurulan cümle. `CodeBlock`. */
759
+ codeCopied: string;
760
+ }>;
693
761
  copyField: Partial<{
694
762
  /** Kopyalama düğmesinin adı. */
695
763
  copy: Formatter<[value: string]>;
@@ -767,7 +835,7 @@ export declare type HanuiMetricToken = keyof typeof METRIC_TOKENS;
767
835
 
768
836
  /**
769
837
  * Kütüphane sağlayıcısı.
770
- * @example <HanuiProvider linkComponent={NextLink} theme={{ light: { blue: '#0d6efd' } }}> <App…
838
+ * @example <HanuiProvider linkComponent={NextLink} theme={{ light: { link: '#0a58ca' } }}> <App…
771
839
  */
772
840
  export declare const HanuiProvider: FC<Props>;
773
841
 
@@ -776,7 +844,7 @@ export declare type HanuiResolvedTokens = Record<HanuiToken, string>;
776
844
 
777
845
  /**
778
846
  * Dışarıdan verilebilecek tema yapılandırması.
779
- * @example initHanui({ theme: { light: { blue: '#0d6efd', 'blue-text': '#0a58ca' }, dark: {…
847
+ * @example initHanui({ theme: { light: { link: '#0a58ca', 'ring-color': '#0d6efd' }, dark: {…
780
848
  */
781
849
  export declare type HanuiThemeConfig = Partial<{
782
850
  light: HanuiThemeTokens;
@@ -789,6 +857,20 @@ export declare type HanuiThemeConfig = Partial<{
789
857
  metrics: HanuiMetrics;
790
858
  }>;
791
859
 
860
+ /**
861
+ * İLK BOYAMADAN ÖNCE tema — `<head>` içine, sunucu düzeninde.
862
+ *
863
+ * Kayıtlı açık seçimi (`light` / `dark`) `<html data-hanui-theme>`e yazar; kayıt yoksa sistem
864
+ * tercihi izlenir. Sunucu çıktısındaki satır içi betik HTML ayrıştırılırken çalışır; React onu
865
+ * istemcide YENİDEN çalıştırmaz.
866
+ *
867
+ * ⚠ BİR BİLEŞEN, fonksiyon değil: paket `'use client'` taşıdığı için dışa verilen düz bir
868
+ * fonksiyon Next'in sunucu bileşeninde ÇAĞRILAMIYOR ("Attempted to call … from the server").
869
+ * Bileşen ise sunucuda da çizilir. Bu yüzden 5.1 taslağındaki `themeBootScript()` dışa verilmedi.
870
+ * @example <head><HanuiThemeScript storageKey="theme" /></head>
871
+ */
872
+ export declare const HanuiThemeScript: FC<Props_2>;
873
+
792
874
  declare type HanuiThemeState = {
793
875
  /**
794
876
  * ÇÖZÜLMÜŞ tema — ekranda çizili olan. `preference` `system` iken bu alan işletim sisteminin o
@@ -811,6 +893,15 @@ export declare type HanuiThemeTokens = Partial<Record<HanuiToken, string>>;
811
893
  /** Token adları — `LIGHT_THEME`den türetilir, elle listelenmez. */
812
894
  export declare type HanuiToken = keyof typeof LIGHT_THEME;
813
895
 
896
+ /**
897
+ * `Escape`i tüketecek AÇIK bir yüzey var mı — kipsel pencere, açılır panel, bildirim.
898
+ * ⚠ Sayfa düzeyinde `Escape` dinleyen her kod (sohbetin "akışı durdur" kısayolu gibi) önce bunu
899
+ * sorar. Sormayan bir dinleyici, kullanıcı yalnızca bir modalı kapatmak isterken arkadaki işi de
900
+ * iptal ediyordu. Yüzey kapanırken yığından AYNI olayın içinde değil, bir sonraki render'da
901
+ * çıkar; yani dinleyici o tuş vuruşunda hâlâ `true` görür — istenen de bu.
902
+ */
903
+ export declare const hasOpenSurface: () => boolean;
904
+
814
905
  declare type HubProps = {
815
906
  /** Kapatma düğmelerinin erişilebilir adı. */
816
907
  closeLabel?: string;
@@ -830,9 +921,10 @@ declare const IconButton_2: ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLB
830
921
  icon: ReactNode;
831
922
  /** Görsel etiketi olmayan düğmenin erişilebilir adı — ZORUNLU. */
832
923
  label: string;
833
- /** `cart` yalnızca dönüşüm eyleminde kullanılır — ekranda görünen tek doygun turuncu odur. */
924
+ /** `cart` yalnızca dönüşüm eyleminde kullanılır — ekrandaki en parlak yeşil odur. */
834
925
  variant?: IconButtonVariant;
835
926
  size?: "sm" | "md";
927
+ shape?: IconButtonShape;
836
928
  /** Verilirse öğe bir bağlantı olarak çizilir. */
837
929
  href?: string;
838
930
  /** Yönlendiriciye geçirilecek ek props. */
@@ -840,6 +932,9 @@ linkProps?: HanuiLinkExtraProps;
840
932
  testId?: string;
841
933
  } & RefAttributes<HTMLButtonElement>>;
842
934
 
935
+ /** Köşe biçimi. `round` tam daire — sohbet girdisindeki gönder / durdur gibi. Ölçü değişmez. */
936
+ declare type IconButtonShape = 'rounded' | 'round';
937
+
843
938
  export declare type IconButtonVariant = 'ghost' | 'outline' | 'solid' | 'cart' | 'danger';
844
939
 
845
940
  /**
@@ -870,60 +965,76 @@ isTechnical?: boolean;
870
965
  testId?: string;
871
966
  } & RefAttributes<HTMLInputElement>>;
872
967
 
968
+ export declare const Kbd: typeof Kbd_2;
969
+
970
+ /**
971
+ * Klavye kısayolu — `<kbd>` içinde her tuş kendi `<kbd>`si (HTML'in birleşik tuş deseni).
972
+ * Ekran okuyucu "Shift artı Enter" diye okur; yalnızca görsel bir ipucuysa `aria-hidden` geçin.
973
+ */
974
+ declare const Kbd_2: FC<Props_24>;
975
+
873
976
  /** AÇIK TEMA — varsayılan. */
874
977
  export declare const LIGHT_THEME: {
875
- readonly page: "#f7fcf8";
876
- readonly surface: "#fdfefd";
877
- readonly 'surface-2': "#e9f7ed";
878
- readonly 'surface-3': "#dff3e5";
978
+ readonly page: "#faf9f5";
979
+ readonly surface: "#fffefc";
980
+ readonly 'surface-2': "#efe9de";
981
+ readonly 'surface-3': "#e8e0d3";
879
982
  /** Girinti sayfanın ALTINA iner (arama kutusu, kod bloğu, pasif girdi). */
880
- readonly 'surface-inset': "#f1faf4";
881
- readonly border: "#c0eacf";
882
- readonly 'border-strong': "#aaddbf";
883
- readonly text: "#010f0b";
884
- readonly 'text-2': "#325a4d";
885
- readonly 'text-3': "#467060";
886
- readonly shell: "#00322a";
887
- readonly 'shell-2': "#154c3d";
888
- readonly 'shell-3': "#225f4d";
983
+ readonly 'surface-inset': "#f5f0e8";
984
+ readonly border: "#ded8d0";
985
+ readonly 'border-strong': "#d0c8bd";
986
+ readonly text: "#141413";
987
+ readonly 'text-2': "#4d4b46";
988
+ readonly 'text-3': "#67655e";
989
+ readonly shell: "#181715";
990
+ readonly 'shell-2': "#1f1e1b";
991
+ readonly 'shell-3': "#2a2925";
992
+ readonly 'on-shell': "#faf9f5";
993
+ readonly 'on-shell-2': "#b4b1a9";
994
+ /** Mürekkep üzerinde hata metni (terminalin stderr'i). Açık temanın `bad-fg`i burada 2:1'in altında. */
995
+ readonly 'on-shell-danger': "#f2a099";
996
+ /** Koyu temada kabuk sayfadan 1,03:1 ayrışıyor; görünür kılan bu çizgi. */
997
+ readonly 'shell-line': "#33312d";
889
998
  readonly action: "#00322a";
890
999
  readonly 'action-hover': "#154c3d";
891
1000
  readonly 'action-active': "#225f4d";
892
- readonly 'on-action': "#fdfefd";
1001
+ readonly 'on-action': "#fffefc";
893
1002
  /** Dolgunun SINIRI; açık temada dolgunun kendisi (bkz. `ACTION_LINE`). */
894
1003
  readonly 'action-line': "#00322a";
895
1004
  /** Pasif dolgu; saydamlık DEĞİL kendi rengi (bkz. */
896
- readonly 'action-soft': "#aaddbf";
1005
+ readonly 'action-soft': "#d0c8bd";
897
1006
  /** PASİF DOLGU ÜZERİNDEKİ METİN. */
898
- readonly 'on-action-soft': "#1d4238";
1007
+ readonly 'on-action-soft': "#3d3d3a";
899
1008
  readonly cart: "#1ba055";
900
1009
  readonly 'cart-hover': "#20b360";
901
1010
  readonly 'cart-active': "#19934e";
902
1011
  readonly 'cart-soft': "#84cb97";
903
1012
  readonly 'on-cart': "#021407";
904
- readonly role: "#1f7b56";
905
- readonly 'role-hover': "#176446";
906
- readonly 'role-active': "#115037";
907
- readonly 'role-text': "#17704e";
908
- readonly 'role-tint': "#d5f6e4";
909
- readonly 'role-line': "#93dfba";
910
- readonly 'on-role': "#fdfefd";
1013
+ readonly selected: "#141413";
1014
+ readonly 'selected-hover': "#252523";
1015
+ readonly 'selected-active': "#3d3d3a";
1016
+ readonly 'on-selected': "#faf9f5";
1017
+ /** Seçili satır / seçenek zemini — kenarlık ya da işaretle BİRLİKTE (seçim yalnız zeminle verilmez). */
1018
+ readonly 'selected-tint': "#e8e0d3";
1019
+ readonly 'selected-line': "#141413";
1020
+ readonly link: "#17704e";
1021
+ readonly 'link-hover': "#176446";
911
1022
  readonly 'ok-bg': "#c2f6cf";
912
1023
  readonly 'ok-fg': "#166e3a";
913
1024
  readonly 'ok-line': "#7eda99";
914
- readonly 'warn-bg': "#f6e4cf";
1025
+ readonly 'warn-bg': "#f9dcb9";
915
1026
  readonly 'warn-fg': "#7c5212";
916
1027
  readonly 'warn-line': "#e8b97f";
917
- readonly 'off-bg': "#daece5";
918
- readonly 'off-fg': "#4d625a";
919
- readonly 'off-line': "#afcabf";
920
- readonly 'bad-bg': "#f6e2e0";
1028
+ readonly 'off-bg': "#dcdad6";
1029
+ readonly 'off-fg': "#5b5851";
1030
+ readonly 'off-line': "#c5c2bb";
1031
+ readonly 'bad-bg': "#f9d8d5";
921
1032
  readonly 'bad-fg': "#a91922";
922
1033
  readonly 'bad-line': "#e9b3ae";
923
1034
  readonly 'oem-bg': "#a7f7c8";
924
1035
  readonly 'oem-fg': "#0c5d3a";
925
1036
  readonly 'oem-line': "#6ace97";
926
- readonly 'alt-bg': "#e9e4f6";
1037
+ readonly 'alt-bg': "#e5dcf9";
927
1038
  readonly 'alt-fg': "#751dc8";
928
1039
  readonly 'alt-line': "#c9bae7";
929
1040
  readonly 'sale-bg': "#c2f6cf";
@@ -932,19 +1043,19 @@ export declare const LIGHT_THEME: {
932
1043
  readonly 'green-accent': "#18904c";
933
1044
  readonly 'green-accent-hover': "#12783e";
934
1045
  readonly 'on-green': "#021407";
935
- readonly star: "#8c6a11";
1046
+ readonly star: "#846310";
936
1047
  readonly 'danger-solid': "#c21625";
937
1048
  readonly 'danger-solid-hover': "#a2111d";
938
- readonly 'on-danger': "#fdfefd";
939
- readonly 'nav-bg': "#fdfefd";
940
- readonly 'nav-bg-2': "#e9f7ed";
941
- readonly 'nav-fg': "#010f0b";
942
- readonly 'nav-fg-2': "#325a4d";
943
- readonly 'nav-fg-3': "#467060";
944
- readonly 'nav-line': "#d5f0de";
945
- readonly 'nav-line-strong': "#aaddbf";
946
- readonly 'nav-hover': "#e9f7ed";
947
- readonly 'footer-bg': "#e9f7ed";
1049
+ readonly 'on-danger': "#fffefc";
1050
+ readonly 'nav-bg': "#faf9f5";
1051
+ readonly 'nav-bg-2': "#efe9de";
1052
+ readonly 'nav-fg': "#141413";
1053
+ readonly 'nav-fg-2': "#4d4b46";
1054
+ readonly 'nav-fg-3': "#67655e";
1055
+ readonly 'nav-line': "#e4dfd8";
1056
+ readonly 'nav-line-strong': "#d0c8bd";
1057
+ readonly 'nav-hover': "#efe9de";
1058
+ readonly 'footer-bg': "#efe9de";
948
1059
  readonly 'band-bg': "#00322a";
949
1060
  readonly 'band-fg': "#e9f7ed";
950
1061
  readonly 'band-fg-2': "#8abaa1";
@@ -963,7 +1074,7 @@ export declare const LIGHT_THEME: {
963
1074
  readonly 'shadow-xl': `0 8px 16px ${string}, 0 28px 56px ${string}`;
964
1075
  /** Yapışkan alt bar; gölge YUKARI düşer. */
965
1076
  readonly 'shadow-up': `0 -2px 4px ${string}, 0 -8px 24px ${string}`;
966
- /** Odak halkası MAVİ: odak bir gezinme olayıdır, bir dönüşüm değil. */
1077
+ /** Odak halkası BAĞLANTI YEŞİLİ: odak bir gezinme olayıdır. Çam DEĞİL — birincil dolguyla aynı ton. */
967
1078
  readonly ring: `0 0 0 3px ${string}`;
968
1079
  readonly 'ring-color': "#1f7b56";
969
1080
  readonly 'ring-danger': `0 0 0 3px ${string}`;
@@ -971,16 +1082,23 @@ export declare const LIGHT_THEME: {
971
1082
  readonly scrim: string;
972
1083
  readonly 'scrim-soft': string;
973
1084
  readonly glass: string;
974
- readonly 'glass-solid': "#fdfefd";
975
- readonly 'on-scrim': "#fdfefd";
976
- readonly 'skeleton-a': "#e9f7ed";
977
- readonly 'skeleton-b': "#f7fcf8";
1085
+ readonly 'glass-solid': "#fffefc";
1086
+ readonly 'on-scrim': "#fffefc";
1087
+ readonly 'skeleton-a': "#efe9de";
1088
+ readonly 'skeleton-b': "#faf9f5";
978
1089
  readonly track: string;
979
1090
  /** Görsel yer tutucu (medya yoksa). */
980
- readonly 'media-bg': "#e9f7ed";
1091
+ readonly 'media-bg': "#efe9de";
981
1092
  readonly 'glow-1': string;
982
1093
  readonly 'glow-2': string;
983
1094
  readonly 'glow-cart': string;
1095
+ readonly 'cat-1': "#2774cd";
1096
+ readonly 'cat-2': "#b75225";
1097
+ readonly 'cat-3': "#2c8761";
1098
+ readonly 'cat-4': "#8b7126";
1099
+ readonly 'cat-5': "#c02f8f";
1100
+ readonly 'series-1': "#252523";
1101
+ readonly 'series-2': "#8f3beb";
984
1102
  };
985
1103
 
986
1104
  declare type LinkProps = BaseProps_4 & {
@@ -1016,7 +1134,7 @@ export declare const matchesSearch: (haystack: string, needle: string) => boolea
1016
1134
  export declare const Menu: typeof Menu_2;
1017
1135
 
1018
1136
  /** Menü — bir listeden EYLEM seçme. */
1019
- declare const Menu_2: ({ trigger, items, label, side, align, className, testId, }: Props_4) => JSX.Element | null;
1137
+ declare const Menu_2: ({ trigger, items, label, side, align, className, testId, }: Props_5) => JSX.Element | null;
1020
1138
 
1021
1139
  export declare type MenuItem = {
1022
1140
  id: string;
@@ -1080,6 +1198,8 @@ export declare const METRIC_TOKENS: {
1080
1198
  readonly 'ease-spring': "cubic-bezier(0.34, 1.4, 0.64, 1)";
1081
1199
  readonly 'duration-spin': "700ms";
1082
1200
  readonly 'duration-shimmer': "1400ms";
1201
+ /** Durum noktasının nabzı — "çalışıyor / bağlanıyor"; 700 ms telaş, 2 sn ölü gibi okunuyordu. */
1202
+ readonly 'duration-pulse': "1600ms";
1083
1203
  };
1084
1204
 
1085
1205
  /** Kırılma noktaları — `styles/_variables.scss` içindeki `$breakpoint-*` ile aynı değerler. */
@@ -1088,7 +1208,7 @@ export declare const MOBILE_BREAKPOINT = 640;
1088
1208
  export declare const Modal: typeof Modal_2;
1089
1209
 
1090
1210
  /** Kip pencere (modal). */
1091
- declare const Modal_2: ({ isOpen, onClose, title, closeLabel, children, description, footer, icon, tone, size, isDismissable, className, testId, }: Props_43) => JSX.Element;
1211
+ declare const Modal_2: ({ isOpen, onClose, title, closeLabel, children, description, footer, icon, tone, size, isDismissable, className, testId, }: Props_47) => JSX.Element;
1092
1212
 
1093
1213
  export declare type ModalTone = 'neutral' | 'danger' | 'warning' | 'success' | 'info';
1094
1214
 
@@ -1104,12 +1224,12 @@ export declare const normalizeSearchTerm: (value: string) => string;
1104
1224
  export declare const PageHeader: typeof PageHeader_2;
1105
1225
 
1106
1226
  /** Sayfa başlığı — her ekranın aynı giriş bloğu. */
1107
- declare const PageHeader_2: FC<Props_26>;
1227
+ declare const PageHeader_2: FC<Props_29>;
1108
1228
 
1109
1229
  export declare const Pagination: typeof Pagination_2;
1110
1230
 
1111
1231
  /** Sayfalama. */
1112
- declare const Pagination_2: FC<Props_51>;
1232
+ declare const Pagination_2: FC<Props_55>;
1113
1233
 
1114
1234
  export declare const Panel: typeof Panel_2;
1115
1235
 
@@ -1117,7 +1237,7 @@ export declare const Panel: typeof Panel_2;
1117
1237
  * Panel — başlığı olan içerik kutusu.
1118
1238
  * @example <Panel title="Profil bilgileri" description="Fatura bu bilgilerle kesilir">…
1119
1239
  */
1120
- declare const Panel_2: FC<Props_27>;
1240
+ declare const Panel_2: FC<Props_30>;
1121
1241
 
1122
1242
  /** Panel içindeki form ızgarası. */
1123
1243
  export declare const PanelForm: FC<PanelFormProps>;
@@ -1143,12 +1263,12 @@ export declare const PasswordInput: typeof PasswordInput_2;
1143
1263
  * Şifre girdisi — yanında göz düğmesi. `hanparca-admin` ve `hanparca-frontend`te BİREBİR AYNI dosya
1144
1264
  * olarak duruyordu
1145
1265
  */
1146
- declare const PasswordInput_2: FC<Props_13>;
1266
+ declare const PasswordInput_2: FC<Props_14>;
1147
1267
 
1148
1268
  export declare const Popover: typeof Popover_2;
1149
1269
 
1150
1270
  /** Popover — eylem taşıyabilen, odaklanabilir yüzey. */
1151
- declare const Popover_2: ({ trigger, children, label, side, align, isOpen: controlledOpen, onOpenChange, className, testId, }: Props_5) => JSX.Element | null;
1271
+ declare const Popover_2: ({ trigger, children, label, side, align, isOpen: controlledOpen, onOpenChange, className, testId, }: Props_6) => JSX.Element | null;
1152
1272
 
1153
1273
  /** Tercih edilen kenar boyunca hizalama. */
1154
1274
  export declare type PositionAlign = 'start' | 'center' | 'end';
@@ -1189,19 +1309,19 @@ export declare type PositionSide = 'top' | 'bottom' | 'left' | 'right';
1189
1309
  export declare const Price: typeof Price_2;
1190
1310
 
1191
1311
  /** Tutar gösterimi. */
1192
- declare const Price_2: FC<Props_28>;
1312
+ declare const Price_2: FC<Props_31>;
1193
1313
 
1194
1314
  export declare const Progress: typeof Progress_2;
1195
1315
 
1196
1316
  /** İlerleme çubuğu — ölçülebilir bekleme. */
1197
- declare const Progress_2: ({ value, max, label, valueText, isValueVisible, tone, size, className, testId, }: Props_35) => JSX.Element;
1317
+ declare const Progress_2: ({ value, max, label, valueText, isValueVisible, tone, size, className, testId, }: Props_38) => JSX.Element;
1198
1318
 
1199
1319
  export declare const ProgressCircle: MemoExoticComponent<({ value, max, label, valueText, isValueVisible, tone, size, className, testId, }: CircleProps) => JSX.Element>;
1200
1320
 
1201
1321
  export declare const PromptDialog: typeof PromptDialog_2;
1202
1322
 
1203
1323
  /** Metin isteyen pencere — `window.prompt()` yerine. */
1204
- declare const PromptDialog_2: FC<Props_47>;
1324
+ declare const PromptDialog_2: FC<Props_51>;
1205
1325
 
1206
1326
  declare type Props = {
1207
1327
  children: ReactNode;
@@ -1217,6 +1337,17 @@ declare type Props = {
1217
1337
  };
1218
1338
 
1219
1339
  declare type Props_10 = {
1340
+ /** Radyo grubu adı — aynı gruptaki kartlar ok tuşlarıyla gezilir. */
1341
+ name: string;
1342
+ value: string;
1343
+ isSelected: boolean;
1344
+ isDisabled?: boolean;
1345
+ onChange: (value: string) => void;
1346
+ /** Zengin gövde: kartın içeriği çağırana aittir. */
1347
+ children: ReactNode;
1348
+ } & CommonElementProps;
1349
+
1350
+ declare type Props_11 = {
1220
1351
  min: number;
1221
1352
  max: number;
1222
1353
  step?: number;
@@ -1238,7 +1369,7 @@ declare type Props_10 = {
1238
1369
  testId?: string;
1239
1370
  };
1240
1371
 
1241
- declare type Props_11 = {
1372
+ declare type Props_12 = {
1242
1373
  value: number | null;
1243
1374
  onChange: (value: number) => void;
1244
1375
  /** Grubun erişilebilir adı ("Ürün puanı"). */
@@ -1254,7 +1385,7 @@ declare type Props_11 = {
1254
1385
  testId?: string;
1255
1386
  };
1256
1387
 
1257
- declare type Props_12 = {
1388
+ declare type Props_13 = {
1258
1389
  value: number;
1259
1390
  onChange: (value: number) => void;
1260
1391
  /** Grubun ve girdinin erişilebilir adı. */
@@ -1271,14 +1402,14 @@ declare type Props_12 = {
1271
1402
  testId?: string;
1272
1403
  };
1273
1404
 
1274
- declare type Props_13 = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {
1405
+ declare type Props_14 = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {
1275
1406
  /** Şifre gizliyken düğmenin erişilebilir adı. */
1276
1407
  showLabel?: string;
1277
1408
  /** Şifre görünürken düğmenin erişilebilir adı. */
1278
1409
  hideLabel?: string;
1279
1410
  };
1280
1411
 
1281
- declare type Props_14 = {
1412
+ declare type Props_15 = {
1282
1413
  values: string[];
1283
1414
  onChange: (values: string[]) => void;
1284
1415
  /** Alanın erişilebilir adı. */
@@ -1300,13 +1431,13 @@ declare type Props_14 = {
1300
1431
  testId?: string;
1301
1432
  };
1302
1433
 
1303
- declare type Props_15 = BaseProps_2 & {
1434
+ declare type Props_16 = BaseProps_2 & {
1304
1435
  isRequired?: boolean;
1305
1436
  /** Zorunluluk yıldızının ekran okuyucu karşılığı ("(zorunlu)"). */
1306
1437
  requiredLabel?: string;
1307
1438
  };
1308
1439
 
1309
- declare type Props_16 = {
1440
+ declare type Props_17 = {
1310
1441
  files: UploadFile[];
1311
1442
  /** Kullanıcı dosya seçtiğinde/bıraktığında çağrılır — DOĞRULANMIŞ liste. */
1312
1443
  onSelect: (files: File[]) => void;
@@ -1334,7 +1465,7 @@ declare type Props_16 = {
1334
1465
  testId?: string;
1335
1466
  };
1336
1467
 
1337
- declare type Props_17 = {
1468
+ declare type Props_18 = {
1338
1469
  children: ReactNode;
1339
1470
  tone?: AlertTone;
1340
1471
  title?: string;
@@ -1344,11 +1475,15 @@ declare type Props_17 = {
1344
1475
  testId?: string;
1345
1476
  };
1346
1477
 
1347
- declare type Props_18 = {
1348
- /** Tam ad; baş harfler buradan üretilir ve görsel yoksa `alt` metnidir. */
1478
+ declare type Props_19 = {
1479
+ /** Tam ad; baş harfler buradan üretilir ve her durumda okunan addır (`aria-label`). */
1349
1480
  name: string;
1350
1481
  /** Profil görseli. */
1351
1482
  imageUrl?: string;
1483
+ /** Baş harf yerine ikon (marka işareti, sistem kullanıcısı). Görselden önce gelmez. */
1484
+ icon?: ReactNode;
1485
+ shape?: AvatarShape;
1486
+ tone?: AvatarTone;
1352
1487
  /** Baş harfleri büyütürken kullanılacak dil etiketi ("tr", "az"). */
1353
1488
  locale?: string;
1354
1489
  size?: 'sm' | 'md' | 'lg';
@@ -1356,7 +1491,12 @@ declare type Props_18 = {
1356
1491
  testId?: string;
1357
1492
  };
1358
1493
 
1359
- declare type Props_19 = {
1494
+ declare type Props_2 = {
1495
+ /** Kullanıcının seçiminin tutulduğu `localStorage` anahtarı. */
1496
+ storageKey: string;
1497
+ };
1498
+
1499
+ declare type Props_20 = {
1360
1500
  children: ReactNode;
1361
1501
  tone?: BadgeTone;
1362
1502
  variant?: BadgeVariant;
@@ -1366,18 +1506,7 @@ declare type Props_19 = {
1366
1506
  testId?: string;
1367
1507
  };
1368
1508
 
1369
- declare type Props_2 = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> & {
1370
- href: string;
1371
- children: ReactNode;
1372
- /** Sonda ok gösterilir — "devam et" anlamı taşıyan bağlantılarda. */
1373
- hasArrow?: boolean;
1374
- tone?: 'brand' | 'muted';
1375
- size?: 'sm' | 'md';
1376
- /** Yönlendiriciye geçirilecek ek props. */
1377
- linkProps?: HanuiLinkExtraProps;
1378
- };
1379
-
1380
- declare type Props_20 = {
1509
+ declare type Props_21 = {
1381
1510
  items: Crumb[];
1382
1511
  /** Gezinme bölgesinin erişilebilir adı. */
1383
1512
  label?: string;
@@ -1387,7 +1516,7 @@ declare type Props_20 = {
1387
1516
  testId?: string;
1388
1517
  };
1389
1518
 
1390
- declare type Props_21 = {
1519
+ declare type Props_22 = {
1391
1520
  children: ReactNode;
1392
1521
  /** Şeridin erişilebilir adı ("Öne çıkan ürünler"). */
1393
1522
  label: string;
@@ -1407,7 +1536,7 @@ declare type Props_21 = {
1407
1536
  testId?: string;
1408
1537
  };
1409
1538
 
1410
- declare type Props_22 = {
1539
+ declare type Props_23 = {
1411
1540
  /** Gösterilecek teknik kod (arıza kodu, parça numarası, şase). */
1412
1541
  code: string;
1413
1542
  /** Kopyalama düğmesi ekler. */
@@ -1419,11 +1548,39 @@ declare type Props_22 = {
1419
1548
  /** `aria-live` ile duyurulan onay cümlesi. */
1420
1549
  copiedAnnouncement?: string;
1421
1550
  size?: CodeBadgeSize;
1551
+ /** Kodu ETKİLEŞİMLİ yapar (kaynağı aç, ayrıntıya git): kod bir düğme olur. */
1552
+ onClick?: () => void;
1553
+ /** Kodu bir BAĞLANTI yapar; `onClick` ile birlikte verilmez. */
1554
+ href?: string;
1555
+ linkProps?: HanuiLinkExtraProps;
1556
+ /**
1557
+ * Etkileşimli kodun okunan adı. Kısa kimliklerde ("A3") kod tek başına ne açılacağını söylemez
1558
+ * ("A3 kaynağını aç"). Verilmezse kodun kendisi.
1559
+ */
1560
+ label?: string;
1422
1561
  className?: string;
1423
1562
  testId?: string;
1424
1563
  };
1425
1564
 
1426
- declare type Props_23 = {
1565
+ declare type Props_24 = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
1566
+ /** Basılacak tuşlar, sırayla: `['Shift', 'Enter']`. Tek tuş da bir dizi: `['⌘K']`. */
1567
+ keys: string[];
1568
+ };
1569
+
1570
+ declare type Props_25 = {
1571
+ tone?: StatusDotTone;
1572
+ /**
1573
+ * Durumun okunan adı ("Bağlı", "Çalışıyor"). ZORUNLU: nokta yalnızca renk ve renk tek başına
1574
+ * anlam taşıyamaz (WCAG 1.4.1). Görsel olarak gizli metin olarak yazılır.
1575
+ */
1576
+ label: string;
1577
+ /** Süren bir iş — "çalışıyor", "bağlanıyor". Azaltılmış harekette durur. */
1578
+ isPulsing?: boolean;
1579
+ className?: string;
1580
+ testId?: string;
1581
+ };
1582
+
1583
+ declare type Props_26 = {
1427
1584
  /** Gösterilecek ve panoya kopyalanacak değer. */
1428
1585
  value: string;
1429
1586
  /** Kopyalama düğmesinin erişilebilir adı. */
@@ -1439,13 +1596,13 @@ declare type Props_23 = {
1439
1596
  testId?: string;
1440
1597
  };
1441
1598
 
1442
- declare type Props_24 = {
1599
+ declare type Props_27 = {
1443
1600
  /** Ortada gösterilen metin ("veya"). */
1444
1601
  label?: string;
1445
1602
  className?: string;
1446
1603
  };
1447
1604
 
1448
- declare type Props_25 = {
1605
+ declare type Props_28 = {
1449
1606
  title: string;
1450
1607
  description?: string;
1451
1608
  icon?: ReactNode;
@@ -1460,7 +1617,7 @@ declare type Props_25 = {
1460
1617
  testId?: string;
1461
1618
  };
1462
1619
 
1463
- declare type Props_26 = {
1620
+ declare type Props_29 = {
1464
1621
  title: string;
1465
1622
  /** Başlığın üstündeki küçük bağlam etiketi ("HESABIM", "KATEGORİ"). */
1466
1623
  eyebrow?: string;
@@ -1480,7 +1637,18 @@ declare type Props_26 = {
1480
1637
  testId?: string;
1481
1638
  };
1482
1639
 
1483
- declare type Props_27 = {
1640
+ declare type Props_3 = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> & {
1641
+ href: string;
1642
+ children: ReactNode;
1643
+ /** Sonda ok gösterilir — "devam et" anlamı taşıyan bağlantılarda. */
1644
+ hasArrow?: boolean;
1645
+ tone?: 'brand' | 'muted';
1646
+ size?: 'sm' | 'md';
1647
+ /** Yönlendiriciye geçirilecek ek props. */
1648
+ linkProps?: HanuiLinkExtraProps;
1649
+ };
1650
+
1651
+ declare type Props_30 = {
1484
1652
  children: ReactNode;
1485
1653
  /** Panel başlığı. */
1486
1654
  title?: string;
@@ -1502,7 +1670,7 @@ declare type Props_27 = {
1502
1670
  testId?: string;
1503
1671
  };
1504
1672
 
1505
- declare type Props_28 = {
1673
+ declare type Props_31 = {
1506
1674
  /** BİÇİMLENMİŞ tutar: "1.299,90". */
1507
1675
  value: string;
1508
1676
  /** Para birimi simgesi ya da kodu. */
@@ -1520,7 +1688,7 @@ declare type Props_28 = {
1520
1688
  testId?: string;
1521
1689
  };
1522
1690
 
1523
- declare type Props_29 = {
1691
+ declare type Props_32 = {
1524
1692
  /** 0–5 arası puan. */
1525
1693
  value: number;
1526
1694
  /** Değerlendirme sayısı; verilirse yıldızların yanında gösterilir. */
@@ -1532,25 +1700,7 @@ declare type Props_29 = {
1532
1700
  testId?: string;
1533
1701
  };
1534
1702
 
1535
- declare type Props_3 = {
1536
- /** Balonda gösterilecek açıklama. */
1537
- content: ReactNode;
1538
- /** Açıklamanın bağlandığı öğe — düğme, ikon, etiket. */
1539
- children: ReactNode;
1540
- /** Tercih edilen kenar. */
1541
- side?: PositionSide;
1542
- /** Açılma gecikmesi (ms). */
1543
- openDelay?: number;
1544
- /**
1545
- * Ad değişti çünkü davranış değişti: `position` SABİT bir kenar yazıyordu ve balon oraya
1546
- * sığmadığında görünüm alanının dışına taşıyordu. `side`…
1547
- * @deprecated `side` kullanın.
1548
- */
1549
- position?: 'top' | 'bottom';
1550
- className?: string;
1551
- };
1552
-
1553
- declare type Props_30 = {
1703
+ declare type Props_33 = {
1554
1704
  title: string;
1555
1705
  description?: string;
1556
1706
  /** Üstte gösterilen küçük büyük-harf etiket. */
@@ -1563,7 +1713,7 @@ declare type Props_30 = {
1563
1713
  testId?: string;
1564
1714
  };
1565
1715
 
1566
- declare type Props_31 = {
1716
+ declare type Props_34 = {
1567
1717
  children: ReactNode;
1568
1718
  /** Kaydırılabilir bölgenin erişilebilir adı. */
1569
1719
  label: string;
@@ -1573,11 +1723,16 @@ declare type Props_31 = {
1573
1723
  maxHeight?: number | string;
1574
1724
  /** Kenarlarda içeriğin devam ettiğini gösteren solma. */
1575
1725
  hasFade?: boolean;
1726
+ /**
1727
+ * SONA yapışık kalır — içerik büyüdükçe aşağı iner, kullanıcı yukarı kaydırınca bırakır, sona
1728
+ * dönünce yeniden yapışır (akan akıl yürütme, canlı terminal çıktısı). Yalnızca dikey eksende.
1729
+ */
1730
+ isFollowingEnd?: boolean;
1576
1731
  className?: string;
1577
1732
  testId?: string;
1578
1733
  };
1579
1734
 
1580
- declare type Props_32 = {
1735
+ declare type Props_35 = {
1581
1736
  /** Genişlik: sayı px, dize doğrudan CSS değeri. */
1582
1737
  width?: number | string;
1583
1738
  height?: number | string;
@@ -1588,7 +1743,7 @@ declare type Props_32 = {
1588
1743
  className?: string;
1589
1744
  };
1590
1745
 
1591
- declare type Props_33 = {
1746
+ declare type Props_36 = {
1592
1747
  /** Ölçülen şeyin adı ("Bugünkü sipariş"). */
1593
1748
  label: string;
1594
1749
  /** Değerin KENDİSİ — biçimlendirilmiş dize. */
@@ -1605,14 +1760,18 @@ declare type Props_33 = {
1605
1760
  description?: ReactNode;
1606
1761
  /** Sol üstte duran ikon madalyonu. */
1607
1762
  icon?: ReactNode;
1608
- /** `plain` KUTUYU kaldırır: zemin, kenarlık ve dolgu gider, yalnızca sayı kalır. */
1609
- variant?: 'card' | 'plain';
1763
+ /**
1764
+ * `plain` KUTUYU kaldırır: zemin, kenarlık ve dolgu gider, yalnızca sayı kalır.
1765
+ * `inline` etiketi ve değeri TEK SATIRA dizer, değer teknik fontta — metrik satırı ("Gecikme
1766
+ * 412 ms"). Değişim ve açıklama bu kipte de çizilir, satırı uzatır.
1767
+ */
1768
+ variant?: 'card' | 'plain' | 'inline';
1610
1769
  size?: 'sm' | 'md';
1611
1770
  className?: string;
1612
1771
  testId?: string;
1613
1772
  };
1614
1773
 
1615
- declare type Props_34 = {
1774
+ declare type Props_37 = {
1616
1775
  /** Kart başlığı — aynı zamanda bağlantı metni. */
1617
1776
  title: string;
1618
1777
  href: string;
@@ -1630,7 +1789,7 @@ declare type Props_34 = {
1630
1789
  testId?: string;
1631
1790
  };
1632
1791
 
1633
- declare type Props_35 = {
1792
+ declare type Props_38 = {
1634
1793
  /**
1635
1794
  * Tamamlanan miktar. `undefined` → BELİRSİZ ilerleme (sonu bilinmiyor); çubuk kendi kendine akar.
1636
1795
  */
@@ -1643,20 +1802,44 @@ declare type Props_35 = {
1643
1802
  valueText?: string;
1644
1803
  /** Yüzdeyi çubuğun yanında GÖRÜNÜR olarak yazar. */
1645
1804
  isValueVisible?: boolean;
1805
+ /**
1806
+ * ⚠ `brand` 5.0'dan beri MÜREKKEP çizer (`selected` — ilerleme bir seçim göstergesi), yeşil
1807
+ * DEĞİL: yeşil yalnızca eylem, bağlantı ve odakta. Ad 4.x'ten kaldı; değiştirmek her çağrıyı
1808
+ * kırardı ve kazancı yalnızca isim olurdu.
1809
+ */
1646
1810
  tone?: 'brand' | 'success' | 'warning' | 'danger';
1647
- size?: 'sm' | 'md';
1811
+ /** `xs` 2 px — satır içi gösterge (bağlam doluluğu); etiket yanında okunur. */
1812
+ size?: 'xs' | 'sm' | 'md';
1648
1813
  className?: string;
1649
1814
  testId?: string;
1650
1815
  };
1651
1816
 
1652
- declare type Props_36 = {
1817
+ declare type Props_39 = {
1653
1818
  size?: 'sm' | 'md' | 'lg';
1654
1819
  /** Ekran okuyucuya okunacak metin; görsel olarak gizli. */
1655
1820
  label?: string;
1656
1821
  className?: string;
1657
1822
  };
1658
1823
 
1659
- declare type Props_37 = {
1824
+ declare type Props_4 = {
1825
+ /** Balonda gösterilecek açıklama. */
1826
+ content: ReactNode;
1827
+ /** Açıklamanın bağlandığı öğe — düğme, ikon, etiket. */
1828
+ children: ReactNode;
1829
+ /** Tercih edilen kenar. */
1830
+ side?: PositionSide;
1831
+ /** Açılma gecikmesi (ms). */
1832
+ openDelay?: number;
1833
+ /**
1834
+ * Ad değişti çünkü davranış değişti: `position` SABİT bir kenar yazıyordu ve balon oraya
1835
+ * sığmadığında görünüm alanının dışına taşıyordu. `side`…
1836
+ * @deprecated `side` kullanın.
1837
+ */
1838
+ position?: 'top' | 'bottom';
1839
+ className?: string;
1840
+ };
1841
+
1842
+ declare type Props_40 = {
1660
1843
  items: AccordionItem[];
1661
1844
  /** Aynı anda YALNIZCA BİR bölüm açık kalır. */
1662
1845
  isSingle?: boolean;
@@ -1669,7 +1852,29 @@ declare type Props_37 = {
1669
1852
  testId?: string;
1670
1853
  };
1671
1854
 
1672
- declare type Props_38 = {
1855
+ declare type Props_41 = {
1856
+ /** Başlık satırı — tıklanabilir olan bu. */
1857
+ summary: ReactNode;
1858
+ /** Başlığın sağında duran ikincil bilgi (süre, sayaç, rozet). */
1859
+ meta?: ReactNode;
1860
+ children: ReactNode;
1861
+ /**
1862
+ * Kontrollü kullanım; `onOpenChange` ile birlikte verilir.
1863
+ * ⚠ Ebeveyn `onOpenChange`i yok sayarsa DOM bir sonraki render'da prop'a döner, AYNI tuş vuruşunda
1864
+ * değil: `toggle` olayı eşzamansız ve anında geri çevirmek kendi `toggle`ıyla yarışıyordu.
1865
+ */
1866
+ isOpen?: boolean;
1867
+ /** Kontrolsüz kullanımda açılış durumu (boolean prop adı `is*` — API kuralı). */
1868
+ isDefaultOpen?: boolean;
1869
+ onOpenChange?: (isOpen: boolean) => void;
1870
+ isDisabled?: boolean;
1871
+ /** `framed` kendi kenarlığı ve zemini olan kutu; `plain` kenarlıksız satır (liste içinde). */
1872
+ variant?: DisclosureVariant;
1873
+ className?: string;
1874
+ testId?: string;
1875
+ };
1876
+
1877
+ declare type Props_42 = {
1673
1878
  steps: StepItem[];
1674
1879
  /** Bulunulan adımın DİZİNİ (0 tabanlı). */
1675
1880
  currentIndex?: number;
@@ -1682,7 +1887,7 @@ declare type Props_38 = {
1682
1887
  testId?: string;
1683
1888
  };
1684
1889
 
1685
- declare type Props_39 = {
1890
+ declare type Props_43 = {
1686
1891
  items: TabItem[];
1687
1892
  /** Kontrolsüz kullanımda açılışta seçili sekme. */
1688
1893
  defaultTabId?: string;
@@ -1697,19 +1902,7 @@ declare type Props_39 = {
1697
1902
  testId?: string;
1698
1903
  };
1699
1904
 
1700
- declare type Props_4 = {
1701
- /** Tetikleyici. */
1702
- trigger: ReactElement;
1703
- items: MenuItem[];
1704
- /** Menünün erişilebilir adı ("Satır eylemleri"). */
1705
- label: string;
1706
- side?: PositionSide;
1707
- align?: PositionAlign;
1708
- className?: string;
1709
- testId?: string;
1710
- };
1711
-
1712
- declare type Props_40 = {
1905
+ declare type Props_44 = {
1713
1906
  label: string;
1714
1907
  /** İkon DIŞARIDAN gelir: hangi ikonun hangi konuya ait olduğu uygulamanın bilgisi. */
1715
1908
  icon: ReactNode;
@@ -1723,7 +1916,7 @@ declare type Props_40 = {
1723
1916
  testId?: string;
1724
1917
  };
1725
1918
 
1726
- declare type Props_41 = {
1919
+ declare type Props_45 = {
1727
1920
  events: TimelineEvent[];
1728
1921
  /** Akışın erişilebilir adı ("Sipariş geçmişi"). */
1729
1922
  label: string;
@@ -1731,7 +1924,7 @@ declare type Props_41 = {
1731
1924
  testId?: string;
1732
1925
  };
1733
1926
 
1734
- declare type Props_42 = {
1927
+ declare type Props_46 = {
1735
1928
  title: string;
1736
1929
  /** Kapatma düğmesinin erişilebilir adı. */
1737
1930
  closeLabel?: string;
@@ -1750,7 +1943,7 @@ declare type Props_42 = {
1750
1943
  testId?: string;
1751
1944
  };
1752
1945
 
1753
- declare type Props_43 = {
1946
+ declare type Props_47 = {
1754
1947
  isOpen: boolean;
1755
1948
  onClose: () => void;
1756
1949
  title: string;
@@ -1765,14 +1958,15 @@ declare type Props_43 = {
1765
1958
  icon?: ReactNode;
1766
1959
  /** İkon madalyonunun tonu. */
1767
1960
  tone?: ModalTone;
1768
- size?: 'sm' | 'md' | 'lg';
1961
+ /** `xl` (≈1040 px) sekmeli, tablolu panolar için; dar ekranda diğerleri gibi tam genişlik. */
1962
+ size?: 'sm' | 'md' | 'lg' | 'xl';
1769
1963
  /** `false` iken arka plana tıklama, Escape ve kapatma düğmesi kapatmaz. */
1770
1964
  isDismissable?: boolean;
1771
1965
  className?: string;
1772
1966
  testId?: string;
1773
1967
  };
1774
1968
 
1775
- declare type Props_44 = {
1969
+ declare type Props_48 = {
1776
1970
  isOpen: boolean;
1777
1971
  onClose: () => void;
1778
1972
  items: CommandItem[];
@@ -1782,11 +1976,18 @@ declare type Props_44 = {
1782
1976
  searchPlaceholder: string;
1783
1977
  /** Sonuç yokken yazılan metin. */
1784
1978
  emptyMessage: string;
1979
+ /**
1980
+ * Paleti açıp kapatan kısayol: `'mod+k'` (`mod` macOS'ta ⌘, diğerlerinde Ctrl), `'shift+/'`.
1981
+ * Başka bir kipsel yüzey açıkken yok sayılır. `onOpen` ile birlikte verilir.
1982
+ */
1983
+ hotkey?: string;
1984
+ /** Kısayol basıldığında, palet kapalıyken. */
1985
+ onOpen?: () => void;
1785
1986
  className?: string;
1786
1987
  testId?: string;
1787
1988
  };
1788
1989
 
1789
- declare type Props_45 = {
1990
+ declare type Props_49 = {
1790
1991
  isOpen: boolean;
1791
1992
  onClose: () => void;
1792
1993
  /**
@@ -1812,7 +2013,19 @@ declare type Props_45 = {
1812
2013
  children?: ReactNode;
1813
2014
  };
1814
2015
 
1815
- declare type Props_46 = {
2016
+ declare type Props_5 = {
2017
+ /** Tetikleyici. */
2018
+ trigger: ReactElement;
2019
+ items: MenuItem[];
2020
+ /** Menünün erişilebilir adı ("Satır eylemleri"). */
2021
+ label: string;
2022
+ side?: PositionSide;
2023
+ align?: PositionAlign;
2024
+ className?: string;
2025
+ testId?: string;
2026
+ };
2027
+
2028
+ declare type Props_50 = {
1816
2029
  isOpen: boolean;
1817
2030
  onClose: () => void;
1818
2031
  title: string;
@@ -1830,14 +2043,14 @@ declare type Props_46 = {
1830
2043
  testId?: string;
1831
2044
  };
1832
2045
 
1833
- declare type Props_47 = BaseProps_3 & {
2046
+ declare type Props_51 = BaseProps_3 & {
1834
2047
  /** Boş (yalnızca boşluk dahil) değer gönderilemez. */
1835
2048
  isRequired?: boolean;
1836
2049
  /** Zorunluluk yıldızının ekran okuyucu karşılığı ("(zorunlu)"). */
1837
2050
  requiredLabel?: string;
1838
2051
  };
1839
2052
 
1840
- declare type Props_48 = TableHTMLAttributes<HTMLTableElement> & Partial<{
2053
+ declare type Props_52 = TableHTMLAttributes<HTMLTableElement> & Partial<{
1841
2054
  /** Hücre dolgusu. */
1842
2055
  density: 'compact' | 'regular' | 'spacious';
1843
2056
  /** Başlık satırı `$surface-2` zeminle kutunun içinde YAPIŞKAN kalır. */
@@ -1846,7 +2059,7 @@ declare type Props_48 = TableHTMLAttributes<HTMLTableElement> & Partial<{
1846
2059
  hasRowHover: boolean;
1847
2060
  }>;
1848
2061
 
1849
- declare type Props_49 = {
2062
+ declare type Props_53 = {
1850
2063
  columns: DataTableColumn[];
1851
2064
  /**
1852
2065
  * Tablonun erişilebilir adı ("Bekleyen siparişler").
@@ -1878,22 +2091,7 @@ declare type Props_49 = {
1878
2091
  testId?: string;
1879
2092
  };
1880
2093
 
1881
- declare type Props_5 = {
1882
- /** Tetikleyici. */
1883
- trigger: ReactElement;
1884
- children: ReactNode;
1885
- /** Yüzeyin erişilebilir adı. */
1886
- label: string;
1887
- side?: PositionSide;
1888
- align?: PositionAlign;
1889
- /** Kontrollü kullanım. */
1890
- isOpen?: boolean;
1891
- onOpenChange?: (isOpen: boolean) => void;
1892
- className?: string;
1893
- testId?: string;
1894
- };
1895
-
1896
- declare type Props_50 = {
2094
+ declare type Props_54 = {
1897
2095
  /**
1898
2096
  * Filtreler uygulanır. `preventDefault` bileşenin işi; çağıran yalnızca durumunu günceller
1899
2097
  * (sayfayı 1'e almak + aramayı uygulamak gibi).
@@ -1909,11 +2107,26 @@ declare type Props_50 = {
1909
2107
  testId?: string;
1910
2108
  };
1911
2109
 
1912
- declare type Props_51 = LinkProps | ButtonProps;
2110
+ declare type Props_55 = LinkProps | ButtonProps;
2111
+
2112
+ declare type Props_6 = {
2113
+ /** Tetikleyici. */
2114
+ trigger: ReactElement;
2115
+ children: ReactNode;
2116
+ /** Yüzeyin erişilebilir adı. */
2117
+ label: string;
2118
+ side?: PositionSide;
2119
+ align?: PositionAlign;
2120
+ /** Kontrollü kullanım. */
2121
+ isOpen?: boolean;
2122
+ onOpenChange?: (isOpen: boolean) => void;
2123
+ className?: string;
2124
+ testId?: string;
2125
+ };
1913
2126
 
1914
- declare type Props_6<T extends string> = SingleProps<T> | MultipleProps<T>;
2127
+ declare type Props_7<T extends string> = SingleProps<T> | MultipleProps<T>;
1915
2128
 
1916
- declare type Props_7<T extends string> = {
2129
+ declare type Props_8<T extends string> = {
1917
2130
  options: SegmentOption<T>[];
1918
2131
  value: T;
1919
2132
  onChange: (value: T) => void;
@@ -1926,7 +2139,7 @@ declare type Props_7<T extends string> = {
1926
2139
  testId?: string;
1927
2140
  };
1928
2141
 
1929
- declare type Props_8<T extends string> = {
2142
+ declare type Props_9<T extends string> = {
1930
2143
  options: SelectOption<T>[];
1931
2144
  value: T;
1932
2145
  onChange: (value: T) => void;
@@ -1956,21 +2169,10 @@ declare type Props_8<T extends string> = {
1956
2169
  testId?: string;
1957
2170
  };
1958
2171
 
1959
- declare type Props_9 = {
1960
- /** Radyo grubu adı — aynı gruptaki kartlar ok tuşlarıyla gezilir. */
1961
- name: string;
1962
- value: string;
1963
- isSelected: boolean;
1964
- isDisabled?: boolean;
1965
- onChange: (value: string) => void;
1966
- /** Zengin gövde: kartın içeriği çağırana aittir. */
1967
- children: ReactNode;
1968
- } & CommonElementProps;
1969
-
1970
2172
  export declare const QuantityStepper: typeof QuantityStepper_2;
1971
2173
 
1972
2174
  /** Adet seçici. */
1973
- declare const QuantityStepper_2: FC<Props_12>;
2175
+ declare const QuantityStepper_2: FC<Props_13>;
1974
2176
 
1975
2177
  export declare const Radio: typeof Radio_2;
1976
2178
 
@@ -1987,7 +2189,7 @@ testId?: string;
1987
2189
  export declare const RadioCard: typeof RadioCard_2;
1988
2190
 
1989
2191
  /** Seçilebilir kart — zengin gövdeli radyo. */
1990
- declare const RadioCard_2: FC<Props_9>;
2192
+ declare const RadioCard_2: FC<Props_10>;
1991
2193
 
1992
2194
  declare type RangeProps = {
1993
2195
  value: DateRangeValue;
@@ -2011,19 +2213,19 @@ declare type RangeProps = {
2011
2213
  export declare const RangeSlider: typeof RangeSlider_2;
2012
2214
 
2013
2215
  /** Çift kulplu aralık kaydırıcı. */
2014
- declare const RangeSlider_2: ({ min, max, step, value, onChange, onCommit, formatValue, label, minLabel, maxLabel, isDisabled, className, testId, }: Props_10) => JSX.Element;
2216
+ declare const RangeSlider_2: ({ min, max, step, value, onChange, onCommit, formatValue, label, minLabel, maxLabel, isDisabled, className, testId, }: Props_11) => JSX.Element;
2015
2217
 
2016
2218
  export declare type RangeValue = [number, number];
2017
2219
 
2018
2220
  export declare const Rating: typeof Rating_2;
2019
2221
 
2020
2222
  /** Yıldız puanı — salt gösterim. */
2021
- declare const Rating_2: FC<Props_29>;
2223
+ declare const Rating_2: FC<Props_32>;
2022
2224
 
2023
2225
  export declare const RatingInput: typeof RatingInput_2;
2024
2226
 
2025
2227
  /** Yıldızla puan girişi. */
2026
- declare const RatingInput_2: ({ value, onChange, label, ratingLabels, formatStarCount, isDisabled, className, testId, }: Props_11) => JSX.Element;
2228
+ declare const RatingInput_2: ({ value, onChange, label, ratingLabels, formatStarCount, isDisabled, className, testId, }: Props_12) => JSX.Element;
2027
2229
 
2028
2230
  /** Beş puanın her birinin ne anlama geldiği. */
2029
2231
  export declare type RatingLabels = Record<1 | 2 | 3 | 4 | 5, string>;
@@ -2040,7 +2242,7 @@ declare type RowProps = HTMLAttributes<HTMLTableRowElement> & {
2040
2242
  export declare const ScrollArea: typeof ScrollArea_2;
2041
2243
 
2042
2244
  /** Kaydırma kutusu — klavyeyle erişilebilir kaydırma bölgesi. */
2043
- declare const ScrollArea_2: FC<Props_31>;
2245
+ declare const ScrollArea_2: FC<Props_34>;
2044
2246
 
2045
2247
  declare type ScrollerProps = HTMLAttributes<HTMLDivElement> & {
2046
2248
  /** Çerçeve (hairline + yarıçap + yüzey). */
@@ -2056,12 +2258,12 @@ declare type ScrollerProps = HTMLAttributes<HTMLDivElement> & {
2056
2258
  export declare const SectionHeader: typeof SectionHeader_2;
2057
2259
 
2058
2260
  /** Bölüm başlığı. */
2059
- declare const SectionHeader_2: FC<Props_30>;
2261
+ declare const SectionHeader_2: FC<Props_33>;
2060
2262
 
2061
2263
  export declare const SegmentedControl: typeof SegmentedControl_2;
2062
2264
 
2063
2265
  /** Bölmeli denetim — görünüm değiştirme. */
2064
- declare const SegmentedControl_2: <T extends string>({ options, value, onChange, label, isIconOnly, size, className, testId, }: Props_7<T>) => JSX.Element;
2266
+ declare const SegmentedControl_2: <T extends string>({ options, value, onChange, label, isIconOnly, size, className, testId, }: Props_8<T>) => JSX.Element;
2065
2267
 
2066
2268
  export declare type SegmentOption<T extends string = string> = {
2067
2269
  value: T;
@@ -2074,7 +2276,7 @@ export declare type SegmentOption<T extends string = string> = {
2074
2276
  export declare const Select: typeof Select_2;
2075
2277
 
2076
2278
  /** Seçim kutusu. */
2077
- declare const Select_2: <T extends string>({ options, value, onChange, label, placeholder, closeLabel, icon, size, align, isDisabled, id, className, testId, required, "aria-describedby": describedBy, "aria-invalid": isInvalid, }: Props_8<T>) => JSX.Element;
2279
+ declare const Select_2: <T extends string>({ options, value, onChange, label, placeholder, closeLabel, icon, size, align, isDisabled, id, className, testId, required, "aria-describedby": describedBy, "aria-invalid": isInvalid, }: Props_9<T>) => JSX.Element;
2078
2280
 
2079
2281
  export declare type SelectOption<T extends string = string> = {
2080
2282
  value: T;
@@ -2098,7 +2300,7 @@ declare type SingleProps<T extends string> = BaseProps<T> & {
2098
2300
  export declare const Skeleton: typeof Skeleton_2;
2099
2301
 
2100
2302
  /** Yükleme iskeleti. */
2101
- declare const Skeleton_2: FC<Props_32>;
2303
+ declare const Skeleton_2: FC<Props_35>;
2102
2304
 
2103
2305
  export declare const SkeletonCard: NamedExoticComponent<ShapeProps>;
2104
2306
 
@@ -2111,16 +2313,28 @@ columns?: number;
2111
2313
  export declare const Spinner: typeof Spinner_2;
2112
2314
 
2113
2315
  /** Yükleme göstergesi. */
2114
- declare const Spinner_2: FC<Props_36>;
2316
+ declare const Spinner_2: FC<Props_39>;
2115
2317
 
2116
2318
  export declare const Stat: typeof Stat_2;
2117
2319
 
2118
2320
  /** Ölçüm kutusu (KPI). */
2119
- declare const Stat_2: FC<Props_33>;
2321
+ declare const Stat_2: FC<Props_36>;
2120
2322
 
2121
2323
  /** Değişimin yönü. `flat` "değişmedi" — yokluk DEĞİL. */
2122
2324
  export declare type StatTrend = 'up' | 'down' | 'flat';
2123
2325
 
2326
+ export declare const StatusDot: typeof StatusDot_2;
2327
+
2328
+ /**
2329
+ * Durum noktası — bağlantı, araç çağrısı, meşguliyet.
2330
+ *
2331
+ * ⚠ Marka tonu YOK (`brand`): nokta bir durum taşır, marka yüzeyi değil. Süren iş `neutral` +
2332
+ * `isPulsing` ile anlatılır; yeşil yalnızca anlamsal başarıda (`success`).
2333
+ */
2334
+ declare const StatusDot_2: FC<Props_25>;
2335
+
2336
+ export declare type StatusDotTone = 'neutral' | 'success' | 'warning' | 'danger';
2337
+
2124
2338
  export declare type StepItem = {
2125
2339
  id: string;
2126
2340
  label: string;
@@ -2131,12 +2345,19 @@ export declare type StepItem = {
2131
2345
  export declare const Steps: typeof Steps_2;
2132
2346
 
2133
2347
  /** Adım göstergesi (stepper) — çok adımlı akışta NEREDE olunduğu. */
2134
- declare const Steps_2: FC<Props_38>;
2348
+ declare const Steps_2: FC<Props_42>;
2349
+
2350
+ declare type StickToBottom = {
2351
+ /** Kutu sonda mı (pay dahilinde). `false` iken "en yeniye in" düğmesi gösterilir. */
2352
+ isAtEnd: boolean;
2353
+ /** Sona kaydırır ve yeniden yapışır. */
2354
+ scrollToEnd: () => void;
2355
+ };
2135
2356
 
2136
2357
  export declare const SummaryCard: typeof SummaryCard_2;
2137
2358
 
2138
2359
  /** Özet kartı — başlık + kısa açıklama + meta satırı taşıyan BAĞLANTILI kart. */
2139
- declare const SummaryCard_2: FC<Props_34>;
2360
+ declare const SummaryCard_2: FC<Props_37>;
2140
2361
 
2141
2362
  export declare type SummaryCardHeadingLevel = 2 | 3 | 4;
2142
2363
 
@@ -2168,7 +2389,7 @@ export declare type TabItem = {
2168
2389
  export declare const Table: typeof Table_2;
2169
2390
 
2170
2391
  /** Temel tablo — hairline satır ayrımı, `$surface-2` başlık, yoğunluk ölçeği. */
2171
- declare const Table_2: FC<Props_48>;
2392
+ declare const Table_2: FC<Props_52>;
2172
2393
 
2173
2394
  export declare const TableCheckbox: typeof TableCheckbox_2;
2174
2395
 
@@ -2198,17 +2419,18 @@ export declare const TABLET_PORTRAIT_BREAKPOINT = 768;
2198
2419
  export declare const Tabs: typeof Tabs_2;
2199
2420
 
2200
2421
  /** Sekmeler. */
2201
- declare const Tabs_2: FC<Props_39>;
2422
+ declare const Tabs_2: FC<Props_43>;
2202
2423
 
2203
2424
  export declare const TagInput: typeof TagInput_2;
2204
2425
 
2205
2426
  /** Etiket girdisi — yazılan metni kaldırılabilir çiplere çevirir. */
2206
- declare const TagInput_2: ({ values, onChange, label, placeholder, removeLabel, separators, maxTags, isDisabled, id, required, className, testId, "aria-describedby": describedBy, "aria-invalid": isInvalid, }: Props_14) => JSX.Element;
2427
+ declare const TagInput_2: ({ values, onChange, label, placeholder, removeLabel, separators, maxTags, isDisabled, id, required, className, testId, "aria-describedby": describedBy, "aria-invalid": isInvalid, }: Props_15) => JSX.Element;
2207
2428
 
2208
2429
  export declare const Textarea: typeof Textarea_2;
2209
2430
 
2210
2431
  /** Çok satırlı metin girdisi. */
2211
2432
  declare const Textarea_2: ForwardRefExoticComponent<TextareaHTMLAttributes<HTMLTextAreaElement> & {
2433
+ variant?: TextareaVariant;
2212
2434
  /** Alan içeriğiyle birlikte BÜYÜR — kaydırma çubuğu yerine yükseklik. */
2213
2435
  isAutoSize?: boolean;
2214
2436
  /** Otomatik büyümenin tavanı (satır). */
@@ -2218,10 +2440,17 @@ hasCounter?: boolean;
2218
2440
  testId?: string;
2219
2441
  } & RefAttributes<HTMLTextAreaElement>>;
2220
2442
 
2443
+ /**
2444
+ * `bare`: kenarlık, zemin, dolgu ve gölge YOK — çerçeveyi kapsayıcı çizer (sohbet girdisi).
2445
+ * ⚠ Odak göstergesi de kapsayıcının işi (`:focus-within`); `bare` alanı çerçevesiz bir kutuya
2446
+ * konursa odak görünmez olur.
2447
+ */
2448
+ declare type TextareaVariant = 'default' | 'bare';
2449
+
2221
2450
  export declare const TextLink: typeof TextLink_2;
2222
2451
 
2223
2452
  /** Metin bağlantısı. */
2224
- declare const TextLink_2: ({ href, children, hasArrow, tone, size, className, linkProps, ...rest }: Props_2) => JSX.Element;
2453
+ declare const TextLink_2: ({ href, children, hasArrow, tone, size, className, linkProps, ...rest }: Props_3) => JSX.Element;
2225
2454
 
2226
2455
  /** Temanın taşındığı öznitelik. `<html data-hanui-theme="dark">`. */
2227
2456
  export declare const THEME_ATTRIBUTE = "data-hanui-theme";
@@ -2229,12 +2458,12 @@ export declare const THEME_ATTRIBUTE = "data-hanui-theme";
2229
2458
  export declare const Tile: typeof Tile_2;
2230
2459
 
2231
2460
  /** Karo — ikon madalyonu + etiket. */
2232
- declare const Tile_2: ({ label, icon, href, meta, isActive, linkProps, className, testId }: Props_40) => JSX.Element;
2461
+ declare const Tile_2: ({ label, icon, href, meta, isActive, linkProps, className, testId }: Props_44) => JSX.Element;
2233
2462
 
2234
2463
  export declare const Timeline: typeof Timeline_2;
2235
2464
 
2236
2465
  /** Zaman çizelgesi — sipariş durumu, işlem geçmişi. */
2237
- declare const Timeline_2: FC<Props_41>;
2466
+ declare const Timeline_2: FC<Props_45>;
2238
2467
 
2239
2468
  export declare type TimelineEvent = {
2240
2469
  id: string;
@@ -2296,10 +2525,12 @@ export declare type ToastTone = 'info' | 'success' | 'warning' | 'danger';
2296
2525
  export declare const Tooltip: typeof Tooltip_2;
2297
2526
 
2298
2527
  /** İpucu balonu. */
2299
- declare const Tooltip_2: ({ content, children, side, position, openDelay, className, }: Props_3) => JSX.Element;
2528
+ declare const Tooltip_2: ({ content, children, side, position, openDelay, className, }: Props_4) => JSX.Element;
2300
2529
 
2301
2530
  /** Ölçü basamakları. */
2302
2531
  export declare enum UISize {
2532
+ /** Görsel 30 px — yoğun araç çubuğu ve üst bant. Dokunma hedefi yine 44 px (`tap-target`). */
2533
+ XSMALL = "XSMALL",
2303
2534
  SMALL = "SMALL",
2304
2535
  MEDIUM = "MEDIUM",
2305
2536
  LARGE = "LARGE"
@@ -2307,13 +2538,13 @@ export declare enum UISize {
2307
2538
 
2308
2539
  /** Düğme ve eylem varyantları. */
2309
2540
  export declare enum UIVariant {
2310
- /** Ekranın tek beklenen eylemi: nötr grafit dolgu. */
2541
+ /** Ekranın tek beklenen eylemi: çam dolgu (koyu temada mint sınırla). Bir ekranda TEK. */
2311
2542
  PRIMARY = "PRIMARY",
2312
2543
  /** Dönüşüm eylemi — ve yalnızca o. */
2313
2544
  CART = "CART",
2314
2545
  /** Nötr ikincil eylem: gri kenarlık, koyu metin ("Vazgeç"). */
2315
2546
  SECONDARY = "SECONDARY",
2316
- /** Mavi çerçeveli eylem — teşvik edilen ama birincil olmayan gezinme ("Tümünü gör"). */
2547
+ /** Mürekkep çerçeveli eylem — teşvik edilen ama birincil olmayan gezinme ("Tümünü gör"). */
2317
2548
  OUTLINE = "OUTLINE",
2318
2549
  /** Vurgu bandı içindeki eylem: bandın kendi yüzey merdivenini kullanır. */
2319
2550
  DARK = "DARK",
@@ -2348,6 +2579,15 @@ export declare const useHanui: () => HanuiContextValue;
2348
2579
  */
2349
2580
  export declare const useHanuiTheme: () => HanuiThemeState;
2350
2581
 
2582
+ /**
2583
+ * Token'ların ÇÖZÜLMÜŞ değerleri — CSS değişkeni okuyamayan çizim kütüphaneleri için (recharts
2584
+ * `stroke`/`fill` prop'ları `var(--…)` kabul etmiyor).
2585
+ * Tema değiştiğinde (açık seçim, sistem tercihi, `initHanui` ezmesi) yeniden çizer.
2586
+ * ⚠ Sunucu çıktısında ve hidrasyondan önceki ilk karede her değer `currentColor`.
2587
+ * @example const colors = useHanuiTokens(['series-1', 'series-2', 'border']);
2588
+ */
2589
+ export declare const useHanuiTokens: <TName extends HanuiToken>(names: readonly TName[]) => Record<TName, string>;
2590
+
2351
2591
  /** LISTBOX KLAVYE GEZİNMESİ — `Select` ve `Combobox`ın ortak modeli. */
2352
2592
  export declare const useListboxNavigation: <T extends HTMLElement = HTMLElement>({ count, isOpen, initialIndex, onSelect, onClose }: ListboxNavigationOptions, { hasSpaceSelect }?: {
2353
2593
  hasSpaceSelect?: boolean | undefined;
@@ -2363,6 +2603,16 @@ export declare const usePositioning: (anchorRef: {
2363
2603
  current: HTMLElement | null;
2364
2604
  }, { side, align, offset, padding, isOpen }: PositioningOptions) => PositioningState;
2365
2605
 
2606
+ /**
2607
+ * Kaydırma kutusunu SONA yapışık tutar — kullanıcı yukarı kaydırana kadar. Akan bir yanıt, canlı
2608
+ * terminal çıktısı, büyüyen akıl yürütme metni.
2609
+ * İçerik değişimini (`MutationObserver`: yeni satır, akan metin) ve kutunun kendi boyunu
2610
+ * (`ResizeObserver`: ekran klavyesi açılınca) izler; render'da yerleşim okumaz.
2611
+ * @param isEnabled `false` iken hiçbir şey izlenmez.
2612
+ * @example const { isAtEnd, scrollToEnd } = useStickToBottom(listRef);
2613
+ */
2614
+ export declare const useStickToBottom: (ref: RefObject<HTMLElement | null>, isEnabled?: boolean) => StickToBottom;
2615
+
2366
2616
  /** SANALLAŞTIRMA — yalnızca görünen satırları çiz. */
2367
2617
  export declare const useVirtualList: (count: number, { rowHeight, overscan, isEnabled }?: {
2368
2618
  rowHeight?: number | undefined;