tamga-ui 0.4.3 → 0.5.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 +908 -0
- package/README.md +3 -1
- package/dist/blocks/count-row.d.ts +3 -8
- package/dist/blocks/count-row.d.ts.map +1 -1
- package/dist/blocks/count-row.js +3 -8
- package/dist/blocks/filter-bar.d.ts +42 -28
- package/dist/blocks/filter-bar.d.ts.map +1 -1
- package/dist/blocks/filter-bar.js +13 -5
- package/dist/blocks/index.d.ts +4 -17
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +4 -17
- package/dist/blocks/save-bar.d.ts +4 -12
- package/dist/blocks/save-bar.d.ts.map +1 -1
- package/dist/blocks/save-bar.js +4 -12
- package/dist/components/a11y.d.ts.map +1 -1
- package/dist/components/a11y.js +4 -15
- package/dist/components/advanced-input.d.ts +54 -48
- package/dist/components/advanced-input.d.ts.map +1 -1
- package/dist/components/advanced-input.js +64 -59
- package/dist/components/announcement.d.ts +34 -0
- package/dist/components/announcement.d.ts.map +1 -0
- package/dist/components/announcement.js +12 -0
- package/dist/components/appearance.d.ts +33 -1
- package/dist/components/appearance.d.ts.map +1 -1
- package/dist/components/appearance.js +78 -7
- package/dist/components/avatar.d.ts +28 -21
- package/dist/components/avatar.d.ts.map +1 -1
- package/dist/components/avatar.js +46 -22
- package/dist/components/badge.d.ts +54 -4
- package/dist/components/badge.d.ts.map +1 -1
- package/dist/components/badge.js +42 -9
- package/dist/components/bar.d.ts.map +1 -1
- package/dist/components/bar.js +4 -20
- package/dist/components/button.d.ts +15 -7
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js +54 -8
- package/dist/components/chart.d.ts +5 -0
- package/dist/components/chart.d.ts.map +1 -1
- package/dist/components/chart.js +18 -11
- package/dist/components/checkbox.d.ts +23 -1
- package/dist/components/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox.js +3 -4
- package/dist/components/chrome.d.ts +38 -54
- package/dist/components/chrome.d.ts.map +1 -1
- package/dist/components/chrome.js +55 -63
- package/dist/components/combobox.d.ts.map +1 -1
- package/dist/components/combobox.js +19 -3
- package/dist/components/data-table.d.ts +4 -4
- package/dist/components/data-table.d.ts.map +1 -1
- package/dist/components/data-table.js +15 -16
- package/dist/components/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker.js +11 -4
- package/dist/components/disclosure.d.ts +17 -2
- package/dist/components/disclosure.d.ts.map +1 -1
- package/dist/components/disclosure.js +4 -8
- package/dist/components/display.d.ts +119 -94
- package/dist/components/display.d.ts.map +1 -1
- package/dist/components/display.js +103 -106
- package/dist/components/empty-state.d.ts +70 -52
- package/dist/components/empty-state.d.ts.map +1 -1
- package/dist/components/empty-state.js +40 -52
- package/dist/components/error-state.d.ts +21 -4
- package/dist/components/error-state.d.ts.map +1 -1
- package/dist/components/error-state.js +16 -6
- package/dist/components/file-upload.d.ts +45 -2
- package/dist/components/file-upload.d.ts.map +1 -1
- package/dist/components/file-upload.js +32 -7
- package/dist/components/gauge.d.ts +72 -9
- package/dist/components/gauge.d.ts.map +1 -1
- package/dist/components/gauge.js +52 -49
- package/dist/components/icons.d.ts +1 -1
- package/dist/components/icons.d.ts.map +1 -1
- package/dist/components/icons.js +4 -0
- package/dist/components/input.d.ts +21 -0
- package/dist/components/input.d.ts.map +1 -1
- package/dist/components/input.js +15 -1
- package/dist/components/layout.d.ts +47 -70
- package/dist/components/layout.d.ts.map +1 -1
- package/dist/components/layout.js +31 -73
- package/dist/components/link.d.ts +5 -10
- package/dist/components/link.d.ts.map +1 -1
- package/dist/components/live-scope.d.ts.map +1 -1
- package/dist/components/live-scope.js +5 -8
- package/dist/components/log-view.d.ts +32 -1
- package/dist/components/log-view.d.ts.map +1 -1
- package/dist/components/log-view.js +42 -15
- package/dist/components/number-input.d.ts +20 -2
- package/dist/components/number-input.d.ts.map +1 -1
- package/dist/components/number-input.js +32 -9
- package/dist/components/overlay.d.ts +69 -61
- package/dist/components/overlay.d.ts.map +1 -1
- package/dist/components/overlay.js +134 -77
- package/dist/components/pagination.d.ts.map +1 -1
- package/dist/components/pagination.js +12 -7
- package/dist/components/pie.d.ts.map +1 -1
- package/dist/components/pie.js +8 -7
- package/dist/components/primitives.d.ts +136 -6
- package/dist/components/primitives.d.ts.map +1 -1
- package/dist/components/primitives.js +73 -20
- package/dist/components/progress.d.ts +44 -9
- package/dist/components/progress.d.ts.map +1 -1
- package/dist/components/progress.js +21 -9
- package/dist/components/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group.js +11 -12
- package/dist/components/rail-link.d.ts +17 -1
- package/dist/components/rail-link.d.ts.map +1 -1
- package/dist/components/rail-link.js +3 -3
- package/dist/components/rich-text.d.ts +8 -1
- package/dist/components/rich-text.d.ts.map +1 -1
- package/dist/components/rich-text.js +13 -19
- package/dist/components/says-bubble.d.ts +38 -0
- package/dist/components/says-bubble.d.ts.map +1 -0
- package/dist/components/says-bubble.js +6 -0
- package/dist/components/scroll-x.d.ts +23 -0
- package/dist/components/scroll-x.d.ts.map +1 -0
- package/dist/components/scroll-x.js +27 -0
- package/dist/components/section.d.ts +18 -1
- package/dist/components/section.d.ts.map +1 -1
- package/dist/components/section.js +12 -1
- package/dist/components/segmented.d.ts +17 -1
- package/dist/components/segmented.d.ts.map +1 -1
- package/dist/components/segmented.js +26 -6
- package/dist/components/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/slider.d.ts +16 -2
- package/dist/components/slider.d.ts.map +1 -1
- package/dist/components/slider.js +12 -5
- package/dist/components/sparkline.d.ts +9 -2
- package/dist/components/sparkline.d.ts.map +1 -1
- package/dist/components/sparkline.js +9 -5
- package/dist/components/spinner.d.ts +16 -1
- package/dist/components/spinner.d.ts.map +1 -1
- package/dist/components/spinner.js +24 -1
- package/dist/components/square-picker.d.ts +4 -20
- package/dist/components/square-picker.d.ts.map +1 -1
- package/dist/components/square-picker.js +4 -20
- package/dist/components/stacked-bar.d.ts.map +1 -1
- package/dist/components/stacked-bar.js +5 -4
- package/dist/components/surface.d.ts +32 -3
- package/dist/components/surface.d.ts.map +1 -1
- package/dist/components/surface.js +11 -4
- package/dist/components/switch.d.ts +14 -1
- package/dist/components/switch.d.ts.map +1 -1
- package/dist/components/switch.js +2 -3
- package/dist/components/tabs.d.ts +35 -11
- package/dist/components/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +48 -5
- package/dist/components/timeline-strip.d.ts +28 -3
- package/dist/components/timeline-strip.d.ts.map +1 -1
- package/dist/components/timeline-strip.js +19 -8
- package/dist/components/tone.d.ts +51 -14
- package/dist/components/tone.d.ts.map +1 -1
- package/dist/components/tone.js +76 -14
- package/dist/components/tree-select.d.ts.map +1 -1
- package/dist/components/tree-select.js +10 -3
- package/dist/fonts/LICENSE-jetbrains-mono.txt +93 -0
- package/dist/fonts/LICENSE-onest.txt +93 -0
- package/dist/fonts/LICENSE-red-hat-display.txt +93 -0
- package/dist/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/onest-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/onest-latin-wght-normal.woff2 +0 -0
- package/dist/fonts/red-hat-display-latin-ext-wght-normal.woff2 +0 -0
- package/dist/fonts/red-hat-display-latin-wght-normal.woff2 +0 -0
- package/dist/fonts.css +54 -0
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -6
- package/dist/kit.css +3175 -645
- package/dist/lib/color.d.ts +8 -19
- package/dist/lib/color.d.ts.map +1 -1
- package/dist/lib/color.js +8 -19
- package/dist/lib/data-props.d.ts +4 -15
- package/dist/lib/data-props.d.ts.map +1 -1
- package/dist/lib/data-props.js +4 -15
- package/dist/lib/image.d.ts +4 -20
- package/dist/lib/image.d.ts.map +1 -1
- package/dist/lib/image.js +4 -20
- package/dist/lib/palette.d.ts +16 -20
- package/dist/lib/palette.d.ts.map +1 -1
- package/dist/lib/palette.js +136 -71
- package/dist/lib/scroll-lock.d.ts +4 -14
- package/dist/lib/scroll-lock.d.ts.map +1 -1
- package/dist/lib/scroll-lock.js +4 -14
- package/dist/patterns/app-shell.d.ts.map +1 -1
- package/dist/patterns/app-shell.js +4 -13
- package/dist/patterns/appearance-template.d.ts +20 -15
- package/dist/patterns/appearance-template.d.ts.map +1 -1
- package/dist/patterns/appearance-template.js +29 -8
- package/dist/patterns/list-template.d.ts.map +1 -1
- package/dist/patterns/list-template.js +1 -1
- package/dist/patterns/overview-template.d.ts.map +1 -1
- package/dist/patterns/overview-template.js +1 -1
- package/dist/patterns/settings-template.d.ts +1 -12
- package/dist/patterns/settings-template.d.ts.map +1 -1
- package/dist/patterns/settings-template.js +2 -2
- package/dist/patterns/shared.d.ts.map +1 -1
- package/dist/patterns/shared.js +8 -1
- package/dist/styles.css +2 -1
- package/dist/theme.css +96 -259
- package/package.json +4 -2
- package/dist/components/control-base.d.ts +0 -7
- package/dist/components/control-base.d.ts.map +0 -1
- package/dist/components/control-base.js +0 -6
|
@@ -16,7 +16,16 @@ export type ScoreProps = {
|
|
|
16
16
|
* altında görünen bant metni. Verilmezse okuma hiçbir sözcük göstermiyor.
|
|
17
17
|
*/
|
|
18
18
|
bandLabel?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The readout's width in pixels: the dial's diameter, the matrix's side, the
|
|
21
|
+
* meter's track. TR: Okumanın piksel cinsinden genişliği: kadranın çapı,
|
|
22
|
+
* matrisin kenarı, ölçeğin şeridi.
|
|
23
|
+
*/
|
|
19
24
|
size?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Draw `bandLabel` under the number. Off, the colour still carries the band.
|
|
27
|
+
* TR: `bandLabel`ı sayının altına çiz. Kapalıyken bandı yine renk taşıyor.
|
|
28
|
+
*/
|
|
20
29
|
showLabel?: boolean;
|
|
21
30
|
/**
|
|
22
31
|
* The PRODUCT decides the band's tone. The `band()` below is the kit's default (90 / 70 / 50)
|
|
@@ -32,18 +41,72 @@ export type ScoreProps = {
|
|
|
32
41
|
*/
|
|
33
42
|
tone?: Tone;
|
|
34
43
|
};
|
|
35
|
-
|
|
36
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Skor halkası · 0-100 arası tek bir okuma.
|
|
46
|
+
*
|
|
47
|
+
* SEGMENTLİ KADRAN DEĞİL, DOLU YAY. Önce 32 parçalı bir kadran çiziyordu ve
|
|
48
|
+
* parçalar bir ölçek vadediyordu; oysa okunan şey tek bir sayı ve o sayı zaten
|
|
49
|
+
* ortada yazılı. Yay, ne kadarının dolduğunu bir bakışta söylüyor.
|
|
50
|
+
*
|
|
51
|
+
* Gerekçe: docs/gerekce/03-grafik-ve-olcum.md
|
|
52
|
+
*/
|
|
53
|
+
export declare function ScoreRing({ value, label, bandLabel, size, showLabel, tone, ...rest }: ScoreProps & {
|
|
54
|
+
[k: `data-${string}`]: unknown;
|
|
37
55
|
}): import("react").JSX.Element;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Skor ölçeği · kademeli bir bandın üstünde KONUM.
|
|
58
|
+
*
|
|
59
|
+
* Dolan bir çubuk değil: beş bant sabit duruyor ve üçgen işaret skorun hangi
|
|
60
|
+
* banda düştüğünü gösteriyor. Fark şu: bir çubuk "ne kadar" der, bu "hangisi"
|
|
61
|
+
* der, ve bir memnuniyet ya da risk skorunda sorulan ikincisi.
|
|
62
|
+
*
|
|
63
|
+
* Gerekçe: docs/gerekce/03-grafik-ve-olcum.md
|
|
64
|
+
*/
|
|
65
|
+
export declare function ScoreMeter({ value, label, bands, total, size, tone, ...rest }: Omit<ScoreProps, "bandLabel" | "showLabel"> & {
|
|
66
|
+
/**
|
|
67
|
+
* The five band names under the scale, worst to best. The kit does not translate, so they come
|
|
68
|
+
* ready. Left out, only the bands are drawn. TR: Ölçeğin altındaki beş bandın adı, kötüden
|
|
69
|
+
* iyiye. Kit çeviri yapmıyor, hazır geliyorlar. Verilmezse yalnız bantlar çiziliyor.
|
|
70
|
+
*/
|
|
71
|
+
bands?: readonly [string, string, string, string, string];
|
|
72
|
+
/** The scale's top, when it is not 100. TR: Ölçeğin tepesi, 100 değilse. */
|
|
73
|
+
total?: number;
|
|
42
74
|
[k: `data-${string}`]: unknown;
|
|
43
75
|
}): import("react").JSX.Element;
|
|
44
|
-
|
|
45
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Skorun kare ızgara hâli · her kare bir puan.
|
|
78
|
+
*
|
|
79
|
+
* Gerekçe: docs/gerekce/03-grafik-ve-olcum.md
|
|
80
|
+
*/
|
|
81
|
+
export declare function ScoreMatrix({ rows, columns, levels, label, legend, cellTitle, ...rest }: {
|
|
82
|
+
/**
|
|
83
|
+
* One row per band of the first dimension (a weekday, a region), with one value per column.
|
|
84
|
+
* TR: Birinci boyutun her bandı için bir satır (bir gün, bir bölge), sütun başına bir değer.
|
|
85
|
+
*/
|
|
86
|
+
rows: readonly ({
|
|
87
|
+
label: string;
|
|
88
|
+
values: readonly number[];
|
|
89
|
+
} & Record<string, unknown>)[];
|
|
90
|
+
/** The marks over the columns (hours, weeks). TR: Sütunların üstündeki işaretler (saat, hafta). */
|
|
91
|
+
columns: readonly string[];
|
|
92
|
+
/**
|
|
93
|
+
* How many steps of intensity. Five is the design's ramp and about the most an eye reads off a
|
|
94
|
+
* grid without a number beside it. TR: Kaç yoğunluk basamağı. Beş, tasarımın rampası ve bir
|
|
95
|
+
* gözün yanında sayı olmadan bir ızgaradan okuyabileceği en fazla basamak.
|
|
96
|
+
*/
|
|
97
|
+
levels?: number;
|
|
98
|
+
/** The grid's accessible name: what the two dimensions are. TR: Izgaranın erişilebilir adı: iki boyutun ne olduğu. */
|
|
99
|
+
label: string;
|
|
100
|
+
/** The two ends of the ramp, in the product's words: "few" and "many". TR: Rampanın iki ucu, ürünün sözcükleriyle. */
|
|
101
|
+
legend?: {
|
|
102
|
+
low: string;
|
|
103
|
+
high: string;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* The cell's own title, written by the caller: the kit knows neither the unit nor the day's
|
|
107
|
+
* name. TR: Hücrenin kendi başlığı, çağıranın yazdığı: kit ne birimi bilir ne günün adını.
|
|
108
|
+
*/
|
|
109
|
+
cellTitle?: (row: string, column: string, value: number) => string;
|
|
46
110
|
[k: `data-${string}`]: unknown;
|
|
47
111
|
}): import("react").JSX.Element;
|
|
48
|
-
/** default export keeps the existing call sites working */
|
|
49
112
|
//# sourceMappingURL=gauge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gauge.d.ts","sourceRoot":"","sources":["../../src/components/gauge.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gauge.d.ts","sourceRoot":"","sources":["../../src/components/gauge.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAQ9C,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;AAcF;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,SAAS,EACT,IAAS,EACT,SAAgB,EAChB,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,UAAU,GAAG;IAAE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAA;CAAE,+BA4BjD;AAID;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAW,EACX,IAAI,EACJ,IAAI,EACJ,GAAG,IAAI,EACR,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG;IAC/C;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1D,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAsCA;AAcD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,OAAO,EACP,MAAU,EACV,KAAK,EACL,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD;;;OAGG;IACH,IAAI,EAAE,SAAS,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC1F,mGAAmG;IACnG,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sHAAsH;IACtH,KAAK,EAAE,MAAM,CAAC;IACd,sHAAsH;IACtH,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BA4CA"}
|
package/dist/components/gauge.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { createElement as _createElement } from "react";
|
|
1
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Fragment } from "react";
|
|
2
4
|
import { dataProps } from "../lib/data-props.js";
|
|
3
|
-
import { toneOf
|
|
5
|
+
import { toneOf } from "./tone.js";
|
|
4
6
|
/* Where the readout changes colour. The thresholds are a kit default; a product
|
|
5
7
|
that scores differently passes its own tone instead. Words are NOT decided
|
|
6
8
|
here — see ScoreProps.label. */
|
|
@@ -11,56 +13,57 @@ function band(v) {
|
|
|
11
13
|
return "caution";
|
|
12
14
|
return "danger";
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
/* ---------- A · Ring — the conic ring ---------- */
|
|
17
|
+
/**
|
|
18
|
+
* Skor halkası · 0-100 arası tek bir okuma.
|
|
19
|
+
*
|
|
20
|
+
* SEGMENTLİ KADRAN DEĞİL, DOLU YAY. Önce 32 parçalı bir kadran çiziyordu ve
|
|
21
|
+
* parçalar bir ölçek vadediyordu; oysa okunan şey tek bir sayı ve o sayı zaten
|
|
22
|
+
* ortada yazılı. Yay, ne kadarının dolduğunu bir bakışta söylüyor.
|
|
23
|
+
*
|
|
24
|
+
* Gerekçe: docs/gerekce/03-grafik-ve-olcum.md
|
|
25
|
+
*/
|
|
26
|
+
export function ScoreRing({ value, label, bandLabel, size = 96, showLabel = true, tone, ...rest }) {
|
|
20
27
|
const v = Math.min(100, Math.max(0, value));
|
|
21
28
|
const c = toneOf(tone ?? band(v));
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const ringRadius = size * 0.42 - segLength / 2;
|
|
29
|
-
const filled = Math.round((v / 100) * segments);
|
|
30
|
-
/* every fifth of the scale gets a longer mark, like a rule */
|
|
31
|
-
const majorEvery = segments / 5;
|
|
32
|
-
const labelReads = size * 0.065 >= 10;
|
|
33
|
-
return (_jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, role: "img", "aria-label": label, shapeRendering: "crispEdges", children: [Array.from({ length: segments }).map((_, i) => {
|
|
34
|
-
const angle = start + (sweep * i) / (segments - 1);
|
|
35
|
-
const major = i % majorEvery === 0;
|
|
36
|
-
const len = major ? segLength * 1.28 : segLength;
|
|
37
|
-
return (_jsx("rect", { x: cx - segWidth / 2, y: cy - ringRadius - len / 2, width: segWidth, height: len, transform: `rotate(${angle} ${cx} ${cy})`, style: { fill: i < filled ? c.mark : neutral.line } }, i));
|
|
38
|
-
}), _jsx("text", { x: cx, y: cy - size * 0.01, textAnchor: "middle", dominantBaseline: "central", className: "font-mono", shapeRendering: "auto", style: {
|
|
39
|
-
/* derived from the ring's own size, not the type scale: this glyph
|
|
40
|
-
has to stay in proportion to the dial at any diameter */
|
|
41
|
-
fontSize: size * 0.28,
|
|
42
|
-
fontWeight: 700,
|
|
43
|
-
fill: neutral.title,
|
|
44
|
-
fontVariantNumeric: "tabular-nums",
|
|
45
|
-
}, children: Math.round(v) }), showLabel && labelReads ? (_jsx("text", { x: cx, y: cy + size * 0.26, textAnchor: "middle", shapeRendering: "auto", style: { fontSize: size * 0.065, fontWeight: 500, fill: c.fg }, children: bandLabel })) : null] }));
|
|
29
|
+
return (_jsxs("div", { ...dataProps(rest), className: "tamga-ring-wrap", children: [_jsx("div", { className: "tamga-ring", role: "img", "aria-label": label, style: {
|
|
30
|
+
width: size,
|
|
31
|
+
height: size,
|
|
32
|
+
"--ring-renk": c.mark,
|
|
33
|
+
"--ring-yay": `${v * 3.6}deg`,
|
|
34
|
+
}, children: _jsx("span", { className: "tamga-ring-ic", style: { fontSize: Math.round(size * 0.25) }, children: Math.round(v) }) }), showLabel && bandLabel ? _jsx("span", { className: "tamga-ring-etiket", children: bandLabel }) : null] }));
|
|
46
35
|
}
|
|
47
|
-
/* ---------- B ·
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
/* ---------- B · Meter — the same reading, laid flat ---------- */
|
|
37
|
+
/**
|
|
38
|
+
* Skor ölçeği · kademeli bir bandın üstünde KONUM.
|
|
39
|
+
*
|
|
40
|
+
* Dolan bir çubuk değil: beş bant sabit duruyor ve üçgen işaret skorun hangi
|
|
41
|
+
* banda düştüğünü gösteriyor. Fark şu: bir çubuk "ne kadar" der, bu "hangisi"
|
|
42
|
+
* der, ve bir memnuniyet ya da risk skorunda sorulan ikincisi.
|
|
43
|
+
*
|
|
44
|
+
* Gerekçe: docs/gerekce/03-grafik-ve-olcum.md
|
|
45
|
+
*/
|
|
46
|
+
export function ScoreMeter({ value, label, bands, total = 100, size, tone, ...rest }) {
|
|
47
|
+
const v = Math.min(total, Math.max(0, value));
|
|
48
|
+
const pct = (v / total) * 100;
|
|
49
|
+
return (_jsxs("div", { ...dataProps(rest), className: "tamga-meter", style: { maxWidth: size ?? "35rem" }, role: "group", "aria-label": label, children: [_jsxs("div", { className: "tamga-meter-ust", children: [_jsx("span", { className: "tamga-meter-ad", children: label }), _jsxs("span", { className: "tamga-meter-sayi", children: [Math.round(v), _jsxs("span", { className: "tamga-meter-toplam", children: [" / ", total] })] })] }), _jsxs("div", { className: "tamga-meter-yol", children: [_jsx("span", { className: "tamga-meter-ok", style: { left: `calc(${pct}% - 7px)` }, "aria-hidden": true }), _jsx("div", { className: "tamga-meter-bantlar", children: BANT_RENKLERI.map((renk) => (_jsx("span", { style: { background: renk } }, renk))) })] }), bands ? (_jsx("div", { className: "tamga-meter-adlar", "aria-hidden": true, children: bands.map((b) => (_jsx("span", { children: b }, b))) })) : null] }));
|
|
53
50
|
}
|
|
54
|
-
/*
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
51
|
+
/* Kötüden iyiye beş bant. Sabit bir dizi, çünkü ölçeğin kendisi sabit: skor
|
|
52
|
+
değişince bantlar değil İŞARET kayıyor. */
|
|
53
|
+
const BANT_RENKLERI = [
|
|
54
|
+
"var(--color-critical-mark)",
|
|
55
|
+
"var(--color-warning)",
|
|
56
|
+
"var(--color-accent-bg)",
|
|
57
|
+
"var(--color-accent-soft)",
|
|
58
|
+
"var(--color-accent)",
|
|
59
|
+
];
|
|
60
|
+
/* ---------- C · Matrix — a hundred squares, one per point ---------- */
|
|
61
|
+
/**
|
|
62
|
+
* Skorun kare ızgara hâli · her kare bir puan.
|
|
63
|
+
*
|
|
64
|
+
* Gerekçe: docs/gerekce/03-grafik-ve-olcum.md
|
|
65
|
+
*/
|
|
66
|
+
export function ScoreMatrix({ rows, columns, levels = 5, label, legend, cellTitle, ...rest }) {
|
|
67
|
+
const enBuyuk = Math.max(1, ...rows.flatMap((r) => [...r.values]));
|
|
68
|
+
return (_jsxs("div", { ...dataProps(rest), className: "tamga-yogunluk", role: "img", "aria-label": label, children: [_jsxs("div", { className: "tamga-yogunluk-izgara", style: { gridTemplateColumns: `32px repeat(${columns.length}, minmax(26px, 1fr))` }, children: [_jsx("span", {}), columns.map((c) => (_jsx("span", { className: "tamga-yogunluk-sutun", children: c }, c))), rows.map(({ label: satir, values, ...kanca }) => (_jsxs(Fragment, { children: [_jsx("span", { className: "tamga-yogunluk-satir", children: satir }), values.map((v, i) => (_createElement("span", { ...kanca, key: i, className: "tamga-yogunluk-hucre", "data-seviye": Math.round((v / enBuyuk) * (levels - 1)), title: cellTitle?.(satir, columns[i] ?? "", v) })))] }, satir)))] }), legend ? (_jsxs("div", { className: "tamga-yogunluk-lejant", children: [legend.low, Array.from({ length: levels }, (_, i) => (_jsx("span", { "data-seviye": i }, i))), legend.high] })) : null] }));
|
|
66
69
|
}
|
|
@@ -15,5 +15,5 @@ export * from "@phosphor-icons/react/ssr";
|
|
|
15
15
|
* `Icon` zaten kitin çizen BİLEŞENİ.
|
|
16
16
|
*/
|
|
17
17
|
export type { Icon as IconGlyph } from "@phosphor-icons/react";
|
|
18
|
-
export { MagnifyingGlass as Search, ArrowsClockwise as Refresh, ArrowClockwise as RunNow, Pause, Plus, Trash as Delete, DownloadSimple as Download, UploadSimple as Upload, DotsThree as More, Copy, X as Close, Check, FunnelSimple as Filter, SlidersHorizontal as Customize, GearSix as Settings, Lifebuoy as Support, PencilSimple as Edit, FloppyDisk as Save, Printer as Print, ShareNetwork as Share, Archive, Minus, ArrowUUpLeft as Undo, ArrowUUpRight as Redo, ArrowsDownUp as Sort, DotsSixVertical as Drag, CaretDown, CaretLeft, CaretRight, ArrowUp, ArrowDown, ArrowUpRight, ArrowRight, List as Menu, House as Home, ArrowSquareOut as ExternalLink, ArrowsOut as Expand, ArrowsIn as Collapse, Columns as BoardView, ListBullets as ListView, GitBranch as TimelineView, GridFour as GridView, Bell, Star as Main, Eye, EyeSlash, ShieldCheck, Warning, Tray as Empty, CalendarPlus, MoonStars as ThemeDark, Sun as ThemeLight, Info, Question as Help, CheckCircle as Success, XCircle as Failure, Clock, CalendarBlank as Calendar, File, FolderSimple as Folder, Image, Lock, LockOpen as Unlock, Key, Tag, PushPin as Pin, EnvelopeSimple as Mail, Phone, Play, Stop, TextB as Bold, TextItalic as Italic, LinkSimple as Link, ListBullets as BulletList, ListNumbers as NumberedList, TextAa as TextStyle, MagnifyingGlassPlus as ZoomIn, MagnifyingGlassMinus as ZoomOut, Crop, FlipHorizontal, FlipVertical, StackSimple as Layers, CircleHalf as Contrast, Eyedropper, PaintBrush as Brush, Palette, GoogleLogo, GithubLogo, } from "@phosphor-icons/react/ssr";
|
|
18
|
+
export { MagnifyingGlass as Search, ArrowsClockwise as Refresh, ArrowClockwise as RunNow, Pause, Plus, Trash as Delete, DownloadSimple as Download, UploadSimple as Upload, DotsThree as More, Copy, X as Close, Check, FunnelSimple as Filter, SlidersHorizontal as Customize, GearSix as Settings, Lifebuoy as Support, PencilSimple as Edit, FloppyDisk as Save, Printer as Print, ShareNetwork as Share, Archive, Minus, ArrowUUpLeft as Undo, ArrowUUpRight as Redo, ArrowsDownUp as Sort, DotsSixVertical as Drag, CaretDown, CaretLeft, CaretRight, ArrowUp, ArrowDown, ArrowUpRight, ArrowRight, List as Menu, House as Home, ArrowSquareOut as ExternalLink, ArrowsOut as Expand, ArrowsIn as Collapse, Columns as BoardView, ListBullets as ListView, GitBranch as TimelineView, GridFour as GridView, Bell, Star as Main, Eye, EyeSlash, ShieldCheck, Warning, Tray as Empty, CalendarPlus, MoonStars as ThemeDark, Sun as ThemeLight, Desktop as ThemeSystem, Info, Question as Help, CheckCircle as Success, XCircle as Failure, Clock, CalendarBlank as Calendar, File, FolderSimple as Folder, Image, Lock, LockOpen as Unlock, Key, Tag, PushPin as Pin, EnvelopeSimple as Mail, Phone, Play, Stop, TextB as Bold, TextItalic as Italic, LinkSimple as Link, ListBullets as BulletList, ListNumbers as NumberedList, TextAa as TextStyle, MagnifyingGlassPlus as ZoomIn, MagnifyingGlassMinus as ZoomOut, Crop, FlipHorizontal, FlipVertical, StackSimple as Layers, CircleHalf as Contrast, Eyedropper, PaintBrush as Brush, Palette, GoogleLogo, GithubLogo, } from "@phosphor-icons/react/ssr";
|
|
19
19
|
//# sourceMappingURL=icons.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/components/icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,6CAA6C;AAC7C,cAAc,2BAA2B,CAAC;AAE1C;;;;;;;;GAQG;AACH,YAAY,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAEL,eAAe,IAAI,MAAM,EACzB,eAAe,IAAI,OAAO,EAC1B,cAAc,IAAI,MAAM,EACxB,KAAK,EACL,IAAI,EACJ,KAAK,IAAI,MAAM,EACf,cAAc,IAAI,QAAQ,EAC1B,YAAY,IAAI,MAAM,EACtB,SAAS,IAAI,IAAI,EAIjB,IAAI,EACJ,CAAC,IAAI,KAAK,EACV,KAAK,EACL,YAAY,IAAI,MAAM,EACtB,iBAAiB,IAAI,SAAS,EAC9B,OAAO,IAAI,QAAQ,EACnB,QAAQ,IAAI,OAAO,EACnB,YAAY,IAAI,IAAI,EACpB,UAAU,IAAI,IAAI,EAClB,OAAO,IAAI,KAAK,EAChB,YAAY,IAAI,KAAK,EACrB,OAAO,EAGP,KAAK,EACL,YAAY,IAAI,IAAI,EACpB,aAAa,IAAI,IAAI,EACrB,YAAY,IAAI,IAAI,EAEpB,eAAe,IAAI,IAAI,EAGvB,SAAS,EACT,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,IAAI,IAAI,IAAI,EACZ,KAAK,IAAI,IAAI,EACb,cAAc,IAAI,YAAY,EAC9B,SAAS,IAAI,MAAM,EACnB,QAAQ,IAAI,QAAQ,EAGpB,OAAO,IAAI,SAAS,EACpB,WAAW,IAAI,QAAQ,EACvB,SAAS,IAAI,YAAY,EACzB,QAAQ,IAAI,QAAQ,EAGpB,IAAI,EAIJ,IAAI,IAAI,IAAI,EACZ,GAAG,EACH,QAAQ,EACR,WAAW,EACX,OAAO,EACP,IAAI,IAAI,KAAK,EACb,YAAY,EACZ,SAAS,IAAI,SAAS,EACtB,GAAG,IAAI,UAAU,EAIjB,IAAI,EACJ,QAAQ,IAAI,IAAI,EAChB,WAAW,IAAI,OAAO,EACtB,OAAO,IAAI,OAAO,EAClB,KAAK,EACL,aAAa,IAAI,QAAQ,EACzB,IAAI,EACJ,YAAY,IAAI,MAAM,EACtB,KAAK,EACL,IAAI,EACJ,QAAQ,IAAI,MAAM,EAClB,GAAG,EACH,GAAG,EACH,OAAO,IAAI,GAAG,EACd,cAAc,IAAI,IAAI,EACtB,KAAK,EACL,IAAI,EACJ,IAAI,EAGJ,KAAK,IAAI,IAAI,EACb,UAAU,IAAI,MAAM,EACpB,UAAU,IAAI,IAAI,EAClB,WAAW,IAAI,UAAU,EACzB,WAAW,IAAI,YAAY,EAC3B,MAAM,IAAI,SAAS,EAGnB,mBAAmB,IAAI,MAAM,EAC7B,oBAAoB,IAAI,OAAO,EAC/B,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,WAAW,IAAI,MAAM,EACrB,UAAU,IAAI,QAAQ,EACtB,UAAU,EACV,UAAU,IAAI,KAAK,EACnB,OAAO,EAGP,UAAU,EACV,UAAU,GACX,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/components/icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,6CAA6C;AAC7C,cAAc,2BAA2B,CAAC;AAE1C;;;;;;;;GAQG;AACH,YAAY,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAEL,eAAe,IAAI,MAAM,EACzB,eAAe,IAAI,OAAO,EAC1B,cAAc,IAAI,MAAM,EACxB,KAAK,EACL,IAAI,EACJ,KAAK,IAAI,MAAM,EACf,cAAc,IAAI,QAAQ,EAC1B,YAAY,IAAI,MAAM,EACtB,SAAS,IAAI,IAAI,EAIjB,IAAI,EACJ,CAAC,IAAI,KAAK,EACV,KAAK,EACL,YAAY,IAAI,MAAM,EACtB,iBAAiB,IAAI,SAAS,EAC9B,OAAO,IAAI,QAAQ,EACnB,QAAQ,IAAI,OAAO,EACnB,YAAY,IAAI,IAAI,EACpB,UAAU,IAAI,IAAI,EAClB,OAAO,IAAI,KAAK,EAChB,YAAY,IAAI,KAAK,EACrB,OAAO,EAGP,KAAK,EACL,YAAY,IAAI,IAAI,EACpB,aAAa,IAAI,IAAI,EACrB,YAAY,IAAI,IAAI,EAEpB,eAAe,IAAI,IAAI,EAGvB,SAAS,EACT,SAAS,EACT,UAAU,EACV,OAAO,EACP,SAAS,EACT,YAAY,EACZ,UAAU,EACV,IAAI,IAAI,IAAI,EACZ,KAAK,IAAI,IAAI,EACb,cAAc,IAAI,YAAY,EAC9B,SAAS,IAAI,MAAM,EACnB,QAAQ,IAAI,QAAQ,EAGpB,OAAO,IAAI,SAAS,EACpB,WAAW,IAAI,QAAQ,EACvB,SAAS,IAAI,YAAY,EACzB,QAAQ,IAAI,QAAQ,EAGpB,IAAI,EAIJ,IAAI,IAAI,IAAI,EACZ,GAAG,EACH,QAAQ,EACR,WAAW,EACX,OAAO,EACP,IAAI,IAAI,KAAK,EACb,YAAY,EACZ,SAAS,IAAI,SAAS,EACtB,GAAG,IAAI,UAAU,EAIjB,OAAO,IAAI,WAAW,EAItB,IAAI,EACJ,QAAQ,IAAI,IAAI,EAChB,WAAW,IAAI,OAAO,EACtB,OAAO,IAAI,OAAO,EAClB,KAAK,EACL,aAAa,IAAI,QAAQ,EACzB,IAAI,EACJ,YAAY,IAAI,MAAM,EACtB,KAAK,EACL,IAAI,EACJ,QAAQ,IAAI,MAAM,EAClB,GAAG,EACH,GAAG,EACH,OAAO,IAAI,GAAG,EACd,cAAc,IAAI,IAAI,EACtB,KAAK,EACL,IAAI,EACJ,IAAI,EAGJ,KAAK,IAAI,IAAI,EACb,UAAU,IAAI,MAAM,EACpB,UAAU,IAAI,IAAI,EAClB,WAAW,IAAI,UAAU,EACzB,WAAW,IAAI,YAAY,EAC3B,MAAM,IAAI,SAAS,EAGnB,mBAAmB,IAAI,MAAM,EAC7B,oBAAoB,IAAI,OAAO,EAC/B,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,WAAW,IAAI,MAAM,EACrB,UAAU,IAAI,QAAQ,EACtB,UAAU,EACV,UAAU,IAAI,KAAK,EACnB,OAAO,EAGP,UAAU,EACV,UAAU,GACX,MAAM,2BAA2B,CAAC"}
|
package/dist/components/icons.js
CHANGED
|
@@ -27,6 +27,10 @@ Bell,
|
|
|
27
27
|
adres, birincil kişi. Rolü her üründe aynı, o yüzden burada. Adı `Star`
|
|
28
28
|
değil `Main`: çağrı yeri rolü okur, glifi değil. */
|
|
29
29
|
Star as Main, Eye, EyeSlash, ShieldCheck, Warning, Tray as Empty, CalendarPlus, MoonStars as ThemeDark, Sun as ThemeLight,
|
|
30
|
+
/* "İşletim sistemi ne diyorsa o" · temanın üçüncü hâli ve bir açık/koyu
|
|
31
|
+
ikilisiyle söylenemiyor. Bir ekran glifi, çünkü karar ekranın kendisine
|
|
32
|
+
bırakılıyor. */
|
|
33
|
+
Desktop as ThemeSystem,
|
|
30
34
|
/* Dört geri bildirim işareti. `Warning` zaten vardı ama tek başına bir
|
|
31
35
|
ailenin dörtte biriydi: bir arayüz "oldu", "olmadı", "dikkat" ve "şunu
|
|
32
36
|
bil" demek zorunda, ve üçünü glifsiz bırakmak dördüncüyü de zayıflatıyor. */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
1
2
|
import { type VariantProps } from "class-variance-authority";
|
|
2
3
|
/**
|
|
3
4
|
* Text entry. Flat until focus, then it joins the raised family — an accent
|
|
@@ -32,4 +33,24 @@ export type InputProps = Omit<React.ComponentProps<"input">, "size"> & VariantPr
|
|
|
32
33
|
export declare function Input({ className, invalid, full, size, leading, ...props }: InputProps): import("react").JSX.Element;
|
|
33
34
|
export type TextareaProps = React.ComponentProps<"textarea"> & VariantProps<typeof textareaVariants>;
|
|
34
35
|
export declare function Textarea({ className, invalid, full, ...props }: TextareaProps): import("react").JSX.Element;
|
|
36
|
+
/**
|
|
37
|
+
* ÖNEKLİ VE SONEKLİ GİRDİ · para birimi, alan adı, birim.
|
|
38
|
+
*
|
|
39
|
+
* Neden girdinin kendi prop'u değil: önek bir METİN değil bir PARÇA · bazen
|
|
40
|
+
* "₺", bazen "tamga.shop/", bazen bir ikon. Girdiye string olarak verilseydi
|
|
41
|
+
* ikincisi mümkün olmazdı, ve girdinin kendi kenarı ile önekin ayracı arasında
|
|
42
|
+
* kim hangi çizgiyi çizecek belirsiz kalırdı: kutu burada, girdi onun içinde.
|
|
43
|
+
*
|
|
44
|
+
* Gerekçe: docs/gerekce/01-form-ve-girdi.md
|
|
45
|
+
*/
|
|
46
|
+
export declare function InputGroup({ prefix, suffix, children, className, ...rest }: {
|
|
47
|
+
/** What sits before the field: "₺", "tamga.shop/". TR: Alanın önünde duran şey. */
|
|
48
|
+
prefix?: ReactNode;
|
|
49
|
+
/** What sits after it: "KDV dahil", "kg". TR: Ardında duran şey. */
|
|
50
|
+
suffix?: ReactNode;
|
|
51
|
+
children: ReactNode;
|
|
52
|
+
className?: string;
|
|
53
|
+
/** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
|
|
54
|
+
[k: `data-${string}`]: unknown;
|
|
55
|
+
}): import("react").JSX.Element;
|
|
35
56
|
//# sourceMappingURL=input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;8EAWxB,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB;;;8EAM3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,GAClE,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BAUtF;AAED,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,GAC1D,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAExC,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,+BAS7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,mFAAmF;IACnF,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAgBA"}
|
package/dist/components/input.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cva } from "class-variance-authority";
|
|
3
3
|
import { cn } from "../lib/cn.js";
|
|
4
|
+
import { dataProps } from "../lib/data-props.js";
|
|
4
5
|
/**
|
|
5
6
|
* Text entry. Flat until focus, then it joins the raised family — an accent
|
|
6
7
|
* edge plus a 2px accent offset.
|
|
@@ -39,3 +40,16 @@ export function Input({ className, invalid, full, size, leading, ...props }) {
|
|
|
39
40
|
export function Textarea({ className, invalid, full, ...props }) {
|
|
40
41
|
return (_jsx("textarea", { "data-slot": "textarea", "aria-invalid": invalid || undefined, className: cn(textareaVariants({ invalid, full }), className), ...props }));
|
|
41
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* ÖNEKLİ VE SONEKLİ GİRDİ · para birimi, alan adı, birim.
|
|
45
|
+
*
|
|
46
|
+
* Neden girdinin kendi prop'u değil: önek bir METİN değil bir PARÇA · bazen
|
|
47
|
+
* "₺", bazen "tamga.shop/", bazen bir ikon. Girdiye string olarak verilseydi
|
|
48
|
+
* ikincisi mümkün olmazdı, ve girdinin kendi kenarı ile önekin ayracı arasında
|
|
49
|
+
* kim hangi çizgiyi çizecek belirsiz kalırdı: kutu burada, girdi onun içinde.
|
|
50
|
+
*
|
|
51
|
+
* Gerekçe: docs/gerekce/01-form-ve-girdi.md
|
|
52
|
+
*/
|
|
53
|
+
export function InputGroup({ prefix, suffix, children, className, ...rest }) {
|
|
54
|
+
return (_jsxs("div", { ...dataProps(rest), className: cn("tamga-input-group", className), children: [prefix !== undefined ? (_jsx("span", { className: "tamga-unit", "data-side": "start", children: prefix })) : null, children, suffix !== undefined ? (_jsx("span", { className: "tamga-unit", "data-side": "end", children: suffix })) : null] }));
|
|
55
|
+
}
|
|
@@ -15,43 +15,26 @@ export declare function Surface({ raised, className, children, ...props }: React
|
|
|
15
15
|
raised?: boolean;
|
|
16
16
|
}): import("react").JSX.Element;
|
|
17
17
|
/**
|
|
18
|
-
* Yatay taşma kabı
|
|
18
|
+
* Yatay taşma kabı · asıl işi erişilebilirlik. `overflow-x: auto` tek başına
|
|
19
|
+
* yalnız FARE için çalışıyor; `tabIndex={0}` + `role="region"` + zorunlu bir ad
|
|
20
|
+
* o kutuyu klavyeye açıyor.
|
|
19
21
|
*
|
|
20
|
-
*
|
|
21
|
-
* kutuya hiç giremez: kaydırılabilir bir alan odaklanabilir değilse içindeki
|
|
22
|
-
* geniş tabloyu yana kaydırmanın yolu yoktur. Tarayıcılar bunu kendiliğinden
|
|
23
|
-
* çözmüyor.
|
|
24
|
-
*
|
|
25
|
-
* `tabIndex={0}` + `role="region"` + bir ad, o kutuyu klavyeye açıyor. Ad
|
|
26
|
-
* zorunlu: adsız bir `region` ekran okuyucunun landmark listesinde
|
|
27
|
-
* "bölge, bölge, bölge" olarak birikir ve hiçbirinin ne olduğu bilinmez.
|
|
22
|
+
* Gerekçe: docs/gerekce/05-yuzey-ve-kabuk.md
|
|
28
23
|
*/
|
|
29
|
-
export declare function ScrollX({ label, className, children, ...props }: React.ComponentProps<"div"> & {
|
|
30
|
-
label: string;
|
|
31
|
-
}): import("react").JSX.Element;
|
|
32
24
|
/**
|
|
33
|
-
* Aşağıdan giren blok.
|
|
25
|
+
* Aşağıdan giren blok · GİRİŞ animasyonu, hover etkisi değil.
|
|
34
26
|
*
|
|
35
|
-
*
|
|
36
|
-
* aşağıdan, sönükten. Azaltılmış harekette CSS onu tamamen kapatıyor.
|
|
37
|
-
*
|
|
38
|
-
* `delay` bir listeyi sırayla açmak için. Basamak küçük tutulmalı — otuz
|
|
39
|
-
* satırlık bir listede 60ms'lik bir gecikme, sonuncuyu iki saniye sonra
|
|
40
|
-
* gösterir ve bekleme hissi yaratır.
|
|
27
|
+
* Gerekçe: docs/gerekce/05-yuzey-ve-kabuk.md
|
|
41
28
|
*/
|
|
42
|
-
export declare function
|
|
29
|
+
export declare function Reveal({ delay, className, children, ...props }: React.ComponentProps<"div"> & {
|
|
43
30
|
delay?: number;
|
|
44
31
|
}): import("react").JSX.Element;
|
|
45
32
|
/**
|
|
46
|
-
* İki durumun aynı yerde
|
|
33
|
+
* İki durumun aynı yerde durması · kutu her zaman UZUN olanın genişliğinde,
|
|
34
|
+
* yani "Kaydet" → "Kaydediliyor…" yanındaki hiçbir şeyi kaydırmıyor. Gizlenen
|
|
35
|
+
* taraf `aria-hidden` alıyor.
|
|
47
36
|
*
|
|
48
|
-
*
|
|
49
|
-
* ve yanındaki her şey kayar. Swap ikisini de aynı ızgara hücresine koyuyor:
|
|
50
|
-
* kutu her zaman UZUN olanın genişliğinde, yani hiçbir şey oynamıyor.
|
|
51
|
-
*
|
|
52
|
-
* Gizlenen taraf `aria-hidden` alıyor. Almasaydı ekran okuyucu iki metni
|
|
53
|
-
* arka arkaya okurdu — "Kaydet Kaydediliyor" — ve hangisinin geçerli olduğu
|
|
54
|
-
* anlaşılmazdı.
|
|
37
|
+
* Gerekçe: docs/gerekce/05-yuzey-ve-kabuk.md
|
|
55
38
|
*/
|
|
56
39
|
export declare function Swap({ showing, a, b, className, ...rest }: {
|
|
57
40
|
/** Which side is visible: `"a"` or `"b"`. TR: Hangi taraf görünür: `"a"` ya da `"b"`. */
|
|
@@ -63,15 +46,11 @@ export declare function Swap({ showing, a, b, className, ...rest }: {
|
|
|
63
46
|
[k: `data-${string}`]: unknown;
|
|
64
47
|
}): import("react").JSX.Element;
|
|
65
48
|
/**
|
|
66
|
-
* Liste satırı
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* entegrasyon satırı, üye satırı. Sabit yükseklik ve alt kural, satırların
|
|
70
|
-
* taranabilir kalmasını sağlıyor.
|
|
49
|
+
* Liste satırı · tablo olmayan listeler için. `href` verilirse bağlantı,
|
|
50
|
+
* `onClick` verilirse düğme, ikisi de yoksa düz satır: tıklanabilir bir `<div>`
|
|
51
|
+
* klavyeyle erişilemiyor.
|
|
71
52
|
*
|
|
72
|
-
*
|
|
73
|
-
* ikisi de yoksa düz bir satır kalır. Bu ayrım önemli: tıklanabilir bir
|
|
74
|
-
* `<div>` klavyeyle erişilemez ve ekran okuyucuya hiçbir şey söylemez.
|
|
53
|
+
* Gerekçe: docs/gerekce/05-yuzey-ve-kabuk.md
|
|
75
54
|
*/
|
|
76
55
|
export declare function ListRow({ size, href, onClick, className, children, ...rest }: {
|
|
77
56
|
size?: "base" | "sm";
|
|
@@ -83,33 +62,32 @@ export declare function ListRow({ size, href, onClick, className, children, ...r
|
|
|
83
62
|
[k: `data-${string}`]: unknown;
|
|
84
63
|
}): import("react").JSX.Element;
|
|
85
64
|
/**
|
|
86
|
-
* İçinde bir panel AÇILAN tablo hücresi.
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
* sınırında KESİLİYOR. Kontrol çalışıyor, tıklanıyor, ama yarısı yok. Hata
|
|
91
|
-
* mesajı yok, konsol sessiz, ve ilk akla gelen z-index oluyor. Z-index bunu
|
|
92
|
-
* çözmez: hiçbir yığın sırası bir `overflow` kırpmasını aşamaz.
|
|
65
|
+
* İçinde bir panel AÇILAN tablo hücresi. Tek işi kırpmayı kapatmak, ve
|
|
66
|
+
* unutulduğunda görünmeyen bir hata üretiyor: hücredeki menü hücre sınırında
|
|
67
|
+
* KESİLİYOR, konsol sessiz, ve ilk akla gelen z-index oluyor. Z-index bunu
|
|
68
|
+
* çözmez · hiçbir yığın sırası bir `overflow` kırpmasını aşamaz.
|
|
93
69
|
*
|
|
94
|
-
* `align`
|
|
95
|
-
* eylem menüsü. Ama hiza ile kırpma AYRI iki karar: sola yaslı bir hücrede
|
|
96
|
-
* ipucu barındırmak isteyen, hizasını feda etmek zorunda kalmasın diye
|
|
97
|
-
* `align="start"` var. (Uzun süre tek parçaydı ve tam bu yüzden yakalandı.)
|
|
70
|
+
* `align` varsayılan olarak sağda: en sık kullanımı satır sonundaki eylem.
|
|
98
71
|
*/
|
|
99
72
|
export declare function CellActions({ className, children, align, ...props }: Omit<React.ComponentProps<"td">, "align"> & {
|
|
100
73
|
align?: "start" | "end";
|
|
101
74
|
}): import("react").JSX.Element;
|
|
102
75
|
/**
|
|
103
|
-
* Sayfa başlığı şeridi.
|
|
76
|
+
* Sayfa başlığı şeridi. Eylem SAĞA yaslı ve başlığın taban çizgisinde.
|
|
104
77
|
*
|
|
105
|
-
*
|
|
106
|
-
* tepesinde duran bir şeyin her projede yeniden yazılması, on panelde on
|
|
107
|
-
* farklı boşluk demek.
|
|
108
|
-
*
|
|
109
|
-
* Eylem SAĞA yaslı ve başlığın taban çizgisinde. Başka yere koyan bir başlık
|
|
110
|
-
* altındaki listeden kopmuş görünüyor — bu bir tercih değil, ölçülmüş bir şey.
|
|
78
|
+
* Doküman: /docs/page-band
|
|
111
79
|
*/
|
|
112
|
-
export declare function PageBand({ title, subtitle, actions, className, ...rest }: {
|
|
80
|
+
export declare function PageBand({ eyebrow, title, subtitle, actions, className, ...rest }: {
|
|
81
|
+
/**
|
|
82
|
+
* A short line above the title saying what KIND of page this is, or whose it is.
|
|
83
|
+
* TR: Başlığın üstünde, bu sayfanın NE TÜR bir sayfa olduğunu ya da kimin olduğunu söyleyen kısa satır.
|
|
84
|
+
*
|
|
85
|
+
* Use it when the title alone leaves a question the reader would otherwise ask, such as whether a
|
|
86
|
+
* setting applies to everyone or only to them.
|
|
87
|
+
* TR: Başlığın tek başına cevapsız bıraktığı bir soru varsa kullanılıyor · bir ayarın herkesi mi
|
|
88
|
+
* yoksa yalnız o kişiyi mi ilgilendirdiği gibi.
|
|
89
|
+
*/
|
|
90
|
+
eyebrow?: string;
|
|
113
91
|
title: string;
|
|
114
92
|
subtitle?: string;
|
|
115
93
|
actions?: ReactNode;
|
|
@@ -118,23 +96,22 @@ export declare function PageBand({ title, subtitle, actions, className, ...rest
|
|
|
118
96
|
[k: `data-${string}`]: unknown;
|
|
119
97
|
}): import("react").JSX.Element;
|
|
120
98
|
/**
|
|
121
|
-
* Gezinen bağlantı.
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
* olmaması, tam olarak checkbox'ın yaşadığı boşluk.
|
|
126
|
-
*
|
|
127
|
-
* NEDEN `Button variant="link"` DEĞİL. O bir `<button>`; bir bağlantı gibi
|
|
128
|
-
* GÖRÜNÜR ama gezinmez. Orta tuşla yeni sekmede açılamaz, sağ tıkla
|
|
129
|
-
* kopyalanamaz, ve ekran okuyucuya "düğme" der. Görünüm aynı, sözleşme
|
|
130
|
-
* ters.
|
|
131
|
-
*
|
|
132
|
-
* `external` verilince `rel="noopener noreferrer"` geliyor. `noopener`
|
|
133
|
-
* olmadan açılan sayfa `window.opener` üzerinden seninkini yönlendirebilir —
|
|
134
|
-
* eski ve hâlâ geçerli bir açık.
|
|
99
|
+
* Gezinen bağlantı. `Button variant="link"` DEĞİL: o bir `<button>`, yani orta
|
|
100
|
+
* tuşla yeni sekmede açılmıyor, kopyalanmıyor, ve ekran okuyucuya "düğme"
|
|
101
|
+
* diyor. `external` verilince `rel="noopener noreferrer"` geliyor · `noopener`
|
|
102
|
+
* olmadan açılan sayfa `window.opener` ile seninkini yönlendirebilir.
|
|
135
103
|
*/
|
|
136
|
-
export declare function Link({ external, className, children, href, linkComponent: Router, ...props }: React.ComponentProps<"a"> & {
|
|
104
|
+
export declare function Link({ external, look, className, children, href, linkComponent: Router, ...props }: React.ComponentProps<"a"> & {
|
|
137
105
|
external?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* `inline` inside a sentence, `standalone` on its own line with an arrow that steps forward
|
|
108
|
+
* under the pointer, `quiet` a link that waits until it is looked at, `marked` a link carrying
|
|
109
|
+
* a wash, for the one address in a paragraph that must be found. TR: `inline` bir cümlenin
|
|
110
|
+
* içinde, `standalone` kendi satırında ve işaretçi altında bir adım ileri giden okuyla,
|
|
111
|
+
* `quiet` bakılana kadar bekleyen bağlantı, `marked` yıkama taşıyan bağlantı · bir paragrafta
|
|
112
|
+
* bulunması gereken tek adres için.
|
|
113
|
+
*/
|
|
114
|
+
look?: "inline" | "standalone" | "quiet" | "marked";
|
|
138
115
|
/**
|
|
139
116
|
* The router's link, so an in-app link does not reload the page. TR: Yönlendiricinin
|
|
140
117
|
* bağlantısı, uygulama içi bir bağlantı sayfayı yeniden yüklemesin diye.
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/components/layout.tsx"],"names":[],"mappings":"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"}
|