@logosphere-ui/core 0.0.0-alpha.13 → 0.0.0-alpha.15

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 (41) hide show
  1. package/dist/{button-BFq8AmDc.js → button-BqOMevro.js} +1 -1
  2. package/dist/{button-Bx870pUi.cjs → button-CDRccsk9.cjs} +1 -1
  3. package/dist/button.cjs +1 -1
  4. package/dist/button.js +1 -1
  5. package/dist/calendar-LMn1ZF3N.cjs +88 -0
  6. package/dist/calendar.cjs +1 -1
  7. package/dist/calendar.js +1 -1
  8. package/dist/{card-D0OT4Kuq.js → card-CNoTUaJC.js} +1 -1
  9. package/dist/{card-BmW0sPDb.cjs → card-KiNHfEi2.cjs} +1 -1
  10. package/dist/card.cjs +1 -1
  11. package/dist/card.js +1 -1
  12. package/dist/chatbot-CIk-82Bz.cjs +161 -0
  13. package/dist/{chatbot-Bn9tPquz.js → chatbot-Dl-WLXP3.js} +110 -172
  14. package/dist/chatbot.cjs +1 -1
  15. package/dist/chatbot.js +2 -2
  16. package/dist/datepicker-CwDDA6np.cjs +85 -0
  17. package/dist/datepicker.cjs +1 -1
  18. package/dist/datepicker.js +2 -2
  19. package/dist/drawer-BvcPd5nz.cjs +25 -0
  20. package/dist/drawer-DVINJB4a.js +106 -0
  21. package/dist/drawer.cjs +1 -0
  22. package/dist/drawer.js +4 -0
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.js +30 -28
  26. package/dist/index.umd.js +137 -135
  27. package/dist/left-menu.cjs +1 -1
  28. package/dist/left-menu.js +1 -1
  29. package/dist/{leftmenu-GsoBxkeJ.js → leftmenu-C-q1h_2U.js} +1 -1
  30. package/dist/{leftmenu-Bgqfmoe5.cjs → leftmenu-DBcncBN8.cjs} +1 -1
  31. package/dist/organisms/Calendar/calendar.d.ts +2 -2
  32. package/dist/organisms/Chatbot/chatbot.d.ts +1 -8
  33. package/dist/organisms/Chatbot/index.d.ts +1 -1
  34. package/dist/organisms/DatePicker/datepicker.d.ts +2 -2
  35. package/dist/organisms/Drawer/drawer.d.ts +29 -0
  36. package/dist/organisms/Drawer/index.d.ts +1 -0
  37. package/dist/styles/main.css +0 -1
  38. package/package.json +16 -1
  39. package/dist/calendar-DF3q_dcG.cjs +0 -88
  40. package/dist/chatbot-CL9OGmNE.cjs +0 -183
  41. 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);
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./datepicker-BLv_G9Yb.cjs");Object.defineProperty(exports,"LedsDatePicker",{enumerable:!0,get:()=>e.LedsDatePicker});
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});
@@ -1,4 +1,4 @@
1
- import { L as a } from "./datepicker-SwKsdw3S.js";
1
+ import { L as r } from "./datepicker-SwKsdw3S.js";
2
2
  export {
3
- a as LedsDatePicker
3
+ r as LogosphereDatePicker
4
4
  };
@@ -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
+ };
@@ -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
@@ -0,0 +1,4 @@
1
+ import { D as e } from "./drawer-DVINJB4a.js";
2
+ export {
3
+ e as Drawer
4
+ };
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./button-Bx870pUi.cjs"),t=require("./badge-7IIatiRv.cjs"),o=require("./checkbox-CdDTRdKV.cjs"),n=require("./formfield-BFOIEicR.cjs"),u=require("./switch-Rnnn10bn.cjs"),b=require("./breadcrumb-Cop-B1J7.cjs"),a=require("./card-BmW0sPDb.cjs"),c=require("./input-JpAWN-M1.cjs"),i=require("./popover-C2p5Pmts.cjs"),d=require("./text-area-CZDdxbrN.cjs"),l=require("./chatbot-CL9OGmNE.cjs"),m=require("./calendar-DF3q_dcG.cjs"),p=require("./combobox-C6zoQopK.cjs"),g=require("./datepicker-BLv_G9Yb.cjs"),s=require("./download-manager-BSIMTGaK.cjs"),e=require("./leftmenu-Bgqfmoe5.cjs"),f=require("./modal-DQ8VFL-P.cjs"),P=require("./tab-DcjAlXzU.cjs"),y=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:()=>b.Breadcrumb});Object.defineProperty(exports,"Card",{enumerable:!0,get:()=>a.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,"LedsUiChatbot",{enumerable:!0,get:()=>l.LedsUiChatbot});Object.defineProperty(exports,"LedsCalendar",{enumerable:!0,get:()=>m.LedsCalendar});Object.defineProperty(exports,"Combobox",{enumerable:!0,get:()=>p.Combobox});Object.defineProperty(exports,"LedsDatePicker",{enumerable:!0,get:()=>g.LedsDatePicker});Object.defineProperty(exports,"DownloadManager",{enumerable:!0,get:()=>s.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:()=>f.Modal});Object.defineProperty(exports,"LogosphereTab",{enumerable:!0,get:()=>P.LogosphereTab});Object.defineProperty(exports,"TreeMenu",{enumerable:!0,get:()=>y.TreeMenu});
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-BFq8AmDc.js";
1
+ import { B as e } from "./button-BqOMevro.js";
2
2
  import { L as t } from "./badge-B2chRYGd.js";
3
- import { C as m } from "./checkbox-g6kl2jGR.js";
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 as b } from "./card-D0OT4Kuq.js";
7
+ import { C } from "./card-CNoTUaJC.js";
8
8
  import { L as u } from "./input-jmbvgWEq.js";
9
- import { P as g } from "./popover-CaVOXo_k.js";
10
- import { T as B } from "./text-area-Dec_k4rs.js";
11
- import { L as c } from "./chatbot-Bn9tPquz.js";
12
- import { L as D } from "./calendar-WZ_GQvnn.js";
13
- import { C as P } from "./combobox-LBU6VHLi.js";
14
- import { L as w } from "./datepicker-SwKsdw3S.js";
15
- import { D as S } from "./download-manager-a541AYhr.js";
16
- import { L as A, a as E } from "./leftmenu-GsoBxkeJ.js";
17
- import { M as j } from "./modal-CnwRIdd8.js";
18
- import { L as y } from "./tab-BYU_XEhp.js";
19
- import { T as G } from "./tree-menu-BbX8GK_z.js";
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
- b as Card,
24
- m as Checkbox,
25
- P as Combobox,
26
- S as DownloadManager,
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
- D as LedsCalendar,
29
- w as LedsDatePicker,
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
- y as LogosphereTab,
36
- j as Modal,
37
- g as Popover,
37
+ H as LogosphereTab,
38
+ z as Modal,
39
+ M as Popover,
38
40
  L as Switch,
39
- B as TextArea,
40
- G as TreeMenu
41
+ l as TextArea,
42
+ K as TreeMenu
41
43
  };