@logosphere-ui/core 0.0.0-alpha.43 → 0.0.0-alpha.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +147 -66
- package/dist/AGENTS.md +147 -66
- package/dist/accordion-CYuCj7nB.cjs +21 -0
- package/dist/accordion-cDabqwu6.js +96 -0
- package/dist/accordion.cjs +1 -0
- package/dist/accordion.js +4 -0
- package/dist/atoms/Checkbox/checkbox.d.ts +11 -2
- package/dist/atoms/FormField/formfield.d.ts +2 -0
- package/dist/{badge-DsDxWEHx.js → badge-BhINg1p5.js} +20 -20
- package/dist/{badge-DvaKpUHe.cjs → badge-CKSG_MyA.cjs} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/breadcrumb-BOuCLUJh.cjs +12 -0
- package/dist/breadcrumb-BeJqq-5C.js +41 -0
- package/dist/breadcrumb.cjs +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/button-CVkIa7M0.js +58 -0
- package/dist/button-vdNReBMi.cjs +10 -0
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/{calendar-CZ_IN2TF.js → calendar-C71sj3Ki.js} +1 -1
- package/dist/{calendar-CIgyrv3U.cjs → calendar-DZJM5Tyu.cjs} +1 -1
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.js +1 -1
- package/dist/{card-MDwFGplY.js → card-C7xXMV3h.js} +3 -3
- package/dist/card-DmQRNKtk.cjs +43 -0
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/chatbot-BAou4THb.cjs +183 -0
- package/dist/{chatbot-CHgiUY4h.js → chatbot-BRfqXYYt.js} +13 -13
- package/dist/chatbot.cjs +1 -1
- package/dist/chatbot.js +1 -1
- package/dist/checkbox-BAbPDN6x.cjs +53 -0
- package/dist/checkbox-CTfbav6M.js +152 -0
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chip-group-CpcjGoRm.cjs → chip-group-D4DwnC37.cjs} +1 -1
- package/dist/{chip-group-BUL2H8rr.js → chip-group-DzfOd6Vw.js} +1 -1
- package/dist/chip-group.cjs +1 -1
- package/dist/chip-group.js +1 -1
- package/dist/collapse-CbRE8ABx.cjs +47 -0
- package/dist/collapse-DY6SJ9jS.js +141 -0
- package/dist/collapse.cjs +1 -0
- package/dist/collapse.js +4 -0
- package/dist/combobox-BAa3UAQs.cjs +113 -0
- package/dist/{combobox-jak7Ac1m.js → combobox-BR05Tgfd.js} +31 -8
- package/dist/combobox.cjs +1 -1
- package/dist/combobox.js +1 -1
- package/dist/{datepicker-BgysIOZI.js → datepicker-BFYWQRrJ.js} +58 -51
- package/dist/datepicker-BWE4qDJM.cjs +85 -0
- package/dist/datepicker.cjs +1 -1
- package/dist/datepicker.js +1 -1
- package/dist/{drawer-3nyjAkcS.cjs → drawer-CRu4G2zu.cjs} +2 -2
- package/dist/{drawer-CE9zzllI.js → drawer-DhuBPWHP.js} +3 -3
- package/dist/drawer.cjs +1 -1
- package/dist/drawer.js +1 -1
- package/dist/formfield-JXiv9mvJ.cjs +33 -0
- package/dist/{formfield-O327HYt0.js → formfield-ss2mFweu.js} +59 -52
- package/dist/formfield.cjs +1 -1
- package/dist/formfield.js +1 -1
- package/dist/icon.cjs +1 -0
- package/dist/icon.js +4 -0
- package/dist/index.cjs +1 -291
- package/dist/index.d.ts +1 -0
- package/dist/index.js +65 -908
- package/dist/index.umd.js +284 -215
- package/dist/input-DyLKo7h6.cjs +60 -0
- package/dist/input-N3Z8D7q1.js +278 -0
- package/dist/input-group-C6sA1lzj.cjs +5 -0
- package/dist/input-group-DUPlrpug.js +66 -0
- package/dist/input-group.cjs +1 -0
- package/dist/input-group.js +4 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/left-menu.cjs +1 -1
- package/dist/left-menu.js +3 -3
- package/dist/leftmenu-BcUNnvly.cjs +120 -0
- package/dist/leftmenu-Cg57EaSY.js +361 -0
- package/dist/modal-g3KbWncV.cjs +84 -0
- package/dist/{modal-DUIv_yoo.js → modal-vSjEpYrG.js} +4 -4
- package/dist/modal.cjs +1 -1
- package/dist/modal.js +1 -1
- package/dist/molecules/Input/input.d.ts +17 -0
- package/dist/molecules/Popover/popover.d.ts +4 -0
- package/dist/organisms/Combobox/combobox.d.ts +9 -0
- package/dist/organisms/DatePicker/datepicker.d.ts +2 -0
- package/dist/organisms/LeftMenu/index.d.ts +1 -1
- package/dist/organisms/LeftMenu/leftmenu-types.d.ts +24 -0
- package/dist/organisms/LeftMenu/leftmenu.d.ts +24 -9
- package/dist/organisms/TreeMenu/tree-menu.d.ts +20 -2
- package/dist/{pagination-B7jknoOz.js → pagination-CjXvpE2j.js} +61 -61
- package/dist/pagination-Nnzacqdo.cjs +169 -0
- package/dist/pagination.cjs +1 -1
- package/dist/pagination.js +1 -1
- package/dist/popover-CrXUbUR-.cjs +30 -0
- package/dist/popover-M5ZcS5rj.js +161 -0
- package/dist/popover.cjs +1 -1
- package/dist/popover.js +1 -1
- package/dist/shared/icons/index.d.ts +1 -0
- package/dist/slider-DSRs5uhl.cjs +108 -0
- package/dist/slider-ntLRajQa.js +280 -0
- package/dist/slider.cjs +1 -0
- package/dist/slider.js +4 -0
- package/dist/split-button-BdBweoip.js +177 -0
- package/dist/split-button-BpffPlVg.cjs +63 -0
- package/dist/split-button.cjs +1 -0
- package/dist/split-button.js +4 -0
- package/dist/stepper-CZhwgLNp.js +122 -0
- package/dist/stepper-ZOMaU6aZ.cjs +52 -0
- package/dist/stepper.cjs +1 -0
- package/dist/stepper.js +4 -0
- package/dist/{switch-8RGGesy5.cjs → switch-Do6SCkPJ.cjs} +2 -2
- package/dist/{switch-DNqPqH-R.js → switch-uYVuohJ-.js} +25 -21
- package/dist/switch.cjs +1 -1
- package/dist/switch.js +1 -1
- package/dist/tab-BvRVHpWs.cjs +41 -0
- package/dist/{tab-CuBCFGoO.js → tab-Byh4UgFB.js} +1 -1
- package/dist/tab.cjs +1 -1
- package/dist/tab.js +1 -1
- package/dist/{text-area-C73JxnqH.js → text-area-1rALZ0iy.js} +16 -12
- package/dist/text-area-D_TYL4_q.cjs +51 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{timepicker-DMzGYd0p.js → timepicker-B9l6HN-d.js} +6 -2
- package/dist/{timepicker-CLJKWWGm.cjs → timepicker-Bpf2d4Nn.cjs} +1 -1
- package/dist/timepicker.cjs +1 -1
- package/dist/timepicker.js +1 -1
- package/dist/{toast-container-B5v74b_5.js → toast-container-C5qYjInG.js} +4 -4
- package/dist/toast-container-D2dyP20J.cjs +64 -0
- package/dist/toast.cjs +1 -1
- package/dist/toast.js +1 -1
- package/dist/tree-menu-BZ7aBC7R.js +237 -0
- package/dist/tree-menu-DDQ_DYl7.cjs +78 -0
- package/dist/tree-menu.cjs +1 -1
- package/dist/tree-menu.js +1 -1
- package/dist/{ui-icon-BMJNdIOq.js → ui-icon-BeR-PaPg.js} +11 -7
- package/dist/{ui-icon-DIucAQC_.cjs → ui-icon-DWl7I5BQ.cjs} +2 -2
- package/package.json +6 -1
- package/dist/breadcrumb-BB61Xt0s.js +0 -41
- package/dist/breadcrumb-Cop-B1J7.cjs +0 -12
- package/dist/button-DRZ4sG4T.cjs +0 -10
- package/dist/button-Uu9oaieg.js +0 -58
- package/dist/card-BOCW7gad.cjs +0 -43
- package/dist/chatbot-B-NiZIYK.cjs +0 -183
- package/dist/checkbox-CX0LgsWP.js +0 -148
- package/dist/checkbox-DpbKHANK.cjs +0 -53
- package/dist/combobox-BmIFPk8X.cjs +0 -113
- package/dist/datepicker-DOBmbxlo.cjs +0 -85
- package/dist/formfield-CRcyUMvQ.cjs +0 -33
- package/dist/input-CQS0LzF-.cjs +0 -59
- package/dist/input-CeF3YJk-.js +0 -257
- package/dist/leftmenu-CmWvnA6L.js +0 -301
- package/dist/leftmenu-p9aR2QTy.cjs +0 -83
- package/dist/modal-dUnnHe8u.cjs +0 -84
- package/dist/organisms/LeftMenu/leftmenu-item.d.ts +0 -14
- package/dist/pagination-BkqbWBOn.cjs +0 -169
- package/dist/popover-CYDoeLKp.cjs +0 -30
- package/dist/popover-DDaG8MSj.js +0 -143
- package/dist/tab-CDMcFHvP.cjs +0 -41
- package/dist/text-area-Cprb-azV.cjs +0 -51
- package/dist/toast-container-6t6yEP9Y.cjs +0 -64
- package/dist/tree-menu-CkOPxr-W.js +0 -154
- package/dist/tree-menu-WNwZMreD.cjs +0 -47
|
@@ -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});
|
package/dist/input.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./input-
|
|
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
package/dist/left-menu.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./leftmenu-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./leftmenu-BcUNnvly.cjs");Object.defineProperty(exports,"LeftMenu",{enumerable:!0,get:()=>e.LeftMenu});exports.isLeftMenuGroup=e.isLeftMenuGroup;
|
package/dist/left-menu.js
CHANGED
|
@@ -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 m=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 u(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=()=>{this.open=!this.open,this._closedToggleHover=!1},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 u(this.items).flatMap(e=>e.items)}_renderGroups(){return u(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:m;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:${m}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;
|