@logosphere-ui/core 0.0.0-alpha.4 → 0.0.0-alpha.40

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 (183) hide show
  1. package/AGENTS.md +1167 -0
  2. package/dist/AGENTS.md +1167 -0
  3. package/dist/atoms/Badge/badge.d.ts +1 -1
  4. package/dist/atoms/Button/button.d.ts +5 -3
  5. package/dist/atoms/Checkbox/checkbox.d.ts +13 -3
  6. package/dist/atoms/FormField/formfield.d.ts +12 -0
  7. package/dist/atoms/Slider/index.d.ts +1 -0
  8. package/dist/atoms/Slider/slider.d.ts +54 -0
  9. package/dist/badge-B0Bj-HAT.js +72 -0
  10. package/dist/badge-DWkKpZTX.cjs +13 -0
  11. package/dist/badge.cjs +1 -1
  12. package/dist/badge.js +1 -1
  13. package/dist/breadcrumb-BOuCLUJh.cjs +12 -0
  14. package/dist/breadcrumb-BeJqq-5C.js +41 -0
  15. package/dist/breadcrumb.cjs +1 -1
  16. package/dist/breadcrumb.js +1 -1
  17. package/dist/button-MBxtvVqn.cjs +10 -0
  18. package/dist/button-QWCkFTeJ.js +58 -0
  19. package/dist/button.cjs +1 -1
  20. package/dist/button.js +1 -1
  21. package/dist/calendar-DcDT4o-U.cjs +88 -0
  22. package/dist/calendar-DsriSHZ4.js +652 -0
  23. package/dist/calendar.cjs +1 -0
  24. package/dist/calendar.js +4 -0
  25. package/dist/card-BUWvno93.cjs +43 -0
  26. package/dist/{card-CUhlTJyJ.js → card-R_cKrdHK.js} +26 -25
  27. package/dist/card.cjs +1 -1
  28. package/dist/card.js +1 -1
  29. package/dist/chatbot-BPVC2wqM.cjs +183 -0
  30. package/dist/chatbot-yup4Nz00.js +564 -0
  31. package/dist/chatbot.cjs +1 -1
  32. package/dist/chatbot.js +2 -2
  33. package/dist/checkbox-BAbPDN6x.cjs +53 -0
  34. package/dist/checkbox-CTfbav6M.js +152 -0
  35. package/dist/checkbox.cjs +1 -1
  36. package/dist/checkbox.js +1 -1
  37. package/dist/chip-group-BqYKZKmu.cjs +26 -0
  38. package/dist/chip-group-CC5RBhN_.js +89 -0
  39. package/dist/chip-group.cjs +1 -0
  40. package/dist/chip-group.js +4 -0
  41. package/dist/combobox-Bah9Akr-.cjs +113 -0
  42. package/dist/combobox-Nxhk75IH.js +460 -0
  43. package/dist/combobox.cjs +1 -1
  44. package/dist/combobox.js +1 -1
  45. package/dist/datepicker-BExZseRQ.js +382 -0
  46. package/dist/datepicker-BOQ13sIm.cjs +85 -0
  47. package/dist/datepicker.cjs +1 -1
  48. package/dist/datepicker.js +2 -2
  49. package/dist/{download-manager-A4fOxGWJ.js → download-manager-BPg-6Qfg.js} +4 -4
  50. package/dist/download-manager-DDeTYRPs.cjs +97 -0
  51. package/dist/download-manager.cjs +1 -1
  52. package/dist/download-manager.js +1 -1
  53. package/dist/drawer-DBrOkz0z.cjs +32 -0
  54. package/dist/drawer-DHsESNFL.js +114 -0
  55. package/dist/drawer.cjs +1 -0
  56. package/dist/drawer.js +4 -0
  57. package/dist/formfield-JXiv9mvJ.cjs +33 -0
  58. package/dist/formfield-ss2mFweu.js +161 -0
  59. package/dist/formfield.cjs +1 -1
  60. package/dist/formfield.js +1 -1
  61. package/dist/icon.cjs +1 -0
  62. package/dist/icon.js +4 -0
  63. package/dist/index.cjs +291 -1
  64. package/dist/index.d.ts +15 -0
  65. package/dist/index.js +909 -32
  66. package/dist/index.umd.js +1545 -521
  67. package/dist/input-D9lFcDHU.js +278 -0
  68. package/dist/input-Dg-jos9u.cjs +60 -0
  69. package/dist/input.cjs +1 -1
  70. package/dist/input.js +1 -1
  71. package/dist/left-menu.cjs +1 -0
  72. package/dist/left-menu.js +5 -0
  73. package/dist/leftmenu-CMx2K5Ws.js +301 -0
  74. package/dist/leftmenu-DCfTelzi.cjs +83 -0
  75. package/dist/modal-BJNCTlBX.cjs +84 -0
  76. package/dist/modal-DNjURVZy.js +250 -0
  77. package/dist/modal.cjs +1 -1
  78. package/dist/modal.js +1 -1
  79. package/dist/molecules/Accordion/accordion.d.ts +42 -0
  80. package/dist/molecules/Accordion/index.d.ts +2 -0
  81. package/dist/molecules/Chip/chip-group.d.ts +29 -0
  82. package/dist/molecules/Chip/index.d.ts +2 -0
  83. package/dist/molecules/Collapse/collapse.d.ts +42 -0
  84. package/dist/molecules/Collapse/index.d.ts +2 -0
  85. package/dist/molecules/Input/input.d.ts +24 -1
  86. package/dist/molecules/InputGroup/index.d.ts +1 -0
  87. package/dist/molecules/InputGroup/input-group.d.ts +40 -0
  88. package/dist/molecules/Pagination/index.d.ts +1 -0
  89. package/dist/molecules/Pagination/pagination.d.ts +60 -0
  90. package/dist/molecules/Popover/popover.d.ts +1 -0
  91. package/dist/molecules/SplitButton/index.d.ts +2 -0
  92. package/dist/molecules/SplitButton/split-button.d.ts +53 -0
  93. package/dist/molecules/Stepper/index.d.ts +2 -0
  94. package/dist/molecules/Stepper/stepper.d.ts +34 -0
  95. package/dist/molecules/Textarea/text-area.d.ts +5 -2
  96. package/dist/molecules/TimePicker/index.d.ts +2 -0
  97. package/dist/molecules/TimePicker/timepicker.d.ts +62 -0
  98. package/dist/organisms/Calendar/calendar.d.ts +54 -0
  99. package/dist/organisms/Calendar/index.d.ts +1 -0
  100. package/dist/organisms/Calendar/shared.d.ts +9 -0
  101. package/dist/organisms/Chatbot/chatbot.d.ts +10 -1
  102. package/dist/organisms/Chatbot/index.d.ts +1 -1
  103. package/dist/organisms/Combobox/combobox.d.ts +39 -0
  104. package/dist/organisms/DatePicker/datepicker.d.ts +35 -33
  105. package/dist/organisms/Drawer/drawer.d.ts +30 -0
  106. package/dist/organisms/Drawer/index.d.ts +1 -0
  107. package/dist/organisms/LeftMenu/index.d.ts +2 -0
  108. package/dist/organisms/LeftMenu/leftmenu-item.d.ts +14 -0
  109. package/dist/organisms/LeftMenu/leftmenu.d.ts +45 -0
  110. package/dist/organisms/Modal/modal.d.ts +29 -4
  111. package/dist/organisms/Tab/tab.d.ts +13 -1
  112. package/dist/organisms/Toast/index.d.ts +2 -0
  113. package/dist/organisms/Toast/toast-container.d.ts +42 -0
  114. package/dist/organisms/Toast/toast.d.ts +48 -0
  115. package/dist/organisms/TreeMenu/index.d.ts +1 -0
  116. package/dist/organisms/TreeMenu/tree-menu.d.ts +41 -0
  117. package/dist/pagination-B91sZD5E.js +360 -0
  118. package/dist/pagination-Cnh-o-Nq.cjs +169 -0
  119. package/dist/pagination.cjs +1 -0
  120. package/dist/pagination.js +4 -0
  121. package/dist/{popover-B7tCqk3R.js → popover-CSgoaROl.js} +42 -39
  122. package/dist/popover-DwDyLpQq.cjs +30 -0
  123. package/dist/popover.cjs +1 -1
  124. package/dist/popover.js +1 -1
  125. package/dist/shared/icons/index.d.ts +1 -0
  126. package/dist/shared/types/button.types.d.ts +7 -0
  127. package/dist/styles/main.css +186 -182
  128. package/dist/switch-Do6SCkPJ.cjs +17 -0
  129. package/dist/switch-uYVuohJ-.js +68 -0
  130. package/dist/switch.cjs +1 -1
  131. package/dist/switch.js +1 -1
  132. package/dist/tab-BvRVHpWs.cjs +41 -0
  133. package/dist/tab-Byh4UgFB.js +204 -0
  134. package/dist/tab.cjs +1 -1
  135. package/dist/tab.js +1 -1
  136. package/dist/text-area-CHkrGi3S.js +239 -0
  137. package/dist/text-area-DvOiCcKP.cjs +51 -0
  138. package/dist/textarea.cjs +1 -1
  139. package/dist/textarea.js +1 -1
  140. package/dist/timepicker-CAat7fcK.js +320 -0
  141. package/dist/timepicker-Co7lW5Rp.cjs +119 -0
  142. package/dist/timepicker.cjs +1 -0
  143. package/dist/timepicker.js +4 -0
  144. package/dist/toast-container-DxFwLT5S.js +274 -0
  145. package/dist/toast-container-aY1lGjRi.cjs +64 -0
  146. package/dist/toast.cjs +1 -0
  147. package/dist/toast.js +6 -0
  148. package/dist/tree-menu-Dqy14_m2.cjs +47 -0
  149. package/dist/tree-menu-Psek8QB9.js +154 -0
  150. package/dist/tree-menu.cjs +1 -0
  151. package/dist/tree-menu.js +4 -0
  152. package/dist/ui-icon-Cd5YhUeQ.cjs +22 -0
  153. package/dist/ui-icon-Ckljc9hg.js +74 -0
  154. package/package.json +104 -12
  155. package/dist/badge-BbhaO73N.cjs +0 -13
  156. package/dist/badge-DE7Tgd8Z.js +0 -71
  157. package/dist/breadcrumb-B-4yqoJZ.js +0 -41
  158. package/dist/breadcrumb-Cop-B1J7.cjs +0 -12
  159. package/dist/button-C1EwOosO.js +0 -58
  160. package/dist/button-CDRccsk9.cjs +0 -10
  161. package/dist/card-n8ka8Zk-.cjs +0 -43
  162. package/dist/chatbot-Da_itUdJ.cjs +0 -160
  163. package/dist/chatbot-zkxngMRH.js +0 -481
  164. package/dist/checkbox-7Rb3WKGx.js +0 -119
  165. package/dist/checkbox-CdDTRdKV.cjs +0 -37
  166. package/dist/combobox-BJbI-Tgi.js +0 -268
  167. package/dist/combobox-pmE7bgEL.cjs +0 -99
  168. package/dist/datepicker-DFJx45C-.js +0 -750
  169. package/dist/datepicker-b9JGTTMx.cjs +0 -115
  170. package/dist/download-manager-BSIMTGaK.cjs +0 -97
  171. package/dist/formfield-D_7NFFoe.cjs +0 -27
  172. package/dist/formfield-d8fp9FTV.js +0 -118
  173. package/dist/input-BcnI1w3_.cjs +0 -46
  174. package/dist/input-Bj_7u8Iv.js +0 -192
  175. package/dist/modal-Bfc6WQSL.js +0 -110
  176. package/dist/modal-DQ8VFL-P.cjs +0 -39
  177. package/dist/popover-C2p5Pmts.cjs +0 -30
  178. package/dist/switch-Cpl53nRW.js +0 -64
  179. package/dist/switch-Rnnn10bn.cjs +0 -17
  180. package/dist/tab-BKdN4xAz.js +0 -176
  181. package/dist/tab-DcjAlXzU.cjs +0 -40
  182. package/dist/text-area-BkHdLnZj.cjs +0 -44
  183. package/dist/text-area-CC24lj8v.js +0 -204
