@moontra/moonui 6.22.0 → 6.24.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/dist/cdn/moonui.css +1 -1
- package/dist/cdn/moonui.esm.js +2 -2
- package/dist/cdn/moonui.global.js +2 -2
- package/dist/index.js +31 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +31 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/issue-544-kontrast.test.tsx +601 -0
- package/src/components/ui/__tests__/badge.test.tsx +5 -1
- package/src/components/ui/__tests__/switch-variant-contrast.test.tsx +26 -2
- package/src/components/ui/badge.tsx +19 -3
- package/src/components/ui/button.tsx +12 -3
- package/src/components/ui/input.stories.tsx +6 -2
- package/tailwind-preset.js +60 -1
|
@@ -44,11 +44,27 @@ const badgeVariants = cva(
|
|
|
44
44
|
"focus-visible:ring-gray-400/30 dark:focus-visible:ring-gray-500/40",
|
|
45
45
|
"dark:text-gray-100 dark:bg-transparent dark:backdrop-blur-sm",
|
|
46
46
|
],
|
|
47
|
+
// #544: `bg-error` (= --error, #ef4343) beyaz metinle 3.78 veriyordu (AA 4.5 ister),
|
|
48
|
+
// `dark:bg-error/90` ise gerçek koyu kart (#111827) üstünde 4.43 ile kalıyordu.
|
|
49
|
+
//
|
|
50
|
+
// TOKEN DEĞİŞTİRİLMEDİ: dark `--destructive`/`--error` METİN rolü için bilerek
|
|
51
|
+
// açık tutuluyor (tokens.css:518-526); değeri koyulaştırmak `text-destructive`
|
|
52
|
+
// yazan yüzleri kırardı ve dark-token-contrast.test.ts'in belgelediği uzlaşmayı
|
|
53
|
+
// bozardı. Bunun yerine #424/#442/#454'ün presedansı uygulandı: token'a değil
|
|
54
|
+
// VARYANTA dokunulup skalanın bir kademesine inildi.
|
|
55
|
+
//
|
|
56
|
+
// `-600` ölçümle seçildi — AA'yı geçen EN AÇIK kademe (beyazla 4.83; -500 3.76 ✗)
|
|
57
|
+
// ve bugünkü kırmızıya EN YAKIN aday (ΔE*ab 10.3; -700 → 16.2, `--destructive`
|
|
58
|
+
// light → 18.8). Hue 0° korunur, "uyarı kırmızısı" kimliği kaybolmaz.
|
|
59
|
+
//
|
|
60
|
+
// Skala kademeleri tema-BAĞIMSIZ (`.dark` onları ezmez) → tek sınıf iki temayı
|
|
61
|
+
// birden kapatır ve eski YARI SAYDAM `dark:bg-error/90`ın zemine bağımlılığı
|
|
62
|
+
// ortadan kalkar. Hover koyulaşır (-700, 6.47), açılmaz.
|
|
47
63
|
destructive: [
|
|
48
|
-
"border-transparent bg-error text-white",
|
|
49
|
-
"hover:bg-error
|
|
64
|
+
"border-transparent bg-error-600 text-white",
|
|
65
|
+
"hover:bg-error-700 dark:hover:bg-error-700",
|
|
50
66
|
"focus-visible:ring-error/30 dark:focus-visible:ring-error/25",
|
|
51
|
-
"dark:
|
|
67
|
+
"dark:text-white dark:shadow-inner dark:shadow-error/10",
|
|
52
68
|
],
|
|
53
69
|
success: [
|
|
54
70
|
"border-transparent bg-success text-success-foreground",
|
|
@@ -67,11 +67,20 @@ const buttonVariants = cva(
|
|
|
67
67
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
68
68
|
"transition-all duration-200",
|
|
69
69
|
],
|
|
70
|
+
// #544: AÇIK tema zaten geçiyordu (`--destructive` light = #e11313, foreground
|
|
71
|
+
// #f8fafc ile 4.66) — #442'nin kuralı gereği DOKUNULMADI, regresyon yüzeyi sıfır.
|
|
72
|
+
// Kırık olan yalnız KOYU temaydı: dark `--destructive` = #ef4343 metin rolü için
|
|
73
|
+
// bilerek açık bırakılmış bir değer (tokens.css:518-526) ve dolgu rolünde
|
|
74
|
+
// foreground'la 3.61 veriyor. Token'a dokunmadan dark dolgusu opak `error`
|
|
75
|
+
// skalasına bağlandı (-600 → 4.62; ölçümle seçilen en açık geçen kademe).
|
|
76
|
+
// Not: `dark:bg-destructive` KALDIRILDI, yanına eklenmedi — iki `dark:bg-*`
|
|
77
|
+
// utility'si aynı anda yazılırsa hangisinin kazanacağını sınıf dizgesi sırası
|
|
78
|
+
// DEĞİL Tailwind'in kendi iç sıralaması belirler.
|
|
70
79
|
destructive: [
|
|
71
80
|
"bg-destructive text-destructive-foreground",
|
|
72
|
-
"dark:bg-
|
|
73
|
-
"hover:bg-destructive/90 dark:hover:bg-
|
|
74
|
-
"active:bg-destructive/80 dark:active:bg-
|
|
81
|
+
"dark:bg-error-600 dark:text-destructive-foreground",
|
|
82
|
+
"hover:bg-destructive/90 dark:hover:bg-error-700",
|
|
83
|
+
"active:bg-destructive/80 dark:active:bg-error-800",
|
|
75
84
|
"shadow-sm hover:shadow-md",
|
|
76
85
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
77
86
|
"transition-all duration-200",
|
|
@@ -4,7 +4,11 @@ import type { Meta, StoryObj } from '@storybook/react';
|
|
|
4
4
|
import { Input } from './input';
|
|
5
5
|
import { Label } from './label';
|
|
6
6
|
import { Button } from './button';
|
|
7
|
-
|
|
7
|
+
/* `Search` ikonu takma adla alinir: asagida ayni adla bir story export ediliyor
|
|
8
|
+
* (`export const Search: Story`). Cakisma yalnizca tip hatasi degildi — satir 99'daki
|
|
9
|
+
* `<Search />` ikonu degil STORY NESNESINI cozuyordu, yani o story calistirilinca
|
|
10
|
+
* patlardi. Story adi Storybook arayuzunde gorundugu icin ikon yeniden adlandirildi. */
|
|
11
|
+
import { Search as SearchIcon, Mail, Lock, Eye, EyeOff } from 'lucide-react';
|
|
8
12
|
import { useState } from 'react';
|
|
9
13
|
|
|
10
14
|
const meta: Meta<typeof Input> = {
|
|
@@ -96,7 +100,7 @@ export const Disabled: Story = {
|
|
|
96
100
|
export const WithIcon: Story = {
|
|
97
101
|
render: () => (
|
|
98
102
|
<div className="relative">
|
|
99
|
-
<
|
|
103
|
+
<SearchIcon className="absolute left-3 top-3 h-4 w-4 text-muted-foreground" />
|
|
100
104
|
<Input
|
|
101
105
|
type="search"
|
|
102
106
|
placeholder="Search..."
|
package/tailwind-preset.js
CHANGED
|
@@ -104,18 +104,77 @@ module.exports = {
|
|
|
104
104
|
subtle: "hsl(var(--destructive-subtle) / <alpha-value>)",
|
|
105
105
|
"subtle-foreground": "hsl(var(--destructive-subtle-foreground) / <alpha-value>)",
|
|
106
106
|
},
|
|
107
|
-
|
|
107
|
+
/* #524: durum ailelerine 50-950 SKALASI baglandi.
|
|
108
|
+
*
|
|
109
|
+
* NEDEN: `tokens.css:41-75` bu skalalari (`--success-50..950`, `--warning-*`,
|
|
110
|
+
* `--error-*`) UZUN ZAMANDIR tanimliyordu ama preset onlari hicbir utility'ye
|
|
111
|
+
* BAGLAMAMISTI — yani `text-success-700` gecersiz bir sinifti ve sessizce
|
|
112
|
+
* hicbir CSS uretmiyordu. Dort Pro component (performance-monitor,
|
|
113
|
+
* performance-debugger, health-check, memory-efficient-data) bu yuzden ham
|
|
114
|
+
* Tailwind literaline (`text-green-500`) dusmus, acik temada 2.08-2.27:1
|
|
115
|
+
* kontrast uretiyordu (gerekli 4.5:1).
|
|
116
|
+
*
|
|
117
|
+
* NEDEN DUZ TOKEN YETMEDI: issue'nun onerdigi `text-warning` / `text-error`
|
|
118
|
+
* eslemesi olculdu ve beyaz zeminde AA'yi GECMIYOR (2.13 ve 3.78). Skala
|
|
119
|
+
* tonlari geciyor: -700 acik temada 5.02 / 4.92 / 6.47, -400 koyu zeminde
|
|
120
|
+
* 11.56 / 13.16 / 7.28.
|
|
121
|
+
*
|
|
122
|
+
* ⚠️ rgb(), hsl() DEGIL: bu skalalarin tokens.css'teki degeri RGB uclusudur
|
|
123
|
+
* ("--success-700: 21 128 61"), yukaridaki DEFAULT/subtle girdileri ise HSL.
|
|
124
|
+
* Bloklardaki mevcut hsl() desenini bu satirlara kopyalamak SESSIZCE yanlis
|
|
125
|
+
* renk uretir (hsl(21 128 61) gecerli bir renktir — 21° hue, kirmizimsi).
|
|
126
|
+
* Bekci: packages/moonui-pro/src/__tests__/issue-524-durum-renkleri.test.tsx
|
|
127
|
+
* (Tailwind'i gercekten kosturup uretilen CSS'i olcer).
|
|
128
|
+
*
|
|
129
|
+
* ⚠️ `.dark` blogu bu tonlari OVERRIDE ETMEZ — tek ton iki temada da ayni
|
|
130
|
+
* hex'i verir. Tuketici koyu tema icin `dark:` ikizini ACIKCA yazmalidir. */
|
|
131
|
+
error: {
|
|
132
|
+
DEFAULT: "hsl(var(--error) / <alpha-value>)",
|
|
133
|
+
50: "rgb(var(--error-50) / <alpha-value>)",
|
|
134
|
+
100: "rgb(var(--error-100) / <alpha-value>)",
|
|
135
|
+
200: "rgb(var(--error-200) / <alpha-value>)",
|
|
136
|
+
300: "rgb(var(--error-300) / <alpha-value>)",
|
|
137
|
+
400: "rgb(var(--error-400) / <alpha-value>)",
|
|
138
|
+
500: "rgb(var(--error-500) / <alpha-value>)",
|
|
139
|
+
600: "rgb(var(--error-600) / <alpha-value>)",
|
|
140
|
+
700: "rgb(var(--error-700) / <alpha-value>)",
|
|
141
|
+
800: "rgb(var(--error-800) / <alpha-value>)",
|
|
142
|
+
900: "rgb(var(--error-900) / <alpha-value>)",
|
|
143
|
+
950: "rgb(var(--error-950) / <alpha-value>)",
|
|
144
|
+
},
|
|
108
145
|
success: {
|
|
109
146
|
DEFAULT: "hsl(var(--success) / <alpha-value>)",
|
|
110
147
|
foreground: "hsl(var(--success-foreground) / <alpha-value>)",
|
|
111
148
|
subtle: "hsl(var(--success-subtle) / <alpha-value>)",
|
|
112
149
|
"subtle-foreground": "hsl(var(--success-subtle-foreground) / <alpha-value>)",
|
|
150
|
+
50: "rgb(var(--success-50) / <alpha-value>)",
|
|
151
|
+
100: "rgb(var(--success-100) / <alpha-value>)",
|
|
152
|
+
200: "rgb(var(--success-200) / <alpha-value>)",
|
|
153
|
+
300: "rgb(var(--success-300) / <alpha-value>)",
|
|
154
|
+
400: "rgb(var(--success-400) / <alpha-value>)",
|
|
155
|
+
500: "rgb(var(--success-500) / <alpha-value>)",
|
|
156
|
+
600: "rgb(var(--success-600) / <alpha-value>)",
|
|
157
|
+
700: "rgb(var(--success-700) / <alpha-value>)",
|
|
158
|
+
800: "rgb(var(--success-800) / <alpha-value>)",
|
|
159
|
+
900: "rgb(var(--success-900) / <alpha-value>)",
|
|
160
|
+
950: "rgb(var(--success-950) / <alpha-value>)",
|
|
113
161
|
},
|
|
114
162
|
warning: {
|
|
115
163
|
DEFAULT: "hsl(var(--warning) / <alpha-value>)",
|
|
116
164
|
foreground: "hsl(var(--warning-foreground) / <alpha-value>)",
|
|
117
165
|
subtle: "hsl(var(--warning-subtle) / <alpha-value>)",
|
|
118
166
|
"subtle-foreground": "hsl(var(--warning-subtle-foreground) / <alpha-value>)",
|
|
167
|
+
50: "rgb(var(--warning-50) / <alpha-value>)",
|
|
168
|
+
100: "rgb(var(--warning-100) / <alpha-value>)",
|
|
169
|
+
200: "rgb(var(--warning-200) / <alpha-value>)",
|
|
170
|
+
300: "rgb(var(--warning-300) / <alpha-value>)",
|
|
171
|
+
400: "rgb(var(--warning-400) / <alpha-value>)",
|
|
172
|
+
500: "rgb(var(--warning-500) / <alpha-value>)",
|
|
173
|
+
600: "rgb(var(--warning-600) / <alpha-value>)",
|
|
174
|
+
700: "rgb(var(--warning-700) / <alpha-value>)",
|
|
175
|
+
800: "rgb(var(--warning-800) / <alpha-value>)",
|
|
176
|
+
900: "rgb(var(--warning-900) / <alpha-value>)",
|
|
177
|
+
950: "rgb(var(--warning-950) / <alpha-value>)",
|
|
119
178
|
},
|
|
120
179
|
caution: {
|
|
121
180
|
DEFAULT: "hsl(var(--caution) / <alpha-value>)",
|