tamga-ui 0.1.0 → 0.2.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.
Files changed (48) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +83 -91
  3. package/dist/blocks/count-row.d.ts +3 -3
  4. package/dist/blocks/count-row.d.ts.map +1 -1
  5. package/dist/blocks/filter-bar.d.ts +13 -13
  6. package/dist/blocks/filter-bar.d.ts.map +1 -1
  7. package/dist/blocks/save-bar.d.ts +3 -3
  8. package/dist/blocks/save-bar.d.ts.map +1 -1
  9. package/dist/components/chrome.d.ts +54 -3
  10. package/dist/components/chrome.d.ts.map +1 -1
  11. package/dist/components/chrome.js +43 -2
  12. package/dist/components/primitives.d.ts +32 -2
  13. package/dist/components/primitives.d.ts.map +1 -1
  14. package/dist/components/primitives.js +11 -4
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/kit.css +45 -0
  19. package/dist/lib/color.d.ts +31 -11
  20. package/dist/lib/color.d.ts.map +1 -1
  21. package/dist/lib/color.js +40 -18
  22. package/dist/lib/palette.d.ts +38 -19
  23. package/dist/lib/palette.d.ts.map +1 -1
  24. package/dist/lib/palette.js +45 -33
  25. package/dist/patterns/app-shell.d.ts +22 -6
  26. package/dist/patterns/app-shell.d.ts.map +1 -1
  27. package/dist/patterns/app-shell.js +13 -4
  28. package/dist/patterns/auth-template.d.ts +9 -6
  29. package/dist/patterns/auth-template.d.ts.map +1 -1
  30. package/dist/patterns/detail-template.d.ts +5 -5
  31. package/dist/patterns/detail-template.d.ts.map +1 -1
  32. package/dist/patterns/index.d.ts +1 -1
  33. package/dist/patterns/index.d.ts.map +1 -1
  34. package/dist/patterns/index.js +5 -1
  35. package/dist/patterns/list-template.d.ts +6 -6
  36. package/dist/patterns/list-template.d.ts.map +1 -1
  37. package/dist/patterns/overview-template.d.ts +3 -3
  38. package/dist/patterns/overview-template.d.ts.map +1 -1
  39. package/dist/patterns/public-template.d.ts +3 -3
  40. package/dist/patterns/public-template.d.ts.map +1 -1
  41. package/dist/patterns/settings-template.d.ts +3 -3
  42. package/dist/patterns/settings-template.d.ts.map +1 -1
  43. package/dist/patterns/shared.d.ts +3 -3
  44. package/dist/patterns/shared.d.ts.map +1 -1
  45. package/dist/patterns/wizard-template.d.ts +1 -1
  46. package/dist/patterns/wizard-template.d.ts.map +1 -1
  47. package/dist/patterns/wizard-template.js +2 -9
  48. package/package.json +4 -3
