@logosphere-ui/core 0.0.0-alpha.14 → 0.0.0-alpha.16
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/dist/{button-BFq8AmDc.js → button-BqOMevro.js} +1 -1
- package/dist/{button-Bx870pUi.cjs → button-CDRccsk9.cjs} +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/calendar-LMn1ZF3N.cjs +88 -0
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.js +1 -1
- package/dist/{card-D0OT4Kuq.js → card-CNoTUaJC.js} +1 -1
- package/dist/{card-BmW0sPDb.cjs → card-KiNHfEi2.cjs} +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/chatbot-CIk-82Bz.cjs +161 -0
- package/dist/{chatbot-Ddl3Txqv.js → chatbot-Dl-WLXP3.js} +110 -172
- package/dist/chatbot.cjs +1 -1
- package/dist/chatbot.js +2 -2
- package/dist/datepicker-CwDDA6np.cjs +85 -0
- package/dist/datepicker.cjs +1 -1
- package/dist/datepicker.js +2 -2
- package/dist/drawer-BvcPd5nz.cjs +25 -0
- package/dist/drawer-DVINJB4a.js +106 -0
- package/dist/drawer.cjs +1 -0
- package/dist/drawer.js +4 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +30 -28
- package/dist/index.umd.js +140 -137
- package/dist/left-menu.cjs +1 -1
- package/dist/left-menu.js +1 -1
- package/dist/{leftmenu-GsoBxkeJ.js → leftmenu-C-q1h_2U.js} +1 -1
- package/dist/{leftmenu-Bgqfmoe5.cjs → leftmenu-DBcncBN8.cjs} +1 -1
- package/dist/organisms/Calendar/calendar.d.ts +2 -2
- package/dist/organisms/Chatbot/chatbot.d.ts +1 -8
- package/dist/organisms/Chatbot/index.d.ts +1 -1
- package/dist/organisms/DatePicker/datepicker.d.ts +2 -2
- package/dist/organisms/Drawer/drawer.d.ts +29 -0
- package/dist/organisms/Drawer/index.d.ts +1 -0
- package/package.json +16 -1
- package/dist/calendar-DF3q_dcG.cjs +0 -88
- package/dist/chatbot-CBDEFak3.cjs +0 -183
- package/dist/datepicker-BLv_G9Yb.cjs +0 -85
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";const s=require("lit"),r=require("lit/decorators.js"),d=require("lit/directives/live.js"),u=require("@popperjs/core");require("./formfield-BFOIEicR.cjs");const h=require("./calendar-LMn1ZF3N.cjs");require("./ui-icon-DWh1MhBa.cjs");const _=require("dayjs"),c=".dp{display:block;position:relative;width:100%;font-family:var(--font-family-base)}.dp__field,.dp__reference{width:100%}.dp__input{width:100%;border:none;outline:none;background:transparent;font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-body-text);line-height:1.5}.dp__input::placeholder{color:var(--color-tertiary)}.dp__input:disabled{cursor:not-allowed}.dp__icon-btn{border:none;background:transparent;color:var(--color-gray-400);cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:1;transition:color var(--transition-speed-fast) var(--transition-timing)}.dp__icon-btn_suffix{padding-right:var(--spacing-1)}.dp__icon-btn:hover{color:var(--color-gray-600)}.dp__icon-btn:disabled{cursor:not-allowed;opacity:.5}.dp__popup{background-color:var(--color-body-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:var(--z-index-dropdown);padding:var(--spacing-4);box-sizing:border-box;overflow:hidden;max-height:calc(100vh - 16px)}";var g=Object.defineProperty,f=Object.getOwnPropertyDescriptor,i=(p,e,t,a)=>{for(var n=a>1?void 0:a?f(e,t):e,o=p.length-1,l;o>=0;o--)(l=p[o])&&(n=(a?l(e,t,n):l(n))||n);return a&&n&&g(e,t,n),n};let y=0;const m=()=>`dp-${++y}`;exports.LogosphereDatePicker=class extends s.LitElement{constructor(){super(...arguments),this.value=null,this.min=null,this.max=null,this.required=!1,this.disabled=!1,this.readonly=!1,this.expandFactor=1.05,this.placeholder="GG/AA/YYYY veya GG.AA.YYYY",this.label="",this.helper="",this.error="",this.size="default",this.variant="default",this.rangeMode=!1,this.disabledDays=[],this.rangeStart=null,this.rangeEnd=null,this._open=!1,this._rangeStart=null,this._rangeEnd=null,this._hasError=!1,this._errorMsg="",this._inputDraft=null,this._errorTimer=null,this.inputId=m(),this._outsideClick=e=>{this._open&&(e.composedPath().includes(this)||(this._parseAndSetDate(),this._toggleOpen(!1)))},this._openDropdown=()=>{this._toggleOpen(!0)},this._onBlur=()=>{this._parseAndSetDate()}}willUpdate(e){e.has("rangeStart")&&(this._rangeStart=this.rangeStart),e.has("rangeEnd")&&(this._rangeEnd=this.rangeEnd),e.has("value")&&!this._isInputFocused()&&(this._inputDraft=null)}connectedCallback(){super.connectedCallback(),window.addEventListener("click",this._outsideClick,!0)}disconnectedCallback(){window.removeEventListener("click",this._outsideClick,!0),this._destroyPopper(),this._errorTimer&&clearTimeout(this._errorTimer),super.disconnectedCallback()}updated(e){if(super.updated(e),e.has("_open")){this._open?this._updatePopper():this._destroyPopper();return}this._open&&this._updatePopper()}_safeDay(e){return h.safeDay(e)}_isInputFocused(){return this.shadowRoot?.activeElement===this._inputElement}_withinBounds(e){const t=this._safeDay(this.min),a=this._safeDay(this.max);return!(t&&e.isBefore(t,"day")||a&&e.isAfter(a,"day")||this.disabledDays.includes(e.day()))}_displayValue(){if(this.rangeMode&&this._rangeStart&&this._rangeEnd){const t=this._safeDay(this._rangeStart),a=this._safeDay(this._rangeEnd);if(t&&a)return`${t.format("DD/MM/YYYY")} - ${a.format("DD/MM/YYYY")}`}const e=this._safeDay(this.value);return e?e.format("DD/MM/YYYY"):""}_inputValue(){return this._inputDraft??this._displayValue()}_emitChange(e){this.value=e,this.dispatchEvent(new CustomEvent("change",{detail:{value:e}})),this.onChange?.(e)}_emitRangeChange(){if(!this._rangeStart||!this._rangeEnd)return;const e={start:this._rangeStart,end:this._rangeEnd};this.dispatchEvent(new CustomEvent("rangeChange",{detail:e})),this.onRangeChange?.(e)}_showInputError(e){this._errorTimer&&clearTimeout(this._errorTimer),this._hasError=!0,this._errorMsg=e,this._errorTimer=setTimeout(()=>this._clearInputError(),3e3)}_clearInputError(){this._hasError=!1,this._errorMsg="",this._errorTimer&&(clearTimeout(this._errorTimer),this._errorTimer=null)}_toggleOpen(e){if(this.disabled)return;const t=e??!this._open;this._open=t,t&&this.updateComplete.then(()=>this._updatePopper())}_onInput(e){const t=e.target.value;this._inputDraft=t,t.trim()||(this._emitChange(null),this.rangeMode&&(this._rangeStart=null,this._rangeEnd=null)),this._clearInputError()}_parseSingleDate(e){for(const t of h.DATE_FORMATS){const a=_(e,t,!0);if(a.isValid())return a}return this._safeDay(e)}_parseRangeInput(e){const t=e.split(/\s+-\s+/);if(t.length!==2)return null;const a=this._parseSingleDate(t[0].trim()),n=this._parseSingleDate(t[1].trim());return!a||!n?null:a.isAfter(n,"day")?{start:n,end:a}:{start:a,end:n}}_onKeydown(e){(e.key==="Tab"||e.key==="Enter")&&this._parseAndSetDate()}_parseAndSetDate(){const e=this._inputElement;if(!e)return;const t=e.value.trim();if(!t){if(this.rangeMode&&this._rangeStart&&!this._rangeEnd)return;this._emitChange(null),this.rangeMode&&(this._rangeStart=null,this._rangeEnd=null),this._inputDraft=null;return}if(this.rangeMode){const n=this._parseRangeInput(t);if(n){if(this._withinBounds(n.start)&&this._withinBounds(n.end)){this._rangeStart=n.start.format("YYYY-MM-DD"),this._rangeEnd=n.end.format("YYYY-MM-DD"),this._inputDraft=null,this._clearInputError(),this._emitRangeChange();return}this._showInputError("Seçilen aralık sınırlar dışında.");return}const o=this._parseSingleDate(t);if(o&&this._withinBounds(o)){this._rangeStart=o.format("YYYY-MM-DD"),this._rangeEnd=null,this._inputDraft=null,this._clearInputError();return}this._showInputError("Geçersiz aralık formatı. Örnek: 19/09/2025 - 25/09/2025");return}const a=this._parseSingleDate(t);a&&this._withinBounds(a)?(this._emitChange(a.format("YYYY-MM-DD")),this._inputDraft=null,this._clearInputError()):this._showInputError("Geçersiz tarih formatı. Örnek: 19/09/2025")}_updatePopper(){if(!this._open||!this.isConnected)return;const e=this._referenceElement,t=this._popupElement;if(!e||!t)return;const a=Math.max(270,Math.round(e.getBoundingClientRect().width*(this.expandFactor||1)));if(t.style.width=`${a}px`,this._popperInstance){this._popperInstance.setOptions({placement:"bottom",strategy:"fixed",modifiers:this._getPopperModifiers()}),this._popperInstance.update();return}this._popperInstance=u.createPopper(e,t,{placement:"bottom",strategy:"fixed",modifiers:this._getPopperModifiers()})}_getPopperModifiers(){return[{name:"offset",options:{offset:[0,8]}},{name:"preventOverflow",options:{padding:8}},{name:"flip",options:{padding:8,fallbackPlacements:["top-start","right-start","left-start","bottom-end","top-end","right-end","left-end"]}}]}_destroyPopper(){this._popperInstance&&(this._popperInstance.destroy(),this._popperInstance=void 0)}_handleCalendarChange(e){this._emitChange(e.detail.value),this._inputDraft=null,this._toggleOpen(!1)}_handleCalendarRangeChange(e){this._rangeStart=e.detail.start,this._rangeEnd=e.detail.end,this._inputDraft=null,this._emitRangeChange(),this._toggleOpen(!1)}_handleCalendarStateChange(e){this._rangeStart=e.detail.rangeStart,this._rangeEnd=e.detail.rangeEnd}_handleSuffixClick(e){e.stopPropagation(),this._openDropdown(),this._inputElement?.focus()}_handleClearClick(e){e.stopPropagation(),this._emitChange(null),this._rangeStart=null,this._rangeEnd=null,this._inputDraft=null,this._clearInputError(),this._inputElement?.focus()}render(){const e=this.error||(this._hasError?this._errorMsg:""),t=!!this._displayValue();return s.html`
|
|
2
|
+
<div class="dp">
|
|
3
|
+
<div class="dp__reference">
|
|
4
|
+
<logosphere-formfield
|
|
5
|
+
class="dp__field"
|
|
6
|
+
.label=${this.label}
|
|
7
|
+
.helper=${this.helper}
|
|
8
|
+
.error=${e}
|
|
9
|
+
.required=${this.required}
|
|
10
|
+
.disabled=${this.disabled}
|
|
11
|
+
.readonly=${this.readonly}
|
|
12
|
+
.placeholder=${this.placeholder}
|
|
13
|
+
.size=${this.size}
|
|
14
|
+
.variant=${this.variant}
|
|
15
|
+
@click=${this._openDropdown}
|
|
16
|
+
>
|
|
17
|
+
<input
|
|
18
|
+
id=${this.inputId}
|
|
19
|
+
class="dp__input"
|
|
20
|
+
.value=${d.live(this._inputValue())}
|
|
21
|
+
?disabled=${this.disabled}
|
|
22
|
+
?readonly=${this.readonly}
|
|
23
|
+
placeholder=${this.placeholder}
|
|
24
|
+
aria-label="Tarih girin"
|
|
25
|
+
aria-invalid=${e?"true":"false"}
|
|
26
|
+
@focus=${this._openDropdown}
|
|
27
|
+
@input=${this._onInput}
|
|
28
|
+
@keydown=${this._onKeydown}
|
|
29
|
+
@blur=${this._onBlur}
|
|
30
|
+
/>
|
|
31
|
+
${t?s.html`
|
|
32
|
+
<button
|
|
33
|
+
slot="clear"
|
|
34
|
+
class="dp__icon-btn dp__icon-btn_suffix"
|
|
35
|
+
type="button"
|
|
36
|
+
aria-label="Temizle"
|
|
37
|
+
@click=${this._handleClearClick}
|
|
38
|
+
>
|
|
39
|
+
<ui-icon name="uil-times" size="14"></ui-icon>
|
|
40
|
+
</button>
|
|
41
|
+
`:s.nothing}
|
|
42
|
+
<button
|
|
43
|
+
id=${this.inputId+"-ico"}
|
|
44
|
+
slot="suffix"
|
|
45
|
+
class="dp__icon-btn"
|
|
46
|
+
type="button"
|
|
47
|
+
aria-label=${this._open?"Takvimi kapat":"Takvimi aç"}
|
|
48
|
+
aria-expanded=${this._open?"true":"false"}
|
|
49
|
+
aria-haspopup="dialog"
|
|
50
|
+
@click=${this._handleSuffixClick}
|
|
51
|
+
>
|
|
52
|
+
<ui-icon name="uil-calendar" size="16"></ui-icon>
|
|
53
|
+
</button>
|
|
54
|
+
</logosphere-formfield>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
${this._open?s.html`
|
|
58
|
+
<div
|
|
59
|
+
data-datepicker-popper
|
|
60
|
+
class="dp__popup"
|
|
61
|
+
role="dialog"
|
|
62
|
+
aria-modal="true"
|
|
63
|
+
aria-label="Tarih seçici"
|
|
64
|
+
>
|
|
65
|
+
<logosphere-calendar
|
|
66
|
+
.value=${this.value}
|
|
67
|
+
.min=${this.min}
|
|
68
|
+
.max=${this.max}
|
|
69
|
+
.disabled=${this.disabled}
|
|
70
|
+
.rangeMode=${this.rangeMode}
|
|
71
|
+
.disabledDays=${this.disabledDays}
|
|
72
|
+
.rangeStart=${this._rangeStart}
|
|
73
|
+
.rangeEnd=${this._rangeEnd}
|
|
74
|
+
.closable=${!0}
|
|
75
|
+
@change=${this._handleCalendarChange}
|
|
76
|
+
@rangeChange=${this._handleCalendarRangeChange}
|
|
77
|
+
@calendar-state-change=${this._handleCalendarStateChange}
|
|
78
|
+
@close-request=${()=>this._toggleOpen(!1)}
|
|
79
|
+
></logosphere-calendar>
|
|
80
|
+
</div>
|
|
81
|
+
`:s.nothing}
|
|
82
|
+
</div>
|
|
83
|
+
`}};exports.LogosphereDatePicker.styles=[s.css`
|
|
84
|
+
${s.unsafeCSS(c)}
|
|
85
|
+
`];i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"value",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"min",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"max",2);i([r.property({type:Boolean})],exports.LogosphereDatePicker.prototype,"required",2);i([r.property({type:Boolean})],exports.LogosphereDatePicker.prototype,"disabled",2);i([r.property({type:Boolean})],exports.LogosphereDatePicker.prototype,"readonly",2);i([r.property({type:Number})],exports.LogosphereDatePicker.prototype,"expandFactor",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"placeholder",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"label",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"helper",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"error",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"size",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"variant",2);i([r.property({type:Boolean})],exports.LogosphereDatePicker.prototype,"rangeMode",2);i([r.property({type:Array})],exports.LogosphereDatePicker.prototype,"disabledDays",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"rangeStart",2);i([r.property({type:String})],exports.LogosphereDatePicker.prototype,"rangeEnd",2);i([r.property({attribute:!1})],exports.LogosphereDatePicker.prototype,"onChange",2);i([r.property({attribute:!1})],exports.LogosphereDatePicker.prototype,"onRangeChange",2);i([r.state()],exports.LogosphereDatePicker.prototype,"_open",2);i([r.state()],exports.LogosphereDatePicker.prototype,"_rangeStart",2);i([r.state()],exports.LogosphereDatePicker.prototype,"_rangeEnd",2);i([r.state()],exports.LogosphereDatePicker.prototype,"_hasError",2);i([r.state()],exports.LogosphereDatePicker.prototype,"_errorMsg",2);i([r.state()],exports.LogosphereDatePicker.prototype,"_inputDraft",2);i([r.query(".dp__reference")],exports.LogosphereDatePicker.prototype,"_referenceElement",2);i([r.query("[data-datepicker-popper]")],exports.LogosphereDatePicker.prototype,"_popupElement",2);i([r.query("input")],exports.LogosphereDatePicker.prototype,"_inputElement",2);exports.LogosphereDatePicker=i([r.customElement("logosphere-datepicker")],exports.LogosphereDatePicker);
|
package/dist/datepicker.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./datepicker-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./datepicker-CwDDA6np.cjs");Object.defineProperty(exports,"LogosphereDatePicker",{enumerable:!0,get:()=>e.LogosphereDatePicker});
|
package/dist/datepicker.js
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";const l=require("lit"),i=require("lit/decorators.js");require("./ui-icon-DWh1MhBa.cjs");const p=":host{display:block}.drawer{position:relative;font-family:var(--font-family-base)}.drawer__trigger{display:inline-flex}.drawer__panel{position:fixed;top:0;bottom:0;width:var(--drawer-width, 360px);max-width:min(100vw,var(--drawer-width, 360px));background:var(--color-body-bg);border-left:1px solid var(--color-border);box-shadow:var(--shadow-lg);z-index:var(--z-index-modal);display:flex;flex-direction:column;pointer-events:none;opacity:0;transition:transform var(--transition-speed-slow) var(--transition-timing),opacity var(--transition-speed-slow) linear}.drawer__panel--right{right:0;transform:translate(100%)}.drawer__panel--left{left:0;transform:translate(-100%);border-left:none;border-right:1px solid var(--color-border)}.drawer__panel--open{transform:translate(0);pointer-events:auto;opacity:1}.drawer__header{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2)}.drawer__title{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-body-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer__close{width:28px;height:28px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-body-bg);display:inline-flex;align-items:center;justify-content:center;color:var(--color-body-text);cursor:pointer}.drawer__close:hover{background:var(--color-tertiary-bg)}.drawer__body{flex:1;overflow:auto;padding:var(--spacing-4)}";var c=Object.defineProperty,h=Object.getOwnPropertyDescriptor,s=(d,e,r,t)=>{for(var o=t>1?void 0:t?h(e,r):e,a=d.length-1,n;a>=0;a--)(n=d[a])&&(o=(t?n(e,r,o):n(o))||o);return t&&o&&c(e,r,o),o};exports.Drawer=class extends l.LitElement{constructor(){super(...arguments),this.open=!1,this.title="",this.position="right",this.width=360,this.closeOnEsc=!0,this.containerSelector="",this._frameStyle="",this._onKeyDown=e=>{!this.open||!this.closeOnEsc||(e.key==="Escape"||e.key==="Esc")&&this._setOpen(!1)},this._onTriggerClick=()=>this._setOpen(!0),this._onCloseClick=()=>this._setOpen(!1),this._syncFrame=()=>{const e=this._resolveContainer().getBoundingClientRect(),r=Math.max(0,e.top),t=Math.max(0,window.innerHeight-e.bottom),o=Math.max(0,e.left),a=Math.max(0,window.innerWidth-e.right),n=Math.max(0,e.width);this._frameStyle=this.position==="right"?`top:${r}px;bottom:${t}px;right:${a}px;max-width:${n}px;`:`top:${r}px;bottom:${t}px;left:${o}px;max-width:${n}px;`}}connectedCallback(){super.connectedCallback(),window.addEventListener("keydown",this._onKeyDown,!0),window.addEventListener("resize",this._syncFrame),window.addEventListener("scroll",this._syncFrame,!0),this.updateComplete.then(()=>this._syncFrame())}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("keydown",this._onKeyDown,!0),window.removeEventListener("resize",this._syncFrame),window.removeEventListener("scroll",this._syncFrame,!0)}updated(e){(e.has("open")||e.has("position")||e.has("width")||e.has("containerSelector"))&&this._syncFrame()}openDrawer(){this._setOpen(!0)}closeDrawer(){this._setOpen(!1)}_setOpen(e){this.open!==e&&(this.open=e,this.dispatchEvent(new CustomEvent(e?"drawer-open":"drawer-close",{bubbles:!0,composed:!0})))}_resolveContainer(){if(this.containerSelector){const e=this.getRootNode();if("querySelector"in e){const t=e.querySelector(this.containerSelector);if(t)return t}const r=document.querySelector(this.containerSelector);if(r)return r}return this.parentElement??this}render(){return l.html`
|
|
2
|
+
<div class="drawer">
|
|
3
|
+
<div class="drawer__trigger" @click=${this._onTriggerClick}>
|
|
4
|
+
<slot name="trigger"></slot>
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
<aside
|
|
8
|
+
class="drawer__panel drawer__panel--${this.position} ${this.open?"drawer__panel--open":""}"
|
|
9
|
+
style=${`--drawer-width:${this.width}px;${this._frameStyle}`}
|
|
10
|
+
role="dialog"
|
|
11
|
+
aria-modal="false"
|
|
12
|
+
aria-hidden=${this.open?"false":"true"}
|
|
13
|
+
>
|
|
14
|
+
<div class="drawer__header">
|
|
15
|
+
<h3 class="drawer__title">${this.title}</h3>
|
|
16
|
+
<button class="drawer__close" type="button" aria-label="Close drawer" @click=${this._onCloseClick}>
|
|
17
|
+
<ui-icon name="uil-times" size="16"></ui-icon>
|
|
18
|
+
</button>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="drawer__body">
|
|
21
|
+
<slot></slot>
|
|
22
|
+
</div>
|
|
23
|
+
</aside>
|
|
24
|
+
</div>
|
|
25
|
+
`}};exports.Drawer.styles=[l.css`${l.unsafeCSS(p)}`];s([i.property({type:Boolean,reflect:!0})],exports.Drawer.prototype,"open",2);s([i.property({type:String})],exports.Drawer.prototype,"title",2);s([i.property({type:String})],exports.Drawer.prototype,"position",2);s([i.property({type:Number})],exports.Drawer.prototype,"width",2);s([i.property({type:Boolean})],exports.Drawer.prototype,"closeOnEsc",2);s([i.property({type:String})],exports.Drawer.prototype,"containerSelector",2);exports.Drawer=s([i.customElement("logosphere-drawer")],exports.Drawer);
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { unsafeCSS as c, css as p, LitElement as h, html as w } from "lit";
|
|
2
|
+
import { property as l, customElement as _ } from "lit/decorators.js";
|
|
3
|
+
import "./ui-icon-Bys4HYSQ.js";
|
|
4
|
+
const m = ":host{display:block}.drawer{position:relative;font-family:var(--font-family-base)}.drawer__trigger{display:inline-flex}.drawer__panel{position:fixed;top:0;bottom:0;width:var(--drawer-width, 360px);max-width:min(100vw,var(--drawer-width, 360px));background:var(--color-body-bg);border-left:1px solid var(--color-border);box-shadow:var(--shadow-lg);z-index:var(--z-index-modal);display:flex;flex-direction:column;pointer-events:none;opacity:0;transition:transform var(--transition-speed-slow) var(--transition-timing),opacity var(--transition-speed-slow) linear}.drawer__panel--right{right:0;transform:translate(100%)}.drawer__panel--left{left:0;transform:translate(-100%);border-left:none;border-right:1px solid var(--color-border)}.drawer__panel--open{transform:translate(0);pointer-events:auto;opacity:1}.drawer__header{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2)}.drawer__title{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-body-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer__close{width:28px;height:28px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-body-bg);display:inline-flex;align-items:center;justify-content:center;color:var(--color-body-text);cursor:pointer}.drawer__close:hover{background:var(--color-tertiary-bg)}.drawer__body{flex:1;overflow:auto;padding:var(--spacing-4)}";
|
|
5
|
+
var f = Object.defineProperty, v = Object.getOwnPropertyDescriptor, s = (e, t, r, n) => {
|
|
6
|
+
for (var o = n > 1 ? void 0 : n ? v(t, r) : t, a = e.length - 1, d; a >= 0; a--)
|
|
7
|
+
(d = e[a]) && (o = (n ? d(t, r, o) : d(o)) || o);
|
|
8
|
+
return n && o && f(t, r, o), o;
|
|
9
|
+
};
|
|
10
|
+
let i = class extends h {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments), this.open = !1, this.title = "", this.position = "right", this.width = 360, this.closeOnEsc = !0, this.containerSelector = "", this._frameStyle = "", this._onKeyDown = (e) => {
|
|
13
|
+
!this.open || !this.closeOnEsc || (e.key === "Escape" || e.key === "Esc") && this._setOpen(!1);
|
|
14
|
+
}, this._onTriggerClick = () => this._setOpen(!0), this._onCloseClick = () => this._setOpen(!1), this._syncFrame = () => {
|
|
15
|
+
const e = this._resolveContainer().getBoundingClientRect(), t = Math.max(0, e.top), r = Math.max(0, window.innerHeight - e.bottom), n = Math.max(0, e.left), o = Math.max(0, window.innerWidth - e.right), a = Math.max(0, e.width);
|
|
16
|
+
this._frameStyle = this.position === "right" ? `top:${t}px;bottom:${r}px;right:${o}px;max-width:${a}px;` : `top:${t}px;bottom:${r}px;left:${n}px;max-width:${a}px;`;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
connectedCallback() {
|
|
20
|
+
super.connectedCallback(), window.addEventListener("keydown", this._onKeyDown, !0), window.addEventListener("resize", this._syncFrame), window.addEventListener("scroll", this._syncFrame, !0), this.updateComplete.then(() => this._syncFrame());
|
|
21
|
+
}
|
|
22
|
+
disconnectedCallback() {
|
|
23
|
+
super.disconnectedCallback(), window.removeEventListener("keydown", this._onKeyDown, !0), window.removeEventListener("resize", this._syncFrame), window.removeEventListener("scroll", this._syncFrame, !0);
|
|
24
|
+
}
|
|
25
|
+
updated(e) {
|
|
26
|
+
(e.has("open") || e.has("position") || e.has("width") || e.has("containerSelector")) && this._syncFrame();
|
|
27
|
+
}
|
|
28
|
+
openDrawer() {
|
|
29
|
+
this._setOpen(!0);
|
|
30
|
+
}
|
|
31
|
+
closeDrawer() {
|
|
32
|
+
this._setOpen(!1);
|
|
33
|
+
}
|
|
34
|
+
_setOpen(e) {
|
|
35
|
+
this.open !== e && (this.open = e, this.dispatchEvent(
|
|
36
|
+
new CustomEvent(e ? "drawer-open" : "drawer-close", {
|
|
37
|
+
bubbles: !0,
|
|
38
|
+
composed: !0
|
|
39
|
+
})
|
|
40
|
+
));
|
|
41
|
+
}
|
|
42
|
+
_resolveContainer() {
|
|
43
|
+
if (this.containerSelector) {
|
|
44
|
+
const e = this.getRootNode();
|
|
45
|
+
if ("querySelector" in e) {
|
|
46
|
+
const r = e.querySelector(this.containerSelector);
|
|
47
|
+
if (r) return r;
|
|
48
|
+
}
|
|
49
|
+
const t = document.querySelector(this.containerSelector);
|
|
50
|
+
if (t) return t;
|
|
51
|
+
}
|
|
52
|
+
return this.parentElement ?? this;
|
|
53
|
+
}
|
|
54
|
+
render() {
|
|
55
|
+
return w`
|
|
56
|
+
<div class="drawer">
|
|
57
|
+
<div class="drawer__trigger" @click=${this._onTriggerClick}>
|
|
58
|
+
<slot name="trigger"></slot>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
<aside
|
|
62
|
+
class="drawer__panel drawer__panel--${this.position} ${this.open ? "drawer__panel--open" : ""}"
|
|
63
|
+
style=${`--drawer-width:${this.width}px;${this._frameStyle}`}
|
|
64
|
+
role="dialog"
|
|
65
|
+
aria-modal="false"
|
|
66
|
+
aria-hidden=${this.open ? "false" : "true"}
|
|
67
|
+
>
|
|
68
|
+
<div class="drawer__header">
|
|
69
|
+
<h3 class="drawer__title">${this.title}</h3>
|
|
70
|
+
<button class="drawer__close" type="button" aria-label="Close drawer" @click=${this._onCloseClick}>
|
|
71
|
+
<ui-icon name="uil-times" size="16"></ui-icon>
|
|
72
|
+
</button>
|
|
73
|
+
</div>
|
|
74
|
+
<div class="drawer__body">
|
|
75
|
+
<slot></slot>
|
|
76
|
+
</div>
|
|
77
|
+
</aside>
|
|
78
|
+
</div>
|
|
79
|
+
`;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
i.styles = [p`${c(m)}`];
|
|
83
|
+
s([
|
|
84
|
+
l({ type: Boolean, reflect: !0 })
|
|
85
|
+
], i.prototype, "open", 2);
|
|
86
|
+
s([
|
|
87
|
+
l({ type: String })
|
|
88
|
+
], i.prototype, "title", 2);
|
|
89
|
+
s([
|
|
90
|
+
l({ type: String })
|
|
91
|
+
], i.prototype, "position", 2);
|
|
92
|
+
s([
|
|
93
|
+
l({ type: Number })
|
|
94
|
+
], i.prototype, "width", 2);
|
|
95
|
+
s([
|
|
96
|
+
l({ type: Boolean })
|
|
97
|
+
], i.prototype, "closeOnEsc", 2);
|
|
98
|
+
s([
|
|
99
|
+
l({ type: String })
|
|
100
|
+
], i.prototype, "containerSelector", 2);
|
|
101
|
+
i = s([
|
|
102
|
+
_("logosphere-drawer")
|
|
103
|
+
], i);
|
|
104
|
+
export {
|
|
105
|
+
i as D
|
|
106
|
+
};
|
package/dist/drawer.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./drawer-BvcPd5nz.cjs");Object.defineProperty(exports,"Drawer",{enumerable:!0,get:()=>e.Drawer});
|
package/dist/drawer.js
ADDED
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./button-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./button-CDRccsk9.cjs"),t=require("./badge-7IIatiRv.cjs"),o=require("./checkbox-CdDTRdKV.cjs"),n=require("./formfield-BFOIEicR.cjs"),u=require("./switch-Rnnn10bn.cjs"),a=require("./breadcrumb-Cop-B1J7.cjs"),b=require("./card-KiNHfEi2.cjs"),c=require("./input-JpAWN-M1.cjs"),i=require("./popover-C2p5Pmts.cjs"),d=require("./text-area-CZDdxbrN.cjs"),p=require("./chatbot-CIk-82Bz.cjs"),g=require("./calendar-LMn1ZF3N.cjs"),l=require("./combobox-C6zoQopK.cjs"),m=require("./datepicker-CwDDA6np.cjs"),s=require("./drawer-BvcPd5nz.cjs"),f=require("./download-manager-BSIMTGaK.cjs"),e=require("./leftmenu-DBcncBN8.cjs"),P=require("./modal-DQ8VFL-P.cjs"),y=require("./tab-DcjAlXzU.cjs"),j=require("./tree-menu-B1iwfHyd.cjs");Object.defineProperty(exports,"Button",{enumerable:!0,get:()=>r.Button});Object.defineProperty(exports,"LogosphereBadge",{enumerable:!0,get:()=>t.LogosphereBadge});Object.defineProperty(exports,"Checkbox",{enumerable:!0,get:()=>o.Checkbox});Object.defineProperty(exports,"FormField",{enumerable:!0,get:()=>n.FormField});Object.defineProperty(exports,"Switch",{enumerable:!0,get:()=>u.Switch});Object.defineProperty(exports,"Breadcrumb",{enumerable:!0,get:()=>a.Breadcrumb});Object.defineProperty(exports,"Card",{enumerable:!0,get:()=>b.Card});Object.defineProperty(exports,"LogosphereInput",{enumerable:!0,get:()=>c.LogosphereInput});Object.defineProperty(exports,"Popover",{enumerable:!0,get:()=>i.Popover});Object.defineProperty(exports,"TextArea",{enumerable:!0,get:()=>d.TextArea});Object.defineProperty(exports,"LogosphereChatBot",{enumerable:!0,get:()=>p.LogosphereChatBot});Object.defineProperty(exports,"LogosphereCalendar",{enumerable:!0,get:()=>g.LogosphereCalendar});Object.defineProperty(exports,"Combobox",{enumerable:!0,get:()=>l.Combobox});Object.defineProperty(exports,"LogosphereDatePicker",{enumerable:!0,get:()=>m.LogosphereDatePicker});Object.defineProperty(exports,"Drawer",{enumerable:!0,get:()=>s.Drawer});Object.defineProperty(exports,"DownloadManager",{enumerable:!0,get:()=>f.DownloadManager});Object.defineProperty(exports,"LeftMenu",{enumerable:!0,get:()=>e.LeftMenu});Object.defineProperty(exports,"LeftMenuItemElement",{enumerable:!0,get:()=>e.LeftMenuItemElement});Object.defineProperty(exports,"Modal",{enumerable:!0,get:()=>P.Modal});Object.defineProperty(exports,"LogosphereTab",{enumerable:!0,get:()=>y.LogosphereTab});Object.defineProperty(exports,"TreeMenu",{enumerable:!0,get:()=>j.TreeMenu});
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from "./organisms/Chatbot/index.js";
|
|
|
12
12
|
export * from "./organisms/Calendar/index.js";
|
|
13
13
|
export * from "./organisms/Combobox/index.js";
|
|
14
14
|
export * from "./organisms/DatePicker/index.js";
|
|
15
|
+
export * from "./organisms/Drawer/index.js";
|
|
15
16
|
export * from "./organisms/DownloadManager/index.js";
|
|
16
17
|
export * from "./organisms/LeftMenu/index.js";
|
|
17
18
|
export * from "./organisms/Modal/index.js";
|
package/dist/index.js
CHANGED
|
@@ -1,41 +1,43 @@
|
|
|
1
|
-
import { B as e } from "./button-
|
|
1
|
+
import { B as e } from "./button-BqOMevro.js";
|
|
2
2
|
import { L as t } from "./badge-B2chRYGd.js";
|
|
3
|
-
import { C as
|
|
3
|
+
import { C as s } from "./checkbox-g6kl2jGR.js";
|
|
4
4
|
import { F as x } from "./formfield-CNh4mBSs.js";
|
|
5
5
|
import { S as L } from "./switch-CG4SSjTg.js";
|
|
6
6
|
import { B as n } from "./breadcrumb-BB61Xt0s.js";
|
|
7
|
-
import { C
|
|
7
|
+
import { C } from "./card-CNoTUaJC.js";
|
|
8
8
|
import { L as u } from "./input-jmbvgWEq.js";
|
|
9
|
-
import { P as
|
|
10
|
-
import { T as
|
|
11
|
-
import { L as
|
|
12
|
-
import { L as
|
|
13
|
-
import { C as
|
|
14
|
-
import { L as
|
|
15
|
-
import { D as S } from "./
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
9
|
+
import { P as M } from "./popover-CaVOXo_k.js";
|
|
10
|
+
import { T as l } from "./text-area-Dec_k4rs.js";
|
|
11
|
+
import { L as T } from "./chatbot-Dl-WLXP3.js";
|
|
12
|
+
import { L as i } from "./calendar-WZ_GQvnn.js";
|
|
13
|
+
import { C as F } from "./combobox-LBU6VHLi.js";
|
|
14
|
+
import { L as k } from "./datepicker-SwKsdw3S.js";
|
|
15
|
+
import { D as S } from "./drawer-DVINJB4a.js";
|
|
16
|
+
import { D as A } from "./download-manager-a541AYhr.js";
|
|
17
|
+
import { L as j, a as q } from "./leftmenu-C-q1h_2U.js";
|
|
18
|
+
import { M as z } from "./modal-CnwRIdd8.js";
|
|
19
|
+
import { L as H } from "./tab-BYU_XEhp.js";
|
|
20
|
+
import { T as K } from "./tree-menu-BbX8GK_z.js";
|
|
20
21
|
export {
|
|
21
22
|
n as Breadcrumb,
|
|
22
23
|
e as Button,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
C as Card,
|
|
25
|
+
s as Checkbox,
|
|
26
|
+
F as Combobox,
|
|
27
|
+
A as DownloadManager,
|
|
28
|
+
S as Drawer,
|
|
27
29
|
x as FormField,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
c as LedsUiChatbot,
|
|
31
|
-
A as LeftMenu,
|
|
32
|
-
E as LeftMenuItemElement,
|
|
30
|
+
j as LeftMenu,
|
|
31
|
+
q as LeftMenuItemElement,
|
|
33
32
|
t as LogosphereBadge,
|
|
33
|
+
i as LogosphereCalendar,
|
|
34
|
+
T as LogosphereChatBot,
|
|
35
|
+
k as LogosphereDatePicker,
|
|
34
36
|
u as LogosphereInput,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
H as LogosphereTab,
|
|
38
|
+
z as Modal,
|
|
39
|
+
M as Popover,
|
|
38
40
|
L as Switch,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
+
l as TextArea,
|
|
42
|
+
K as TreeMenu
|
|
41
43
|
};
|