tamga-ui 0.3.0 → 0.3.2

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.
Files changed (125) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/components/advanced-input.d.ts +9 -3
  3. package/dist/components/advanced-input.d.ts.map +1 -1
  4. package/dist/components/advanced-input.js +7 -6
  5. package/dist/components/appearance.d.ts +9 -3
  6. package/dist/components/appearance.d.ts.map +1 -1
  7. package/dist/components/appearance.js +7 -6
  8. package/dist/components/avatar.d.ts +6 -2
  9. package/dist/components/avatar.d.ts.map +1 -1
  10. package/dist/components/avatar.js +5 -4
  11. package/dist/components/badge.d.ts +9 -3
  12. package/dist/components/badge.d.ts.map +1 -1
  13. package/dist/components/badge.js +7 -6
  14. package/dist/components/bar.d.ts +3 -1
  15. package/dist/components/bar.d.ts.map +1 -1
  16. package/dist/components/bar.js +3 -2
  17. package/dist/components/chart.d.ts +3 -1
  18. package/dist/components/chart.d.ts.map +1 -1
  19. package/dist/components/chart.js +3 -2
  20. package/dist/components/checkbox.d.ts +3 -1
  21. package/dist/components/checkbox.d.ts.map +1 -1
  22. package/dist/components/checkbox.js +3 -2
  23. package/dist/components/chrome.d.ts +12 -4
  24. package/dist/components/chrome.d.ts.map +1 -1
  25. package/dist/components/chrome.js +9 -8
  26. package/dist/components/combobox.d.ts +3 -1
  27. package/dist/components/combobox.d.ts.map +1 -1
  28. package/dist/components/combobox.js +3 -2
  29. package/dist/components/data-table.d.ts +9 -3
  30. package/dist/components/data-table.d.ts.map +1 -1
  31. package/dist/components/data-table.js +7 -6
  32. package/dist/components/date-picker.d.ts +6 -2
  33. package/dist/components/date-picker.d.ts.map +1 -1
  34. package/dist/components/date-picker.js +5 -4
  35. package/dist/components/disclosure.d.ts +5 -2
  36. package/dist/components/disclosure.d.ts.map +1 -1
  37. package/dist/components/disclosure.js +5 -4
  38. package/dist/components/display.d.ts +17 -6
  39. package/dist/components/display.d.ts.map +1 -1
  40. package/dist/components/display.js +16 -12
  41. package/dist/components/empty-state.d.ts +15 -5
  42. package/dist/components/empty-state.d.ts.map +1 -1
  43. package/dist/components/empty-state.js +11 -10
  44. package/dist/components/error-state.d.ts +3 -1
  45. package/dist/components/error-state.d.ts.map +1 -1
  46. package/dist/components/error-state.js +3 -2
  47. package/dist/components/file-upload.d.ts +3 -1
  48. package/dist/components/file-upload.d.ts.map +1 -1
  49. package/dist/components/file-upload.js +3 -2
  50. package/dist/components/gauge.d.ts +4 -2
  51. package/dist/components/gauge.d.ts.map +1 -1
  52. package/dist/components/gauge.js +5 -4
  53. package/dist/components/layout.d.ts +24 -5
  54. package/dist/components/layout.d.ts.map +1 -1
  55. package/dist/components/layout.js +18 -8
  56. package/dist/components/log-view.d.ts +3 -1
  57. package/dist/components/log-view.d.ts.map +1 -1
  58. package/dist/components/log-view.js +3 -2
  59. package/dist/components/number-input.d.ts +3 -1
  60. package/dist/components/number-input.d.ts.map +1 -1
  61. package/dist/components/number-input.js +3 -2
  62. package/dist/components/overlay.d.ts +18 -6
  63. package/dist/components/overlay.d.ts.map +1 -1
  64. package/dist/components/overlay.js +13 -12
  65. package/dist/components/pagination.d.ts +3 -1
  66. package/dist/components/pagination.d.ts.map +1 -1
  67. package/dist/components/pagination.js +3 -2
  68. package/dist/components/pie.d.ts +3 -1
  69. package/dist/components/pie.d.ts.map +1 -1
  70. package/dist/components/pie.js +3 -2
  71. package/dist/components/primitives.d.ts +20 -7
  72. package/dist/components/primitives.d.ts.map +1 -1
  73. package/dist/components/primitives.js +15 -14
  74. package/dist/components/progress.d.ts +3 -6
  75. package/dist/components/progress.d.ts.map +1 -1
  76. package/dist/components/progress.js +3 -2
  77. package/dist/components/radio-group.d.ts +3 -1
  78. package/dist/components/radio-group.d.ts.map +1 -1
  79. package/dist/components/radio-group.js +3 -2
  80. package/dist/components/rich-text.d.ts +3 -1
  81. package/dist/components/rich-text.d.ts.map +1 -1
  82. package/dist/components/rich-text.js +3 -2
  83. package/dist/components/section.d.ts +3 -1
  84. package/dist/components/section.d.ts.map +1 -1
  85. package/dist/components/section.js +3 -2
  86. package/dist/components/segmented.d.ts +8 -2
  87. package/dist/components/segmented.d.ts.map +1 -1
  88. package/dist/components/segmented.js +1 -1
  89. package/dist/components/skeleton.d.ts +25 -14
  90. package/dist/components/skeleton.d.ts.map +1 -1
  91. package/dist/components/skeleton.js +24 -18
  92. package/dist/components/slider.d.ts +3 -1
  93. package/dist/components/slider.d.ts.map +1 -1
  94. package/dist/components/slider.js +3 -2
  95. package/dist/components/spinner.d.ts +2 -1
  96. package/dist/components/spinner.d.ts.map +1 -1
  97. package/dist/components/spinner.js +3 -2
  98. package/dist/components/square-picker.d.ts +3 -1
  99. package/dist/components/square-picker.d.ts.map +1 -1
  100. package/dist/components/square-picker.js +3 -2
  101. package/dist/components/stacked-bar.d.ts +3 -1
  102. package/dist/components/stacked-bar.d.ts.map +1 -1
  103. package/dist/components/stacked-bar.js +3 -2
  104. package/dist/components/surface.d.ts +19 -5
  105. package/dist/components/surface.d.ts.map +1 -1
  106. package/dist/components/surface.js +11 -10
  107. package/dist/components/switch.d.ts +3 -1
  108. package/dist/components/switch.d.ts.map +1 -1
  109. package/dist/components/switch.js +3 -2
  110. package/dist/components/tabs.d.ts +3 -1
  111. package/dist/components/tabs.d.ts.map +1 -1
  112. package/dist/components/tabs.js +3 -2
  113. package/dist/components/timeline-strip.d.ts +3 -1
  114. package/dist/components/timeline-strip.d.ts.map +1 -1
  115. package/dist/components/timeline-strip.js +3 -2
  116. package/dist/components/tree-select.d.ts +3 -1
  117. package/dist/components/tree-select.d.ts.map +1 -1
  118. package/dist/components/tree-select.js +3 -2
  119. package/dist/kit.css +1 -1
  120. package/dist/lib/data-props.d.ts +20 -0
  121. package/dist/lib/data-props.d.ts.map +1 -0
  122. package/dist/lib/data-props.js +25 -0
  123. package/dist/styles.css +1 -1
  124. package/dist/theme.css +1 -1
  125. package/package.json +1 -1