package/CHANGELOG.md ADDED
@@ -0,0 +1,90 @@
1
+ # Changelog
2
+
3
+ Versions follow [semver](https://semver.org/). Through `0.x`, breaking changes may land in a
4
+ **minor** release; each one is listed below under "Breaking", together with how to move across it.
5
+
6
+ > 🇹🇷 Türkçe için [tamga.org.tr/tr](https://tamga.org.tr/tr).
7
+
8
+ ## 0.2.0
9
+
10
+ Most of this release came out of gaps found by two people using the kit **from the outside**:
11
+ one rewriting a photo application on top of it, another building an e-commerce panel from scratch.
12
+
13
+ ### Breaking
14
+
15
+ - **`ErrorSlot` and `Busy` are no longer exported from `tamga-ui/patterns`.** They were the
16
+ templates' internal machinery; templates already draw their own error and loading states, and
17
+ offering these separately was an invitation to draw the same state two different ways.
18
+ **Migration:** if you want that treatment, use the template (`ListTemplate`, `DetailTemplate`,
19
+ `WizardTemplate`); all three draw the same slot from their `state` and `error` props.
20
+
21
+ - **`Kpi.accent` and `Kpi.attention` were removed.** Both let the tile change itself per screen:
22
+ `accent` drew the data's own colour down the left edge, `attention` painted the number in the
23
+ critical colour. Their only consumer rejected both — the colour was already on the badge in the
24
+ list, and with three of five tiles red none of them led. The tile now looks the same on every
25
+ screen.
26
+ **Migration:** to say a number is bad, use `delta` (a change with a direction and a meaning) or
27
+ the screen the tile opens.
28
+
29
+ ### Renamed (the old names still work for one more version)
30
+
31
+ The names in `tamga-ui/palette` and the colour helpers were in Turkish; ADR-0001 says names are
32
+ English, and we wrote that rule. The old names remain as `@deprecated` aliases and **will be
33
+ removed in 0.3.0**.
34
+
35
+ | old | new |
36
+ | --- | --- |
37
+ | `gecerliHex` | `isHex` |
38
+ | `hexRgb` · `rgbHex` | `hexToRgb` · `rgbToHex` |
39
+ | `parlaklik` · `oran` · `acikligi` · `dL` | `luminance` · `contrast` · `lightness` · `deltaL` |
40
+ | `hexOklch` · `oklchHex` | `hexToOklch` · `oklchToHex` |
41
+ | `oranaGoreAcikligi` | `lightnessForContrast` |
42
+ | `paletUret` · `paletiOlc` | `makePalette` · `measurePalette` |
43
+ | `paletStili` · `paletCss` | `paletteVars` · `paletteCss` |
44
+ | `Palet` · `PaletCifti` · `Olcum` | `Palette` · `PalettePair` · `Measurement` |
45
+ | `{ ad, tur, deger, esik, gecti }` | `{ name, kind, value, threshold, passed }` |
46
+
47
+ ### Added
48
+
49
+ - **`AppShell.rail`** — `narrow` (default) or `wide`. The rail could only ever be narrow before,
50
+ and whoever installed the kit had no way to discover otherwise. On a narrow rail the labels now
51
+ appear in the kit's own `Tooltip` rather than the browser's delayed `title` bubble.
52
+ - **`AppShell.railFooter`** — a control at the foot of the rail, an expand/collapse button say.
53
+ - **`AccountButton`** — the account control at the right end of the top bar. It fits the avatar to
54
+ `--control` (40px), exactly the height of the theme toggle. Two panels had built this by hand.
55
+ - **`Sheet.side`** — `end` (default) for detail, `start` for navigation. The panel slides in from
56
+ the edge it belongs to; with `prefers-reduced-motion` the slide is dropped.
57
+ - **`ThemeToggle variant="select"`** — for when its neighbour is a select box. This variant takes
58
+ STATE words as `labels` (`{ light, dark }`), not action words, and the type enforces it.
59
+ - **`aria-label` on `Select`** — a select standing alone in a toolbar was announced as just
60
+ "button".
61
+ - **`Kpi`** can now be pressed (`href` makes it a link, `onClick`/`pressed` a filter button) and
62
+ takes an icon; **`KpiGrid`** derives its column count from how many children it has.
63
+ - **`paletteVars`** — turns a palette into a map of CSS variables, for applying it to a single box
64
+ or to the root at runtime.
65
+
66
+ ### Fixed
67
+
68
+ - The open section in a `SettingsTemplate` menu was never painted: the template writes
69
+ `data-active` while the CSS only had a rule for `data-selected`.
70
+ - `WizardTemplate` drew its own step strip while the `Steps` component drew the same idea
71
+ differently. The strip now lives in one place.
72
+ - `WizardTemplate`'s footer is sticky: on a long step form "Next" slid off the bottom of the
73
+ screen.
74
+ - `.tamga-link` now carries `cursor: pointer`. An `<a>` without `href`, or a `<span>` styled as a
75
+ link, was leaving the cursor at `auto`.
76
+
77
+ ### Docs
78
+
79
+ - **The nine patterns and fourteen blocks now have prop tables.** The extractor only looked at
80
+ `components/`, so the kit's highest-level API was invisible on the docs site. 103 → 117
81
+ components, 439 → 612 props.
82
+ - The README said the package was not published yet. Installing is one line: `npm install tamga-ui`.
83
+
84
+ ## 0.1.1
85
+
86
+ - The package homepage points at `tamga.org.tr`.
87
+
88
+ ## 0.1.0
89
+
90
+ First release.
package/README.md CHANGED
@@ -1,54 +1,47 @@
1
1
  # tamga-ui
2
2
 
3
- Mantıksal'ın ortak arayüz kütüphanesi: token'lar, fizik ve bileşenler.
3
+ Mantıksal's shared interface library: tokens, physics and components.
4
4
 
5
- Framework değil **kütüphane** — ekranları sen kurarsın, kit parçaları verir. Kit hiçbir ürünün
6
- adını, sözlüğünü ya da kimliğini bilmez.
5
+ > 🇹🇷 **Türkçe:** the documentation is bilingual and lives at
6
+ > **[tamga.org.tr/tr](https://tamga.org.tr/tr)**. This file is in English because it is the first
7
+ > page an installer sees on npm, and npm is read from everywhere.
7
8
 
8
- - **Bileşenler** `tamga-ui`
9
- - **İkonlar** `tamga-ui/icons`
10
- - **Bloklar** `tamga-ui/blocks` — bir bileşenden büyük, bir ekrandan küçük
11
- - **Şablonlar** `tamga-ui/patterns` — ekranların şekli (liste, detay, ayar, oturum, kabuk)
9
+ Not a framework but a **library**: you build the screens, the kit hands you the parts. The kit
10
+ knows no product's name, vocabulary or identity.
12
11
 
13
- Doküman sitesi: depoyu klonlayıp `pnpm install && pnpm --filter tamga-docs dev` (port **6070**).
12
+ - **Components** `tamga-ui`
13
+ - **Icons** `tamga-ui/icons`
14
+ - **Blocks** `tamga-ui/blocks` — larger than a component, smaller than a screen
15
+ - **Patterns** `tamga-ui/patterns` — the shape of a screen (list, detail, settings, auth, shell)
14
16
 
15
- ---
16
-
17
- ## Kurulum
17
+ Docs: **[tamga.org.tr](https://tamga.org.tr)** · Changelog: [CHANGELOG.md](./CHANGELOG.md)
18
18
 
19
- ### Henüz npm'de değil
20
-
21
- Paket yayınlanmadı. Bugün üç yol var, üçü de çalışıyor:
19
+ ---
22
20
 
23
- **1 · Tarball (en temiz).** Kit deposunda:
21
+ ## Install
24
22
 
25
23
  ```bash
26
- pnpm install
27
- pnpm --filter tamga-ui pack # tamga-ui-0.1.0.tgz üretir
24
+ npm install tamga-ui
28
25
  ```
29
26
 
30
- Kendi projende:
27
+ > **If a machine is reading this:** the package page (`npmjs.com/...`) returns **403** to
28
+ > non-browser requests. That is npm's bot protection, nothing to do with this package. For
29
+ > versions and metadata use the registry: `https://registry.npmjs.org/tamga-ui` (200, plain JSON).
31
30
 
32
- ```bash
33
- npm install ../tamga/packages/ui/tamga-ui-0.1.0.tgz
34
- ```
31
+ ### Local development
35
32
 
36
- **2 · Yerel yol.** Aynı makinede duruyorsa:
33
+ To link the kit into a consuming project without publishing, while changing the kit itself:
37
34
 
38
35
  ```bash
39
36
  npm install file:../tamga/packages/ui
40
37
  ```
41
38
 
42
- > **Dikkat:** `file:` bir SEMBOLİK BAĞ kuruyor, ve Tailwind v4 `@source` taramasını sembolik
43
- > bağın ardına götürmüyor. Sonuç sinsi: tipler çözülür, importlar çalışır, ama utility sınıfları
44
- > üretilmediği için bileşenler yarı çıplak çıkar. Geliştirirken hızlı, teslim ederken tarball.
45
-
46
- **3 · Git.** npm bir monorepo'nun alt klasörünü doğrudan kuramıyor, o yüzden depoyu klonlayıp
47
- 1 ya da 2'yi kullan.
48
-
49
- Üçünde de `prepare` betiği `dist/`i kurulum anında üretiyor; ayrıca bir build adımı gerekmiyor.
39
+ > **Careful:** `file:` creates a SYMLINK, and Tailwind v4 does not follow `@source` scanning past
40
+ > a symlink. The result is sneaky: types resolve, imports work, but utility classes are never
41
+ > generated and components come out half-naked. Use this only while developing the kit; a real
42
+ > install is the one line above.
50
43
 
51
- ### Gerekenler
44
+ ### Requirements
52
45
 
53
46
  | | |
54
47
  | --- | --- |
@@ -56,8 +49,8 @@ npm install file:../tamga/packages/ui
56
49
  | Tailwind | **v4** |
57
50
  | Node | 20+ |
58
51
 
59
- Tailwind v4 bir tercih değil şart: bileşenler utility sınıfı kullanıyor ve o sınıfları **senin**
60
- build'in üretiyor.
52
+ Tailwind v4 is not a preference but a requirement: components use utility classes and **your**
53
+ build is what generates them.
61
54
 
62
55
  ### CSS
63
56
 
@@ -68,105 +61,104 @@ build'in üretiyor.
68
61
  @source "../../node_modules/tamga-ui/dist";
69
62
  ```
70
63
 
71
- **`@source` satırını atlama.** Onsuz Tailwind kitin `dist/`i içindeki sınıfları taramaz, üretmez,
72
- ve bileşenler **stilsiz** çıkar. Yol senin CSS dosyandan `node_modules`a göre; derinliğe göre
73
- `../` sayısı değişir.
64
+ **Do not skip the `@source` line.** Without it Tailwind never scans the classes inside the kit's
65
+ `dist/`, never generates them, and components render **unstyled**. The path is relative to your
66
+ own CSS file, so the number of `../` depends on how deep that file sits.
74
67
 
75
- ### Kullanım
68
+ ### Usage
76
69
 
77
70
  ```tsx
78
- import { Button, StatusChip } from "tamga-ui";
71
+ import { Button, Icon } from "tamga-ui";
79
72
  import { Plus } from "tamga-ui/icons";
80
73
 
81
74
  <Button variant="primary">
82
75
  <Icon icon={Plus} size="xs" />
83
- Yeni kayıt
76
+ New record
84
77
  </Button>;
85
78
  ```
86
79
 
87
80
  ---
88
81
 
89
- ## Kurulum anketi
82
+ ## The setup survey
90
83
 
91
- **Bu bölüm kiti kuran kişi ya da ajan içindir.** Kit kurulduğunda proje çalışır ama KİMSESİZDİR:
92
- mavi bir vurgu, baş harften bir karo, adsız bir kullanıcı. Aşağıdaki yedi sorunun cevabı
93
- alınmadan kurulum bitmiş sayılmaz.
84
+ **This section is for the person or agent installing the kit.** Once installed the project runs,
85
+ but it has NO IDENTITY: a blue accent, a tile with an initial on it, a nameless user. Setup is
86
+ not finished until these seven questions have answers.
94
87
 
95
- Her satırın son sütunu önemli: **cevap bir kere sorulup koda gömülmez, bir ayar ekranına da
96
- konur.** Kurulumda sorulan her şey projenin üçüncü ayında da değiştirilebilir olmalı; yoksa
97
- müşteri rengini değiştirmek istediğinde tek yol bir geliştiricinin CSS yazıp yeniden yayın
98
- alması olur.
88
+ The last column is the important one: **an answer is never only compiled in, it also goes into a
89
+ settings screen.** Everything asked at setup has to still be changeable in the project's third
90
+ month; otherwise, when the customer wants a different colour, the only route left is a developer
91
+ editing a file and shipping a release.
99
92
 
100
- | # | Sorulacak | Nereye gider | Ayar ekranında |
93
+ | # | Ask for | Where it goes | In settings |
101
94
  | --- | --- | --- | --- |
102
- | 1 | Ürünün adı | Kabuk, sekme başlığı, oturum ekranı | hayır, ürünün kimliği |
103
- | 2 | **Marka rengi (tek hex)** | `paletUret()` → token'lar (aşağıda) | **evet** |
104
- | 3 | Logo (geniş, yatay) | Oturum ekranı, geniş kenar çubuğu | **evet** |
105
- | 4 | Amblem (kare) | Dar kenar çubuğu, sekme ikonu | **evet** |
106
- | 5 | Varsayılan tema | `açık` · `koyu` · `sistem` | **evet** |
107
- | 6 | Kenar çubuğu davranışı | `hep dar` · `hep geniş` · `kullanıcı seçsin` | **evet** |
108
- | 7 | Arayüz dili / dilleri | Bütün `labels` prop'ları | duruma göre |
109
-
110
- **2, 3 ve 4 birbirinden bağımsız sorulur.** Yüklenen bir logodan amblem OTOMATİK çıkarılamaz:
111
- bir görsel dosyasında "amblem" diye işaretli bir şey yoktur, konumu sabit değildir (solda, üstte,
112
- yazının içinde ya da hiç yok), ve yanlış kesim sessizdir. Yarım bir harf panelin her sayfasının
113
- sol üstünde durur ve kimse bunun otomatik kesildiğini bilmez. Amblemi ya ayrı bir dosya olarak
114
- iste, ya kullanıcıya logo üzerinde kare bir alan seçtir, ya da hiç isteme: amblem yoksa
115
- `LogoTile` baş harften bir karo üretir ve bu çalışan bir cevaptır.
116
-
117
- Sorulacakların ekranı `SettingsTemplate` ile kuruluyor; adım adım anlatımı doküman sitesinde
118
- `/docs/yeni-panel` sayfasında.
95
+ | 1 | The product's name | Shell, tab title, auth screen | no, it is the product's identity |
96
+ | 2 | **Brand colour (one hex)** | `makePalette()` → tokens (below) | **yes** |
97
+ | 3 | Logo (wide, horizontal) | Auth screen, wide sidebar | **yes** |
98
+ | 4 | Mark (square) | Narrow sidebar, tab icon | **yes** |
99
+ | 5 | Default theme | `light` · `dark` · `system` | **yes** |
100
+ | 6 | Sidebar behaviour | `always narrow` · `always wide` · `user chooses` | **yes** |
101
+ | 7 | Interface language(s) | Every `labels` prop | depends |
102
+
103
+ **2, 3 and 4 are asked separately.** A mark CANNOT be extracted from an uploaded logo: nothing in
104
+ an image file is marked as "the mark", its position is not fixed (left, on top, inside the
105
+ wordmark, or absent altogether), and a wrong crop fails silently. Half a letter then sits in the
106
+ top left of every page and nobody knows it was cropped automatically. Either ask for the mark as
107
+ its own file, let the user drag a square over the logo, or do not ask at all: with no mark,
108
+ `LogoTile` draws a tile from the initial, and that is a working answer.
109
+
110
+ The screen for all this is built with `SettingsTemplate`; the walkthrough is at
111
+ [/docs/new-panel](https://tamga.org.tr/en/docs/new-panel).
119
112
 
120
113
  ---
121
114
 
122
- ## Renkleri değiştirmek
115
+ ## Changing the colours
123
116
 
124
- Bir bileşen hiçbir yerde sabit renk taşımıyor; hepsi token okuyor.
117
+ No component anywhere carries a fixed colour; every one of them reads tokens.
125
118
 
126
- ### Tek hex'ten bütün palet
119
+ ### A whole palette from one hex
127
120
 
128
- `tamga-ui/palette` bir marka renginden iki temanın tamamını üretiyor. Elle üç token yazmaktan
129
- daha güvenli, çünkü üreteç kontrastı ARAYARAK buluyor: yüzün açıklığını, üstündeki mürekkebin
130
- AA eşiğini geçene kadar adım adım kaydırıyor. Kırk ton ve iki tema, bir kapının sürekli ölçtüğü
131
- 880 ölçüm.
121
+ `tamga-ui/palette` derives both themes from a single brand colour. Safer than writing three
122
+ tokens by hand, because the generator SEARCHES for contrast: it nudges the face's lightness step
123
+ by step until the ink on top clears the AA threshold. Forty hues across two themes, 880
124
+ measurements that a gate keeps re-running.
132
125
 
133
126
  ```ts
134
- import { paletUret, paletCss } from "tamga-ui/palette";
127
+ import { makePalette, paletteCss } from "tamga-ui/palette";
135
128
 
136
- const cift = paletUret("#e02938"); // { light, dark }
137
- document.documentElement.setAttribute("style", paletCss(cift));
129
+ const pair = makePalette("#e02938"); // { light, dark }
130
+ document.documentElement.setAttribute("style", paletteCss(pair));
138
131
  ```
139
132
 
140
- Renk çalışma zamanında değişebiliyorsa (ayar ekranı) yol budur: token'lar kök elemana yazılıyor
141
- ve kitin 87 sınıfı onları okuduğu için bütün panel tek satırda dönüyor, hiçbir CSS yeniden
142
- derlenmeden.
133
+ This is the route whenever the colour can change at runtime (a settings screen): the tokens are
134
+ written onto the root element and, because the kit's 87 classes read them, the whole panel turns
135
+ in one line with no CSS recompiled.
143
136
 
144
- ### Ya da elle
137
+ ### Or by hand
145
138
 
146
- Rengin sabit olduğu ve derleme zamanında bilindiği projelerde token'ları doğrudan geçersiz
147
- kılabilirsin:
139
+ Where the colour is fixed and known at build time, override the tokens directly:
148
140
 
149
141
  ```css
150
142
  @import "tamga-ui/styles.css";
151
143
 
152
144
  :root {
153
- --color-accent: #2069c9; /* birincil yüz */
154
- --color-accent-shadow: #12245c; /* yüzün altındaki taban */
155
- --color-accent-ink: #fdfcfa; /* yüzün üstündeki mürekkep */
145
+ --color-accent: #2069c9; /* the primary face */
146
+ --color-accent-shadow: #12245c; /* the base under the face */
147
+ --color-accent-ink: #fdfcfa; /* the ink on top of the face */
156
148
  }
157
149
  ```
158
150
 
159
- Bu yolda kontrastı kendin doğrulamak zorundasın: üreteç yok, kapı yok.
151
+ On this route you verify the contrast yourself: no generator, no gate.
160
152
 
161
- Bu yüzden **kendi bileşenlerinde de sabit renk yazma**: `text-ink`, `bg-shell`,
162
- `var(--color-critical)` yaz. Palet değiştiğinde ekranların onunla birlikte döner; sabit yazılmış
163
- her renk elle bulunup düzeltilir.
153
+ Which is also why **you should not hardcode colours in your own components**. Write `text-ink`,
154
+ `bg-shell`, `var(--color-critical)`. When the palette changes your screens turn with it; every
155
+ hardcoded colour has to be hunted down by hand.
164
156
 
165
- Token'ların tamamı doküman sitesinde (`/docs/tokens`), temayı değiştirmenin adımları
166
- `/docs/tema` sayfasında.
157
+ The full token list is on the docs site (`/docs/tokens`), and the steps for changing a theme are
158
+ on `/docs/theme`.
167
159
 
168
160
  ---
169
161
 
170
- ## Lisans
162
+ ## Licence
171
163
 
172
164
  MIT — [LICENSE](./LICENSE)
@@ -12,14 +12,14 @@ import type { ReactNode } from "react";
12
12
  */
13
13
  export declare function CountRow({ count, unit, aside, pageSize, pageSizeOptions, onPageSize, labels, }: {
14
14
  count: number;
15
- /** "sipariş", "müşteri": sayının yanında ne yazacağı. */
15
+ /** "orders", "customers": what stands beside the number. TR: "sipariş", "müşteri": sayının yanında ne yazacağı. */
16
16
  unit: string;
17
- /** Ekrana özel ikinci okuma. */
17
+ /** A second reading, specific to the screen. TR: Ekrana özel ikinci okuma. */
18
18
  aside?: ReactNode;
19
19
  pageSize?: number;
20
20
  pageSizeOptions?: number[];
21
21
  onPageSize?: (n: number) => void;
22
- /** Sayının biçimi çağıranın: binlik ayıracı dile bağlı. */
22
+ /** The number's format belongs to the caller: the thousands separator depends on the language. TR: Sayının biçimi çağıranın: binlik ayıracı dile bağlı. */
23
23
  labels?: {
24
24
  format?: (n: number) => string;
25
25
  perPage?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"count-row.d.ts","sourceRoot":"","sources":["../../src/blocks/count-row.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,eAAe,EACf,UAAU,EACV,MAAM,GACP,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,2DAA2D;IAC3D,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjF,+BA0BA"}
1
+ {"version":3,"file":"count-row.d.ts","sourceRoot":"","sources":["../../src/blocks/count-row.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;;;;;;;GAUG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,eAAe,EACf,UAAU,EACV,MAAM,GACP,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,mHAAmH;IACnH,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,2JAA2J;IAC3J,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACjF,+BA0BA"}
@@ -46,7 +46,7 @@ export type FilterField = {
46
46
  key: string;
47
47
  label: string;
48
48
  kind: FilterFieldKind;
49
- /** Verilmezse `optionSource[key]` kullanılır; ikisi de yoksa liste boş. */
49
+ /** Falls back to `optionSource[key]`; with neither, the list is empty. TR: Verilmezse `optionSource[key]` kullanılır; ikisi de yoksa liste boş. */
50
50
  options?: string[];
51
51
  };
52
52
  export type FilterGroup = {
@@ -56,10 +56,10 @@ export type FilterGroup = {
56
56
  export declare const rangeStart: (key: string) => string;
57
57
  export declare const rangeEnd: (key: string) => string;
58
58
  export type FilterBarLabels = {
59
- /** Arama kutusunun yer tutucusu. */
59
+ /** The search box's placeholder. TR: Arama kutusunun yer tutucusu. */
60
60
  search: string;
61
61
  /**
62
- * "Hepsi" seçeneğinin adı, ve LİSTENİN İÇİNDE bir seçenek olarak duruyor.
62
+ * The name of the "All" option, and it sits INSIDE the list as an option. TR: "Hepsi" seçeneğinin adı, ve LİSTENİN İÇİNDE bir seçenek olarak duruyor.
63
63
  *
64
64
  * Kullanıcı bir değer seçtikten sonra tekrar hepsini görmek istediğinde,
65
65
  * geri dönüş yolunun GİDİŞ YOLUYLA AYNI YERDE olması gerekiyor. Kontrolün
@@ -72,9 +72,9 @@ export type FilterBarLabels = {
72
72
  clear: string;
73
73
  apply: string;
74
74
  noMatch: string;
75
- /** "<alan> seç" gibi; kontrolü açan düğmenin erişilebilir adı. */
75
+ /** Like "Choose <field>"; the accessible name of the button that opens the control. TR: "<alan> seç" gibi; kontrolü açan düğmenin erişilebilir adı. */
76
76
  open: (label: string) => string;
77
- /** "<filtre> filtresini kaldır". */
77
+ /** Like "Remove the <filter> filter". TR: "<filtre> filtresini kaldır". */
78
78
  remove: (label: string) => string;
79
79
  rangeStart: string;
80
80
  rangeEnd: string;
@@ -84,7 +84,7 @@ export type FilterBarLabels = {
84
84
  open: string;
85
85
  clear: string;
86
86
  };
87
- /** Dosyayla arama bölümü; `fileSearchKey` verilmezse hiç çizilmiyor. */
87
+ /** The search-by-file section; with no `fileSearchKey` it is not drawn at all. TR: Dosyayla arama bölümü; `fileSearchKey` verilmezse hiç çizilmiyor. */
88
88
  fileSearch?: {
89
89
  title: string;
90
90
  help: ReactNode;
@@ -96,14 +96,14 @@ export type FilterBarLabels = {
96
96
  export type FilterBarProps = {
97
97
  values: FilterValues;
98
98
  onChange: (next: FilterValues) => void;
99
- /** Üstte duran alanlar. En çok dört tane; gerisi çekmeceye. */
99
+ /** The fields that stay on top. Four at most; the rest go to the drawer. TR: Üstte duran alanlar. En çok dört tane; gerisi çekmeceye. */
100
100
  top: readonly FilterField[];
101
- /** Çekmecedeki gruplar. Düz bir yığın değil, gruplu. */
101
+ /** The groups inside the drawer. Grouped, not a flat pile. TR: Çekmecedeki gruplar. Düz bir yığın değil, gruplu. */
102
102
  drawer: readonly FilterGroup[];
103
- /** Seçim listelerinin kaynağı; sunucudan gelecek. */
103
+ /** Where the option lists come from; this will arrive from the server. TR: Seçim listelerinin kaynağı; sunucudan gelecek. */
104
104
  optionSource?: Record<string, string[]>;
105
105
  /**
106
- * ARAMA KUTUSUNUN YAZDIĞI ANAHTAR.
106
+ * THE KEY THE SEARCH BOX WRITES TO. TR: ARAMA KUTUSUNUN YAZDIĞI ANAHTAR.
107
107
  *
108
108
  * Prop, çünkü sunucunun beklediği ad ürünün kararı: kimi `q` diyor, kimi
109
109
  * `ara`, kimi `search`. Blok bir süre `q`yu sabitledi ve ilk tüketicide
@@ -111,11 +111,11 @@ export type FilterBarProps = {
111
111
  * ve arama hiçbir şey yapmıyordu. Hata vermeyen bir kırılma en pahalısı.
112
112
  */
113
113
  searchKey?: string;
114
- /** Dosyayla arama bu ekranda varsa anahtarı; yoksa bölüm hiç çizilmiyor. */
114
+ /** The key for search-by-file if this screen has it; without it the section is not drawn. TR: Dosyayla arama bu ekranda varsa anahtarı; yoksa bölüm hiç çizilmiyor. */
115
115
  fileSearchKey?: string;
116
- /** Filtre satırına, "Tüm filtreler"in yanına giren ekrana özel düğme. */
116
+ /** A screen-specific button on the filter row, beside "All filters". TR: Filtre satırına, "Tüm filtreler"in yanına giren ekrana özel düğme. */
117
117
  extra?: ReactNode;
118
- /** `DatePicker`ın takvimi için: "tr-TR", "en-GB". */
118
+ /** For `DatePicker`'s calendar: "tr-TR", "en-GB". TR: `DatePicker`ın takvimi için: "tr-TR", "en-GB". */
119
119
  locale?: string;
120
120
  labels: FilterBarLabels;
121
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"filter-bar.d.ts","sourceRoot":"","sources":["../../src/blocks/filter-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,QAAQ;AACV,2EAA2E;GACzE,YAAY;AACd;;;GAGG;GACD,OAAO;AACT,sEAAsE;GACpE,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAInE,eAAO,MAAM,UAAU,QAAS,MAAM,WAAkB,CAAC;AACzD,eAAO,MAAM,QAAQ,QAAS,MAAM,WAAgB,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG;IAC5B,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,oCAAoC;IACpC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,wEAAwE;IACxE,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG,CAAC;AA+FF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,+DAA+D;IAC/D,GAAG,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5B,wDAAwD;IACxD,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EACN,YAAiB,EACjB,SAAe,EACf,aAAa,EACb,KAAK,EACL,MAAgB,EAChB,MAAM,GACP,EAAE,cAAc,+BA8MhB"}
1
+ {"version":3,"file":"filter-bar.d.ts","sourceRoot":"","sources":["../../src/blocks/filter-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAWxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,QAAQ;AACV,2EAA2E;GACzE,YAAY;AACd;;;GAGG;GACD,OAAO;AACT,sEAAsE;GACpE,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,mJAAmJ;IACnJ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC;AAInE,eAAO,MAAM,UAAU,QAAS,MAAM,WAAkB,CAAC;AACzD,eAAO,MAAM,QAAQ,QAAS,MAAM,WAAgB,CAAC;AAErD,MAAM,MAAM,eAAe,GAAG;IAC5B,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,uJAAuJ;IACvJ,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC,2EAA2E;IAC3E,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpF,wJAAwJ;IACxJ,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG,CAAC;AA+FF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,yIAAyI;IACzI,GAAG,EAAE,SAAS,WAAW,EAAE,CAAC;IAC5B,oHAAoH;IACpH,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAC/B,6HAA6H;IAC7H,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uKAAuK;IACvK,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+IAA+I;IAC/I,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,MAAM,EACN,QAAQ,EACR,GAAG,EACH,MAAM,EACN,YAAiB,EACjB,SAAe,EACf,aAAa,EACb,KAAK,EACL,MAAgB,EAChB,MAAM,GACP,EAAE,cAAc,+BA8MhB"}
@@ -15,12 +15,12 @@ import type { ReactNode } from "react";
15
15
  * hiçbir şey olmayan bir düğme, olmayan bir düğmeden kötüdür.
16
16
  */
17
17
  export declare function SaveBar({ changed, busy, onCancel, extra, labels, }: {
18
- /** Değişiklik yoksa kaydet kapalı. */
18
+ /** With no change, save is disabled. TR: Değişiklik yoksa kaydet kapalı. */
19
19
  changed?: boolean;
20
- /** Kaydetme sürüyor: iki düğme de kilitli, kaydet spinner gösteriyor. */
20
+ /** Saving is in progress: both buttons are locked and save shows a spinner. TR: Kaydetme sürüyor: iki düğme de kilitli, kaydet spinner gösteriyor. */
21
21
  busy?: boolean;
22
22
  onCancel?: () => void;
23
- /** Şeridin sağında duran ekrana özel şey: bir sayaç, bir uyarı satırı. */
23
+ /** Whatever the screen puts on the right of the bar: a counter, a warning line. TR: Şeridin sağında duran ekrana özel şey: bir sayaç, bir uyarı satırı. */
24
24
  extra?: ReactNode;
25
25
  labels: {
26
26
  save: string;
@@ -1 +1 @@
1
- {"version":3,"file":"save-bar.d.ts","sourceRoot":"","sources":["../../src/blocks/save-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,EACtB,OAAc,EACd,IAAY,EACZ,QAAQ,EACR,KAAK,EACL,MAAM,GACP,EAAE;IACD,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yEAAyE;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D,+BAkBA"}
1
+ {"version":3,"file":"save-bar.d.ts","sourceRoot":"","sources":["../../src/blocks/save-bar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,EACtB,OAAc,EACd,IAAY,EACZ,QAAQ,EACR,KAAK,EACL,MAAM,GACP,EAAE;IACD,4EAA4E;IAC5E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sJAAsJ;IACtJ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,2JAA2J;IAC3J,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D,+BAkBA"}
@@ -1,3 +1,4 @@
1
+ import { type ComponentType, type ReactNode } from "react";
1
2
  /**
2
3
  * Açık/koyu tema düğmesi.
3
4
  *
@@ -21,15 +22,32 @@
21
22
  * ortada kayan bir anahtar — yani ikisi yan yana aynı satırda oturuyor.
22
23
  */
23
24
  export declare function ThemeToggle({ labels, variant, storageKey, className, }: {
25
+ /**
26
+ * `icon` and `switch` need ACTION words, `select` needs STATE words. TR: `icon` ve `switch`
27
+ * EYLEM sözcüğü ister, `select` DURUM sözcüğü.
28
+ *
29
+ * A button and a switch are pressed to DO something, so they are named by what pressing them
30
+ * does ("switch to dark"). A select shows what is currently CHOSEN, so it is named by the
31
+ * state ("Dark"). Reusing the action words in the select would put "Switch to dark theme" in
32
+ * the box while the theme is already light: the control would be announcing its own opposite.
33
+ * TR: Düğme ve anahtar bir şey YAPMAK için basılıyor, o yüzden basınca ne olacağıyla
34
+ * adlandırılıyorlar ("koyu temaya geç"). Seçim kutusu ise o an SEÇİLİ olanı gösteriyor, yani
35
+ * durumla adlandırılıyor ("Koyu"). Eylem sözcüklerini kutuda kullanmak, tema zaten açıkken
36
+ * kutuda "Koyu temaya geç" yazması demekti: kontrol kendi tersini duyurur.
37
+ */
24
38
  labels: {
25
39
  toLight: string;
26
40
  toDark: string;
41
+ } | {
42
+ light: string;
43
+ dark: string;
27
44
  };
28
45
  /**
29
- * `icon` a square button · `switch` the same shape as a language toggle. TR: `icon` kare
30
- * düğme · `switch` bir dil anahtarıyla aynı şekil.
46
+ * `icon` a square button · `switch` the same shape as a language toggle · `select` a box that
47
+ * says the current theme in words. TR: `icon` kare düğme · `switch` bir dil anahtarıyla aynı
48
+ * şekil · `select` o anki temayı sözcükle yazan bir kutu.
31
49
  */
32
- variant?: "icon" | "switch";
50
+ variant?: "icon" | "switch" | "select";
33
51
  storageKey?: string;
34
52
  className?: string;
35
53
  }): import("react").JSX.Element;
@@ -84,4 +102,37 @@ export declare function LogoTile({ name, src, size, className, }: {
84
102
  size?: "base" | "sm";
85
103
  className?: string;
86
104
  }): import("react").JSX.Element;
105
+ /**
106
+ * Şeridin sağ ucundaki hesap düğmesi.
107
+ *
108
+ * NEDEN BİR BİLEŞEN, VE SAYARAK. İki panelde de aynı şey elle kuruldu:
109
+ * `<button className="tamga-icon-btn"><Avatar bare …/></button>`. `Avatar`ın
110
+ * `bare` prop'u tam bu iş için var ve JSDoc'u bunu anlatıyor, ama bulunmadı;
111
+ * ikinci kurulumda avatar kendi çerçevesiyle kondu ve şeritteki öteki
112
+ * kontrollerden farklı boyda durdu. Bulunmayan bir prop, olmayan proptur.
113
+ *
114
+ * ÖLÇÜ ŞERİDİN ÖLÇÜSÜ. Kare `--control` (40px), yani tema anahtarı ve öteki
115
+ * simge düğmeleriyle birebir aynı. Bir araç çubuğunda yükseklik tek karardır;
116
+ * tek bir kontrolün farklı durması bütün şeridi hizasız gösteriyor.
117
+ *
118
+ * FOTOĞRAF YOKSA BAŞ HARFLER: `Avatar` zaten öyle davranıyor, ve bir hesabın
119
+ * fotoğrafı olmaması normal hâl.
120
+ */
121
+ export declare function AccountButton({ name, src, label, onClick, href, linkComponent: Link, className, }: {
122
+ /** 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. */
123
+ name: string;
124
+ src?: string;
125
+ /** Accessible name: "Account menu", "Profile". The caller translates it. TR: Erişilebilir ad: "Hesap menüsü", "Profil". Çağıran çeviriyor. */
126
+ label: string;
127
+ onClick?: () => void;
128
+ /** Makes the control a link instead of a button; not used together with `onClick`. TR: Verilirse düğme bir bağlantı olur; `onClick` ile birlikte kullanılmaz. */
129
+ href?: string;
130
+ linkComponent?: ComponentType<{
131
+ href: string;
132
+ className?: string;
133
+ children?: ReactNode;
134
+ [k: string]: unknown;
135
+ }>;
136
+ className?: string;
137
+ }): import("react").JSX.Element;
87
138
  //# sourceMappingURL=chrome.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/components/chrome.tsx"],"names":[],"mappings":"AA8BA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,OAAgB,EAChB,UAA0B,EAC1B,SAAS,GACV,EAAE;IACD,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BAmDA;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"}
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,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;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,+BA4EA;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"}