tamga-ui 0.2.1 → 0.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.
- package/CHANGELOG.md +48 -0
- package/dist/components/chrome.d.ts +11 -1
- package/dist/components/chrome.d.ts.map +1 -1
- package/dist/components/chrome.js +19 -6
- package/dist/components/error-state.d.ts +7 -14
- package/dist/components/error-state.d.ts.map +1 -1
- package/dist/components/overlay.d.ts +7 -16
- package/dist/components/overlay.d.ts.map +1 -1
- package/dist/components/primitives.d.ts +7 -16
- package/dist/components/primitives.d.ts.map +1 -1
- package/dist/components/rail-link.d.ts +8 -1
- package/dist/components/rail-link.d.ts.map +1 -1
- package/dist/components/rail-link.js +2 -1
- package/dist/kit.css +68 -768
- package/dist/lib/color.d.ts +0 -20
- package/dist/lib/color.d.ts.map +1 -1
- package/dist/lib/color.js +0 -22
- package/dist/lib/palette.d.ts +0 -16
- package/dist/lib/palette.d.ts.map +1 -1
- package/dist/lib/palette.js +0 -12
- package/dist/patterns/shared.d.ts +1 -1
- package/dist/patterns/shared.d.ts.map +1 -1
- package/dist/styles.css +1 -3
- package/dist/theme.css +127 -483
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,54 @@ Versions follow [semver](https://semver.org/). Through `0.x`, breaking changes m
|
|
|
5
5
|
|
|
6
6
|
> 🇹🇷 Türkçe için [tamga.org.tr/tr](https://tamga.org.tr/tr).
|
|
7
7
|
|
|
8
|
+
## 0.3.0
|
|
9
|
+
|
|
10
|
+
### Breaking
|
|
11
|
+
|
|
12
|
+
- **The Turkish aliases in `tamga-ui/palette` and the colour helpers are gone.** They were
|
|
13
|
+
`@deprecated` through 0.2.x with the removal booked for this release; the mapping is the table
|
|
14
|
+
under 0.2.0. Nothing in the two products that consume this kit still used them, and the kit's own
|
|
15
|
+
documentation site did — which is the whole reason a deprecation window has an end.
|
|
16
|
+
**Migration:** `paletUret` → `makePalette`, `paletStili` → `paletteVars`, `gecerliHex` → `isHex`,
|
|
17
|
+
and so on down that table.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **`ThemeToggle` can be driven from outside.** New optional `dark` and `onChange`. With them the
|
|
22
|
+
control stops owning the preference: it writes no storage, touches no class, only shows and
|
|
23
|
+
reports. Without them nothing changes.
|
|
24
|
+
|
|
25
|
+
**You were affected if** your app already tracks the theme itself and also mounts this control.
|
|
26
|
+
Two writers then fight over one `.dark` class: whichever runs last wins, and the two can disagree
|
|
27
|
+
— token-driven colour saying one thing, `dark:`-driven utilities saying the other. Nothing errors.
|
|
28
|
+
Pass `dark` and `onChange` and the control stops being the second writer.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- **`RailLink` dropped every extra prop.** `AppShell` passes `data-nav` to each rail entry and the
|
|
33
|
+
attribute never reached the DOM — the passing side thought it had passed it, the receiving side
|
|
34
|
+
never drew it, and nothing errored. Anyone hanging a test or a style on `[data-nav]` was hanging
|
|
35
|
+
it on nothing. `RailLink` now spreads what it is given.
|
|
36
|
+
- **`ThemeToggle`'s icon variant no longer flashes the wrong glyph.** Which icon shows is decided
|
|
37
|
+
by CSS rather than React state, so the first frame is right without waiting for hydration.
|
|
38
|
+
- **A checked checkbox drew its edge in its own fill colour**, so a filled control had no base under
|
|
39
|
+
it. Filled accent objects follow the button's contract everywhere now: `accent` fill,
|
|
40
|
+
`accent-shadow` edge, `accent-ink` ink.
|
|
41
|
+
- **An image tile's hover turned its border to the accent and left its shadow neutral**, which
|
|
42
|
+
detaches the height from the object. Law 1 asks for one colour on both.
|
|
43
|
+
|
|
44
|
+
### Internal
|
|
45
|
+
|
|
46
|
+
- **`check-physics`** — a 16th gate. It reads `kit.css` and holds Law 1 against its written form:
|
|
47
|
+
blur zero, offset diagonal, offset on the ladder (0 · 1 · 2 · 3 · 4 · 6), edge and shadow the same
|
|
48
|
+
colour, a press that travels exactly the resting offset, a hover that rises exactly one step. It
|
|
49
|
+
covers 61 elevations across 37 families.
|
|
50
|
+
|
|
51
|
+
The law is the kit's, so its proof belongs here too. It used to be measured downstream, against a
|
|
52
|
+
gallery the kit does not own.
|
|
53
|
+
- **The pattern layer has tests.** 35 of them. Until now the kit had 32 tests and not one of them
|
|
54
|
+
rendered a component, while every consumer of `tamga-ui/patterns` depended on that layer.
|
|
55
|
+
|
|
8
56
|
## 0.2.1
|
|
9
57
|
|
|
10
58
|
### Added
|
|
@@ -21,7 +21,7 @@ import { type ComponentType, type ReactNode } from "react";
|
|
|
21
21
|
* görünür. `switch` biçimi aynı iskeleti kullanıyor — iki uçta birer simge,
|
|
22
22
|
* ortada kayan bir anahtar — yani ikisi yan yana aynı satırda oturuyor.
|
|
23
23
|
*/
|
|
24
|
-
export declare function ThemeToggle({ labels, variant, storageKey, className, }: {
|
|
24
|
+
export declare function ThemeToggle({ labels, variant, storageKey, dark: controlled, onChange, className, }: {
|
|
25
25
|
/**
|
|
26
26
|
* `icon` and `switch` need ACTION words, `select` needs STATE words. TR: `icon` ve `switch`
|
|
27
27
|
* EYLEM sözcüğü ister, `select` DURUM sözcüğü.
|
|
@@ -42,6 +42,16 @@ export declare function ThemeToggle({ labels, variant, storageKey, className, }:
|
|
|
42
42
|
light: string;
|
|
43
43
|
dark: string;
|
|
44
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* The current theme, when the PRODUCT owns it. TR: O anki tema, temayı ÜRÜN tutuyorsa.
|
|
47
|
+
*
|
|
48
|
+
* Verildiğinde bu kontrol hafızasını bırakıyor: `localStorage`a yazmıyor, `.dark` sınıfına
|
|
49
|
+
* dokunmuyor, yalnız gösteriyor ve `onChange` ile bildiriyor. Verilmediğinde tercihi kendi
|
|
50
|
+
* saklıyor. Temayı zaten tutan bir uygulamada VER: yoksa iki yazar tek sınıf için yarışır.
|
|
51
|
+
*/
|
|
52
|
+
dark?: boolean;
|
|
53
|
+
/** Called when the reader asks for the other theme. TR: Okuyucu öteki temayı istediğinde çağrılıyor. */
|
|
54
|
+
onChange?: (dark: boolean) => void;
|
|
45
55
|
/**
|
|
46
56
|
* `icon` a square button · `switch` the same shape as a language toggle · `select` a box that
|
|
47
57
|
* says the current theme in words. TR: `icon` kare düğme · `switch` bir dil anahtarıyla aynı
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA8BhF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,OAAgB,EAChB,UAA0B,EAC1B,SAAS,GACV,EAAE;IACD;;;;;;;;;;;;OAYG;IACH,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+
|
|
1
|
+
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA8BhF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,OAAgB,EAChB,UAA0B,EAC1B,IAAI,EAAE,UAAU,EAChB,QAAQ,EACR,SAAS,GACV,EAAE;IACD;;;;;;;;;;;;OAYG;IACH,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wGAAwG;IACxG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAwFA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE;IACD;;;OAGG;IACH,OAAO,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAgCA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,GAAG,EACH,IAAa,EACb,SAAS,GACV,EAAE;IACD;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAaA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,GAAG,EACH,KAAK,EACL,OAAO,EACP,IAAI,EACJ,aAAa,EAAE,IAAI,EACnB,SAAS,GACV,EAAE;IACD,mIAAmI;IACnI,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8IAA8I;IAC9I,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iKAAiK;IACjK,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IAChH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAyBA"}
|
|
@@ -51,19 +51,26 @@ function write(key, value) {
|
|
|
51
51
|
* görünür. `switch` biçimi aynı iskeleti kullanıyor — iki uçta birer simge,
|
|
52
52
|
* ortada kayan bir anahtar — yani ikisi yan yana aynı satırda oturuyor.
|
|
53
53
|
*/
|
|
54
|
-
export function ThemeToggle({ labels, variant = "icon", storageKey = "tamga-theme", className, }) {
|
|
55
|
-
const
|
|
54
|
+
export function ThemeToggle({ labels, variant = "icon", storageKey = "tamga-theme", dark: controlled, onChange, className, }) {
|
|
55
|
+
const owned = controlled === undefined;
|
|
56
|
+
const [self, setSelf] = useState(false);
|
|
57
|
+
const dark = owned ? self : controlled;
|
|
56
58
|
useEffect(() => {
|
|
59
|
+
if (!owned)
|
|
60
|
+
return;
|
|
57
61
|
const saved = read(storageKey);
|
|
58
62
|
const initial = saved
|
|
59
63
|
? saved === "dark"
|
|
60
64
|
: window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
61
|
-
|
|
65
|
+
setSelf(initial);
|
|
62
66
|
document.documentElement.classList.toggle("dark", initial);
|
|
63
|
-
}, [storageKey]);
|
|
67
|
+
}, [owned, storageKey]);
|
|
64
68
|
function toggle() {
|
|
65
69
|
const next = !dark;
|
|
66
|
-
|
|
70
|
+
onChange?.(next);
|
|
71
|
+
if (!owned)
|
|
72
|
+
return;
|
|
73
|
+
setSelf(next);
|
|
67
74
|
document.documentElement.classList.toggle("dark", next);
|
|
68
75
|
write(storageKey, next ? "dark" : "light");
|
|
69
76
|
}
|
|
@@ -82,7 +89,13 @@ export function ThemeToggle({ labels, variant = "icon", storageKey = "tamga-them
|
|
|
82
89
|
if (variant === "switch") {
|
|
83
90
|
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" })] }));
|
|
84
91
|
}
|
|
85
|
-
|
|
92
|
+
/* HANGİ GLİFİN GÖRÜNECEĞİNE CSS KARAR VERİYOR, React durumu değil.
|
|
93
|
+
Sunucuda çizilen ilk kare temayı bilmiyor: durumla seçilen bir glif, tema
|
|
94
|
+
çözülene kadar YANLIŞ olanı gösterip sonra takla atıyor. `dark:` yardımcısı
|
|
95
|
+
kök sınıfla birlikte anında doğru olanı gösteriyor, hidrasyon beklemeden.
|
|
96
|
+
Erişilebilir ad bunu yapamıyor (bir düğmenin tek bir adı olur), o yüzden o
|
|
97
|
+
duruma bağlı kalıyor — ve kontrollü kullanımda ürün doğru değeri veriyor. */
|
|
98
|
+
return (_jsxs("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: ThemeDark, size: "sm", className: "dark:hidden" }), _jsx(Icon, { icon: ThemeLight, size: "sm", className: "hidden dark:block" })] }));
|
|
86
99
|
}
|
|
87
100
|
/**
|
|
88
101
|
* Dil değiştirici.
|
|
@@ -11,20 +11,13 @@ export declare function ErrorState({ title, description, detail, onRetry, retryL
|
|
|
11
11
|
*/
|
|
12
12
|
description?: string;
|
|
13
13
|
/**
|
|
14
|
-
* The technical line
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* TR: Teknik satır. 2026-08-19'da KARARA BAĞLANDI (Ercüment, açık soru 5): kilitli zarf
|
|
22
|
-
* (api-kontrati.html A4) uyarınca `code` ve `meta.request_id`, bu sırayla, örneğin
|
|
23
|
-
* `quota_exceeded · req_8f2a…`. Neden bu ikisi ve HTTP durumu değil: `code` neyin
|
|
24
|
-
* bozulduğunun kararlı makine adı (hiç yerelleşmiyor, ve hem destek hem programatik istemci
|
|
25
|
-
* ona bakarak dallanıyor), `request_id` ise bu hatayı bir sunucu kaydıyla eşleştiren şey;
|
|
26
|
-
* kontrat onu 500'de zorunlu kılıyor ve `X-Request-Id` başlığında aynalıyor. İnsan cümlesi
|
|
27
|
-
* zarfın zaten yerelleşmiş `message` alanından `description`'a ait.
|
|
14
|
+
* The technical line: what support and a programmatic client can act on. TR: Teknik satır:
|
|
15
|
+
* desteğin ve programatik istemcinin üzerinde işlem yapabileceği şey.
|
|
16
|
+
*
|
|
17
|
+
* İki parça bekliyor, bu sırayla: neyin bozulduğunun KARARLI MAKİNE ADI ve hatayı bir sunucu
|
|
18
|
+
* kaydıyla eşleştiren KİMLİK, örneğin `quota_exceeded · req_8f2a…`. İkisinin de yerelleşmemesi
|
|
19
|
+
* gerekiyor; insan cümlesi `description`a ait. Alanların adı ve hangi yanıtta zorunlu olduğu
|
|
20
|
+
* ürünün API sözleşmesinin kararı, bu bileşenin değil.
|
|
28
21
|
*/
|
|
29
22
|
detail?: string;
|
|
30
23
|
onRetry?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-state.d.ts","sourceRoot":"","sources":["../../src/components/error-state.tsx"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAA6B,EAC7B,WAAW,EACX,MAAM,EACN,OAAO,EACP,UAAwB,EACxB,OAAe,GAChB,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB
|
|
1
|
+
{"version":3,"file":"error-state.d.ts","sourceRoot":"","sources":["../../src/components/error-state.tsx"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAA6B,EAC7B,WAAW,EACX,MAAM,EACN,OAAO,EACP,UAAwB,EACxB,OAAe,GAChB,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,+BAuCA"}
|
|
@@ -48,22 +48,13 @@ export declare function DropdownMenu({ trigger, items, align, width, loading, lo
|
|
|
48
48
|
*/
|
|
49
49
|
loading?: boolean;
|
|
50
50
|
/**
|
|
51
|
-
* How many skeleton rows to hold while `loading`.
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* it at 4 is a bug that looks like a design choice. TR: `loading` sürerken kaç iskelet satırı
|
|
59
|
-
* tutulacağı. 2026-08-19'da KARARA BAĞLANDI (açık soru 4): bu asla bir zevk değeri değil;
|
|
60
|
-
* gerçekten gelmekte olan kayıt sayısı, çünkü iskeletin bütün amacı kayıtlar geldiğinde
|
|
61
|
-
* panelin yeniden boyutlanmaması. O sayının nereden geldiği (api-kontrati.html A7, KİLİTLİ):
|
|
62
|
-
* · sayfalı liste → isteğin `page_size` değeri (DRF varsayılanı 25, en çok 100) · son sayfa →
|
|
63
|
-
* `meta.count - (page - 1) * page_size` · imleçli liste → `page_size` (tasarım gereği `count`
|
|
64
|
-
* dönmüyor) · boyu bilinen menü → çağıranın zaten bildiği öğe sayısı Varsayılan 4 bir menüye
|
|
65
|
-
* uyuyor, bir listeye değil. 4'te bırakılmış bir liste, tasarım kararı gibi görünen bir
|
|
66
|
-
* hatadır.
|
|
51
|
+
* How many skeleton rows to hold while `loading`. TR: `loading` sürerken kaç iskelet satırı
|
|
52
|
+
* tutulacağı.
|
|
53
|
+
*
|
|
54
|
+
* ZEVK DEĞERİ DEĞİL: gerçekten gelmekte olan kayıt sayısı, çünkü iskeletin bütün amacı kayıtlar
|
|
55
|
+
* indiğinde panelin yeniden boyutlanmaması. Sayı çağıranın elinde: sayfa boyu, son sayfanın
|
|
56
|
+
* kalanı, ya da menünün zaten bilinen öğe sayısı. Varsayılan 4 bir menüye uyuyor, bir listeye
|
|
57
|
+
* değil; 4'te bırakılmış bir liste, tasarım kararı gibi görünen bir hatadır.
|
|
67
58
|
*/
|
|
68
59
|
loadingRows?: number;
|
|
69
60
|
}): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/components/overlay.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAsCtC,MAAM,MAAM,QAAQ,GAChB;IACE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,KAAe,EACf,KAAW,EACX,OAAe,EACf,WAAe,EACf,WAAmB,GACpB,EAAE;IACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/components/overlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -53,22 +53,13 @@ export declare function Select({ options, value, onChange, placeholder, loading,
|
|
|
53
53
|
*/
|
|
54
54
|
loading?: boolean;
|
|
55
55
|
/**
|
|
56
|
-
* How many skeleton rows to hold while `loading`.
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* it at 4 is a bug that looks like a design choice. TR: `loading` sürerken kaç iskelet satırı
|
|
64
|
-
* tutulacağı. 2026-08-19'da KARARA BAĞLANDI (açık soru 4): bu asla bir zevk değeri değil;
|
|
65
|
-
* gerçekten gelmekte olan kayıt sayısı, çünkü iskeletin bütün amacı kayıtlar geldiğinde
|
|
66
|
-
* panelin yeniden boyutlanmaması. O sayının nereden geldiği (api-kontrati.html A7, KİLİTLİ):
|
|
67
|
-
* · sayfalı liste → isteğin `page_size` değeri (DRF varsayılanı 25, en çok 100) · son sayfa →
|
|
68
|
-
* `meta.count - (page - 1) * page_size` · imleçli liste → `page_size` (tasarım gereği `count`
|
|
69
|
-
* dönmüyor) · boyu bilinen menü → çağıranın zaten bildiği öğe sayısı Varsayılan 4 bir menüye
|
|
70
|
-
* uyuyor, bir listeye değil. 4'te bırakılmış bir liste, tasarım kararı gibi görünen bir
|
|
71
|
-
* hatadır.
|
|
56
|
+
* How many skeleton rows to hold while `loading`. TR: `loading` sürerken kaç iskelet satırı
|
|
57
|
+
* tutulacağı.
|
|
58
|
+
*
|
|
59
|
+
* ZEVK DEĞERİ DEĞİL: gerçekten gelmekte olan kayıt sayısı, çünkü iskeletin bütün amacı kayıtlar
|
|
60
|
+
* indiğinde panelin yeniden boyutlanmaması. Sayı çağıranın elinde: sayfa boyu, son sayfanın
|
|
61
|
+
* kalanı, ya da menünün zaten bilinen öğe sayısı. Varsayılan 4 bir menüye uyuyor, bir listeye
|
|
62
|
+
* değil; 4'te bırakılmış bir liste, tasarım kararı gibi görünen bir hatadır.
|
|
72
63
|
*/
|
|
73
64
|
loadingRows?: number;
|
|
74
65
|
/**
|
|
@@ -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,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
|
|
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;;;;;;;;OAQG;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"}
|
|
@@ -5,7 +5,7 @@ import type { ComponentType, ReactNode } from "react";
|
|
|
5
5
|
* Gerekçe: docs/gerekce/05-yuzey-ve-kabuk.md
|
|
6
6
|
*/
|
|
7
7
|
/** İkon raylı gezinme öğesi. */
|
|
8
|
-
export declare function RailLink({ label, active, href, onClick, className, children, showLabel, linkComponent: Link, }: {
|
|
8
|
+
export declare function RailLink({ label, active, href, onClick, className, children, showLabel, linkComponent: Link, ...rest }: {
|
|
9
9
|
label: string;
|
|
10
10
|
active?: boolean;
|
|
11
11
|
href?: string;
|
|
@@ -33,5 +33,12 @@ export declare function RailLink({ label, active, href, onClick, className, chil
|
|
|
33
33
|
children?: ReactNode;
|
|
34
34
|
[k: string]: unknown;
|
|
35
35
|
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Anything else lands on the control: a `data-*` hook a test or a style needs. TR: Geri kalan
|
|
38
|
+
* her şey kontrolün üstüne iniyor: bir testin ya da stilin ihtiyaç duyduğu `data-*` kancası.
|
|
39
|
+
*
|
|
40
|
+
* SİLME: bu yayma olmadan `AppShell`in geçtiği `data-nav` sessizce düşüyor.
|
|
41
|
+
*/
|
|
42
|
+
[k: string]: unknown;
|
|
36
43
|
}): import("react").JSX.Element;
|
|
37
44
|
//# sourceMappingURL=rail-link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rail-link.d.ts","sourceRoot":"","sources":["../../src/components/rail-link.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD;;;;GAIG;AAEH,gCAAgC;AAChC,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,MAAc,EACd,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAiB,EACjB,aAAa,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"rail-link.d.ts","sourceRoot":"","sources":["../../src/components/rail-link.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD;;;;GAIG;AAEH,gCAAgC;AAChC,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,MAAc,EACd,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAiB,EACjB,aAAa,EAAE,IAAI,EACnB,GAAG,IAAI,EACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IAC5F;;;;;OAKG;IACH,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,+BA4CA"}
|
|
@@ -8,8 +8,9 @@ import { Tooltip } from "./overlay.js";
|
|
|
8
8
|
* Gerekçe: docs/gerekce/05-yuzey-ve-kabuk.md
|
|
9
9
|
*/
|
|
10
10
|
/** İkon raylı gezinme öğesi. */
|
|
11
|
-
export function RailLink({ label, active = false, href, onClick, className, children, showLabel = false, linkComponent: Link, }) {
|
|
11
|
+
export function RailLink({ label, active = false, href, onClick, className, children, showLabel = false, linkComponent: Link, ...rest }) {
|
|
12
12
|
const shared = {
|
|
13
|
+
...rest,
|
|
13
14
|
className: cn("tamga-rail-link", showLabel && "tamga-rail-link-wide", className),
|
|
14
15
|
"data-active": active,
|
|
15
16
|
"aria-label": label,
|