@ahmetilhn/hanui 2.0.4 → 2.0.6

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
@@ -121,6 +121,24 @@ export declare const Badge: typeof Badge_2;
121
121
  * <p>Doygun dolgu yalnızca <strong>miktar</strong> tonlarında (`action`,
122
122
  * `link`) anlamlı: onlar bir durumu değil bir sayıyı bildirir ve tıklanabilir
123
123
  * bir öğenin parçasıdır.
124
+ *
125
+ * <h3>Koyu bandın üzerinde: `neutral` yeniden bağlanır</h3>
126
+ * Nötr rozet üç CSS özel özelliği okur — `--hanui-badge-bg`,
127
+ * `--hanui-badge-fg`, `--hanui-badge-line`. Kapsayıcıda tanımlanmadıklarında
128
+ * varsayılan tint çizilir; koyu bir gezinme rayının içinde ise kapsayıcı
129
+ * üçünü kendi tonlarına bağlayarak rozeti oraya taşır. İç sınıflara kural
130
+ * yazmak bir sonraki yayında sessizce düşerdi.
131
+ *
132
+ * ```scss
133
+ * .rail__badge {
134
+ * --hanui-badge-bg: #{$rail-hover};
135
+ * --hanui-badge-fg: #{$rail-fg-2};
136
+ * --hanui-badge-line: #{$rail-line};
137
+ * }
138
+ * ```
139
+ *
140
+ * <p>Durum tonları bilinçli olarak ezilemez: bir hata rozetini kapsayıcının
141
+ * sessizce nötrleştirmesi, rengin taşıdığı anlamı yok ederdi.
124
142
  */
125
143
  declare const Badge_2: FC<Props_19>;
126
144
 
@@ -475,6 +493,13 @@ export declare const Chip: typeof Chip_2;
475
493
  * Seçili çip pasifleştirilmez: kullanıcı seçimini geri alabilmeli. Basılı
476
494
  * düğme semantiği (`aria-pressed`) ekran okuyucuya "seçili, kapatılabilir"
477
495
  * bilgisini verir.
496
+ *
497
+ * <h3>Native `title` YAZILMAZ</h3>
498
+ * Görünür metni olmayan çip `label`ı yalnızca `aria-label`a koyar. Önce
499
+ * ikisini birden yazıyordu; tarayıcının balonu dokunmatikte hiç görünmez,
500
+ * klavyede gecikmeli çıkar ve biçimi işletim sistemine bağlıdır — yani
501
+ * "üzerine gelince ne olduğu yazar" sözü kullanıcıların çoğunda tutmuyordu.
502
+ * Açıklama isteyen çağıran çipi {@link Tooltip} ile sarar.
478
503
  */
479
504
  declare const Chip_2: ForwardRefExoticComponent<Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
480
505
  /** Görünen metin. Yalnız ikon taşıyan çipte verilmez; `label` zorunlu olur. */
