@logosphere-ui/core 0.0.0-alpha.43 → 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.
Files changed (163) hide show
  1. package/AGENTS.md +147 -66
  2. package/dist/AGENTS.md +147 -66
  3. package/dist/accordion-CYuCj7nB.cjs +21 -0
  4. package/dist/accordion-cDabqwu6.js +96 -0
  5. package/dist/accordion.cjs +1 -0
  6. package/dist/accordion.js +4 -0
  7. package/dist/atoms/Checkbox/checkbox.d.ts +11 -2
  8. package/dist/atoms/FormField/formfield.d.ts +2 -0
  9. package/dist/{badge-DsDxWEHx.js → badge-BhINg1p5.js} +20 -20
  10. package/dist/{badge-DvaKpUHe.cjs → badge-CKSG_MyA.cjs} +1 -1
  11. package/dist/badge.cjs +1 -1
  12. package/dist/badge.js +1 -1
  13. package/dist/breadcrumb-BOuCLUJh.cjs +12 -0
  14. package/dist/breadcrumb-BeJqq-5C.js +41 -0
  15. package/dist/breadcrumb.cjs +1 -1
  16. package/dist/breadcrumb.js +1 -1
  17. package/dist/button-CVkIa7M0.js +58 -0
  18. package/dist/button-vdNReBMi.cjs +10 -0
  19. package/dist/button.cjs +1 -1
  20. package/dist/button.js +1 -1
  21. package/dist/{calendar-CZ_IN2TF.js → calendar-C71sj3Ki.js} +1 -1
  22. package/dist/{calendar-CIgyrv3U.cjs → calendar-DZJM5Tyu.cjs} +1 -1
  23. package/dist/calendar.cjs +1 -1
  24. package/dist/calendar.js +1 -1
  25. package/dist/{card-MDwFGplY.js → card-C7xXMV3h.js} +3 -3
  26. package/dist/card-DmQRNKtk.cjs +43 -0
  27. package/dist/card.cjs +1 -1
  28. package/dist/card.js +1 -1
  29. package/dist/chatbot-BAou4THb.cjs +183 -0
  30. package/dist/{chatbot-CHgiUY4h.js → chatbot-BRfqXYYt.js} +13 -13
  31. package/dist/chatbot.cjs +1 -1
  32. package/dist/chatbot.js +1 -1
  33. package/dist/checkbox-BAbPDN6x.cjs +53 -0
  34. package/dist/checkbox-CTfbav6M.js +152 -0
  35. package/dist/checkbox.cjs +1 -1
  36. package/dist/checkbox.js +1 -1
  37. package/dist/{chip-group-CpcjGoRm.cjs → chip-group-D4DwnC37.cjs} +1 -1
  38. package/dist/{chip-group-BUL2H8rr.js → chip-group-DzfOd6Vw.js} +1 -1
  39. package/dist/chip-group.cjs +1 -1
  40. package/dist/chip-group.js +1 -1
  41. package/dist/collapse-CbRE8ABx.cjs +47 -0
  42. package/dist/collapse-DY6SJ9jS.js +141 -0
  43. package/dist/collapse.cjs +1 -0
  44. package/dist/collapse.js +4 -0
  45. package/dist/combobox-BAa3UAQs.cjs +113 -0
  46. package/dist/{combobox-jak7Ac1m.js → combobox-BR05Tgfd.js} +31 -8
  47. package/dist/combobox.cjs +1 -1
  48. package/dist/combobox.js +1 -1
  49. package/dist/{datepicker-BgysIOZI.js → datepicker-BFYWQRrJ.js} +58 -51
  50. package/dist/datepicker-BWE4qDJM.cjs +85 -0
  51. package/dist/datepicker.cjs +1 -1
  52. package/dist/datepicker.js +1 -1
  53. package/dist/{drawer-3nyjAkcS.cjs → drawer-CRu4G2zu.cjs} +2 -2
  54. package/dist/{drawer-CE9zzllI.js → drawer-DhuBPWHP.js} +3 -3
  55. package/dist/drawer.cjs +1 -1
  56. package/dist/drawer.js +1 -1
  57. package/dist/formfield-JXiv9mvJ.cjs +33 -0
  58. package/dist/{formfield-O327HYt0.js → formfield-ss2mFweu.js} +59 -52
  59. package/dist/formfield.cjs +1 -1
  60. package/dist/formfield.js +1 -1
  61. package/dist/icon.cjs +1 -0
  62. package/dist/icon.js +4 -0
  63. package/dist/index.cjs +1 -291
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.js +65 -908
  66. package/dist/index.umd.js +284 -215
  67. package/dist/input-DyLKo7h6.cjs +60 -0
  68. package/dist/input-N3Z8D7q1.js +278 -0
  69. package/dist/input-group-C6sA1lzj.cjs +5 -0
  70. package/dist/input-group-DUPlrpug.js +66 -0
  71. package/dist/input-group.cjs +1 -0
  72. package/dist/input-group.js +4 -0
  73. package/dist/input.cjs +1 -1
  74. package/dist/input.js +1 -1
  75. package/dist/left-menu.cjs +1 -1
  76. package/dist/left-menu.js +3 -3
  77. package/dist/leftmenu-BcUNnvly.cjs +120 -0
  78. package/dist/leftmenu-Cg57EaSY.js +361 -0
  79. package/dist/modal-g3KbWncV.cjs +84 -0
  80. package/dist/{modal-DUIv_yoo.js → modal-vSjEpYrG.js} +4 -4
  81. package/dist/modal.cjs +1 -1
  82. package/dist/modal.js +1 -1
  83. package/dist/molecules/Input/input.d.ts +17 -0
  84. package/dist/molecules/Popover/popover.d.ts +4 -0
  85. package/dist/organisms/Combobox/combobox.d.ts +9 -0
  86. package/dist/organisms/DatePicker/datepicker.d.ts +2 -0
  87. package/dist/organisms/LeftMenu/index.d.ts +1 -1
  88. package/dist/organisms/LeftMenu/leftmenu-types.d.ts +24 -0
  89. package/dist/organisms/LeftMenu/leftmenu.d.ts +24 -9
  90. package/dist/organisms/TreeMenu/tree-menu.d.ts +20 -2
  91. package/dist/{pagination-B7jknoOz.js → pagination-CjXvpE2j.js} +61 -61
  92. package/dist/pagination-Nnzacqdo.cjs +169 -0
  93. package/dist/pagination.cjs +1 -1
  94. package/dist/pagination.js +1 -1
  95. package/dist/popover-CrXUbUR-.cjs +30 -0
  96. package/dist/popover-M5ZcS5rj.js +161 -0
  97. package/dist/popover.cjs +1 -1
  98. package/dist/popover.js +1 -1
  99. package/dist/shared/icons/index.d.ts +1 -0
  100. package/dist/slider-DSRs5uhl.cjs +108 -0
  101. package/dist/slider-ntLRajQa.js +280 -0
  102. package/dist/slider.cjs +1 -0
  103. package/dist/slider.js +4 -0
  104. package/dist/split-button-BdBweoip.js +177 -0
  105. package/dist/split-button-BpffPlVg.cjs +63 -0
  106. package/dist/split-button.cjs +1 -0
  107. package/dist/split-button.js +4 -0
  108. package/dist/stepper-CZhwgLNp.js +122 -0
  109. package/dist/stepper-ZOMaU6aZ.cjs +52 -0
  110. package/dist/stepper.cjs +1 -0
  111. package/dist/stepper.js +4 -0
  112. package/dist/{switch-8RGGesy5.cjs → switch-Do6SCkPJ.cjs} +2 -2
  113. package/dist/{switch-DNqPqH-R.js → switch-uYVuohJ-.js} +25 -21
  114. package/dist/switch.cjs +1 -1
  115. package/dist/switch.js +1 -1
  116. package/dist/tab-BvRVHpWs.cjs +41 -0
  117. package/dist/{tab-CuBCFGoO.js → tab-Byh4UgFB.js} +1 -1
  118. package/dist/tab.cjs +1 -1
  119. package/dist/tab.js +1 -1
  120. package/dist/{text-area-C73JxnqH.js → text-area-1rALZ0iy.js} +16 -12
  121. package/dist/text-area-D_TYL4_q.cjs +51 -0
  122. package/dist/textarea.cjs +1 -1
  123. package/dist/textarea.js +1 -1
  124. package/dist/{timepicker-DMzGYd0p.js → timepicker-B9l6HN-d.js} +6 -2
  125. package/dist/{timepicker-CLJKWWGm.cjs → timepicker-Bpf2d4Nn.cjs} +1 -1
  126. package/dist/timepicker.cjs +1 -1
  127. package/dist/timepicker.js +1 -1
  128. package/dist/{toast-container-B5v74b_5.js → toast-container-C5qYjInG.js} +4 -4
  129. package/dist/toast-container-D2dyP20J.cjs +64 -0
  130. package/dist/toast.cjs +1 -1
  131. package/dist/toast.js +1 -1
  132. package/dist/tree-menu-BZ7aBC7R.js +237 -0
  133. package/dist/tree-menu-DDQ_DYl7.cjs +78 -0
  134. package/dist/tree-menu.cjs +1 -1
  135. package/dist/tree-menu.js +1 -1
  136. package/dist/{ui-icon-BMJNdIOq.js → ui-icon-BeR-PaPg.js} +11 -7
  137. package/dist/{ui-icon-DIucAQC_.cjs → ui-icon-DWl7I5BQ.cjs} +2 -2
  138. package/package.json +6 -1
  139. package/dist/breadcrumb-BB61Xt0s.js +0 -41
  140. package/dist/breadcrumb-Cop-B1J7.cjs +0 -12
  141. package/dist/button-DRZ4sG4T.cjs +0 -10
  142. package/dist/button-Uu9oaieg.js +0 -58
  143. package/dist/card-BOCW7gad.cjs +0 -43
  144. package/dist/chatbot-B-NiZIYK.cjs +0 -183
  145. package/dist/checkbox-CX0LgsWP.js +0 -148
  146. package/dist/checkbox-DpbKHANK.cjs +0 -53
  147. package/dist/combobox-BmIFPk8X.cjs +0 -113
  148. package/dist/datepicker-DOBmbxlo.cjs +0 -85
  149. package/dist/formfield-CRcyUMvQ.cjs +0 -33
  150. package/dist/input-CQS0LzF-.cjs +0 -59
  151. package/dist/input-CeF3YJk-.js +0 -257
  152. package/dist/leftmenu-CmWvnA6L.js +0 -301
  153. package/dist/leftmenu-p9aR2QTy.cjs +0 -83
  154. package/dist/modal-dUnnHe8u.cjs +0 -84
  155. package/dist/organisms/LeftMenu/leftmenu-item.d.ts +0 -14
  156. package/dist/pagination-BkqbWBOn.cjs +0 -169
  157. package/dist/popover-CYDoeLKp.cjs +0 -30
  158. package/dist/popover-DDaG8MSj.js +0 -143
  159. package/dist/tab-CDMcFHvP.cjs +0 -41
  160. package/dist/text-area-Cprb-azV.cjs +0 -51
  161. package/dist/toast-container-6t6yEP9Y.cjs +0 -64
  162. package/dist/tree-menu-CkOPxr-W.js +0 -154
  163. package/dist/tree-menu-WNwZMreD.cjs +0 -47