@@ -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-Ckljc9hg.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,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-Cd5YhUeQ.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);
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-Dg-jos9u.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-D9lFcDHU.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-DCfTelzi.cjs");Object.defineProperty(exports,"LeftMenu",{enumerable:!0,get:()=>e.LeftMenu});Object.defineProperty(exports,"LeftMenuItemElement",{enumerable:!0,get:()=>e.LeftMenuItemElement});
@@ -0,0 +1,5 @@
1
+ import { L as a, a as f } from "./leftmenu-CMx2K5Ws.js";
2
+ export {
3
+ a as LeftMenu,
4
+ f as LeftMenuItemElement
5
+ };
@@ -0,0 +1,301 @@
1
+ import { LitElement as u, html as p, unsafeCSS as v, css as b, nothing as y } from "lit";
2
+ import { property as c, customElement as g, state as m } from "lit/decorators.js";
3
+ import "./button-QWCkFTeJ.js";
4
+ import "./input-D9lFcDHU.js";
5
+ import "./ui-icon-Ckljc9hg.js";
6
+ import "./tree-menu-Psek8QB9.js";
7
+ var w = Object.defineProperty, x = Object.getOwnPropertyDescriptor, _ = (e, t, i, s) => {
8
+ for (var o = s > 1 ? void 0 : s ? x(t, i) : t, n = e.length - 1, r; n >= 0; n--)
9
+ (r = e[n]) && (o = (s ? r(t, i, o) : r(o)) || o);
10
+ return s && o && w(t, i, o), o;
11
+ };
12
+ let h = class extends u {
13
+ constructor() {
14
+ super(...arguments), this.itemId = "", this.label = "", this.disabled = !1, this.active = !1;
15
+ }
16
+ render() {
17
+ return p`<slot></slot>`;
18
+ }
19
+ };
20
+ _([
21
+ c({ type: String })
22
+ ], h.prototype, "itemId", 2);
23
+ _([
24
+ c({ type: String })
25
+ ], h.prototype, "label", 2);
26
+ _([
27
+ c({ type: Boolean })
28
+ ], h.prototype, "disabled", 2);
29
+ _([
30
+ c({ type: Boolean })
31
+ ], h.prototype, "active", 2);
32
+ _([
33
+ c({ attribute: !1 })
34
+ ], h.prototype, "onClick", 2);
35
+ h = _([
36
+ g("leftmenu-item")
37
+ ], h);
38
+ const C = ':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__panel{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;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--open .lm__panel{width:var(--lm-open-width);min-width:var(--lm-open-width)}.lm--overlay.lm--open .lm__panel{position:absolute;left:0;top:0;box-shadow:var(--shadow-md);z-index:var(--z-index-dropdown)}.lm__brand{padding:var(--spacing-3);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;box-sizing:border-box}.lm--closed .lm__brand{width:64px;height:64px;padding:0}.lm__search{padding:var(--spacing-4) var(--spacing-3)}.lm__nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-3);scrollbar-width:thin}.lm__nav logosphere-tree-menu{width:100%}.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);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__pin-icon--inactive{color:var(--color-tertiary)}.lm__pin-icon--active{color:var(--color-body-color)}.lm__toggle-icon{transform:rotate(180deg);transition:transform var(--transition-speed-base) var(--transition-timing)}.lm__toggle-icon--open{transform:rotate(0)}::slotted(leftmenu-item){display:none!important}::slotted([slot="logo-open"]),::slotted([slot="logo-closed"]){display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%}::slotted([slot="custom-open"]),::slotted([slot="custom-closed"]){display:block;width:100%}';
39
+ var I = Object.defineProperty, S = Object.getOwnPropertyDescriptor, d = (e, t, i, s) => {
40
+ for (var o = s > 1 ? void 0 : s ? S(t, i) : t, n = e.length - 1, r; n >= 0; n--)
41
+ (r = e[n]) && (o = (s ? r(t, i, o) : r(o)) || o);
42
+ return s && o && I(t, i, o), o;
43
+ };
44
+ let l = class extends u {
45
+ constructor() {
46
+ super(...arguments), this.open = !1, this.pinned = !1, this.closedWidth = 64, this.openWidth = 248, this.storageKey = "logosphere-leftmenu-state", this._nodes = [], this._expandedIds = /* @__PURE__ */ new Set(), this._search = "", this._searchExpandedIds = /* @__PURE__ */ new Set(), this._hasCustomOpen = !1, this._hasCustomClosed = !1, this._isHydratingState = !1, this._onSlotChange = (e) => {
47
+ const i = e.target.assignedElements({ flatten: !0 }).filter((s) => s.tagName === "LEFTMENU-ITEM");
48
+ this._nodes = i.map((s, o) => this._mapItemElement(s, `root-${o}`));
49
+ }, this._onCustomOpenSlotChange = (e) => {
50
+ const t = e.target;
51
+ this._hasCustomOpen = t.assignedElements({ flatten: !0 }).length > 0;
52
+ }, this._onCustomClosedSlotChange = (e) => {
53
+ const t = e.target;
54
+ this._hasCustomClosed = t.assignedElements({ flatten: !0 }).length > 0;
55
+ }, this._handleSearchInput = (e) => {
56
+ const i = e.detail?.value;
57
+ typeof i == "string" && this._setSearch(i);
58
+ }, this._toggleOpen = () => {
59
+ this.open = !this.open;
60
+ }, this._togglePin = () => {
61
+ this.pinned = !this.pinned, this.dispatchEvent(
62
+ new CustomEvent("pin-change", {
63
+ detail: { pinned: this.pinned },
64
+ bubbles: !0,
65
+ composed: !0
66
+ })
67
+ );
68
+ }, this._handleTreeToggle = (e) => {
69
+ e.stopPropagation();
70
+ const { item: t, expanded: i } = e.detail;
71
+ i ? this._expandedIds.add(t.id) : this._expandedIds.delete(t.id), this._expandedIds = new Set(this._expandedIds);
72
+ }, this._handleTreeNodeClick = (e) => {
73
+ this.open || !e.detail.hasChildren || (this.open = !0, this._expandedIds.add(e.detail.item.id), this._expandedIds = new Set(this._expandedIds));
74
+ }, this._handleTreeItemClick = (e) => {
75
+ e.stopPropagation();
76
+ const t = e.detail.item.data;
77
+ this.dispatchEvent(
78
+ new CustomEvent("item-click", {
79
+ detail: { item: t ?? e.detail.item },
80
+ bubbles: !0,
81
+ composed: !0
82
+ })
83
+ );
84
+ };
85
+ }
86
+ connectedCallback() {
87
+ super.connectedCallback(), this._loadPersistedState();
88
+ }
89
+ updated(e) {
90
+ this._isHydratingState || (e.has("open") || e.has("pinned")) && this._persistState();
91
+ }
92
+ _loadPersistedState() {
93
+ if (!(typeof window > "u"))
94
+ try {
95
+ const e = window.localStorage.getItem(this.storageKey);
96
+ if (!e) return;
97
+ const t = JSON.parse(e);
98
+ this._isHydratingState = !0, typeof t.open == "boolean" && (this.open = t.open), typeof t.pinned == "boolean" && (this.pinned = t.pinned), this._isHydratingState = !1;
99
+ } catch {
100
+ this._isHydratingState = !1;
101
+ }
102
+ }
103
+ _persistState() {
104
+ if (!(typeof window > "u"))
105
+ try {
106
+ window.localStorage.setItem(
107
+ this.storageKey,
108
+ JSON.stringify({
109
+ open: this.open,
110
+ pinned: this.pinned
111
+ })
112
+ );
113
+ } catch {
114
+ }
115
+ }
116
+ _mapItemElement(e, t) {
117
+ const i = e.itemId || e.id || t, s = Array.from(e.children).find((a) => a.getAttribute("slot") === "icon"), o = s?.querySelector("ui-icon"), n = Array.from(e.children).filter(
118
+ (a) => a.tagName === "LEFTMENU-ITEM" && a.getAttribute("slot") === "children"
119
+ ), r = Array.from(e.childNodes).filter((a) => a.nodeType === Node.TEXT_NODE).map((a) => a.textContent ?? "").join(" ").replace(/\s+/g, " ").trim();
120
+ return {
121
+ id: i,
122
+ label: (e.label || r || i).trim(),
123
+ disabled: e.disabled,
124
+ active: e.active,
125
+ iconName: o?.getAttribute("name") ?? null,
126
+ iconHtml: s ? s.innerHTML : null,
127
+ onClick: e.onClick ? () => e.onClick?.(e) : void 0,
128
+ children: n.map((a, f) => this._mapItemElement(a, `${i}-${f}`))
129
+ };
130
+ }
131
+ _setSearch(e) {
132
+ if (this._search = e, !e) {
133
+ this._searchExpandedIds = /* @__PURE__ */ new Set();
134
+ return;
135
+ }
136
+ const t = /* @__PURE__ */ new Set(), i = (s) => {
137
+ let o = !1;
138
+ return s.forEach((n) => {
139
+ const r = n.label.toLocaleLowerCase().includes(e.toLocaleLowerCase()), a = i(n.children);
140
+ a && t.add(n.id), r && n.children.length && t.add(n.id), o = o || r || a;
141
+ }), o;
142
+ };
143
+ i(this._nodes), this._searchExpandedIds = t;
144
+ }
145
+ _filterNodes(e, t) {
146
+ if (!t) return e;
147
+ const i = t.toLocaleLowerCase(), s = (o) => {
148
+ const n = o.children.map(s).filter(Boolean);
149
+ return !o.label.toLocaleLowerCase().includes(i) && n.length === 0 ? null : { ...o, children: n };
150
+ };
151
+ return e.map(s).filter(Boolean);
152
+ }
153
+ _toTreeItems(e) {
154
+ return e.map((t) => ({
155
+ id: t.id,
156
+ label: t.label,
157
+ disabled: t.disabled,
158
+ active: t.active,
159
+ iconName: t.iconName ?? void 0,
160
+ iconHtml: t.iconHtml,
161
+ onClick: t.onClick ? () => {
162
+ t.onClick?.(t);
163
+ } : void 0,
164
+ data: t,
165
+ children: this._toTreeItems(t.children)
166
+ }));
167
+ }
168
+ _effectiveExpandedIds() {
169
+ const e = new Set(this._expandedIds);
170
+ return this._search && this._searchExpandedIds.forEach((t) => e.add(t)), Array.from(e);
171
+ }
172
+ render() {
173
+ const e = this._filterNodes(this._nodes, this._search), t = this._toTreeItems(e), i = this.pinned ? this.open ? this.openWidth : this.closedWidth : this.closedWidth;
174
+ return p`
175
+ <aside
176
+ class="lm ${this.open ? "lm--open" : "lm--closed"} ${this.pinned ? "lm--pinned" : "lm--overlay"}"
177
+ style=${`--lm-open-width:${this.openWidth}px; --lm-closed-width:${this.closedWidth}px; width:${i}px;`}
178
+ >
179
+ <slot @slotchange=${this._onSlotChange}></slot>
180
+
181
+ <div class="lm__panel">
182
+ <div class="lm__brand">
183
+ ${this.open ? p`<slot name="logo-open"></slot>` : p`<slot name="logo-closed"></slot>`}
184
+ </div>
185
+
186
+ ${this.open ? p`
187
+ <div class="lm__search">
188
+ <logosphere-input
189
+ placeholder="Arayın..."
190
+ .value=${this._search}
191
+ @input=${this._handleSearchInput}
192
+ >
193
+ <ui-icon slot="prefix" name="uil-search" size="16"></ui-icon>
194
+ </logosphere-input>
195
+ </div>
196
+ ` : y}
197
+
198
+ <nav class="lm__nav">
199
+ <logosphere-tree-menu
200
+ .items=${t}
201
+ .expandedIds=${this._effectiveExpandedIds()}
202
+ .expandOnLabelClick=${this.open}
203
+ chevronPosition="right"
204
+ .showLabels=${this.open}
205
+ .iconSize=${this.open ? 16 : 20}
206
+ @toggle=${this._handleTreeToggle}
207
+ @node-click=${this._handleTreeNodeClick}
208
+ @item-click=${this._handleTreeItemClick}
209
+ ></logosphere-tree-menu>
210
+
211
+ ${this.open ? p`
212
+ <div class="lm__custom ${this._hasCustomOpen ? "" : "lm__custom--hidden"}">
213
+ <slot name="custom-open" @slotchange=${this._onCustomOpenSlotChange}></slot>
214
+ </div>
215
+ ` : p`
216
+ <div class="lm__custom ${this._hasCustomClosed ? "" : "lm__custom--hidden"}">
217
+ <slot name="custom-closed" @slotchange=${this._onCustomClosedSlotChange}></slot>
218
+ </div>
219
+ `}
220
+ </nav>
221
+
222
+ <div class="lm__footer">
223
+ <logosphere-button
224
+ variant="outline"
225
+ theme="secondary"
226
+ size="md"
227
+ iconOnly
228
+ @click=${this._toggleOpen}
229
+ aria-label="Toggle Menu"
230
+ >
231
+ <ui-icon
232
+ class="lm__toggle-icon ${this.open ? "lm__toggle-icon--open" : ""}"
233
+ name="uil-left-arrow-to-left"
234
+ size="16"
235
+ ></ui-icon>
236
+ </logosphere-button>
237
+ <logosphere-button
238
+ variant="outline"
239
+ theme="secondary"
240
+ size="md"
241
+ iconOnly
242
+ @click=${this._togglePin}
243
+ aria-label="Pin Menu"
244
+ >
245
+ <ui-icon
246
+ class=${this.pinned ? "lm__pin-icon--active" : "lm__pin-icon--inactive"}
247
+ name="uil-pin"
248
+ size="16"
249
+ ></ui-icon>
250
+ </logosphere-button>
251
+ </div>
252
+ </div>
253
+ </aside>
254
+ `;
255
+ }
256
+ };
257
+ l.styles = [
258
+ b`
259
+ ${v(C)}
260
+ `
261
+ ];
262
+ d([
263
+ c({ type: Boolean, reflect: !0 })
264
+ ], l.prototype, "open", 2);
265
+ d([
266
+ c({ type: Boolean, reflect: !0 })
267
+ ], l.prototype, "pinned", 2);
268
+ d([
269
+ c({ type: Number })
270
+ ], l.prototype, "closedWidth", 2);
271
+ d([
272
+ c({ type: Number })
273
+ ], l.prototype, "openWidth", 2);
274
+ d([
275
+ c({ type: String })
276
+ ], l.prototype, "storageKey", 2);
277
+ d([
278
+ m()
279
+ ], l.prototype, "_nodes", 2);
280
+ d([
281
+ m()
282
+ ], l.prototype, "_expandedIds", 2);
283
+ d([
284
+ m()
285
+ ], l.prototype, "_search", 2);
286
+ d([
287
+ m()
288
+ ], l.prototype, "_searchExpandedIds", 2);
289
+ d([
290
+ m()
291
+ ], l.prototype, "_hasCustomOpen", 2);
292
+ d([
293
+ m()
294
+ ], l.prototype, "_hasCustomClosed", 2);
295
+ l = d([
296
+ g("logosphere-leftmenu")
297
+ ], l);
298
+ export {
299
+ l as L,
300
+ h as a
301
+ };