@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,60 @@
1
+ "use strict";const n=require("lit"),s=require("lit/decorators.js"),y=require("lit/directives/live.js");require("./formfield-JXiv9mvJ.cjs");require("./ui-icon-DWl7I5BQ.cjs");const g=":host{display:block}.input__field{width:100%;background:transparent;border:none;outline:none;font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-body-text);box-sizing:border-box;line-height:1.5}.input__field::placeholder{color:var(--color-tertiary)}.input__field:disabled{cursor:not-allowed}.input__field--default{height:var(--input-field-height, 16px)}.input__field--large{height:var(--input-field-height-large, 24px)}.input__clear-btn,.input__password-toggle{border:none;background:transparent;color:var(--color-gray-400);cursor:pointer;padding:0;display:inline-flex;align-items:center;outline:none;flex-shrink:0;transition:color var(--transition-speed-fast) var(--transition-timing)}.input__clear-btn:hover,.input__password-toggle:hover{color:var(--color-gray-600)}";var c=Object.defineProperty,m=Object.getOwnPropertyDescriptor,i=(p,t,e,o)=>{for(var r=o>1?void 0:o?m(t,e):t,a=p.length-1,l;a>=0;a--)(l=p[a])&&(r=(o?l(t,e,r):l(r))||r);return o&&r&&c(t,e,r),r};const d={0:/\d/,a:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/};function h(p){return p.split("").filter(t=>/[a-zA-Z0-9]/.test(t)).join("")}function v(p,t){let e=0,o="";for(let r=0;r<t.length&&!(e>=p.length);r++){const a=t[r],l=d[a];if(l){for(;e<p.length&&!l.test(p[e]);)e++;e<p.length&&(o+=p[e++])}else o+=a}return o}function f(p,t,e){let o=0;for(let r=0;r<p.length;r++)if(d[t[r]]&&(o++,o===e))return r+1;return p.length}exports.LogosphereInput=class extends n.LitElement{constructor(){super(...arguments),this.value="",this.type="text",this.placeholder="",this.name="",this.autocomplete="",this.pattern="",this.size="default",this.variant="default",this.label="",this.helper="",this.error="",this.required=!1,this.disabled=!1,this.readonly=!1,this.mask="",this.showPasswordToggle=!0,this.suppressNativeValidation=!1,this.errorDisplay="always",this._internalError="",this._showPassword=!1,this._invalid=!1,this.handleInput=t=>{const e=t.target;if(this.mask){const o=e.selectionStart??e.value.length,r=h(e.value.slice(0,o)).length,a=h(e.value),l=v(a,this.mask);e.value=l,this.value=l;const u=f(l,this.mask,r);requestAnimationFrame(()=>e.setSelectionRange(u,u))}else this.value=e.value;this._internalError&&(this._internalError="",this._inputElement.setCustomValidity("")),this._invalid=!1,this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:this.value,rawValue:this.mask?h(this.value):this.value,originalEvent:t}}))},this.handleChange=t=>{const e=t.target;this.value=e.value;const o=e.checkValidity();this._invalid=!o,!o&&!this.suppressNativeValidation&&(this._internalError=e.validationMessage),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value,originalEvent:t}})),this.dispatchEvent(new CustomEvent("lgsChange",{bubbles:!0,composed:!0,detail:{value:this.value}}))},this.handleBlur=()=>{this._inputElement&&(this._invalid=!this._inputElement.checkValidity())},this.handleKeyDown=t=>{this.dispatchEvent(new CustomEvent("keydown",{bubbles:!0,composed:!0,detail:{key:t.key,originalEvent:t}}))},this.handleKeyUp=t=>{this.dispatchEvent(new CustomEvent("keyup",{bubbles:!0,composed:!0,detail:{key:t.key,originalEvent:t}}))},this.handleClear=()=>{this.value="",this._invalid=!1,this._inputElement&&(this._inputElement.value=""),this.dispatchEvent(new CustomEvent("clear",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:"",originalEvent:null}}))},this.handlePasswordToggle=()=>{this.disabled||(this._showPassword=!this._showPassword,this._inputElement?.focus())}}get inputElement(){return this._inputElement}focus(){this._inputElement?.focus()}blur(){this._inputElement?.blur()}select(){this._inputElement?.select()}setSelectionRange(t,e,o){this._inputElement?.setSelectionRange(t,e,o)}checkValidity(){return this._inputElement?.checkValidity()??!0}reportValidity(){return this._inputElement?.reportValidity()??!0}setCustomValidity(t){this._inputElement?.setCustomValidity(t),this._internalError=t,this.requestUpdate()}willUpdate(t){t.has("type")&&this.type!=="password"&&this._showPassword&&(this._showPassword=!1),t.has("showPasswordToggle")&&!this.showPasswordToggle&&this._showPassword&&(this._showPassword=!1)}get _effectivePlaceholder(){return this.placeholder?this.placeholder:this.mask?this.mask.replace(/[0a*]/g,"_"):""}render(){const t=this.error||this._internalError,e=this.errorDisplay==="on-invalid"?this._invalid?t:"":t,o=!!this.value&&!this.disabled&&!this.readonly,r=this.type==="password",a=r&&this._showPassword?"text":this.type,l=`input__field input__field--${this.size}`;return n.html`
2
+ <logosphere-formfield
3
+ .label=${this.label}
4
+ .helper=${this.helper}
5
+ .error=${e}
6
+ .required=${this.required}
7
+ .disabled=${this.disabled}
8
+ .readonly=${this.readonly}
9
+ .placeholder=${this._effectivePlaceholder}
10
+ .size=${this.size}
11
+ .variant=${this.variant}
12
+ >
13
+ <slot name="prefix" slot="prefix"></slot>
14
+ <input
15
+ class="${l}"
16
+ type=${a}
17
+ .value=${y.live(this.value)}
18
+ placeholder=${this._effectivePlaceholder||n.nothing}
19
+ name=${this.name||n.nothing}
20
+ autocomplete=${this.autocomplete||n.nothing}
21
+ ?required=${this.required}
22
+ ?disabled=${this.disabled}
23
+ ?readonly=${this.readonly}
24
+ minlength=${this.minlength??n.nothing}
25
+ maxlength=${this.maxlength??n.nothing}
26
+ pattern=${this.pattern||n.nothing}
27
+ min=${this.min??n.nothing}
28
+ max=${this.max??n.nothing}
29
+ step=${this.step??n.nothing}
30
+ @input=${this.handleInput}
31
+ @change=${this.handleChange}
32
+ @blur=${this.handleBlur}
33
+ @keydown=${this.handleKeyDown}
34
+ @keyup=${this.handleKeyUp}
35
+ />
36
+ ${o?n.html`
37
+ <button
38
+ type="button"
39
+ slot="clear"
40
+ class="input__clear-btn"
41
+ @click=${this.handleClear}
42
+ tabindex="-1"
43
+ >
44
+ <ui-icon name="uil-times" size="14"></ui-icon>
45
+ </button>
46
+ `:n.nothing}
47
+ ${r&&this.showPasswordToggle?n.html`
48
+ <button
49
+ type="button"
50
+ slot="suffix"
51
+ class="input__password-toggle"
52
+ aria-label=${this._showPassword?"Şifreyi gizle":"Şifreyi göster"}
53
+ @click=${this.handlePasswordToggle}
54
+ >
55
+ <ui-icon name=${this._showPassword?"uil-eye-slash":"uil-eye"} size="16"></ui-icon>
56
+ </button>
57
+ `:n.nothing}
58
+ <slot name="suffix" slot="suffix"></slot>
59
+ </logosphere-formfield>
60
+ `}};exports.LogosphereInput.styles=[n.css`${n.unsafeCSS(g)}`];i([s.query("input")],exports.LogosphereInput.prototype,"_inputElement",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"value",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"type",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"placeholder",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"name",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"autocomplete",2);i([s.property({type:Number})],exports.LogosphereInput.prototype,"minlength",2);i([s.property({type:Number})],exports.LogosphereInput.prototype,"maxlength",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"pattern",2);i([s.property({type:Number})],exports.LogosphereInput.prototype,"min",2);i([s.property({type:Number})],exports.LogosphereInput.prototype,"max",2);i([s.property({type:Number})],exports.LogosphereInput.prototype,"step",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"size",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"variant",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"label",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"helper",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"error",2);i([s.property({type:Boolean})],exports.LogosphereInput.prototype,"required",2);i([s.property({type:Boolean})],exports.LogosphereInput.prototype,"disabled",2);i([s.property({type:Boolean})],exports.LogosphereInput.prototype,"readonly",2);i([s.property({type:String})],exports.LogosphereInput.prototype,"mask",2);i([s.property({type:Boolean,attribute:"show-password-toggle"})],exports.LogosphereInput.prototype,"showPasswordToggle",2);i([s.property({type:Boolean,attribute:"suppress-native-validation"})],exports.LogosphereInput.prototype,"suppressNativeValidation",2);i([s.property({type:String,attribute:"error-display"})],exports.LogosphereInput.prototype,"errorDisplay",2);i([s.state()],exports.LogosphereInput.prototype,"_internalError",2);i([s.state()],exports.LogosphereInput.prototype,"_showPassword",2);i([s.state()],exports.LogosphereInput.prototype,"_invalid",2);exports.LogosphereInput=i([s.customElement("logosphere-input")],exports.LogosphereInput);
@@ -0,0 +1,278 @@
1
+ import { unsafeCSS as m, css as g, LitElement as f, nothing as h, html as u } from "lit";
2
+ import { query as v, property as r, state as c, customElement as _ } from "lit/decorators.js";
3
+ import { live as b } from "lit/directives/live.js";
4
+ import "./formfield-ss2mFweu.js";
5
+ import "./ui-icon-BeR-PaPg.js";
6
+ const w = ":host{display:block}.input__field{width:100%;background:transparent;border:none;outline:none;font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-body-text);box-sizing:border-box;line-height:1.5}.input__field::placeholder{color:var(--color-tertiary)}.input__field:disabled{cursor:not-allowed}.input__field--default{height:var(--input-field-height, 16px)}.input__field--large{height:var(--input-field-height-large, 24px)}.input__clear-btn,.input__password-toggle{border:none;background:transparent;color:var(--color-gray-400);cursor:pointer;padding:0;display:inline-flex;align-items:center;outline:none;flex-shrink:0;transition:color var(--transition-speed-fast) var(--transition-timing)}.input__clear-btn:hover,.input__password-toggle:hover{color:var(--color-gray-600)}";
7
+ var E = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, i = (t, s, o, l) => {
8
+ for (var n = l > 1 ? void 0 : l ? $(s, o) : s, a = t.length - 1, p; a >= 0; a--)
9
+ (p = t[a]) && (n = (l ? p(s, o, n) : p(n)) || n);
10
+ return l && n && E(s, o, n), n;
11
+ };
12
+ const y = {
13
+ 0: /\d/,
14
+ a: /[a-zA-Z]/,
15
+ "*": /[a-zA-Z0-9]/
16
+ };
17
+ function d(t) {
18
+ return t.split("").filter((s) => /[a-zA-Z0-9]/.test(s)).join("");
19
+ }
20
+ function k(t, s) {
21
+ let o = 0, l = "";
22
+ for (let n = 0; n < s.length && !(o >= t.length); n++) {
23
+ const a = s[n], p = y[a];
24
+ if (p) {
25
+ for (; o < t.length && !p.test(t[o]); ) o++;
26
+ o < t.length && (l += t[o++]);
27
+ } else
28
+ l += a;
29
+ }
30
+ return l;
31
+ }
32
+ function P(t, s, o) {
33
+ let l = 0;
34
+ for (let n = 0; n < t.length; n++)
35
+ if (y[s[n]] && (l++, l === o))
36
+ return n + 1;
37
+ return t.length;
38
+ }
39
+ let e = class extends f {
40
+ constructor() {
41
+ super(...arguments), this.value = "", this.type = "text", this.placeholder = "", this.name = "", this.autocomplete = "", this.pattern = "", this.size = "default", this.variant = "default", this.label = "", this.helper = "", this.error = "", this.required = !1, this.disabled = !1, this.readonly = !1, this.mask = "", this.showPasswordToggle = !0, this.suppressNativeValidation = !1, this.errorDisplay = "always", this._internalError = "", this._showPassword = !1, this._invalid = !1, this.handleInput = (t) => {
42
+ const s = t.target;
43
+ if (this.mask) {
44
+ const o = s.selectionStart ?? s.value.length, l = d(s.value.slice(0, o)).length, n = d(s.value), a = k(n, this.mask);
45
+ s.value = a, this.value = a;
46
+ const p = P(a, this.mask, l);
47
+ requestAnimationFrame(() => s.setSelectionRange(p, p));
48
+ } else
49
+ this.value = s.value;
50
+ this._internalError && (this._internalError = "", this._inputElement.setCustomValidity("")), this._invalid = !1, this.dispatchEvent(new CustomEvent("input", {
51
+ bubbles: !0,
52
+ composed: !0,
53
+ detail: {
54
+ value: this.value,
55
+ rawValue: this.mask ? d(this.value) : this.value,
56
+ originalEvent: t
57
+ }
58
+ }));
59
+ }, this.handleChange = (t) => {
60
+ const s = t.target;
61
+ this.value = s.value;
62
+ const o = s.checkValidity();
63
+ this._invalid = !o, !o && !this.suppressNativeValidation && (this._internalError = s.validationMessage), this.dispatchEvent(new CustomEvent("change", {
64
+ bubbles: !0,
65
+ composed: !0,
66
+ detail: { value: this.value, originalEvent: t }
67
+ })), this.dispatchEvent(new CustomEvent("lgsChange", {
68
+ bubbles: !0,
69
+ composed: !0,
70
+ detail: { value: this.value }
71
+ }));
72
+ }, this.handleBlur = () => {
73
+ this._inputElement && (this._invalid = !this._inputElement.checkValidity());
74
+ }, this.handleKeyDown = (t) => {
75
+ this.dispatchEvent(new CustomEvent("keydown", {
76
+ bubbles: !0,
77
+ composed: !0,
78
+ detail: { key: t.key, originalEvent: t }
79
+ }));
80
+ }, this.handleKeyUp = (t) => {
81
+ this.dispatchEvent(new CustomEvent("keyup", {
82
+ bubbles: !0,
83
+ composed: !0,
84
+ detail: { key: t.key, originalEvent: t }
85
+ }));
86
+ }, this.handleClear = () => {
87
+ this.value = "", this._invalid = !1, this._inputElement && (this._inputElement.value = ""), this.dispatchEvent(new CustomEvent("clear", { bubbles: !0, composed: !0 })), this.dispatchEvent(new CustomEvent("input", {
88
+ bubbles: !0,
89
+ composed: !0,
90
+ detail: { value: "", originalEvent: null }
91
+ }));
92
+ }, this.handlePasswordToggle = () => {
93
+ this.disabled || (this._showPassword = !this._showPassword, this._inputElement?.focus());
94
+ };
95
+ }
96
+ get inputElement() {
97
+ return this._inputElement;
98
+ }
99
+ focus() {
100
+ this._inputElement?.focus();
101
+ }
102
+ blur() {
103
+ this._inputElement?.blur();
104
+ }
105
+ select() {
106
+ this._inputElement?.select();
107
+ }
108
+ setSelectionRange(t, s, o) {
109
+ this._inputElement?.setSelectionRange(t, s, o);
110
+ }
111
+ checkValidity() {
112
+ return this._inputElement?.checkValidity() ?? !0;
113
+ }
114
+ reportValidity() {
115
+ return this._inputElement?.reportValidity() ?? !0;
116
+ }
117
+ setCustomValidity(t) {
118
+ this._inputElement?.setCustomValidity(t), this._internalError = t, this.requestUpdate();
119
+ }
120
+ willUpdate(t) {
121
+ t.has("type") && this.type !== "password" && this._showPassword && (this._showPassword = !1), t.has("showPasswordToggle") && !this.showPasswordToggle && this._showPassword && (this._showPassword = !1);
122
+ }
123
+ /** Mask varsa ve placeholder verilmemişse mask pattern'ını placeholder olarak göster */
124
+ get _effectivePlaceholder() {
125
+ return this.placeholder ? this.placeholder : this.mask ? this.mask.replace(/[0a*]/g, "_") : "";
126
+ }
127
+ render() {
128
+ const t = this.error || this._internalError, s = this.errorDisplay === "on-invalid" ? this._invalid ? t : "" : t, o = !!this.value && !this.disabled && !this.readonly, l = this.type === "password", n = l && this._showPassword ? "text" : this.type, a = `input__field input__field--${this.size}`;
129
+ return u`
130
+ <logosphere-formfield
131
+ .label=${this.label}
132
+ .helper=${this.helper}
133
+ .error=${s}
134
+ .required=${this.required}
135
+ .disabled=${this.disabled}
136
+ .readonly=${this.readonly}
137
+ .placeholder=${this._effectivePlaceholder}
138
+ .size=${this.size}
139
+ .variant=${this.variant}
140
+ >
141
+ <slot name="prefix" slot="prefix"></slot>
142
+ <input
143
+ class="${a}"
144
+ type=${n}
145
+ .value=${b(this.value)}
146
+ placeholder=${this._effectivePlaceholder || h}
147
+ name=${this.name || h}
148
+ autocomplete=${this.autocomplete || h}
149
+ ?required=${this.required}
150
+ ?disabled=${this.disabled}
151
+ ?readonly=${this.readonly}
152
+ minlength=${this.minlength ?? h}
153
+ maxlength=${this.maxlength ?? h}
154
+ pattern=${this.pattern || h}
155
+ min=${this.min ?? h}
156
+ max=${this.max ?? h}
157
+ step=${this.step ?? h}
158
+ @input=${this.handleInput}
159
+ @change=${this.handleChange}
160
+ @blur=${this.handleBlur}
161
+ @keydown=${this.handleKeyDown}
162
+ @keyup=${this.handleKeyUp}
163
+ />
164
+ ${o ? u`
165
+ <button
166
+ type="button"
167
+ slot="clear"
168
+ class="input__clear-btn"
169
+ @click=${this.handleClear}
170
+ tabindex="-1"
171
+ >
172
+ <ui-icon name="uil-times" size="14"></ui-icon>
173
+ </button>
174
+ ` : h}
175
+ ${l && this.showPasswordToggle ? u`
176
+ <button
177
+ type="button"
178
+ slot="suffix"
179
+ class="input__password-toggle"
180
+ aria-label=${this._showPassword ? "Şifreyi gizle" : "Şifreyi göster"}
181
+ @click=${this.handlePasswordToggle}
182
+ >
183
+ <ui-icon name=${this._showPassword ? "uil-eye-slash" : "uil-eye"} size="16"></ui-icon>
184
+ </button>
185
+ ` : h}
186
+ <slot name="suffix" slot="suffix"></slot>
187
+ </logosphere-formfield>
188
+ `;
189
+ }
190
+ };
191
+ e.styles = [g`${m(w)}`];
192
+ i([
193
+ v("input")
194
+ ], e.prototype, "_inputElement", 2);
195
+ i([
196
+ r({ type: String })
197
+ ], e.prototype, "value", 2);
198
+ i([
199
+ r({ type: String })
200
+ ], e.prototype, "type", 2);
201
+ i([
202
+ r({ type: String })
203
+ ], e.prototype, "placeholder", 2);
204
+ i([
205
+ r({ type: String })
206
+ ], e.prototype, "name", 2);
207
+ i([
208
+ r({ type: String })
209
+ ], e.prototype, "autocomplete", 2);
210
+ i([
211
+ r({ type: Number })
212
+ ], e.prototype, "minlength", 2);
213
+ i([
214
+ r({ type: Number })
215
+ ], e.prototype, "maxlength", 2);
216
+ i([
217
+ r({ type: String })
218
+ ], e.prototype, "pattern", 2);
219
+ i([
220
+ r({ type: Number })
221
+ ], e.prototype, "min", 2);
222
+ i([
223
+ r({ type: Number })
224
+ ], e.prototype, "max", 2);
225
+ i([
226
+ r({ type: Number })
227
+ ], e.prototype, "step", 2);
228
+ i([
229
+ r({ type: String })
230
+ ], e.prototype, "size", 2);
231
+ i([
232
+ r({ type: String })
233
+ ], e.prototype, "variant", 2);
234
+ i([
235
+ r({ type: String })
236
+ ], e.prototype, "label", 2);
237
+ i([
238
+ r({ type: String })
239
+ ], e.prototype, "helper", 2);
240
+ i([
241
+ r({ type: String })
242
+ ], e.prototype, "error", 2);
243
+ i([
244
+ r({ type: Boolean })
245
+ ], e.prototype, "required", 2);
246
+ i([
247
+ r({ type: Boolean })
248
+ ], e.prototype, "disabled", 2);
249
+ i([
250
+ r({ type: Boolean })
251
+ ], e.prototype, "readonly", 2);
252
+ i([
253
+ r({ type: String })
254
+ ], e.prototype, "mask", 2);
255
+ i([
256
+ r({ type: Boolean, attribute: "show-password-toggle" })
257
+ ], e.prototype, "showPasswordToggle", 2);
258
+ i([
259
+ r({ type: Boolean, attribute: "suppress-native-validation" })
260
+ ], e.prototype, "suppressNativeValidation", 2);
261
+ i([
262
+ r({ type: String, attribute: "error-display" })
263
+ ], e.prototype, "errorDisplay", 2);
264
+ i([
265
+ c()
266
+ ], e.prototype, "_internalError", 2);
267
+ i([
268
+ c()
269
+ ], e.prototype, "_showPassword", 2);
270
+ i([
271
+ c()
272
+ ], e.prototype, "_invalid", 2);
273
+ e = i([
274
+ _("logosphere-input")
275
+ ], e);
276
+ export {
277
+ e as L
278
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";const u=require("lit"),p=require("lit/decorators.js"),c=":host{display:block}.input-group{display:inline-flex;align-items:center;font-family:var(--font-family-base)}.input-group--stretch>::slotted(*){align-self:stretch}.input-group>::slotted(*){flex-shrink:0}:host([block]){display:block}:host([block]) .input-group{display:flex;width:100%}:host([block]) .input-group>::slotted(*){flex:1;min-width:0}";var h=Object.defineProperty,d=Object.getOwnPropertyDescriptor,a=(l,s,e,o)=>{for(var t=o>1?void 0:o?d(s,e):s,r=l.length-1,n;r>=0;r--)(n=l[r])&&(t=(o?n(s,e,t):n(t))||t);return o&&t&&h(s,e,t),t};exports.InputGroup=class extends u.LitElement{constructor(){super(...arguments),this.stretch=!0,this._onFocusIn=s=>{const e=s.composedPath();this._getChildren().forEach(t=>{const r=e.includes(t);t.style.zIndex=r?"1":"0",t.style.position="relative"})},this._onFocusOut=s=>{const e=s.relatedTarget;e&&this.contains(e)||this._getChildren().forEach(o=>{o.style.zIndex="",o.style.position=""})}}firstUpdated(){this._applyGroupStyles(),this.addEventListener("focusin",this._onFocusIn),this.addEventListener("focusout",this._onFocusOut)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("focusin",this._onFocusIn),this.removeEventListener("focusout",this._onFocusOut)}_onSlotChange(){this._applyGroupStyles()}_getChildren(){return this.shadowRoot?.querySelector("slot")?.assignedElements()??[]}_applyGroupStyles(){const s=this._getChildren(),e=s.length;e!==0&&s.forEach((o,t)=>{const r=t===0,n=t===e-1;let i;e===1?i="var(--radius-base)":r?i="var(--radius-base) 0 0 var(--radius-base)":n?i="0 var(--radius-base) var(--radius-base) 0":i="0",o.style.setProperty("--formfield-border-radius",i),o.style.marginLeft=r?"":"-1px"})}render(){return u.html`
2
+ <div class="input-group${this.stretch?" input-group--stretch":""}">
3
+ <slot @slotchange=${this._onSlotChange}></slot>
4
+ </div>
5
+ `}};exports.InputGroup.styles=[u.css`${u.unsafeCSS(c)}`];a([p.property({type:Boolean})],exports.InputGroup.prototype,"stretch",2);exports.InputGroup=a([p.customElement("logosphere-input-group")],exports.InputGroup);
@@ -0,0 +1,66 @@
1
+ import { unsafeCSS as a, css as p, LitElement as c, html as h } from "lit";
2
+ import { property as d, customElement as f } from "lit/decorators.js";
3
+ const y = ":host{display:block}.input-group{display:inline-flex;align-items:center;font-family:var(--font-family-base)}.input-group--stretch>::slotted(*){align-self:stretch}.input-group>::slotted(*){flex-shrink:0}:host([block]){display:block}:host([block]) .input-group{display:flex;width:100%}:host([block]) .input-group>::slotted(*){flex:1;min-width:0}";
4
+ var g = Object.defineProperty, v = Object.getOwnPropertyDescriptor, u = (o, t, r, e) => {
5
+ for (var s = e > 1 ? void 0 : e ? v(t, r) : t, i = o.length - 1, n; i >= 0; i--)
6
+ (n = o[i]) && (s = (e ? n(t, r, s) : n(s)) || s);
7
+ return e && s && g(t, r, s), s;
8
+ };
9
+ let l = class extends c {
10
+ constructor() {
11
+ super(...arguments), this.stretch = !0, this._onFocusIn = (o) => {
12
+ const t = o.composedPath();
13
+ this._getChildren().forEach((e) => {
14
+ const s = t.includes(e);
15
+ e.style.zIndex = s ? "1" : "0", e.style.position = "relative";
16
+ });
17
+ }, this._onFocusOut = (o) => {
18
+ const t = o.relatedTarget;
19
+ t && this.contains(t) || this._getChildren().forEach((r) => {
20
+ r.style.zIndex = "", r.style.position = "";
21
+ });
22
+ };
23
+ }
24
+ // ── Lifecycle ─────────────────────────────────────────────────────────────
25
+ firstUpdated() {
26
+ this._applyGroupStyles(), this.addEventListener("focusin", this._onFocusIn), this.addEventListener("focusout", this._onFocusOut);
27
+ }
28
+ disconnectedCallback() {
29
+ super.disconnectedCallback(), this.removeEventListener("focusin", this._onFocusIn), this.removeEventListener("focusout", this._onFocusOut);
30
+ }
31
+ // ── Slot change ───────────────────────────────────────────────────────────
32
+ _onSlotChange() {
33
+ this._applyGroupStyles();
34
+ }
35
+ // ── Focus handling — raise focused child above siblings ───────────────────
36
+ _getChildren() {
37
+ return this.shadowRoot?.querySelector("slot")?.assignedElements() ?? [];
38
+ }
39
+ // ── Style application ─────────────────────────────────────────────────────
40
+ _applyGroupStyles() {
41
+ const o = this._getChildren(), t = o.length;
42
+ t !== 0 && o.forEach((r, e) => {
43
+ const s = e === 0, i = e === t - 1;
44
+ let n;
45
+ t === 1 ? n = "var(--radius-base)" : s ? n = "var(--radius-base) 0 0 var(--radius-base)" : i ? n = "0 var(--radius-base) var(--radius-base) 0" : n = "0", r.style.setProperty("--formfield-border-radius", n), r.style.marginLeft = s ? "" : "-1px";
46
+ });
47
+ }
48
+ // ── Render ────────────────────────────────────────────────────────────────
49
+ render() {
50
+ return h`
51
+ <div class="input-group${this.stretch ? " input-group--stretch" : ""}">
52
+ <slot @slotchange=${this._onSlotChange}></slot>
53
+ </div>
54
+ `;
55
+ }
56
+ };
57
+ l.styles = [p`${a(y)}`];
58
+ u([
59
+ d({ type: Boolean })
60
+ ], l.prototype, "stretch", 2);
61
+ l = u([
62
+ f("logosphere-input-group")
63
+ ], l);
64
+ export {
65
+ l as I
66
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./input-group-C6sA1lzj.cjs");Object.defineProperty(exports,"InputGroup",{enumerable:!0,get:()=>e.InputGroup});
@@ -0,0 +1,4 @@
1
+ import { I as r } from "./input-group-DUPlrpug.js";
2
+ export {
3
+ r as InputGroup
4
+ };
package/dist/input.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./input-BcnI1w3_.cjs");Object.defineProperty(exports,"LogosphereInput",{enumerable:!0,get:()=>e.LogosphereInput});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./input-DyLKo7h6.cjs");Object.defineProperty(exports,"LogosphereInput",{enumerable:!0,get:()=>e.LogosphereInput});
package/dist/input.js CHANGED
@@ -1,4 +1,4 @@
1
- import { L as p } from "./input-Bj_7u8Iv.js";
1
+ import { L as p } from "./input-N3Z8D7q1.js";
2
2
  export {
3
3
  p as LogosphereInput
4
4
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./leftmenu-DiKo8iud.cjs");Object.defineProperty(exports,"LeftMenu",{enumerable:!0,get:()=>e.LeftMenu});exports.isLeftMenuGroup=e.isLeftMenuGroup;
@@ -0,0 +1,5 @@
1
+ import { L as o, i as r } from "./leftmenu-DlU_G4Sj.js";
2
+ export {
3
+ o as LeftMenu,
4
+ r as isLeftMenuGroup
5
+ };
@@ -0,0 +1,120 @@
1
+ "use strict";const n=require("lit"),a=require("lit/decorators.js");require("./button-vdNReBMi.cjs");require("./input-DyLKo7h6.cjs");require("./popover-CrXUbUR-.cjs");require("./ui-icon-DWl7I5BQ.cjs");require("./tree-menu-DDQ_DYl7.cjs");function g(d){return"items"in d&&Array.isArray(d.items)}const v=':host{display:block;position:relative;height:100%;font-family:var(--font-family-base)}.lm{position:relative;height:100%;transition:width var(--transition-speed-base) var(--transition-timing)}.lm--resizing{transition:none}.lm__panel{position:relative;width:var(--lm-closed-width);min-width:var(--lm-closed-width);height:100%;background:var(--color-body-bg);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden;overflow-x:hidden;box-sizing:border-box;padding:var(--spacing-2) var(--spacing-3);transition:width var(--transition-speed-base) var(--transition-timing),min-width var(--transition-speed-base) var(--transition-timing),box-shadow var(--transition-speed-base) var(--transition-timing)}.lm--resizing .lm__panel{transition:none}.lm--open .lm__panel{width:var(--lm-open-width);min-width:var(--lm-open-width)}.lm__resize-handle{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:col-resize;z-index:calc(var(--z-index-dropdown) + 1);touch-action:none}.lm__resize-handle:after{content:"";position:absolute;top:0;right:3px;width:1px;height:100%;background:transparent;transition:background-color var(--transition-speed-fast) var(--transition-timing)}.lm__resize-handle:hover:after,.lm--resizing .lm__resize-handle:after{background:var(--color-border)}.lm__brand{padding:var(--spacing-1-5) 0 18px var(--spacing-2);margin-bottom:var(--spacing-3);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);box-sizing:border-box}.lm--closed .lm__brand{width:100%;min-height:64px;padding:var(--spacing-1-5) 0 18px;flex-direction:column;justify-content:center}.lm__brand-logo{display:inline-flex;align-items:center;min-width:0;flex:1 1 auto;overflow:hidden}.lm--closed .lm__brand-logo{flex:0 0 auto;justify-content:center;width:100%}.lm__brand-toggle{flex:0 0 auto}.lm__brand-toggle-slot{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:32px;height:32px;min-width:32px;overflow:hidden}.lm__search{padding:var(--spacing-2) 0}.lm__nav{flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.lm__nav-actions{display:flex;justify-content:flex-end;padding-top:var(--spacing-2)}.lm__nav-action-tooltip{--popover-min-width: max-content;--popover-body-padding: var(--spacing-2) var(--spacing-3)}.lm__nav-action-tooltip-text{color:var(--color-body-color);white-space:nowrap}.lm__nav logosphere-tree-menu{width:100%}.lm__group{position:relative;margin-bottom:var(--spacing-2)}.lm__group--with-separator:after{content:"";display:block;margin:var(--spacing-2) var(--spacing-2);border-bottom:1px solid var(--color-border)}.lm__group-label{padding:var(--spacing-2) var(--spacing-1);font-size:var(--font-size-xs);letter-spacing:.04em;color:var(--color-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lm__custom{border-top:1px solid var(--color-border);margin-top:var(--spacing-4);padding:var(--spacing-2)}.lm--closed .lm__custom{padding:var(--spacing-2) 0}.lm__custom--hidden{display:none}.lm--closed .lm__nav{padding-left:0;padding-right:0;scrollbar-gutter:auto;scrollbar-color:var(--color-border) transparent}.lm--closed .lm__nav::-webkit-scrollbar{width:4px;height:4px}.lm--closed .lm__nav::-webkit-scrollbar-track{background:transparent}.lm--closed .lm__nav::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:999px}.lm--closed .lm__nav:hover::-webkit-scrollbar-thumb{background-color:var(--color-tertiary)}.lm__footer{margin-top:auto;border-top:1px solid var(--color-border);padding:var(--spacing-2) 0 0;display:flex;align-items:center;justify-content:center;gap:var(--spacing-2)}.lm--closed .lm__footer{flex-direction:column;justify-content:center}.lm__ctrl{width:32px;height:32px;border:1px solid var(--color-border);background:var(--color-body-bg);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-body-color)}.lm__ctrl:hover{background:var(--color-tertiary)}.lm__toggle-icon{transform:rotate(180deg);transition:transform var(--transition-speed-base) var(--transition-timing)}.lm__toggle-icon--open{transform:rotate(0)}::slotted([slot="logo-open"]),::slotted([slot="toggle-closed"]){display:inline-flex;width:100%;height:100%}::slotted([slot="custom-open"]),::slotted([slot="custom-closed"]){display:block;width:100%}';var b=Object.defineProperty,w=Object.getOwnPropertyDescriptor,l=(d,e,t,o)=>{for(var i=o>1?void 0:o?w(e,t):e,s=d.length-1,r;s>=0;s--)(r=d[s])&&(i=(o?r(e,t,i):r(i))||i);return o&&i&&b(e,t,i),i};const u=68,_=248,x=500;function y(d){const e=new Set,t=o=>{o.forEach(i=>{e.add(i.id),i.children?.length&&t(i.children)})};return t(d),e}function m(d){const e=[];let t=null,o=0;return d.forEach(i=>{if(g(i)){t=null,e.push({id:i.id||`group-${o++}`,label:i.label?.trim()||null,items:i.items});return}t||(t={id:`group-${o++}`,label:null,items:[]},e.push(t)),t.items.push(i)}),e}function f(d){return d.map(e=>({id:e.id,label:e.label,disabled:e.disabled,active:e.active,iconName:e.iconName,badges:e.badges,data:e.data??e,children:e.children?.length?f(e.children):void 0}))}exports.LeftMenu=class extends n.LitElement{constructor(){super(...arguments),this.open=!1,this.openWidth=248,this.storageKey="logosphere-leftmenu-state",this.items=[],this.defaultExpandedIds=[],this.leading=!0,this._expandedIds=new Set,this._search="",this._searchExpandedIds=new Set,this._hasCustomOpen=!1,this._hasCustomClosed=!1,this._closedToggleHover=!1,this._currentOpenWidth=_,this._resizing=!1,this._isHydratingState=!1,this._resizeStartX=0,this._resizeStartWidth=_,this._onCustomOpenSlotChange=e=>{const t=e.target;this._hasCustomOpen=t.assignedElements({flatten:!0}).length>0},this._onCustomClosedSlotChange=e=>{const t=e.target;this._hasCustomClosed=t.assignedElements({flatten:!0}).length>0},this._handleSearchInput=e=>{const o=e.detail?.value;typeof o=="string"&&this._setSearch(o)},this._toggleOpen=()=>{const e=!this.open,t=e?this._currentOpenWidth:u;this.open=e,this._closedToggleHover=!1,this.dispatchEvent(new CustomEvent("toggle-change",{detail:{open:e,width:t,openWidth:this._currentOpenWidth,closedWidth:u},bubbles:!0,composed:!0}))},this._handleClosedToggleMouseEnter=()=>{this.open||(this._closedToggleHover=!0)},this._handleClosedToggleMouseLeave=()=>{this._closedToggleHover=!1},this._handleResizePointerDown=e=>{this.open&&(e.preventDefault(),e.stopPropagation(),this._resizing=!0,this._resizeStartX=e.clientX,this._resizeStartWidth=this._currentOpenWidth,window.addEventListener("pointermove",this._handleResizePointerMove),window.addEventListener("pointerup",this._handleResizePointerUp),window.addEventListener("pointercancel",this._handleResizePointerUp))},this._handleResizePointerMove=e=>{if(!this._resizing)return;const t=e.clientX-this._resizeStartX;this._currentOpenWidth=this._clampOpenWidth(this._resizeStartWidth+t)},this._handleResizePointerUp=()=>{this._resizing&&(this._resizing=!1,this._removeResizeListeners(),this.dispatchEvent(new CustomEvent("width-change",{detail:{width:this._currentOpenWidth},bubbles:!0,composed:!0})))},this._collapseAll=()=>{this._expandedIds=new Set,this._searchExpandedIds=new Set},this._handleTreeToggle=e=>{e.stopPropagation();const{item:t,expanded:o}=e.detail;o?this._expandedIds.add(t.id):this._expandedIds.delete(t.id),this._expandedIds=new Set(this._expandedIds)},this._handleTreeNodeClick=e=>{this.open||!e.detail.hasChildren||(this.open=!0,this._expandedIds.add(e.detail.item.id),this._expandedIds=new Set(this._expandedIds))},this._handleTreeItemClick=e=>{e.stopPropagation(),this.dispatchEvent(new CustomEvent("item-click",{detail:{item:e.detail.item.data??e.detail.item},bubbles:!0,composed:!0}))}}connectedCallback(){super.connectedCallback(),this._currentOpenWidth=this._clampOpenWidth(this.openWidth),this._loadPersistedState()}disconnectedCallback(){super.disconnectedCallback(),this._removeResizeListeners()}updated(e){this._isHydratingState||(e.has("openWidth")&&!this._resizing&&(this._currentOpenWidth=this._clampOpenWidth(this.openWidth)),e.has("open")&&this._persistState(),e.has("items")&&this.defaultExpandedIds.length&&(this._expandedIds=new Set(this.defaultExpandedIds)),(e.has("items")||e.has("open"))&&this._syncIconSlots())}_loadPersistedState(){if(!(typeof window>"u"))try{const e=window.localStorage.getItem(this.storageKey);if(!e)return;const t=JSON.parse(e);this._isHydratingState=!0,typeof t.open=="boolean"&&(this.open=t.open),this._isHydratingState=!1}catch{this._isHydratingState=!1}}_persistState(){if(!(typeof window>"u"))try{window.localStorage.setItem(this.storageKey,JSON.stringify({open:this.open}))}catch{}}_syncIconSlots(){const e=Array.from(this.querySelectorAll("[slot^='icon-']")),t=Array.from(this.shadowRoot?.querySelectorAll("logosphere-tree-menu")??[]);if(!t.length)return;const o=t.map(i=>{const s=i.getAttribute("data-group-id"),r=this._renderGroups().find(h=>h.id===s);return r?y(r.items):new Set});e.forEach(i=>{const r=(i.getAttribute("slot")??"").slice(5),h=o.findIndex(p=>p.has(r)),c=h>=0?t[h]:t[0];c&&i.parentElement!==c&&c.appendChild(i)})}_allItems(){return m(this.items).flatMap(e=>e.items)}_renderGroups(){return m(this.items)}_setSearch(e){if(this._search=e,!e){this._searchExpandedIds=new Set;return}const t=new Set,o=i=>{let s=!1;return i.forEach(r=>{const h=r.children??[],c=r.label.toLocaleLowerCase().includes(e.toLocaleLowerCase()),p=h.length?o(h):!1;p&&t.add(r.id),c&&h.length&&t.add(r.id),s=s||c||p}),s};o(this._allItems()),this._searchExpandedIds=t}_filterItems(e,t){if(!t)return e;const o=t.toLocaleLowerCase(),i=s=>{const r=(s.children??[]).map(i).filter(Boolean);return!s.label.toLocaleLowerCase().includes(o)&&r.length===0?null:{...s,children:r}};return e.map(i).filter(Boolean)}_clampOpenWidth(e){return Math.min(x,Math.max(_,Math.round(e)))}_removeResizeListeners(){window.removeEventListener("pointermove",this._handleResizePointerMove),window.removeEventListener("pointerup",this._handleResizePointerUp),window.removeEventListener("pointercancel",this._handleResizePointerUp)}_effectiveExpandedIds(){const e=new Set(this._expandedIds);return this._search&&this._searchExpandedIds.forEach(t=>e.add(t)),Array.from(e)}render(){const e=this.open,t=this._effectiveExpandedIds(),o=this._renderGroups().map(s=>({group:s,items:this._filterItems(s.items,this._search)})).filter(({items:s})=>s.length>0),i=e?this._currentOpenWidth:u;return n.html`
2
+ <aside
3
+ class="lm ${e?"lm--open":"lm--closed"} ${this._resizing?"lm--resizing":""}"
4
+ style=${`--lm-open-width:${this._currentOpenWidth}px; --lm-closed-width:${u}px; width:${i}px;`}
5
+ @mouseenter=${this._handleClosedToggleMouseEnter}
6
+ @mouseleave=${this._handleClosedToggleMouseLeave}
7
+ >
8
+ <div class="lm__panel">
9
+ <div class="lm__brand">
10
+ ${e?n.html`
11
+ <div class="lm__brand-logo">
12
+ <slot name="logo-open"></slot>
13
+ </div>
14
+ `:n.nothing}
15
+ ${e||this._closedToggleHover?n.html`
16
+ <logosphere-button
17
+ class="lm__brand-toggle"
18
+ variant="outline"
19
+ theme="secondary"
20
+ size="md"
21
+ iconOnly
22
+ @click=${this._toggleOpen}
23
+ aria-label="Toggle Menu"
24
+ >
25
+ <ui-icon
26
+ class="lm__toggle-icon ${e?"lm__toggle-icon--open":""}"
27
+ name="uil-left-arrow-to-left"
28
+ size="16"
29
+ ></ui-icon>
30
+ </logosphere-button>
31
+ `:n.html`
32
+ <div class="lm__brand-toggle-slot">
33
+ <slot name="toggle-closed"></slot>
34
+ </div>
35
+ `}
36
+ </div>
37
+
38
+ ${e?n.html`
39
+ <div class="lm__search">
40
+ <logosphere-input
41
+ placeholder="Arayın..."
42
+ .value=${this._search}
43
+ @input=${this._handleSearchInput}
44
+ >
45
+ <ui-icon slot="prefix" name="uil-search" size="16"></ui-icon>
46
+ </logosphere-input>
47
+ </div>
48
+ `:n.nothing}
49
+
50
+ ${e?n.html`
51
+ <div class="lm__nav-actions">
52
+ <logosphere-popover
53
+ class="lm__nav-action-tooltip"
54
+ trigger="hover"
55
+ placement="top"
56
+ .offset=${4}
57
+ .delay=${500}
58
+ noArrow
59
+ >
60
+ <logosphere-button
61
+ slot="trigger"
62
+ variant="text"
63
+ theme="secondary"
64
+ size="sm"
65
+ iconOnly
66
+ @click=${this._collapseAll}
67
+ aria-label="Collapse All Menus"
68
+ >
69
+ <ui-icon name="uil-compress-lines" size="16"></ui-icon>
70
+ </logosphere-button>
71
+ <span class="lm__nav-action-tooltip-text">Menüyü daralt</span>
72
+ </logosphere-popover>
73
+ </div>
74
+ `:n.nothing}
75
+
76
+ <nav class="lm__nav">
77
+ ${o.map(({group:s,items:r},h)=>n.html`
78
+ <div class="lm__group ${h<o.length-1?"lm__group--with-separator":""}">
79
+ ${e&&s.label?n.html`<div class="lm__group-label">${s.label}</div>`:n.nothing}
80
+ <logosphere-tree-menu
81
+ data-group-id=${s.id}
82
+ .items=${f(r)}
83
+ .expandedIds=${t}
84
+ .expandOnLabelClick=${e}
85
+ chevronPosition="right"
86
+ .showLabels=${e}
87
+ .leading=${this.leading}
88
+ .iconSize=${e?16:24}
89
+ @toggle=${this._handleTreeToggle}
90
+ @node-click=${this._handleTreeNodeClick}
91
+ @item-click=${this._handleTreeItemClick}
92
+ ></logosphere-tree-menu>
93
+ </div>
94
+ `)}
95
+ ${e?n.html`
96
+ <div class="lm__custom ${this._hasCustomOpen?"":"lm__custom--hidden"}">
97
+ <slot name="custom-open" @slotchange=${this._onCustomOpenSlotChange}></slot>
98
+ </div>
99
+ `:n.html`
100
+ <div class="lm__custom ${this._hasCustomClosed?"":"lm__custom--hidden"}">
101
+ <slot name="custom-closed" @slotchange=${this._onCustomClosedSlotChange}></slot>
102
+ </div>
103
+ `}
104
+ </nav>
105
+
106
+ ${e?n.html`
107
+ <div
108
+ class="lm__resize-handle"
109
+ role="separator"
110
+ aria-orientation="vertical"
111
+ aria-label="Resize Menu"
112
+ @pointerdown=${this._handleResizePointerDown}
113
+ ></div>
114
+ `:n.nothing}
115
+
116
+ </div>
117
+ </aside>
118
+ `}};exports.LeftMenu.styles=[n.css`
119
+ ${n.unsafeCSS(v)}
120
+ `];l([a.property({type:Boolean,reflect:!0})],exports.LeftMenu.prototype,"open",2);l([a.property({type:Number})],exports.LeftMenu.prototype,"openWidth",2);l([a.property({type:String})],exports.LeftMenu.prototype,"storageKey",2);l([a.property({attribute:!1})],exports.LeftMenu.prototype,"items",2);l([a.property({type:Array})],exports.LeftMenu.prototype,"defaultExpandedIds",2);l([a.property({type:Boolean,reflect:!0})],exports.LeftMenu.prototype,"leading",2);l([a.state()],exports.LeftMenu.prototype,"_expandedIds",2);l([a.state()],exports.LeftMenu.prototype,"_search",2);l([a.state()],exports.LeftMenu.prototype,"_searchExpandedIds",2);l([a.state()],exports.LeftMenu.prototype,"_hasCustomOpen",2);l([a.state()],exports.LeftMenu.prototype,"_hasCustomClosed",2);l([a.state()],exports.LeftMenu.prototype,"_closedToggleHover",2);l([a.state()],exports.LeftMenu.prototype,"_currentOpenWidth",2);l([a.state()],exports.LeftMenu.prototype,"_resizing",2);exports.LeftMenu=l([a.customElement("logosphere-leftmenu")],exports.LeftMenu);exports.isLeftMenuGroup=g;