@@ -1,6 +1,7 @@
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
  import { Icon } from "./icon.js";
5
6
  import { Check } from "./icons.js";
6
7
  import { OFF } from "./control-base.js";
@@ -11,6 +12,6 @@ import { OFF } from "./control-base.js";
11
12
  * seçildi" demiyor, "bu değer açık" diyor. Mini butonun 1px kenarını ve 1px
12
13
  * offsetini taşır, böylece kontrol ailesinin bir üyesi gibi okunur.
13
14
  * ---------------------------------------------------------------- */
14
- export function Checkbox({ label, checked, onChange, disabled = false, className, }) {
15
- return (_jsxs("button", { type: "button", role: "checkbox", "aria-checked": checked, "aria-disabled": disabled || undefined, disabled: disabled, onClick: () => !disabled && onChange?.(!checked), className: cn("flex items-center gap-2 text-body", className), style: disabled ? OFF : undefined, children: [_jsx("span", { className: "tamga-check", "data-checked": checked, children: checked ? _jsx(Icon, { icon: Check, size: "xs", weight: "bold" }) : null }), label] }));
15
+ export function Checkbox({ label, checked, onChange, disabled = false, className, ...rest }) {
16
+ return (_jsxs("button", { ...dataProps(rest), type: "button", role: "checkbox", "aria-checked": checked, "aria-disabled": disabled || undefined, disabled: disabled, onClick: () => !disabled && onChange?.(!checked), className: cn("flex items-center gap-2 text-body", className), style: disabled ? OFF : undefined, children: [_jsx("span", { className: "tamga-check", "data-checked": checked, children: checked ? _jsx(Icon, { icon: Check, size: "xs", weight: "bold" }) : null }), label] }));
16
17
  }
@@ -21,7 +21,7 @@ import { type ComponentType, type ReactNode } from "react";
21
21
  * görünür. `switch` biçimi aynı iskeleti kullanıyor — iki uçta birer simge,
22
22
  * ortada kayan bir anahtar — yani ikisi yan yana aynı satırda oturuyor.
23
23
  */
24
- export declare function ThemeToggle({ labels, variant, storageKey, dark: controlled, onChange, className, }: {
24
+ export declare function ThemeToggle({ labels, variant, storageKey, dark: controlled, onChange, className, ...rest }: {
25
25
  /**
26
26
  * `icon` and `switch` need ACTION words, `select` needs STATE words. TR: `icon` ve `switch`
27
27
  * EYLEM sözcüğü ister, `select` DURUM sözcüğü.
@@ -60,6 +60,8 @@ export declare function ThemeToggle({ labels, variant, storageKey, dark: control
60
60
  variant?: "icon" | "switch" | "select";
61
61
  storageKey?: string;
62
62
  className?: string;
63
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
64
+ [k: `data-${string}`]: unknown;
63
65
  }): import("react").JSX.Element;
64
66
  /**
65
67
  * Dil değiştirici.
@@ -76,7 +78,7 @@ export declare function ThemeToggle({ labels, variant, storageKey, dark: control
76
78
  * yan yana sığar ve tek tıkla değişir; beş dil yan yana konursa üst şeridi
77
79
  * doldurur ve altıncı dilde taşar.
78
80
  */
79
- export declare function LocaleSwitcher({ locales, current, onChange, label, className, }: {
81
+ export declare function LocaleSwitcher({ locales, current, onChange, label, className, ...rest }: {
80
82
  /**
81
83
  * `[{ value: "tr", label: "Türkçe" }, …]`: the labels are endonyms. TR: `[{ value: "tr",
82
84
  * label: "Türkçe" }, …]`: etiketler endonim.
@@ -90,6 +92,8 @@ export declare function LocaleSwitcher({ locales, current, onChange, label, clas
90
92
  /** The control's name: "Dil", "Language". TR: Kontrolün adı: "Dil", "Language". */
91
93
  label: string;
92
94
  className?: string;
95
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
96
+ [k: `data-${string}`]: unknown;
93
97
  }): import("react").JSX.Element;
94
98
  /**
95
99
  * Kare marka karosu.
@@ -102,7 +106,7 @@ export declare function LocaleSwitcher({ locales, current, onChange, label, clas
102
106
  * yazan bir şeyin yanında durur. İkisini de okutmak ekran okuyucuda adı iki
103
107
  * kez tekrarlar.
104
108
  */
105
- export declare function LogoTile({ name, src, size, className, }: {
109
+ export declare function LogoTile({ name, src, size, className, ...rest }: {
106
110
  /**
107
111
  * The initial is built from it, and it is what shows when the image does not load. TR: Baş
108
112
  * harf buradan üretilir; görsel yüklenmezse görünen şey bu.
@@ -111,6 +115,8 @@ export declare function LogoTile({ name, src, size, className, }: {
111
115
  src?: string;
112
116
  size?: "base" | "sm";
113
117
  className?: string;
118
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
119
+ [k: `data-${string}`]: unknown;
114
120
  }): import("react").JSX.Element;
115
121
  /**
116
122
  * Şeridin sağ ucundaki hesap düğmesi.
@@ -128,7 +134,7 @@ export declare function LogoTile({ name, src, size, className, }: {
128
134
  * FOTOĞRAF YOKSA BAŞ HARFLER: `Avatar` zaten öyle davranıyor, ve bir hesabın
129
135
  * fotoğrafı olmaması normal hâl.
130
136
  */
131
- export declare function AccountButton({ name, src, label, onClick, href, linkComponent: Link, className, }: {
137
+ export declare function AccountButton({ name, src, label, onClick, href, linkComponent: Link, className, ...rest }: {
132
138
  /** The name initials are taken from; shown when there is no photo. TR: Baş harflerin çıkarıldığı ad; fotoğraf yoksa görünen bu. */
133
139
  name: string;
134
140
  src?: string;
@@ -144,5 +150,7 @@ export declare function AccountButton({ name, src, label, onClick, href, linkCom
144
150
  [k: string]: unknown;
145
151
  }>;
146
152
  className?: string;
153
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
154
+ [k: `data-${string}`]: unknown;
147
155
  }): import("react").JSX.Element;
148
156
  //# sourceMappingURL=chrome.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA8BhF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,OAAgB,EAChB,UAA0B,EAC1B,IAAI,EAAE,UAAU,EAChB,QAAQ,EACR,SAAS,GACV,EAAE;IACD;;;;;;;;;;;;OAYG;IACH,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wGAAwG;IACxG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAwFA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE;IACD;;;OAGG;IACH,OAAO,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,mFAAmF;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAgCA;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,GAAG,EACH,IAAa,EACb,SAAS,GACV,EAAE;IACD;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAaA;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,GAAG,EACH,KAAK,EACL,OAAO,EACP,IAAI,EACJ,aAAa,EAAE,IAAI,EACnB,SAAS,GACV,EAAE;IACD,mIAAmI;IACnI,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8IAA8I;IAC9I,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iKAAiK;IACjK,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IAChH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAyBA"}
1
+ {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useState } from "react";
4
4
  import { cn } from "../lib/cn.js";
5
+ import { dataProps } from "../lib/data-props.js";
5
6
  import { Avatar } from "./avatar.js";
6
7
  import { Icon } from "./icon.js";
7
8
  import { Select } from "./primitives.js";
@@ -51,7 +52,7 @@ function write(key, value) {
51
52
  * görünür. `switch` biçimi aynı iskeleti kullanıyor — iki uçta birer simge,
52
53
  * ortada kayan bir anahtar — yani ikisi yan yana aynı satırda oturuyor.
53
54
  */
54
- export function ThemeToggle({ labels, variant = "icon", storageKey = "tamga-theme", dark: controlled, onChange, className, }) {
55
+ export function ThemeToggle({ labels, variant = "icon", storageKey = "tamga-theme", dark: controlled, onChange, className, ...rest }) {
55
56
  const owned = controlled === undefined;
56
57
  const [self, setSelf] = useState(false);
57
58
  const dark = owned ? self : controlled;
@@ -87,7 +88,7 @@ export function ThemeToggle({ labels, variant = "icon", storageKey = "tamga-them
87
88
  }, placeholder: labels.light, "aria-label": labels.light + " / " + labels.dark, className: cn("w-28", className) }));
88
89
  }
89
90
  if (variant === "switch") {
90
- return (_jsxs("span", { className: cn("flex items-center gap-2", className), children: [_jsx(Icon, { icon: ThemeLight, size: "xs", "aria-hidden": true, className: dark ? "text-ink-faint" : "text-ink" }), _jsx(Switch, { on: dark, onChange: toggle, label: "toLight" in labels ? (dark ? labels.toLight : labels.toDark) : "" }), _jsx(Icon, { icon: ThemeDark, size: "xs", "aria-hidden": true, className: dark ? "text-ink" : "text-ink-faint" })] }));
91
+ return (_jsxs("span", { ...dataProps(rest), className: cn("flex items-center gap-2", className), children: [_jsx(Icon, { icon: ThemeLight, size: "xs", "aria-hidden": true, className: dark ? "text-ink-faint" : "text-ink" }), _jsx(Switch, { on: dark, onChange: toggle, label: "toLight" in labels ? (dark ? labels.toLight : labels.toDark) : "" }), _jsx(Icon, { icon: ThemeDark, size: "xs", "aria-hidden": true, className: dark ? "text-ink" : "text-ink-faint" })] }));
91
92
  }
92
93
  /* HANGİ GLİFİN GÖRÜNECEĞİNE CSS KARAR VERİYOR, React durumu değil.
93
94
  Sunucuda çizilen ilk kare temayı bilmiyor: durumla seçilen bir glif, tema
@@ -112,9 +113,9 @@ export function ThemeToggle({ labels, variant = "icon", storageKey = "tamga-them
112
113
  * yan yana sığar ve tek tıkla değişir; beş dil yan yana konursa üst şeridi
113
114
  * doldurur ve altıncı dilde taşar.
114
115
  */
115
- export function LocaleSwitcher({ locales, current, onChange, label, className, }) {
116
+ export function LocaleSwitcher({ locales, current, onChange, label, className, ...rest }) {
116
117
  if (locales.length <= 2) {
117
- return (_jsx("span", { className: cn("tamga-segment", className), role: "group", "aria-label": label, children: locales.map((l) => (_jsx("button", { type: "button", "data-active": l.value === current, "aria-current": l.value === current ? "true" : undefined, onClick: () => onChange(l.value), children: l.label }, l.value))) }));
118
+ return (_jsx("span", { ...dataProps(rest), className: cn("tamga-segment", className), role: "group", "aria-label": label, children: locales.map((l) => (_jsx("button", { type: "button", "data-active": l.value === current, "aria-current": l.value === current ? "true" : undefined, onClick: () => onChange(l.value), children: l.label }, l.value))) }));
118
119
  }
119
120
  return (_jsx("select", { className: cn("tamga-input h-9 w-auto", className), "aria-label": label, value: current, onChange: (e) => onChange(e.target.value), children: locales.map((l) => (_jsx("option", { value: l.value, children: l.label }, l.value))) }));
120
121
  }
@@ -129,8 +130,8 @@ export function LocaleSwitcher({ locales, current, onChange, label, className, }
129
130
  * yazan bir şeyin yanında durur. İkisini de okutmak ekran okuyucuda adı iki
130
131
  * kez tekrarlar.
131
132
  */
132
- export function LogoTile({ name, src, size = "base", className, }) {
133
- return (_jsx("span", { className: cn("tamga-logo-tile", size === "sm" && "tamga-logo-tile-sm", className), children: src ? (_jsx("img", { src: src, alt: "", className: "h-full w-full object-contain p-1.5" })) : (_jsx("span", { "aria-hidden": true, className: "font-mono text-subhead font-semibold text-ink-faint", children: name.trim().charAt(0).toLocaleUpperCase() })) }));
133
+ export function LogoTile({ name, src, size = "base", className, ...rest }) {
134
+ return (_jsx("span", { ...dataProps(rest), className: cn("tamga-logo-tile", size === "sm" && "tamga-logo-tile-sm", className), children: src ? (_jsx("img", { src: src, alt: "", className: "h-full w-full object-contain p-1.5" })) : (_jsx("span", { "aria-hidden": true, className: "font-mono text-subhead font-semibold text-ink-faint", children: name.trim().charAt(0).toLocaleUpperCase() })) }));
134
135
  }
135
136
  /**
136
137
  * Şeridin sağ ucundaki hesap düğmesi.
@@ -148,14 +149,14 @@ export function LogoTile({ name, src, size = "base", className, }) {
148
149
  * FOTOĞRAF YOKSA BAŞ HARFLER: `Avatar` zaten öyle davranıyor, ve bir hesabın
149
150
  * fotoğrafı olmaması normal hâl.
150
151
  */
151
- export function AccountButton({ name, src, label, onClick, href, linkComponent: Link, className, }) {
152
+ export function AccountButton({ name, src, label, onClick, href, linkComponent: Link, className, ...rest }) {
152
153
  const ic = (_jsx(Avatar, { name: name, src: src, size: 38, bare: true }));
153
154
  const sinif = cn("tamga-icon-btn overflow-hidden p-0", className);
154
155
  if (href && Link) {
155
156
  return (_jsx(Link, { href: href, "aria-label": label, className: sinif, children: ic }));
156
157
  }
157
158
  if (href) {
158
- return (_jsx("a", { href: href, "aria-label": label, className: sinif, children: ic }));
159
+ return (_jsx("a", { ...dataProps(rest), href: href, "aria-label": label, className: sinif, children: ic }));
159
160
  }
160
161
  return (_jsx("button", { type: "button", onClick: onClick, "aria-label": label, className: sinif, children: ic }));
161
162
  }
@@ -9,7 +9,7 @@ export type ComboOption<T extends string> = {
9
9
  /** Etiketin altındaki ikinci satır — SKU, e-posta, kategori. */
10
10
  hint?: string;
11
11
  };
12
- export declare function Combobox<T extends string>({ options, value, onChange, onSearch, placeholder, labels, disabled, invalid, className, }: {
12
+ export declare function Combobox<T extends string>({ options, value, onChange, onSearch, placeholder, labels, disabled, invalid, className, ...rest }: {
13
13
  options: readonly ComboOption<T>[];
14
14
  value?: T;
15
15
  onChange?: (next: T | undefined) => void;
@@ -27,5 +27,7 @@ export declare function Combobox<T extends string>({ options, value, onChange, o
27
27
  disabled?: boolean;
28
28
  invalid?: boolean;
29
29
  className?: string;
30
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
31
+ [k: `data-${string}`]: unknown;
30
32
  }): import("react").JSX.Element;
31
33
  //# sourceMappingURL=combobox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../src/components/combobox.tsx"],"names":[],"mappings":"AAOA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,EACzC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,QAAgB,EAChB,OAAe,EACf,SAAS,GACV,EAAE;IACD,OAAO,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAwIA"}
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../src/components/combobox.tsx"],"names":[],"mappings":"AAQA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;IAC1C,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,EACzC,OAAO,EACP,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,EACN,QAAgB,EAChB,OAAe,EACf,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,OAAO,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAwIA"}
@@ -2,9 +2,10 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useId, useMemo, useRef, useState } from "react";
4
4
  import { cn } from "../lib/cn.js";
5
+ import { dataProps } from "../lib/data-props.js";
5
6
  import { Icon } from "./icon.js";
6
7
  import { CaretDown, Close, Search } from "./icons.js";
7
- export function Combobox({ options, value, onChange, onSearch, placeholder, labels, disabled = false, invalid = false, className, }) {
8
+ export function Combobox({ options, value, onChange, onSearch, placeholder, labels, disabled = false, invalid = false, className, ...rest }) {
8
9
  const id = useId();
9
10
  const [open, setOpen] = useState(false);
10
11
  const [query, setQuery] = useState("");
@@ -34,7 +35,7 @@ export function Combobox({ options, value, onChange, onSearch, placeholder, labe
34
35
  setQuery("");
35
36
  setOpen(false);
36
37
  }
37
- return (_jsxs("div", { ref: box, className: cn("relative", className), children: [_jsxs("span", { className: "relative flex items-center", children: [_jsx(Icon, { icon: Search, size: "xs", className: "pointer-events-none absolute left-3 text-ink-faint" }), _jsx("input", { type: "text", role: "combobox", "aria-expanded": open, "aria-controls": `${id}-list`, "aria-autocomplete": "list", "aria-activedescendant": open && shown[active] ? `${id}-opt-${active}` : undefined, "aria-invalid": invalid || undefined, disabled: disabled, placeholder: selected ? selected.label : placeholder, value: query, onFocus: () => setOpen(true), onChange: (e) => {
38
+ return (_jsxs("div", { ...dataProps(rest), ref: box, className: cn("relative", className), children: [_jsxs("span", { className: "relative flex items-center", children: [_jsx(Icon, { icon: Search, size: "xs", className: "pointer-events-none absolute left-3 text-ink-faint" }), _jsx("input", { type: "text", role: "combobox", "aria-expanded": open, "aria-controls": `${id}-list`, "aria-autocomplete": "list", "aria-activedescendant": open && shown[active] ? `${id}-opt-${active}` : undefined, "aria-invalid": invalid || undefined, disabled: disabled, placeholder: selected ? selected.label : placeholder, value: query, onFocus: () => setOpen(true), onChange: (e) => {
38
39
  setQuery(e.target.value);
39
40
  setOpen(true);
40
41
  onSearch?.(e.target.value);
@@ -27,17 +27,21 @@ export declare function SortHeader({ children, direction, onSort, align, classNa
27
27
  * durumdadır. Boş göstermek "hiçbiri seçili değil" der ve yalandır; işaretli
28
28
  * göstermek "hepsi seçili" der ve daha kötüdür — kullanıcı silmeye basar.
29
29
  */
30
- export declare function SelectAll({ checked, indeterminate, onChange, label, }: {
30
+ export declare function SelectAll({ checked, indeterminate, onChange, label, ...rest }: {
31
31
  checked: boolean;
32
32
  indeterminate: boolean;
33
33
  onChange?: (next: boolean) => void;
34
34
  label: string;
35
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
36
+ [k: `data-${string}`]: unknown;
35
37
  }): import("react").JSX.Element;
36
38
  /** Satır seçim kutusu — baş kutunun küçük kardeşi. */
37
- export declare function SelectRow({ checked, onChange, label, }: {
39
+ export declare function SelectRow({ checked, onChange, label, ...rest }: {
38
40
  checked: boolean;
39
41
  onChange?: (next: boolean) => void;
40
42
  label: string;
43
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
44
+ [k: `data-${string}`]: unknown;
41
45
  }): import("react").JSX.Element;
42
46
  /**
43
47
  * Seçim çubuğu — "3 kayıt seçildi" ve yanındaki toplu eylemler.
@@ -46,7 +50,7 @@ export declare function SelectRow({ checked, onChange, label, }: {
46
50
  * gözün gittiği yerde olmalı. Ve seçim boşken hiç render edilmez — boş bir
47
51
  * çubuk yer kaplar, bilgi vermez.
48
52
  */
49
- export declare function SelectionBar({ count, onClear, children, labels, className, }: {
53
+ export declare function SelectionBar({ count, onClear, children, labels, className, ...rest }: {
50
54
  count: number;
51
55
  onClear?: () => void;
52
56
  /**
@@ -64,5 +68,7 @@ export declare function SelectionBar({ count, onClear, children, labels, classNa
64
68
  clear: string;
65
69
  };
66
70
  className?: string;
71
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
72
+ [k: `data-${string}`]: unknown;
67
73
  }): import("react").JSX.Element | null;
68
74
  //# sourceMappingURL=data-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/components/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC;;;;GAIG;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,MAAM,EACN,KAAc,EACd,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,+BA+B3D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,KAAK,GACN,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf,+BA2BA;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf,+BAEA;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,MAAM,EAAE;QAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,sCAuBA"}
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/components/data-table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC;;;;GAIG;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,SAAS,EACT,MAAM,EACN,KAAc,EACd,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC,+BA+B3D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,aAAa,EACb,QAAQ,EACR,KAAK,EACL,GAAG,IAAI,EACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BA4BA;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,QAAQ,EACR,KAAK,EACL,GAAG,IAAI,EACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAEA;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,MAAM,EAAE;QAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,sCAwBA"}
@@ -1,6 +1,7 @@
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
  import { Icon } from "./icon.js";
5
6
  import { CaretDown, Close } from "./icons.js";
6
7
  import { Checkbox } from "./checkbox.js";
@@ -22,8 +23,8 @@ export function SortHeader({ children, direction, onSort, align = "left", classN
22
23
  * durumdadır. Boş göstermek "hiçbiri seçili değil" der ve yalandır; işaretli
23
24
  * göstermek "hepsi seçili" der ve daha kötüdür — kullanıcı silmeye basar.
24
25
  */
25
- export function SelectAll({ checked, indeterminate, onChange, label, }) {
26
- return (_jsx("span", {
26
+ export function SelectAll({ checked, indeterminate, onChange, label, ...rest }) {
27
+ return (_jsx("span", { ...dataProps(rest),
27
28
  /* `aria-checked="mixed"` üçüncü durumun standart karşılığı. */
28
29
  role: "checkbox", "aria-checked": indeterminate ? "mixed" : checked, "aria-label": label, tabIndex: 0, onClick: () => onChange?.(!checked), onKeyDown: (e) => {
29
30
  if (e.key === " " || e.key === "Enter") {
@@ -33,8 +34,8 @@ export function SelectAll({ checked, indeterminate, onChange, label, }) {
33
34
  }, className: "inline-flex cursor-pointer", children: _jsxs("span", { className: "tamga-check", "data-checked": checked || indeterminate, children: [indeterminate ? (_jsx("span", { className: "block h-0.5 w-2 bg-current", "aria-hidden": true })) : checked ? (_jsx(Icon, { icon: CaretDown, size: "xs", className: "hidden" })) : null, checked && !indeterminate ? _jsx("span", { className: "block h-2 w-2 bg-current", "aria-hidden": true }) : null] }) }));
34
35
  }
35
36
  /** Satır seçim kutusu — baş kutunun küçük kardeşi. */
36
- export function SelectRow({ checked, onChange, label, }) {
37
- return _jsx(Checkbox, { label: _jsx("span", { className: "sr-only", children: label }), checked: checked, onChange: onChange });
37
+ export function SelectRow({ checked, onChange, label, ...rest }) {
38
+ return _jsx(Checkbox, { label: _jsx("span", { ...dataProps(rest), className: "sr-only", children: label }), checked: checked, onChange: onChange });
38
39
  }
39
40
  /**
40
41
  * Seçim çubuğu — "3 kayıt seçildi" ve yanındaki toplu eylemler.
@@ -43,8 +44,8 @@ export function SelectRow({ checked, onChange, label, }) {
43
44
  * gözün gittiği yerde olmalı. Ve seçim boşken hiç render edilmez — boş bir
44
45
  * çubuk yer kaplar, bilgi vermez.
45
46
  */
46
- export function SelectionBar({ count, onClear, children, labels, className, }) {
47
+ export function SelectionBar({ count, onClear, children, labels, className, ...rest }) {
47
48
  if (count === 0)
48
49
  return null;
49
- return (_jsxs("div", { role: "status", className: cn("tamga-gutter flex flex-wrap items-center gap-3 border-b border-[var(--color-line)] py-3", className), style: { background: "var(--color-accent-bg)" }, children: [_jsx("span", { className: "text-body font-medium text-ink tabular-nums", children: labels.selected(count) }), children ? _jsx("span", { className: "flex flex-wrap items-center gap-2", children: children }) : null, _jsx("button", { type: "button", className: "tamga-icon-btn ml-auto", "aria-label": labels.clear, onClick: onClear, children: _jsx(Icon, { icon: Close, size: "xs" }) })] }));
50
+ return (_jsxs("div", { ...dataProps(rest), role: "status", className: cn("tamga-gutter flex flex-wrap items-center gap-3 border-b border-[var(--color-line)] py-3", className), style: { background: "var(--color-accent-bg)" }, children: [_jsx("span", { className: "text-body font-medium text-ink tabular-nums", children: labels.selected(count) }), children ? _jsx("span", { className: "flex flex-wrap items-center gap-2", children: children }) : null, _jsx("button", { type: "button", className: "tamga-icon-btn ml-auto", "aria-label": labels.clear, onClick: onClear, children: _jsx(Icon, { icon: Close, size: "xs" }) })] }));
50
51
  }
@@ -9,7 +9,7 @@ export type DateRange = {
9
9
  from?: DateISO;
10
10
  to?: DateISO;
11
11
  };
12
- export declare function Calendar({ locale, value, range, onSelect, labels, className, }: {
12
+ export declare function Calendar({ locale, value, range, onSelect, labels, className, ...rest }: {
13
13
  /**
14
14
  * `"tr-TR"`, `"en-US"`; month names and the first day of the week come from it. TR:
15
15
  * `"tr-TR"`, `"en-US"`; ay adları ve hafta başlangıcı buradan gelir.
@@ -27,6 +27,8 @@ export declare function Calendar({ locale, value, range, onSelect, labels, class
27
27
  nextMonth: string;
28
28
  };
29
29
  className?: string;
30
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
31
+ [k: `data-${string}`]: unknown;
30
32
  }): import("react").JSX.Element;
31
33
  /**
32
34
  * Alan + açılan takvim.
@@ -35,7 +37,7 @@ export declare function Calendar({ locale, value, range, onSelect, labels, class
35
37
  * demektir (`15/04/2026` · `04/15/2026` · `2026-04-15`) ve yanlış okunan bir
36
38
  * tarih sessizce yanlış veri üretir. Takvim tek doğru giriş yolu.
37
39
  */
38
- export declare function DatePicker({ locale, value, onChange, placeholder, labels, disabled, className, }: {
40
+ export declare function DatePicker({ locale, value, onChange, placeholder, labels, disabled, className, ...rest }: {
39
41
  locale: string;
40
42
  value?: DateISO;
41
43
  onChange?: (next: DateISO | undefined) => void;
@@ -48,5 +50,7 @@ export declare function DatePicker({ locale, value, onChange, placeholder, label
48
50
  };
49
51
  disabled?: boolean;
50
52
  className?: string;
53
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
54
+ [k: `data-${string}`]: unknown;
51
55
  }): import("react").JSX.Element;
52
56
  //# sourceMappingURL=date-picker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../src/components/date-picker.tsx"],"names":[],"mappings":"AAOA;;;;GAIG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAgCzD,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE;IACD;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BA0EA;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,QAAgB,EAChB,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BA0DA"}
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../src/components/date-picker.tsx"],"names":[],"mappings":"AAQA;;;;GAIG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAgCzD,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BA0EA;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,KAAK,EACL,QAAQ,EACR,WAAW,EACX,MAAM,EACN,QAAgB,EAChB,SAAS,EACT,GAAG,IAAI,EACR,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BA0DA"}
@@ -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 { Icon } from "./icon.js";
6
7
  import { CaretLeft, CaretRight, CalendarPlus, Close } from "./icons.js";
7
8
  const iso = (y, m, d) => `${y}-${String(m + 1).padStart(2, "0")}-${String(d).padStart(2, "0")}`;
@@ -31,7 +32,7 @@ function weekStart(locale) {
31
32
  }
32
33
  return 1;
33
34
  }
34
- export function Calendar({ locale, value, range, onSelect, labels, className, }) {
35
+ export function Calendar({ locale, value, range, onSelect, labels, className, ...rest }) {
35
36
  const today = new Date();
36
37
  const [view, setView] = useState({ y: today.getFullYear(), m: today.getMonth() });
37
38
  const first = weekStart(locale);
@@ -44,7 +45,7 @@ export function Calendar({ locale, value, range, onSelect, labels, className, })
44
45
  }, [locale, first]);
45
46
  const inRange = (d) => range?.from && range?.to ? d >= range.from && d <= range.to : false;
46
47
  const isEdge = (d) => d === range?.from || d === range?.to || d === value;
47
- return (_jsxs("div", { className: cn("w-70", className), children: [_jsxs("div", { className: "mb-3 flex items-center gap-2", children: [_jsx("button", { type: "button", className: "tamga-icon-btn", "aria-label": labels.previousMonth, onClick: () => setView((v) => (v.m === 0 ? { y: v.y - 1, m: 11 } : { ...v, m: v.m - 1 })), children: _jsx(Icon, { icon: CaretLeft, size: "xs" }) }), _jsx("span", { className: "flex-1 text-center text-body font-medium text-ink", children: monthName }), _jsx("button", { type: "button", className: "tamga-icon-btn", "aria-label": labels.nextMonth, onClick: () => setView((v) => (v.m === 11 ? { y: v.y + 1, m: 0 } : { ...v, m: v.m + 1 })), children: _jsx(Icon, { icon: CaretRight, size: "xs" }) })] }), _jsxs("div", { className: "grid grid-cols-7 gap-px", children: [dayNames.map((d) => (_jsx("span", { className: "pb-1 text-center text-caption text-ink-faint", children: d }, d))), cells.map((d, i) => {
48
+ return (_jsxs("div", { ...dataProps(rest), className: cn("w-70", className), children: [_jsxs("div", { className: "mb-3 flex items-center gap-2", children: [_jsx("button", { type: "button", className: "tamga-icon-btn", "aria-label": labels.previousMonth, onClick: () => setView((v) => (v.m === 0 ? { y: v.y - 1, m: 11 } : { ...v, m: v.m - 1 })), children: _jsx(Icon, { icon: CaretLeft, size: "xs" }) }), _jsx("span", { className: "flex-1 text-center text-body font-medium text-ink", children: monthName }), _jsx("button", { type: "button", className: "tamga-icon-btn", "aria-label": labels.nextMonth, onClick: () => setView((v) => (v.m === 11 ? { y: v.y + 1, m: 0 } : { ...v, m: v.m + 1 })), children: _jsx(Icon, { icon: CaretRight, size: "xs" }) })] }), _jsxs("div", { className: "grid grid-cols-7 gap-px", children: [dayNames.map((d) => (_jsx("span", { className: "pb-1 text-center text-caption text-ink-faint", children: d }, d))), cells.map((d, i) => {
48
49
  if (d === null)
49
50
  return _jsx("span", {}, `x${i}`);
50
51
  const date = iso(view.y, view.m, d);
@@ -61,12 +62,12 @@ export function Calendar({ locale, value, range, onSelect, labels, className, })
61
62
  * demektir (`15/04/2026` · `04/15/2026` · `2026-04-15`) ve yanlış okunan bir
62
63
  * tarih sessizce yanlış veri üretir. Takvim tek doğru giriş yolu.
63
64
  */
64
- export function DatePicker({ locale, value, onChange, placeholder, labels, disabled = false, className, }) {
65
+ export function DatePicker({ locale, value, onChange, placeholder, labels, disabled = false, className, ...rest }) {
65
66
  const [open, setOpen] = useState(false);
66
67
  const shown = value
67
68
  ? new Intl.DateTimeFormat(locale, { dateStyle: "medium" }).format(new Date(`${value}T00:00:00Z`))
68
69
  : "";
69
- return (_jsxs("div", { className: cn("relative", className), children: [_jsxs("span", { className: "relative flex items-center", children: [_jsx(Icon, { icon: CalendarPlus, size: "xs", className: "pointer-events-none absolute left-3 text-ink-faint" }), _jsx("input", { type: "text", readOnly: true, disabled: disabled, value: shown, placeholder: placeholder, onClick: () => !disabled && setOpen((v) => !v), className: "tamga-input w-full cursor-pointer pr-16 pl-9", "aria-haspopup": "dialog", "aria-expanded": open }), _jsxs("span", { className: "absolute right-1.5 flex gap-0.5", children: [value ? (_jsx("button", { type: "button", className: "tamga-mini-btn", "aria-label": labels.clear, onClick: () => onChange?.(undefined), children: _jsx(Icon, { icon: Close, size: "xs" }) })) : null, _jsx("button", { type: "button", className: "tamga-mini-btn", "aria-label": labels.open, onClick: () => setOpen((v) => !v), children: _jsx(Icon, { icon: CalendarPlus, size: "xs" }) })] })] }), open ? (_jsx("div", { className: "tamga-overlay absolute z-30 mt-2 p-3", children: _jsx(Calendar, { locale: locale, value: value, labels: labels, onSelect: (d) => {
70
+ return (_jsxs("div", { ...dataProps(rest), className: cn("relative", className), children: [_jsxs("span", { className: "relative flex items-center", children: [_jsx(Icon, { icon: CalendarPlus, size: "xs", className: "pointer-events-none absolute left-3 text-ink-faint" }), _jsx("input", { type: "text", readOnly: true, disabled: disabled, value: shown, placeholder: placeholder, onClick: () => !disabled && setOpen((v) => !v), className: "tamga-input w-full cursor-pointer pr-16 pl-9", "aria-haspopup": "dialog", "aria-expanded": open }), _jsxs("span", { className: "absolute right-1.5 flex gap-0.5", children: [value ? (_jsx("button", { type: "button", className: "tamga-mini-btn", "aria-label": labels.clear, onClick: () => onChange?.(undefined), children: _jsx(Icon, { icon: Close, size: "xs" }) })) : null, _jsx("button", { type: "button", className: "tamga-mini-btn", "aria-label": labels.open, onClick: () => setOpen((v) => !v), children: _jsx(Icon, { icon: CalendarPlus, size: "xs" }) })] })] }), open ? (_jsx("div", { className: "tamga-overlay absolute z-30 mt-2 p-3", children: _jsx(Calendar, { locale: locale, value: value, labels: labels, onSelect: (d) => {
70
71
  onChange?.(d);
71
72
  setOpen(false);
72
73
  } }) })) : null] }));
@@ -5,7 +5,7 @@ import { type ReactNode } from "react";
5
5
  * Gerekçe: docs/gerekce/01-form-ve-girdi.md
6
6
  */
7
7
  /** Tek bir açılır bölüm. */
8
- export declare function Collapsible({ title, defaultOpen, meta, className, children, }: {
8
+ export declare function Collapsible({ title, defaultOpen, meta, className, children, ...rest }: {
9
9
  title: string;
10
10
  defaultOpen?: boolean;
11
11
  /**
@@ -15,6 +15,8 @@ export declare function Collapsible({ title, defaultOpen, meta, className, child
15
15
  meta?: ReactNode;
16
16
  className?: string;
17
17
  children: ReactNode;
18
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
19
+ [k: `data-${string}`]: unknown;
18
20
  }): import("react").JSX.Element;
19
21
  /**
20
22
  * Açılır bölümler grubu.
@@ -24,8 +26,9 @@ export declare function Collapsible({ title, defaultOpen, meta, className, child
24
26
  * karşılaştırmak yaygın bir iş, ve otomatik kapanma onu imkânsız kılar.
25
27
  * Gerekiyorsa çağıran kendi durumunu tutar.
26
28
  */
27
- export declare function Accordion({ className, children }: {
29
+ export declare function Accordion({ className, children, ...rest }: {
28
30
  className?: string;
29
31
  children: ReactNode;
32
+ [k: `data-${string}`]: unknown;
30
33
  }): import("react").JSX.Element;
31
34
  //# sourceMappingURL=disclosure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"disclosure.d.ts","sourceRoot":"","sources":["../../src/components/disclosure.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKxD;;;;GAIG;AAEH,4BAA4B;AAC5B,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAmB,EACnB,IAAI,EACJ,SAAS,EACT,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAkCA;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAE7F"}
1
+ {"version":3,"file":"disclosure.d.ts","sourceRoot":"","sources":["../../src/components/disclosure.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMxD;;;;GAIG;AAEH,4BAA4B;AAC5B,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAmB,EACnB,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,mEAAmE;IACnE,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAC;CAChC,+BAkCA;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAC;IAAC,CAAC,CAAC,EAAE,QAAQ,MAAM,EAAE,GAAG,OAAO,CAAA;CAAE,+BAEtI"}
@@ -2,6 +2,7 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useId, useState } from "react";
4
4
  import { cn } from "../lib/cn.js";
5
+ import { dataProps } from "../lib/data-props.js";
5
6
  import { Icon } from "./icon.js";
6
7
  import { CaretRight } from "./icons.js";
7
8
  /**
@@ -10,10 +11,10 @@ import { CaretRight } from "./icons.js";
10
11
  * Gerekçe: docs/gerekce/01-form-ve-girdi.md
11
12
  */
12
13
  /** Tek bir açılır bölüm. */
13
- export function Collapsible({ title, defaultOpen = false, meta, className, children, }) {
14
+ export function Collapsible({ title, defaultOpen = false, meta, className, children, ...rest }) {
14
15
  const id = useId();
15
16
  const [open, setOpen] = useState(defaultOpen);
16
- return (_jsxs("div", { className: cn("border-b border-[var(--color-line)] last:border-b-0", className), children: [_jsxs("button", { type: "button",
17
+ return (_jsxs("div", { ...dataProps(rest), className: cn("border-b border-[var(--color-line)] last:border-b-0", className), children: [_jsxs("button", { type: "button",
17
18
  /* `tamga-gutter` şart: `.tamga-head` yalnız DİKEY boşluk taşıyor.
18
19
  Onsuz başlık kabın kenarına yapışıyordu — ve altındaki gövde
19
20
  gutter'lı olduğu için ikisi hizasız duruyordu. */
@@ -27,6 +28,6 @@ export function Collapsible({ title, defaultOpen = false, meta, className, child
27
28
  * karşılaştırmak yaygın bir iş, ve otomatik kapanma onu imkânsız kılar.
28
29
  * Gerekiyorsa çağıran kendi durumunu tutar.
29
30
  */
30
- export function Accordion({ className, children }) {
31
- return _jsx("div", { className: cn("tamga-surface overflow-hidden", className), children: children });
31
+ export function Accordion({ className, children, ...rest }) {
32
+ return _jsx("div", { ...dataProps(rest), className: cn("tamga-surface overflow-hidden", className), children: children });
32
33
  }
@@ -7,7 +7,7 @@ import { type Tone } from "./tone.js";
7
7
  *
8
8
  * Gerekçe: docs/gerekce/05-yuzey-ve-kabuk.md
9
9
  */
10
- export declare function Descriptions({ items, layout, className, }: {
10
+ export declare function Descriptions({ items, layout, className, ...rest }: {
11
11
  items: readonly {
12
12
  term: string;
13
13
  value: ReactNode;
@@ -19,6 +19,8 @@ export declare function Descriptions({ items, layout, className, }: {
19
19
  */
20
20
  layout?: "wide" | "compact";
21
21
  className?: string;
22
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
23
+ [k: `data-${string}`]: unknown;
22
24
  }): import("react").JSX.Element;
23
25
  /**
24
26
  * Tek bir sayı, büyük. Sektörde adı "stat" ya da "KPI kartı".
@@ -67,7 +69,7 @@ export declare function Descriptions({ items, layout, className, }: {
67
69
  * görünüyordu. Tüketicisi olmayan bir prop, `SkeletonKpi`ın yıllarca yaşadığı
68
70
  * boşluğun aynısı: duruyor, belgeleniyor, hiçbir şeyin yerini tutmuyor.
69
71
  */
70
- export declare function Kpi({ label, value, unit, icon, note, delta, better, chart, href, onClick, pressed, linkComponent: Link, className, }: {
72
+ export declare function Kpi({ label, value, unit, icon, note, delta, better, chart, href, onClick, pressed, linkComponent: Link, className, ...rest }: {
71
73
  label: string;
72
74
  value: string | number;
73
75
  unit?: string;
@@ -90,6 +92,8 @@ export declare function Kpi({ label, value, unit, icon, note, delta, better, cha
90
92
  /** The router's link, so the tile does not force a full page load. TR: Yönlendiricinin bağlantısı, karo tam sayfa yüklemeye zorlamasın diye. */
91
93
  linkComponent?: LinkComponent;
92
94
  className?: string;
95
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
96
+ [k: `data-${string}`]: unknown;
93
97
  }): import("react").JSX.Element;
94
98
  /**
95
99
  * KPI karolarının ızgarası.
@@ -103,9 +107,10 @@ export declare function Kpi({ label, value, unit, icon, note, delta, better, cha
103
107
  * altı). Elle verilen bir sütun sayısı, karo eklenince yalnız o ekranda
104
108
  * güncelleniyor ve tek başına kalan bir karo tam satırı kaplıyor.
105
109
  */
106
- export declare function KpiGrid({ children, className }: {
110
+ export declare function KpiGrid({ children, className, ...rest }: {
107
111
  children: ReactNode;
108
112
  className?: string;
113
+ [k: `data-${string}`]: unknown;
109
114
  }): import("react").JSX.Element;
110
115
  /**
111
116
  * Kod bloğu, kopyalanabilir.
@@ -118,7 +123,7 @@ export declare function KpiGrid({ children, className }: {
118
123
  * izin verilmemişse). Başarısızlık SESSİZ olmamalı: düğme metni değişmezse
119
124
  * kullanıcı kopyalandığını sanır ve boş yapıştırır.
120
125
  */
121
- export declare function Code({ children, labels, className, }: {
126
+ export declare function Code({ children, labels, className, ...rest }: {
122
127
  /** The text to be copied itself. TR: Kopyalanacak metnin kendisi. */
123
128
  children: string;
124
129
  labels: {
@@ -127,6 +132,8 @@ export declare function Code({ children, labels, className, }: {
127
132
  failed: string;
128
133
  };
129
134
  className?: string;
135
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
136
+ [k: `data-${string}`]: unknown;
130
137
  }): import("react").JSX.Element;
131
138
  /**
132
139
  * Klavye tuşu.
@@ -149,7 +156,7 @@ export declare function Kbd({ children, className }: {
149
156
  *
150
157
  * Sıfır GÖSTERİLMEZ: "0 bildirim" bir bilgi değil, gürültüdür.
151
158
  */
152
- export declare function Badge({ count, max, tone, label, className, children, }: {
159
+ export declare function Badge({ count, max, tone, label, className, children, ...rest }: {
153
160
  count: number;
154
161
  max?: number;
155
162
  tone?: Tone;
@@ -164,6 +171,8 @@ export declare function Badge({ count, max, tone, label, className, children, }:
164
171
  * üstüne oturacağı şey (ikon, avatar). Yoksa rozet tek başına durur.
165
172
  */
166
173
  children?: ReactNode;
174
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
175
+ [k: `data-${string}`]: unknown;
167
176
  }): import("react").JSX.Element;
168
177
  /**
169
178
  * Adım göstergesi.
@@ -179,10 +188,12 @@ export declare function Badge({ count, max, tone, label, className, children, }:
179
188
  * olan sönük. Üç durum üç ayrı görsel dil — çünkü "neredeyim" ve "ne kaldı"
180
189
  * ayrı iki soru.
181
190
  */
182
- export declare function Steps({ steps, current, className, }: {
191
+ export declare function Steps({ steps, current, className, ...rest }: {
183
192
  steps: readonly string[];
184
193
  /** The active step, counting from zero. TR: Sıfırdan sayan aktif adım. */
185
194
  current: number;
186
195
  className?: string;
196
+ /** `data-*` hooks pass through. TR: `data-*` kancaları geçiyor. */
197
+ [k: `data-${string}`]: unknown;
187
198
  }): import("react").JSX.Element;
188
199
  //# sourceMappingURL=display.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/components/display.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/components/display.tsx"],"names":[],"mappings":"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"}