tamga-ui 0.3.1 → 0.4.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 +99 -0
- package/dist/components/advanced-input.d.ts +16 -4
- package/dist/components/advanced-input.d.ts.map +1 -1
- package/dist/components/advanced-input.js +10 -8
- package/dist/components/appearance.d.ts +9 -3
- package/dist/components/appearance.d.ts.map +1 -1
- package/dist/components/appearance.js +7 -6
- package/dist/components/avatar.d.ts +6 -2
- package/dist/components/avatar.d.ts.map +1 -1
- package/dist/components/avatar.js +5 -4
- package/dist/components/badge.d.ts +9 -3
- package/dist/components/badge.d.ts.map +1 -1
- package/dist/components/badge.js +7 -6
- package/dist/components/bar.d.ts +3 -1
- package/dist/components/bar.d.ts.map +1 -1
- package/dist/components/bar.js +3 -2
- package/dist/components/chart.d.ts +3 -1
- package/dist/components/chart.d.ts.map +1 -1
- package/dist/components/chart.js +3 -2
- package/dist/components/checkbox.d.ts +3 -1
- package/dist/components/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox.js +3 -2
- package/dist/components/chrome.d.ts +12 -4
- package/dist/components/chrome.d.ts.map +1 -1
- package/dist/components/chrome.js +9 -8
- package/dist/components/combobox.d.ts +3 -1
- package/dist/components/combobox.d.ts.map +1 -1
- package/dist/components/combobox.js +3 -2
- package/dist/components/data-table.d.ts +9 -3
- package/dist/components/data-table.d.ts.map +1 -1
- package/dist/components/data-table.js +7 -6
- package/dist/components/date-picker.d.ts +6 -2
- package/dist/components/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker.js +5 -4
- package/dist/components/disclosure.d.ts +5 -2
- package/dist/components/disclosure.d.ts.map +1 -1
- package/dist/components/disclosure.js +5 -4
- package/dist/components/display.d.ts +43 -10
- package/dist/components/display.d.ts.map +1 -1
- package/dist/components/display.js +19 -16
- package/dist/components/empty-state.d.ts +15 -5
- package/dist/components/empty-state.d.ts.map +1 -1
- package/dist/components/empty-state.js +11 -10
- package/dist/components/error-state.d.ts +3 -1
- package/dist/components/error-state.d.ts.map +1 -1
- package/dist/components/error-state.js +3 -2
- package/dist/components/file-upload.d.ts +3 -1
- package/dist/components/file-upload.d.ts.map +1 -1
- package/dist/components/file-upload.js +3 -2
- package/dist/components/gauge.d.ts +4 -2
- package/dist/components/gauge.d.ts.map +1 -1
- package/dist/components/gauge.js +5 -4
- package/dist/components/layout.d.ts +11 -5
- package/dist/components/layout.d.ts.map +1 -1
- package/dist/components/layout.js +12 -10
- package/dist/components/log-view.d.ts +3 -1
- package/dist/components/log-view.d.ts.map +1 -1
- package/dist/components/log-view.js +3 -2
- package/dist/components/number-input.d.ts +3 -1
- package/dist/components/number-input.d.ts.map +1 -1
- package/dist/components/number-input.js +3 -2
- package/dist/components/overlay.d.ts +18 -6
- package/dist/components/overlay.d.ts.map +1 -1
- package/dist/components/overlay.js +13 -12
- package/dist/components/pagination.d.ts +3 -1
- package/dist/components/pagination.d.ts.map +1 -1
- package/dist/components/pagination.js +3 -2
- package/dist/components/pie.d.ts +3 -1
- package/dist/components/pie.d.ts.map +1 -1
- package/dist/components/pie.js +3 -2
- package/dist/components/primitives.d.ts +20 -7
- package/dist/components/primitives.d.ts.map +1 -1
- package/dist/components/primitives.js +15 -14
- package/dist/components/progress.d.ts +3 -6
- package/dist/components/progress.d.ts.map +1 -1
- package/dist/components/progress.js +3 -2
- package/dist/components/radio-group.d.ts +16 -1
- package/dist/components/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group.js +4 -3
- package/dist/components/rich-text.d.ts +3 -1
- package/dist/components/rich-text.d.ts.map +1 -1
- package/dist/components/rich-text.js +3 -2
- package/dist/components/section.d.ts +3 -1
- package/dist/components/section.d.ts.map +1 -1
- package/dist/components/section.js +3 -2
- package/dist/components/skeleton.d.ts +25 -14
- package/dist/components/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton.js +24 -18
- package/dist/components/slider.d.ts +3 -1
- package/dist/components/slider.d.ts.map +1 -1
- package/dist/components/slider.js +3 -2
- package/dist/components/spinner.d.ts +2 -1
- package/dist/components/spinner.d.ts.map +1 -1
- package/dist/components/spinner.js +3 -2
- package/dist/components/square-picker.d.ts +3 -1
- package/dist/components/square-picker.d.ts.map +1 -1
- package/dist/components/square-picker.js +3 -2
- package/dist/components/stacked-bar.d.ts +3 -1
- package/dist/components/stacked-bar.d.ts.map +1 -1
- package/dist/components/stacked-bar.js +3 -2
- package/dist/components/surface.d.ts +13 -5
- package/dist/components/surface.d.ts.map +1 -1
- package/dist/components/surface.js +11 -10
- package/dist/components/switch.d.ts +3 -1
- package/dist/components/switch.d.ts.map +1 -1
- package/dist/components/switch.js +3 -2
- package/dist/components/tabs.d.ts +3 -1
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +3 -2
- package/dist/components/timeline-strip.d.ts +3 -1
- package/dist/components/timeline-strip.d.ts.map +1 -1
- package/dist/components/timeline-strip.js +3 -2
- package/dist/components/tree-select.d.ts +3 -1
- package/dist/components/tree-select.d.ts.map +1 -1
- package/dist/components/tree-select.js +3 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/kit.css +65 -1
- package/dist/lib/data-props.d.ts +20 -0
- package/dist/lib/data-props.d.ts.map +1 -0
- package/dist/lib/data-props.js +25 -0
- package/dist/patterns/wizard-template.d.ts +11 -5
- package/dist/patterns/wizard-template.d.ts.map +1 -1
- package/dist/patterns/wizard-template.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme.css +1 -1
- package/package.json +1 -1
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { cn } from "../lib/cn.js";
|
|
4
|
+
import { dataProps } from "../lib/data-props.js";
|
|
4
5
|
/**
|
|
5
6
|
* Kendi dosyasında, çünkü YENİ BİR KONTROL.
|
|
6
7
|
*
|
|
7
8
|
* Gerekçe: docs/gerekce/01-form-ve-girdi.md
|
|
8
9
|
*/
|
|
9
10
|
/** Kaydırıcı. */
|
|
10
|
-
export function Slider({ value, onChange, min = 0, max = 100, step = 1, label, suffix, className, }) {
|
|
11
|
+
export function Slider({ value, onChange, min = 0, max = 100, step = 1, label, suffix, className, ...rest }) {
|
|
11
12
|
const pct = ((value - min) / (max - min)) * 100;
|
|
12
|
-
return (_jsxs("span", { className: cn("flex items-center gap-4", className), children: [_jsx("input", { type: "range", value: value, min: min, max: max, step: step, "aria-label": label, onChange: (e) => onChange(Number(e.target.value)), className: "tamga-slider h-1.5 flex-1 cursor-pointer appearance-none rounded-full", style: {
|
|
13
|
+
return (_jsxs("span", { ...dataProps(rest), className: cn("flex items-center gap-4", className), children: [_jsx("input", { type: "range", value: value, min: min, max: max, step: step, "aria-label": label, onChange: (e) => onChange(Number(e.target.value)), className: "tamga-slider h-1.5 flex-1 cursor-pointer appearance-none rounded-full", style: {
|
|
13
14
|
background: `linear-gradient(to right, var(--color-accent-line) ${pct}%, var(--color-edge) ${pct}%)`,
|
|
14
15
|
} }), _jsxs("span", { className: "w-16 shrink-0 text-right font-mono text-body text-ink tabular-nums", children: [value, suffix] })] }));
|
|
15
16
|
}
|
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
* worst of both worlds: it satisfies the compiler and ships English into every other language,
|
|
9
9
|
* silently, because nobody sees an aria-label until they are already using a screen reader.
|
|
10
10
|
*/
|
|
11
|
-
export declare function Spinner({ size, label }: {
|
|
11
|
+
export declare function Spinner({ size, label, ...rest }: {
|
|
12
12
|
size?: number;
|
|
13
13
|
label: string;
|
|
14
|
+
[k: `data-${string}`]: unknown;
|
|
14
15
|
}): import("react").JSX.Element;
|
|
15
16
|
//# sourceMappingURL=spinner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/components/spinner.tsx"],"names":[],"mappings":"AAGA;;;GAGG;AACH;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,EAAE,IAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAA;CAAE,+BAyBtH"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { dataProps } from "../lib/data-props.js";
|
|
3
4
|
/**
|
|
4
5
|
* Bars — three uprights marching, echoing the stems in the wordmark and
|
|
5
6
|
* reading as a level meter, which is what this product measures.
|
|
@@ -10,9 +11,9 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
10
11
|
* worst of both worlds: it satisfies the compiler and ships English into every other language,
|
|
11
12
|
* silently, because nobody sees an aria-label until they are already using a screen reader.
|
|
12
13
|
*/
|
|
13
|
-
export function Spinner({ size = 16, label }) {
|
|
14
|
+
export function Spinner({ size = 16, label, ...rest }) {
|
|
14
15
|
const w = Math.max(2.5, size * 0.22);
|
|
15
|
-
return (_jsx("span", { role: "status", "aria-label": label, className: "inline-flex items-end justify-between", style: { width: size, height: size }, children: [0, 1, 2].map((i) => (_jsx("span", { className: "tamga-spin-part", style: {
|
|
16
|
+
return (_jsx("span", { ...dataProps(rest), role: "status", "aria-label": label, className: "inline-flex items-end justify-between", style: { width: size, height: size }, children: [0, 1, 2].map((i) => (_jsx("span", { className: "tamga-spin-part", style: {
|
|
16
17
|
width: w,
|
|
17
18
|
height: "100%",
|
|
18
19
|
transformOrigin: "bottom",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* matematiği ile çerçevenin CSS'i ayrı ayrı hesaplansaydı, kullanıcının
|
|
22
22
|
* gördüğü kare ile kesilen kare farklı olurdu — ve fark sessiz olurdu.
|
|
23
23
|
*/
|
|
24
|
-
export declare function SquarePicker({ open, source, onClose, onPick, maxEdge, labels, }: {
|
|
24
|
+
export declare function SquarePicker({ open, source, onClose, onPick, maxEdge, labels, ...rest }: {
|
|
25
25
|
open: boolean;
|
|
26
26
|
/** The image the square is cut out of. TR: Üzerinden kesilecek görsel. */
|
|
27
27
|
source: string;
|
|
@@ -37,5 +37,7 @@ export declare function SquarePicker({ open, source, onClose, onPick, maxEdge, l
|
|
|
37
37
|
confirm: string;
|
|
38
38
|
close: string;
|
|
39
39
|
};
|
|
40
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
41
|
+
[k: `data-${string}`]: unknown;
|
|
40
42
|
}): import("react").JSX.Element;
|
|
41
43
|
//# sourceMappingURL=square-picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"square-picker.d.ts","sourceRoot":"","sources":["../../src/components/square-picker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"square-picker.d.ts","sourceRoot":"","sources":["../../src/components/square-picker.tsx"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;GAsBG;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,+BAmHA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { dataProps } from "../lib/data-props.js";
|
|
3
4
|
import { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
4
5
|
import { Button } from "./button.js";
|
|
5
6
|
import { Dialog } from "./overlay.js";
|
|
@@ -29,7 +30,7 @@ import { cropSquare } from "../lib/image.js";
|
|
|
29
30
|
* matematiği ile çerçevenin CSS'i ayrı ayrı hesaplansaydı, kullanıcının
|
|
30
31
|
* gördüğü kare ile kesilen kare farklı olurdu — ve fark sessiz olurdu.
|
|
31
32
|
*/
|
|
32
|
-
export function SquarePicker({ open, source, onClose, onPick, maxEdge = 256, labels, }) {
|
|
33
|
+
export function SquarePicker({ open, source, onClose, onPick, maxEdge = 256, labels, ...rest }) {
|
|
33
34
|
const sahne = useRef(null);
|
|
34
35
|
const [olcu, setOlcu] = useState({ en: 0, boy: 0 });
|
|
35
36
|
const [x, setX] = useState(0);
|
|
@@ -75,7 +76,7 @@ export function SquarePicker({ open, source, onClose, onPick, maxEdge = 256, lab
|
|
|
75
76
|
onPick(await cropSquare(source, { x, y, size: oran }, maxEdge));
|
|
76
77
|
onClose();
|
|
77
78
|
}
|
|
78
|
-
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", { 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) => {
|
|
79
|
+
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", { ...dataProps(rest), 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) => {
|
|
79
80
|
setSuruyor(true);
|
|
80
81
|
e.currentTarget.setPointerCapture(e.pointerId);
|
|
81
82
|
}, 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: {
|
|
@@ -7,7 +7,7 @@ export type StackSeries = {
|
|
|
7
7
|
name: string;
|
|
8
8
|
values: readonly number[];
|
|
9
9
|
};
|
|
10
|
-
export declare function StackedBarChart({ series, labels, height, formatValue, className, }: {
|
|
10
|
+
export declare function StackedBarChart({ series, labels, height, formatValue, className, ...rest }: {
|
|
11
11
|
series: readonly StackSeries[];
|
|
12
12
|
/**
|
|
13
13
|
* The marks on the X axis; the same length as `series[n].values`. TR: X eksenindeki
|
|
@@ -17,5 +17,7 @@ export declare function StackedBarChart({ series, labels, height, formatValue, c
|
|
|
17
17
|
height?: number;
|
|
18
18
|
formatValue?: (v: number) => string;
|
|
19
19
|
className?: string;
|
|
20
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
21
|
+
[k: `data-${string}`]: unknown;
|
|
20
22
|
}): import("react").JSX.Element;
|
|
21
23
|
//# sourceMappingURL=stacked-bar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stacked-bar.d.ts","sourceRoot":"","sources":["../../src/components/stacked-bar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stacked-bar.d.ts","sourceRoot":"","sources":["../../src/components/stacked-bar.tsx"],"names":[],"mappings":"AAMA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B,CAAC;AASF,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,MAAM,EACN,MAAY,EACZ,WAAoB,EACpB,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B;;;OAGG;IACH,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAkHA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from "react";
|
|
4
4
|
import { cn } from "../lib/cn.js";
|
|
5
|
+
import { dataProps } from "../lib/data-props.js";
|
|
5
6
|
/** Sayıyı ızgara çizgisine yuvarlar: 87 → 100, 412 → 500. */
|
|
6
7
|
function niceMax(v) {
|
|
7
8
|
if (v <= 0)
|
|
@@ -9,14 +10,14 @@ function niceMax(v) {
|
|
|
9
10
|
const mag = 10 ** Math.floor(Math.log10(v));
|
|
10
11
|
return Math.ceil(v / mag) * mag;
|
|
11
12
|
}
|
|
12
|
-
export function StackedBarChart({ series, labels, height = 260, formatValue = String, className, }) {
|
|
13
|
+
export function StackedBarChart({ series, labels, height = 260, formatValue = String, className, ...rest }) {
|
|
13
14
|
const [uzerinde, setUzerinde] = useState(null);
|
|
14
15
|
const toplamlar = labels.map((_, i) => series.reduce((n, s) => n + (s.values[i] ?? 0), 0));
|
|
15
16
|
const enBuyuk = niceMax(Math.max(0, ...toplamlar));
|
|
16
17
|
/* Dört ızgara çizgisi: daha fazlası okumayı kolaylaştırmıyor, zemini
|
|
17
18
|
kirletiyor. */
|
|
18
19
|
const cizgiler = [0, 0.25, 0.5, 0.75, 1].map((o) => enBuyuk * o);
|
|
19
|
-
return (_jsxs("figure", { 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) => {
|
|
20
|
+
return (_jsxs("figure", { className: cn("flex flex-col", className), children: [_jsxs("div", { ...dataProps(rest), 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) => {
|
|
20
21
|
const toplam = toplamlar[i] ?? 0;
|
|
21
22
|
const secili = uzerinde === i;
|
|
22
23
|
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) => {
|
|
@@ -10,7 +10,7 @@ import type { ReactNode } from "react";
|
|
|
10
10
|
* 1px kenar + 2px sert offset (Yasa 1). İçindeki her şey `Gutter`ın ritmini
|
|
11
11
|
* paylaşır, böylece iki kart yan yana geldiğinde iç boşlukları hizalanır.
|
|
12
12
|
*/
|
|
13
|
-
export declare function Card({ as: Tag, overflow, children, className, }: {
|
|
13
|
+
export declare function Card({ as: Tag, overflow, children, className, ...rest }: {
|
|
14
14
|
/**
|
|
15
15
|
* The element the card is drawn as. TR: Kartın hangi eleman olarak çizileceği.
|
|
16
16
|
*
|
|
@@ -35,6 +35,8 @@ export declare function Card({ as: Tag, overflow, children, className, }: {
|
|
|
35
35
|
overflow?: "clip" | "visible";
|
|
36
36
|
children: ReactNode;
|
|
37
37
|
className?: string;
|
|
38
|
+
/** `data-*` hooks pass through; nothing else does. TR: `data-*` kancaları geçiyor, başkası değil. */
|
|
39
|
+
[k: `data-${string}`]: unknown;
|
|
38
40
|
}): import("react").JSX.Element;
|
|
39
41
|
/**
|
|
40
42
|
* Kart başlığı — başlık solda, eylem sağda, ikisi aynı taban çizgisinde.
|
|
@@ -42,15 +44,18 @@ export declare function Card({ as: Tag, overflow, children, className, }: {
|
|
|
42
44
|
* Eylemin yeri tartışmaya kapalı: üründeki her satır kontrolünü sağda tutar,
|
|
43
45
|
* ve başka yere koyan bir başlık listeden kopmuş görünür.
|
|
44
46
|
*/
|
|
45
|
-
export declare function CardHead({ children, action, className, }: {
|
|
47
|
+
export declare function CardHead({ children, action, className, ...rest }: {
|
|
46
48
|
children: ReactNode;
|
|
47
49
|
action?: ReactNode;
|
|
48
50
|
className?: string;
|
|
51
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
52
|
+
[k: `data-${string}`]: unknown;
|
|
49
53
|
}): import("react").JSX.Element;
|
|
50
54
|
/** Kart gövdesi — başlıkla aynı yatay ritim, kendi dikey nefesi. */
|
|
51
|
-
export declare function CardBody({ children, className }: {
|
|
55
|
+
export declare function CardBody({ children, className, ...rest }: {
|
|
52
56
|
children: ReactNode;
|
|
53
57
|
className?: string;
|
|
58
|
+
[k: `data-${string}`]: unknown;
|
|
54
59
|
}): import("react").JSX.Element;
|
|
55
60
|
/**
|
|
56
61
|
* Tablo.
|
|
@@ -59,9 +64,10 @@ export declare function CardBody({ children, className }: {
|
|
|
59
64
|
* tablo tüm sayfayı yana kaydırır — ve bunu unutmak, unutulduğu yerde fark
|
|
60
65
|
* edilmeyen bir hatadır.
|
|
61
66
|
*/
|
|
62
|
-
export declare function Table({ children, className }: {
|
|
67
|
+
export declare function Table({ children, className, ...rest }: {
|
|
63
68
|
children: ReactNode;
|
|
64
69
|
className?: string;
|
|
70
|
+
[k: `data-${string}`]: unknown;
|
|
65
71
|
}): import("react").JSX.Element;
|
|
66
72
|
/**
|
|
67
73
|
* Sessiz etiket — bir başlığın yanındaki ya da bir grubun üstündeki meta satır.
|
|
@@ -70,7 +76,7 @@ export declare function Table({ children, className }: {
|
|
|
70
76
|
* (`p95 · 24h`, `10 kontrol`). Form etiketi için `Field` kullan — o `htmlFor`
|
|
71
77
|
* bağını da kurar.
|
|
72
78
|
*/
|
|
73
|
-
export declare function Label({ children, mono, className, }: {
|
|
79
|
+
export declare function Label({ children, mono, className, ...rest }: {
|
|
74
80
|
children: ReactNode;
|
|
75
81
|
/**
|
|
76
82
|
* Identifier-shaped text (codes, SKUs) keeps the mono face. TR: Tanımlayıcı biçimli metinler
|
|
@@ -78,5 +84,7 @@ export declare function Label({ children, mono, className, }: {
|
|
|
78
84
|
*/
|
|
79
85
|
mono?: boolean;
|
|
80
86
|
className?: string;
|
|
87
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
88
|
+
[k: `data-${string}`]: unknown;
|
|
81
89
|
}): import("react").JSX.Element;
|
|
82
90
|
//# sourceMappingURL=surface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../../src/components/surface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"surface.d.ts","sourceRoot":"","sources":["../../src/components/surface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;GAIG;AAEH;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,EACnB,EAAE,EAAE,GAAW,EACf,QAAiB,EACjB,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD;;;;OAIG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1C;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qGAAqG;IACrG,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BASA;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAOA;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,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,+BAErI;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,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,+BAMlI;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,IAAY,EACZ,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAEA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { dataProps } from "../lib/data-props.js";
|
|
3
4
|
/**
|
|
4
5
|
* YÜZEYLER — kart, tablo, sessiz etiket.
|
|
5
6
|
*
|
|
@@ -11,8 +12,8 @@ import { cn } from "../lib/cn.js";
|
|
|
11
12
|
* 1px kenar + 2px sert offset (Yasa 1). İçindeki her şey `Gutter`ın ritmini
|
|
12
13
|
* paylaşır, böylece iki kart yan yana geldiğinde iç boşlukları hizalanır.
|
|
13
14
|
*/
|
|
14
|
-
export function Card({ as: Tag = "div", overflow = "clip", children, className, }) {
|
|
15
|
-
return (_jsx(Tag, { className: cn("tamga-card", overflow === "visible" && "tamga-card-open", className), children: children }));
|
|
15
|
+
export function Card({ as: Tag = "div", overflow = "clip", children, className, ...rest }) {
|
|
16
|
+
return (_jsx(Tag, { ...dataProps(rest), className: cn("tamga-card", overflow === "visible" && "tamga-card-open", className), children: children }));
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
19
|
* Kart başlığı — başlık solda, eylem sağda, ikisi aynı taban çizgisinde.
|
|
@@ -20,12 +21,12 @@ export function Card({ as: Tag = "div", overflow = "clip", children, className,
|
|
|
20
21
|
* Eylemin yeri tartışmaya kapalı: üründeki her satır kontrolünü sağda tutar,
|
|
21
22
|
* ve başka yere koyan bir başlık listeden kopmuş görünür.
|
|
22
23
|
*/
|
|
23
|
-
export function CardHead({ children, action, className, }) {
|
|
24
|
-
return (_jsxs("div", { className: cn("tamga-head tamga-gutter tamga-section", className), children: [children, action ? _jsx("span", { className: "ml-auto", children: action }) : null] }));
|
|
24
|
+
export function CardHead({ children, action, className, ...rest }) {
|
|
25
|
+
return (_jsxs("div", { ...dataProps(rest), className: cn("tamga-head tamga-gutter tamga-section", className), children: [children, action ? _jsx("span", { className: "ml-auto", children: action }) : null] }));
|
|
25
26
|
}
|
|
26
27
|
/** Kart gövdesi — başlıkla aynı yatay ritim, kendi dikey nefesi. */
|
|
27
|
-
export function CardBody({ children, className }) {
|
|
28
|
-
return _jsx("div", { className: cn("tamga-gutter py-6", className), children: children });
|
|
28
|
+
export function CardBody({ children, className, ...rest }) {
|
|
29
|
+
return _jsx("div", { ...dataProps(rest), className: cn("tamga-gutter py-6", className), children: children });
|
|
29
30
|
}
|
|
30
31
|
/**
|
|
31
32
|
* Tablo.
|
|
@@ -34,8 +35,8 @@ export function CardBody({ children, className }) {
|
|
|
34
35
|
* tablo tüm sayfayı yana kaydırır — ve bunu unutmak, unutulduğu yerde fark
|
|
35
36
|
* edilmeyen bir hatadır.
|
|
36
37
|
*/
|
|
37
|
-
export function Table({ children, className }) {
|
|
38
|
-
return (_jsx("div", { className: "w-full overflow-x-auto", children: _jsx("table", { className: cn("tamga-table", className), children: children }) }));
|
|
38
|
+
export function Table({ children, className, ...rest }) {
|
|
39
|
+
return (_jsx("div", { ...dataProps(rest), className: "w-full overflow-x-auto", children: _jsx("table", { className: cn("tamga-table", className), children: children }) }));
|
|
39
40
|
}
|
|
40
41
|
/**
|
|
41
42
|
* Sessiz etiket — bir başlığın yanındaki ya da bir grubun üstündeki meta satır.
|
|
@@ -44,6 +45,6 @@ export function Table({ children, className }) {
|
|
|
44
45
|
* (`p95 · 24h`, `10 kontrol`). Form etiketi için `Field` kullan — o `htmlFor`
|
|
45
46
|
* bağını da kurar.
|
|
46
47
|
*/
|
|
47
|
-
export function Label({ children, mono = false, className, }) {
|
|
48
|
-
return _jsx("span", { className: cn("tamga-label", mono && "font-mono", className), children: children });
|
|
48
|
+
export function Label({ children, mono = false, className, ...rest }) {
|
|
49
|
+
return _jsx("span", { ...dataProps(rest), className: cn("tamga-label", mono && "font-mono", className), children: children });
|
|
49
50
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function Switch({ on, onChange, label, disabled, className, }: {
|
|
1
|
+
export declare function Switch({ on, onChange, label, disabled, className, ...rest }: {
|
|
2
2
|
on: boolean;
|
|
3
3
|
onChange?: (next: boolean) => void;
|
|
4
4
|
/**
|
|
@@ -8,5 +8,7 @@ export declare function Switch({ on, onChange, label, disabled, className, }: {
|
|
|
8
8
|
label: string;
|
|
9
9
|
disabled?: boolean;
|
|
10
10
|
className?: string;
|
|
11
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
12
|
+
[k: `data-${string}`]: unknown;
|
|
11
13
|
}): import("react").JSX.Element;
|
|
12
14
|
//# sourceMappingURL=switch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/components/switch.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../src/components/switch.tsx"],"names":[],"mappings":"AAYA,wBAAgB,MAAM,CAAC,EACrB,EAAE,EACF,QAAQ,EACR,KAAK,EACL,QAAgB,EAChB,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAsBA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { cn } from "../lib/cn.js";
|
|
4
|
+
import { dataProps } from "../lib/data-props.js";
|
|
4
5
|
import { OFF } from "./control-base.js";
|
|
5
6
|
/* ---------------------------------------------------------------- *
|
|
6
7
|
* Switch — akranlar arası seçim DEĞİL, açık/kapalı durumu.
|
|
@@ -8,6 +9,6 @@ import { OFF } from "./control-base.js";
|
|
|
8
9
|
* Dolgu burada Yasa 2'nin üçüncü bilinçli istisnası: dolu iz metaforun
|
|
9
10
|
* kendisidir, bir devrenin kapalı olması demektir.
|
|
10
11
|
* ---------------------------------------------------------------- */
|
|
11
|
-
export function Switch({ on, onChange, label, disabled = false, className, }) {
|
|
12
|
-
return (_jsx("button", { type: "button", role: "switch", "aria-checked": on, "aria-label": label, "aria-disabled": disabled || undefined, disabled: disabled, onClick: () => !disabled && onChange?.(!on), className: cn("tamga-switch", className), "data-on": on, style: disabled ? OFF : undefined, children: _jsx("span", { "aria-hidden": true }) }));
|
|
12
|
+
export function Switch({ on, onChange, label, disabled = false, className, ...rest }) {
|
|
13
|
+
return (_jsx("button", { ...dataProps(rest), type: "button", role: "switch", "aria-checked": on, "aria-label": label, "aria-disabled": disabled || undefined, disabled: disabled, onClick: () => !disabled && onChange?.(!on), className: cn("tamga-switch", className), "data-on": on, style: disabled ? OFF : undefined, children: _jsx("span", { "aria-hidden": true }) }));
|
|
13
14
|
}
|
|
@@ -25,7 +25,7 @@ export type TabItem<T extends string> = {
|
|
|
25
25
|
*/
|
|
26
26
|
disabled?: boolean;
|
|
27
27
|
};
|
|
28
|
-
export declare function Tabs<T extends string>({ items, value, onChange, label, scroll, linkAs, className, }: {
|
|
28
|
+
export declare function Tabs<T extends string>({ items, value, onChange, label, scroll, linkAs, className, ...rest }: {
|
|
29
29
|
items: readonly TabItem<T>[];
|
|
30
30
|
value: T;
|
|
31
31
|
onChange?: (next: T) => void;
|
|
@@ -43,5 +43,7 @@ export declare function Tabs<T extends string>({ items, value, onChange, label,
|
|
|
43
43
|
*/
|
|
44
44
|
linkAs?: React.ElementType;
|
|
45
45
|
className?: string;
|
|
46
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
47
|
+
[k: `data-${string}`]: unknown;
|
|
46
48
|
}): import("react").JSX.Element;
|
|
47
49
|
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;GAIG;AAEH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI;IACtC,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,EACrC,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAc,EACd,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,KAAK,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC;IACT,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BA4DA"}
|
package/dist/components/tabs.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { cn } from "../lib/cn.js";
|
|
4
|
-
|
|
4
|
+
import { dataProps } from "../lib/data-props.js";
|
|
5
|
+
export function Tabs({ items, value, onChange, label, scroll = false, linkAs, className, ...rest }) {
|
|
5
6
|
const kap = cn("flex gap-6 border-b border-[var(--color-line)]", scroll && "overflow-x-auto", className);
|
|
6
7
|
const bagliMi = items.some((t) => t.href);
|
|
7
8
|
const A = linkAs ?? "a";
|
|
8
9
|
if (bagliMi) {
|
|
9
|
-
return (_jsx("nav", { "aria-label": label, className: kap, children: items.map((t) => t.disabled ? (_jsxs("span", { "aria-disabled": "true", className: cn("tamga-tab", scroll && "shrink-0"), "data-disabled": "true", children: [t.icon, t.label] }, t.value)) : (_jsxs(A, { href: t.href, className: cn("tamga-tab", scroll && "shrink-0"), "data-active": value === t.value, "aria-current": value === t.value ? "page" : undefined, children: [t.icon, t.label] }, t.value))) }));
|
|
10
|
+
return (_jsx("nav", { ...dataProps(rest), "aria-label": label, className: kap, children: items.map((t) => t.disabled ? (_jsxs("span", { "aria-disabled": "true", className: cn("tamga-tab", scroll && "shrink-0"), "data-disabled": "true", children: [t.icon, t.label] }, t.value)) : (_jsxs(A, { href: t.href, className: cn("tamga-tab", scroll && "shrink-0"), "data-active": value === t.value, "aria-current": value === t.value ? "page" : undefined, children: [t.icon, t.label] }, t.value))) }));
|
|
10
11
|
}
|
|
11
12
|
return (_jsx("div", { role: "tablist", "aria-label": label, className: kap, children: items.map((t) => (_jsxs("button", { type: "button", role: "tab", "aria-selected": value === t.value, disabled: t.disabled, className: cn("tamga-tab", scroll && "shrink-0"), "data-active": value === t.value, "data-disabled": t.disabled || undefined, onClick: () => onChange?.(t.value), children: [t.icon, t.label] }, t.value))) }));
|
|
12
13
|
}
|
|
@@ -8,12 +8,14 @@ export declare function TimelineStrip({ data, height, gap, minWidth,
|
|
|
8
8
|
/** Şeridin iki ucundaki zaman etiketi — "90 gün önce" · "bugün". */
|
|
9
9
|
labels,
|
|
10
10
|
/** Her kovanın erişilebilir açıklaması. Kit çeviri çekmez. */
|
|
11
|
-
describe, }: {
|
|
11
|
+
describe, ...rest }: {
|
|
12
12
|
data: readonly Tone[];
|
|
13
13
|
height?: number;
|
|
14
14
|
gap?: number;
|
|
15
15
|
minWidth?: number;
|
|
16
16
|
labels?: [string, string];
|
|
17
17
|
describe?: (index: number, tone: Tone) => string;
|
|
18
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
19
|
+
[k: `data-${string}`]: unknown;
|
|
18
20
|
}): import("react").JSX.Element;
|
|
19
21
|
//# sourceMappingURL=timeline-strip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeline-strip.d.ts","sourceRoot":"","sources":["../../src/components/timeline-strip.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"timeline-strip.d.ts","sourceRoot":"","sources":["../../src/components/timeline-strip.tsx"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,MAAW,EACX,GAAO,EACP,QAAY;AACZ,oEAAoE;AACpE,MAAM;AACN,8DAA8D;AAC9D,QAAQ,EACR,GAAG,IAAI,EACR,EAAE;IACD,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACjD,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAqBA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { dataProps } from "../lib/data-props.js";
|
|
2
3
|
import { toneOf } from "./tone.js";
|
|
3
4
|
/**
|
|
4
5
|
* TimelineStrip — kova başına bir işaret, renk durumu taşır.
|
|
@@ -9,6 +10,6 @@ export function TimelineStrip({ data, height = 32, gap = 2, minWidth = 3,
|
|
|
9
10
|
/** Şeridin iki ucundaki zaman etiketi — "90 gün önce" · "bugün". */
|
|
10
11
|
labels,
|
|
11
12
|
/** Her kovanın erişilebilir açıklaması. Kit çeviri çekmez. */
|
|
12
|
-
describe, }) {
|
|
13
|
-
return (_jsxs("div", { children: [_jsx("div", { className: "flex items-end", style: { gap }, children: data.map((tone, i) => (_jsx("span", { title: describe?.(i, tone), className: "flex-1 transition-opacity hover:opacity-60", style: { height, minWidth, background: toneOf(tone).mark } }, i))) }), labels ? (_jsxs("div", { className: "mt-2 flex justify-between", children: [_jsx("span", { className: "font-mono text-micro text-ink-faint", children: labels[0] }), _jsx("span", { className: "font-mono text-micro text-ink-faint", children: labels[1] })] })) : null] }));
|
|
13
|
+
describe, ...rest }) {
|
|
14
|
+
return (_jsxs("div", { ...dataProps(rest), children: [_jsx("div", { className: "flex items-end", style: { gap }, children: data.map((tone, i) => (_jsx("span", { title: describe?.(i, tone), className: "flex-1 transition-opacity hover:opacity-60", style: { height, minWidth, background: toneOf(tone).mark } }, i))) }), labels ? (_jsxs("div", { className: "mt-2 flex justify-between", children: [_jsx("span", { className: "font-mono text-micro text-ink-faint", children: labels[0] }), _jsx("span", { className: "font-mono text-micro text-ink-faint", children: labels[1] })] })) : null] }));
|
|
14
15
|
}
|
|
@@ -8,7 +8,7 @@ export type TreeNode = {
|
|
|
8
8
|
label: string;
|
|
9
9
|
children?: TreeNode[];
|
|
10
10
|
};
|
|
11
|
-
export declare function TreeSelect({ nodes, value, onChange, labels, searchable, height, className, }: {
|
|
11
|
+
export declare function TreeSelect({ nodes, value, onChange, labels, searchable, height, className, ...rest }: {
|
|
12
12
|
nodes: readonly TreeNode[];
|
|
13
13
|
/** The ids of the selected nodes. TR: Seçili düğüm id'leri. */
|
|
14
14
|
value: readonly string[];
|
|
@@ -22,5 +22,7 @@ export declare function TreeSelect({ nodes, value, onChange, labels, searchable,
|
|
|
22
22
|
searchable?: boolean;
|
|
23
23
|
height?: number;
|
|
24
24
|
className?: string;
|
|
25
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
26
|
+
[k: `data-${string}`]: unknown;
|
|
25
27
|
}): import("react").JSX.Element;
|
|
26
28
|
//# sourceMappingURL=tree-select.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-select.d.ts","sourceRoot":"","sources":["../../src/components/tree-select.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tree-select.d.ts","sourceRoot":"","sources":["../../src/components/tree-select.tsx"],"names":[],"mappings":"AASA;;;;GAIG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC;AAoBF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,UAAiB,EACjB,MAAY,EACZ,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAqHA"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useMemo, useState } from "react";
|
|
4
4
|
import { cn } from "../lib/cn.js";
|
|
5
|
+
import { dataProps } from "../lib/data-props.js";
|
|
5
6
|
import { Checkbox } from "./checkbox.js";
|
|
6
7
|
import { Icon } from "./icon.js";
|
|
7
8
|
import { CaretDown, CaretRight, Search } from "./icons.js";
|
|
@@ -23,7 +24,7 @@ function suz(nodes, q) {
|
|
|
23
24
|
};
|
|
24
25
|
return nodes.map(gez).filter((n) => n !== null);
|
|
25
26
|
}
|
|
26
|
-
export function TreeSelect({ nodes, value, onChange, labels, searchable = true, height = 320, className, }) {
|
|
27
|
+
export function TreeSelect({ nodes, value, onChange, labels, searchable = true, height = 320, className, ...rest }) {
|
|
27
28
|
const [q, setQ] = useState("");
|
|
28
29
|
/* Kapalı olanlar tutuluyor, açık olanlar değil: varsayılan AÇIK.
|
|
29
30
|
Bir kategori ağacı kapalı açıldığında kullanıcı önce her dalı tıklamak
|
|
@@ -46,7 +47,7 @@ export function TreeSelect({ nodes, value, onChange, labels, searchable = true,
|
|
|
46
47
|
const cocuklar = node.children ?? [];
|
|
47
48
|
const acik = !kapali.has(node.id);
|
|
48
49
|
const isaretli = secili.has(node.id);
|
|
49
|
-
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 * 18}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: () => {
|
|
50
|
+
return (_jsxs("li", { ...dataProps(rest), 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 * 18}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: () => {
|
|
50
51
|
const next = new Set(kapali);
|
|
51
52
|
if (acik)
|
|
52
53
|
next.add(node.id);
|
package/dist/index.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ export { prepareImage, cropSquare, IMAGE_ACCEPT, type ImageError } from "./lib/i
|
|
|
47
47
|
export { RailLink } from "./components/rail-link.js";
|
|
48
48
|
export { Slider } from "./components/slider.js";
|
|
49
49
|
export { Accordion, Collapsible } from "./components/disclosure.js";
|
|
50
|
-
export { Descriptions, Kpi, KpiGrid, Code, Kbd, Badge, Steps } from "./components/display.js";
|
|
50
|
+
export { Descriptions, Kpi, KpiGrid, Code, Kbd, Badge, Steps, type Step } from "./components/display.js";
|
|
51
51
|
export { PasswordInput, SecretField, TagsInput, MultiSelect, ScheduleInput, } from "./components/advanced-input.js";
|
|
52
52
|
export { LineChart, type Series } from "./components/chart.js";
|
|
53
53
|
export { PieChart, type PieSlice } from "./components/pie.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/kit.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! tamga-ui 0.
|
|
1
|
+
/*! tamga-ui 0.4.0 · MIT · https://tamga.org.tr */
|
|
2
2
|
:root {
|
|
3
3
|
|
|
4
4
|
--overlay-gap: 8px;
|
|
@@ -495,6 +495,32 @@
|
|
|
495
495
|
color: var(--color-accent-line);
|
|
496
496
|
}
|
|
497
497
|
|
|
498
|
+
.tamga-field-btn {
|
|
499
|
+
position: absolute;
|
|
500
|
+
top: 1px;
|
|
501
|
+
right: 1px;
|
|
502
|
+
bottom: 1px;
|
|
503
|
+
display: inline-flex;
|
|
504
|
+
width: 34px;
|
|
505
|
+
align-items: center;
|
|
506
|
+
justify-content: center;
|
|
507
|
+
border-left: 1px solid var(--color-line);
|
|
508
|
+
border-radius: 0 var(--radius-ctl) var(--radius-ctl) 0;
|
|
509
|
+
background: transparent;
|
|
510
|
+
color: var(--color-ink-faint);
|
|
511
|
+
cursor: pointer;
|
|
512
|
+
transition: color var(--duration-press) var(--ease-standard),
|
|
513
|
+
background var(--duration-press) var(--ease-standard);
|
|
514
|
+
}
|
|
515
|
+
.tamga-field-btn:hover {
|
|
516
|
+
background: var(--color-hover);
|
|
517
|
+
color: var(--color-ink);
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
.tamga-field-btn[aria-pressed="true"] {
|
|
521
|
+
color: var(--color-accent-line);
|
|
522
|
+
}
|
|
523
|
+
|
|
498
524
|
.tamga-stepper {
|
|
499
525
|
position: absolute;
|
|
500
526
|
top: 1px;
|
|
@@ -878,6 +904,44 @@
|
|
|
878
904
|
margin-top: calc((1lh - 18px) / 2);
|
|
879
905
|
}
|
|
880
906
|
|
|
907
|
+
.tamga-choice-chip {
|
|
908
|
+
display: inline-flex;
|
|
909
|
+
align-items: center;
|
|
910
|
+
gap: 8px;
|
|
911
|
+
height: auto;
|
|
912
|
+
min-height: 32px;
|
|
913
|
+
padding: 4px 10px;
|
|
914
|
+
border-radius: var(--radius-ctl);
|
|
915
|
+
border: 1px solid var(--color-edge);
|
|
916
|
+
background: var(--color-shell);
|
|
917
|
+
font-size: var(--text-small);
|
|
918
|
+
cursor: pointer;
|
|
919
|
+
}
|
|
920
|
+
.tamga-choice-card {
|
|
921
|
+
display: flex;
|
|
922
|
+
align-items: flex-start;
|
|
923
|
+
gap: 8px;
|
|
924
|
+
width: 100%;
|
|
925
|
+
min-width: 0;
|
|
926
|
+
text-align: left;
|
|
927
|
+
padding: 16px;
|
|
928
|
+
border-radius: var(--radius-card);
|
|
929
|
+
border: 1px solid var(--color-edge);
|
|
930
|
+
background: var(--color-shell);
|
|
931
|
+
cursor: pointer;
|
|
932
|
+
}
|
|
933
|
+
.tamga-choice-chip[aria-checked="true"],
|
|
934
|
+
.tamga-choice-card[aria-checked="true"] {
|
|
935
|
+
border-color: var(--color-accent-line);
|
|
936
|
+
box-shadow: 2px 2px 0 var(--color-accent-line);
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
.tamga-choice-chip:not([aria-checked="true"]):active,
|
|
940
|
+
.tamga-choice-card:not([aria-checked="true"]):active {
|
|
941
|
+
transform: translate(1px, 1px);
|
|
942
|
+
transition-duration: 0s;
|
|
943
|
+
}
|
|
944
|
+
|
|
881
945
|
.tamga-check, .tamga-radio {
|
|
882
946
|
display: inline-flex;
|
|
883
947
|
align-items: center;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `data-*` niteliklerini ayıklar — ve YALNIZ onları.
|
|
3
|
+
*
|
|
4
|
+
* KİT BİLEŞENLERİ FAZLADAN PROP YAYMIYOR ve bu bilinçli: 85 bileşenin 78'i böyle. Her şeyi
|
|
5
|
+
* yaymak, çağıranın `className`i, `onClick`i ya da `style`ı bileşenin kendi davranışının üstüne
|
|
6
|
+
* yazmasına izin vermek olurdu — "kürasyonlu seçenek, serbestlik değil" kararının tam tersi.
|
|
7
|
+
*
|
|
8
|
+
* AMA `data-*` BAŞKA. Eylemsizdir: HTML'de hiçbir davranışa bağlanmaz, yalnız bir kanca taşır —
|
|
9
|
+
* bir testin tutunacağı, bir stilin seçeceği, bir analitiğin okuyacağı. Bileşeni bozamaz.
|
|
10
|
+
*
|
|
11
|
+
* Kabul etmemenin bedeli ölçüldü ve yüksek: bir `data-verdict` kancası gerektiği için tüketici
|
|
12
|
+
* bileşeni bırakıp sınıfını elle yazıyor, ve o sınıfla birlikte gelen korumaları (kırpma,
|
|
13
|
+
* erişilebilirlik, kaydırma) kaybediyor. Kanca sessizce düşüyor, hiçbir yerde hata vermiyor:
|
|
14
|
+
* geçen taraf geçtiğini sanıyor, alan taraf hiç çizmiyor.
|
|
15
|
+
*
|
|
16
|
+
* `aria-*` BU LİSTEDE YOK, bilerek. O eylemsiz değil: bir `aria-label`, bileşenin kendi
|
|
17
|
+
* hesapladığı erişilebilir adı sessizce ezer. Erişilebilirlik bir prop olarak AÇIKÇA istenir.
|
|
18
|
+
*/
|
|
19
|
+
export declare function dataProps(props: Record<string, unknown>): Record<string, unknown>;
|
|
20
|
+
//# sourceMappingURL=data-props.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-props.d.ts","sourceRoot":"","sources":["../../src/lib/data-props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIjF"}
|