tamga-ui 0.1.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/LICENSE +21 -0
- package/README.md +172 -0
- package/dist/blocks/count-row.d.ts +29 -0
- package/dist/blocks/count-row.d.ts.map +1 -0
- package/dist/blocks/count-row.js +19 -0
- package/dist/blocks/filter-bar.d.ts +123 -0
- package/dist/blocks/filter-bar.d.ts.map +1 -0
- package/dist/blocks/filter-bar.js +74 -0
- package/dist/blocks/index.d.ts +24 -0
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +23 -0
- package/dist/blocks/save-bar.d.ts +31 -0
- package/dist/blocks/save-bar.d.ts.map +1 -0
- package/dist/blocks/save-bar.js +21 -0
- package/dist/components/a11y.d.ts +21 -0
- package/dist/components/a11y.d.ts.map +1 -0
- package/dist/components/a11y.js +159 -0
- package/dist/components/advanced-input.d.ts +115 -0
- package/dist/components/advanced-input.d.ts.map +1 -0
- package/dist/components/advanced-input.js +189 -0
- package/dist/components/avatar.d.ts +63 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +54 -0
- package/dist/components/badge.d.ts +37 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +29 -0
- package/dist/components/bar.d.ts +32 -0
- package/dist/components/bar.d.ts.map +1 -0
- package/dist/components/bar.js +33 -0
- package/dist/components/button.d.ts +45 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +56 -0
- package/dist/components/chart.d.ts +43 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chart.js +41 -0
- package/dist/components/checkbox.d.ts +13 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +16 -0
- package/dist/components/chrome.d.ts +87 -0
- package/dist/components/chrome.d.ts.map +1 -0
- package/dist/components/chrome.js +107 -0
- package/dist/components/combobox.d.ts +31 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +62 -0
- package/dist/components/control-base.d.ts +7 -0
- package/dist/components/control-base.d.ts.map +1 -0
- package/dist/components/control-base.js +6 -0
- package/dist/components/data-table.d.ts +68 -0
- package/dist/components/data-table.d.ts.map +1 -0
- package/dist/components/data-table.js +50 -0
- package/dist/components/date-picker.d.ts +52 -0
- package/dist/components/date-picker.d.ts.map +1 -0
- package/dist/components/date-picker.js +73 -0
- package/dist/components/disclosure.d.ts +31 -0
- package/dist/components/disclosure.d.ts.map +1 -0
- package/dist/components/disclosure.js +32 -0
- package/dist/components/display.d.ts +188 -0
- package/dist/components/display.d.ts.map +1 -0
- package/dist/components/display.js +190 -0
- package/dist/components/empty-state.d.ts +150 -0
- package/dist/components/empty-state.d.ts.map +1 -0
- package/dist/components/empty-state.js +113 -0
- package/dist/components/error-state.d.ts +38 -0
- package/dist/components/error-state.d.ts.map +1 -0
- package/dist/components/error-state.js +16 -0
- package/dist/components/file-upload.d.ts +34 -0
- package/dist/components/file-upload.d.ts.map +1 -0
- package/dist/components/file-upload.js +34 -0
- package/dist/components/gauge.d.ts +47 -0
- package/dist/components/gauge.d.ts.map +1 -0
- package/dist/components/gauge.js +65 -0
- package/dist/components/icon.d.ts +32 -0
- package/dist/components/icon.d.ts.map +1 -0
- package/dist/components/icon.js +20 -0
- package/dist/components/icons.d.ts +19 -0
- package/dist/components/icons.d.ts.map +1 -0
- package/dist/components/icons.js +39 -0
- package/dist/components/input.d.ts +35 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +41 -0
- package/dist/components/layout.d.ts +133 -0
- package/dist/components/layout.d.ts.map +1 -0
- package/dist/components/layout.js +132 -0
- package/dist/components/link.d.ts +22 -0
- package/dist/components/link.d.ts.map +1 -0
- package/dist/components/link.js +2 -0
- package/dist/components/live-scope.d.ts +15 -0
- package/dist/components/live-scope.d.ts.map +1 -0
- package/dist/components/live-scope.js +67 -0
- package/dist/components/log-view.d.ts +34 -0
- package/dist/components/log-view.d.ts.map +1 -0
- package/dist/components/log-view.js +30 -0
- package/dist/components/number-input.d.ts +26 -0
- package/dist/components/number-input.d.ts.map +1 -0
- package/dist/components/number-input.js +57 -0
- package/dist/components/overlay.d.ts +257 -0
- package/dist/components/overlay.d.ts.map +1 -0
- package/dist/components/overlay.js +276 -0
- package/dist/components/pagination.d.ts +38 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +46 -0
- package/dist/components/pie.d.ts +40 -0
- package/dist/components/pie.d.ts.map +1 -0
- package/dist/components/pie.js +74 -0
- package/dist/components/primitives.d.ts +96 -0
- package/dist/components/primitives.d.ts.map +1 -0
- package/dist/components/primitives.js +81 -0
- package/dist/components/progress.d.ts +29 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +16 -0
- package/dist/components/radio-group.d.ts +17 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +23 -0
- package/dist/components/rail-link.d.ts +24 -0
- package/dist/components/rail-link.d.ts.map +1 -0
- package/dist/components/rail-link.js +24 -0
- package/dist/components/rich-text.d.ts +51 -0
- package/dist/components/rich-text.d.ts.map +1 -0
- package/dist/components/rich-text.js +147 -0
- package/dist/components/section.d.ts +15 -0
- package/dist/components/section.d.ts.map +1 -0
- package/dist/components/section.js +8 -0
- package/dist/components/segmented.d.ts +13 -0
- package/dist/components/segmented.d.ts.map +1 -0
- package/dist/components/segmented.js +12 -0
- package/dist/components/skeleton.d.ts +69 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +67 -0
- package/dist/components/slider.d.ts +18 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +15 -0
- package/dist/components/sparkline.d.ts +17 -0
- package/dist/components/sparkline.d.ts.map +1 -0
- package/dist/components/sparkline.js +19 -0
- package/dist/components/spinner.d.ts +15 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +22 -0
- package/dist/components/stacked-bar.d.ts +21 -0
- package/dist/components/stacked-bar.d.ts.map +1 -0
- package/dist/components/stacked-bar.js +41 -0
- package/dist/components/surface.d.ts +76 -0
- package/dist/components/surface.d.ts.map +1 -0
- package/dist/components/surface.js +49 -0
- package/dist/components/switch.d.ts +12 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +13 -0
- package/dist/components/tabs.d.ts +47 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +12 -0
- package/dist/components/timeline-strip.d.ts +19 -0
- package/dist/components/timeline-strip.d.ts.map +1 -0
- package/dist/components/timeline-strip.js +14 -0
- package/dist/components/tone.d.ts +58 -0
- package/dist/components/tone.d.ts.map +1 -0
- package/dist/components/tone.js +70 -0
- package/dist/components/tree-select.d.ts +26 -0
- package/dist/components/tree-select.d.ts.map +1 -0
- package/dist/components/tree-select.js +59 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/kit.css +2248 -0
- package/dist/lib/cn.d.ts +10 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +12 -0
- package/dist/lib/color.d.ts +68 -0
- package/dist/lib/color.d.ts.map +1 -0
- package/dist/lib/color.js +134 -0
- package/dist/lib/palette.d.ts +84 -0
- package/dist/lib/palette.d.ts.map +1 -0
- package/dist/lib/palette.js +193 -0
- package/dist/lib/scroll-lock.d.ts +19 -0
- package/dist/lib/scroll-lock.d.ts.map +1 -0
- package/dist/lib/scroll-lock.js +33 -0
- package/dist/patterns/app-shell.d.ts +36 -0
- package/dist/patterns/app-shell.d.ts.map +1 -0
- package/dist/patterns/app-shell.js +14 -0
- package/dist/patterns/auth-template.d.ts +36 -0
- package/dist/patterns/auth-template.d.ts.map +1 -0
- package/dist/patterns/auth-template.js +40 -0
- package/dist/patterns/detail-template.d.ts +52 -0
- package/dist/patterns/detail-template.d.ts.map +1 -0
- package/dist/patterns/detail-template.js +11 -0
- package/dist/patterns/index.d.ts +18 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +17 -0
- package/dist/patterns/list-template.d.ts +32 -0
- package/dist/patterns/list-template.d.ts.map +1 -0
- package/dist/patterns/list-template.js +8 -0
- package/dist/patterns/overview-template.d.ts +26 -0
- package/dist/patterns/overview-template.d.ts.map +1 -0
- package/dist/patterns/overview-template.js +8 -0
- package/dist/patterns/public-template.d.ts +28 -0
- package/dist/patterns/public-template.d.ts.map +1 -0
- package/dist/patterns/public-template.js +7 -0
- package/dist/patterns/settings-template.d.ts +50 -0
- package/dist/patterns/settings-template.d.ts.map +1 -0
- package/dist/patterns/settings-template.js +33 -0
- package/dist/patterns/shared.d.ts +40 -0
- package/dist/patterns/shared.d.ts.map +1 -0
- package/dist/patterns/shared.js +29 -0
- package/dist/patterns/wizard-template.d.ts +28 -0
- package/dist/patterns/wizard-template.d.ts.map +1 -0
- package/dist/patterns/wizard-template.js +15 -0
- package/dist/styles.css +5 -0
- package/dist/theme.css +812 -0
- package/package.json +87 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function LiveScope({ children }: {
|
|
2
|
+
children: React.ReactNode;
|
|
3
|
+
}): import("react").JSX.Element;
|
|
4
|
+
/**
|
|
5
|
+
* Ask to pulse. Returns whether this element won.
|
|
6
|
+
*
|
|
7
|
+
* `severity === null` means the state does not qualify at all (healthy, silenced)
|
|
8
|
+
* and never enters the contest.
|
|
9
|
+
*
|
|
10
|
+
* With no LiveScope above it, the answer is yes: a lone beacon in a Storybook
|
|
11
|
+
* story has nothing to compete with, and a hook that returned false without a
|
|
12
|
+
* provider would make every story look broken.
|
|
13
|
+
*/
|
|
14
|
+
export declare function useLiveClaim(severity: number | null): boolean;
|
|
15
|
+
//# sourceMappingURL=live-scope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-scope.d.ts","sourceRoot":"","sources":["../../src/components/live-scope.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,+BAuCpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAe7D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useId, useMemo, useState, } from "react";
|
|
4
|
+
const LiveContext = createContext(null);
|
|
5
|
+
export function LiveScope({ children }) {
|
|
6
|
+
const [claims, setClaims] = useState({});
|
|
7
|
+
const claim = useCallback((id, severity) => {
|
|
8
|
+
setClaims((prev) => (prev[id] === severity ? prev : { ...prev, [id]: severity }));
|
|
9
|
+
}, []);
|
|
10
|
+
const release = useCallback((id) => {
|
|
11
|
+
setClaims((prev) => {
|
|
12
|
+
if (!(id in prev))
|
|
13
|
+
return prev;
|
|
14
|
+
const next = { ...prev };
|
|
15
|
+
delete next[id];
|
|
16
|
+
return next;
|
|
17
|
+
});
|
|
18
|
+
}, []);
|
|
19
|
+
const winner = useMemo(() => {
|
|
20
|
+
let best = null;
|
|
21
|
+
let bestSeverity = -Infinity;
|
|
22
|
+
/* Object key order is insertion order, and claims are registered in effect
|
|
23
|
+
order — which is tree order. So a strict `>` keeps the FIRST of equals,
|
|
24
|
+
and "first" means highest on the page. That is question 2's answer
|
|
25
|
+
(SETTLED 2026-08-19, Ercüment: first of equals wins), and it lives here
|
|
26
|
+
rather than in a doc nobody reads. The reasoning: the presence of the
|
|
27
|
+
signal matters more than which row carries it, and every alternative
|
|
28
|
+
(timestamp, domain priority) buys a nicer tie-break by making call sites
|
|
29
|
+
thread data they do not otherwise need. */
|
|
30
|
+
for (const [id, severity] of Object.entries(claims)) {
|
|
31
|
+
if (severity > bestSeverity) {
|
|
32
|
+
best = id;
|
|
33
|
+
bestSeverity = severity;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return best;
|
|
37
|
+
}, [claims]);
|
|
38
|
+
const value = useMemo(() => ({ claim, release, winner }), [claim, release, winner]);
|
|
39
|
+
return _jsx(LiveContext.Provider, { value: value, children: children });
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Ask to pulse. Returns whether this element won.
|
|
43
|
+
*
|
|
44
|
+
* `severity === null` means the state does not qualify at all (healthy, silenced)
|
|
45
|
+
* and never enters the contest.
|
|
46
|
+
*
|
|
47
|
+
* With no LiveScope above it, the answer is yes: a lone beacon in a Storybook
|
|
48
|
+
* story has nothing to compete with, and a hook that returned false without a
|
|
49
|
+
* provider would make every story look broken.
|
|
50
|
+
*/
|
|
51
|
+
export function useLiveClaim(severity) {
|
|
52
|
+
const arbiter = useContext(LiveContext);
|
|
53
|
+
const id = useId();
|
|
54
|
+
useEffect(() => {
|
|
55
|
+
if (!arbiter || severity === null)
|
|
56
|
+
return;
|
|
57
|
+
arbiter.claim(id, severity);
|
|
58
|
+
return () => arbiter.release(id);
|
|
59
|
+
/* claim/release are stable; winner deliberately is not a dependency, or
|
|
60
|
+
every re-election would re-register and start another one */
|
|
61
|
+
}, [arbiter, id, severity]);
|
|
62
|
+
if (severity === null)
|
|
63
|
+
return false;
|
|
64
|
+
if (!arbiter)
|
|
65
|
+
return true;
|
|
66
|
+
return arbiter.winner === id;
|
|
67
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type Tone } from "./tone.js";
|
|
2
|
+
/**
|
|
3
|
+
* Log görüntüleyici.
|
|
4
|
+
*
|
|
5
|
+
* Gerekçe: docs/gerekce/02-veri-ve-liste.md
|
|
6
|
+
*/
|
|
7
|
+
export type LogLine = {
|
|
8
|
+
id: string;
|
|
9
|
+
/**
|
|
10
|
+
* Pre-formatted; the kit knows no time format. TR: Önceden biçimlendirilmiş; kit saat biçimi
|
|
11
|
+
* bilmez.
|
|
12
|
+
*/
|
|
13
|
+
time?: string;
|
|
14
|
+
text: string;
|
|
15
|
+
tone?: Tone;
|
|
16
|
+
};
|
|
17
|
+
export declare function LogView({ lines, label, height, follow, wrap, className, }: {
|
|
18
|
+
lines: readonly LogLine[];
|
|
19
|
+
/**
|
|
20
|
+
* The region's name; it shows in the landmark list for keyboard navigation. TR: Bölgenin adı;
|
|
21
|
+
* klavyeyle gezinende landmark listesinde görünür.
|
|
22
|
+
*/
|
|
23
|
+
label: string;
|
|
24
|
+
height?: number;
|
|
25
|
+
/** Scroll to the bottom when a new line arrives. TR: Yeni satır geldiğinde en alta kay. */
|
|
26
|
+
follow?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Wrap long lines. Off, it scrolls horizontally. TR: Uzun satırları sar. Kapalıyken yatay
|
|
29
|
+
* kayar.
|
|
30
|
+
*/
|
|
31
|
+
wrap?: boolean;
|
|
32
|
+
className?: string;
|
|
33
|
+
}): import("react").JSX.Element;
|
|
34
|
+
//# sourceMappingURL=log-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-view.d.ts","sourceRoot":"","sources":["../../src/components/log-view.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;GAIG;AAEH,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAEF,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,KAAK,EACL,MAAY,EACZ,MAAa,EACb,IAAY,EACZ,SAAS,GACV,EAAE;IACD,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;IAC1B;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAmDA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef } from "react";
|
|
4
|
+
import { cn } from "../lib/cn.js";
|
|
5
|
+
import { toneOf } from "./tone.js";
|
|
6
|
+
export function LogView({ lines, label, height = 320, follow = true, wrap = false, className, }) {
|
|
7
|
+
const box = useRef(null);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (!follow)
|
|
10
|
+
return;
|
|
11
|
+
const el = box.current;
|
|
12
|
+
if (!el)
|
|
13
|
+
return;
|
|
14
|
+
/* SADECE ZATEN ALTTAYSA kaydır. Yukarıda bir şey okuyan kişiyi aşağı
|
|
15
|
+
fırlatmak, bu bileşenin yapabileceği en can sıkıcı şey — ve "hep en
|
|
16
|
+
alta git" davranışının varsayılan olduğu her log görüntüleyicide
|
|
17
|
+
yaşanır. 32px'lik tolerans, tam altta olmayı beklemeden çalışsın diye. */
|
|
18
|
+
const atBottom = el.scrollHeight - el.scrollTop - el.clientHeight < 32;
|
|
19
|
+
if (atBottom)
|
|
20
|
+
el.scrollTop = el.scrollHeight;
|
|
21
|
+
}, [lines, follow]);
|
|
22
|
+
return (_jsx("div", { ref: box, className: cn("tamga-surface overflow-y-auto p-3 font-mono text-caption", className), style: { height },
|
|
23
|
+
/* `log` rolü: ekran okuyucu bunu bir günlük olarak tanır ve — kritik
|
|
24
|
+
olarak — `aria-live` OLMADAN sessiz kalır. Akan bir bölgeyi
|
|
25
|
+
duyurmak sesli okuyucuyu boğar; kullanıcı isterse kendisi okur. */
|
|
26
|
+
role: "log", "aria-label": label, tabIndex: 0, children: lines.map((l) => {
|
|
27
|
+
const c = l.tone ? toneOf(l.tone) : null;
|
|
28
|
+
return (_jsxs("div", { className: cn("flex gap-3 py-0.5", wrap ? "break-words" : "whitespace-nowrap"), children: [l.time ? (_jsx("span", { className: "w-20 shrink-0 text-ink-faint tabular-nums", children: l.time })) : null, _jsx("span", { className: "min-w-0", style: c ? { color: c.mark } : undefined, children: l.text })] }, l.id));
|
|
29
|
+
}) }));
|
|
30
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NumberInput — fiyat, stok, ağırlık.
|
|
3
|
+
*
|
|
4
|
+
* Gerekçe: docs/gerekce/01-form-ve-girdi.md
|
|
5
|
+
*/
|
|
6
|
+
export declare function NumberInput({ value, onChange, min, max, step,
|
|
7
|
+
/** Değerin sonuna yapışan birim: "₺", "kg", "%" */
|
|
8
|
+
suffix, disabled, invalid, full,
|
|
9
|
+
/** Artır/azalt düğmelerinin erişilebilir adları. Kit çeviri çekmez. */
|
|
10
|
+
labels, className, }: {
|
|
11
|
+
value: number | null;
|
|
12
|
+
onChange?: (next: number | null) => void;
|
|
13
|
+
min?: number;
|
|
14
|
+
max?: number;
|
|
15
|
+
step?: number;
|
|
16
|
+
suffix?: string;
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
invalid?: boolean;
|
|
19
|
+
full?: boolean;
|
|
20
|
+
labels: {
|
|
21
|
+
increase: string;
|
|
22
|
+
decrease: string;
|
|
23
|
+
};
|
|
24
|
+
className?: string;
|
|
25
|
+
}): import("react").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=number-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-input.d.ts","sourceRoot":"","sources":["../../src/components/number-input.tsx"],"names":[],"mappings":"AAOA;;;;GAIG;AAEH,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,QAAQ,EACR,GAAG,EACH,GAAG,EACH,IAAQ;AACR,mDAAmD;AACnD,MAAM,EACN,QAAgB,EAChB,OAAe,EACf,IAAY;AACZ,uEAAuE;AACvE,MAAM,EACN,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAoFA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId } from "react";
|
|
4
|
+
import { cn } from "../lib/cn.js";
|
|
5
|
+
import { Icon } from "./icon.js";
|
|
6
|
+
import { CaretDown } from "./icons.js";
|
|
7
|
+
/**
|
|
8
|
+
* NumberInput — fiyat, stok, ağırlık.
|
|
9
|
+
*
|
|
10
|
+
* Gerekçe: docs/gerekce/01-form-ve-girdi.md
|
|
11
|
+
*/
|
|
12
|
+
export function NumberInput({ value, onChange, min, max, step = 1,
|
|
13
|
+
/** Değerin sonuna yapışan birim: "₺", "kg", "%" */
|
|
14
|
+
suffix, disabled = false, invalid = false, full = false,
|
|
15
|
+
/** Artır/azalt düğmelerinin erişilebilir adları. Kit çeviri çekmez. */
|
|
16
|
+
labels, className, }) {
|
|
17
|
+
const id = useId();
|
|
18
|
+
const clamp = (n) => {
|
|
19
|
+
if (min !== undefined && n < min)
|
|
20
|
+
return min;
|
|
21
|
+
if (max !== undefined && n > max)
|
|
22
|
+
return max;
|
|
23
|
+
return n;
|
|
24
|
+
};
|
|
25
|
+
const bump = (dir) => {
|
|
26
|
+
if (disabled)
|
|
27
|
+
return;
|
|
28
|
+
const base = value ?? min ?? 0;
|
|
29
|
+
/* Kayan nokta toplamasının `0.1 + 0.2 = 0.30000000000000004` üretmesini
|
|
30
|
+
engellemek için adım hassasiyetinde yuvarlanıyor. */
|
|
31
|
+
const decimals = (String(step).split(".")[1] ?? "").length;
|
|
32
|
+
onChange?.(clamp(Number((base + dir * step).toFixed(decimals))));
|
|
33
|
+
};
|
|
34
|
+
const atMin = min !== undefined && value !== null && value <= min;
|
|
35
|
+
const atMax = max !== undefined && value !== null && value >= max;
|
|
36
|
+
return (_jsxs("span", { className: cn("relative inline-flex items-center", full && "w-full", className), children: [_jsx("input", { id: id, type: "text", inputMode: "decimal", value: value ?? "", disabled: disabled, "aria-invalid": invalid || undefined, onChange: (e) => {
|
|
37
|
+
const raw = e.target.value.replace(",", ".").trim();
|
|
38
|
+
if (raw === "")
|
|
39
|
+
return onChange?.(null);
|
|
40
|
+
const n = Number(raw);
|
|
41
|
+
if (!Number.isNaN(n))
|
|
42
|
+
onChange?.(n);
|
|
43
|
+
}, onBlur: () => value !== null && onChange?.(clamp(value)), onKeyDown: (e) => {
|
|
44
|
+
if (e.key === "ArrowUp") {
|
|
45
|
+
e.preventDefault();
|
|
46
|
+
bump(1);
|
|
47
|
+
}
|
|
48
|
+
if (e.key === "ArrowDown") {
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
bump(-1);
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
/* Sağ boşluk spinner'ın genişliği (22px) artı kenar payı; birim varsa
|
|
54
|
+
onun yeri de eklenir. Elle sayı yazmak yerine hesaplanıyor, çünkü
|
|
55
|
+
birim "₺" da olabilir "adet" de. */
|
|
56
|
+
className: cn("tamga-input w-full tabular-nums", invalid && "tamga-input-invalid"), style: { paddingRight: suffix ? 76 : 32 } }), suffix ? (_jsx("span", { className: "pointer-events-none absolute right-8 font-mono text-small text-ink-faint", children: suffix })) : null, _jsxs("span", { className: "tamga-stepper", children: [_jsx("button", { type: "button", "aria-label": labels.increase, "aria-controls": id, disabled: disabled || atMax, onClick: () => bump(1), children: _jsx(Icon, { icon: CaretDown, size: "xs", className: "rotate-180" }) }), _jsx("button", { type: "button", "aria-label": labels.decrease, "aria-controls": id, disabled: disabled || atMin, onClick: () => bump(-1), children: _jsx(Icon, { icon: CaretDown, size: "xs" }) })] })] }));
|
|
57
|
+
}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import type { Tone } from "./tone.js";
|
|
2
|
+
export type MenuItem = {
|
|
3
|
+
kind?: "item";
|
|
4
|
+
label: string;
|
|
5
|
+
icon?: React.ReactNode;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
state?: Tone;
|
|
8
|
+
onSelect?: () => void;
|
|
9
|
+
/**
|
|
10
|
+
* The menu is a CHOICE, and this row is the one currently chosen.
|
|
11
|
+
*
|
|
12
|
+
* Set it and the row wears the kit's existing chosen treatment (`.tamga-option[data-selected]` —
|
|
13
|
+
* wash plus a left rule, the same one the Select overlay uses) and reports itself as
|
|
14
|
+
* `menuitemradio` / `aria-checked` instead of `menuitem`. Leave it undefined and the menu is
|
|
15
|
+
* a list of ACTIONS, which is what most menus are — a plain `menuitem` with no state to
|
|
16
|
+
* announce. The distinction is not decoration: a screen reader given six identical menu
|
|
17
|
+
* items has no way to learn which language it is already in.
|
|
18
|
+
*/
|
|
19
|
+
checked?: boolean;
|
|
20
|
+
} | {
|
|
21
|
+
kind: "separator";
|
|
22
|
+
} | {
|
|
23
|
+
kind: "label";
|
|
24
|
+
label: string;
|
|
25
|
+
};
|
|
26
|
+
export declare function DropdownMenu({ trigger, items, align, width, loading, loadingRows, openOnHover, }: {
|
|
27
|
+
trigger: React.ReactNode;
|
|
28
|
+
items: MenuItem[];
|
|
29
|
+
align?: "start" | "end";
|
|
30
|
+
width?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Opens when the pointer arrives, not only on click. TR: İşaretçi geldiğinde de açılır, yalnız
|
|
33
|
+
* tıklamayla değil.
|
|
34
|
+
*
|
|
35
|
+
* FOR A MENU THAT IS THE ONLY THING IN ITS CORNER: an account avatar, a toolbar overflow. There
|
|
36
|
+
* the hover costs nothing, because there is nothing beside it to open by accident.
|
|
37
|
+
*
|
|
38
|
+
* CLICK AND FOCUS STILL OPEN IT. Hover is an ADDITION, never the only way in: a touch screen
|
|
39
|
+
* has no hover at all, and a keyboard reaches the trigger by focus. A menu that opens only on
|
|
40
|
+
* hover is invisible to both. TR: Tıklama ve odak da açıyor. Hover bir EK, tek yol değil:
|
|
41
|
+
* dokunmatik ekranda hover diye bir şey yok, klavye tetikleyiciye odakla geliyor. Yalnız
|
|
42
|
+
* hover'da açılan bir menü ikisine de görünmez.
|
|
43
|
+
*/
|
|
44
|
+
openOnHover?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* contents not in yet; the panel holds its shape instead of showing a spinner TR: içerik
|
|
47
|
+
* henüz gelmedi; panel bir dönen simge göstermek yerine şeklini koruyor
|
|
48
|
+
*/
|
|
49
|
+
loading?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* How many skeleton rows to hold while `loading`. SETTLED 2026-08-19 (open question 4): this
|
|
52
|
+
* is never a taste value; it is the number of records that are actually coming, because the
|
|
53
|
+
* whole point of the skeleton is that the panel does not resize when they land. Where that
|
|
54
|
+
* number comes from (api-kontrati.html A7, KİLİTLİ): · paginated list → the request's
|
|
55
|
+
* `page_size` (DRF default 25, max 100) · last page → `meta.count - (page - 1) * page_size` ·
|
|
56
|
+
* cursor list → `page_size` (no `count` is returned, by design) · known-size menu → the item
|
|
57
|
+
* count the caller already knows The default of 4 fits a menu, not a list. A list that leaves
|
|
58
|
+
* it at 4 is a bug that looks like a design choice. TR: `loading` sürerken kaç iskelet satırı
|
|
59
|
+
* tutulacağı. 2026-08-19'da KARARA BAĞLANDI (açık soru 4): bu asla bir zevk değeri değil;
|
|
60
|
+
* gerçekten gelmekte olan kayıt sayısı, çünkü iskeletin bütün amacı kayıtlar geldiğinde
|
|
61
|
+
* panelin yeniden boyutlanmaması. O sayının nereden geldiği (api-kontrati.html A7, KİLİTLİ):
|
|
62
|
+
* · sayfalı liste → isteğin `page_size` değeri (DRF varsayılanı 25, en çok 100) · son sayfa →
|
|
63
|
+
* `meta.count - (page - 1) * page_size` · imleçli liste → `page_size` (tasarım gereği `count`
|
|
64
|
+
* dönmüyor) · boyu bilinen menü → çağıranın zaten bildiği öğe sayısı Varsayılan 4 bir menüye
|
|
65
|
+
* uyuyor, bir listeye değil. 4'te bırakılmış bir liste, tasarım kararı gibi görünen bir
|
|
66
|
+
* hatadır.
|
|
67
|
+
*/
|
|
68
|
+
loadingRows?: number;
|
|
69
|
+
}): import("react").JSX.Element;
|
|
70
|
+
export declare function Popover({ trigger, title, children, footer, width, align, loading, loadingBlock, closeLabel, }: {
|
|
71
|
+
trigger: React.ReactNode;
|
|
72
|
+
title?: string;
|
|
73
|
+
/**
|
|
74
|
+
* Accessible name for the close control, supplied by the caller (docs/08 rule 5). TR: Kapatma
|
|
75
|
+
* kontrolünün erişilebilir adı, çağıran veriyor (docs/08 kural 5).
|
|
76
|
+
*/
|
|
77
|
+
closeLabel: string;
|
|
78
|
+
children: React.ReactNode;
|
|
79
|
+
footer?: React.ReactNode;
|
|
80
|
+
width?: number;
|
|
81
|
+
align?: "start" | "end";
|
|
82
|
+
/**
|
|
83
|
+
* contents not in yet; the panel holds its shape instead of showing a spinner TR: içerik
|
|
84
|
+
* henüz gelmedi; panel bir dönen simge göstermek yerine şeklini koruyor
|
|
85
|
+
*/
|
|
86
|
+
loading?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* height of a leading block, if the panel's real body opens with one TR: panelin gerçek
|
|
89
|
+
* gövdesi bir blokla açılıyorsa o baştaki bloğun yüksekliği
|
|
90
|
+
*/
|
|
91
|
+
loadingBlock?: number;
|
|
92
|
+
}): import("react").JSX.Element;
|
|
93
|
+
declare const placements: {
|
|
94
|
+
readonly top: "bottom-[var(--overlay-above)] left-1/2 -translate-x-1/2";
|
|
95
|
+
readonly bottom: "top-[var(--overlay-below)] left-1/2 -translate-x-1/2";
|
|
96
|
+
readonly left: "right-[var(--overlay-below)] top-1/2 -translate-y-1/2";
|
|
97
|
+
readonly right: "left-[var(--overlay-below)] top-1/2 -translate-y-1/2";
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* KABARCIK `fixed`, `absolute` DEĞİL.
|
|
101
|
+
*
|
|
102
|
+
* Ölçülen hata: dar bir kenar çubuğunda ipucu hiç görünmüyordu. Sebep
|
|
103
|
+
* `overflow`du — menü kaydırılabilir olduğu için (`overflow-y: auto`, ki yatayı
|
|
104
|
+
* da `auto` yapıyor) ipucu doğuyor, çiziliyor ve kabın dışında kaldığı için
|
|
105
|
+
* tamamen kırpılıyordu. Bu, kitin üç kez karşılaştığı aynı tuzağın üçüncü yüzü
|
|
106
|
+
* (kart, ray, şimdi ipucu).
|
|
107
|
+
*
|
|
108
|
+
* Z-index çözmüyor: hiçbir yığın sırası bir `overflow` kırpmasını aşamaz.
|
|
109
|
+
* Çözüm kabarcığı akıştan çıkarmak. `fixed` bir eleman en yakın kaydırma
|
|
110
|
+
* kabına değil GÖRÜNTÜ ALANINA göre yerleşiyor, yani hiçbir kap onu kesemiyor.
|
|
111
|
+
*
|
|
112
|
+
* KONUM HOVER'DA ÖLÇÜLÜYOR, çünkü `fixed` bir elemanın CSS ile tetikleyiciye
|
|
113
|
+
* hizalanmasının yolu yok. Ölçüm yalnız ipucu açılırken yapılıyor: kapalıyken
|
|
114
|
+
* hiçbir maliyeti yok.
|
|
115
|
+
*/
|
|
116
|
+
export declare function Tooltip({ label, placement, children, }: {
|
|
117
|
+
label: string;
|
|
118
|
+
placement?: keyof typeof placements;
|
|
119
|
+
children: React.ReactNode;
|
|
120
|
+
}): import("react").JSX.Element;
|
|
121
|
+
export type ToastTone = Tone;
|
|
122
|
+
export declare function Toast({ tone, title, description, action, onDismiss, dismissLabel, }: {
|
|
123
|
+
tone?: ToastTone;
|
|
124
|
+
title: string;
|
|
125
|
+
description?: string;
|
|
126
|
+
action?: React.ReactNode;
|
|
127
|
+
onDismiss?: () => void;
|
|
128
|
+
/**
|
|
129
|
+
* Accessible name for the dismiss control, supplied by the caller (docs/08 rule 5). TR:
|
|
130
|
+
* Kapatma kontrolünün erişilebilir adı, çağıran veriyor (docs/08 kural 5).
|
|
131
|
+
*/
|
|
132
|
+
dismissLabel: string;
|
|
133
|
+
}): import("react").JSX.Element;
|
|
134
|
+
/**
|
|
135
|
+
* Where toasts land. Top-right is the default: it is the one corner that
|
|
136
|
+
* never covers a table's actions column or a form's footer buttons.
|
|
137
|
+
*/
|
|
138
|
+
declare const corners: {
|
|
139
|
+
readonly "top-right": "top-6 right-6 items-end";
|
|
140
|
+
readonly "top-left": "top-6 left-6 items-start";
|
|
141
|
+
readonly "bottom-right": "bottom-6 right-6 items-end";
|
|
142
|
+
readonly "bottom-left": "bottom-6 left-6 items-start";
|
|
143
|
+
};
|
|
144
|
+
export declare function ToastViewport({ position, children, }: {
|
|
145
|
+
position?: keyof typeof corners;
|
|
146
|
+
children: React.ReactNode;
|
|
147
|
+
}): import("react").JSX.Element;
|
|
148
|
+
/**
|
|
149
|
+
* The modal shell. Hooks cannot run behind an early return, so the trap lives
|
|
150
|
+
* here and the surface below stays a plain component.
|
|
151
|
+
*/
|
|
152
|
+
/**
|
|
153
|
+
* Diyalog genişliği. Bir VARYANT, ayrı bir bileşen değil (kitin kuralı: adı
|
|
154
|
+
* bölünen şey bileşen, ayarlanan şey prop).
|
|
155
|
+
*
|
|
156
|
+
* `wide` bir ÖNİZLEME için var: bir bloğu ya da tam bir ekran şablonunu 448
|
|
157
|
+
* pikselde göstermek, gösterdiğini gizlemek olur. `md` hâlâ varsayılan, çünkü
|
|
158
|
+
* bir diyaloğun asıl işi bir KARAR sormak ve geniş bir karar kutusu, kararı
|
|
159
|
+
* daha kolay yapmıyor.
|
|
160
|
+
*
|
|
161
|
+
* `full` BİR ÇALIŞMA YÜZEYİ için: bir görsel düzenleyici, bir tuval, bir harita
|
|
162
|
+
* seçici. Bunlar bir karar kutusu değil bir EKRAN, ve `wide` bile onlara az
|
|
163
|
+
* geliyor — kalan kenar boşluğu tuvalden çalınan alan. Bu boyutta panelin
|
|
164
|
+
* kenarı, yarıçapı ve kaydırma gölgesi de kalkıyor: yükseltilecek bir zemin
|
|
165
|
+
* kalmadığında yükselme işareti de anlamsız. Nadir olması gerekiyor; bir formu
|
|
166
|
+
* tam ekran açmak, formu daha kolay doldurmuyor.
|
|
167
|
+
*/
|
|
168
|
+
declare const DIALOG_GENISLIK: {
|
|
169
|
+
readonly md: "max-w-md";
|
|
170
|
+
readonly lg: "max-w-3xl";
|
|
171
|
+
readonly wide: "max-w-(--dialog-wide)";
|
|
172
|
+
readonly full: "max-w-none";
|
|
173
|
+
};
|
|
174
|
+
export type DialogSize = keyof typeof DIALOG_GENISLIK;
|
|
175
|
+
/**
|
|
176
|
+
* Yıkıcı bir eylemin önündeki kapı.
|
|
177
|
+
*
|
|
178
|
+
* NEDEN AYRI BİR BİLEŞEN. `Dialog` zaten var ve bu onun üstüne kurulu; ama
|
|
179
|
+
* "emin misin" diyaloğu her seferinde elle kurulduğunda üç şey kayıyor ve
|
|
180
|
+
* üçü de güvenlikle ilgili:
|
|
181
|
+
*
|
|
182
|
+
* 1. ONAY DÜĞMESİ FİİLİ TAŞIR, "Tamam"ı değil. Bir kullanıcı diyaloğun
|
|
183
|
+
* metnini okumadan düğmeye basar; okuduğu tek şey düğmenin üstündeki
|
|
184
|
+
* kelimedir. "Tamam" hiçbir şey söylemez, "Sil" söyler.
|
|
185
|
+
* 2. ODAK VAZGEÇ'TE AÇILIR. Yıkıcı bir diyalogda odağın onay düğmesinde
|
|
186
|
+
* olması, Enter'a basan birinin kaydı silmesi demek. Güvenli olan
|
|
187
|
+
* varsayılan olmalı.
|
|
188
|
+
* 3. GERİ ALINAMAZLIK YAZILIR. Gövde metni ne olacağını değil NEYİN GERİ
|
|
189
|
+
* GELMEYECEĞİNİ söyler; kullanıcının kararı buna bağlı.
|
|
190
|
+
*
|
|
191
|
+
* KELİMELER ÇAĞIRANIN. Kit hiçbir dil bilmiyor: başlık, gövde ve iki düğmenin
|
|
192
|
+
* etiketi dışarıdan geliyor.
|
|
193
|
+
*/
|
|
194
|
+
export declare function ConfirmDialog({ open, onClose, onConfirm, title, children, confirmLabel, cancelLabel, closeLabel, tone, busy, confirmDisabled, }: {
|
|
195
|
+
open: boolean;
|
|
196
|
+
onClose: () => void;
|
|
197
|
+
onConfirm: () => void;
|
|
198
|
+
title: string;
|
|
199
|
+
children: React.ReactNode;
|
|
200
|
+
/**
|
|
201
|
+
* The VERB of the thing that will happen: "Delete", "Unpublish". Never "OK". TR: Yapılacak
|
|
202
|
+
* işin FİİLİ: "Sil", "Yayından kaldır". Asla "Tamam".
|
|
203
|
+
*/
|
|
204
|
+
confirmLabel: string;
|
|
205
|
+
cancelLabel: string;
|
|
206
|
+
closeLabel: string;
|
|
207
|
+
/**
|
|
208
|
+
* `danger` an irreversible loss, `primary` a step that only asks for attention. TR: `danger`
|
|
209
|
+
* geri alınamaz bir kayıp, `primary` yalnızca dikkat isteyen bir adım.
|
|
210
|
+
*/
|
|
211
|
+
tone?: "danger" | "primary";
|
|
212
|
+
/**
|
|
213
|
+
* While the operation runs: both buttons lock, so nothing is submitted twice. TR: İşlem
|
|
214
|
+
* sürerken: iki düğme de kilitleniyor, çift gönderim olmuyor.
|
|
215
|
+
*/
|
|
216
|
+
busy?: boolean;
|
|
217
|
+
/**
|
|
218
|
+
* Disables the confirm button: the dialog OPENS but the action cannot be taken. WHY IT IS
|
|
219
|
+
* NEEDED. Some destructive actions have a precondition ("a customer with orders cannot be
|
|
220
|
+
* deleted") and that condition is only known by looking at the record. There are two ways:
|
|
221
|
+
* let the click through and take an error from the server, or write the rule in the dialog
|
|
222
|
+
* and close the confirm. The second does not spend the user's time and TEACHES the rule. The
|
|
223
|
+
* body text has to say the reason; a disabled button is not a reason on its own. TR: Onay
|
|
224
|
+
* düğmesini kapatır: diyalog AÇILIR ama işlem yapılamaz. NEDEN GEREKLİ. Bazı yıkıcı
|
|
225
|
+
* işlemlerin bir ön koşulu var ("siparişi olan müşteri silinemez") ve o koşul ancak kayda
|
|
226
|
+
* bakınca bilinir. İki yol var: düğmeyi tıklatıp sunucudan hata almak, ya da kuralı diyalogda
|
|
227
|
+
* yazıp onayı kapatmak. İkincisi kullanıcının zamanını almıyor ve kuralı ÖĞRETİYOR. Gövde
|
|
228
|
+
* metni sebebi söylemek zorunda; kapalı bir düğme tek başına sebep değildir.
|
|
229
|
+
*/
|
|
230
|
+
confirmDisabled?: boolean;
|
|
231
|
+
}): import("react").JSX.Element;
|
|
232
|
+
export declare function Dialog({ open, onClose, title, children, footer, loading, closeLabel, size, }: {
|
|
233
|
+
open: boolean;
|
|
234
|
+
onClose: () => void;
|
|
235
|
+
title: string;
|
|
236
|
+
children: React.ReactNode;
|
|
237
|
+
footer?: React.ReactNode;
|
|
238
|
+
/**
|
|
239
|
+
* contents not in yet; the panel holds its shape instead of showing a spinner TR: içerik
|
|
240
|
+
* henüz gelmedi; panel bir dönen simge göstermek yerine şeklini koruyor
|
|
241
|
+
*/
|
|
242
|
+
loading?: boolean;
|
|
243
|
+
/**
|
|
244
|
+
* Accessible name for the close control, supplied by the caller (docs/08 rule 5). TR: Kapatma
|
|
245
|
+
* kontrolünün erişilebilir adı, çağıran veriyor (docs/08 kural 5).
|
|
246
|
+
*/
|
|
247
|
+
closeLabel: string;
|
|
248
|
+
/**
|
|
249
|
+
* `md` decides, `lg` decides with a table beside it, `wide` previews a whole screen, `full` is a
|
|
250
|
+
* work surface (an image editor, a canvas). TR: `md` karar sorar, `lg` kararın yanında bir tablo
|
|
251
|
+
* taşır, `wide` tam bir ekranı önizler, `full` ise bir çalışma yüzeyidir (görsel düzenleyici,
|
|
252
|
+
* tuval).
|
|
253
|
+
*/
|
|
254
|
+
size?: DialogSize;
|
|
255
|
+
}): import("react").JSX.Element;
|
|
256
|
+
export {};
|
|
257
|
+
//# sourceMappingURL=overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/components/overlay.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAsCtC,MAAM,MAAM,QAAQ,GAChB;IACE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,KAAe,EACf,KAAW,EACX,OAAe,EACf,WAAe,EACf,WAAmB,GACpB,EAAE;IACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;;;;;;OAiBG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,+BA2FA;AAID,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAW,EACX,KAAe,EACf,OAAe,EACf,YAAY,EACZ,UAAU,GACX,EAAE;IACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,+BA+BA;AAID,QAAA,MAAM,UAAU;aACd,GAAG,EAAE,yDAAyD;aAC9D,MAAM,EAAE,sDAAsD;aAC9D,IAAI,EAAE,uDAAuD;aAC7D,KAAK,EAAE,sDAAsD;CACrD,CAAC;AA4BX;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,SAAoB,EACpB,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,OAAO,UAAU,CAAC;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,+BAwEA;AAID,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC;AAE7B,wBAAgB,KAAK,CAAC,EACpB,IAAgB,EAChB,KAAK,EACL,WAAW,EACX,MAAM,EACN,SAAS,EACT,YAAY,GACb,EAAE;IACD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB,+BAuBA;AAED;;;GAGG;AACH,QAAA,MAAM,OAAO;aACX,WAAW,EAAE,yBAAyB;aACtC,UAAU,EAAE,0BAA0B;aACtC,cAAc,EAAE,4BAA4B;aAC5C,aAAa,EAAE,6BAA6B;CACpC,CAAC;AAEX,wBAAgB,aAAa,CAAC,EAC5B,QAAsB,EACtB,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,EAAE,MAAM,OAAO,OAAO,CAAC;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,+BAMA;AAID;;;GAGG;AACH;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,eAAe;aACnB,EAAE,EAAE,UAAU;aACd,EAAE,EAAE,WAAW;aACf,IAAI,EAAE,uBAAuB;aAC7B,IAAI,EAAE,YAAY;CACV,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,eAAe,CAAC;AA4DtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,EACV,IAAe,EACf,IAAY,EACZ,eAAuB,GACxB,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,+BAuBA;AAED,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAe,EACf,UAAU,EACV,IAAW,GACZ,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,+BAsBA"}
|