tamga-ui 0.1.0 → 0.2.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/CHANGELOG.md +90 -0
- package/README.md +83 -91
- package/dist/blocks/count-row.d.ts +3 -3
- package/dist/blocks/count-row.d.ts.map +1 -1
- package/dist/blocks/filter-bar.d.ts +13 -13
- package/dist/blocks/filter-bar.d.ts.map +1 -1
- package/dist/blocks/save-bar.d.ts +3 -3
- package/dist/blocks/save-bar.d.ts.map +1 -1
- package/dist/components/chrome.d.ts +54 -3
- package/dist/components/chrome.d.ts.map +1 -1
- package/dist/components/chrome.js +43 -2
- package/dist/components/primitives.d.ts +32 -2
- package/dist/components/primitives.d.ts.map +1 -1
- package/dist/components/primitives.js +11 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/kit.css +45 -0
- package/dist/lib/color.d.ts +31 -11
- package/dist/lib/color.d.ts.map +1 -1
- package/dist/lib/color.js +40 -18
- package/dist/lib/palette.d.ts +38 -19
- package/dist/lib/palette.d.ts.map +1 -1
- package/dist/lib/palette.js +45 -33
- package/dist/patterns/app-shell.d.ts +22 -6
- package/dist/patterns/app-shell.d.ts.map +1 -1
- package/dist/patterns/app-shell.js +13 -4
- package/dist/patterns/auth-template.d.ts +9 -6
- package/dist/patterns/auth-template.d.ts.map +1 -1
- package/dist/patterns/detail-template.d.ts +5 -5
- package/dist/patterns/detail-template.d.ts.map +1 -1
- package/dist/patterns/index.d.ts +1 -1
- package/dist/patterns/index.d.ts.map +1 -1
- package/dist/patterns/index.js +5 -1
- package/dist/patterns/list-template.d.ts +6 -6
- package/dist/patterns/list-template.d.ts.map +1 -1
- package/dist/patterns/overview-template.d.ts +3 -3
- package/dist/patterns/overview-template.d.ts.map +1 -1
- package/dist/patterns/public-template.d.ts +3 -3
- package/dist/patterns/public-template.d.ts.map +1 -1
- package/dist/patterns/settings-template.d.ts +3 -3
- package/dist/patterns/settings-template.d.ts.map +1 -1
- package/dist/patterns/shared.d.ts +3 -3
- package/dist/patterns/shared.d.ts.map +1 -1
- package/dist/patterns/wizard-template.d.ts +1 -1
- package/dist/patterns/wizard-template.d.ts.map +1 -1
- package/dist/patterns/wizard-template.js +2 -9
- package/package.json +4 -3
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useState } from "react";
|
|
4
4
|
import { cn } from "../lib/cn.js";
|
|
5
|
+
import { Avatar } from "./avatar.js";
|
|
5
6
|
import { Icon } from "./icon.js";
|
|
7
|
+
import { Select } from "./primitives.js";
|
|
6
8
|
import { Switch } from "./switch.js";
|
|
7
9
|
import { ThemeDark, ThemeLight } from "./icons.js";
|
|
8
10
|
/**
|
|
@@ -65,10 +67,22 @@ export function ThemeToggle({ labels, variant = "icon", storageKey = "tamga-them
|
|
|
65
67
|
document.documentElement.classList.toggle("dark", next);
|
|
66
68
|
write(storageKey, next ? "dark" : "light");
|
|
67
69
|
}
|
|
70
|
+
if (variant === "select") {
|
|
71
|
+
/* DURUM SÖZCÜKLERİ ŞART, ve verilmediyse bu bir hata. Sessizce eylem
|
|
72
|
+
sözcüklerine düşmek, kutuda kendi tersini yazan bir kontrol üretirdi. */
|
|
73
|
+
if (!("light" in labels)) {
|
|
74
|
+
throw new Error('ThemeToggle variant="select" için labels {light, dark} olmalı');
|
|
75
|
+
}
|
|
76
|
+
return (_jsx(Select, { options: [labels.light, labels.dark], value: dark ? labels.dark : labels.light, onChange: (v) => {
|
|
77
|
+
const next = v === labels.dark;
|
|
78
|
+
if (next !== dark)
|
|
79
|
+
toggle();
|
|
80
|
+
}, placeholder: labels.light, "aria-label": labels.light + " / " + labels.dark, className: cn("w-28", className) }));
|
|
81
|
+
}
|
|
68
82
|
if (variant === "switch") {
|
|
69
|
-
return (_jsxs("span", { className: cn("flex items-center gap-2", className), children: [_jsx(Icon, { icon: ThemeLight, size: "xs", "aria-hidden": true, className: dark ? "text-ink-faint" : "text-ink" }), _jsx(Switch, { on: dark, onChange: toggle, label: dark ? labels.toLight : labels.toDark }), _jsx(Icon, { icon: ThemeDark, size: "xs", "aria-hidden": true, className: dark ? "text-ink" : "text-ink-faint" })] }));
|
|
83
|
+
return (_jsxs("span", { className: cn("flex items-center gap-2", className), children: [_jsx(Icon, { icon: ThemeLight, size: "xs", "aria-hidden": true, className: dark ? "text-ink-faint" : "text-ink" }), _jsx(Switch, { on: dark, onChange: toggle, label: "toLight" in labels ? (dark ? labels.toLight : labels.toDark) : "" }), _jsx(Icon, { icon: ThemeDark, size: "xs", "aria-hidden": true, className: dark ? "text-ink" : "text-ink-faint" })] }));
|
|
70
84
|
}
|
|
71
|
-
return (_jsx("button", { type: "button", onClick: toggle, className: cn("tamga-icon-btn", className), "aria-label": dark ? labels.toLight : labels.toDark, children: _jsx(Icon, { icon: dark ? ThemeLight : ThemeDark, size: "sm" }) }));
|
|
85
|
+
return (_jsx("button", { type: "button", onClick: toggle, className: cn("tamga-icon-btn", className), "aria-label": "toLight" in labels ? (dark ? labels.toLight : labels.toDark) : undefined, children: _jsx(Icon, { icon: dark ? ThemeLight : ThemeDark, size: "sm" }) }));
|
|
72
86
|
}
|
|
73
87
|
/**
|
|
74
88
|
* Dil değiştirici.
|
|
@@ -105,3 +119,30 @@ export function LocaleSwitcher({ locales, current, onChange, label, className, }
|
|
|
105
119
|
export function LogoTile({ name, src, size = "base", className, }) {
|
|
106
120
|
return (_jsx("span", { className: cn("tamga-logo-tile", size === "sm" && "tamga-logo-tile-sm", className), children: src ? (_jsx("img", { src: src, alt: "", className: "h-full w-full object-contain p-1.5" })) : (_jsx("span", { "aria-hidden": true, className: "font-mono text-subhead font-semibold text-ink-faint", children: name.trim().charAt(0).toLocaleUpperCase() })) }));
|
|
107
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Şeridin sağ ucundaki hesap düğmesi.
|
|
124
|
+
*
|
|
125
|
+
* NEDEN BİR BİLEŞEN, VE SAYARAK. İki panelde de aynı şey elle kuruldu:
|
|
126
|
+
* `<button className="tamga-icon-btn"><Avatar bare …/></button>`. `Avatar`ın
|
|
127
|
+
* `bare` prop'u tam bu iş için var ve JSDoc'u bunu anlatıyor, ama bulunmadı;
|
|
128
|
+
* ikinci kurulumda avatar kendi çerçevesiyle kondu ve şeritteki öteki
|
|
129
|
+
* kontrollerden farklı boyda durdu. Bulunmayan bir prop, olmayan proptur.
|
|
130
|
+
*
|
|
131
|
+
* ÖLÇÜ ŞERİDİN ÖLÇÜSÜ. Kare `--control` (40px), yani tema anahtarı ve öteki
|
|
132
|
+
* simge düğmeleriyle birebir aynı. Bir araç çubuğunda yükseklik tek karardır;
|
|
133
|
+
* tek bir kontrolün farklı durması bütün şeridi hizasız gösteriyor.
|
|
134
|
+
*
|
|
135
|
+
* FOTOĞRAF YOKSA BAŞ HARFLER: `Avatar` zaten öyle davranıyor, ve bir hesabın
|
|
136
|
+
* fotoğrafı olmaması normal hâl.
|
|
137
|
+
*/
|
|
138
|
+
export function AccountButton({ name, src, label, onClick, href, linkComponent: Link, className, }) {
|
|
139
|
+
const ic = (_jsx(Avatar, { name: name, src: src, size: 38, bare: true }));
|
|
140
|
+
const sinif = cn("tamga-icon-btn overflow-hidden p-0", className);
|
|
141
|
+
if (href && Link) {
|
|
142
|
+
return (_jsx(Link, { href: href, "aria-label": label, className: sinif, children: ic }));
|
|
143
|
+
}
|
|
144
|
+
if (href) {
|
|
145
|
+
return (_jsx("a", { href: href, "aria-label": label, className: sinif, children: ic }));
|
|
146
|
+
}
|
|
147
|
+
return (_jsx("button", { type: "button", onClick: onClick, "aria-label": label, className: sinif, children: ic }));
|
|
148
|
+
}
|
|
@@ -38,7 +38,7 @@ export declare function Field({ label, description, error, children, htmlFor, }:
|
|
|
38
38
|
htmlFor?: string;
|
|
39
39
|
}): import("react").JSX.Element;
|
|
40
40
|
/** A plain select: the same overlay as the searchable one, without the search. */
|
|
41
|
-
export declare function Select({ options, value, onChange, placeholder, loading, loadingRows, className, }: {
|
|
41
|
+
export declare function Select({ options, value, onChange, placeholder, loading, loadingRows, "aria-label": ariaLabel, className, }: {
|
|
42
42
|
options: string[];
|
|
43
43
|
value?: string;
|
|
44
44
|
onChange?: (v: string) => void;
|
|
@@ -71,17 +71,47 @@ export declare function Select({ options, value, onChange, placeholder, loading,
|
|
|
71
71
|
* hatadır.
|
|
72
72
|
*/
|
|
73
73
|
loadingRows?: number;
|
|
74
|
+
/**
|
|
75
|
+
* Accessible name when the control has no visible label. TR: Görünür etiketi
|
|
76
|
+
* olmayan kontrolün erişilebilir adı.
|
|
77
|
+
*
|
|
78
|
+
* WHY IT EXISTS. Inside a `Field` the label is already wired and this is not
|
|
79
|
+
* needed. But a select can also sit alone in a toolbar (a language picker, a
|
|
80
|
+
* page-size chooser) where there is no room for a label, and there it was
|
|
81
|
+
* announced as just "button": a screen reader user heard the current value
|
|
82
|
+
* and no clue what changing it would do. TR: NEDEN VAR. Bir `Field` içinde
|
|
83
|
+
* etiket zaten bağlı ve bu gerekmiyor. Ama bir seçim kutusu bir araç
|
|
84
|
+
* çubuğunda tek başına da durabiliyor (dil seçici, sayfa boyu) ve orada
|
|
85
|
+
* etikete yer yok; o hâliyle yalnız "düğme" diye duyuruluyordu: ekran
|
|
86
|
+
* okuyucu kullanıcısı o anki değeri duyuyor, değiştirince ne olacağına dair
|
|
87
|
+
* hiçbir şey duymuyordu.
|
|
88
|
+
*/
|
|
89
|
+
"aria-label"?: string;
|
|
74
90
|
/** Genişlik ve konum çağıranın. Varsayılan `w-56`; `w-full` verildiğinde
|
|
75
91
|
* tailwind-merge onu ezer, yani kontrol kabına uyar. */
|
|
76
92
|
className?: string;
|
|
77
93
|
}): import("react").JSX.Element;
|
|
78
94
|
/** Side panel. Overlay plane, so it carries the 6px offset and a scrim. */
|
|
79
|
-
export declare function Sheet({ open, onClose, title, children, footer, loading, closeLabel, }: {
|
|
95
|
+
export declare function Sheet({ open, onClose, title, children, footer, loading, closeLabel, side, }: {
|
|
80
96
|
open: boolean;
|
|
81
97
|
onClose: () => void;
|
|
82
98
|
title: string;
|
|
83
99
|
children: React.ReactNode;
|
|
84
100
|
footer?: React.ReactNode;
|
|
101
|
+
/**
|
|
102
|
+
* Which edge the panel enters from. TR: Panelin hangi kenardan girdiği.
|
|
103
|
+
*
|
|
104
|
+
* NOT A TASTE, A MEANING. `end` is for detail about the thing you were
|
|
105
|
+
* looking at: it opens beside the record, on the side the eye already ended
|
|
106
|
+
* on. `start` is for NAVIGATION, because a menu lives on the left in every
|
|
107
|
+
* panel this kit builds, and a menu that slides in from the opposite side
|
|
108
|
+
* reads as a different kind of thing. TR: Zevk değil, ANLAM. `end` bakılan
|
|
109
|
+
* şeyin ayrıntısı için: kaydın yanında, gözün zaten bittiği tarafta
|
|
110
|
+
* açılıyor. `start` GEZİNME için, çünkü bu kitin kurduğu her panelde menü
|
|
111
|
+
* solda yaşıyor, ve ters taraftan giren bir menü başka bir şey gibi
|
|
112
|
+
* okunuyor.
|
|
113
|
+
*/
|
|
114
|
+
side?: "start" | "end";
|
|
85
115
|
/**
|
|
86
116
|
* Accessible name for the close control, supplied by the caller (docs/08 rule 5). TR: Kapatma
|
|
87
117
|
* kontrolünün erişilebilir adı, çağıran veriyor (docs/08 kural 5).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/components/primitives.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC,wBAAgB,SAAS,CAAC,EAAE,QAAgB,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,+BAErE;AAED,yFAAyF;AACzF,wBAAgB,MAAM,CAAC,EACrB,IAAW,EACX,KAAK,EACL,QAAa,GACd,EAAE;IACD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,+BAQA;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAiB,EACjB,KAAK,EACL,QAAQ,EACR,MAAM,GACP,EAAE;IACD,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,+BAoBA;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,GACN,EAAE;IACD,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,+BA0BA;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,WAAW,EACX,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,+BAgBA;AAED,kFAAkF;AAClF,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAe,EACf,WAAe,EACf,SAAS,GACV,EAAE;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;6DACyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/components/primitives.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWtC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQvC,wBAAgB,SAAS,CAAC,EAAE,QAAgB,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,+BAErE;AAED,yFAAyF;AACzF,wBAAgB,MAAM,CAAC,EACrB,IAAW,EACX,KAAK,EACL,QAAa,GACd,EAAE;IACD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,+BAQA;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAiB,EACjB,KAAK,EACL,QAAQ,EACR,MAAM,GACP,EAAE;IACD,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,+BAoBA;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,GACN,EAAE;IACD,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC1C;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,+BA0BA;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,WAAW,EACX,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,+BAgBA;AAED,kFAAkF;AAClF,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAW,EACX,OAAe,EACf,WAAe,EACf,YAAY,EAAE,SAAS,EACvB,SAAS,GACV,EAAE;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;6DACyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BA0EA;AAED,2EAA2E;AAC3E,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAe,EACf,UAAU,EACV,IAAY,GACb,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,sCAoDA"}
|
|
@@ -38,7 +38,7 @@ export function Field({ label, description, error, children, htmlFor, }) {
|
|
|
38
38
|
return (_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("label", { htmlFor: htmlFor, className: "text-small font-medium text-ink", children: label }), children, error ? (_jsx("p", { className: "text-small", style: { color: toneOf("danger").fg }, children: error })) : description ? (_jsx("p", { className: "text-small text-ink-faint", children: description })) : null] }));
|
|
39
39
|
}
|
|
40
40
|
/** A plain select: the same overlay as the searchable one, without the search. */
|
|
41
|
-
export function Select({ options, value, onChange, placeholder, loading = false, loadingRows = 4, className, }) {
|
|
41
|
+
export function Select({ options, value, onChange, placeholder, loading = false, loadingRows = 4, "aria-label": ariaLabel, className, }) {
|
|
42
42
|
const [open, setOpen] = useState(false);
|
|
43
43
|
const [inner, setInner] = useState(value ?? "");
|
|
44
44
|
const box = useRef(null);
|
|
@@ -56,14 +56,14 @@ export function Select({ options, value, onChange, placeholder, loading = false,
|
|
|
56
56
|
document.addEventListener("mousedown", away);
|
|
57
57
|
return () => document.removeEventListener("mousedown", away);
|
|
58
58
|
}, [open]);
|
|
59
|
-
return (_jsxs("div", { ref: box, className: cn("relative w-56", className), children: [_jsxs(Button, { full: true, className: "justify-between", "aria-haspopup": "listbox", "aria-expanded": open, onClick: () => setOpen((o) => !o), children: [_jsx("span", { className: cn("min-w-0 truncate", current ? "" : "text-ink-faint"), children: current || placeholder }), _jsx(Icon, { icon: CaretRight, size: "xs", className: "shrink-0 rotate-90" })] }), open && (_jsxs("div", { ref: list, role: "listbox", className: "tamga-overlay absolute left-0 top-[var(--overlay-below)] z-40 w-full overflow-hidden py-1", "aria-busy": loading || undefined, children: [loading && _jsx(SkeletonOptions, { rows: loadingRows }), !loading && options.map((o) => (_jsxs("button", { role: "option", "aria-selected": o === current, "data-tamga-option": true, className: "tamga-option", "data-selected": o === current, onClick: () => {
|
|
59
|
+
return (_jsxs("div", { ref: box, className: cn("relative w-56", className), children: [_jsxs(Button, { full: true, className: "justify-between", "aria-haspopup": "listbox", "aria-expanded": open, "aria-label": ariaLabel, onClick: () => setOpen((o) => !o), children: [_jsx("span", { className: cn("min-w-0 truncate", current ? "" : "text-ink-faint"), children: current || placeholder }), _jsx(Icon, { icon: CaretRight, size: "xs", className: "shrink-0 rotate-90" })] }), open && (_jsxs("div", { ref: list, role: "listbox", className: "tamga-overlay absolute left-0 top-[var(--overlay-below)] z-40 w-full overflow-hidden py-1", "aria-busy": loading || undefined, children: [loading && _jsx(SkeletonOptions, { rows: loadingRows }), !loading && options.map((o) => (_jsxs("button", { role: "option", "aria-selected": o === current, "data-tamga-option": true, className: "tamga-option", "data-selected": o === current, onClick: () => {
|
|
60
60
|
setInner(o);
|
|
61
61
|
onChange?.(o);
|
|
62
62
|
setOpen(false);
|
|
63
63
|
}, children: [o, o === current && _jsx(Icon, { icon: Check, size: "xs", weight: "bold", className: "ml-auto" })] }, o)))] }))] }));
|
|
64
64
|
}
|
|
65
65
|
/** Side panel. Overlay plane, so it carries the 6px offset and a scrim. */
|
|
66
|
-
export function Sheet({ open, onClose, title, children, footer, loading = false, closeLabel, }) {
|
|
66
|
+
export function Sheet({ open, onClose, title, children, footer, loading = false, closeLabel, side = "end", }) {
|
|
67
67
|
/* the trap has to be called before any early return, so the hook lives here
|
|
68
68
|
and the null is returned after it */
|
|
69
69
|
const panel = useFocusTrap(open);
|
|
@@ -77,5 +77,12 @@ export function Sheet({ open, onClose, title, children, footer, loading = false,
|
|
|
77
77
|
}, [open, onClose]);
|
|
78
78
|
if (!open)
|
|
79
79
|
return null;
|
|
80
|
-
return (_jsxs("div", { className: "fixed inset-0 z-50 flex justify-end", children: [_jsx("div", { className: "tamga-scrim absolute inset-0", "aria-hidden": true, onClick: onClose }), _jsxs("aside", { ref: panel, role: "dialog", "aria-modal": true, "aria-label": title,
|
|
80
|
+
return (_jsxs("div", { className: cn("fixed inset-0 z-50 flex", side === "start" ? "justify-start" : "justify-end"), children: [_jsx("div", { className: "tamga-scrim absolute inset-0", "aria-hidden": true, onClick: onClose }), _jsxs("aside", { ref: panel, role: "dialog", "aria-modal": true, "aria-label": title,
|
|
81
|
+
/* PANEL KAYARAK GİRİYOR, VE GİRDİĞİ KENARDAN.
|
|
82
|
+
Animasyonsuz hâli bir kare içinde beliriyordu: nereden geldiği,
|
|
83
|
+
dolayısıyla nereye geri gideceği okunmuyordu. Kayma yönü `side` ile
|
|
84
|
+
aynı; ters yönden kayan bir panel, kapatma hareketini de ters
|
|
85
|
+
öğretiyor. `prefers-reduced-motion` açıksa kayma yok, panel yerinde
|
|
86
|
+
beliriyor. */
|
|
87
|
+
className: cn("tamga-overlay relative z-10 flex h-full w-full max-w-md flex-col", side === "start" ? "tamga-sheet-start" : "tamga-sheet-end"), style: { borderRadius: 0 }, "aria-busy": loading || undefined, children: [_jsxs("div", { className: "tamga-head tamga-gutter tamga-section", children: [_jsx("h3", { className: "text-subhead font-semibold", children: title }), _jsx(MiniButton, { onClick: onClose, "aria-label": closeLabel, className: "ml-auto", children: _jsx(Icon, { icon: Close, size: "xs" }) })] }), _jsx("div", { className: "tamga-gutter min-h-0 flex-1 overflow-y-auto py-6", children: loading ? _jsx(SkeletonPanel, { lines: 5, block: 120 }) : children }), footer ? (_jsx("div", { className: "tamga-gutter flex justify-end gap-2 border-t border-line py-4", children: footer })) : null] })] }));
|
|
81
88
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,7 +40,7 @@ export { ErrorState } from "./components/error-state.js";
|
|
|
40
40
|
export { LiveScope, useLiveClaim } from "./components/live-scope.js";
|
|
41
41
|
export { Skeleton, SkeletonText, SkeletonRows, SkeletonKpi, SkeletonCard, SkeletonTable, SkeletonOptions, SkeletonPanel, SkeletonPageBand, } from "./components/skeleton.js";
|
|
42
42
|
export { Surface, ScrollX, Rise, Swap, ListRow, CellActions, PageBand, Link, } from "./components/layout.js";
|
|
43
|
-
export { ThemeToggle, LocaleSwitcher, LogoTile } from "./components/chrome.js";
|
|
43
|
+
export { ThemeToggle, LocaleSwitcher, LogoTile, AccountButton } from "./components/chrome.js";
|
|
44
44
|
export { RailLink } from "./components/rail-link.js";
|
|
45
45
|
export { Slider } from "./components/slider.js";
|
|
46
46
|
export { Accordion, Collapsible } from "./components/disclosure.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -53,7 +53,7 @@ export { Skeleton, SkeletonText, SkeletonRows, SkeletonKpi, SkeletonCard, Skelet
|
|
|
53
53
|
* Buradan aşağısı, sınıfı olup bileşeni olmayan şeylerin kapandığı yer.
|
|
54
54
|
* Gerekçesi `components/layout.tsx`'in başında. */
|
|
55
55
|
export { Surface, ScrollX, Rise, Swap, ListRow, CellActions, PageBand, Link, } from "./components/layout.js";
|
|
56
|
-
export { ThemeToggle, LocaleSwitcher, LogoTile } from "./components/chrome.js";
|
|
56
|
+
export { ThemeToggle, LocaleSwitcher, LogoTile, AccountButton } from "./components/chrome.js";
|
|
57
57
|
export { RailLink } from "./components/rail-link.js";
|
|
58
58
|
export { Slider } from "./components/slider.js";
|
|
59
59
|
/* --- açılır bölümler --------------------------------------------------- */
|
package/dist/kit.css
CHANGED
|
@@ -1659,6 +1659,14 @@
|
|
|
1659
1659
|
.tamga-table tbody tr[data-selected="true"] td:first-child {
|
|
1660
1660
|
box-shadow: inset 2px 0 0 var(--color-accent-line);
|
|
1661
1661
|
}
|
|
1662
|
+
/* SEÇİLİ SATIR İKİ ADLA GELEBİLİYOR, VE BİRİ BOYANMIYORDU.
|
|
1663
|
+
`SettingsTemplate` menüsündeki açık bölümü `data-active` ile işaretliyor
|
|
1664
|
+
(bir GEZİNME satırı: hangi sayfadasın), liste satırları ise `data-selected`
|
|
1665
|
+
ile (bir SEÇİM: hangi kayıtları işaretledin). İkisi farklı anlam ama aynı
|
|
1666
|
+
görünüm, ve kural yalnız ikincisi için yazılmıştı: ayarlar menüsünde
|
|
1667
|
+
hangi bölümde olduğun hiç görünmüyordu. Hiçbir şey patlamadı, çünkü
|
|
1668
|
+
tarayıcı bilmediği bir nitelik seçicisini sessizce atlıyor. */
|
|
1669
|
+
.tamga-list-row[data-active="true"],
|
|
1662
1670
|
.tamga-list-row[data-selected="true"] {
|
|
1663
1671
|
background: var(--color-accent-bg);
|
|
1664
1672
|
box-shadow: inset 2px 0 0 var(--color-accent-line);
|
|
@@ -1668,6 +1676,10 @@
|
|
|
1668
1676
|
color: var(--color-accent-line);
|
|
1669
1677
|
font-weight: 500;
|
|
1670
1678
|
text-underline-offset: 3px;
|
|
1679
|
+
/* `<a href>` pointer'ı tarayıcıdan alır; `href`siz bir `<a>`, bir `<span>`
|
|
1680
|
+
ya da link gibi görünen bir `<button>` almaz ve imleç `auto` kalır. Sınıf
|
|
1681
|
+
kendi imlecini söylemeli. */
|
|
1682
|
+
cursor: pointer;
|
|
1671
1683
|
}
|
|
1672
1684
|
.tamga-link:hover {
|
|
1673
1685
|
text-decoration: underline;
|
|
@@ -1791,6 +1803,15 @@
|
|
|
1791
1803
|
}
|
|
1792
1804
|
}
|
|
1793
1805
|
|
|
1806
|
+
/* Çekmece kenardan kayarak girer; yön `side` ile aynı olmak zorunda, yoksa
|
|
1807
|
+
kapatma hareketi ters öğretilir. Gerekçe: /docs/sheet */
|
|
1808
|
+
.tamga-sheet-start {
|
|
1809
|
+
animation: tamga-sheet-start var(--duration-base) var(--ease-standard);
|
|
1810
|
+
}
|
|
1811
|
+
.tamga-sheet-end {
|
|
1812
|
+
animation: tamga-sheet-end var(--duration-base) var(--ease-standard);
|
|
1813
|
+
}
|
|
1814
|
+
|
|
1794
1815
|
.tamga-label {
|
|
1795
1816
|
font-size: var(--text-caption);
|
|
1796
1817
|
font-weight: 500;
|
|
@@ -2105,6 +2126,24 @@
|
|
|
2105
2126
|
}
|
|
2106
2127
|
}
|
|
2107
2128
|
|
|
2129
|
+
@keyframes tamga-sheet-start {
|
|
2130
|
+
from {
|
|
2131
|
+
transform: translateX(-100%);
|
|
2132
|
+
}
|
|
2133
|
+
to {
|
|
2134
|
+
transform: none;
|
|
2135
|
+
}
|
|
2136
|
+
}
|
|
2137
|
+
|
|
2138
|
+
@keyframes tamga-sheet-end {
|
|
2139
|
+
from {
|
|
2140
|
+
transform: translateX(100%);
|
|
2141
|
+
}
|
|
2142
|
+
to {
|
|
2143
|
+
transform: none;
|
|
2144
|
+
}
|
|
2145
|
+
}
|
|
2146
|
+
|
|
2108
2147
|
@keyframes tamga-bar {
|
|
2109
2148
|
0%,
|
|
2110
2149
|
100% {
|
|
@@ -2185,6 +2224,12 @@
|
|
|
2185
2224
|
.tamga-toast {
|
|
2186
2225
|
animation: none;
|
|
2187
2226
|
}
|
|
2227
|
+
/* Duran bir çekmece yine de AÇIK olmalı: kayma gidiyor, panel yerinde
|
|
2228
|
+
beliriyor. */
|
|
2229
|
+
.tamga-sheet-start,
|
|
2230
|
+
.tamga-sheet-end {
|
|
2231
|
+
animation: none;
|
|
2232
|
+
}
|
|
2188
2233
|
/* a stopped spinner must still be a visible mark, never an empty box */
|
|
2189
2234
|
.tamga-spin-part {
|
|
2190
2235
|
animation: none !important;
|
package/dist/lib/color.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export type Oklch = {
|
|
|
18
18
|
h: number;
|
|
19
19
|
};
|
|
20
20
|
/** `#abc` ya da `#aabbcc`. Kısa biçim de sayılıyor, boşluk sayılmıyor. */
|
|
21
|
-
export declare const
|
|
21
|
+
export declare const isHex: (v: string) => boolean;
|
|
22
22
|
/**
|
|
23
23
|
* Hex → RGB, GEÇERSİZ GİRDİDE FIRLATARAK.
|
|
24
24
|
*
|
|
@@ -28,23 +28,23 @@ export declare const gecerliHex: (v: string) => boolean;
|
|
|
28
28
|
* sebebi rengin kendisinde aranıyor.
|
|
29
29
|
*
|
|
30
30
|
* Kit KATI, çağıran toleranslı: yarım yazılmış bir kodun ne anlama geldiği
|
|
31
|
-
* ekranın kararı (bkz. `
|
|
31
|
+
* ekranın kararı (bkz. `isHex`).
|
|
32
32
|
*/
|
|
33
|
-
export declare function
|
|
34
|
-
export declare const
|
|
33
|
+
export declare function hexToRgb(hex: string): [number, number, number];
|
|
34
|
+
export declare const rgbToHex: (r: number, g: number, b: number) => string;
|
|
35
35
|
/** WCAG bağıl parlaklık. Metin kontrastı bununla ölçülüyor. */
|
|
36
|
-
export declare function
|
|
36
|
+
export declare function luminance(hex: string): number;
|
|
37
37
|
/** WCAG kontrast oranı. AA metin eşiği 4.5. */
|
|
38
|
-
export declare function
|
|
38
|
+
export declare function contrast(a: string, b: string): number;
|
|
39
39
|
/**
|
|
40
40
|
* CIE L* · algısal açıklık.
|
|
41
41
|
*
|
|
42
42
|
* İki YÜZEYİN ayrı okunup okunmadığı bununla ölçülüyor; kontrast oranı metin
|
|
43
43
|
* içindir, yüzey için değil. Bir kartın kenarı sayfadan ΔL* ≥ 10 ayrı olmalı.
|
|
44
44
|
*/
|
|
45
|
-
export declare function
|
|
46
|
-
export declare const
|
|
47
|
-
export declare function
|
|
45
|
+
export declare function lightness(hex: string): number;
|
|
46
|
+
export declare const deltaL: (a: string, b: string) => number;
|
|
47
|
+
export declare function hexToOklch(hex: string): Oklch;
|
|
48
48
|
/**
|
|
49
49
|
* OKLCH → hex, GAMUT DIŞINA TAŞMADAN.
|
|
50
50
|
*
|
|
@@ -53,7 +53,7 @@ export declare function hexOklch(hex: string): Oklch;
|
|
|
53
53
|
* doyum (C) ikili aramayla sığana kadar düşürülüyor; ton ve açıklık korunuyor,
|
|
54
54
|
* yalnız canlılık gerektiği kadar azalıyor.
|
|
55
55
|
*/
|
|
56
|
-
export declare function
|
|
56
|
+
export declare function oklchToHex({ l, c, h }: Oklch): string;
|
|
57
57
|
/**
|
|
58
58
|
* Verilen ton ve doyumda, HEDEF ORANI tutturan açıklığı arar.
|
|
59
59
|
*
|
|
@@ -64,5 +64,25 @@ export declare function oklchHex({ l, c, h }: Oklch): string;
|
|
|
64
64
|
* `yon` "koyulaş" (-1) ya da "açıl" (+1): koyu temada aynı hedef ters yönden
|
|
65
65
|
* yakalanıyor.
|
|
66
66
|
*/
|
|
67
|
-
export declare function
|
|
67
|
+
export declare function lightnessForContrast(taban: Oklch, karsi: string, hedef: number, yon: -1 | 1): Oklch;
|
|
68
|
+
/** @deprecated `isHex` kullan. 0.3.0'da kaldırılacak. */
|
|
69
|
+
export declare const gecerliHex: typeof isHex;
|
|
70
|
+
/** @deprecated `hexToRgb` kullan. 0.3.0'da kaldırılacak. */
|
|
71
|
+
export declare const hexRgb: typeof hexToRgb;
|
|
72
|
+
/** @deprecated `rgbToHex` kullan. 0.3.0'da kaldırılacak. */
|
|
73
|
+
export declare const rgbHex: typeof rgbToHex;
|
|
74
|
+
/** @deprecated `luminance` kullan. 0.3.0'da kaldırılacak. */
|
|
75
|
+
export declare const parlaklik: typeof luminance;
|
|
76
|
+
/** @deprecated `contrast` kullan. 0.3.0'da kaldırılacak. */
|
|
77
|
+
export declare const oran: typeof contrast;
|
|
78
|
+
/** @deprecated `lightness` kullan. 0.3.0'da kaldırılacak. */
|
|
79
|
+
export declare const acikligi: typeof lightness;
|
|
80
|
+
/** @deprecated `deltaL` kullan. 0.3.0'da kaldırılacak. */
|
|
81
|
+
export declare const dL: typeof deltaL;
|
|
82
|
+
/** @deprecated `hexToOklch` kullan. 0.3.0'da kaldırılacak. */
|
|
83
|
+
export declare const hexOklch: typeof hexToOklch;
|
|
84
|
+
/** @deprecated `oklchToHex` kullan. 0.3.0'da kaldırılacak. */
|
|
85
|
+
export declare const oklchHex: typeof oklchToHex;
|
|
86
|
+
/** @deprecated `lightnessForContrast` kullan. 0.3.0'da kaldırılacak. */
|
|
87
|
+
export declare const oranaGoreAcikligi: typeof lightnessForContrast;
|
|
68
88
|
//# sourceMappingURL=color.d.ts.map
|
package/dist/lib/color.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/lib/color.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAKxD,0EAA0E;AAC1E,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/lib/color.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAKxD,0EAA0E;AAC1E,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,OAA0D,CAAC;AAE7F;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAM9D;AAGD,eAAO,MAAM,QAAQ,MAAO,MAAM,KAAK,MAAM,KAAK,MAAM,WACqB,CAAC;AAE9E,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,+CAA+C;AAC/C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED,eAAO,MAAM,MAAM,MAAO,MAAM,KAAK,MAAM,WAA0C,CAAC;AAItF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAiB7C;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,MAAM,CA6BrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GACV,KAAK,CAQP;AAKD,yDAAyD;AACzD,eAAO,MAAM,UAAU,cAAQ,CAAC;AAChC,4DAA4D;AAC5D,eAAO,MAAM,MAAM,iBAAW,CAAC;AAC/B,4DAA4D;AAC5D,eAAO,MAAM,MAAM,iBAAW,CAAC;AAC/B,6DAA6D;AAC7D,eAAO,MAAM,SAAS,kBAAY,CAAC;AACnC,4DAA4D;AAC5D,eAAO,MAAM,IAAI,iBAAW,CAAC;AAC7B,6DAA6D;AAC7D,eAAO,MAAM,QAAQ,kBAAY,CAAC;AAClC,0DAA0D;AAC1D,eAAO,MAAM,EAAE,eAAS,CAAC;AACzB,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,mBAAa,CAAC;AACnC,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,mBAAa,CAAC;AACnC,wEAAwE;AACxE,eAAO,MAAM,iBAAiB,6BAAuB,CAAC"}
|
package/dist/lib/color.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
const srgbDoğrusal = (v) => (v <= 0.04045 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4);
|
|
16
16
|
const doğrusalSrgb = (v) => (v <= 0.0031308 ? v * 12.92 : 1.055 * v ** (1 / 2.4) - 0.055);
|
|
17
17
|
/** `#abc` ya da `#aabbcc`. Kısa biçim de sayılıyor, boşluk sayılmıyor. */
|
|
18
|
-
export const
|
|
18
|
+
export const isHex = (v) => /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.test(v.trim());
|
|
19
19
|
/**
|
|
20
20
|
* Hex → RGB, GEÇERSİZ GİRDİDE FIRLATARAK.
|
|
21
21
|
*
|
|
@@ -25,10 +25,10 @@ export const gecerliHex = (v) => /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i.test(v.trim())
|
|
|
25
25
|
* sebebi rengin kendisinde aranıyor.
|
|
26
26
|
*
|
|
27
27
|
* Kit KATI, çağıran toleranslı: yarım yazılmış bir kodun ne anlama geldiği
|
|
28
|
-
* ekranın kararı (bkz. `
|
|
28
|
+
* ekranın kararı (bkz. `isHex`).
|
|
29
29
|
*/
|
|
30
|
-
export function
|
|
31
|
-
if (!
|
|
30
|
+
export function hexToRgb(hex) {
|
|
31
|
+
if (!isHex(hex))
|
|
32
32
|
throw new Error(`Geçersiz hex: ${JSON.stringify(hex)}`);
|
|
33
33
|
const s = hex.trim().replace("#", "");
|
|
34
34
|
const t = s.length === 3 ? [...s].map((c) => c + c).join("") : s;
|
|
@@ -36,15 +36,15 @@ export function hexRgb(hex) {
|
|
|
36
36
|
return [(n >> 16) & 255, (n >> 8) & 255, n & 255];
|
|
37
37
|
}
|
|
38
38
|
const kanal = (v) => Math.max(0, Math.min(255, Math.round(v * 255)));
|
|
39
|
-
export const
|
|
39
|
+
export const rgbToHex = (r, g, b) => "#" + [r, g, b].map((v) => kanal(v).toString(16).padStart(2, "0")).join("");
|
|
40
40
|
/** WCAG bağıl parlaklık. Metin kontrastı bununla ölçülüyor. */
|
|
41
|
-
export function
|
|
42
|
-
const [r, g, b] =
|
|
41
|
+
export function luminance(hex) {
|
|
42
|
+
const [r, g, b] = hexToRgb(hex).map((v) => srgbDoğrusal(v / 255));
|
|
43
43
|
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
44
44
|
}
|
|
45
45
|
/** WCAG kontrast oranı. AA metin eşiği 4.5. */
|
|
46
|
-
export function
|
|
47
|
-
const [ust, alt] = [
|
|
46
|
+
export function contrast(a, b) {
|
|
47
|
+
const [ust, alt] = [luminance(a), luminance(b)].sort((x, y) => y - x);
|
|
48
48
|
return (ust + 0.05) / (alt + 0.05);
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
@@ -53,14 +53,14 @@ export function oran(a, b) {
|
|
|
53
53
|
* İki YÜZEYİN ayrı okunup okunmadığı bununla ölçülüyor; kontrast oranı metin
|
|
54
54
|
* içindir, yüzey için değil. Bir kartın kenarı sayfadan ΔL* ≥ 10 ayrı olmalı.
|
|
55
55
|
*/
|
|
56
|
-
export function
|
|
57
|
-
const y =
|
|
56
|
+
export function lightness(hex) {
|
|
57
|
+
const y = luminance(hex);
|
|
58
58
|
return y > 216 / 24389 ? 116 * Math.cbrt(y) - 16 : (y * 24389) / 27;
|
|
59
59
|
}
|
|
60
|
-
export const
|
|
60
|
+
export const deltaL = (a, b) => Math.abs(lightness(a) - lightness(b));
|
|
61
61
|
/* ---- OKLab ---- */
|
|
62
|
-
export function
|
|
63
|
-
const [r8, g8, b8] =
|
|
62
|
+
export function hexToOklch(hex) {
|
|
63
|
+
const [r8, g8, b8] = hexToRgb(hex);
|
|
64
64
|
const r = srgbDoğrusal(r8 / 255);
|
|
65
65
|
const g = srgbDoğrusal(g8 / 255);
|
|
66
66
|
const b = srgbDoğrusal(b8 / 255);
|
|
@@ -82,7 +82,7 @@ export function hexOklch(hex) {
|
|
|
82
82
|
* doyum (C) ikili aramayla sığana kadar düşürülüyor; ton ve açıklık korunuyor,
|
|
83
83
|
* yalnız canlılık gerektiği kadar azalıyor.
|
|
84
84
|
*/
|
|
85
|
-
export function
|
|
85
|
+
export function oklchToHex({ l, c, h }) {
|
|
86
86
|
const dene = (kroma) => {
|
|
87
87
|
const hr = (h * Math.PI) / 180;
|
|
88
88
|
const A = Math.cos(hr) * kroma;
|
|
@@ -110,7 +110,7 @@ export function oklchHex({ l, c, h }) {
|
|
|
110
110
|
}
|
|
111
111
|
rgb = dene(alt);
|
|
112
112
|
}
|
|
113
|
-
return
|
|
113
|
+
return rgbToHex(...rgb);
|
|
114
114
|
}
|
|
115
115
|
/**
|
|
116
116
|
* Verilen ton ve doyumda, HEDEF ORANI tutturan açıklığı arar.
|
|
@@ -122,13 +122,35 @@ export function oklchHex({ l, c, h }) {
|
|
|
122
122
|
* `yon` "koyulaş" (-1) ya da "açıl" (+1): koyu temada aynı hedef ters yönden
|
|
123
123
|
* yakalanıyor.
|
|
124
124
|
*/
|
|
125
|
-
export function
|
|
125
|
+
export function lightnessForContrast(taban, karsi, hedef, yon) {
|
|
126
126
|
let en = { ...taban };
|
|
127
127
|
for (let i = 0; i < 60; i++) {
|
|
128
128
|
const aday = { ...taban, l: Math.max(0.02, Math.min(0.99, taban.l + yon * 0.01 * i)) };
|
|
129
129
|
en = aday;
|
|
130
|
-
if (
|
|
130
|
+
if (contrast(oklchToHex(aday), karsi) >= hedef)
|
|
131
131
|
break;
|
|
132
132
|
}
|
|
133
133
|
return en;
|
|
134
134
|
}
|
|
135
|
+
/* Eski Türkçe adlar, 0.3.0'a kadar. SİLME: 0.1.1 npm'de yayında ve bu adları
|
|
136
|
+
kullanan bir tüketici var. Gerekçe: ADR-0001. */
|
|
137
|
+
/** @deprecated `isHex` kullan. 0.3.0'da kaldırılacak. */
|
|
138
|
+
export const gecerliHex = isHex;
|
|
139
|
+
/** @deprecated `hexToRgb` kullan. 0.3.0'da kaldırılacak. */
|
|
140
|
+
export const hexRgb = hexToRgb;
|
|
141
|
+
/** @deprecated `rgbToHex` kullan. 0.3.0'da kaldırılacak. */
|
|
142
|
+
export const rgbHex = rgbToHex;
|
|
143
|
+
/** @deprecated `luminance` kullan. 0.3.0'da kaldırılacak. */
|
|
144
|
+
export const parlaklik = luminance;
|
|
145
|
+
/** @deprecated `contrast` kullan. 0.3.0'da kaldırılacak. */
|
|
146
|
+
export const oran = contrast;
|
|
147
|
+
/** @deprecated `lightness` kullan. 0.3.0'da kaldırılacak. */
|
|
148
|
+
export const acikligi = lightness;
|
|
149
|
+
/** @deprecated `deltaL` kullan. 0.3.0'da kaldırılacak. */
|
|
150
|
+
export const dL = deltaL;
|
|
151
|
+
/** @deprecated `hexToOklch` kullan. 0.3.0'da kaldırılacak. */
|
|
152
|
+
export const hexOklch = hexToOklch;
|
|
153
|
+
/** @deprecated `oklchToHex` kullan. 0.3.0'da kaldırılacak. */
|
|
154
|
+
export const oklchHex = oklchToHex;
|
|
155
|
+
/** @deprecated `lightnessForContrast` kullan. 0.3.0'da kaldırılacak. */
|
|
156
|
+
export const oranaGoreAcikligi = lightnessForContrast;
|
package/dist/lib/palette.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { lightness, deltaL, isHex, contrast } from "./color.js";
|
|
2
2
|
/**
|
|
3
3
|
* Tek bir marka renginden iki temalık palet.
|
|
4
4
|
*
|
|
@@ -17,7 +17,7 @@ import { acikligi, dL, gecerliHex, oran } from "./color.js";
|
|
|
17
17
|
* `check-token-contrast` ile aynı aritmetikten geçiyor (bkz. `lib/color.ts`).
|
|
18
18
|
*/
|
|
19
19
|
/** Bir temanın üreteceği token'lar. Adlar `theme.css`'teki kit ailesiyle birebir. */
|
|
20
|
-
export type
|
|
20
|
+
export type Palette = {
|
|
21
21
|
page: string;
|
|
22
22
|
shell: string;
|
|
23
23
|
hover: string;
|
|
@@ -42,24 +42,27 @@ export type Palet = {
|
|
|
42
42
|
navHover: string;
|
|
43
43
|
navHoverBg: string;
|
|
44
44
|
};
|
|
45
|
-
export type
|
|
46
|
-
light:
|
|
47
|
-
dark:
|
|
45
|
+
export type PalettePair = {
|
|
46
|
+
light: Palette;
|
|
47
|
+
dark: Palette;
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
50
|
* Bir marka renginden iki tema.
|
|
51
51
|
*
|
|
52
52
|
* Geçersiz bir kodda FIRLATIYOR, sessizce griye düşmüyor: yarım yazılmış bir
|
|
53
|
-
* hex'in ne anlama geldiğine çağıran karar veriyor (`
|
|
53
|
+
* hex'in ne anlama geldiğine çağıran karar veriyor (`isHex`).
|
|
54
54
|
*/
|
|
55
|
-
export declare function
|
|
56
|
-
export {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
export declare function makePalette(markaHex: string): PalettePair;
|
|
56
|
+
export { isHex };
|
|
57
|
+
/** Tek bir kontrast ölçümü. */
|
|
58
|
+
export type Measurement = {
|
|
59
|
+
/** Neyin neye karşı ölçüldüğü: "ink · page". */
|
|
60
|
+
name: string;
|
|
61
|
+
/** `contrast` WCAG oranı, `deltaL` açıklık farkı. */
|
|
62
|
+
kind: "contrast" | "deltaL";
|
|
63
|
+
value: number;
|
|
64
|
+
threshold: number;
|
|
65
|
+
passed: boolean;
|
|
63
66
|
};
|
|
64
67
|
/**
|
|
65
68
|
* Üretilen paleti `check-token-contrast` ile AYNI eşiklerden geçirir.
|
|
@@ -68,17 +71,33 @@ export type Olcum = {
|
|
|
68
71
|
* yarın bir ton için yanlış olur. Marka rengi değiştiğinde bu liste yeniden
|
|
69
72
|
* koşuyor, ve geçmeyen bir palet build'i kırıyor.
|
|
70
73
|
*/
|
|
71
|
-
export declare function
|
|
74
|
+
export declare function measurePalette(p: Palette): Measurement[];
|
|
72
75
|
/**
|
|
73
76
|
* Bir paleti CSS değişkeni sözlüğüne çevirir: `{ "--color-accent": "#..." }`.
|
|
74
77
|
*
|
|
75
|
-
* NEDEN `
|
|
78
|
+
* NEDEN `paletteCss` YETMİYOR: o bir STİL SAYFASI dizgisi üretiyor (`:root { … }`),
|
|
76
79
|
* ve bir stil sayfası ancak belgenin tamamına uygulanabiliyor. Bir paleti tek
|
|
77
80
|
* bir kutuya uygulamak (bir önizleme, bir tema seçici) ya da köke çalışma
|
|
78
81
|
* zamanında yazmak için gereken şey bir SÖZLÜK. Simge adları kalıtsal olduğu
|
|
79
82
|
* için bir kutuya yazılan palet, içindeki her bileşeni birlikte döndürüyor.
|
|
80
83
|
*/
|
|
81
|
-
export declare function
|
|
82
|
-
export declare function
|
|
83
|
-
export {
|
|
84
|
+
export declare function paletteVars(p: Palette): Record<string, string>;
|
|
85
|
+
export declare function paletteCss(cift: PalettePair): string;
|
|
86
|
+
export { lightness, deltaL, contrast };
|
|
87
|
+
/** @deprecated `makePalette` kullan. 0.3.0'da kaldırılacak. */
|
|
88
|
+
export declare const paletUret: typeof makePalette;
|
|
89
|
+
/** @deprecated `measurePalette` kullan. 0.3.0'da kaldırılacak. */
|
|
90
|
+
export declare const paletiOlc: typeof measurePalette;
|
|
91
|
+
/** @deprecated `paletteVars` kullan. 0.3.0'da kaldırılacak. */
|
|
92
|
+
export declare const paletStili: typeof paletteVars;
|
|
93
|
+
/** @deprecated `paletteCss` kullan. 0.3.0'da kaldırılacak. */
|
|
94
|
+
export declare const paletCss: typeof paletteCss;
|
|
95
|
+
/** @deprecated `Palette` kullan. 0.3.0'da kaldırılacak. */
|
|
96
|
+
export type Palet = Palette;
|
|
97
|
+
/** @deprecated `PalettePair` kullan. 0.3.0'da kaldırılacak. */
|
|
98
|
+
export type PaletCifti = PalettePair;
|
|
99
|
+
/** @deprecated `Measurement` kullan. 0.3.0'da kaldırılacak. */
|
|
100
|
+
export type Olcum = Measurement;
|
|
101
|
+
/** @deprecated `isHex` kullan (tamga-ui/palette üzerinden). 0.3.0'da kaldırılacak. */
|
|
102
|
+
export { gecerliHex, hexRgb, rgbHex, parlaklik, oran, acikligi, dL, hexOklch, oklchHex, oranaGoreAcikligi } from "./color.js";
|
|
84
103
|
//# sourceMappingURL=palette.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/lib/palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/lib/palette.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAA0B,QAAQ,EAAc,MAAM,YAAY,CAAC;AAEpG;;;;;;;;;;;;;;;;GAgBG;AAEH,qFAAqF;AACrF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAqH5D;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAIzD;AAED,OAAO,EAAE,KAAK,EAAE,CAAC;AAIjB,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG;IACxB,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,WAAW,EAAE,CAsBxD;AAwBD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI9D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAMpD;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAKvC,+DAA+D;AAC/D,eAAO,MAAM,SAAS,oBAAc,CAAC;AACrC,kEAAkE;AAClE,eAAO,MAAM,SAAS,uBAAiB,CAAC;AACxC,+DAA+D;AAC/D,eAAO,MAAM,UAAU,oBAAc,CAAC;AACtC,8DAA8D;AAC9D,eAAO,MAAM,QAAQ,mBAAa,CAAC;AACnC,2DAA2D;AAC3D,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC;AAC5B,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AACrC,+DAA+D;AAC/D,MAAM,MAAM,KAAK,GAAG,WAAW,CAAC;AAChC,sFAAsF;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|