package/dist/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ığı (attribute: `card-title`) |
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 card-title="Kullanıcı Bilgileri" description="Profil bilgilerinizi güncelleyin">
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 card-title="Emin misiniz?" okLabel="Evet, Sil" cancelLabel="Hayır">
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ığı (attribute: `popover-title`) |
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 popover-title="Yardım">
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ığı (attribute: `modal-title`) |
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" modal-title="Düzenle" showClose>
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ığı (attribute: `drawer-title`) |
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 drawer-title="Filtreler" position="right" width="400">
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 (attribute: `toast-title`) |
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>` ve `<leftmenu-item>`
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
- **`logosphere-leftmenu` Properties**
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
- **Events:** `pin-change` → `detail: { pinned }`, `item-click` → `detail: { item }`
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
- **Slots:** varsayılan (`leftmenu-item` elementler), `logo-open`, `logo-closed`, `custom-open`, `custom-closed`
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
- **`leftmenu-item` Properties**
850
+ interface LeftMenuGroup {
851
+ id: string;
852
+ label?: string;
853
+ items: LeftMenuItem[];
854
+ }
785
855
 
786
- | Property | Tip | Varsayılan |
787
- |----------|-----|-----------|
788
- | `itemId` | `string` | `""` |
789
- | `label` | `string` | `""` |
790
- | `disabled` | `boolean` | `false` |
791
- | `active` | `boolean` | `false` |
856
+ type LeftMenuEntry = LeftMenuItem | LeftMenuGroup;
857
+ ```
792
858
 
