@logosphere-ui/core 0.0.0-alpha.5 → 0.0.0-alpha.50

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 (208) hide show
  1. package/AGENTS.md +1204 -0
  2. package/dist/AGENTS.md +1204 -0
  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/Badge/badge.d.ts +1 -1
  8. package/dist/atoms/Button/button.d.ts +5 -3
  9. package/dist/atoms/Checkbox/checkbox.d.ts +13 -3
  10. package/dist/atoms/FormField/formfield.d.ts +12 -0
  11. package/dist/atoms/Slider/index.d.ts +1 -0
  12. package/dist/atoms/Slider/slider.d.ts +54 -0
  13. package/dist/badge-BhINg1p5.js +72 -0
  14. package/dist/badge-CKSG_MyA.cjs +13 -0
  15. package/dist/badge.cjs +1 -1
  16. package/dist/badge.js +1 -1
  17. package/dist/breadcrumb-BOuCLUJh.cjs +12 -0
  18. package/dist/breadcrumb-BeJqq-5C.js +41 -0
  19. package/dist/breadcrumb.cjs +1 -1
  20. package/dist/breadcrumb.js +1 -1
  21. package/dist/button-CVkIa7M0.js +58 -0
  22. package/dist/button-vdNReBMi.cjs +10 -0
  23. package/dist/button.cjs +1 -1
  24. package/dist/button.js +1 -1
  25. package/dist/calendar-C71sj3Ki.js +652 -0
  26. package/dist/calendar-DZJM5Tyu.cjs +88 -0
  27. package/dist/calendar.cjs +1 -0
  28. package/dist/calendar.js +4 -0
  29. package/dist/{card-CUhlTJyJ.js → card-C7xXMV3h.js} +26 -25
  30. package/dist/card-DmQRNKtk.cjs +43 -0
  31. package/dist/card.cjs +1 -1
  32. package/dist/card.js +1 -1
  33. package/dist/chatbot-BAou4THb.cjs +183 -0
  34. package/dist/chatbot-BRfqXYYt.js +564 -0
  35. package/dist/chatbot.cjs +1 -1
  36. package/dist/chatbot.js +2 -2
  37. package/dist/checkbox-BAbPDN6x.cjs +53 -0
  38. package/dist/checkbox-CTfbav6M.js +152 -0
  39. package/dist/checkbox.cjs +1 -1
  40. package/dist/checkbox.js +1 -1
  41. package/dist/chip-group-D4DwnC37.cjs +26 -0
  42. package/dist/chip-group-DzfOd6Vw.js +89 -0
  43. package/dist/chip-group.cjs +1 -0
  44. package/dist/chip-group.js +4 -0
  45. package/dist/collapse-CbRE8ABx.cjs +47 -0
  46. package/dist/collapse-DY6SJ9jS.js +141 -0
  47. package/dist/collapse.cjs +1 -0
  48. package/dist/collapse.js +4 -0
  49. package/dist/combobox-BAa3UAQs.cjs +113 -0
  50. package/dist/combobox-BR05Tgfd.js +460 -0
  51. package/dist/combobox.cjs +1 -1
  52. package/dist/combobox.js +1 -1
  53. package/dist/datepicker-BFYWQRrJ.js +382 -0
  54. package/dist/datepicker-BWE4qDJM.cjs +85 -0
  55. package/dist/datepicker.cjs +1 -1
  56. package/dist/datepicker.js +2 -2
  57. package/dist/{download-manager-A4fOxGWJ.js → download-manager-BPg-6Qfg.js} +4 -4
  58. package/dist/download-manager-DDeTYRPs.cjs +97 -0
  59. package/dist/download-manager.cjs +1 -1
  60. package/dist/download-manager.js +1 -1
  61. package/dist/drawer-CRu4G2zu.cjs +32 -0
  62. package/dist/drawer-DhuBPWHP.js +114 -0
  63. package/dist/drawer.cjs +1 -0
  64. package/dist/drawer.js +4 -0
  65. package/dist/formfield-JXiv9mvJ.cjs +33 -0
  66. package/dist/formfield-ss2mFweu.js +161 -0
  67. package/dist/formfield.cjs +1 -1
  68. package/dist/formfield.js +1 -1
  69. package/dist/icon.cjs +1 -0
  70. package/dist/icon.js +4 -0
  71. package/dist/index.cjs +1 -1
  72. package/dist/index.d.ts +15 -0
  73. package/dist/index.js +65 -32
  74. package/dist/index.umd.js +1613 -521
  75. package/dist/input-DyLKo7h6.cjs +60 -0
  76. package/dist/input-N3Z8D7q1.js +278 -0
  77. package/dist/input-group-C6sA1lzj.cjs +5 -0
  78. package/dist/input-group-DUPlrpug.js +66 -0
  79. package/dist/input-group.cjs +1 -0
  80. package/dist/input-group.js +4 -0
  81. package/dist/input.cjs +1 -1
  82. package/dist/input.js +1 -1
  83. package/dist/left-menu.cjs +1 -0
  84. package/dist/left-menu.js +5 -0
  85. package/dist/leftmenu-DiKo8iud.cjs +120 -0
  86. package/dist/leftmenu-DlU_G4Sj.js +373 -0
  87. package/dist/modal-g3KbWncV.cjs +84 -0
  88. package/dist/modal-vSjEpYrG.js +250 -0
  89. package/dist/modal.cjs +1 -1
  90. package/dist/modal.js +1 -1
  91. package/dist/molecules/Accordion/accordion.d.ts +42 -0
  92. package/dist/molecules/Accordion/index.d.ts +2 -0
  93. package/dist/molecules/Chip/chip-group.d.ts +29 -0
  94. package/dist/molecules/Chip/index.d.ts +2 -0
  95. package/dist/molecules/Collapse/collapse.d.ts +42 -0
  96. package/dist/molecules/Collapse/index.d.ts +2 -0
  97. package/dist/molecules/Input/input.d.ts +24 -1
  98. package/dist/molecules/InputGroup/index.d.ts +1 -0
  99. package/dist/molecules/InputGroup/input-group.d.ts +40 -0
  100. package/dist/molecules/Pagination/index.d.ts +1 -0
  101. package/dist/molecules/Pagination/pagination.d.ts +60 -0
  102. package/dist/molecules/Popover/popover.d.ts +5 -0
  103. package/dist/molecules/SplitButton/index.d.ts +2 -0
  104. package/dist/molecules/SplitButton/split-button.d.ts +53 -0
  105. package/dist/molecules/Stepper/index.d.ts +2 -0
  106. package/dist/molecules/Stepper/stepper.d.ts +34 -0
  107. package/dist/molecules/Textarea/text-area.d.ts +5 -2
  108. package/dist/molecules/TimePicker/index.d.ts +2 -0
  109. package/dist/molecules/TimePicker/timepicker.d.ts +62 -0
  110. package/dist/organisms/Calendar/calendar.d.ts +54 -0
  111. package/dist/organisms/Calendar/index.d.ts +1 -0
  112. package/dist/organisms/Calendar/shared.d.ts +9 -0
  113. package/dist/organisms/Chatbot/chatbot.d.ts +10 -1
  114. package/dist/organisms/Chatbot/index.d.ts +1 -1
  115. package/dist/organisms/Combobox/combobox.d.ts +39 -0
  116. package/dist/organisms/DatePicker/datepicker.d.ts +35 -33
  117. package/dist/organisms/Drawer/drawer.d.ts +30 -0
  118. package/dist/organisms/Drawer/index.d.ts +1 -0
  119. package/dist/organisms/LeftMenu/index.d.ts +2 -0
  120. package/dist/organisms/LeftMenu/leftmenu-types.d.ts +24 -0
  121. package/dist/organisms/LeftMenu/leftmenu.d.ts +60 -0
  122. package/dist/organisms/Modal/modal.d.ts +29 -4
  123. package/dist/organisms/Tab/tab.d.ts +13 -1
  124. package/dist/organisms/Toast/index.d.ts +2 -0
  125. package/dist/organisms/Toast/toast-container.d.ts +42 -0
  126. package/dist/organisms/Toast/toast.d.ts +48 -0
  127. package/dist/organisms/TreeMenu/index.d.ts +1 -0
  128. package/dist/organisms/TreeMenu/tree-menu.d.ts +59 -0
  129. package/dist/pagination-CjXvpE2j.js +360 -0
  130. package/dist/pagination-Nnzacqdo.cjs +169 -0
  131. package/dist/pagination.cjs +1 -0
  132. package/dist/pagination.js +4 -0
  133. package/dist/popover-CrXUbUR-.cjs +30 -0
  134. package/dist/popover-M5ZcS5rj.js +161 -0
  135. package/dist/popover.cjs +1 -1
  136. package/dist/popover.js +1 -1
  137. package/dist/shared/icons/index.d.ts +1 -0
  138. package/dist/shared/types/button.types.d.ts +7 -0
  139. package/dist/slider-DSRs5uhl.cjs +108 -0
  140. package/dist/slider-ntLRajQa.js +280 -0
  141. package/dist/slider.cjs +1 -0
  142. package/dist/slider.js +4 -0
  143. package/dist/split-button-BdBweoip.js +177 -0
  144. package/dist/split-button-BpffPlVg.cjs +63 -0
  145. package/dist/split-button.cjs +1 -0
  146. package/dist/split-button.js +4 -0
  147. package/dist/stepper-CZhwgLNp.js +122 -0
  148. package/dist/stepper-ZOMaU6aZ.cjs +52 -0
  149. package/dist/stepper.cjs +1 -0
  150. package/dist/stepper.js +4 -0
  151. package/dist/styles/main.css +186 -182
  152. package/dist/switch-Do6SCkPJ.cjs +17 -0
  153. package/dist/switch-uYVuohJ-.js +68 -0
  154. package/dist/switch.cjs +1 -1
  155. package/dist/switch.js +1 -1
  156. package/dist/tab-BvRVHpWs.cjs +41 -0
  157. package/dist/tab-Byh4UgFB.js +204 -0
  158. package/dist/tab.cjs +1 -1
  159. package/dist/tab.js +1 -1
  160. package/dist/text-area-1rALZ0iy.js +239 -0
  161. package/dist/text-area-D_TYL4_q.cjs +51 -0
  162. package/dist/textarea.cjs +1 -1
  163. package/dist/textarea.js +1 -1
  164. package/dist/timepicker-B9l6HN-d.js +320 -0
  165. package/dist/timepicker-Bpf2d4Nn.cjs +119 -0
  166. package/dist/timepicker.cjs +1 -0
  167. package/dist/timepicker.js +4 -0
  168. package/dist/toast-container-C5qYjInG.js +274 -0
  169. package/dist/toast-container-D2dyP20J.cjs +64 -0
  170. package/dist/toast.cjs +1 -0
  171. package/dist/toast.js +6 -0
  172. package/dist/tree-menu-BZ7aBC7R.js +237 -0
  173. package/dist/tree-menu-DDQ_DYl7.cjs +78 -0
  174. package/dist/tree-menu.cjs +1 -0
  175. package/dist/tree-menu.js +4 -0
  176. package/dist/ui-icon-BeR-PaPg.js +75 -0
  177. package/dist/ui-icon-DWl7I5BQ.cjs +22 -0
  178. package/package.json +104 -15
  179. package/dist/badge-BbhaO73N.cjs +0 -13
  180. package/dist/badge-DE7Tgd8Z.js +0 -71
  181. package/dist/breadcrumb-B-4yqoJZ.js +0 -41
  182. package/dist/breadcrumb-Cop-B1J7.cjs +0 -12
  183. package/dist/button-C1EwOosO.js +0 -58
  184. package/dist/button-CDRccsk9.cjs +0 -10
  185. package/dist/card-n8ka8Zk-.cjs +0 -43
  186. package/dist/chatbot-Da_itUdJ.cjs +0 -160
  187. package/dist/chatbot-zkxngMRH.js +0 -481
  188. package/dist/checkbox-7Rb3WKGx.js +0 -119
  189. package/dist/checkbox-CdDTRdKV.cjs +0 -37
  190. package/dist/combobox-BJbI-Tgi.js +0 -268
  191. package/dist/combobox-pmE7bgEL.cjs +0 -99
  192. package/dist/datepicker-DFJx45C-.js +0 -750
  193. package/dist/datepicker-b9JGTTMx.cjs +0 -115
  194. package/dist/download-manager-BSIMTGaK.cjs +0 -97
  195. package/dist/formfield-D_7NFFoe.cjs +0 -27
  196. package/dist/formfield-d8fp9FTV.js +0 -118
  197. package/dist/input-BcnI1w3_.cjs +0 -46
  198. package/dist/input-Bj_7u8Iv.js +0 -192
  199. package/dist/modal-Bfc6WQSL.js +0 -110
  200. package/dist/modal-DQ8VFL-P.cjs +0 -39
  201. package/dist/popover-B7tCqk3R.js +0 -140
  202. package/dist/popover-C2p5Pmts.cjs +0 -30
  203. package/dist/switch-Cpl53nRW.js +0 -64
  204. package/dist/switch-Rnnn10bn.cjs +0 -17
  205. package/dist/tab-BKdN4xAz.js +0 -176
  206. package/dist/tab-DcjAlXzU.cjs +0 -40
  207. package/dist/text-area-BkHdLnZj.cjs +0 -44
  208. package/dist/text-area-CC24lj8v.js +0 -204
