@ahmetilhn/hanui 1.0.2 → 1.1.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.
package/build/index.d.ts CHANGED
@@ -120,10 +120,12 @@ declare type BaseProps_3 = {
120
120
  title: string;
121
121
  /** Girdi alanının etiketi. */
122
122
  label: string;
123
- submitLabel: string;
124
- cancelLabel: string;
125
- /** Kapatma düğmesinin erişilebilir adı. */
126
- closeLabel: string;
123
+ /** Verilmezse `labels.submit`. */
124
+ submitLabel?: string;
125
+ /** Verilmezse `labels.cancel`. */
126
+ cancelLabel?: string;
127
+ /** Kapatma düğmesinin erişilebilir adı. Verilmezse `labels.close`. */
128
+ closeLabel?: string;
127
129
  /** Başlığın altındaki bir cümlelik bağlam. */
128
130
  description?: ReactNode;
129
131
  hint?: string;
@@ -142,10 +144,12 @@ declare type BaseProps_3 = {
142
144
  declare type BaseProps_4 = {
143
145
  page: number;
144
146
  totalPages: number;
145
- /** Gezinme bölgesinin erişilebilir adı ("Sayfalar"). */
146
- label: string;
147
- previousLabel: string;
148
- nextLabel: string;
147
+ /** Gezinme bölgesinin erişilebilir adı. Verilmezse `labels.pagination.label`. */
148
+ label?: string;
149
+ /** Verilmezse `labels.pagination.previous`. */
150
+ previousLabel?: string;
151
+ /** Verilmezse `labels.pagination.next`. */
152
+ nextLabel?: string;
149
153
  className?: string;
150
154
  testId?: string;
151
155
  };
@@ -479,20 +483,27 @@ export declare const Combobox: typeof Combobox_2;
479
483
  */
480
484
  declare const Combobox_2: <T extends string>({ options, value, onChange, labels, isSearchHidden, onSearch, isLoading, isDisabled, isClearable, icon, id, className, testId, "aria-describedby": describedBy, "aria-invalid": isInvalid, }: Props_5<T>) => JSX.Element;
481
485
 
482
- /** Bileşenin çizdiği metinler. Hepsi ZORUNLU: kütüphane dil kararı vermez. */
486
+ /**
487
+ * Bileşenin çizdiği metinler.
488
+ *
489
+ * <p>`placeholder` dışındaki her şey `HanuiProvider labels.combobox`ten de
490
+ * gelebilir; buradaki değer kazanır. `placeholder` ALANI adlandırır
491
+ * ("Şehir seçin", "Marka seçin") ve her çağrı yerinde farklıdır — o yüzden
492
+ * zorunlu kaldı.
493
+ */
483
494
  export declare type ComboboxLabels = {
484
495
  /** Seçim yokken tetikleyicide ve alt sayfa başlığında görünen metin. */
485
496
  placeholder: string;
486
497
  /** Arama kutusunun yer tutucusu ve erişilebilir adı. */
487
- searchPlaceholder: string;
498
+ searchPlaceholder?: string;
488
499
  /** Liste boşken gösterilen metin. */
489
- emptyMessage: string;
500
+ emptyMessage?: string;
490
501
  /** Arama sürerken liste yerine gösterilen metin. */
491
- loadingMessage: string;
502
+ loadingMessage?: string;
492
503
  /** Seçimi kaldıran çarpının erişilebilir adı. */
493
- clearLabel: string;
504
+ clearLabel?: string;
494
505
  /** Alt sayfanın kapatma düğmesinin erişilebilir adı. */
495
- closeLabel: string;
506
+ closeLabel?: string;
496
507
  };
497
508
 
498
509
  export declare type ComboboxOption<T extends string = string> = {
@@ -715,8 +726,8 @@ declare type DirectoryJumpProps = {
715
726
  labels: string[];
716
727
  /** Çıpa kimliğini üretir; `DirectoryGroup id` ile aynı olmalı. */
717
728
  toId: (label: string) => string;
718
- /** Şeridin erişilebilir adı ("Harfe göre atla"). */
719
- label: string;
729
+ /** Şeridin erişilebilir adı. Verilmezse `labels.directoryJump`. */
730
+ label?: string;
720
731
  };
721
732
 
722
733
  declare type DirectoryProps = {
@@ -844,6 +855,45 @@ declare const FilterBar_2: FC<Props_34>;
844
855
  */
845
856
  export declare const FilterBarField: FC<FieldProps>;
846
857
 
858
+ /**
859
+ * ARAYÜZ METİNLERİ.
860
+ *
861
+ * <h3>Kütüphane hiçbir dilde metin UYDURMAZ</h3>
862
+ * Bir bileşen kütüphanesi "Kapat" yazamaz: hangi dilde, hangi üslupta
863
+ * ("Kapat" mı "Vazgeç" mi), hangi terimle (kayıt / ürün / talep) yazacağını
864
+ * bilmez. Bu yüzden kullanıcıya görünen her metin dışarıdan gelir.
865
+ *
866
+ * <h3>Ama her ÇAĞRI YERİNDE değil, bir KEZ</h3>
867
+ * Metinleri prop olarak zorunlu tutmak doğruydu ama yeri yanlıştı: aynı
868
+ * "Kapat" dizesi yüz çağrı yerine dağılıyor ve biri değiştiğinde
869
+ * doksan dokuzu eski kalıyordu. Uygulamanın dili tek; karar da tek yerde
870
+ * verilmeli.
871
+ *
872
+ * <pre>
873
+ * &lt;HanuiProvider labels={{ close: 'Kapat', cancel: 'Vazgeç' }}&gt;
874
+ * </pre>
875
+ *
876
+ * <h3>Çözümleme sırası: prop → config → uyarı</h3>
877
+ * Bir prop verilmişse o kazanır (bir pencerenin kapatma düğmesi bağlama göre
878
+ * "Kapat" yerine "Daha sonra" olabilir). Verilmemişse config'ten okunur.
879
+ * İkisi de yoksa öğe erişilebilir adını kaybeder — bu bir hata ve geliştirme
880
+ * kipinde konsola yazılır (bkz. `helpers/label.helper`).
881
+ *
882
+ * <h3>Neden derleme zamanında zorlanamıyor</h3>
883
+ * TypeScript, çalışma zamanında bir sağlayıcının olup olmadığını göremez.
884
+ * Prop'ları zorunlu tutmak config'i işe yaramaz kılardı; isteğe bağlı yapmak
885
+ * derleme güvencesini bırakıp geliştirme uyarısına indiriyor. Bilinçli bir
886
+ * takas: metnin tek yerde durması, derleyicinin bunu görmesinden daha değerli.
887
+ *
888
+ * <h3>Neye metin VERİLMEZ</h3>
889
+ * Öğeye ÖZGÜ olan hiçbir şey buraya girmez: `Modal.title`,
890
+ * `ConfirmDialog.confirmLabel` ("Sil" — eylemi tekrarlamak zorunda),
891
+ * `IconButton.label`, `Select.label`, `TableCheckbox.label`. Bunlar prop
892
+ * olarak zorunlu kalır çünkü her çağrı yerinde farklıdır.
893
+ */
894
+ /** Sayı biçimlendiricileri: değere bağlı metinler dizeyle verilemez. */
895
+ declare type Formatter<TArgs extends unknown[]> = (...args: TArgs) => string;
896
+
847
897
  /** Kullanıcının seçtiği tema. `system` işletim sistemi tercihini izler. */
848
898
  export declare type HanuiColorScheme = 'light' | 'dark';
849
899
 
@@ -859,6 +909,11 @@ export declare type HanuiContextValue = {
859
909
  linkComponent?: HanuiLinkComponent;
860
910
  /** Uygulanan tema ezmeleri. Salt okunur; değiştirmek için `HanuiProvider`. */
861
911
  theme?: HanuiThemeConfig;
912
+ /**
913
+ * Arayüz metinleri. Bir bileşen metnini prop olarak almadıysa buradan okur
914
+ * (bkz. `theme/labels.ts`).
915
+ */
916
+ labels?: HanuiLabels;
862
917
  };
863
918
 
864
919
  /**
@@ -879,6 +934,79 @@ export declare type HanuiFonts = Partial<{
879
934
  mono: string;
880
935
  }>;
881
936
 
937
+ export declare type HanuiLabels = Partial<{
938
+ /** Kip pencere ve alt sayfanın kapatma düğmesi. `Modal`, `BottomSheet`. */
939
+ close: string;
940
+ /** Vazgeçme eylemi. `ConfirmDialog`, `PromptDialog`. */
941
+ cancel: string;
942
+ /** Kaydetme/gönderme eylemi. `PromptDialog`. */
943
+ submit: string;
944
+ /** Bekleme göstergesinin ekran okuyucu metni. `Spinner`. */
945
+ loading: string;
946
+ /** Zorunlu alanın yıldızının yanındaki okunabilir karşılık. `Field`. */
947
+ required: string;
948
+ /** Filtre şeridinin erişilebilir adı. `FilterBar`. */
949
+ filters: string;
950
+ /** Kırıntı yolunun gezinme bölgesi adı. `Breadcrumb`. */
951
+ breadcrumb: string;
952
+ /** Alfabe atlama şeridinin gezinme bölgesi adı. `DirectoryJump`. */
953
+ directoryJump: string;
954
+ /** Seçim yokken `Select` tetikleyicisinde görünen metin. */
955
+ selectPlaceholder: string;
956
+ /**
957
+ * Baş harf büyütmesinde kullanılacak dil etiketi. `Avatar`.
958
+ *
959
+ * <p>Türkçede ZORUNLU: `toUpperCase()` "i" harfini "I" yapıyor ve
960
+ * "İlhan"ın baş harfi "I" çıkıyor.
961
+ */
962
+ locale: string;
963
+ /** Para birimi simgesi ya da kodu. `Price`. */
964
+ currency: string;
965
+ combobox: Partial<{
966
+ searchPlaceholder: string;
967
+ emptyMessage: string;
968
+ loadingMessage: string;
969
+ clearLabel: string;
970
+ }>;
971
+ pagination: Partial<{
972
+ /** Gezinme bölgesinin adı ("Sayfalar"). */
973
+ label: string;
974
+ previous: string;
975
+ next: string;
976
+ }>;
977
+ quantity: Partial<{
978
+ label: string;
979
+ decrease: string;
980
+ increase: string;
981
+ }>;
982
+ range: Partial<{
983
+ /** Alt kulbun ad eki ("En az"). */
984
+ min: string;
985
+ /** Üst kulbun ad eki ("En çok"). */
986
+ max: string;
987
+ }>;
988
+ dataTable: Partial<{
989
+ empty: string;
990
+ loading: string;
991
+ }>;
992
+ copyField: Partial<{
993
+ /** Kopyalama düğmesinin adı. Değeri İÇERİR: bir listede on beş düğme var
994
+ * ve hepsi "Kopyala" diye okunduğunda hangisi olduğu belli olmuyordu. */
995
+ copy: Formatter<[value: string]>;
996
+ copied: Formatter<[value: string]>;
997
+ announcement: string;
998
+ }>;
999
+ rating: Partial<{
1000
+ /** Yıldızların ekran okuyucu karşılığı ("5 üzerinden 4,5 — 12 değerlendirme"). */
1001
+ srLabel: Formatter<[value: number, count: number | undefined]>;
1002
+ /** Puan girişinde yıldız sayısı ("4 yıldız"). */
1003
+ starCount: Formatter<[star: number]>;
1004
+ /** Beş puanın anlamı. Dolu yıldız sayısı tek başına bir şekil sinyali;
1005
+ * yanındaki metin renk körü kullanıcıya ikinci bir ipucu verir. */
1006
+ scale: Record<1 | 2 | 3 | 4 | 5, string>;
1007
+ }>;
1008
+ }>;
1009
+
882
1010
  /** Tüketicinin yönlendiricisi (`next/link`, `react-router`ın `Link`i…). */
883
1011
  export declare type HanuiLinkComponent = ComponentType<HanuiLinkProps>;
884
1012
 
@@ -1430,15 +1558,30 @@ declare type Props = {
1430
1558
  * <HanuiProvider linkComponent={NextLink}>…</HanuiProvider>
1431
1559
  */
1432
1560
  linkComponent?: HanuiLinkComponent;
1561
+ /**
1562
+ * Arayüz metinleri — bir kez, burada.
1563
+ *
1564
+ * <p>Kütüphane hiçbir dilde metin uydurmaz ama aynı "Kapat" dizesini yüz
1565
+ * çağrı yerine dağıtmak da doğru değildi: biri değiştiğinde doksan dokuzu
1566
+ * eski kalıyordu. Çözümleme sırası prop → buradaki config; ikisi de yoksa
1567
+ * geliştirme kipinde konsola uyarı düşer.
1568
+ *
1569
+ * <p>Öğeye ÖZGÜ metinler buraya girmez (`Modal.title`,
1570
+ * `ConfirmDialog.confirmLabel`, `IconButton.label`); onlar prop olarak
1571
+ * zorunlu kalır çünkü her çağrı yerinde farklıdır.
1572
+ */
1573
+ labels?: HanuiLabels;
1433
1574
  };
1434
1575
 
1435
1576
  declare type Props_10 = {
1436
1577
  value: number;
1437
1578
  onChange: (value: number) => void;
1438
- /** Grubun ve girdinin erişilebilir adı ("Adet"). */
1439
- label: string;
1440
- decreaseLabel: string;
1441
- increaseLabel: string;
1579
+ /** Grubun ve girdinin erişilebilir adı. Verilmezse `labels.quantity.label`. */
1580
+ label?: string;
1581
+ /** Verilmezse `labels.quantity.decrease`. */
1582
+ decreaseLabel?: string;
1583
+ /** Verilmezse `labels.quantity.increase`. */
1584
+ increaseLabel?: string;
1442
1585
  min?: number;
1443
1586
  max?: number;
1444
1587
  isDisabled?: boolean;
@@ -1447,7 +1590,17 @@ declare type Props_10 = {
1447
1590
  testId?: string;
1448
1591
  };
1449
1592
 
1450
- declare type Props_11 = BaseProps_2 & RequiredProps;
1593
+ declare type Props_11 = BaseProps_2 & {
1594
+ isRequired?: boolean;
1595
+ /**
1596
+ * Zorunluluk yıldızının ekran okuyucu karşılığı ("(zorunlu)").
1597
+ *
1598
+ * <p>Yıldız yalnızca GÖRSEL bir kısayol; renk ve şekil tek başına anlam
1599
+ * taşıyamaz (WCAG 1.4.1), o yüzden yanında okunabilir bir metin olmak
1600
+ * zorunda. Verilmezse `labels.required` okunur.
1601
+ */
1602
+ requiredLabel?: string;
1603
+ };
1451
1604
 
1452
1605
  declare type Props_12 = {
1453
1606
  children: ReactNode;
@@ -1472,7 +1625,7 @@ declare type Props_13 = {
1472
1625
  *
1473
1626
  * <p>Türkçede ZORUNLU: `toUpperCase()` "i" harfini "I" yapıyor ve "İlhan"ın
1474
1627
  * baş harfi "I" çıkıyor. `toLocaleUpperCase('tr')` doğru "İ" verir.
1475
- * Verilmezse çalışma ortamının varsayılan dili kullanılır.
1628
+ * Verilmezse `labels.locale`, o da yoksa çalışma ortamının varsayılan dili.
1476
1629
  */
1477
1630
  locale?: string;
1478
1631
  size?: 'sm' | 'md' | 'lg';
@@ -1492,8 +1645,8 @@ declare type Props_14 = {
1492
1645
 
1493
1646
  declare type Props_15 = {
1494
1647
  items: Crumb[];
1495
- /** Gezinme bölgesinin erişilebilir adı ("Konum", "Breadcrumb"). */
1496
- label: string;
1648
+ /** Gezinme bölgesinin erişilebilir adı. Verilmezse `labels.breadcrumb`. */
1649
+ label?: string;
1497
1650
  /** Yönlendiriciye geçirilecek ek props. */
1498
1651
  linkProps?: HanuiLinkExtraProps;
1499
1652
  className?: string;
@@ -1503,12 +1656,19 @@ declare type Props_15 = {
1503
1656
  declare type Props_16 = {
1504
1657
  /** Gösterilecek ve panoya kopyalanacak değer. */
1505
1658
  value: string;
1506
- /** Kopyalama düğmesinin erişilebilir adı ve `title`ı. */
1507
- copyLabel: string;
1508
- /** Kopyalandıktan sonraki erişilebilir ad ve `title`. */
1509
- copiedLabel: string;
1510
- /** `aria-live` ile duyurulan onay cümlesi ("Panoya kopyalandı"). */
1511
- copiedAnnouncement: string;
1659
+ /**
1660
+ * Kopyalama düğmesinin erişilebilir adı ve `title`ı.
1661
+ *
1662
+ * <p>Verilmezse `labels.copyField.copy(value)` çağrılır. Config bir DİZE
1663
+ * değil biçimlendirici tutar: ad değeri İÇERMELİ — bir listede on beş
1664
+ * kopyalama düğmesi var ve hepsi "Kopyala" diye okunduğunda ekran okuyucu
1665
+ * kullanıcısı hangisinin hangi kayıt olduğunu bilmiyordu.
1666
+ */
1667
+ copyLabel?: string;
1668
+ /** Kopyalandıktan sonraki ad. Verilmezse `labels.copyField.copied(value)`. */
1669
+ copiedLabel?: string;
1670
+ /** `aria-live` ile duyurulan onay cümlesi. Verilmezse `labels.copyField.announcement`. */
1671
+ copiedAnnouncement?: string;
1512
1672
  size?: 'sm' | 'md';
1513
1673
  /**
1514
1674
  * Kopyalama düğmesini gizler.
@@ -1600,8 +1760,8 @@ declare type Props_20 = {
1600
1760
  declare type Props_21 = {
1601
1761
  /** BİÇİMLENMİŞ tutar: "1.299,90". Bileşen hesap yapmaz. */
1602
1762
  value: string;
1603
- /** Para birimi simgesi ya da kodu: "₺", "$", "EUR". */
1604
- currency: string;
1763
+ /** Para birimi simgesi ya da kodu. Verilmezse `labels.currency`. */
1764
+ currency?: string;
1605
1765
  /** Üstü çizili liste fiyatı; indirim varsa verilir (biçimlenmiş). */
1606
1766
  listValue?: string;
1607
1767
  /** İndirim oranı (tam sayı yüzde). */
@@ -1619,13 +1779,16 @@ declare type Props_22 = {
1619
1779
  /** Değerlendirme sayısı; verilirse yıldızların yanında gösterilir. */
1620
1780
  count?: number;
1621
1781
  /**
1622
- * Ekran okuyucuya okunan metin — ZORUNLU.
1782
+ * Ekran okuyucuya okunan metin.
1623
1783
  *
1624
1784
  * <p>Yıldızlar `aria-hidden`: beş ayrı ikonu tek tek duyurmak anlamsız.
1625
1785
  * Yerine bir cümle okunur ("5 üzerinden 4,5 — 12 değerlendirme") ve o cümle
1626
1786
  * hem dile hem sayı biçimine bağlı; kütüphane onu uyduramaz.
1787
+ *
1788
+ * <p>Verilmezse `labels.rating.srLabel(value, count)` çağrılır — cümle
1789
+ * değere bağlı olduğu için config bir DİZE değil bir biçimlendirici tutar.
1627
1790
  */
1628
- srLabel: string;
1791
+ srLabel?: string;
1629
1792
  size?: 'sm' | 'md';
1630
1793
  className?: string;
1631
1794
  testId?: string;
@@ -1660,13 +1823,12 @@ declare type Props_25 = {
1660
1823
  /**
1661
1824
  * Ekran okuyucuya okunacak metin; görsel olarak gizli.
1662
1825
  *
1663
- * <p>ZORUNLU ve boş dizeye izin verilir. Bekleme durumunun duyurulması
1664
- * gerekiyor ("Yükleniyor"), ama göstergenin <em>zaten adı olan</em> bir
1665
- * öğenin içinde durduğu yerlerde (yükleniyor durumundaki bir düğme)
1666
- * duyurmak tekrar üretiyor. O zaman `label=""` geçilir; karar çağıranın
1667
- * ve bilinçli olmak zorunda.
1826
+ * <p>Verilmezse `labels.loading` okunur. Boş dizeye BİLİNÇLİ olarak izin
1827
+ * verilir: göstergenin <em>zaten adı olan</em> bir öğenin içinde durduğu
1828
+ * yerlerde (yükleniyor durumundaki bir düğme) duyurmak tekrar üretiyor.
1829
+ * `label=""` orada doğru olan ve config'i de bastırır.
1668
1830
  */
1669
- label: string;
1831
+ label?: string;
1670
1832
  className?: string;
1671
1833
  };
1672
1834
 
@@ -1705,8 +1867,8 @@ declare type Props_27 = {
1705
1867
 
1706
1868
  declare type Props_28 = {
1707
1869
  title: string;
1708
- /** Kapatma düğmesinin erişilebilir adı. */
1709
- closeLabel: string;
1870
+ /** Kapatma düğmesinin erişilebilir adı. Verilmezse `labels.close`. */
1871
+ closeLabel?: string;
1710
1872
  onClose: () => void;
1711
1873
  children: ReactNode;
1712
1874
  /**
@@ -1733,8 +1895,13 @@ declare type Props_29 = {
1733
1895
  isOpen: boolean;
1734
1896
  onClose: () => void;
1735
1897
  title: string;
1736
- /** Kapatma düğmesinin erişilebilir adı ("Kapat", "Close"). */
1737
- closeLabel: string;
1898
+ /**
1899
+ * Kapatma düğmesinin erişilebilir adı.
1900
+ *
1901
+ * <p>Verilmezse `HanuiProvider labels.close` okunur. Bağlama göre farklı
1902
+ * olması gereken pencerelerde ("Daha sonra") prop kazanır.
1903
+ */
1904
+ closeLabel?: string;
1738
1905
  children?: ReactNode;
1739
1906
  /**
1740
1907
  * Başlığın altındaki bir cümlelik açıklama.
@@ -1788,17 +1955,36 @@ declare type Props_30 = {
1788
1955
  title: string;
1789
1956
  /** Sonucu açıklar: neyin geri alınamaz olduğu burada yazılır. */
1790
1957
  description?: ReactNode;
1791
- /** Onay düğmesinin etiketi. Eylemi TEKRARLAR: "Sil", "İptal et". */
1958
+ /**
1959
+ * Onay düğmesinin etiketi — ZORUNLU, config'ten okunmaz.
1960
+ *
1961
+ * <p>Eylemi TEKRARLAR: "Sil", "İptal et". Her pencerede farklı olduğu için
1962
+ * uygulama düzeyinde bir varsayılanı olamaz; "Tamam" gibi bir varsayılan
1963
+ * kullanıcıya neyi onayladığını söylemez ve `window.confirm()`ten kaçmamızın
1964
+ * sebeplerinden biri tam olarak buydu.
1965
+ */
1792
1966
  confirmLabel: string;
1793
- cancelLabel: string;
1794
- /** Kapatma düğmesinin erişilebilir adı. */
1795
- closeLabel: string;
1967
+ /** Verilmezse `labels.cancel`. */
1968
+ cancelLabel?: string;
1969
+ /** Verilmezse `labels.close`. */
1970
+ closeLabel?: string;
1796
1971
  kind?: ConfirmKind;
1797
1972
  /** Ek bağlam: silinecek kaydın özeti, uyarı kutusu. */
1798
1973
  children?: ReactNode;
1799
1974
  };
1800
1975
 
1801
- declare type Props_31 = BaseProps_3 & RequiredProps_2;
1976
+ declare type Props_31 = BaseProps_3 & {
1977
+ /** Boş (yalnızca boşluk dahil) değer gönderilemez. */
1978
+ isRequired?: boolean;
1979
+ /**
1980
+ * Zorunluluk yıldızının ekran okuyucu karşılığı ("(zorunlu)").
1981
+ *
1982
+ * <p>Yıldız yalnızca GÖRSEL bir kısayol; renk ve şekil tek başına anlam
1983
+ * taşıyamaz (WCAG 1.4.1), o yüzden yanında okunabilir bir metin olmak
1984
+ * zorunda. Verilmezse `labels.required` okunur.
1985
+ */
1986
+ requiredLabel?: string;
1987
+ };
1802
1988
 
1803
1989
  declare type Props_32 = TableHTMLAttributes<HTMLTableElement> & Partial<{
1804
1990
  /**
@@ -1826,10 +2012,10 @@ declare type Props_33 = {
1826
2012
  * üstlenir. Uyarı tinti için {@link DataTableRow}.
1827
2013
  */
1828
2014
  children?: ReactNode;
1829
- /** Satır yokken gösterilen metin. */
1830
- emptyMessage: string;
1831
- /** Yükleme sürerken satırların yerine gösterilen metin. */
1832
- loadingMessage: string;
2015
+ /** Satır yokken gösterilen metin. Verilmezse `labels.dataTable.empty`. */
2016
+ emptyMessage?: string;
2017
+ /** Yükleme sürerken gösterilen metin. Verilmezse `labels.dataTable.loading`. */
2018
+ loadingMessage?: string;
1833
2019
  isLoading?: boolean;
1834
2020
  /**
1835
2021
  * Liste ÇEKİLEMEDİ. <strong>"Yüklenemedi" ile "boş" ayrı durumlardır</strong>:
@@ -1859,8 +2045,8 @@ declare type Props_34 = {
1859
2045
  children: ReactNode;
1860
2046
  /** Şeridin sağ ucundaki eylemler ("Uygula" düğmesi gibi). */
1861
2047
  actions?: ReactNode;
1862
- /** Şeridin erişilebilir adı ("Filtreler"). */
1863
- label: string;
2048
+ /** Şeridin erişilebilir adı. Verilmezse `labels.filters`. */
2049
+ label?: string;
1864
2050
  className?: string;
1865
2051
  testId?: string;
1866
2052
  };
@@ -1914,10 +2100,10 @@ declare type Props_6<T extends string> = {
1914
2100
  * seçili değeri okur ("En yeni, düğme") ve neyi seçtiğini söylemez.
1915
2101
  */
1916
2102
  label: string;
1917
- /** Seçim yokken tetikleyicide görünen metin. */
1918
- placeholder: string;
1919
- /** Alt sayfanın kapatma düğmesinin erişilebilir adı. */
1920
- closeLabel: string;
2103
+ /** Seçim yokken tetikleyicide görünen metin. Verilmezse `labels.selectPlaceholder`. */
2104
+ placeholder?: string;
2105
+ /** Alt sayfanın kapatma düğmesinin erişilebilir adı. Verilmezse `labels.close`. */
2106
+ closeLabel?: string;
1921
2107
  /** Tetikleyicinin solundaki ikon. */
1922
2108
  icon?: ReactNode;
1923
2109
  /** `sm` yoğun şeritler içindir (araç çubuğu); varsayılan form ölçüsü `md`. */
@@ -1964,10 +2150,10 @@ declare type Props_8 = {
1964
2150
  formatValue?: (value: number) => string;
1965
2151
  /** Grubun erişilebilir adı ("Fiyat aralığı"). */
1966
2152
  label: string;
1967
- /** Alt kulbun erişilebilir ad eki ("En az"). */
1968
- minLabel: string;
1969
- /** Üst kulbun erişilebilir ad eki ("En çok"). */
1970
- maxLabel: string;
2153
+ /** Alt kulbun erişilebilir ad eki. Verilmezse `labels.range.min`. */
2154
+ minLabel?: string;
2155
+ /** Üst kulbun erişilebilir ad eki. Verilmezse `labels.range.max`. */
2156
+ maxLabel?: string;
1971
2157
  isDisabled?: boolean;
1972
2158
  className?: string;
1973
2159
  testId?: string;
@@ -1979,16 +2165,19 @@ declare type Props_9 = {
1979
2165
  /** Grubun erişilebilir adı ("Ürün puanı"). */
1980
2166
  label: string;
1981
2167
  /**
1982
- * Puan açıklamaları — ZORUNLU. Hem ekran okuyucuya okunur hem de seçildiğinde
1983
- * yıldızların altında yazar.
2168
+ * Puan açıklamaları. Hem ekran okuyucuya okunur hem de seçildiğinde
2169
+ * yıldızların altında yazar. Verilmezse `labels.rating.scale`.
1984
2170
  *
1985
2171
  * <p>Dolu yıldız sayısı tek başına bir renk/şekil sinyali. Yanına açıklama
1986
2172
  * yazmak hem anlamı netleştirir hem de renk körü kullanıcıya ikinci bir ipucu
1987
2173
  * verir (WCAG 1.4.1).
1988
2174
  */
1989
- ratingLabels: RatingLabels;
1990
- /** Ekran okuyucuda yıldız sayısını okuyan biçimlendirici ("4 yıldız"). */
1991
- formatStarCount: (star: number) => string;
2175
+ ratingLabels?: RatingLabels;
2176
+ /**
2177
+ * Ekran okuyucuda yıldız sayısını okuyan biçimlendirici ("4 yıldız").
2178
+ * Verilmezse `labels.rating.starCount`.
2179
+ */
2180
+ formatStarCount?: (star: number) => string;
1992
2181
  isDisabled?: boolean;
1993
2182
  className?: string;
1994
2183
  testId?: string;
@@ -2120,30 +2309,6 @@ declare const RatingInput_2: ({ value, onChange, label, ratingLabels, formatStar
2120
2309
  /** Beş puanın her birinin ne anlama geldiği. */
2121
2310
  export declare type RatingLabels = Record<1 | 2 | 3 | 4 | 5, string>;
2122
2311
 
2123
- /**
2124
- * Zorunluluk işareti ve onun ekran okuyucu karşılığı BİRLİKTE verilir.
2125
- *
2126
- * <p>Yıldız yalnızca görsel bir kısayol; renk ve şekil tek başına anlam
2127
- * taşıyamaz (WCAG 1.4.1). `requiredLabel` bir dil kararı ve kütüphane onu
2128
- * uyduramaz — bu yüzden `isRequired` verildiğinde tip zorunlu kılıyor.
2129
- */
2130
- declare type RequiredProps = {
2131
- isRequired: true;
2132
- requiredLabel: string;
2133
- } | {
2134
- isRequired?: false;
2135
- requiredLabel?: never;
2136
- };
2137
-
2138
- /** Zorunluluk işareti ve ekran okuyucu karşılığı birlikte (bkz. {@link Field}). */
2139
- declare type RequiredProps_2 = {
2140
- isRequired: true;
2141
- requiredLabel: string;
2142
- } | {
2143
- isRequired?: false;
2144
- requiredLabel?: never;
2145
- };
2146
-
2147
2312
  /** Verilen şemanın tam token eşlemesi — ezmeler uygulanmış hâliyle. */
2148
2313
  export declare const resolveTokens: (scheme: HanuiColorScheme, config?: HanuiThemeConfig) => HanuiResolvedTokens;
2149
2314