793
- **Slots:** varsayılan (etiket), `icon` (ikon), `children` (alt öğeler)
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
- <img slot="logo-open" src="/logo-full.svg" alt="Logo" />
798
- <img slot="logo-closed" src="/logo-icon.svg" alt="L" />
799
-
800
- <leftmenu-item itemId="dashboard" label="Ana Sayfa" active>
801
- <ui-icon slot="icon" name="uil-home" size="20"></ui-icon>
802
- </leftmenu-item>
803
-
804
- <leftmenu-item itemId="users" label="Kullanıcılar">
805
- <ui-icon slot="icon" name="uil-users-alt" size="20"></ui-icon>
806
- <div slot="children">
807
- <leftmenu-item itemId="users-list" label="Liste"></leftmenu-item>
808
- <leftmenu-item itemId="users-create" label="Yeni Ekle"></leftmenu-item>
809
- </div>
810
- </leftmenu-item>
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: string;
836
- label: string;
837
- icon?: string;
838
- children?: TreeMenuItem[];
839
- disabled?: boolean;
840
- data?: unknown; // isteğe bağlı ek veri
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 card-title="Giriş Yap" description="Hesabınıza erişin" style="width:400px">
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 drawer-title="Filtreler" position="right">
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 pinned style="flex-shrink:0">
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="logo-closed" src="/icon.svg" alt="L" style="height:32px"/>
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" modal-title="Kaydı Sil" showClose closeOnEsc>
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">
@@ -0,0 +1,21 @@
1
+ "use strict";const n=require("lit"),s=require("lit/decorators.js");require("./collapse-CbRE8ABx.cjs");const a=":host{display:block}.accordion{display:flex;flex-direction:column}.accordion--full{gap:var(--spacing-2)}.accordion--bottom{gap:0}.accordion--full ::slotted(logosphere-collapse),.accordion--full logosphere-collapse{width:100%}";var d=Object.defineProperty,h=Object.getOwnPropertyDescriptor,r=(l,e,t,o)=>{for(var i=o>1?void 0:o?h(e,t):e,c=l.length-1,p;c>=0;c--)(p=l[c])&&(i=(o?p(e,t,i):p(i))||i);return o&&i&&d(e,t,i),i};exports.Accordion=class extends n.LitElement{constructor(){super(...arguments),this.items=[],this.multiple=!1,this.defaultOpen=[],this.border="full",this.iconPosition="right",this.size="default",this._openSet=new Set,this._onSlottedToggle=e=>{if(this.items.length>0||this.multiple)return;const t=e.target;e.detail.expanded&&this.querySelectorAll("logosphere-collapse").forEach(o=>{o!==t&&o.expanded&&(o.expanded=!1)})}}connectedCallback(){super.connectedCallback();const e=Array.isArray(this.defaultOpen)?this.defaultOpen:[this.defaultOpen];this._openSet=new Set(e),this.addEventListener("toggle",this._onSlottedToggle)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("toggle",this._onSlottedToggle)}_toggle(e){const t=new Set(this._openSet);t.has(e)?t.delete(e):(this.multiple||t.clear(),t.add(e));const o=this._openSet.has(e);this._openSet=t,this.dispatchEvent(new CustomEvent("accordion-change",{detail:{index:e,expanded:!o,openIndices:[...this._openSet]},bubbles:!0,composed:!0}))}render(){return this.items.length===0?n.html`
2
+ <div class="accordion accordion--${this.border}">
3
+ <slot></slot>
4
+ </div>
5
+ `:n.html`
6
+ <div class="accordion accordion--${this.border}">
7
+ ${this.items.map((e,t)=>n.html`
8
+ <logosphere-collapse
9
+ title=${e.title}
10
+ .expanded=${this._openSet.has(t)}
11
+ .disabled=${e.disabled??!1}
12
+ border=${this.border}
13
+ iconPosition=${this.iconPosition}
14
+ size=${this.size}
15
+ @toggle=${o=>{o.stopPropagation(),this._toggle(t)}}
16
+ >
17
+ <span slot="body">${e.content}</span>
18
+ </logosphere-collapse>
19
+ `)}
20
+ </div>
21
+ `}};exports.Accordion.styles=[n.css`${n.unsafeCSS(a)}`];r([s.property({attribute:!1})],exports.Accordion.prototype,"items",2);r([s.property({type:Boolean})],exports.Accordion.prototype,"multiple",2);r([s.property({attribute:!1})],exports.Accordion.prototype,"defaultOpen",2);r([s.property({type:String})],exports.Accordion.prototype,"border",2);r([s.property({type:String})],exports.Accordion.prototype,"iconPosition",2);r([s.property({type:String})],exports.Accordion.prototype,"size",2);r([s.state()],exports.Accordion.prototype,"_openSet",2);exports.Accordion=r([s.customElement("logosphere-accordion")],exports.Accordion);
@@ -0,0 +1,96 @@
1
+ import { unsafeCSS as d, css as h, LitElement as u, html as c } from "lit";
2
+ import { property as r, state as g, customElement as f } from "lit/decorators.js";
3
+ import "./collapse-DY6SJ9jS.js";
4
+ const m = ":host{display:block}.accordion{display:flex;flex-direction:column}.accordion--full{gap:var(--spacing-2)}.accordion--bottom{gap:0}.accordion--full ::slotted(logosphere-collapse),.accordion--full logosphere-collapse{width:100%}";
5
+ var b = Object.defineProperty, S = Object.getOwnPropertyDescriptor, i = (e, t, o, n) => {
6
+ for (var l = n > 1 ? void 0 : n ? S(t, o) : t, a = e.length - 1, p; a >= 0; a--)
7
+ (p = e[a]) && (l = (n ? p(t, o, l) : p(l)) || l);
8
+ return n && l && b(t, o, l), l;
9
+ };
10
+ let s = class extends u {
11
+ constructor() {
12
+ super(...arguments), this.items = [], this.multiple = !1, this.defaultOpen = [], this.border = "full", this.iconPosition = "right", this.size = "default", this._openSet = /* @__PURE__ */ new Set(), this._onSlottedToggle = (e) => {
13
+ if (this.items.length > 0 || this.multiple) return;
14
+ const t = e.target;
15
+ e.detail.expanded && this.querySelectorAll("logosphere-collapse").forEach((o) => {
16
+ o !== t && o.expanded && (o.expanded = !1);
17
+ });
18
+ };
19
+ }
20
+ // ── Lifecycle ────────────────────────────────────────────────────────────
21
+ connectedCallback() {
22
+ super.connectedCallback();
23
+ const e = Array.isArray(this.defaultOpen) ? this.defaultOpen : [this.defaultOpen];
24
+ this._openSet = new Set(e), this.addEventListener("toggle", this._onSlottedToggle);
25
+ }
26
+ disconnectedCallback() {
27
+ super.disconnectedCallback(), this.removeEventListener("toggle", this._onSlottedToggle);
28
+ }
29
+ // ── Items-based mode ──────────────────────────────────────────────────────
30
+ _toggle(e) {
31
+ const t = new Set(this._openSet);
32
+ t.has(e) ? t.delete(e) : (this.multiple || t.clear(), t.add(e));
33
+ const o = this._openSet.has(e);
34
+ this._openSet = t, this.dispatchEvent(
35
+ new CustomEvent("accordion-change", {
36
+ detail: { index: e, expanded: !o, openIndices: [...this._openSet] },
37
+ bubbles: !0,
38
+ composed: !0
39
+ })
40
+ );
41
+ }
42
+ // ── Render ────────────────────────────────────────────────────────────────
43
+ render() {
44
+ return this.items.length === 0 ? c`
45
+ <div class="accordion accordion--${this.border}">
46
+ <slot></slot>
47
+ </div>
48
+ ` : c`
49
+ <div class="accordion accordion--${this.border}">
50
+ ${this.items.map((e, t) => c`
51
+ <logosphere-collapse
52
+ title=${e.title}
53
+ .expanded=${this._openSet.has(t)}
54
+ .disabled=${e.disabled ?? !1}
55
+ border=${this.border}
56
+ iconPosition=${this.iconPosition}
57
+ size=${this.size}
58
+ @toggle=${(o) => {
59
+ o.stopPropagation(), this._toggle(t);
60
+ }}
61
+ >
62
+ <span slot="body">${e.content}</span>
63
+ </logosphere-collapse>
64
+ `)}
65
+ </div>
66
+ `;
67
+ }
68
+ };
69
+ s.styles = [h`${d(m)}`];
70
+ i([
71
+ r({ attribute: !1 })
72
+ ], s.prototype, "items", 2);
73
+ i([
74
+ r({ type: Boolean })
75
+ ], s.prototype, "multiple", 2);
76
+ i([
77
+ r({ attribute: !1 })
78
+ ], s.prototype, "defaultOpen", 2);
79
+ i([
80
+ r({ type: String })
81
+ ], s.prototype, "border", 2);
82
+ i([
83
+ r({ type: String })
84
+ ], s.prototype, "iconPosition", 2);
85
+ i([
86
+ r({ type: String })
87
+ ], s.prototype, "size", 2);
88
+ i([
89
+ g()
90
+ ], s.prototype, "_openSet", 2);
91
+ s = i([
92
+ f("logosphere-accordion")
93
+ ], s);
94
+ export {
95
+ s as A
96
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./accordion-CYuCj7nB.cjs");Object.defineProperty(exports,"Accordion",{enumerable:!0,get:()=>e.Accordion});
@@ -0,0 +1,4 @@
1
+ import { A as c } from "./accordion-cDabqwu6.js";
2
+ export {
3
+ c as Accordion
4
+ };
@@ -3,13 +3,22 @@ export declare class Checkbox extends LitElement {
3
3
  static styles: import("lit").CSSResult[];
4
4
  label: string;
5
5
  value: string;
6
- checked: boolean;
7
6
  type: "checkbox" | "switch" | "radio";
8
7
  disabled: boolean;
9
8
  indeterminate: boolean;
10
9
  private internalChecked;
11
10
  private inputElement?;
12
- connectedCallback(): void;
11
+ private _checked;
12
+ /**
13
+ * Custom accessor: her dış atama — değer öncekiyle AYNI olsa bile — iç
14
+ * görsel state'i prop'a senkronlar. Lit'in standart accessor'ı aynı değeri
15
+ * dirty-check'te yuttuğu için, kontrollü kullanımda parent'ın "reddi"
16
+ * (checked'ı değişmeyen değerle yeniden ataması) görsele yansımıyordu:
17
+ * tıklama internalChecked'ı optimistik set eder, parent reddedince geri
18
+ * alınamazdı (örn. iki radio birden seçili kalırdı).
19
+ */
20
+ get checked(): boolean;
21
+ set checked(value: boolean);
13
22
  firstUpdated(): void;
14
23
  updated(changedProps: Map<string, unknown>): void;
15
24
  private setIndeterminate;
@@ -21,6 +21,7 @@ export declare class FormField extends LitElement {
21
21
  private _hovered;
22
22
  private _hasPrefix;
23
23
  private _hasSuffix;
24
+ private _hasClear;
24
25
  private handleSlotFocus;
25
26
  private handleSlotBlur;
26
27
  private handleMouseEnter;
@@ -28,6 +29,7 @@ export declare class FormField extends LitElement {
28
29
  private handleContainerClick;
29
30
  private handlePrefixSlotChange;
30
31
  private handleSuffixSlotChange;
32
+ private handleClearSlotChange;
31
33
  connectedCallback(): void;
32
34
  firstUpdated(): void;
33
35
  disconnectedCallback(): void;
@@ -1,11 +1,11 @@
1
1
  import { unsafeCSS as p, css as u, LitElement as b, nothing as d, html as g } from "lit";
2
- import { property as a, customElement as h } from "lit/decorators.js";
3
- import "./ui-icon-BMJNdIOq.js";
4
- const f = ".badge{display:inline-flex;align-items:center;gap:var(--spacing-1);font-family:var(--font-family-base);font-size:11px;font-weight:var(--font-weight-medium);line-height:1rem;letter-spacing:-.11px;border-radius:var(--radius-base);white-space:nowrap;-webkit-user-select:none;user-select:none}.badge--default-size{min-height:24px;max-height:24px;padding:var(--spacing-0) var(--spacing-2)}.badge--small{min-height:16px;max-height:16px;padding:0 var(--spacing-2)}.badge--round{border-radius:var(--radius-full)}.badge--primary{background-color:var(--color-primary);color:var(--color-secondary-color, #ffffff)}.badge--default{background-color:var(--color-light-bg-2);color:var(--color-secondary)}.badge--warning{background-color:var( --color-warning-subtle);color:var(--color-warning-emphasis)}.badge--success{background-color:var(--color-success-subtle);color:var(--color-success-emphasis)}.badge--danger{background-color:var(--color-danger-subtle);color:var(--color-danger)}.badge--info{background-color:var(--color-info-subtle);color:var(--color-info-emphasis)}.badge--purple{background-color:var(--color-commercial-subtle);color:var(--color-commercial-emphasis)}.badge__close{display:inline-flex;align-items:center;justify-content:center;margin-left:var(--spacing-1);padding:0;background:none;border:none;cursor:pointer;color:inherit;opacity:.75;transition:opacity var(--transition-speed-fast) var(--transition-timing);line-height:1}.badge__close:hover{opacity:1}.badge__close:focus{outline:none;opacity:1}";
5
- var m = Object.defineProperty, v = Object.getOwnPropertyDescriptor, r = (s, t, n, i) => {
6
- for (var o = i > 1 ? void 0 : i ? v(t, n) : t, l = s.length - 1, c; l >= 0; l--)
7
- (c = s[l]) && (o = (i ? c(t, n, o) : c(o)) || o);
8
- return i && o && m(t, n, o), o;
2
+ import { property as r, customElement as h } from "lit/decorators.js";
3
+ import "./ui-icon-BeR-PaPg.js";
4
+ const f = ":host{display:inline-block}.badge{display:inline-flex;align-items:center;gap:var(--spacing-1);font-family:var(--font-family-base);font-size:11px;font-weight:var(--font-weight-medium);line-height:1rem;letter-spacing:-.11px;border-radius:var(--radius-base);white-space:nowrap;-webkit-user-select:none;user-select:none}.badge--default-size{min-height:24px;max-height:24px;padding:var(--spacing-0) var(--spacing-2)}.badge--small{min-height:16px;max-height:16px;padding:0 var(--spacing-2)}.badge--round{border-radius:var(--radius-full)}.badge--primary{background-color:var(--color-primary);color:var(--color-secondary-color, #ffffff)}.badge--default{background-color:var(--badge-bg, var(--color-light-bg-2));color:var(--badge-color, var(--color-secondary))}.badge--warning{background-color:var( --color-warning-subtle);color:var(--color-warning-emphasis)}.badge--success{background-color:var(--color-success-subtle);color:var(--color-success-emphasis)}.badge--danger{background-color:var(--color-danger-subtle);color:var(--color-danger)}.badge--info{background-color:var(--color-info-subtle);color:var(--color-info-emphasis)}.badge--purple{background-color:var(--color-commercial-subtle);color:var(--color-commercial-emphasis)}.badge__close{display:inline-flex;align-items:center;justify-content:center;margin-left:var(--spacing-1);padding:0;background:none;border:none;cursor:pointer;color:inherit;opacity:.75;transition:opacity var(--transition-speed-fast) var(--transition-timing);line-height:1}.badge__close:hover{opacity:1}.badge__close:focus{outline:none;opacity:1}";
5
+ var v = Object.defineProperty, m = Object.getOwnPropertyDescriptor, a = (s, t, l, i) => {
6
+ for (var o = i > 1 ? void 0 : i ? m(t, l) : t, n = s.length - 1, c; n >= 0; n--)
7
+ (c = s[n]) && (o = (i ? c(t, l, o) : c(o)) || o);
8
+ return i && o && v(t, l, o), o;
9
9
  };
10
10
  let e = class extends b {
11
11
  constructor() {
@@ -46,25 +46,25 @@ e.styles = [
46
46
  ${p(f)}
47
47
  `
48
48
  ];
49
- r([
50
- a({ type: String })
49
+ a([
50
+ r({ type: String })
51
51
  ], e.prototype, "variant", 2);
52
- r([
53
- a({ type: String })
52
+ a([
53
+ r({ type: String })
54
54
  ], e.prototype, "size", 2);
55
- r([
56
- a({ type: String })
55
+ a([
56
+ r({ type: String })
57
57
  ], e.prototype, "text", 2);
58
- r([
59
- a({ type: Boolean })
58
+ a([
59
+ r({ type: Boolean })
60
60
  ], e.prototype, "closeable", 2);
61
- r([
62
- a({ type: Boolean })
61
+ a([
62
+ r({ type: Boolean })
63
63
  ], e.prototype, "isRound", 2);
64
- r([
65
- a({ attribute: !1 })
64
+ a([
65
+ r({ attribute: !1 })
66
66
  ], e.prototype, "onClose", 2);
67
- e = r([
67
+ e = a([
68
68
  h("logosphere-badge")
69
69
  ], e);
70
70
  export {
@@ -1,4 +1,4 @@
1
- "use strict";const e=require("lit"),a=require("lit/decorators.js");require("./ui-icon-DIucAQC_.cjs");const g=".badge{display:inline-flex;align-items:center;gap:var(--spacing-1);font-family:var(--font-family-base);font-size:11px;font-weight:var(--font-weight-medium);line-height:1rem;letter-spacing:-.11px;border-radius:var(--radius-base);white-space:nowrap;-webkit-user-select:none;user-select:none}.badge--default-size{min-height:24px;max-height:24px;padding:var(--spacing-0) var(--spacing-2)}.badge--small{min-height:16px;max-height:16px;padding:0 var(--spacing-2)}.badge--round{border-radius:var(--radius-full)}.badge--primary{background-color:var(--color-primary);color:var(--color-secondary-color, #ffffff)}.badge--default{background-color:var(--color-light-bg-2);color:var(--color-secondary)}.badge--warning{background-color:var( --color-warning-subtle);color:var(--color-warning-emphasis)}.badge--success{background-color:var(--color-success-subtle);color:var(--color-success-emphasis)}.badge--danger{background-color:var(--color-danger-subtle);color:var(--color-danger)}.badge--info{background-color:var(--color-info-subtle);color:var(--color-info-emphasis)}.badge--purple{background-color:var(--color-commercial-subtle);color:var(--color-commercial-emphasis)}.badge__close{display:inline-flex;align-items:center;justify-content:center;margin-left:var(--spacing-1);padding:0;background:none;border:none;cursor:pointer;color:inherit;opacity:.75;transition:opacity var(--transition-speed-fast) var(--transition-timing);line-height:1}.badge__close:hover{opacity:1}.badge__close:focus{outline:none;opacity:1}";var p=Object.defineProperty,d=Object.getOwnPropertyDescriptor,s=(i,o,n,t)=>{for(var r=t>1?void 0:t?d(o,n):o,l=i.length-1,c;l>=0;l--)(c=i[l])&&(r=(t?c(o,n,r):c(r))||r);return t&&r&&p(o,n,r),r};exports.LogosphereBadge=class extends e.LitElement{constructor(){super(...arguments),this.variant="default",this.size="default",this.text="",this.closeable=!1,this.isRound=!1}handleClose(){this.onClose&&this.onClose(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))}getBadgeClasses(){const o=["badge",`badge--${this.variant}`,this.size==="small"?"badge--small":"badge--default-size"];return this.isRound&&o.push("badge--round"),o.join(" ")}render(){return e.html`
1
+ "use strict";const e=require("lit"),a=require("lit/decorators.js");require("./ui-icon-DWl7I5BQ.cjs");const g=":host{display:inline-block}.badge{display:inline-flex;align-items:center;gap:var(--spacing-1);font-family:var(--font-family-base);font-size:11px;font-weight:var(--font-weight-medium);line-height:1rem;letter-spacing:-.11px;border-radius:var(--radius-base);white-space:nowrap;-webkit-user-select:none;user-select:none}.badge--default-size{min-height:24px;max-height:24px;padding:var(--spacing-0) var(--spacing-2)}.badge--small{min-height:16px;max-height:16px;padding:0 var(--spacing-2)}.badge--round{border-radius:var(--radius-full)}.badge--primary{background-color:var(--color-primary);color:var(--color-secondary-color, #ffffff)}.badge--default{background-color:var(--badge-bg, var(--color-light-bg-2));color:var(--badge-color, var(--color-secondary))}.badge--warning{background-color:var( --color-warning-subtle);color:var(--color-warning-emphasis)}.badge--success{background-color:var(--color-success-subtle);color:var(--color-success-emphasis)}.badge--danger{background-color:var(--color-danger-subtle);color:var(--color-danger)}.badge--info{background-color:var(--color-info-subtle);color:var(--color-info-emphasis)}.badge--purple{background-color:var(--color-commercial-subtle);color:var(--color-commercial-emphasis)}.badge__close{display:inline-flex;align-items:center;justify-content:center;margin-left:var(--spacing-1);padding:0;background:none;border:none;cursor:pointer;color:inherit;opacity:.75;transition:opacity var(--transition-speed-fast) var(--transition-timing);line-height:1}.badge__close:hover{opacity:1}.badge__close:focus{outline:none;opacity:1}";var p=Object.defineProperty,d=Object.getOwnPropertyDescriptor,s=(i,o,n,t)=>{for(var r=t>1?void 0:t?d(o,n):o,l=i.length-1,c;l>=0;l--)(c=i[l])&&(r=(t?c(o,n,r):c(r))||r);return t&&r&&p(o,n,r),r};exports.LogosphereBadge=class extends e.LitElement{constructor(){super(...arguments),this.variant="default",this.size="default",this.text="",this.closeable=!1,this.isRound=!1}handleClose(){this.onClose&&this.onClose(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))}getBadgeClasses(){const o=["badge",`badge--${this.variant}`,this.size==="small"?"badge--small":"badge--default-size"];return this.isRound&&o.push("badge--round"),o.join(" ")}render(){return e.html`
2
2
  <div class="${this.getBadgeClasses()}">
3
3
  <slot></slot>
4
4
  ${this.text?e.html`<span>${this.text}</span>`:e.nothing}