tamga-ui 0.5.8 → 0.6.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 +50 -0
- package/dist/components/avatar.js +1 -1
- package/dist/components/chart.js +1 -1
- package/dist/components/chrome.d.ts.map +1 -1
- package/dist/components/chrome.js +5 -5
- package/dist/components/display.d.ts.map +1 -1
- package/dist/components/display.js +6 -6
- package/dist/components/empty-state.d.ts.map +1 -1
- package/dist/components/empty-state.js +4 -4
- package/dist/components/layout.d.ts.map +1 -1
- package/dist/components/layout.js +5 -2
- package/dist/components/overlay.d.ts +3 -1
- package/dist/components/overlay.d.ts.map +1 -1
- package/dist/components/overlay.js +5 -5
- package/dist/components/square-picker.d.ts.map +1 -1
- package/dist/components/square-picker.js +1 -1
- package/dist/components/stacked-bar.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/tree-select.js +2 -2
- package/dist/fonts.css +1 -1
- package/dist/kit.css +68 -2
- package/dist/patterns/app-shell.d.ts +20 -1
- package/dist/patterns/app-shell.d.ts.map +1 -1
- package/dist/patterns/app-shell.js +37 -3
- package/dist/patterns/settings-template.d.ts.map +1 -1
- package/dist/patterns/settings-template.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme.css +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,56 @@ 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.6.0
|
|
9
|
+
|
|
10
|
+
> Sections fold; the one you are in never does.
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`AppShell` section headers fold.** In the wide rail every section header is now a button:
|
|
15
|
+
click it and the section's entries slide shut; click again and they return. A customer with
|
|
16
|
+
eight sections asked for exactly this — the rail had become a wall. Three rules keep it honest:
|
|
17
|
+
the open page's section never folds (you can always read where you are), a route that lands
|
|
18
|
+
inside a folded section finds it open, and the narrow rail is untouched (nothing to fold when
|
|
19
|
+
there are no headers). New props: `collapsibleSections` (default `true`), `collapsedSections`
|
|
20
|
+
for a controlled rail, `onSectionToggle(section, open)`. Where the preference lives — browser,
|
|
21
|
+
account, device — is the product's call; the shell never writes storage.
|
|
22
|
+
|
|
23
|
+
### Breaking
|
|
24
|
+
|
|
25
|
+
- Section headers in the wide rail are `<button aria-expanded>` elements instead of `<p>`, and
|
|
26
|
+
each section's links now sit inside a `.tamga-rail-group-body` wrapper rather than directly
|
|
27
|
+
under `<nav>`. A selector written as `nav > .tamga-rail-link` or a test that read the header
|
|
28
|
+
as a paragraph needs updating; `data-nav` on every link is unchanged and is the supported hook.
|
|
29
|
+
Pass `collapsibleSections={false}` to keep plain headers (the wrapper stays either way).
|
|
30
|
+
|
|
31
|
+
## 0.5.9
|
|
32
|
+
|
|
33
|
+
> The hook lands on the root, in every branch.
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- **`data-*` reaches the root element in every render branch.** `ListRow` forwarded it only as a
|
|
38
|
+
link; as a button or a plain row it was dropped, and products had to wrap rows in an extra
|
|
39
|
+
`div` just to carry a selector. The same defect turned up in thirteen more components once the
|
|
40
|
+
gate started checking branches: `Dialog` (the hook sat on the title strip, not on the
|
|
41
|
+
`role="dialog"` element), `ConfirmDialog` (did not accept it at all), `SquarePicker`, `Kpi`,
|
|
42
|
+
`Badge`, `Tabs`, `TreeSelect` (every node carried the hook), `LineChart`, `StackedBarChart`,
|
|
43
|
+
`EmptyState` (the hook was on the `<h3>`), `Avatar` with a status mark, `AccountButton`,
|
|
44
|
+
`ThemeToggle` and `LocaleSwitcher`. A test or a product selector written against any of these
|
|
45
|
+
now finds the component, not one of its parts.
|
|
46
|
+
- **`SettingsTemplate` content column can shrink** (`min-w-0`). A wide table inside it used to
|
|
47
|
+
push the page sideways instead of scrolling inside the table.
|
|
48
|
+
- **`.tamga-segment` wraps on narrow screens.** The well keeps the control height on one line
|
|
49
|
+
(`min-height: var(--control)`) and grows when the options need a second row; the items carry
|
|
50
|
+
their own height so a single row still measures exactly `--control`.
|
|
51
|
+
|
|
52
|
+
### Gate
|
|
53
|
+
|
|
54
|
+
- `check-data-props` now has a second rule: a component that spreads `dataProps(rest)` must do
|
|
55
|
+
so on the first tag of every `return` — the component's own and its `if` branches. Accepting
|
|
56
|
+
the hook was never the hard part; forwarding it in every branch was.
|
|
57
|
+
|
|
8
58
|
## 0.5.8
|
|
9
59
|
|
|
10
60
|
> A ticked checkbox stays down.
|
|
@@ -32,7 +32,7 @@ export function Avatar({ name, size = 32, src, bare = false, look = "solid", let
|
|
|
32
32
|
if (status) {
|
|
33
33
|
const t = toneOf(status);
|
|
34
34
|
const mark = Math.max(8, Math.round(size * 0.3));
|
|
35
|
-
return (_jsxs("span", { className: "relative inline-flex shrink-0", children: [_jsx(Avatar, { name: name, size: size, src: src, bare: bare, look: look, letters: letters
|
|
35
|
+
return (_jsxs("span", { ...dataProps(rest), className: "relative inline-flex shrink-0", children: [_jsx(Avatar, { name: name, size: size, src: src, bare: bare, look: look, letters: letters }), _jsx("span", { className: "absolute rounded-[var(--radius-mark)]", style: {
|
|
36
36
|
right: -mark / 3,
|
|
37
37
|
bottom: -mark / 3,
|
|
38
38
|
width: mark,
|
package/dist/components/chart.js
CHANGED
|
@@ -32,7 +32,7 @@ export function LineChart({ series, labels, height = 200, formatValue = String,
|
|
|
32
32
|
/* Dört ızgara çizgisi: daha azı okumayı zorlaştırır, daha çoğu grafiği
|
|
33
33
|
kafese çevirir. */
|
|
34
34
|
const ticks = [0, 0.25, 0.5, 0.75, 1].map((f) => max * f);
|
|
35
|
-
return (_jsxs("figure", { className: cn("tamga-surface p-4", className), children: [_jsxs("div", {
|
|
35
|
+
return (_jsxs("figure", { ...dataProps(rest), className: cn("tamga-surface p-4", className), children: [_jsxs("div", { className: "flex gap-3", children: [_jsx("div", { className: "flex shrink-0 flex-col justify-between text-right font-mono text-caption text-ink-faint tabular-nums", style: { height }, "aria-hidden": true, children: [...ticks].reverse().map((t) => (_jsx("span", { children: formatValue(Math.round(t)) }, t))) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("span", { className: "relative block", style: { height }, children: [_jsxs("svg", { viewBox: `0 0 ${W} ${H}`, preserveAspectRatio: "none", style: { height, width: "100%" }, role: "img", "aria-label": ad, onMouseLeave: () => setHover(null), children: [ticks.map((t, i) => (_jsx("line", { x1: 0, x2: W, y1: y(t), y2: y(t), stroke: i === 0 ? "var(--color-line)" : "var(--color-div)", strokeWidth: 1, vectorEffect: "non-scaling-stroke" }, t))), series[0] && !series[0].dashed ? (_jsx("polygon", { points: `0,${H} ${series[0].values.map((v, i) => `${x(i)},${y(v)}`).join(" ")} ${W},${H}`, fill: "var(--color-accent-soft)", opacity: 0.35 })) : null, series.map((s, si) => {
|
|
36
36
|
const renk = seriRengi(s, si);
|
|
37
37
|
const d = s.values.map((v, i) => `${i === 0 ? "M" : "L"}${x(i)} ${y(v)}`).join(" ");
|
|
38
38
|
return (_jsx("path", { d: d, fill: "none", stroke: s.dashed ? "var(--color-ink-faint)" : renk, strokeWidth: s.dashed ? 2 : 3, strokeDasharray: s.dashed ? "6 5" : undefined, strokeLinejoin: "round", strokeLinecap: "round", vectorEffect: "non-scaling-stroke" }, s.name));
|
|
@@ -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;AAgChF;;;;;;;GAOG;AACH;sCACsC;AACtC,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE1D,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,OAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,UAA0B,EAC1B,IAAI,EAAE,UAAU,EAChB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD;;;;;;;;;;;;OAYG;IACH,MAAM,EACF;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACnC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC/B;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD;;;;;;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,GAAG,WAAW,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+
|
|
1
|
+
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -94,7 +94,7 @@ export function ThemeToggle({ labels, variant = "icon", preference, onPreference
|
|
|
94
94
|
if (!("light" in labels)) {
|
|
95
95
|
throw new Error('ThemeToggle variant="select" için labels {light, dark} olmalı');
|
|
96
96
|
}
|
|
97
|
-
return (_jsx(Select, { options: [labels.light, labels.dark], value: dark ? labels.dark : labels.light, onChange: (v) => {
|
|
97
|
+
return (_jsx(Select, { ...dataProps(rest), options: [labels.light, labels.dark], value: dark ? labels.dark : labels.light, onChange: (v) => {
|
|
98
98
|
const next = v === labels.dark;
|
|
99
99
|
if (next !== dark)
|
|
100
100
|
toggle();
|
|
@@ -109,7 +109,7 @@ export function ThemeToggle({ labels, variant = "icon", preference, onPreference
|
|
|
109
109
|
kök sınıfla birlikte anında doğru olanı gösteriyor, hidrasyon beklemeden.
|
|
110
110
|
Erişilebilir ad bunu yapamıyor (bir düğmenin tek bir adı olur), o yüzden o
|
|
111
111
|
duruma bağlı kalıyor — ve kontrollü kullanımda ürün doğru değeri veriyor. */
|
|
112
|
-
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" })] }));
|
|
112
|
+
return (_jsxs("button", { ...dataProps(rest), 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" })] }));
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
115
|
* Dil değiştirici · kit YÖNLENDİRME YAPMAZ, `onChange` yalnız seçilen dili
|
|
@@ -124,7 +124,7 @@ export function LocaleSwitcher({ locales, current, onChange, label, className, .
|
|
|
124
124
|
/* ÜÇ VE ÜZERİ DİLDE KİTİN KENDİ SEÇİMİ, tarayıcınınki DEĞİL · bir süre düz
|
|
125
125
|
bir `<select>` çiziliyordu: oku işletim sisteminin, açılan listesi
|
|
126
126
|
işletim sisteminin, ve kitin hiçbir kuralı orada geçmiyordu. */
|
|
127
|
-
return (_jsx(Select, { className: cn("w-auto min-w-40", className), "aria-label": label, placeholder: label, options: locales, value: current, onChange: onChange }));
|
|
127
|
+
return (_jsx(Select, { ...dataProps(rest), className: cn("w-auto min-w-40", className), "aria-label": label, placeholder: label, options: locales, value: current, onChange: onChange }));
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
130
130
|
* Kare marka karosu · görsel yoksa baş harf. `alt` bilerek boş: karo
|
|
@@ -145,10 +145,10 @@ export function AccountButton({ name, src, label, onClick, href, linkComponent:
|
|
|
145
145
|
const ic = (_jsx(Avatar, { name: name, src: src, size: 38, bare: true }));
|
|
146
146
|
const sinif = cn("tamga-account-btn", className);
|
|
147
147
|
if (href && Link) {
|
|
148
|
-
return (_jsx(Link, { href: href, "aria-label": label, className: sinif, children: ic }));
|
|
148
|
+
return (_jsx(Link, { ...dataProps(rest), href: href, "aria-label": label, className: sinif, children: ic }));
|
|
149
149
|
}
|
|
150
150
|
if (href) {
|
|
151
151
|
return (_jsx("a", { ...dataProps(rest), href: href, "aria-label": label, className: sinif, children: ic }));
|
|
152
152
|
}
|
|
153
|
-
return (_jsx("button", { type: "button", onClick: onClick, "aria-label": label, className: sinif, children: ic }));
|
|
153
|
+
return (_jsx("button", { ...dataProps(rest), type: "button", onClick: onClick, "aria-label": label, className: sinif, children: ic }));
|
|
154
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/components/display.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,OAAO,KAAK,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAA4B,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAK9C;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,MAAe,EACf,KAAa,EACb,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,KAAK,EAAE,SAAS,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IACjG;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAuCA;AAED;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,EAClB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,MAAa,EACb,KAAK,EACL,IAAa,EACb,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,aAAa,EAAE,IAAkB,EACjC,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0HAA0H;IAC1H,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACvB,sFAAsF;IACtF,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,uGAAuG;IACvG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,gJAAgJ;IAChJ,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAqHA;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAA;CAAE,+BAMpI;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,EACnB,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAmDA;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,EAClB,QAAQ,EACR,MAAc,EACd,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAEA;AAED;;;;;;GAMG;AACH;;;;;;;;;GASG;AACH,wBAAgB,GAAG,CAAC,EAClB,QAAQ,EACR,IAAgB,EAChB,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAkBA;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,GAAQ,EACR,IAAe,EACf,GAAW,EACX,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE;IACD,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+
|
|
1
|
+
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/components/display.tsx"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ export function Kpi({ label, value, unit, icon, note, delta, better = "up", char
|
|
|
36
36
|
? "positive"
|
|
37
37
|
: "danger";
|
|
38
38
|
const c = toneOf(tone);
|
|
39
|
-
const karo = icon ? (_jsx("span", {
|
|
39
|
+
const karo = icon ? (_jsx("span", { className: "tamga-kpi-tile", style: iconTone ? { background: toneOf(iconTone).bg, color: toneOf(iconTone).fg } : undefined, "aria-hidden": true, children: _jsx(Icon, { icon: icon, size: look === "detail" ? "sm" : "base", weight: "bold" }) })) : null;
|
|
40
40
|
/* DEĞER MONO DEĞİL DISPLAY YÜZÜNDE, ve ağırlığı en üst basamakta. Mono, bir
|
|
41
41
|
SÜTUNDA okunan sayılar için: orada rakam genişliğinin eşit olması hizayı
|
|
42
42
|
kuruyor. Bir KPI karosunda sütun yok, tek bir sayı var ve işi okunmak
|
|
@@ -47,12 +47,12 @@ export function Kpi({ label, value, unit, icon, note, delta, better = "up", char
|
|
|
47
47
|
const govde = look === "detail" ? (_jsxs(_Fragment, { children: [_jsxs("span", { className: "tamga-kpi-ust", children: [karo, label] }), _jsxs("span", { className: "tamga-kpi-orta", children: [_jsxs("span", { className: "flex items-end gap-2", children: [sayi, birim] }), chart ? _jsx("span", { className: "shrink-0", children: chart }) : null] }), note ? _jsx("span", { className: "text-caption text-ink-faint", children: note }) : null, degisim] })) : (_jsxs(_Fragment, { children: [karo, _jsxs("span", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [_jsx("span", { className: "tamga-kpi-etiket", children: label }), _jsxs("span", { className: "flex items-end gap-2", children: [sayi, birim, degisim ? _jsx("span", { className: "ml-auto", children: degisim }) : null] }), note ? _jsx("span", { className: "text-caption text-ink-faint", children: note }) : null, chart ? _jsx("span", { className: "mt-3 block", children: chart }) : null] })] }));
|
|
48
48
|
const sinif = cn("tamga-kpi", look === "detail" && "tamga-kpi-detay", (href || onClick) && "tamga-kpi-live", className);
|
|
49
49
|
if (href) {
|
|
50
|
-
return (_jsx(Link, { href: href, className: sinif, children: govde }));
|
|
50
|
+
return (_jsx(Link, { ...dataProps(rest), href: href, className: sinif, children: govde }));
|
|
51
51
|
}
|
|
52
52
|
if (onClick) {
|
|
53
|
-
return (_jsx("button", { type: "button", onClick: onClick, "aria-pressed": pressed, "data-pressed": pressed || undefined, className: sinif, children: govde }));
|
|
53
|
+
return (_jsx("button", { ...dataProps(rest), type: "button", onClick: onClick, "aria-pressed": pressed, "data-pressed": pressed || undefined, className: sinif, children: govde }));
|
|
54
54
|
}
|
|
55
|
-
return _jsx("div", { className: sinif, children: govde });
|
|
55
|
+
return _jsx("div", { ...dataProps(rest), className: sinif, children: govde });
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
58
|
* KPI karolarının ızgarası. Sütun sayısını KAP veriyor: karo 210 pikselin
|
|
@@ -130,13 +130,13 @@ export function Badge({ count, max = 99, tone = "danger", dot = false, label, cl
|
|
|
130
130
|
return _jsx(_Fragment, { children: children });
|
|
131
131
|
const c = toneOf(tone);
|
|
132
132
|
const shown = (count ?? 0) > max ? `${max}+` : String(count ?? 0);
|
|
133
|
-
const isaret = dot ? (_jsx("span", {
|
|
133
|
+
const isaret = dot ? (_jsx("span", { className: "tamga-count-dot", style: { background: c.mark }, role: "status", "aria-label": label })) : (_jsxs("span", { className: "tamga-count tabular-nums", style: { background: c.bg, color: c.fg, borderColor: c.fg }, children: [_jsx("span", { "aria-hidden": true, children: shown }), _jsxs("span", { className: "sr-only", children: [count, " ", label] })] }));
|
|
134
134
|
if (!children)
|
|
135
135
|
return isaret;
|
|
136
136
|
/* Rozet, üstüne oturduğu şeyin KARDEŞİ: çocuğu yapmak mümkün değil, çünkü
|
|
137
137
|
`children` herhangi bir eleman olabilir. Hover'da onunla birlikte gitmesini
|
|
138
138
|
`.tamga-count-yuva` sağlıyor (kit.css, düğmenin kaymalarıyla aynı). */
|
|
139
|
-
return (_jsxs("span", { className: cn("tamga-badge-wrap relative inline-flex", className), children: [children, _jsx("span", { className: "tamga-count-yuva", children: isaret })] }));
|
|
139
|
+
return (_jsxs("span", { ...dataProps(rest), className: cn("tamga-badge-wrap relative inline-flex", className), children: [children, _jsx("span", { className: "tamga-count-yuva", children: isaret })] }));
|
|
140
140
|
}
|
|
141
141
|
/**
|
|
142
142
|
* Adım göstergesi. `<ol>` kullanılıyor: adımlar SIRALI ve sıra bilgi taşıyor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../src/components/empty-state.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"empty-state.d.ts","sourceRoot":"","sources":["../../src/components/empty-state.tsx"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ export function EmptyNote({ art, icon, title, children, action, className, ...re
|
|
|
61
61
|
*/
|
|
62
62
|
export function EmptyState({ layout = "banner", art, icon, tone, kicker, title, children, action, note, says, steps, routes, routesLabel, size = 150, className, ...rest }) {
|
|
63
63
|
const figure = !art ? null : says !== undefined ? (_jsx(ArtSays, { art: art, size: size, children: says })) : (_jsx(ArtFigure, { art: art, size: size, float: true }));
|
|
64
|
-
const words = (_jsxs(_Fragment, { children: [kicker ? _jsx("p", { className: "tamga-kicker mb-2", children: kicker }) : null, _jsx("h3", {
|
|
64
|
+
const words = (_jsxs(_Fragment, { children: [kicker ? _jsx("p", { className: "tamga-kicker mb-2", children: kicker }) : null, _jsx("h3", { className: "font-display text-display-sm font-extrabold tracking-tight text-ink", children: title }), children ? (_jsx("p", { className: "mt-3 max-w-[var(--measure)] text-body leading-relaxed text-ink-soft", children: children })) : null, note ? (_jsx("p", { className: "mt-2 max-w-[var(--measure)] text-small leading-relaxed text-ink-faint", children: note })) : null] }));
|
|
65
65
|
if (layout === "plain") {
|
|
66
66
|
/* KESİK KENARLI KART: kitin her yerinde kesik çizgi "henüz gerçek içerik
|
|
67
67
|
değil" demek, ve boş bir bölüm tam olarak o. Dolu hâlinde aynı yerde
|
|
@@ -69,13 +69,13 @@ export function EmptyState({ layout = "banner", art, icon, tone, kicker, title,
|
|
|
69
69
|
return (_jsxs("div", { ...dataProps(rest), className: cn("tamga-empty-plain", className), children: [icon ? (_jsx("span", { "aria-hidden": true, className: "tamga-empty-tile", style: tone ? { background: toneOf(tone).bg, color: toneOf(tone).fg } : undefined, children: _jsx(Icon, { icon: icon, size: "xl", weight: "bold" }) })) : null, words, action ? _jsx("div", { className: "mt-2 flex flex-wrap justify-center gap-3", children: action }) : null] }));
|
|
70
70
|
}
|
|
71
71
|
if (layout === "banner") {
|
|
72
|
-
return (_jsxs("div", { className: cn("flex flex-col overflow-hidden", className), children: [_jsxs("div", { className: "flex flex-1 flex-col sm:flex-row sm:items-stretch", children: [_jsx("div", { className: "tamga-art-well tamga-art-stage tamga-art-floor sm:border-b-0", children: figure }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-7 px-6 py-7 sm:flex-row sm:items-center sm:justify-between sm:gap-10 sm:px-9 sm:py-9", children: [_jsx("div", { className: "min-w-0", children: words }), action ? (_jsx("div", { className: "flex shrink-0 flex-wrap items-center gap-3", children: action })) : null] })] }), steps?.length ? (_jsx("ol", { className: "tamga-art-steps tamga-art-well", children: steps.map((step, i) => (_jsxs("li", { className: "tamga-art-step", children: [_jsx("span", { className: "tamga-art-step-n", children: String(i + 1).padStart(2, "0") }), _jsx("span", { className: "text-small leading-relaxed text-ink-soft", children: step })] }, step))) })) : null] }));
|
|
72
|
+
return (_jsxs("div", { ...dataProps(rest), className: cn("flex flex-col overflow-hidden", className), children: [_jsxs("div", { className: "flex flex-1 flex-col sm:flex-row sm:items-stretch", children: [_jsx("div", { className: "tamga-art-well tamga-art-stage tamga-art-floor sm:border-b-0", children: figure }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-7 px-6 py-7 sm:flex-row sm:items-center sm:justify-between sm:gap-10 sm:px-9 sm:py-9", children: [_jsx("div", { className: "min-w-0", children: words }), action ? (_jsx("div", { className: "flex shrink-0 flex-wrap items-center gap-3", children: action })) : null] })] }), steps?.length ? (_jsx("ol", { className: "tamga-art-steps tamga-art-well", children: steps.map((step, i) => (_jsxs("li", { className: "tamga-art-step", children: [_jsx("span", { className: "tamga-art-step-n", children: String(i + 1).padStart(2, "0") }), _jsx("span", { className: "text-small leading-relaxed text-ink-soft", children: step })] }, step))) })) : null] }));
|
|
73
73
|
}
|
|
74
74
|
if (layout === "ticket") {
|
|
75
|
-
return (_jsx("div", { className: cn("flex justify-center px-6 py-10", className), children: _jsxs("div", { className: "tamga-card w-full max-w-90 overflow-hidden", children: [_jsx("div", { className: "tamga-art-well tamga-art-band", children: figure }), _jsx("div", { className: "px-6 pt-6 pb-7 text-center [&_p]:mx-auto", children: words }), _jsx("div", { className: "tamga-art-divider" }), action ? (_jsx("div", { className: "flex flex-col gap-2 p-4 [&>*]:w-full [&>*]:justify-center", children: action })) : null] }) }));
|
|
75
|
+
return (_jsx("div", { ...dataProps(rest), className: cn("flex justify-center px-6 py-10", className), children: _jsxs("div", { className: "tamga-card w-full max-w-90 overflow-hidden", children: [_jsx("div", { className: "tamga-art-well tamga-art-band", children: figure }), _jsx("div", { className: "px-6 pt-6 pb-7 text-center [&_p]:mx-auto", children: words }), _jsx("div", { className: "tamga-art-divider" }), action ? (_jsx("div", { className: "flex flex-col gap-2 p-4 [&>*]:w-full [&>*]:justify-center", children: action })) : null] }) }));
|
|
76
76
|
}
|
|
77
77
|
/* routes — three columns on one line: the figure, the words, the ways in */
|
|
78
|
-
return (_jsxs("div", { className: cn("flex flex-col gap-8 px-6 py-9 sm:flex-row sm:items-center sm:gap-10 sm:px-10 sm:py-10", className), children: [_jsx("div", { className: "flex shrink-0 items-end", children: figure }), _jsxs("div", { className: "min-w-0 flex-1", children: [words, action ? _jsx("div", { className: "mt-6 flex flex-wrap gap-3", children: action }) : null] }), _jsxs("div", { className: "flex w-full shrink-0 flex-col gap-2.5 sm:max-w-76", children: [routesLabel ? _jsx("p", { className: "tamga-kicker mb-0.5", children: routesLabel }) : null, routes?.map((r) => (_jsxs("button", { type: "button", onClick: r.onClick, className: "tamga-art-route", children: [_jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block text-body font-medium text-ink", children: r.label }), r.note ? _jsx("span", { className: "block text-small text-ink-faint", children: r.note }) : null] }), _jsx(Icon, { icon: CaretRight, size: "sm" })] }, r.label)))] })] }));
|
|
78
|
+
return (_jsxs("div", { ...dataProps(rest), className: cn("flex flex-col gap-8 px-6 py-9 sm:flex-row sm:items-center sm:gap-10 sm:px-10 sm:py-10", className), children: [_jsx("div", { className: "flex shrink-0 items-end", children: figure }), _jsxs("div", { className: "min-w-0 flex-1", children: [words, action ? _jsx("div", { className: "mt-6 flex flex-wrap gap-3", children: action }) : null] }), _jsxs("div", { className: "flex w-full shrink-0 flex-col gap-2.5 sm:max-w-76", children: [routesLabel ? _jsx("p", { className: "tamga-kicker mb-0.5", children: routesLabel }) : null, routes?.map((r) => (_jsxs("button", { type: "button", onClick: r.onClick, className: "tamga-art-route", children: [_jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block text-body font-medium text-ink", children: r.label }), r.note ? _jsx("span", { className: "block text-small text-ink-faint", children: r.note }) : null] }), _jsx(Icon, { icon: CaretRight, size: "sm" })] }, r.label)))] })] }));
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
81
81
|
* A whole body with nothing in it, and no box drawn around the nothing: no
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/components/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD;;;;GAIG;AAEH;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EACtB,MAAc,EACd,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,+BAMpD;AAED;;;;;;GAMG;AACH;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAS,EACT,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BAUlD;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,EACnB,OAAO,EACP,CAAC,EACD,CAAC,EACD,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,yFAAyF;IACzF,OAAO,EAAE,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC,EAAE,SAAS,CAAC;IACb,CAAC,EAAE,SAAS,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAWA;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAa,EACb,IAAI,EACJ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/components/layout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -54,9 +54,12 @@ export function ListRow({ size = "base", href, onClick, className, children, ...
|
|
|
54
54
|
return (_jsx("a", { ...dataProps(rest), href: href, className: cls, children: children }));
|
|
55
55
|
}
|
|
56
56
|
if (onClick) {
|
|
57
|
-
return (_jsx("button", { type: "button", onClick: onClick, className: cn(cls, "w-full text-left"), children: children }));
|
|
57
|
+
return (_jsx("button", { ...dataProps(rest), type: "button", onClick: onClick, className: cn(cls, "w-full text-left"), children: children }));
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
/* Kanca ÜÇ DALDA DA KÖKTE. Bir süre yalnız `<a>` dalında yayılıyordu; panel
|
|
60
|
+
düğme ve düz satırın etrafına kancayı taşıyan bir `div` sarmak zorunda
|
|
61
|
+
kalmıştı. `check-data-props` artık her `return` dalını sınıyor. */
|
|
62
|
+
return _jsx("div", { ...dataProps(rest), className: cls, children: children });
|
|
60
63
|
}
|
|
61
64
|
/**
|
|
62
65
|
* İçinde bir panel AÇILAN tablo hücresi. Tek işi kırpmayı kapatmak, ve
|
|
@@ -206,7 +206,7 @@ export type DialogSize = keyof typeof DIALOG_GENISLIK;
|
|
|
206
206
|
*
|
|
207
207
|
* Gerekçe: docs/gerekce/07-katman-ve-diyalog.md
|
|
208
208
|
*/
|
|
209
|
-
export declare function ConfirmDialog({ open, onClose, onConfirm, title, children, confirmLabel, cancelLabel, closeLabel, tone, busy, confirmDisabled, }: {
|
|
209
|
+
export declare function ConfirmDialog({ open, onClose, onConfirm, title, children, confirmLabel, cancelLabel, closeLabel, tone, busy, confirmDisabled, ...rest }: {
|
|
210
210
|
open: boolean;
|
|
211
211
|
onClose: () => void;
|
|
212
212
|
onConfirm: () => void;
|
|
@@ -229,6 +229,8 @@ export declare function ConfirmDialog({ open, onClose, onConfirm, title, childre
|
|
|
229
229
|
* sürerken: iki düğme de kilitleniyor, çift gönderim olmuyor.
|
|
230
230
|
*/
|
|
231
231
|
busy?: boolean;
|
|
232
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
233
|
+
[k: `data-${string}`]: unknown;
|
|
232
234
|
/**
|
|
233
235
|
* Disables the confirm button: the dialog OPENS but the action cannot be taken. WHY IT IS
|
|
234
236
|
* NEEDED. Some destructive actions have a precondition ("a customer with orders cannot be
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/components/overlay.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/components/overlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -270,7 +270,7 @@ const DIALOG_GENISLIK = {
|
|
|
270
270
|
* Kipli kabuk. Hook'lar erken bir `return`un arkasında çalışamaz, bu yüzden
|
|
271
271
|
* tuzak burada duruyor ve alttaki yüzey düz bir bileşen kalıyor.
|
|
272
272
|
*/
|
|
273
|
-
function DialogShell({ open, onClose, loading, label, size = "md", children, }) {
|
|
273
|
+
function DialogShell({ open, onClose, loading, label, size = "md", children, ...rest }) {
|
|
274
274
|
const panel = useFocusTrap(open);
|
|
275
275
|
/* Aynı kaçak `Dialog`da da vardı: odak hapsediliyor ama arkadaki sayfa
|
|
276
276
|
kayıyordu. Kullanıcı etkileşemediği bir şeyi kaydırabiliyordu. */
|
|
@@ -288,7 +288,7 @@ function DialogShell({ open, onClose, loading, label, size = "md", children, })
|
|
|
288
288
|
pikseldir. Panel de yüzeyi kaplıyor ve dikey bir akış oluyor, ki gövde
|
|
289
289
|
kendi içinde kaysın ve başlık ile ayak yerinde kalsın. */
|
|
290
290
|
const tam = size === "full";
|
|
291
|
-
return (_jsxs("div", { className: cn("fixed inset-0 z-50 flex items-center justify-center", tam ? "p-0" : "p-6"), role: "dialog", "aria-modal": true, "aria-label": label, children: [_jsx("div", { className: "tamga-scrim tamga-scrim-in absolute inset-0", "aria-hidden": true, onClick: onClose }), _jsx("div", { ref: panel,
|
|
291
|
+
return (_jsxs("div", { ...dataProps(rest), className: cn("fixed inset-0 z-50 flex items-center justify-center", tam ? "p-0" : "p-6"), role: "dialog", "aria-modal": true, "aria-label": label, children: [_jsx("div", { className: "tamga-scrim tamga-scrim-in absolute inset-0", "aria-hidden": true, onClick: onClose }), _jsx("div", { ref: panel,
|
|
292
292
|
/* PANEL EKRANDAN TAŞAMAZ: `max-h-full` + `flex-col` + `overflow-hidden`.
|
|
293
293
|
Yoksa uzun içerik ortalanıp başlıkla kapatma düğmesini kırpıyor.
|
|
294
294
|
Gerekçe: docs/gerekce/07-katman-ve-diyalog.md */
|
|
@@ -301,9 +301,9 @@ function DialogShell({ open, onClose, loading, label, size = "md", children, })
|
|
|
301
301
|
*
|
|
302
302
|
* Gerekçe: docs/gerekce/07-katman-ve-diyalog.md
|
|
303
303
|
*/
|
|
304
|
-
export function ConfirmDialog({ open, onClose, onConfirm, title, children, confirmLabel, cancelLabel, closeLabel, tone = "danger", busy = false, confirmDisabled = false, }) {
|
|
305
|
-
return (_jsx(Dialog, { open: open, onClose: onClose, title: title, closeLabel: closeLabel, footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", onClick: onClose, disabled: busy, "data-autofocus": true, children: cancelLabel }), _jsx(Button, { variant: tone, onClick: onConfirm, disabled: busy || confirmDisabled, children: confirmLabel })] }), children: children }));
|
|
304
|
+
export function ConfirmDialog({ open, onClose, onConfirm, title, children, confirmLabel, cancelLabel, closeLabel, tone = "danger", busy = false, confirmDisabled = false, ...rest }) {
|
|
305
|
+
return (_jsx(Dialog, { ...dataProps(rest), open: open, onClose: onClose, title: title, closeLabel: closeLabel, footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", onClick: onClose, disabled: busy, "data-autofocus": true, children: cancelLabel }), _jsx(Button, { variant: tone, onClick: onConfirm, disabled: busy || confirmDisabled, children: confirmLabel })] }), children: children }));
|
|
306
306
|
}
|
|
307
307
|
export function Dialog({ open, onClose, title, children, footer, loading = false, closeLabel, size = "md", ...rest }) {
|
|
308
|
-
return (_jsxs(DialogShell, { open: open, onClose: onClose, loading: loading, label: title, size: size, children: [_jsxs("div", {
|
|
308
|
+
return (_jsxs(DialogShell, { ...dataProps(rest), open: open, onClose: onClose, loading: loading, label: title, size: size, children: [_jsxs("div", { className: "tamga-head tamga-gutter tamga-section shrink-0", 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 text-body leading-relaxed", children: loading ? _jsx(SkeletonPanel, { lines: 4 }) : children }), footer ? (_jsx("div", { className: "tamga-gutter flex shrink-0 justify-end gap-2 border-t border-line py-4", children: footer })) : null] }));
|
|
309
309
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"square-picker.d.ts","sourceRoot":"","sources":["../../src/components/square-picker.tsx"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,OAAa,EACb,MAAM,EACN,GAAG,IAAI,EACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+
|
|
1
|
+
{"version":3,"file":"square-picker.d.ts","sourceRoot":"","sources":["../../src/components/square-picker.tsx"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,OAAa,EACb,MAAM,EACN,GAAG,IAAI,EACR,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAoHA"}
|
|
@@ -60,7 +60,7 @@ export function SquarePicker({ open, source, onClose, onPick, maxEdge = 256, lab
|
|
|
60
60
|
onPick(await cropSquare(source, { x, y, size: oran }, maxEdge));
|
|
61
61
|
onClose();
|
|
62
62
|
}
|
|
63
|
-
return (_jsx(Dialog, { open: open, onClose: onClose, title: labels.title, closeLabel: labels.close, footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", onClick: onClose, children: labels.cancel }), _jsx(Button, { variant: "primary", type: "button", onClick: onayla, children: labels.confirm })] }), children: _jsxs("div", {
|
|
63
|
+
return (_jsx(Dialog, { ...dataProps(rest), open: open, onClose: onClose, title: labels.title, closeLabel: labels.close, footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", onClick: onClose, children: labels.cancel }), _jsx(Button, { variant: "primary", type: "button", onClick: onayla, children: labels.confirm })] }), children: _jsxs("div", { className: "flex flex-col gap-4", children: [_jsx(Label, { children: labels.hint }), _jsx("div", { className: "rounded-[var(--radius-card)] border border-[var(--color-edge)] bg-[var(--color-shell)] p-4", children: _jsxs("div", { ref: sahne, onPointerDown: (e) => {
|
|
64
64
|
setSuruyor(true);
|
|
65
65
|
e.currentTarget.setPointerCapture(e.pointerId);
|
|
66
66
|
}, onPointerMove: tasi, onPointerUp: () => setSuruyor(false), className: "relative cursor-crosshair touch-none select-none overflow-hidden", children: [_jsx("img", { src: source, alt: "", className: "pointer-events-none block w-full", draggable: false }), _jsx("span", { "aria-hidden": true, className: "pointer-events-none absolute border-2 border-[var(--color-accent-line)]", style: {
|
|
@@ -18,7 +18,7 @@ export function StackedBarChart({ series, labels, height = 260, formatValue = St
|
|
|
18
18
|
/* Dört ızgara çizgisi: daha fazlası okumayı kolaylaştırmıyor, zemini
|
|
19
19
|
kirletiyor. */
|
|
20
20
|
const cizgiler = [0, 0.25, 0.5, 0.75, 1].map((o) => enBuyuk * o);
|
|
21
|
-
return (_jsxs("figure", { className: cn("flex flex-col", className), children: [_jsxs("div", {
|
|
21
|
+
return (_jsxs("figure", { ...dataProps(rest), className: cn("flex flex-col", className), children: [_jsxs("div", { className: "flex gap-3", style: { height }, children: [_jsx("div", { className: "flex shrink-0 flex-col justify-between py-1 text-right text-micro tabular-nums text-ink-faint", children: [...cizgiler].reverse().map((v) => (_jsx("span", { children: formatValue(v) }, v))) }), _jsxs("div", { className: "relative min-w-0 flex-1", onMouseLeave: () => setUzerinde(null), children: [cizgiler.map((v, i) => (_jsx("span", { "aria-hidden": true, className: "absolute inset-x-0 h-px bg-[var(--color-line)]", style: { bottom: `${(i / (cizgiler.length - 1)) * 100}%` } }, v))), _jsx("div", { className: "absolute inset-0 flex items-end gap-1", children: labels.map((etiket, i) => {
|
|
22
22
|
const toplam = toplamlar[i] ?? 0;
|
|
23
23
|
const secili = uzerinde === i;
|
|
24
24
|
return (_jsxs("div", { className: "flex h-full min-w-0 flex-1 cursor-default flex-col justify-end", onMouseEnter: () => setUzerinde(i), children: [[...series].reverse().map((s, ri) => {
|
package/dist/components/tabs.js
CHANGED
|
@@ -39,7 +39,7 @@ export function Tabs({ items, value, onChange, label, look = "line", scroll = fa
|
|
|
39
39
|
if (bagliMi) {
|
|
40
40
|
return (_jsx("nav", { ...dataProps(rest), "aria-label": label, className: kap, children: items.map(({ value: v, label: etiket, icon, href, disabled, count, ...rest }) => disabled ? (_jsx("span", { ...rest, "aria-disabled": "true", className: sekmeSinifi, "data-disabled": "true", children: govde(etiket, icon, count) }, v)) : (_jsx(A, { ...rest, href: href, className: sekmeSinifi, "data-active": value === v, "aria-current": value === v ? "page" : undefined, children: govde(etiket, icon, count) }, v))) }));
|
|
41
41
|
}
|
|
42
|
-
return (_jsx("div", { role: "tablist", "aria-label": label, className: kap, onKeyDown: oklar, children: items.map(({ value: v, label: etiket, icon, href: _href, disabled, count, ...rest }) => (_jsx("button", { ...rest, type: "button", role: "tab", "data-tab": v, "aria-selected": value === v,
|
|
42
|
+
return (_jsx("div", { ...dataProps(rest), role: "tablist", "aria-label": label, className: kap, onKeyDown: oklar, children: items.map(({ value: v, label: etiket, icon, href: _href, disabled, count, ...rest }) => (_jsx("button", { ...rest, type: "button", role: "tab", "data-tab": v, "aria-selected": value === v,
|
|
43
43
|
/* Şeritte TEK durak var: seçili sekme. Öteki sekmelere oklarla
|
|
44
44
|
gidiliyor, Tab tuşu şeridi bir bütün olarak geçiyor. */
|
|
45
45
|
tabIndex: value === v ? 0 : -1, disabled: disabled, className: sekmeSinifi, "data-active": value === v, "data-disabled": disabled || undefined, onClick: () => onChange?.(v), children: govde(etiket, icon, count) }, v))) }));
|
|
@@ -54,7 +54,7 @@ export function TreeSelect({ nodes, value, onChange, labels, searchable = true,
|
|
|
54
54
|
const secilenAlt = altlar.filter((id) => secili.has(id)).length;
|
|
55
55
|
const isaretli = altlar.length > 0 ? secilenAlt === altlar.length : secili.has(node.id);
|
|
56
56
|
const kismi = altlar.length > 0 && secilenAlt > 0 && secilenAlt < altlar.length;
|
|
57
|
-
return (_jsxs("li", {
|
|
57
|
+
return (_jsxs("li", { role: "none", children: [_jsxs("div", { className: "flex items-center gap-1.5 rounded-(--radius-mark) py-1 hover:bg-[var(--color-hover)]", style: { paddingLeft: `${derinlik * 20}px` }, children: [cocuklar.length > 0 ? (_jsx("button", { type: "button", className: "tamga-mini-btn size-5 shrink-0", "aria-label": acik ? labels.collapse : labels.expand, "aria-expanded": acik, onClick: () => {
|
|
58
58
|
const next = new Set(kapali);
|
|
59
59
|
if (acik)
|
|
60
60
|
next.add(node.id);
|
|
@@ -63,5 +63,5 @@ export function TreeSelect({ nodes, value, onChange, labels, searchable = true,
|
|
|
63
63
|
setKapali(next);
|
|
64
64
|
}, children: _jsx(Icon, { icon: acik ? CaretDown : CaretRight, size: "xs" }) })) : (_jsx("span", { className: "size-5 shrink-0", "aria-hidden": true })), _jsx(Checkbox, { className: "min-w-0 flex-1", checked: isaretli, indeterminate: kismi, onChange: (v) => cevir(node, v), label: _jsx("span", { className: cn("truncate", isaretli || kismi ? "text-ink" : "text-ink-soft"), children: node.label }) })] }), acik && cocuklar.length > 0 && (_jsx("ul", { role: "group", children: cocuklar.map((c) => (_jsx(Dal, { node: c, derinlik: derinlik + 1 }, c.id))) }))] }));
|
|
65
65
|
}
|
|
66
|
-
return (_jsxs("div", { className: cn("flex flex-col gap-2", className), children: [searchable && (_jsxs("span", { className: "relative flex items-center", children: [_jsx(Icon, { icon: Search, size: "xs", "aria-hidden": true, className: "pointer-events-none absolute left-2.5 text-ink-faint" }), _jsx("input", { type: "search", className: "tamga-input w-full", "data-leading": "true", placeholder: labels.search, value: q, onChange: (e) => setQ(e.target.value) })] })), _jsx("div", { className: "overflow-y-auto p-1", style: { maxHeight: height }, children: gorunen.length === 0 ? (_jsx("p", { className: "py-6 text-center text-ink-faint", children: labels.empty })) : (_jsx("ul", { role: "tree", className: "flex flex-col", children: gorunen.map((n) => (_jsx(Dal, { node: n, derinlik: 0 }, n.id))) })) })] }));
|
|
66
|
+
return (_jsxs("div", { ...dataProps(rest), className: cn("flex flex-col gap-2", className), children: [searchable && (_jsxs("span", { className: "relative flex items-center", children: [_jsx(Icon, { icon: Search, size: "xs", "aria-hidden": true, className: "pointer-events-none absolute left-2.5 text-ink-faint" }), _jsx("input", { type: "search", className: "tamga-input w-full", "data-leading": "true", placeholder: labels.search, value: q, onChange: (e) => setQ(e.target.value) })] })), _jsx("div", { className: "overflow-y-auto p-1", style: { maxHeight: height }, children: gorunen.length === 0 ? (_jsx("p", { className: "py-6 text-center text-ink-faint", children: labels.empty })) : (_jsx("ul", { role: "tree", className: "flex flex-col", children: gorunen.map((n) => (_jsx(Dal, { node: n, derinlik: 0 }, n.id))) })) })] }));
|
|
67
67
|
}
|
package/dist/fonts.css
CHANGED
package/dist/kit.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! tamga-ui 0.
|
|
1
|
+
/*! tamga-ui 0.6.0 · MIT · https://tamga.org.tr */
|
|
2
2
|
:root {
|
|
3
3
|
|
|
4
4
|
--overlay-gap: 8px;
|
|
@@ -380,6 +380,69 @@
|
|
|
380
380
|
display: none;
|
|
381
381
|
}
|
|
382
382
|
|
|
383
|
+
.tamga-rail-section {
|
|
384
|
+
align-items: center;
|
|
385
|
+
background: transparent;
|
|
386
|
+
border: 0;
|
|
387
|
+
border-radius: var(--radius-ctl);
|
|
388
|
+
color: var(--color-ink-faint);
|
|
389
|
+
cursor: pointer;
|
|
390
|
+
display: flex;
|
|
391
|
+
font: inherit;
|
|
392
|
+
font-size: var(--text-caption);
|
|
393
|
+
font-weight: 700;
|
|
394
|
+
gap: 6px;
|
|
395
|
+
letter-spacing: var(--tracking-label);
|
|
396
|
+
padding: 4px 10px;
|
|
397
|
+
text-align: left;
|
|
398
|
+
text-transform: uppercase;
|
|
399
|
+
transition: background var(--duration-press) var(--ease-standard), color var(--duration-press) var(--ease-standard);
|
|
400
|
+
width: 100%;
|
|
401
|
+
}
|
|
402
|
+
.tamga-rail-section:hover {
|
|
403
|
+
background: var(--color-hover);
|
|
404
|
+
color: var(--color-ink);
|
|
405
|
+
}
|
|
406
|
+
.tamga-rail-section[data-locked="true"] {
|
|
407
|
+
cursor: default;
|
|
408
|
+
}
|
|
409
|
+
.tamga-rail-section[data-locked="true"]:hover {
|
|
410
|
+
background: transparent;
|
|
411
|
+
color: var(--color-ink-faint);
|
|
412
|
+
}
|
|
413
|
+
.tamga-rail-section-caret {
|
|
414
|
+
margin-left: auto;
|
|
415
|
+
transition: transform var(--duration-press) var(--ease-standard), opacity var(--duration-press) var(--ease-standard);
|
|
416
|
+
}
|
|
417
|
+
.tamga-rail-section[aria-expanded="false"] .tamga-rail-section-caret {
|
|
418
|
+
transform: rotate(-90deg);
|
|
419
|
+
}
|
|
420
|
+
.tamga-rail-section[data-locked="true"] .tamga-rail-section-caret {
|
|
421
|
+
opacity: 0.35;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
.tamga-rail-group-body {
|
|
425
|
+
display: grid;
|
|
426
|
+
grid-template-rows: 1fr;
|
|
427
|
+
transition: grid-template-rows var(--duration-press) var(--ease-standard);
|
|
428
|
+
}
|
|
429
|
+
.tamga-rail-group-body > div {
|
|
430
|
+
display: flex;
|
|
431
|
+
flex-direction: column;
|
|
432
|
+
gap: 8px;
|
|
433
|
+
min-height: 0;
|
|
434
|
+
overflow: hidden;
|
|
435
|
+
}
|
|
436
|
+
.tamga-rail-group-body[data-open="false"] {
|
|
437
|
+
grid-template-rows: 0fr;
|
|
438
|
+
}
|
|
439
|
+
@media (prefers-reduced-motion: reduce) {
|
|
440
|
+
.tamga-rail-group-body,
|
|
441
|
+
.tamga-rail-section-caret {
|
|
442
|
+
transition: none;
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
383
446
|
.tamga-rail-link {
|
|
384
447
|
position: relative;
|
|
385
448
|
display: flex;
|
|
@@ -2063,7 +2126,9 @@
|
|
|
2063
2126
|
.tamga-segment {
|
|
2064
2127
|
display: inline-flex;
|
|
2065
2128
|
|
|
2066
|
-
|
|
2129
|
+
flex-wrap: wrap;
|
|
2130
|
+
|
|
2131
|
+
min-height: var(--control);
|
|
2067
2132
|
align-items: stretch;
|
|
2068
2133
|
gap: 3px;
|
|
2069
2134
|
padding: 3px;
|
|
@@ -2079,6 +2144,7 @@
|
|
|
2079
2144
|
align-items: center;
|
|
2080
2145
|
|
|
2081
2146
|
padding: 0 14px;
|
|
2147
|
+
min-height: calc(var(--control) - 8px);
|
|
2082
2148
|
|
|
2083
2149
|
gap: 6px;
|
|
2084
2150
|
|
|
@@ -79,11 +79,30 @@ export type AppShellProps = {
|
|
|
79
79
|
*/
|
|
80
80
|
mainClassName?: string;
|
|
81
81
|
linkComponent?: LinkComponent;
|
|
82
|
+
/**
|
|
83
|
+
* Section headers fold. On, each header in the wide rail is a button that hides its entries; the
|
|
84
|
+
* open page's section never folds, and a route landing inside a folded section finds it open.
|
|
85
|
+
* Off, headers are plain labels, the pre-0.6 rail. TR: Bölüm başlıkları katlanır. Açıkken geniş
|
|
86
|
+
* raydaki her başlık girişlerini gizleyen bir düğme; açık sayfanın bölümü hiç katlanmaz, kapalı
|
|
87
|
+
* bir bölüme düşen rota onu açık bulur. Kapalıyken başlıklar düz etiket, 0.6 öncesi ray.
|
|
88
|
+
*/
|
|
89
|
+
collapsibleSections?: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* The folded sections, by name. Given, the shell is controlled: a click only reports through
|
|
92
|
+
* `onSectionToggle`, and the product decides. Absent, the shell keeps the state itself and forgets
|
|
93
|
+
* it on reload · where a preference lives (browser, account, device) is the product's call.
|
|
94
|
+
* TR: Kapalı bölümler, adıyla. Verilirse kabuk kontrollü: tık yalnız `onSectionToggle` ile haber
|
|
95
|
+
* verir, kararı ürün verir. Verilmezse kabuk durumu kendi tutar ve yenilemede unutur · tercihin
|
|
96
|
+
* nerede yaşadığı (tarayıcı, hesap, cihaz) ürünün kararı.
|
|
97
|
+
*/
|
|
98
|
+
collapsedSections?: readonly string[];
|
|
99
|
+
/** Fires with the section name and whether it is now open. TR: Bölüm adı ve artık açık olup olmadığıyla ateşlenir. */
|
|
100
|
+
onSectionToggle?: (section: string, open: boolean) => void;
|
|
82
101
|
labels: {
|
|
83
102
|
home: string;
|
|
84
103
|
primaryNav: string;
|
|
85
104
|
};
|
|
86
105
|
children: ReactNode;
|
|
87
106
|
};
|
|
88
|
-
export declare function AppShell({ brand, nav, activePath, rail, topbar, railFooter, mainClassName, linkComponent: Link, labels, children, }: AppShellProps): import("react").JSX.Element;
|
|
107
|
+
export declare function AppShell({ brand, nav, activePath, rail, topbar, railFooter, mainClassName, linkComponent: Link, collapsibleSections, collapsedSections, onSectionToggle, labels, children, }: AppShellProps): import("react").JSX.Element;
|
|
89
108
|
//# sourceMappingURL=app-shell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-shell.d.ts","sourceRoot":"","sources":["../../src/patterns/app-shell.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"app-shell.d.ts","sourceRoot":"","sources":["../../src/patterns/app-shell.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAI7C,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;GAKG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACrB;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,wKAAwK;IACxK,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,wJAAwJ;IACxJ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,EAAE,SAAS,QAAQ,EAAE,CAAC;IACzB,mGAAmG;IACnG,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,uIAAuI;IACvI,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,sHAAsH;IACtH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3D,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,GAAG,EACH,UAAU,EACV,IAAe,EACf,MAAM,EACN,UAAU,EACV,aAAa,EACb,aAAa,EAAE,IAAgB,EAC/B,mBAA0B,EAC1B,iBAAiB,EACjB,eAAe,EACf,MAAM,EACN,QAAQ,GACT,EAAE,aAAa,+BA+Kf"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Fragment } from "react";
|
|
3
|
+
import { Fragment, useId, useState } from "react";
|
|
4
4
|
import { Icon } from "../components/icon.js";
|
|
5
|
+
import { CaretDown } from "../components/icons.js";
|
|
5
6
|
import { RailLink } from "../components/rail-link.js";
|
|
6
7
|
import { cn } from "../lib/cn.js";
|
|
7
8
|
import { PlainLink } from "./shared.js";
|
|
8
|
-
export function AppShell({ brand, nav, activePath, rail = "narrow", topbar, railFooter, mainClassName, linkComponent: Link = PlainLink, labels, children, }) {
|
|
9
|
+
export function AppShell({ brand, nav, activePath, rail = "narrow", topbar, railFooter, mainClassName, linkComponent: Link = PlainLink, collapsibleSections = true, collapsedSections, onSectionToggle, labels, children, }) {
|
|
9
10
|
/* Bir giriş kendi alt ağacına sahip, ve EN UZUN EŞLEŞEN KAZANIR: kökün `/`
|
|
10
11
|
olmadığı bir panelde kök giriş altındaki her rotayı yutuyordu.
|
|
11
12
|
Gerekçe: docs/gerekce/08-blok-ve-sablon.md */
|
|
@@ -16,5 +17,38 @@ export function AppShell({ brand, nav, activePath, rail = "narrow", topbar, rail
|
|
|
16
17
|
/* ADRESİ OLMAYAN GİRİŞ ANAHTARIYLA EŞLEŞİYOR: masaüstü kabuğunda ekran bir durum, yol değil. */
|
|
17
18
|
const isCurrent = (entry) => entry.href ? entry.href === enOzel : entry.key === activePath;
|
|
18
19
|
const wide = rail === "wide";
|
|
19
|
-
|
|
20
|
+
/* KATLAMA. Kapalı liste ya üründen gelir (kontrollü) ya da burada tutulur.
|
|
21
|
+
AÇIK SAYFANIN BÖLÜMÜ HEP AÇIK: "neredeyim" raydan okunmalı · kapalı bir
|
|
22
|
+
bölüme yönlendirmeyle düşen kullanıcı da onu açık bulur, listeyi
|
|
23
|
+
değiştirmeden. Dar rayda başlık yok, dolayısıyla katlanacak şey de yok. */
|
|
24
|
+
const [icKapali, setIcKapali] = useState([]);
|
|
25
|
+
const kapali = collapsedSections ?? icKapali;
|
|
26
|
+
const aktifBolum = nav.find(isCurrent)?.section;
|
|
27
|
+
const acikMi = (bolum) => !wide || !collapsibleSections || bolum === aktifBolum || !kapali.includes(bolum);
|
|
28
|
+
const degistir = (bolum) => {
|
|
29
|
+
if (bolum === aktifBolum)
|
|
30
|
+
return;
|
|
31
|
+
const sonraki = !acikMi(bolum);
|
|
32
|
+
onSectionToggle?.(bolum, sonraki);
|
|
33
|
+
if (collapsedSections === undefined) {
|
|
34
|
+
setIcKapali((k) => (sonraki ? k.filter((x) => x !== bolum) : [...k, bolum]));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
/* Ardışık girişler bölüm adına göre kümeleniyor; adı olmayanlar kendi
|
|
38
|
+
kümesinde, başlıksız. Veri düz kalıyor (bkz. `section`), küme çizim için. */
|
|
39
|
+
const gruplar = [];
|
|
40
|
+
for (const entry of nav) {
|
|
41
|
+
const son = gruplar[gruplar.length - 1];
|
|
42
|
+
if (son && son.bolum === entry.section)
|
|
43
|
+
son.girisler.push(entry);
|
|
44
|
+
else
|
|
45
|
+
gruplar.push({ bolum: entry.section, girisler: [entry] });
|
|
46
|
+
}
|
|
47
|
+
const kimlik = useId();
|
|
48
|
+
return (_jsxs("div", { className: "flex h-dvh w-full overflow-hidden bg-rail text-ink-soft", children: [_jsxs("aside", { className: `flex shrink-0 flex-col gap-2 bg-rail py-4 ${wide ? "w-60 px-3" : "w-20 items-center px-1"}`, "data-rail": rail, children: [brand ? (_jsxs(_Fragment, { children: [_jsx("span", { "aria-label": labels.home, className: `mb-2 flex h-10 shrink-0 items-center text-ink ${wide ? "px-2" : "w-10 justify-center"}`, children: brand }), _jsx("span", { className: `h-0 w-6 border-t border-line ${wide ? "ml-2" : ""}` })] })) : null, _jsx("nav", { "aria-label": labels.primaryNav, className: `tamga-rail-scroll flex w-full flex-1 flex-col gap-2 py-1 ${wide ? "" : "items-center"}`, children: gruplar.map((grup, gi) => {
|
|
49
|
+
const id = `${kimlik}-${gi}`;
|
|
50
|
+
const acik = grup.bolum ? acikMi(grup.bolum) : true;
|
|
51
|
+
const kilitli = grup.bolum !== undefined && grup.bolum === aktifBolum;
|
|
52
|
+
return (_jsxs(Fragment, { children: [grup.bolum ? (wide ? (collapsibleSections ? (_jsxs("button", { type: "button", className: cn("tamga-rail-section", gi > 0 && "mt-3"), "aria-expanded": acik, "aria-controls": id, "aria-disabled": kilitli || undefined, "data-locked": kilitli || undefined, onClick: () => degistir(grup.bolum), children: [grup.bolum, _jsx(Icon, { icon: CaretDown, size: "xs", weight: "bold", className: "tamga-rail-section-caret" })] })) : (_jsx("p", { className: `px-2.5 text-caption font-bold uppercase tracking-label text-ink-faint ${gi > 0 ? "mt-5 pb-1.5" : "pb-1.5"}`, children: grup.bolum }))) : gi > 0 ? (_jsx("span", { className: "my-1.5 h-0 w-6 shrink-0 border-t border-line", "aria-hidden": true })) : null) : null, _jsx("div", { id: id, className: "tamga-rail-group-body", "data-open": acik, inert: !acik, children: _jsx("div", { className: wide ? undefined : "items-center", children: grup.girisler.map((entry) => (_jsx(RailLink, { href: entry.href, onClick: entry.onSelect, label: entry.label, active: isCurrent(entry), showLabel: wide, linkComponent: Link, "data-nav": entry.key, children: _jsx(Icon, { icon: entry.icon, size: "md", weight: isCurrent(entry) ? "fill" : "regular" }) }, entry.key))) }) })] }, grup.bolum ?? `_${gi}`));
|
|
53
|
+
}) }), railFooter ? _jsx("div", { className: "shrink-0", children: railFooter }) : null] }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("header", { className: "tamga-gutter flex items-center gap-4 bg-band py-4", children: topbar }), _jsx("div", { className: "min-h-0 flex-1 overflow-hidden pr-4 pb-4", children: _jsx("main", { className: cn("tamga-surface tamga-app-main relative h-full min-h-0 overflow-y-auto", mainClassName), children: children }) })] })] }));
|
|
20
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-template.d.ts","sourceRoot":"","sources":["../../src/patterns/settings-template.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1D,kCAAkC;AAClC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gHAAgH;IAChH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;KACtC,GAAG,WAAW,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,aAAa,EACb,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAe,EACf,KAAK,EACL,aAAa,EAAE,IAAgB,EAC/B,MAAM,EACN,QAAQ,GACT,EAAE,qBAAqB,+
|
|
1
|
+
{"version":3,"file":"settings-template.d.ts","sourceRoot":"","sources":["../../src/patterns/settings-template.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1D,kCAAkC;AAClC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,6EAA6E;IAC7E,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gHAAgH;IAChH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;KACtC,GAAG,WAAW,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,aAAa,EACb,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAe,EACf,KAAK,EACL,aAAa,EAAE,IAAgB,EAC/B,MAAM,EACN,QAAQ,GACT,EAAE,qBAAqB,+BAyDvB;AA0BD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,WAAW,EACX,aAAa,EACb,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+JAA+J;IAC/J,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB,+BA6BA"}
|
|
@@ -6,7 +6,7 @@ export function SettingsTemplate({ sections, activeSection, title, subtitle, act
|
|
|
6
6
|
return (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col gap-6 sm:flex-row", "data-settings-state": state, children: [_jsx("nav", { "aria-label": labels.sections, className: "shrink-0 sm:w-64 sm:border-r sm:border-line", children: _jsx("ul", { className: "flex flex-col py-4", children: sections.map((section) => {
|
|
7
7
|
const current = section.key === activeSection;
|
|
8
8
|
return (_jsx("li", { children: _jsxs(Link, { href: section.href, "data-section": section.key, "data-scope": section.scope, "data-active": current, "aria-current": current ? "page" : undefined, className: "tamga-list-row tamga-list-row-sm flex items-center gap-2", children: [_jsx("span", { className: "min-w-0 flex-1 truncate", children: section.label }), _jsx(ScopeMark, { scope: section.scope, label: labels.scope[section.scope] })] }) }, section.key));
|
|
9
|
-
}) }) }), _jsxs("div", { className: "tamga-gutter min-h-0 flex-1 py-4", children: [_jsxs("div", { className: "flex flex-wrap items-start gap-4", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "text-title font-semibold text-ink", children: title }), subtitle ? _jsx("p", { className: "text-small text-ink-faint", children: subtitle }) : null] }), actions ? (_jsx("div", { className: "ml-auto flex flex-wrap items-center gap-2", children: actions })) : null] }), _jsxs("div", { className: "mt-6 flex flex-col gap-4", children: [state === "loading" ? (_jsx(Busy, { label: labels.loading, children: _jsx(SkeletonPanel, { lines: 5 }) })) : null, state === "error" ? _jsx(ErrorSlot, { error: error, labels: labels }) : null, state === "ready" ? children : null] })] })] }));
|
|
9
|
+
}) }) }), _jsxs("div", { className: "tamga-gutter min-h-0 min-w-0 flex-1 py-4", children: [_jsxs("div", { className: "flex flex-wrap items-start gap-4", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "text-title font-semibold text-ink", children: title }), subtitle ? _jsx("p", { className: "text-small text-ink-faint", children: subtitle }) : null] }), actions ? (_jsx("div", { className: "ml-auto flex flex-wrap items-center gap-2", children: actions })) : null] }), _jsxs("div", { className: "mt-6 flex flex-col gap-4", children: [state === "loading" ? (_jsx(Busy, { label: labels.loading, children: _jsx(SkeletonPanel, { lines: 5 }) })) : null, state === "error" ? _jsx(ErrorSlot, { error: error, labels: labels }) : null, state === "ready" ? children : null] })] })] }));
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* Bu ayar kimin.
|
package/dist/styles.css
CHANGED
package/dist/theme.css
CHANGED