@logosphere-ui/core 0.0.0-alpha.42 → 0.0.0-alpha.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +147 -66
- package/dist/AGENTS.md +147 -66
- package/dist/accordion-CYuCj7nB.cjs +21 -0
- package/dist/accordion-cDabqwu6.js +96 -0
- package/dist/accordion.cjs +1 -0
- package/dist/accordion.js +4 -0
- package/dist/atoms/Checkbox/checkbox.d.ts +11 -2
- package/dist/atoms/FormField/formfield.d.ts +2 -0
- package/dist/{badge-DsDxWEHx.js → badge-BhINg1p5.js} +20 -20
- package/dist/{badge-DvaKpUHe.cjs → badge-CKSG_MyA.cjs} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/breadcrumb-BOuCLUJh.cjs +12 -0
- package/dist/breadcrumb-BeJqq-5C.js +41 -0
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/button-CVkIa7M0.js +58 -0
- package/dist/button-vdNReBMi.cjs +10 -0
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/{calendar-CZ_IN2TF.js → calendar-C71sj3Ki.js} +1 -1
- package/dist/{calendar-CIgyrv3U.cjs → calendar-DZJM5Tyu.cjs} +1 -1
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.js +1 -1
- package/dist/{card-MDwFGplY.js → card-C7xXMV3h.js} +3 -3
- package/dist/card-DmQRNKtk.cjs +43 -0
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/chatbot-BAou4THb.cjs +183 -0
- package/dist/{chatbot-CHgiUY4h.js → chatbot-BRfqXYYt.js} +13 -13
- package/dist/chatbot.cjs +1 -1
- package/dist/chatbot.js +1 -1
- package/dist/checkbox-BAbPDN6x.cjs +53 -0
- package/dist/checkbox-CTfbav6M.js +152 -0
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chip-group-CpcjGoRm.cjs → chip-group-D4DwnC37.cjs} +1 -1
- package/dist/{chip-group-BUL2H8rr.js → chip-group-DzfOd6Vw.js} +1 -1
- package/dist/chip-group.cjs +1 -1
- package/dist/chip-group.js +1 -1
- package/dist/collapse-CbRE8ABx.cjs +47 -0
- package/dist/collapse-DY6SJ9jS.js +141 -0
- package/dist/collapse.cjs +1 -0
- package/dist/collapse.js +4 -0
- package/dist/combobox-BAa3UAQs.cjs +113 -0
- package/dist/{combobox-jak7Ac1m.js → combobox-BR05Tgfd.js} +31 -8
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.js +1 -1
- package/dist/{datepicker-BgysIOZI.js → datepicker-BFYWQRrJ.js} +58 -51
- package/dist/datepicker-BWE4qDJM.cjs +85 -0
- package/dist/datepicker.cjs +1 -1
- package/dist/datepicker.js +1 -1
- package/dist/{drawer-3nyjAkcS.cjs → drawer-CRu4G2zu.cjs} +2 -2
- package/dist/{drawer-CE9zzllI.js → drawer-DhuBPWHP.js} +3 -3
- package/dist/drawer.cjs +1 -1
- package/dist/drawer.js +1 -1
- package/dist/formfield-JXiv9mvJ.cjs +33 -0
- package/dist/{formfield-O327HYt0.js → formfield-ss2mFweu.js} +59 -52
- package/dist/formfield.cjs +1 -1
- package/dist/formfield.js +1 -1
- package/dist/icon.cjs +1 -0
- package/dist/icon.js +4 -0
- package/dist/index.cjs +1 -291
- package/dist/index.d.ts +1 -0
- package/dist/index.js +65 -908
- package/dist/index.umd.js +284 -215
- package/dist/input-DyLKo7h6.cjs +60 -0
- package/dist/input-N3Z8D7q1.js +278 -0
- package/dist/input-group-C6sA1lzj.cjs +5 -0
- package/dist/input-group-DUPlrpug.js +66 -0
- package/dist/input-group.cjs +1 -0
- package/dist/input-group.js +4 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/left-menu.cjs +1 -1
- package/dist/left-menu.js +3 -3
- package/dist/leftmenu-BcUNnvly.cjs +120 -0
- package/dist/leftmenu-Cg57EaSY.js +361 -0
- package/dist/modal-g3KbWncV.cjs +84 -0
- package/dist/{modal-DUIv_yoo.js → modal-vSjEpYrG.js} +4 -4
- package/dist/modal.cjs +1 -1
- package/dist/modal.js +1 -1
- package/dist/molecules/Input/input.d.ts +17 -0
- package/dist/molecules/Popover/popover.d.ts +4 -0
- package/dist/organisms/Combobox/combobox.d.ts +9 -0
- package/dist/organisms/DatePicker/datepicker.d.ts +2 -0
- package/dist/organisms/LeftMenu/index.d.ts +1 -1
- package/dist/organisms/LeftMenu/leftmenu-types.d.ts +24 -0
- package/dist/organisms/LeftMenu/leftmenu.d.ts +24 -9
- package/dist/organisms/TreeMenu/tree-menu.d.ts +20 -2
- package/dist/{pagination-B7jknoOz.js → pagination-CjXvpE2j.js} +61 -61
- package/dist/pagination-Nnzacqdo.cjs +169 -0
- package/dist/pagination.cjs +1 -1
- package/dist/pagination.js +1 -1
- package/dist/popover-CrXUbUR-.cjs +30 -0
- package/dist/popover-M5ZcS5rj.js +161 -0
- package/dist/popover.cjs +1 -1
- package/dist/popover.js +1 -1
- package/dist/shared/icons/index.d.ts +1 -0
- package/dist/slider-DSRs5uhl.cjs +108 -0
- package/dist/slider-ntLRajQa.js +280 -0
- package/dist/slider.cjs +1 -0
- package/dist/slider.js +4 -0
- package/dist/split-button-BdBweoip.js +177 -0
- package/dist/split-button-BpffPlVg.cjs +63 -0
- package/dist/split-button.cjs +1 -0
- package/dist/split-button.js +4 -0
- package/dist/stepper-CZhwgLNp.js +122 -0
- package/dist/stepper-ZOMaU6aZ.cjs +52 -0
- package/dist/stepper.cjs +1 -0
- package/dist/stepper.js +4 -0
- package/dist/{switch-8RGGesy5.cjs → switch-Do6SCkPJ.cjs} +2 -2
- package/dist/{switch-DNqPqH-R.js → switch-uYVuohJ-.js} +25 -21
- package/dist/switch.cjs +1 -1
- package/dist/switch.js +1 -1
- package/dist/tab-BvRVHpWs.cjs +41 -0
- package/dist/{tab-CuBCFGoO.js → tab-Byh4UgFB.js} +1 -1
- package/dist/tab.cjs +1 -1
- package/dist/tab.js +1 -1
- package/dist/{text-area-C73JxnqH.js → text-area-1rALZ0iy.js} +16 -12
- package/dist/text-area-D_TYL4_q.cjs +51 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{timepicker-DMzGYd0p.js → timepicker-B9l6HN-d.js} +6 -2
- package/dist/{timepicker-CLJKWWGm.cjs → timepicker-Bpf2d4Nn.cjs} +1 -1
- package/dist/timepicker.cjs +1 -1
- package/dist/timepicker.js +1 -1
- package/dist/{toast-container-B5v74b_5.js → toast-container-C5qYjInG.js} +4 -4
- package/dist/toast-container-D2dyP20J.cjs +64 -0
- package/dist/toast.cjs +1 -1
- package/dist/toast.js +1 -1
- package/dist/tree-menu-BZ7aBC7R.js +237 -0
- package/dist/tree-menu-DDQ_DYl7.cjs +78 -0
- package/dist/tree-menu.cjs +1 -1
- package/dist/tree-menu.js +1 -1
- package/dist/{ui-icon-BMJNdIOq.js → ui-icon-BeR-PaPg.js} +11 -7
- package/dist/{ui-icon-DIucAQC_.cjs → ui-icon-DWl7I5BQ.cjs} +2 -2
- package/package.json +6 -1
- package/dist/breadcrumb-BB61Xt0s.js +0 -41
- package/dist/breadcrumb-Cop-B1J7.cjs +0 -12
- package/dist/button-DRZ4sG4T.cjs +0 -10
- package/dist/button-Uu9oaieg.js +0 -58
- package/dist/card-BOCW7gad.cjs +0 -43
- package/dist/chatbot-B-NiZIYK.cjs +0 -183
- package/dist/checkbox-CX0LgsWP.js +0 -148
- package/dist/checkbox-DpbKHANK.cjs +0 -53
- package/dist/combobox-BmIFPk8X.cjs +0 -113
- package/dist/datepicker-DOBmbxlo.cjs +0 -85
- package/dist/formfield-CRcyUMvQ.cjs +0 -33
- package/dist/input-CQS0LzF-.cjs +0 -59
- package/dist/input-CeF3YJk-.js +0 -257
- package/dist/leftmenu-CmWvnA6L.js +0 -301
- package/dist/leftmenu-p9aR2QTy.cjs +0 -83
- package/dist/modal-dUnnHe8u.cjs +0 -84
- package/dist/organisms/LeftMenu/leftmenu-item.d.ts +0 -14
- package/dist/pagination-BkqbWBOn.cjs +0 -169
- package/dist/popover-CYDoeLKp.cjs +0 -30
- package/dist/popover-DDaG8MSj.js +0 -143
- package/dist/tab-CDMcFHvP.cjs +0 -41
- package/dist/text-area-Cprb-azV.cjs +0 -51
- package/dist/toast-container-6t6yEP9Y.cjs +0 -64
- package/dist/tree-menu-CkOPxr-W.js +0 -154
- package/dist/tree-menu-WNwZMreD.cjs +0 -47
package/AGENTS.md
CHANGED
|
@@ -36,6 +36,45 @@ import "@logosphere-ui/core/input";
|
|
|
36
36
|
| **Hata/yardım** | `error="..."` ve `helper="..."` prop'ları tüm form bileşenlerinde mevcuttur |
|
|
37
37
|
| **Disabled/Readonly** | Tüm form bileşenlerinde `disabled` ve `readonly` boolean prop'ları bulunur |
|
|
38
38
|
| **Event dinleme** | `element.addEventListener("change", handler)` veya inline `@change=${handler}` (Lit) |
|
|
39
|
+
| **Birleşik event** | Form bileşenleri (Input, Textarea, Checkbox, Switch, Combobox, DatePicker, TimePicker) ek olarak **`lgsChange`** yayınlar → `detail: { value?, checked?, selected? }`. Bileşene özel eski event'ler aynen korunur |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Tema: Bileşen Token Katmanı
|
|
44
|
+
|
|
45
|
+
Global token'ları (`--color-secondary`, `--spacing-4` vb.) `:root`'ta ezmek **tüm** bileşenleri etkiler. Tek bir bileşeni tema'lamak için aşağıdaki bileşen token'larını kullanın — hepsi ilgili global token'a fallback yapar; hiçbirini tanımlamazsanız davranış değişmez.
|
|
46
|
+
|
|
47
|
+
```css
|
|
48
|
+
/* Örnek: sadece pagination'ı tema'la, diğer bileşenlere dokunma */
|
|
49
|
+
logosphere-pagination {
|
|
50
|
+
--pagination-color: #0a58ca;
|
|
51
|
+
--pagination-padding: 8px 12px;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* Örnek: eski tasarımın 36px form alanı */
|
|
55
|
+
logosphere-input { --formfield-min-height: 36px; --input-field-height: 20px; }
|
|
56
|
+
|
|
57
|
+
/* Örnek: focus'ta border rengi değişmesin */
|
|
58
|
+
logosphere-input { --formfield-border-color-focus: var(--color-border); }
|
|
59
|
+
|
|
60
|
+
/* Örnek: alan koyu, takvim popup'ı beyaz kalsın */
|
|
61
|
+
logosphere-datepicker { --color-body-bg: #1e1e1e; --datepicker-popup-bg: #ffffff; }
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
| Bileşen | Token | Fallback |
|
|
65
|
+
|---------|-------|----------|
|
|
66
|
+
| FormField | `--formfield-min-height` / `--formfield-min-height-large` | `32px` / `40px` |
|
|
67
|
+
| FormField | `--formfield-border-color` / `--formfield-border-color-focus` | `--color-border` / `--color-body-text` |
|
|
68
|
+
| FormField | `--formfield-border-radius`, `--formfield-border-{top,right,bottom,left}[-width]` | `--radius-base`, `1px solid` |
|
|
69
|
+
| Input | `--input-field-height` / `--input-field-height-large` | `16px` / `24px` |
|
|
70
|
+
| DatePicker | `--datepicker-popup-bg` / `--datepicker-popup-border-color` | `--color-body-bg` / `--color-border` |
|
|
71
|
+
| Pagination | `--pagination-color` / `--pagination-color-disabled` | `--color-secondary` / `--color-secondary-disabled` |
|
|
72
|
+
| Pagination | `--pagination-bg` / `--pagination-item-bg` / `--pagination-item-bg-hover` | `--color-body-bg` / `--color-body-bg` / `--color-body-bg-hover` |
|
|
73
|
+
| Pagination | `--pagination-active-bg` / `--pagination-active-color` | `--color-secondary` / `white` |
|
|
74
|
+
| Pagination | `--pagination-padding` | `--spacing-4 --spacing-6` (mobil: `--spacing-3 --spacing-4`) |
|
|
75
|
+
| Badge (default varyant) | `--badge-bg` / `--badge-color` | `--color-light-bg-2` / `--color-secondary` |
|
|
76
|
+
| Chatbot | `--chatbot-bg` / `--chatbot-color` | `--color-body-bg` / `--color-secondary` |
|
|
77
|
+
| Combobox | `--combobox-tag-bg` / `--combobox-tag-color` / `--combobox-clear-color` | `--color-light` / `--color-body-text` / `--color-secondary` |
|
|
39
78
|
|
|
40
79
|
---
|
|
41
80
|
|
|
@@ -127,6 +166,8 @@ Onay kutusu, toggle switch veya radio buton.
|
|
|
127
166
|
|
|
128
167
|
**Events:** `lgsChange` → `detail: { checked, indeterminate, value }`
|
|
129
168
|
|
|
169
|
+
> **Kontrollü kullanım:** `checked` property'sine yapılan her dış atama — değer öncekiyle aynı olsa bile — görsel state'i prop'a senkronlar. Parent bir seçimi reddederse (`lgsChange` sonrası `checked`'ı değişmeyen değerle yeniden atarsa) bileşen görsel olarak geri döner; iki radio'nun birden seçili kalması engellenir.
|
|
170
|
+
|
|
130
171
|
```html
|
|
131
172
|
<logosphere-checkbox label="Beni hatırla" value="remember"></logosphere-checkbox>
|
|
132
173
|
|
|
@@ -159,7 +200,7 @@ Bağımsız toggle switch.
|
|
|
159
200
|
| `disabled` | `boolean` | `false` | Devre dışı |
|
|
160
201
|
| `size` | `"sm" \| "md"` | `"md"` | Boyut |
|
|
161
202
|
|
|
162
|
-
**Events:** `change` → `detail: { checked }`
|
|
203
|
+
**Events:** `change` → `detail: { checked }`, `lgsChange` → `detail: { checked }`
|
|
163
204
|
|
|
164
205
|
```html
|
|
165
206
|
<logosphere-switch></logosphere-switch>
|
|
@@ -213,6 +254,9 @@ Metin girişi; maske, parola, temizle ve tüm formfield özellikleri.
|
|
|
213
254
|
| `placeholder` | `string` | `""` | Yer tutucu |
|
|
214
255
|
| `name` | `string` | `""` | Form adı |
|
|
215
256
|
| `mask` | `string` | `""` | Giriş maskesi: `0`=rakam, `a`=harf, `*`=rakam/harf, diğerleri literal. Örn: `"(000) 000-0000"`, `"00/00/0000"`, `"00:00"` |
|
|
257
|
+
| `showPasswordToggle` | `boolean` | `true` | `type="password"` iken göster/gizle butonunu render et (attribute: `show-password-toggle`). Şifrenin hiç gösterilmemesi gereken ekranlarda `false` verin |
|
|
258
|
+
| `suppressNativeValidation` | `boolean` | `false` | Tarayıcının yerel (dil bağımlı) `validationMessage`'ının iç hata olarak gösterilmesini kapatır (attribute: `suppress-native-validation`). Uygulama kendi hata metnini yönetiyorsa açın |
|
|
259
|
+
| `errorDisplay` | `"always" \| "on-invalid"` | `"always"` | Hata gösterim modu (attribute: `error-display`). `"on-invalid"`: hata yalnızca alan geçersizken görünür — blur/change'de doğrulanır, yazarken temizlenir (vaadin semantiği) |
|
|
216
260
|
| `label` | `string` | `""` | Etiket |
|
|
217
261
|
| `helper` | `string` | `""` | Yardım metni |
|
|
218
262
|
| `error` | `string` | `""` | Hata mesajı |
|
|
@@ -300,7 +344,7 @@ Metin girişi; maske, parola, temizle ve tüm formfield özellikleri.
|
|
|
300
344
|
| `size` | `"default" \| "large"` | `"default"` | Boyut |
|
|
301
345
|
| `variant` | `"default" \| "subtle"` | `"default"` | Stil |
|
|
302
346
|
|
|
303
|
-
**Events:** `input`, `change`, `clear`, `keydown`, `keyup`
|
|
347
|
+
**Events:** `input`, `change`, `clear`, `keydown`, `keyup`, `lgsChange` → `detail: { value }`
|
|
304
348
|
|
|
305
349
|
```html
|
|
306
350
|
<!-- Temel kullanım -->
|
|
@@ -348,7 +392,7 @@ Başlık, içerik ve ayak bölümü olan kart.
|
|
|
348
392
|
|
|
349
393
|
| Property | Tip | Varsayılan | Açıklama |
|
|
350
394
|
|----------|-----|-----------|---------|
|
|
351
|
-
| `title` | `string` | `""` | Kart başlığı
|
|
395
|
+
| `title` | `string` | `""` | Kart başlığı |
|
|
352
396
|
| `description` | `string` | `""` | Başlık altı açıklama |
|
|
353
397
|
| `header` | `boolean` | `true` | Başlık bölümünü göster |
|
|
354
398
|
| `footer` | `boolean` | `true` | Ayak bölümünü göster |
|
|
@@ -363,13 +407,13 @@ Başlık, içerik ve ayak bölümü olan kart.
|
|
|
363
407
|
|
|
364
408
|
```html
|
|
365
409
|
<!-- Temel kart -->
|
|
366
|
-
<logosphere-card
|
|
410
|
+
<logosphere-card title="Kullanıcı Bilgileri" description="Profil bilgilerinizi güncelleyin">
|
|
367
411
|
<logosphere-input label="Ad" placeholder="Adınızı girin"></logosphere-input>
|
|
368
412
|
<logosphere-input label="E-posta" type="email"></logosphere-input>
|
|
369
413
|
</logosphere-card>
|
|
370
414
|
|
|
371
415
|
<!-- Onay diyaloğu gibi -->
|
|
372
|
-
<logosphere-card
|
|
416
|
+
<logosphere-card title="Emin misiniz?" okLabel="Evet, Sil" cancelLabel="Hayır">
|
|
373
417
|
Bu işlem geri alınamaz.
|
|
374
418
|
</logosphere-card>
|
|
375
419
|
|
|
@@ -389,7 +433,7 @@ Tetikleyici elemana konumlanmış açılır panel.
|
|
|
389
433
|
|
|
390
434
|
| Property | Tip | Varsayılan | Açıklama |
|
|
391
435
|
|----------|-----|-----------|---------|
|
|
392
|
-
| `title` | `string` | `""` | Popover başlığı
|
|
436
|
+
| `title` | `string` | `""` | Popover başlığı |
|
|
393
437
|
| `trigger` | `"click" \| "hover"` | `"click"` | Açılma tetikleyicisi |
|
|
394
438
|
| `placement` | Popper Placement | `"bottom"` | Konum (`"top"`, `"bottom"`, `"left"`, `"right"`, `"bottom-start"` vb.) |
|
|
395
439
|
| `offset` | `number` | `8` | Tetikleyiciden mesafe (px) |
|
|
@@ -401,7 +445,7 @@ Tetikleyici elemana konumlanmış açılır panel.
|
|
|
401
445
|
**Slots:** `trigger` (tetikleyici element), varsayılan (panel içeriği)
|
|
402
446
|
|
|
403
447
|
```html
|
|
404
|
-
<logosphere-popover
|
|
448
|
+
<logosphere-popover title="Yardım">
|
|
405
449
|
<logosphere-button slot="trigger" variant="outline">?</logosphere-button>
|
|
406
450
|
Bu alan, kullanıcının tam adını içermelidir.
|
|
407
451
|
</logosphere-popover>
|
|
@@ -429,7 +473,7 @@ Tetikleyici elemana konumlanmış açılır panel.
|
|
|
429
473
|
| `variant` | `"default" \| "subtle"` | `"default"` | Stil |
|
|
430
474
|
| `onChange` | `(value: string) => void` | — | Değişim callback'i (attribute değil) |
|
|
431
475
|
|
|
432
|
-
**Events:** `change` → `detail: { value }`, `clear`
|
|
476
|
+
**Events:** `change` → `detail: { value }`, `clear`, `lgsChange` → `detail: { value }`
|
|
433
477
|
|
|
434
478
|
```html
|
|
435
479
|
<!-- Temel kullanım -->
|
|
@@ -484,7 +528,7 @@ Seçim kutusu: tekli/çoklu seçim, filtreleme, tag desteği.
|
|
|
484
528
|
|
|
485
529
|
**Public Metotlar:** `selectedItems()` → seçili öğe dizisi, `isSelected(item)`, `setSelected(items[])`
|
|
486
530
|
|
|
487
|
-
**Events:** `selected` → `detail: { selected }`, `change` → `detail: { value }`
|
|
531
|
+
**Events:** `selected` → `detail: { selected }`, `change` → `detail: { value }`, `lgsChange` → `detail: { value, selected }` (value = primitive `optionValue` değer(ler)i)
|
|
488
532
|
|
|
489
533
|
```html
|
|
490
534
|
<logosphere-combobox
|
|
@@ -541,7 +585,7 @@ Tarih seçici; manuel yazma ve takvim popup'ı. `dayjs` tabanlı.
|
|
|
541
585
|
| `onChange` | `(value: string) => void` | — | Değişim callback'i |
|
|
542
586
|
| `onRangeChange` | `(range) => void` | — | Aralık callback'i |
|
|
543
587
|
|
|
544
|
-
**Events:** `change` → `detail: { value }`, `rangeChange` → `detail: { start, end }`
|
|
588
|
+
**Events:** `change` → `detail: { value }`, `rangeChange` → `detail: { start, end }`, `lgsChange` → `detail: { value }`
|
|
545
589
|
|
|
546
590
|
```html
|
|
547
591
|
<!-- Temel kullanım -->
|
|
@@ -605,7 +649,7 @@ Tam ekran arka planlı modal diyalog.
|
|
|
605
649
|
| Property | Tip | Varsayılan | Açıklama |
|
|
606
650
|
|----------|-----|-----------|---------|
|
|
607
651
|
| `open` | `boolean` | `false` | Açık mı (reflect) |
|
|
608
|
-
| `title` | `string` | `""` | Modal başlığı
|
|
652
|
+
| `title` | `string` | `""` | Modal başlığı |
|
|
609
653
|
| `closeOnEsc` | `boolean` | `true` | Esc ile kapat |
|
|
610
654
|
| `closeOnBackdrop` | `boolean` | `true` | Arka plana tıklayınca kapat |
|
|
611
655
|
| `showBack` | `boolean` | `false` | Geri butonu göster |
|
|
@@ -618,7 +662,7 @@ Tam ekran arka planlı modal diyalog.
|
|
|
618
662
|
**Slots:** `header`, varsayılan (gövde), `footer`
|
|
619
663
|
|
|
620
664
|
```html
|
|
621
|
-
<logosphere-modal id="my-modal"
|
|
665
|
+
<logosphere-modal id="my-modal" title="Düzenle" showClose>
|
|
622
666
|
<logosphere-input label="Ad"></logosphere-input>
|
|
623
667
|
<div slot="footer">
|
|
624
668
|
<logosphere-button variant="outline" id="cancel-btn">İptal</logosphere-button>
|
|
@@ -642,7 +686,7 @@ Yan panel; sağdan veya soldan açılır.
|
|
|
642
686
|
| Property | Tip | Varsayılan | Açıklama |
|
|
643
687
|
|----------|-----|-----------|---------|
|
|
644
688
|
| `open` | `boolean` | `false` | Açık mı (reflect) |
|
|
645
|
-
| `title` | `string` | `""` | Panel başlığı
|
|
689
|
+
| `title` | `string` | `""` | Panel başlığı |
|
|
646
690
|
| `position` | `"left" \| "right"` | `"right"` | Hangi taraftan açılsın |
|
|
647
691
|
| `width` | `number` | `360` | Genişlik (px) |
|
|
648
692
|
| `closeOnEsc` | `boolean` | `true` | Esc ile kapat |
|
|
@@ -655,7 +699,7 @@ Yan panel; sağdan veya soldan açılır.
|
|
|
655
699
|
**Slots:** `trigger` (açma butonu), varsayılan (panel gövdesi)
|
|
656
700
|
|
|
657
701
|
```html
|
|
658
|
-
<logosphere-drawer
|
|
702
|
+
<logosphere-drawer title="Filtreler" position="right" width="400">
|
|
659
703
|
<logosphere-button slot="trigger" variant="outline">
|
|
660
704
|
Filtreleri Aç
|
|
661
705
|
</logosphere-button>
|
|
@@ -677,7 +721,7 @@ Bildirim mesajı. Genellikle doğrudan kullanmak yerine `ToastService` kullanıl
|
|
|
677
721
|
| Property | Tip | Varsayılan | Açıklama |
|
|
678
722
|
|----------|-----|-----------|---------|
|
|
679
723
|
| `type` | `"info" \| "success" \| "warning" \| "danger"` | `"info"` | Ikon/renk tipi |
|
|
680
|
-
| `title` | `string` | `""` | Başlık
|
|
724
|
+
| `title` | `string` | `""` | Başlık |
|
|
681
725
|
| `text` | `string` | `""` | Açıklama metni |
|
|
682
726
|
| `icon` | `string` | `""` | Özel ikon adı |
|
|
683
727
|
| `closeable` | `boolean` | `true` | Manuel kapatma butonu |
|
|
@@ -763,51 +807,91 @@ interface TabItem {
|
|
|
763
807
|
|
|
764
808
|
---
|
|
765
809
|
|
|
766
|
-
### `<logosphere-leftmenu>`
|
|
810
|
+
### `<logosphere-leftmenu>`
|
|
767
811
|
|
|
768
|
-
Daraltılabilir kenar çubuğu; menü ağacı, arama, logo slotları.
|
|
812
|
+
Daraltılabilir kenar çubuğu; data-driven menü ağacı, arama, logo slotları.
|
|
769
813
|
|
|
770
|
-
|
|
814
|
+
**Properties**
|
|
771
815
|
|
|
772
816
|
| Property | Tip | Varsayılan | Açıklama |
|
|
773
817
|
|----------|-----|-----------|---------|
|
|
774
818
|
| `open` | `boolean` | `false` | Genişletilmiş mi (reflect) |
|
|
775
|
-
| `pinned` | `boolean` | `false` | Sabitlenmiş mi (reflect) |
|
|
776
|
-
| `closedWidth` | `number` | `64` | Kapalı genişlik (px) |
|
|
777
819
|
| `openWidth` | `number` | `248` | Açık genişlik (px) |
|
|
778
820
|
| `storageKey` | `string` | `"logosphere-leftmenu-state"` | localStorage anahtarı |
|
|
821
|
+
| `items` | `LeftMenuEntry[]` | `[]` | Menü verisi (attribute değil, `.items=${...}`) |
|
|
822
|
+
| `leading` | `boolean` | `true` | Derinlik göstergeleri (bullet / 2px çizgi); menü açıkken geçerli |
|
|
823
|
+
| `defaultExpandedIds` | `string[]` | `[]` | İlk render'da açık node id'leri |
|
|
824
|
+
|
|
825
|
+
**Events:** `item-click` → `detail: { item }`, `width-change` → `detail: { width }`
|
|
826
|
+
|
|
827
|
+
**Slots:** `logo-open`, `toggle-closed`, `custom-open`, `custom-closed`, `icon-<itemId>` (özel ikon — `iconName` yoksa)
|
|
779
828
|
|
|
780
|
-
**
|
|
829
|
+
**Veri modeli:**
|
|
830
|
+
|
|
831
|
+
```ts
|
|
832
|
+
interface MenuBadge {
|
|
833
|
+
text: string;
|
|
834
|
+
variant?: "default" | "primary" | "success" | "warning" | "danger" | "info" | "purple";
|
|
835
|
+
size?: "default" | "small";
|
|
836
|
+
isRound?: boolean;
|
|
837
|
+
}
|
|
781
838
|
|
|
782
|
-
|
|
839
|
+
interface LeftMenuItem {
|
|
840
|
+
id: string;
|
|
841
|
+
label: string;
|
|
842
|
+
iconName?: string; // dahili ui-icon; yoksa slot="icon-${id}" kullanılır
|
|
843
|
+
badges?: MenuBadge[];
|
|
844
|
+
active?: boolean;
|
|
845
|
+
disabled?: boolean;
|
|
846
|
+
children?: LeftMenuItem[];
|
|
847
|
+
data?: unknown;
|
|
848
|
+
}
|
|
783
849
|
|
|
784
|
-
|
|
850
|
+
interface LeftMenuGroup {
|
|
851
|
+
id: string;
|
|
852
|
+
label?: string;
|
|
853
|
+
items: LeftMenuItem[];
|
|
854
|
+
}
|
|
785
855
|
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
| `itemId` | `string` | `""` |
|
|
789
|
-
| `label` | `string` | `""` |
|
|
790
|
-
| `disabled` | `boolean` | `false` |
|
|
791
|
-
| `active` | `boolean` | `false` |
|
|
856
|
+
type LeftMenuEntry = LeftMenuItem | LeftMenuGroup;
|
|
857
|
+
```
|
|
792
858
|
|
|
793
|
-
**
|
|
859
|
+
> **Gruplama:** `.items` dizisine doğrudan `LeftMenuItem` veya `LeftMenuGroup` koy. Grup objesinde `items` alanı vardır; düz item'da `children` alt menü içindir. Ardışık düz item'lar otomatik tek başlıksız grupta toplanır. Gruplar arasında ince border ayraç vardır.
|
|
794
860
|
|
|
795
861
|
```html
|
|
796
|
-
<logosphere-leftmenu open
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
862
|
+
<logosphere-leftmenu open .items=${[
|
|
863
|
+
{
|
|
864
|
+
id: "genel", label: "Genel",
|
|
865
|
+
items: [
|
|
866
|
+
{ id: "home", label: "Ana Sayfa", iconName: "uil-home", active: true },
|
|
867
|
+
{ id: "search", label: "Arama", iconName: "uil-search" }
|
|
868
|
+
]
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
id: "yonetim", label: "Yönetim",
|
|
872
|
+
items: [
|
|
873
|
+
{
|
|
874
|
+
id: "reports", label: "Raporlar",
|
|
875
|
+
badges: [
|
|
876
|
+
{ text: "New", variant: "success", size: "small" },
|
|
877
|
+
{ text: "12", variant: "primary", size: "small", isRound: true }
|
|
878
|
+
]
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
id: "users", label: "Kullanıcılar",
|
|
882
|
+
children: [
|
|
883
|
+
{ id: "users-list", label: "Liste" },
|
|
884
|
+
{ id: "users-create", label: "Yeni Ekle" }
|
|
885
|
+
]
|
|
886
|
+
}
|
|
887
|
+
]
|
|
888
|
+
}
|
|
889
|
+
]}>
|
|
890
|
+
<img slot="logo-open" src="/logo-full.svg" alt="Logo" />
|
|
891
|
+
<img slot="toggle-closed" src="/logo-icon.svg" alt="L" />
|
|
892
|
+
|
|
893
|
+
<!-- iconName yoksa: React/Angular kendi ikon bileşenini basar -->
|
|
894
|
+
<svg slot="icon-reports" width="16" height="16">...</svg>
|
|
811
895
|
</logosphere-leftmenu>
|
|
812
896
|
```
|
|
813
897
|
|
|
@@ -826,18 +910,21 @@ Daraltılabilir kenar çubuğu; menü ağacı, arama, logo slotları.
|
|
|
826
910
|
| `expandOnLabelClick` | `boolean` | `true` | Etikete tıklayınca aç/kapa |
|
|
827
911
|
| `chevronPosition` | `"left" \| "right"` | `"left"` | Ok konumu |
|
|
828
912
|
| `showLabels` | `boolean` | `true` | Etiketleri göster |
|
|
913
|
+
| `leading` | `boolean` | `true` | Derinlik göstergeleri (seviye 2: bullet, seviye 3: 2px çizgi; seviye 1 ikon kalır) |
|
|
829
914
|
| `iconSize` | `number` | `16` | İkon boyutu |
|
|
830
915
|
|
|
831
916
|
**`TreeMenuItem` yapısı:**
|
|
832
917
|
|
|
833
918
|
```ts
|
|
834
919
|
interface TreeMenuItem {
|
|
835
|
-
id:
|
|
836
|
-
label:
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
920
|
+
id: string;
|
|
921
|
+
label: string;
|
|
922
|
+
iconName?: string; // dahili ui-icon; yoksa slot="icon-${id}"
|
|
923
|
+
badges?: MenuBadge[];
|
|
924
|
+
children?: TreeMenuItem[];
|
|
925
|
+
disabled?: boolean;
|
|
926
|
+
active?: boolean;
|
|
927
|
+
data?: unknown;
|
|
841
928
|
}
|
|
842
929
|
```
|
|
843
930
|
|
|
@@ -917,7 +1004,7 @@ SVG ikon bileşeni. `icon-map.ts`'deki kayıtlı ikonları isimle render eder.
|
|
|
917
1004
|
|
|
918
1005
|
```html
|
|
919
1006
|
<div style="min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--color-body-bg)">
|
|
920
|
-
<logosphere-card
|
|
1007
|
+
<logosphere-card title="Giriş Yap" description="Hesabınıza erişin" style="width:400px">
|
|
921
1008
|
<div style="display:flex; flex-direction:column; gap:16px">
|
|
922
1009
|
<logosphere-input
|
|
923
1010
|
type="email"
|
|
@@ -951,7 +1038,7 @@ SVG ikon bileşeni. `icon-map.ts`'deki kayıtlı ikonları isimle render eder.
|
|
|
951
1038
|
<ui-icon slot="prefix" name="uil-search" size="16"></ui-icon>
|
|
952
1039
|
</logosphere-input>
|
|
953
1040
|
|
|
954
|
-
<logosphere-drawer
|
|
1041
|
+
<logosphere-drawer title="Filtreler" position="right">
|
|
955
1042
|
<logosphere-button slot="trigger" variant="outline">Filtre</logosphere-button>
|
|
956
1043
|
|
|
957
1044
|
<div style="display:flex; flex-direction:column; gap:12px; padding:16px">
|
|
@@ -1007,19 +1094,13 @@ SVG ikon bileşeni. `icon-map.ts`'deki kayıtlı ikonları isimle render eder.
|
|
|
1007
1094
|
```html
|
|
1008
1095
|
<div style="display:flex; height:100vh; overflow:hidden">
|
|
1009
1096
|
<!-- Kenar çubuğu -->
|
|
1010
|
-
<logosphere-leftmenu open
|
|
1097
|
+
<logosphere-leftmenu open style="flex-shrink:0" .items=${[
|
|
1098
|
+
{ id: "dashboard", label: "Panel", iconName: "uil-info-circle", active: true },
|
|
1099
|
+
{ id: "users", label: "Kullanıcılar", iconName: "uil-check-circle" },
|
|
1100
|
+
{ id: "reports", label: "Raporlar", iconName: "uil-calendar" }
|
|
1101
|
+
]}>
|
|
1011
1102
|
<img slot="logo-open" src="/logo.svg" alt="Logo" style="height:32px"/>
|
|
1012
|
-
<img slot="
|
|
1013
|
-
|
|
1014
|
-
<leftmenu-item itemId="dashboard" label="Panel" active>
|
|
1015
|
-
<ui-icon slot="icon" name="uil-info-circle" size="20"></ui-icon>
|
|
1016
|
-
</leftmenu-item>
|
|
1017
|
-
<leftmenu-item itemId="users" label="Kullanıcılar">
|
|
1018
|
-
<ui-icon slot="icon" name="uil-check-circle" size="20"></ui-icon>
|
|
1019
|
-
</leftmenu-item>
|
|
1020
|
-
<leftmenu-item itemId="reports" label="Raporlar">
|
|
1021
|
-
<ui-icon slot="icon" name="uil-calendar" size="20"></ui-icon>
|
|
1022
|
-
</leftmenu-item>
|
|
1103
|
+
<img slot="toggle-closed" src="/icon.svg" alt="L" style="height:32px"/>
|
|
1023
1104
|
</logosphere-leftmenu>
|
|
1024
1105
|
|
|
1025
1106
|
<!-- Ana içerik -->
|
|
@@ -1041,7 +1122,7 @@ SVG ikon bileşeni. `icon-map.ts`'deki kayıtlı ikonları isimle render eder.
|
|
|
1041
1122
|
### Silme Onay Modalı
|
|
1042
1123
|
|
|
1043
1124
|
```html
|
|
1044
|
-
<logosphere-modal id="delete-modal"
|
|
1125
|
+
<logosphere-modal id="delete-modal" title="Kaydı Sil" showClose closeOnEsc>
|
|
1045
1126
|
<p>Bu kaydı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.</p>
|
|
1046
1127
|
|
|
1047
1128
|
<div slot="footer" style="display:flex; gap:8px; justify-content:flex-end">
|