@@ -721,11 +746,16 @@ export declare type CommonElementProps = Partial<{
721
746
  * panelde kullanıcıyı kaydırmaya mahkûm ediyor; panel için doğru olan
722
747
  * sıkılık vitrinde ucuz duruyor. İkisini tek ölçekle karşılamanın yolu yok.
723
748
  *
724
- * <h3>Yalnızca boşluk ve punto iner — ÖLÇEĞİN TAMAMI DEĞİL</h3>
749
+ * <h3>Boşluk ve punto iner; yarıçap ve dokunma hedefi inmez</h3>
725
750
  * `space-0` ve `space-1` sabit kalır: 4 px'in altına inen bir boşluk kademesi
726
751
  * bir boşluk değil bir çizim hatası. Yarıçap da sabit kalır — yuvarlaklık
727
752
  * yoğunluğun değil markanın işi.
728
753
  *
754
+ * <p>Punto ölçeğinin <strong>tamamı</strong> iner. Bir dönem yalnızca küçük
755
+ * uç (`2xs`–`body`) iniyordu ve bu ölçülebilir bir hataydı: gövde 15 px'e
756
+ * inerken başlıklar 29 px'te kaldığı için oran vitrindekinin çok üstüne
757
+ * çıkıyor, panelde başlıklar ekranı yiyordu.
758
+ *
729
759
  * <h3>DOKUNMA HEDEFİ KÜÇÜLMEZ</h3>
730
760
  * `tap-target` görünmez bir örtü çiziyor ve ölçüsü (44 px) buraya girmiyor:
731
761
  * yoğun kip bilgi yoğunluğunu artırmak içindir, dokunulabilirliği düşürmek
@@ -743,6 +773,11 @@ export declare const COMPACT_DENSITY: {
743
773
  readonly 'font-size-sm': "13px";
744
774
  readonly 'font-size-base': "15px";
745
775
  readonly 'font-size-body': "16px";
776
+ readonly 'font-size-lg': "18px";
777
+ readonly 'font-size-xl': "21px";
778
+ readonly 'font-size-2xl': "25px";
779
+ readonly 'font-size-3xl': "31px";
780
+ readonly 'font-size-4xl': "39px";
746
781
  readonly 'leading-normal': "1.5";
747
782
  readonly 'leading-relaxed': "1.6";
748
783
  };
@@ -814,6 +849,12 @@ export declare const CopyField: typeof CopyField_2;
814
849
  * dibinde "kopyalandı" yazması <em>hangisinin</em> kopyalandığını
815
850
  * söylemiyordu. İkon yerinde tike dönünce cevap tıklanan yerde.
816
851
  *
852
+ * <h3>Düğmede native `title` YOK</h3>
853
+ * Ad yalnızca `aria-label`da. `title` aynı metni bir kez daha yazıyordu ve
854
+ * tarayıcı balonu dokunmatikte hiç görünmediği için hiçbir şey kazandırmıyor,
855
+ * bazı ekran okuyucularda adı iki kez okutuyordu. Simgenin kendisi zaten bir
856
+ * pano ve kopyalandığında tikli panoya dönüyor.
857
+ *
817
858
  * <h3>Pano erişimi reddedilirse</h3>
818
859
  * `navigator.clipboard` güvenli olmayan bağlamda (HTTP) ve izin verilmediğinde
819
860
  * reddeder. O durumda değer sessizce <em>seçilir</em>: kullanıcı Ctrl+C ile
@@ -1213,6 +1254,15 @@ export declare const FilterBar: typeof FilterBar_2;
1213
1254
  * (birden çok alanı olan formda tarayıcının örtük gönderimi ancak bir gönderme
1214
1255
  * düğmesi varsa çalışır).
1215
1256
  *
1257
+ * <h3>Denetimler tek hizada</h3>
1258
+ * Şerit alanları alt kenardan hizalar; etiketli ve etiketsiz alanın yan yana
1259
+ * durması bunu bozmaz. Bozan şey denetimin <strong>altına</strong> yazılan
1260
+ * yardım/hata metniydi: alanın alt kenarı artık denetimin değil metnin kenarı
1261
+ * oluyor ve denetim komşularından yukarı kaçıyordu (ölçüldü: bir ekranda 24 px
1262
+ * kaçık iki girdi). Şeridin içindeki `Field` mesajı denetimin
1263
+ * <em>üstüne</em> alır — etiket, ipucu, denetim. DOM sırası değişmez, yani
1264
+ * ekran okuyucu yine "etiket, denetim, hata, ipucu" duyar.
1265
+ *
1216
1266
  * <h3>320px'te taşma yok</h3>
1217
1267
  * Alanlar `min-width: 240–280px` taşıyordu ve en dar ekranda şerit sayfayı yana
1218
1268
  * kaydırıyordu. Genişlik artık `flex-basis` ile istenir, `min-width: 0` ile
@@ -1545,6 +1595,18 @@ export declare const IconButton: typeof IconButton_2;
1545
1595
  * <p>Bağlantı kipinde `disabled` YOKTUR — `<a>` etiketinin devre dışı hâli
1546
1596
  * yok ve `aria-disabled` tıklamayı engellemez. Erişilemez olması gereken bir
1547
1597
  * eylem hiç çizilmez.
1598
+ *
1599
+ * <h3>Native `title` YAZILMAZ</h3>
1600
+ * Düğme `label`ı yalnızca `aria-label`a koyar. Önce ikisi birlikte
1601
+ * yazılıyordu (`title="Şifreyi göster" aria-label="Şifreyi göster"`) ve bu üç
1602
+ * ayrı sorun üretiyordu: tarayıcının balonu <strong>dokunmatikte hiç
1603
+ * görünmez</strong> — trafiğin ağırlığı mobil olan bir arayüzde açıklamanın
1604
+ * hiç olmaması demek; klavyeyle gelen kullanıcıda gecikmeli çıkar ve biçimi
1605
+ * işletim sistemine bağlıdır; bazı ekran okuyucular `aria-label` ile birlikte
1606
+ * ikisini de okuyup adı <em>iki kez</em> söyler. Görünür bir açıklama isteyen
1607
+ * çağıran düğmeyi {@link Tooltip} ile sarar — balon dokunmatikte uzun basmayla
1608
+ * da açılır. Yine de `title` geçirmek isteyen `...rest` ile geçirebilir; karar
1609
+ * artık çağıranın.
1548
1610
  */
1549
1611
  declare const IconButton_2: ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & {
1550
1612
  icon: ReactNode;
@@ -1662,6 +1724,27 @@ export declare const LIGHT_THEME: {
1662
1724
  readonly 'on-action': "#ffffff";
1663
1725
  /** Pasif dolgu; saydamlık DEĞİL kendi rengi (bkz. Button `:disabled`). */
1664
1726
  readonly 'action-soft': "#c9d0da";
1727
+ /**
1728
+ * PASİF DOLGU ÜZERİNDEKİ METİN.
1729
+ *
1730
+ * <p>ÖLÇÜLDÜ: pasif düğme `action-soft` zeminine `on-action` (beyaz) metin
1731
+ * yazıyordu — açık temada <strong>1,55:1</strong>, koyu temada 1,93:1.
1732
+ * Ekranda "Ara", "Sorgula", "Giriş yap" yıkanmış duruyor; etiketin ne
1733
+ * dediği okunmuyordu.
1734
+ *
1735
+ * <p>WCAG pasif denetimleri hem 1.4.3'te hem 1.4.11'de açıkça muaf tutuyor,
1736
+ * yani bu bir İHLAL DEĞİLDİ — ve tam da bu yüzden hiçbir katman uyarmadı:
1737
+ * çift denetçinin listesinde de yoktu. Ama okunamayan bir etiket, düğmenin
1738
+ * neyi engellediğini de söylemez; kullanıcı "neden pasif" sorusunu
1739
+ * soramadan önce "bu neydi" sorusunda takılıyor. Pasiflik dolgunun
1740
+ * geri çekilmesiyle bildirilir, metnin silinmesiyle değil — `opacity` ile
1741
+ * soluklaştırma yasağının (`A11Y.md`) aynı gerekçesi.
1742
+ *
1743
+ * <p>Ton merdivenin kendisinden: açıkta `n700` (6,52:1), koyuda `n300`
1744
+ * (5,76:1). Çift artık `check-contrast.mjs`te ve eşiği tutmayan bir tema
1745
+ * derlemeyi kırar.
1746
+ */
1747
+ readonly 'on-action-soft': "#3a424f";
1665
1748
  readonly amber: "#f59e0b";
1666
1749
  readonly 'amber-hover': "#d98706";
1667
1750
  readonly 'amber-active': "#b87205";
@@ -2055,6 +2138,15 @@ export declare const Panel: typeof Panel_2;
2055
2138
  * sayfanın üçte biri kadar kalıp yanındaki boşluğa bakıyordu; sorun formun
2056
2139
  * değil PANELİN daraltılmasıydı.
2057
2140
  *
2141
+ * <h3>Dip şeridi o sütunu izler</h3>
2142
+ * Panelde bir `PanelForm` varsa `footer` içeriği <strong>aynı sütunda</strong>
2143
+ * biter. Şeridin kendisi (zemin + üst çizgi) tam genişlikte kalır; hizalanan
2144
+ * yalnızca içeriği. Ölçüldü: form 565 px'lik sütununu bitirirken kaydet
2145
+ * düğmesi panelin öbür ucunda, formdan 576 px uzakta duruyordu — göz formu
2146
+ * bitiriyor, düğmeyi arıyordu. `PanelForm` kullanılmayan panelde kural
2147
+ * uygulanmaz: orada sınırlanacak bir sütun yok ve şeridin sağa yaslanması
2148
+ * doğru davranış.
2149
+ *
2058
2150
  * @example
2059
2151
  * <Panel title="Profil bilgileri" description="Fatura bu bilgilerle kesilir">
2060
2152
  * <PanelForm>…alanlar…</PanelForm>
@@ -2494,7 +2586,7 @@ declare type Props_22 = {
2494
2586
  /** Gösterilecek ve panoya kopyalanacak değer. */
2495
2587
  value: string;
2496
2588
  /**
2497
- * Kopyalama düğmesinin erişilebilir adı ve `title`ı.
2589
+ * Kopyalama düğmesinin erişilebilir adı.
2498
2590
  *
2499
2591
  * <p>Verilmezse `labels.copyField.copy(value)` çağrılır. Config bir DİZE
2500
2592
  * değil biçimlendirici tutar: ad değeri İÇERMELİ — bir listede on beş
@@ -2748,6 +2840,20 @@ declare type Props_32 = {
2748
2840
  description?: ReactNode;
2749
2841
  /** Sol üstte duran ikon madalyonu. */
2750
2842
  icon?: ReactNode;
2843
+ /**
2844
+ * `plain` KUTUYU kaldırır: zemin, kenarlık ve dolgu gider, yalnızca sayı
2845
+ * kalır. Varsayılan `card`.
2846
+ *
2847
+ * <p>Kendi zemini olan bir bandın (kahraman, güvence şeridi) üzerinde
2848
+ * ölçümler kart olarak istenmiyor. Bunun tek yolu kapsayıcıda
2849
+ * `--hanui-surface: transparent` yazmaktı ve iki şeyi birden bozuyordu:
2850
+ * dolgu <em>görünmez oluyor ama YER KAPLIYOR</em> — ölçüldü, telefonda 2×2
2851
+ * ızgarada satır arası 48 px'e çıkıyor ve dört sayı tek bir grup gibi
2852
+ * okunmuyordu — ayrıca o değişken kapsayıcıdaki <strong>her</strong> hanui
2853
+ * yüzeyini birden düzleştiriyordu. `plain` niyeti tek yerde söyler ve
2854
+ * yüzey değişkenine dokunmaya gerek bırakmaz.
2855
+ */
2856
+ variant?: 'card' | 'plain';
2751
2857
  size?: 'sm' | 'md';
2752
2858
  className?: string;
2753
2859
  testId?: string;
@@ -3636,6 +3742,24 @@ export declare const Stat: typeof Stat_2;
3636
3742
  * <h3>Rakamlar TABULAR</h3>
3637
3743
  * Alt alta duran ölçüm kutularında orantılı rakamlar sütunu tırtıklı
3638
3744
  * gösteriyor; `tabular-nums` her basamağı aynı genişlikte çiziyor.
3745
+ *
3746
+ * <h3>GENİŞLİK KARARI KAPSAYICININ</h3>
3747
+ * `Stat` kendine `flex` ya da `width` yazmaz ve bu bilinçli. Esnek bir sırada
3748
+ * içeriği kadar büzülür — yan yana dört kutu 148-177 px arasında tırtıklı
3749
+ * çıkabilir — ama çözüm kutuya `flex: 1` yazmak DEĞİL: aynı bileşen bir
3750
+ * ızgara hücresinde, bir kartın içinde ve tek başına da kullanılıyor ve orada
3751
+ * `flex: 1` çağıranın kararını sessizce eziyor. Eşit genişlik isteniyorsa
3752
+ * kapsayıcı söyler:
3753
+ *
3754
+ * ```scss
3755
+ * .stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
3756
+ * ```
3757
+ *
3758
+ * <h3>Kendi zemini olan bandın üzerinde: `variant="plain"`</h3>
3759
+ * Kart görünümü (zemin + kenarlık + dolgu) sayfa yüzeyi için. Bir kahraman
3760
+ * bandının içinde ölçümler kart olarak istenmediğinde `plain` verilir; zemini
3761
+ * `transparent`a çevirmek dolguyu <em>görünmez</em> yapar ama kaldırmaz ve
3762
+ * ızgara sessizce dağılır.
3639
3763
  */
3640
3764
  declare const Stat_2: FC<Props_32>;
3641
3765