@@ -0,0 +1,169 @@
1
+ "use strict";const e=require("lit"),n=require("lit/decorators.js"),h=require("lit/directives/live.js");require("./ui-icon-DWl7I5BQ.cjs");require("./combobox-BAa3UAQs.cjs");const u=":host{display:block;width:100%}.pagination{display:flex;align-items:center;justify-content:space-between;padding:var(--pagination-padding, var(--spacing-4) var(--spacing-6));background-color:var(--pagination-bg, var(--color-body-bg));border-top:1px solid var(--color-border);font-family:var(--font-family-base);gap:var(--spacing-4)}.pagination--justify-end{justify-content:flex-end}.pagination--justify-start{justify-content:flex-start}.pagination--justify-center{justify-content:center}.pagination__nav{display:flex;align-items:center;gap:var(--spacing-1)}.pagination__nav-group{display:flex;align-items:center}.pagination__btn{display:flex;align-items:center;justify-content:center;padding:var(--spacing-2);border:none;background:transparent;border-radius:var(--radius-base);cursor:pointer;color:var(--pagination-color, var(--color-secondary));transition:background-color .15s ease,color .15s ease,opacity .15s ease}.pagination__btn:hover:not(:disabled){background-color:var(--pagination-item-bg-hover, var(--color-body-bg-hover))}.pagination__btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.pagination__btn:disabled{opacity:.4;cursor:not-allowed}.pagination__btn--icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:var(--spacing-2);border:1px solid var(--color-border);background-color:var(--pagination-item-bg, var(--color-body-bg));border-radius:var(--radius-base);cursor:pointer;color:var(--pagination-color, var(--color-secondary));transition:background-color .15s ease,border-color .15s ease,opacity .15s ease}.pagination__btn--icon:hover:not(:disabled){background-color:var(--pagination-item-bg-hover, var(--color-body-bg-hover));border-color:var(--color-border-hover)}.pagination__btn--icon:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.pagination__btn--icon:disabled{opacity:.4;cursor:not-allowed}.pagination__btn--text{display:flex;align-items:center;justify-content:center;gap:var(--spacing-1);height:32px;min-width:100px;padding:var(--spacing-1) var(--spacing-3);border:1px solid var(--color-border);background-color:var(--pagination-item-bg, var(--color-body-bg));border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--pagination-color, var(--color-secondary));cursor:pointer;transition:all .15s ease}.pagination__btn--text:hover:not(:disabled){background-color:var(--pagination-item-bg-hover, var(--color-body-bg-hover));border-color:var(--color-border-hover)}.pagination__btn--text:disabled{color:var(--pagination-color-disabled, var(--color-secondary-disabled));cursor:not-allowed}.pagination__btn--number{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:var(--spacing-1) var(--spacing-3);border:1px solid var(--color-border);background-color:var(--pagination-item-bg, var(--color-body-bg));border-radius:var(--radius-base);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--pagination-color, var(--color-secondary));cursor:pointer;transition:all .15s ease}.pagination__btn--number:hover:not(:disabled):not(.pagination__btn--active){background-color:var(--pagination-item-bg-hover, var(--color-body-bg-hover))}.pagination__btn--active{background-color:var(--pagination-active-bg, var(--color-secondary));border-color:var(--pagination-active-bg, var(--color-secondary));color:var(--pagination-active-color, white);font-weight:var(--font-weight-semibold)}.pagination__btn--ellipsis{border:none;background:transparent;cursor:default;min-width:32px}.pagination__btn--ellipsis:hover{background:transparent}.pagination__input-container{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px}.pagination__input{width:100%;height:100%;min-width:32px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-base);background-color:var(--pagination-item-bg, var(--color-body-bg));font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);color:var(--color-body-text);text-align:center;outline:none;transition:border-color .15s ease}.pagination__input:focus{border-color:var(--color-primary)}.pagination__input::-webkit-outer-spin-button,.pagination__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pagination__input[type=number]{-moz-appearance:textfield}.pagination__separator{font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);color:var(--color-tertiary);line-height:18px;letter-spacing:-.12px;margin-right:var(--spacing-1)}.pagination__info{display:flex;align-items:center;gap:var(--spacing-2)}.pagination__page-info{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);line-height:18px;letter-spacing:-.12px}.pagination__page-info-text{color:var(--pagination-color, var(--color-secondary))}.pagination__page-info-separator{color:var(--color-tertiary)}.pagination__total{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);line-height:18px;letter-spacing:-.12px}.pagination__total-separator{color:var(--color-tertiary)}.pagination__total-text{color:var(--pagination-color, var(--color-secondary))}.pagination__page-size{display:flex;align-items:center}@media(max-width:768px){.pagination{flex-wrap:wrap;gap:var(--spacing-3);padding:var(--pagination-padding, var(--spacing-3) var(--spacing-4))}.pagination__btn--text{min-width:80px;font-size:var(--font-size-xs)}}@media(max-width:480px){.pagination__nav,.pagination__info{flex-wrap:wrap;justify-content:center}}";var b=Object.defineProperty,o=(d,t,a,r)=>{for(var s=void 0,p=d.length-1,l;p>=0;p--)(l=d[p])&&(s=l(t,a,s)||s);return s&&b(t,a,s),s};const c=class c extends e.LitElement{constructor(){super(...arguments),this.variant="default",this.page=1,this.pageSize=25,this.total=0,this.pageSizeOptions=[10,25,50,100],this.showPageSize=!0,this.showTotal=!0,this.disabled=!1,this.prevLabel="Önceki",this.nextLabel="Sonraki",this.pageLabel="Sayfa",this.perPageLabel="/ sayfa",this.totalLabel="kayıt",this.inputValue="1",this.goFirst=()=>{this.canGoPrev&&this.goToPage(1)},this.goPrev=()=>{this.canGoPrev&&this.goToPage(this.page-1)},this.goNext=()=>{this.canGoNext&&this.goToPage(this.page+1)},this.goLast=()=>{this.canGoNext&&this.goToPage(this.totalPages)},this.handleInputChange=t=>{const a=t.target;this.inputValue=a.value},this.handleInputBlur=()=>{const t=parseInt(this.inputValue,10);isNaN(t)?this.inputValue=String(this.page):this.goToPage(t)},this.handleInputKeydown=t=>{t.key==="Enter"&&t.target.blur()},this.handlePageSizeChange=t=>{const a=t.detail?.value?.[0];if(a){const r=a.value;r!==this.pageSize&&(this.pageSize=r,this.page=1,this.emitPageChange())}}}get totalPages(){return Math.max(1,Math.ceil(this.total/this.pageSize))}get canGoPrev(){return this.page>1&&!this.disabled}get canGoNext(){return this.page<this.totalPages&&!this.disabled}firstUpdated(){this.updateComboboxSelection()}updated(t){super.updated(t),t.has("page")&&(this.inputValue=String(this.page)),t.has("pageSize")&&this.updateComboboxSelection()}updateComboboxSelection(){this._combobox&&this.showPageSize&&this._combobox.setSelected(this.selectedPageSizeItem)}emitPageChange(){this.dispatchEvent(new CustomEvent("page-change",{bubbles:!0,composed:!0,detail:{page:this.page,pageSize:this.pageSize,totalPages:this.totalPages}}))}goToPage(t){const a=Math.max(1,Math.min(t,this.totalPages));a!==this.page&&(this.page=a,this.emitPageChange())}get pageSizeItems(){return this.pageSizeOptions.map(t=>({label:`${t} ${this.perPageLabel}`,value:t}))}get selectedPageSizeItem(){return[{label:`${this.pageSize} ${this.perPageLabel}`,value:this.pageSize}]}getPageNumbers(){const t=[],a=this.totalPages,r=this.page,s=1;if(a<=7)for(let p=1;p<=a;p++)t.push(p);else{t.push(1),r>3&&t.push("ellipsis");const p=Math.max(2,r-s),l=Math.min(a-1,r+s);for(let g=p;g<=l;g++)t.includes(g)||t.push(g);r<a-2&&t.push("ellipsis"),t.includes(a)||t.push(a)}return t}renderNavButtons(t=!1){const a=t?"pagination__btn--icon":"pagination__btn";return e.html`
2
+ <div class="pagination__nav-group">
3
+ <button
4
+ type="button"
5
+ class="${a}"
6
+ ?disabled=${!this.canGoPrev}
7
+ @click=${this.goFirst}
8
+ aria-label="İlk sayfa"
9
+ >
10
+ <ui-icon name="uil-angle-double-left" size="16"></ui-icon>
11
+ </button>
12
+ <button
13
+ type="button"
14
+ class="${a}"
15
+ ?disabled=${!this.canGoPrev}
16
+ @click=${this.goPrev}
17
+ aria-label="Önceki sayfa"
18
+ >
19
+ <ui-icon name="uil-angle-left" size="16"></ui-icon>
20
+ </button>
21
+ </div>
22
+ `}renderNavButtonsAfter(t=!1){const a=t?"pagination__btn--icon":"pagination__btn";return e.html`
23
+ <div class="pagination__nav-group">
24
+ <button
25
+ type="button"
26
+ class="${a}"
27
+ ?disabled=${!this.canGoNext}
28
+ @click=${this.goNext}
29
+ aria-label="Sonraki sayfa"
30
+ >
31
+ <ui-icon name="uil-angle-right" size="16"></ui-icon>
32
+ </button>
33
+ <button
34
+ type="button"
35
+ class="${a}"
36
+ ?disabled=${!this.canGoNext}
37
+ @click=${this.goLast}
38
+ aria-label="Son sayfa"
39
+ >
40
+ <ui-icon name="uil-angle-double-right" size="16"></ui-icon>
41
+ </button>
42
+ </div>
43
+ `}renderPageInput(){return e.html`
44
+ <div class="pagination__input-container">
45
+ <input
46
+ type="number"
47
+ class="pagination__input"
48
+ .value=${h.live(this.inputValue)}
49
+ min="1"
50
+ max=${this.totalPages}
51
+ ?disabled=${this.disabled}
52
+ @input=${this.handleInputChange}
53
+ @blur=${this.handleInputBlur}
54
+ @keydown=${this.handleInputKeydown}
55
+ aria-label="Sayfa numarası"
56
+ />
57
+ </div>
58
+ <span class="pagination__separator">/ ${this.totalPages}</span>
59
+ `}renderPrevNextButtons(){return e.html`
60
+ <button
61
+ type="button"
62
+ class="pagination__btn--text"
63
+ ?disabled=${!this.canGoPrev}
64
+ @click=${this.goPrev}
65
+ >
66
+ <ui-icon name="uil-angle-left" size="16"></ui-icon>
67
+ ${this.prevLabel}
68
+ </button>
69
+ <button
70
+ type="button"
71
+ class="pagination__btn--text"
72
+ ?disabled=${!this.canGoNext}
73
+ @click=${this.goNext}
74
+ >
75
+ ${this.nextLabel}
76
+ <ui-icon name="uil-angle-right" size="16"></ui-icon>
77
+ </button>
78
+ `}renderPageInfo(){return e.html`
79
+ <div class="pagination__page-info">
80
+ <span class="pagination__page-info-text">${this.pageLabel} ${this.page}</span>
81
+ <span class="pagination__page-info-separator">/</span>
82
+ <span class="pagination__page-info-text">${this.totalPages}</span>
83
+ </div>
84
+ `}renderNumberButtons(){const t=this.getPageNumbers();return e.html`
85
+ ${t.map((a,r)=>a==="ellipsis"?e.html`
86
+ <span
87
+ class="pagination__btn--number pagination__btn--ellipsis"
88
+ key="ellipsis-${r}"
89
+ >...</span>
90
+ `:e.html`
91
+ <button
92
+ type="button"
93
+ class="pagination__btn--number ${a===this.page?"pagination__btn--active":""}"
94
+ ?disabled=${this.disabled}
95
+ @click=${()=>this.goToPage(a)}
96
+ aria-label="Sayfa ${a}"
97
+ aria-current=${a===this.page?"page":e.nothing}
98
+ >
99
+ ${a}
100
+ </button>
101
+ `)}
102
+ `}renderPageSizeDropdown(){return this.showPageSize?e.html`
103
+ <div class="pagination__page-size">
104
+ <logosphere-combobox
105
+ .items=${this.pageSizeItems}
106
+ .disabled=${this.disabled}
107
+ .clearable=${!1}
108
+ optionLabel="label"
109
+ optionValue="value"
110
+ placeholder=""
111
+ @change=${this.handlePageSizeChange}
112
+ ></logosphere-combobox>
113
+ </div>
114
+ `:e.nothing}renderTotalInfo(){return this.showTotal?e.html`
115
+ <div class="pagination__total">
116
+ <span class="pagination__total-separator">/</span>
117
+ <span class="pagination__total-text">${this.total} ${this.totalLabel}</span>
118
+ </div>
119
+ `:e.nothing}renderDefault(){return e.html`
120
+ <div class="pagination__nav">
121
+ ${this.renderNavButtons()}
122
+ ${this.renderPageInput()}
123
+ ${this.renderNavButtonsAfter()}
124
+ </div>
125
+ <div class="pagination__info">
126
+ ${this.renderPageSizeDropdown()}
127
+ ${this.renderTotalInfo()}
128
+ </div>
129
+ `}renderPrevNext(){return e.html`
130
+ <div class="pagination__nav" style="gap: 8px;">
131
+ ${this.renderPrevNextButtons()}
132
+ </div>
133
+ <div class="pagination__info">
134
+ ${this.renderPageInfo()}
135
+ </div>
136
+ `}renderPrevNextInverted(){return e.html`
137
+ <div class="pagination__info">
138
+ ${this.renderPageInfo()}
139
+ </div>
140
+ <div class="pagination__nav" style="gap: 8px;">
141
+ ${this.renderPrevNextButtons()}
142
+ </div>
143
+ `}renderPrevNextOnly(){return e.html`
144
+ <div class="pagination__nav" style="gap: 8px; margin-left: auto;">
145
+ ${this.renderPrevNextButtons()}
146
+ </div>
147
+ `}renderNumberButtonsVariant(){return e.html`
148
+ <div class="pagination__nav">
149
+ ${this.renderNavButtons(!0)}
150
+ ${this.renderNumberButtons()}
151
+ ${this.renderNavButtonsAfter(!0)}
152
+ </div>
153
+ <div class="pagination__info">
154
+ ${this.renderPageSizeDropdown()}
155
+ ${this.renderTotalInfo()}
156
+ </div>
157
+ `}render(){const t=this.variant==="prev-next-only"?"pagination--justify-end":"";return e.html`
158
+ <nav
159
+ class="pagination ${t}"
160
+ role="navigation"
161
+ aria-label="Sayfalama"
162
+ >
163
+ ${this.variant==="default"?this.renderDefault():e.nothing}
164
+ ${this.variant==="prev-next"?this.renderPrevNext():e.nothing}
165
+ ${this.variant==="prev-next-inverted"?this.renderPrevNextInverted():e.nothing}
166
+ ${this.variant==="prev-next-only"?this.renderPrevNextOnly():e.nothing}
167
+ ${this.variant==="number-buttons"?this.renderNumberButtonsVariant():e.nothing}
168
+ </nav>
169
+ `}};c.styles=[e.css`${e.unsafeCSS(u)}`];let i=c;o([n.property({type:String})],i.prototype,"variant");o([n.property({type:Number})],i.prototype,"page");o([n.property({type:Number})],i.prototype,"pageSize");o([n.property({type:Number})],i.prototype,"total");o([n.property({type:Array})],i.prototype,"pageSizeOptions");o([n.property({type:Boolean})],i.prototype,"showPageSize");o([n.property({type:Boolean})],i.prototype,"showTotal");o([n.property({type:Boolean})],i.prototype,"disabled");o([n.property({type:String})],i.prototype,"prevLabel");o([n.property({type:String})],i.prototype,"nextLabel");o([n.property({type:String})],i.prototype,"pageLabel");o([n.property({type:String})],i.prototype,"perPageLabel");o([n.property({type:String})],i.prototype,"totalLabel");o([n.state()],i.prototype,"inputValue");o([n.query("logosphere-combobox")],i.prototype,"_combobox");customElements.get("logosphere-pagination")||customElements.define("logosphere-pagination",i);exports.Pagination=i;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./pagination-Nnzacqdo.cjs");exports.Pagination=i.Pagination;
@@ -0,0 +1,4 @@
1
+ import { P as i } from "./pagination-CjXvpE2j.js";
2
+ export {
3
+ i as Pagination
4
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";const i=require("lit"),o=require("lit/decorators.js"),d=require("@popperjs/core"),h=':host{display:inline-block}.popover__wrapper{position:relative;display:var(--popover-wrapper-display, inline-block);width:var(--popover-wrapper-width, auto);min-width:var(--popover-wrapper-min-width, auto);max-width:var(--popover-wrapper-max-width, none);font-family:var(--font-family-base)}.popover__trigger{display:var(--popover-trigger-display, inline-flex);width:var(--popover-trigger-width, auto);min-width:var(--popover-trigger-min-width, auto);max-width:var(--popover-trigger-max-width, none)}.popover__panel{position:relative;overflow:visible;z-index:var(--z-index-popover);min-width:var(--popover-min-width, 240px);max-width:var(--popover-max-width, none);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-body-bg);box-shadow:var(--shadow-md)}.popover__content{position:relative;z-index:1;background-color:var(--color-body-bg);border-radius:var(--radius-md);overflow:hidden}.popover__content:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background-color:var(--color-body-bg);border-radius:var(--radius-md) var(--radius-md) 0 0;z-index:1;pointer-events:none}.popover__content>*{position:relative;z-index:2}.popover__title{padding:10px var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-body-text)}.popover__body{padding:var(--popover-body-padding, var(--spacing-3));font-size:var(--font-size-sm);color:var(--color-secondary)}.popover__body--with-border{border-top:1px solid var(--color-border)}.popper-arrow{position:absolute;width:12px;height:12px;pointer-events:none;z-index:0}.popper-arrow:before{content:"";position:absolute;inset:0;background:var(--color-border);transform:rotate(45deg)}.popper-arrow:after{content:"";position:absolute;inset:1px;background:var(--color-body-bg);transform:rotate(45deg)}[data-popper]{position:relative;overflow:visible}[data-popper-placement^=bottom]>.popper-arrow{top:-6px;left:50%;transform:translate(-50%,-50%)}[data-popper-placement^=top]>.popper-arrow{bottom:-6px;left:50%;transform:translate(-50%,50%)}[data-popper-placement^=left]>.popper-arrow{right:-6px;top:50%;transform:translate(50%,-50%)}[data-popper-placement^=right]>.popper-arrow{left:-6px;top:50%;transform:translate(-50%,-50%)}';var v=Object.defineProperty,c=Object.getOwnPropertyDescriptor,r=(n,e,t,s)=>{for(var p=s>1?void 0:s?c(e,t):e,a=n.length-1,l;a>=0;a--)(l=n[a])&&(p=(s?l(e,t,p):l(p))||p);return s&&p&&v(e,t,p),p};exports.Popover=class extends i.LitElement{constructor(){super(...arguments),this.title="",this.trigger="click",this.placement="bottom",this.offset=8,this.delay=0,this.open=!1,this.closeOnOutsideClick=!0,this.noArrow=!1,this.disabled=!1,this.handleDocumentClick=e=>{!this.open||!this.closeOnOutsideClick||e.composedPath().includes(this)||this.setOpen(!1)},this.toggle=e=>{this.disabled||(this.trigger==="click"||this.trigger==="both")&&(e?.stopPropagation(),this.clearHoverOpenTimer(),this.setOpen(!this.open))},this.handleMouseEnter=()=>{if(this.disabled||this.trigger!=="hover"&&this.trigger!=="both")return;this.clearHoverOpenTimer();const e=Math.max(0,this.delay);if(e===0){this.setOpen(!0);return}this.hoverOpenTimer=setTimeout(()=>{this.hoverOpenTimer=void 0,this.setOpen(!0)},e)},this.handleMouseLeave=()=>{this.clearHoverOpenTimer(),!this.disabled&&(this.trigger==="hover"||this.trigger==="both")&&this.setOpen(!1)}}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.handleDocumentClick,{capture:!0})}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.handleDocumentClick,{capture:!0}),this.clearHoverOpenTimer(),this.destroyPopper()}updated(e){super.updated(e);const t=e.has("placement"),s=e.has("open")&&this.open;if(e.has("open")&&!this.open){this.destroyPopper();return}(s||t)&&this.open&&this.updatePopper()}setOpen(e){this.disabled&&(e=!1),e||this.clearHoverOpenTimer(),this.open!==e&&(this.open=e,this.dispatchEvent(new CustomEvent(e?"popover-open":"popover-close",{bubbles:!0,composed:!0})))}clearHoverOpenTimer(){this.hoverOpenTimer&&(clearTimeout(this.hoverOpenTimer),this.hoverOpenTimer=void 0)}updatePopper(){if(!this.isConnected||!this.open)return;const e=this.triggerElement,t=this.popperElement;if(!(!e||!t)){if(this.popperInstance){this.popperInstance.setOptions({placement:this.placement,modifiers:this.getPopperModifiers(),strategy:"fixed"}),this.popperInstance.update();return}this.popperInstance=d.createPopper(e,t,{placement:this.placement,strategy:"fixed",modifiers:this.getPopperModifiers()})}}getPopperModifiers(){const e=[{name:"offset",options:{offset:[0,this.offset]}},{name:"preventOverflow",options:{padding:8}},{name:"flip",options:{padding:8}}];return!this.noArrow&&this.popperArrowElement&&e.push({name:"arrow",options:{element:this.popperArrowElement,padding:8}}),e}destroyPopper(){this.popperInstance&&(this.popperInstance.destroy(),this.popperInstance=void 0)}render(){const e=!!this.title;return i.html`
2
+ <div
3
+ class="popover__wrapper"
4
+ @mouseenter=${this.handleMouseEnter}
5
+ @mouseleave=${this.handleMouseLeave}
6
+ >
7
+ <div class="popover__trigger" part="trigger" @click=${this.toggle}>
8
+ <slot name="trigger"></slot>
9
+ </div>
10
+
11
+ ${this.open?i.html`
12
+ <div
13
+ data-popper
14
+ class="popover__panel"
15
+ role="dialog"
16
+ aria-hidden=${this.open?"false":"true"}
17
+ >
18
+ ${this.noArrow?null:i.html`<div data-popper-arrow class="popper-arrow"></div>`}
19
+ <div class="popover__content">
20
+ ${this.title?i.html`
21
+ <div class="popover__title">${this.title}</div>
22
+ `:null}
23
+ <div class="popover__body ${e?"popover__body--with-border":""}">
24
+ <slot></slot>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ `:null}
29
+ </div>
30
+ `}};exports.Popover.styles=[i.css`${i.unsafeCSS(h)}`];r([o.property({type:String})],exports.Popover.prototype,"title",2);r([o.property({type:String})],exports.Popover.prototype,"trigger",2);r([o.property({type:String})],exports.Popover.prototype,"placement",2);r([o.property({type:Number})],exports.Popover.prototype,"offset",2);r([o.property({type:Number})],exports.Popover.prototype,"delay",2);r([o.property({type:Boolean,reflect:!0})],exports.Popover.prototype,"open",2);r([o.property({type:Boolean})],exports.Popover.prototype,"closeOnOutsideClick",2);r([o.property({type:Boolean})],exports.Popover.prototype,"noArrow",2);r([o.property({type:Boolean,reflect:!0})],exports.Popover.prototype,"disabled",2);r([o.query('[part="trigger"]')],exports.Popover.prototype,"triggerElement",2);r([o.query("[data-popper]")],exports.Popover.prototype,"popperElement",2);r([o.query("[data-popper-arrow]")],exports.Popover.prototype,"popperArrowElement",2);exports.Popover=r([o.customElement("logosphere-popover")],exports.Popover);
@@ -0,0 +1,161 @@
1
+ import { unsafeCSS as c, css as v, LitElement as m, html as a } from "lit";
2
+ import { property as p, query as h, customElement as f } from "lit/decorators.js";
3
+ import { createPopper as u } from "@popperjs/core";
4
+ const g = ':host{display:inline-block}.popover__wrapper{position:relative;display:var(--popover-wrapper-display, inline-block);width:var(--popover-wrapper-width, auto);min-width:var(--popover-wrapper-min-width, auto);max-width:var(--popover-wrapper-max-width, none);font-family:var(--font-family-base)}.popover__trigger{display:var(--popover-trigger-display, inline-flex);width:var(--popover-trigger-width, auto);min-width:var(--popover-trigger-min-width, auto);max-width:var(--popover-trigger-max-width, none)}.popover__panel{position:relative;overflow:visible;z-index:var(--z-index-popover);min-width:var(--popover-min-width, 240px);max-width:var(--popover-max-width, none);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-body-bg);box-shadow:var(--shadow-md)}.popover__content{position:relative;z-index:1;background-color:var(--color-body-bg);border-radius:var(--radius-md);overflow:hidden}.popover__content:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background-color:var(--color-body-bg);border-radius:var(--radius-md) var(--radius-md) 0 0;z-index:1;pointer-events:none}.popover__content>*{position:relative;z-index:2}.popover__title{padding:10px var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-body-text)}.popover__body{padding:var(--popover-body-padding, var(--spacing-3));font-size:var(--font-size-sm);color:var(--color-secondary)}.popover__body--with-border{border-top:1px solid var(--color-border)}.popper-arrow{position:absolute;width:12px;height:12px;pointer-events:none;z-index:0}.popper-arrow:before{content:"";position:absolute;inset:0;background:var(--color-border);transform:rotate(45deg)}.popper-arrow:after{content:"";position:absolute;inset:1px;background:var(--color-body-bg);transform:rotate(45deg)}[data-popper]{position:relative;overflow:visible}[data-popper-placement^=bottom]>.popper-arrow{top:-6px;left:50%;transform:translate(-50%,-50%)}[data-popper-placement^=top]>.popper-arrow{bottom:-6px;left:50%;transform:translate(-50%,50%)}[data-popper-placement^=left]>.popper-arrow{right:-6px;top:50%;transform:translate(50%,-50%)}[data-popper-placement^=right]>.popper-arrow{left:-6px;top:50%;transform:translate(-50%,-50%)}';
5
+ var b = Object.defineProperty, w = Object.getOwnPropertyDescriptor, o = (e, r, s, n) => {
6
+ for (var i = n > 1 ? void 0 : n ? w(r, s) : r, l = e.length - 1, d; l >= 0; l--)
7
+ (d = e[l]) && (i = (n ? d(r, s, i) : d(i)) || i);
8
+ return n && i && b(r, s, i), i;
9
+ };
10
+ let t = class extends m {
11
+ constructor() {
12
+ super(...arguments), this.title = "", this.trigger = "click", this.placement = "bottom", this.offset = 8, this.delay = 0, this.open = !1, this.closeOnOutsideClick = !0, this.noArrow = !1, this.disabled = !1, this.handleDocumentClick = (e) => {
13
+ !this.open || !this.closeOnOutsideClick || e.composedPath().includes(this) || this.setOpen(!1);
14
+ }, this.toggle = (e) => {
15
+ this.disabled || (this.trigger === "click" || this.trigger === "both") && (e?.stopPropagation(), this.clearHoverOpenTimer(), this.setOpen(!this.open));
16
+ }, this.handleMouseEnter = () => {
17
+ if (this.disabled || this.trigger !== "hover" && this.trigger !== "both") return;
18
+ this.clearHoverOpenTimer();
19
+ const e = Math.max(0, this.delay);
20
+ if (e === 0) {
21
+ this.setOpen(!0);
22
+ return;
23
+ }
24
+ this.hoverOpenTimer = setTimeout(() => {
25
+ this.hoverOpenTimer = void 0, this.setOpen(!0);
26
+ }, e);
27
+ }, this.handleMouseLeave = () => {
28
+ this.clearHoverOpenTimer(), !this.disabled && (this.trigger === "hover" || this.trigger === "both") && this.setOpen(!1);
29
+ };
30
+ }
31
+ connectedCallback() {
32
+ super.connectedCallback(), document.addEventListener("click", this.handleDocumentClick, { capture: !0 });
33
+ }
34
+ disconnectedCallback() {
35
+ super.disconnectedCallback(), document.removeEventListener("click", this.handleDocumentClick, { capture: !0 }), this.clearHoverOpenTimer(), this.destroyPopper();
36
+ }
37
+ updated(e) {
38
+ super.updated(e);
39
+ const r = e.has("placement"), s = e.has("open") && this.open;
40
+ if (e.has("open") && !this.open) {
41
+ this.destroyPopper();
42
+ return;
43
+ }
44
+ (s || r) && this.open && this.updatePopper();
45
+ }
46
+ setOpen(e) {
47
+ this.disabled && (e = !1), e || this.clearHoverOpenTimer(), this.open !== e && (this.open = e, this.dispatchEvent(new CustomEvent(e ? "popover-open" : "popover-close", {
48
+ bubbles: !0,
49
+ composed: !0
50
+ })));
51
+ }
52
+ clearHoverOpenTimer() {
53
+ this.hoverOpenTimer && (clearTimeout(this.hoverOpenTimer), this.hoverOpenTimer = void 0);
54
+ }
55
+ updatePopper() {
56
+ if (!this.isConnected || !this.open) return;
57
+ const e = this.triggerElement, r = this.popperElement;
58
+ if (!(!e || !r)) {
59
+ if (this.popperInstance) {
60
+ this.popperInstance.setOptions({
61
+ placement: this.placement,
62
+ modifiers: this.getPopperModifiers(),
63
+ strategy: "fixed"
64
+ }), this.popperInstance.update();
65
+ return;
66
+ }
67
+ this.popperInstance = u(e, r, {
68
+ placement: this.placement,
69
+ strategy: "fixed",
70
+ modifiers: this.getPopperModifiers()
71
+ });
72
+ }
73
+ }
74
+ getPopperModifiers() {
75
+ const e = [
76
+ { name: "offset", options: { offset: [0, this.offset] } },
77
+ { name: "preventOverflow", options: { padding: 8 } },
78
+ { name: "flip", options: { padding: 8 } }
79
+ ];
80
+ return !this.noArrow && this.popperArrowElement && e.push({ name: "arrow", options: { element: this.popperArrowElement, padding: 8 } }), e;
81
+ }
82
+ destroyPopper() {
83
+ this.popperInstance && (this.popperInstance.destroy(), this.popperInstance = void 0);
84
+ }
85
+ render() {
86
+ const e = !!this.title;
87
+ return a`
88
+ <div
89
+ class="popover__wrapper"
90
+ @mouseenter=${this.handleMouseEnter}
91
+ @mouseleave=${this.handleMouseLeave}
92
+ >
93
+ <div class="popover__trigger" part="trigger" @click=${this.toggle}>
94
+ <slot name="trigger"></slot>
95
+ </div>
96
+
97
+ ${this.open ? a`
98
+ <div
99
+ data-popper
100
+ class="popover__panel"
101
+ role="dialog"
102
+ aria-hidden=${this.open ? "false" : "true"}
103
+ >
104
+ ${this.noArrow ? null : a`<div data-popper-arrow class="popper-arrow"></div>`}
105
+ <div class="popover__content">
106
+ ${this.title ? a`
107
+ <div class="popover__title">${this.title}</div>
108
+ ` : null}
109
+ <div class="popover__body ${e ? "popover__body--with-border" : ""}">
110
+ <slot></slot>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ ` : null}
115
+ </div>
116
+ `;
117
+ }
118
+ };
119
+ t.styles = [v`${c(g)}`];
120
+ o([
121
+ p({ type: String })
122
+ ], t.prototype, "title", 2);
123
+ o([
124
+ p({ type: String })
125
+ ], t.prototype, "trigger", 2);
126
+ o([
127
+ p({ type: String })
128
+ ], t.prototype, "placement", 2);
129
+ o([
130
+ p({ type: Number })
131
+ ], t.prototype, "offset", 2);
132
+ o([
133
+ p({ type: Number })
134
+ ], t.prototype, "delay", 2);
135
+ o([
136
+ p({ type: Boolean, reflect: !0 })
137
+ ], t.prototype, "open", 2);
138
+ o([
139
+ p({ type: Boolean })
140
+ ], t.prototype, "closeOnOutsideClick", 2);
141
+ o([
142
+ p({ type: Boolean })
143
+ ], t.prototype, "noArrow", 2);
144
+ o([
145
+ p({ type: Boolean, reflect: !0 })
146
+ ], t.prototype, "disabled", 2);
147
+ o([
148
+ h('[part="trigger"]')
149
+ ], t.prototype, "triggerElement", 2);
150
+ o([
151
+ h("[data-popper]")
152
+ ], t.prototype, "popperElement", 2);
153
+ o([
154
+ h("[data-popper-arrow]")
155
+ ], t.prototype, "popperArrowElement", 2);
156
+ t = o([
157
+ f("logosphere-popover")
158
+ ], t);
159
+ export {
160
+ t as P
161
+ };
package/dist/popover.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./popover-C2p5Pmts.cjs");Object.defineProperty(exports,"Popover",{enumerable:!0,get:()=>e.Popover});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./popover-CrXUbUR-.cjs");Object.defineProperty(exports,"Popover",{enumerable:!0,get:()=>e.Popover});
package/dist/popover.js CHANGED
@@ -1,4 +1,4 @@
1
- import { P as e } from "./popover-B7tCqk3R.js";
1
+ import { P as e } from "./popover-M5ZcS5rj.js";
2
2
  export {
3
3
  e as Popover
4
4
  };
@@ -0,0 +1 @@
1
+ export { UiIcon } from "./ui-icon.js";
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Shared Button Types
3
+ * Used by Button, SplitButton, and any other component that needs button-like sizing/theming.
4
+ */
5
+ export type ButtonVariant = "solid" | "outline" | "text";
6
+ export type ButtonSize = "sm" | "md" | "lg";
7
+ export type ButtonTheme = "primary" | "secondary" | "success" | "danger" | "info" | "warning" | "light" | "dark";
@@ -0,0 +1,108 @@
1
+ "use strict";const r=require("lit"),s=require("lit/decorators.js"),u=':host{display:block}.slider{position:relative;width:100%;font-family:var(--font-family-base)}.slider--has-tooltip .slider__track-area{margin-top:var(--spacing-8)}.slider__track-area{position:relative;height:20px;display:flex;align-items:center}.slider__track{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:6px;border-radius:var(--radius-full);background:var(--color-border);pointer-events:none}.slider__fill{position:absolute;top:50%;transform:translateY(-50%);height:6px;border-radius:var(--radius-full);background:var(--color-primary);pointer-events:none}.slider__input{position:absolute;top:50%;transform:translateY(-50%);left:0;width:100%;height:6px;margin:0;padding:0;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer;pointer-events:none;outline:none}.slider__input::-webkit-slider-runnable-track{background:transparent;height:6px}.slider__input::-moz-range-track{background:transparent;height:6px}.slider__input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;margin-top:-5px;border-radius:50%;background:var(--color-body-bg);border:2px solid var(--color-border);pointer-events:all;cursor:pointer;box-shadow:var(--shadow-sm)}.slider__input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-body-bg);border:2px solid var(--color-border);pointer-events:all;cursor:pointer;box-shadow:var(--shadow-sm)}.slider__input:not(:disabled):focus-visible::-webkit-slider-thumb{outline:none;box-shadow:0 0 0 4px var(--color-primary-bg-subtle)}.slider__input:not(:disabled):focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px var(--color-primary-bg-subtle)}.slider--disabled .slider__track{background:var(--color-border)}.slider--disabled .slider__fill{background:var(--color-primary-disabled)}.slider--disabled .slider__input{cursor:not-allowed}.slider--disabled .slider__input::-webkit-slider-thumb{background:var(--color-body-bg);border-color:var(--color-border);pointer-events:all;cursor:not-allowed;box-shadow:none}.slider--disabled .slider__input::-moz-range-thumb{background:var(--color-body-bg);border-color:var(--color-secondary-disabled);cursor:not-allowed;box-shadow:none}.slider--disabled .slider__scale-item{color:var(--color-secondary-disabled)}.slider--disabled .slider__scale-item:before{background:var(--color-secondary-disabled)}.slider--disabled .slider__tooltip{color:var(--color-secondary-disabled);border-color:var(--color-secondary-disabled)}.slider__tooltip{position:absolute;top:-34px;transform:translate(-50%);background:var(--color-body-bg);border:1px solid var(--color-border);color:var(--color-body-color);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-family-base);white-space:nowrap;pointer-events:none;z-index:var(--z-index-tooltip);line-height:var(--line-height-normal)}.slider__scale{position:relative;height:26px;margin-top:var(--spacing-1)}.slider__scale-item{position:absolute;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);color:var(--color-tertiary);font-family:var(--font-family-base);font-weight:var(--font-weight-regular);white-space:nowrap;line-height:1;-webkit-user-select:none;user-select:none}.slider__scale-item:before{content:"";display:block;width:1px;height:6px;background:var(--color-border);flex-shrink:0}.slider__input--start,.slider__input--end{position:absolute;pointer-events:none}.slider__input--start::-webkit-slider-thumb,.slider__input--end::-webkit-slider-thumb{pointer-events:all}.slider__input--start::-moz-range-thumb,.slider__input--end::-moz-range-thumb{pointer-events:all}';var c=Object.defineProperty,_=Object.getOwnPropertyDescriptor,a=(d,t,e,i)=>{for(var n=i>1?void 0:i?_(t,e):t,l=d.length-1,o;l>=0;l--)(o=d[l])&&(n=(i?o(t,e,n):o(n))||n);return i&&n&&c(t,e,n),n};exports.Slider=class extends r.LitElement{constructor(){super(...arguments),this.value=50,this.min=0,this.max=100,this.step=1,this.disabled=!1,this.range=!1,this.rangeStart=25,this.rangeEnd=75,this.minDistance=0,this.tooltip="never",this.showScale=!1,this.percentage=!1,this.labels=[],this._hoverStart=!1,this._hoverEnd=!1}get _isLabeled(){return this.labels.length>0}get _effectiveStep(){return this._isLabeled&&this.labels.length>1?(this.max-this.min)/(this.labels.length-1):this.step}get _valuePct(){return(this.value-this.min)/(this.max-this.min)*100}get _startPct(){return(this.rangeStart-this.min)/(this.max-this.min)*100}get _endPct(){return(this.rangeEnd-this.min)/(this.max-this.min)*100}get _displayValue(){if(this._isLabeled){const t=Math.round((this.value-this.min)/this._effectiveStep);return this.labels[Math.min(t,this.labels.length-1)]??String(this.value)}return this.percentage?`${Math.round(this.value)}%`:String(this.value)}get _displayStart(){return this.percentage?`${Math.round(this.rangeStart)}%`:String(this.rangeStart)}get _displayEnd(){return this.percentage?`${Math.round(this.rangeEnd)}%`:String(this.rangeEnd)}_thumbLeft(t){return`calc(${t}% + ${(.5-t/100)*16}px)`}_onSingleChange(t){const e=t.target;this.value=Number(e.value),this._emit("change",{value:this.value})}_onStartChange(t){const e=t.target,i=Math.min(Number(e.value),this.rangeEnd-this.minDistance);this.rangeStart=i,this._emit("change",{rangeStart:this.rangeStart,rangeEnd:this.rangeEnd})}_onEndChange(t){const e=t.target,i=Math.max(Number(e.value),this.rangeStart+this.minDistance);this.rangeEnd=i,this._emit("change",{rangeStart:this.rangeStart,rangeEnd:this.rangeEnd})}_emit(t,e){this.dispatchEvent(new CustomEvent(t,{detail:e,bubbles:!0,composed:!0}))}_renderFill(){return this.range?r.html`
2
+ <div
3
+ class="slider__fill"
4
+ style="left: ${this._startPct}%; width: ${this._endPct-this._startPct}%"
5
+ ></div>
6
+ `:r.html`<div class="slider__fill" style="width: ${this._valuePct}%"></div>`}_renderTooltip(t,e,i){return this.tooltip==="never"||this.tooltip==="hover"&&!i?r.nothing:r.html`
7
+ <div class="slider__tooltip" style="left: ${this._thumbLeft(e)}">${t}</div>
8
+ `}_renderScale(){if(!this.showScale)return r.nothing;const t=this.max-this.min,e=Math.min(Math.round(t/this.step)+1,11),i=Array.from({length:e},(n,l)=>{const o=e>1?l/(e-1)*100:0,h=this.min+o/100*t,p=this.percentage?`${Math.round(h)}%`:String(Math.round(h));return{pct:o,display:p}});return r.html`
9
+ <div class="slider__scale">
10
+ ${i.map(({pct:n,display:l})=>r.html`
11
+ <span class="slider__scale-item" style="left: ${this._thumbLeft(n)}">${l}</span>
12
+ `)}
13
+ </div>
14
+ `}_renderLabels(){if(!this._isLabeled)return r.nothing;const t=this.labels.length;return r.html`
15
+ <div class="slider__scale">
16
+ ${this.labels.map((e,i)=>{const n=t>1?i/(t-1)*100:0;return r.html`
17
+ <span class="slider__scale-item" style="left: ${this._thumbLeft(n)}">${e}</span>
18
+ `})}
19
+ </div>
20
+ `}_renderSingleInput(){const t=this.tooltip==="always"||this.tooltip==="hover"&&this._hoverStart;return r.html`
21
+ <div class="slider__track-area">
22
+ <div class="slider__track"></div>
23
+ ${this._renderFill()}
24
+ ${this._renderTooltip(this._displayValue,this._valuePct,t)}
25
+ <input
26
+ type="range"
27
+ class="slider__input"
28
+ .value=${String(this.value)}
29
+ min=${this.min}
30
+ max=${this.max}
31
+ step=${this._effectiveStep}
32
+ ?disabled=${this.disabled}
33
+ @input=${this._onSingleChange}
34
+ @mouseenter=${()=>{this._hoverStart=!0}}
35
+ @mouseleave=${()=>{this._hoverStart=!1}}
36
+ @focus=${()=>{this._hoverStart=!0}}
37
+ @blur=${()=>{this._hoverStart=!1}}
38
+ aria-label="Slider"
39
+ aria-valuemin=${this.min}
40
+ aria-valuemax=${this.max}
41
+ aria-valuenow=${this.value}
42
+ aria-valuetext=${this._displayValue}
43
+ aria-disabled=${this.disabled}
44
+ />
45
+ </div>
46
+ `}_renderRangeInputs(){const t=this.tooltip==="always"||this.tooltip==="hover"&&this._hoverStart,e=this.tooltip==="always"||this.tooltip==="hover"&&this._hoverEnd,i=this._startPct>=100?4:3,n=this._startPct>=100?3:4;return r.html`
47
+ <div class="slider__track-area">
48
+ <div class="slider__track"></div>
49
+ ${this._renderFill()}
50
+ ${this._renderTooltip(this._displayStart,this._startPct,t)}
51
+ ${this._renderTooltip(this._displayEnd,this._endPct,e)}
52
+ <input
53
+ type="range"
54
+ class="slider__input slider__input--start"
55
+ style="z-index: ${i}"
56
+ .value=${String(this.rangeStart)}
57
+ min=${this.min}
58
+ max=${this.max}
59
+ step=${this._effectiveStep}
60
+ ?disabled=${this.disabled}
61
+ @input=${this._onStartChange}
62
+ @mouseenter=${()=>{this._hoverStart=!0}}
63
+ @mouseleave=${()=>{this._hoverStart=!1}}
64
+ @focus=${()=>{this._hoverStart=!0}}
65
+ @blur=${()=>{this._hoverStart=!1}}
66
+ aria-label="Range start"
67
+ aria-valuemin=${this.min}
68
+ aria-valuemax=${this.max}
69
+ aria-valuenow=${this.rangeStart}
70
+ aria-valuetext=${this._displayStart}
71
+ aria-disabled=${this.disabled}
72
+ />
73
+ <input
74
+ type="range"
75
+ class="slider__input slider__input--end"
76
+ style="z-index: ${n}"
77
+ .value=${String(this.rangeEnd)}
78
+ min=${this.min}
79
+ max=${this.max}
80
+ step=${this._effectiveStep}
81
+ ?disabled=${this.disabled}
82
+ @input=${this._onEndChange}
83
+ @mouseenter=${()=>{this._hoverEnd=!0}}
84
+ @mouseleave=${()=>{this._hoverEnd=!1}}
85
+ @focus=${()=>{this._hoverEnd=!0}}
86
+ @blur=${()=>{this._hoverEnd=!1}}
87
+ aria-label="Range end"
88
+ aria-valuemin=${this.min}
89
+ aria-valuemax=${this.max}
90
+ aria-valuenow=${this.rangeEnd}
91
+ aria-valuetext=${this._displayEnd}
92
+ aria-disabled=${this.disabled}
93
+ />
94
+ </div>
95
+ `}render(){const t=this.tooltip!=="never",e=this.showScale||this._isLabeled;return r.html`
96
+ <div
97
+ class="slider
98
+ ${this.disabled?"slider--disabled":""}
99
+ ${t?"slider--has-tooltip":""}
100
+ ${e?"slider--has-below":""}
101
+ "
102
+ role="presentation"
103
+ >
104
+ ${this.range?this._renderRangeInputs():this._renderSingleInput()}
105
+ ${this._renderScale()}
106
+ ${this._renderLabels()}
107
+ </div>
108
+ `}};exports.Slider.styles=[r.css`${r.unsafeCSS(u)}`];a([s.property({type:Number})],exports.Slider.prototype,"value",2);a([s.property({type:Number})],exports.Slider.prototype,"min",2);a([s.property({type:Number})],exports.Slider.prototype,"max",2);a([s.property({type:Number})],exports.Slider.prototype,"step",2);a([s.property({type:Boolean})],exports.Slider.prototype,"disabled",2);a([s.property({type:Boolean})],exports.Slider.prototype,"range",2);a([s.property({type:Number})],exports.Slider.prototype,"rangeStart",2);a([s.property({type:Number})],exports.Slider.prototype,"rangeEnd",2);a([s.property({type:Number})],exports.Slider.prototype,"minDistance",2);a([s.property({type:String})],exports.Slider.prototype,"tooltip",2);a([s.property({type:Boolean})],exports.Slider.prototype,"showScale",2);a([s.property({type:Boolean})],exports.Slider.prototype,"percentage",2);a([s.property({type:Array})],exports.Slider.prototype,"labels",2);a([s.state()],exports.Slider.prototype,"_hoverStart",2);a([s.state()],exports.Slider.prototype,"_hoverEnd",2);exports.Slider=a([s.customElement("logosphere-slider")],exports.Slider);