@logosphere-ui/core 0.0.0-alpha.42 → 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.
Files changed (163) hide show
  1. package/AGENTS.md +147 -66
  2. package/dist/AGENTS.md +147 -66
  3. package/dist/accordion-CYuCj7nB.cjs +21 -0
  4. package/dist/accordion-cDabqwu6.js +96 -0
  5. package/dist/accordion.cjs +1 -0
  6. package/dist/accordion.js +4 -0
  7. package/dist/atoms/Checkbox/checkbox.d.ts +11 -2
  8. package/dist/atoms/FormField/formfield.d.ts +2 -0
  9. package/dist/{badge-DsDxWEHx.js → badge-BhINg1p5.js} +20 -20
  10. package/dist/{badge-DvaKpUHe.cjs → badge-CKSG_MyA.cjs} +1 -1
  11. package/dist/badge.cjs +1 -1
  12. package/dist/badge.js +1 -1
  13. package/dist/breadcrumb-BOuCLUJh.cjs +12 -0
  14. package/dist/breadcrumb-BeJqq-5C.js +41 -0
  15. package/dist/breadcrumb.cjs +1 -1
  16. package/dist/breadcrumb.js +1 -1
  17. package/dist/button-CVkIa7M0.js +58 -0
  18. package/dist/button-vdNReBMi.cjs +10 -0
  19. package/dist/button.cjs +1 -1
  20. package/dist/button.js +1 -1
  21. package/dist/{calendar-CZ_IN2TF.js → calendar-C71sj3Ki.js} +1 -1
  22. package/dist/{calendar-CIgyrv3U.cjs → calendar-DZJM5Tyu.cjs} +1 -1
  23. package/dist/calendar.cjs +1 -1
  24. package/dist/calendar.js +1 -1
  25. package/dist/{card-MDwFGplY.js → card-C7xXMV3h.js} +3 -3
  26. package/dist/card-DmQRNKtk.cjs +43 -0
  27. package/dist/card.cjs +1 -1
  28. package/dist/card.js +1 -1
  29. package/dist/chatbot-BAou4THb.cjs +183 -0
  30. package/dist/{chatbot-CHgiUY4h.js → chatbot-BRfqXYYt.js} +13 -13
  31. package/dist/chatbot.cjs +1 -1
  32. package/dist/chatbot.js +1 -1
  33. package/dist/checkbox-BAbPDN6x.cjs +53 -0
  34. package/dist/checkbox-CTfbav6M.js +152 -0
  35. package/dist/checkbox.cjs +1 -1
  36. package/dist/checkbox.js +1 -1
  37. package/dist/{chip-group-CpcjGoRm.cjs → chip-group-D4DwnC37.cjs} +1 -1
  38. package/dist/{chip-group-BUL2H8rr.js → chip-group-DzfOd6Vw.js} +1 -1
  39. package/dist/chip-group.cjs +1 -1
  40. package/dist/chip-group.js +1 -1
  41. package/dist/collapse-CbRE8ABx.cjs +47 -0
  42. package/dist/collapse-DY6SJ9jS.js +141 -0
  43. package/dist/collapse.cjs +1 -0
  44. package/dist/collapse.js +4 -0
  45. package/dist/combobox-BAa3UAQs.cjs +113 -0
  46. package/dist/{combobox-jak7Ac1m.js → combobox-BR05Tgfd.js} +31 -8
  47. package/dist/combobox.cjs +1 -1
  48. package/dist/combobox.js +1 -1
  49. package/dist/{datepicker-BgysIOZI.js → datepicker-BFYWQRrJ.js} +58 -51
  50. package/dist/datepicker-BWE4qDJM.cjs +85 -0
  51. package/dist/datepicker.cjs +1 -1
  52. package/dist/datepicker.js +1 -1
  53. package/dist/{drawer-3nyjAkcS.cjs → drawer-CRu4G2zu.cjs} +2 -2
  54. package/dist/{drawer-CE9zzllI.js → drawer-DhuBPWHP.js} +3 -3
  55. package/dist/drawer.cjs +1 -1
  56. package/dist/drawer.js +1 -1
  57. package/dist/formfield-JXiv9mvJ.cjs +33 -0
  58. package/dist/{formfield-O327HYt0.js → formfield-ss2mFweu.js} +59 -52
  59. package/dist/formfield.cjs +1 -1
  60. package/dist/formfield.js +1 -1
  61. package/dist/icon.cjs +1 -0
  62. package/dist/icon.js +4 -0
  63. package/dist/index.cjs +1 -291
  64. package/dist/index.d.ts +1 -0
  65. package/dist/index.js +65 -908
  66. package/dist/index.umd.js +284 -215
  67. package/dist/input-DyLKo7h6.cjs +60 -0
  68. package/dist/input-N3Z8D7q1.js +278 -0
  69. package/dist/input-group-C6sA1lzj.cjs +5 -0
  70. package/dist/input-group-DUPlrpug.js +66 -0
  71. package/dist/input-group.cjs +1 -0
  72. package/dist/input-group.js +4 -0
  73. package/dist/input.cjs +1 -1
  74. package/dist/input.js +1 -1
  75. package/dist/left-menu.cjs +1 -1
  76. package/dist/left-menu.js +3 -3
  77. package/dist/leftmenu-BcUNnvly.cjs +120 -0
  78. package/dist/leftmenu-Cg57EaSY.js +361 -0
  79. package/dist/modal-g3KbWncV.cjs +84 -0
  80. package/dist/{modal-DUIv_yoo.js → modal-vSjEpYrG.js} +4 -4
  81. package/dist/modal.cjs +1 -1
  82. package/dist/modal.js +1 -1
  83. package/dist/molecules/Input/input.d.ts +17 -0
  84. package/dist/molecules/Popover/popover.d.ts +4 -0
  85. package/dist/organisms/Combobox/combobox.d.ts +9 -0
  86. package/dist/organisms/DatePicker/datepicker.d.ts +2 -0
  87. package/dist/organisms/LeftMenu/index.d.ts +1 -1
  88. package/dist/organisms/LeftMenu/leftmenu-types.d.ts +24 -0
  89. package/dist/organisms/LeftMenu/leftmenu.d.ts +24 -9
  90. package/dist/organisms/TreeMenu/tree-menu.d.ts +20 -2
  91. package/dist/{pagination-B7jknoOz.js → pagination-CjXvpE2j.js} +61 -61
  92. package/dist/pagination-Nnzacqdo.cjs +169 -0
  93. package/dist/pagination.cjs +1 -1
  94. package/dist/pagination.js +1 -1
  95. package/dist/popover-CrXUbUR-.cjs +30 -0
  96. package/dist/popover-M5ZcS5rj.js +161 -0
  97. package/dist/popover.cjs +1 -1
  98. package/dist/popover.js +1 -1
  99. package/dist/shared/icons/index.d.ts +1 -0
  100. package/dist/slider-DSRs5uhl.cjs +108 -0
  101. package/dist/slider-ntLRajQa.js +280 -0
  102. package/dist/slider.cjs +1 -0
  103. package/dist/slider.js +4 -0
  104. package/dist/split-button-BdBweoip.js +177 -0
  105. package/dist/split-button-BpffPlVg.cjs +63 -0
  106. package/dist/split-button.cjs +1 -0
  107. package/dist/split-button.js +4 -0
  108. package/dist/stepper-CZhwgLNp.js +122 -0
  109. package/dist/stepper-ZOMaU6aZ.cjs +52 -0
  110. package/dist/stepper.cjs +1 -0
  111. package/dist/stepper.js +4 -0
  112. package/dist/{switch-8RGGesy5.cjs → switch-Do6SCkPJ.cjs} +2 -2
  113. package/dist/{switch-DNqPqH-R.js → switch-uYVuohJ-.js} +25 -21
  114. package/dist/switch.cjs +1 -1
  115. package/dist/switch.js +1 -1
  116. package/dist/tab-BvRVHpWs.cjs +41 -0
  117. package/dist/{tab-CuBCFGoO.js → tab-Byh4UgFB.js} +1 -1
  118. package/dist/tab.cjs +1 -1
  119. package/dist/tab.js +1 -1
  120. package/dist/{text-area-C73JxnqH.js → text-area-1rALZ0iy.js} +16 -12
  121. package/dist/text-area-D_TYL4_q.cjs +51 -0
  122. package/dist/textarea.cjs +1 -1
  123. package/dist/textarea.js +1 -1
  124. package/dist/{timepicker-DMzGYd0p.js → timepicker-B9l6HN-d.js} +6 -2
  125. package/dist/{timepicker-CLJKWWGm.cjs → timepicker-Bpf2d4Nn.cjs} +1 -1
  126. package/dist/timepicker.cjs +1 -1
  127. package/dist/timepicker.js +1 -1
  128. package/dist/{toast-container-B5v74b_5.js → toast-container-C5qYjInG.js} +4 -4
  129. package/dist/toast-container-D2dyP20J.cjs +64 -0
  130. package/dist/toast.cjs +1 -1
  131. package/dist/toast.js +1 -1
  132. package/dist/tree-menu-BZ7aBC7R.js +237 -0
  133. package/dist/tree-menu-DDQ_DYl7.cjs +78 -0
  134. package/dist/tree-menu.cjs +1 -1
  135. package/dist/tree-menu.js +1 -1
  136. package/dist/{ui-icon-BMJNdIOq.js → ui-icon-BeR-PaPg.js} +11 -7
  137. package/dist/{ui-icon-DIucAQC_.cjs → ui-icon-DWl7I5BQ.cjs} +2 -2
  138. package/package.json +6 -1
  139. package/dist/breadcrumb-BB61Xt0s.js +0 -41
  140. package/dist/breadcrumb-Cop-B1J7.cjs +0 -12
  141. package/dist/button-DRZ4sG4T.cjs +0 -10
  142. package/dist/button-Uu9oaieg.js +0 -58
  143. package/dist/card-BOCW7gad.cjs +0 -43
  144. package/dist/chatbot-B-NiZIYK.cjs +0 -183
  145. package/dist/checkbox-CX0LgsWP.js +0 -148
  146. package/dist/checkbox-DpbKHANK.cjs +0 -53
  147. package/dist/combobox-BmIFPk8X.cjs +0 -113
  148. package/dist/datepicker-DOBmbxlo.cjs +0 -85
  149. package/dist/formfield-CRcyUMvQ.cjs +0 -33
  150. package/dist/input-CQS0LzF-.cjs +0 -59
  151. package/dist/input-CeF3YJk-.js +0 -257
  152. package/dist/leftmenu-CmWvnA6L.js +0 -301
  153. package/dist/leftmenu-p9aR2QTy.cjs +0 -83
  154. package/dist/modal-dUnnHe8u.cjs +0 -84
  155. package/dist/organisms/LeftMenu/leftmenu-item.d.ts +0 -14
  156. package/dist/pagination-BkqbWBOn.cjs +0 -169
  157. package/dist/popover-CYDoeLKp.cjs +0 -30
  158. package/dist/popover-DDaG8MSj.js +0 -143
  159. package/dist/tab-CDMcFHvP.cjs +0 -41
  160. package/dist/text-area-Cprb-azV.cjs +0 -51
  161. package/dist/toast-container-6t6yEP9Y.cjs +0 -64
  162. package/dist/tree-menu-CkOPxr-W.js +0 -154
  163. package/dist/tree-menu-WNwZMreD.cjs +0 -47
@@ -0,0 +1,47 @@
1
+ "use strict";const t=require("lit"),s=require("lit/decorators.js");require("./ui-icon-DWl7I5BQ.cjs");const c=":host{display:block}.collapse{font-family:var(--font-family-base);background-color:var(--color-body-bg);overflow:hidden}.collapse--full{border:1px solid var(--color-border);border-radius:var(--radius-base)}.collapse--bottom{border-bottom:1px solid var(--color-border);border-radius:0}.collapse__header{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4) var(--spacing-4);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-speed-fast) var(--transition-timing);outline:none}.collapse--small .collapse__header{padding:var(--spacing-2) var(--spacing-4)}.collapse--full .collapse__header{border-radius:calc(var(--radius-base) - 1px)}.collapse--full.collapse--expanded .collapse__header{border-radius:calc(var(--radius-base) - 1px) calc(var(--radius-base) - 1px) 0 0}.collapse--full .collapse__header:hover:not(.collapse--disabled .collapse__header){background-color:var(--color-body-bg-hover)}.collapse--bottom .collapse__header:hover:not(.collapse--disabled .collapse__header){background-color:var(--color-body-bg-hover)}.collapse__header:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:calc(var(--radius-base) - 1px)}.collapse__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1.2;letter-spacing:-.16px;color:var(--color-body-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapse__header-extra:empty{display:none}.collapse__header-extra{display:flex;align-items:center;gap:var(--spacing-2);flex-shrink:0}.collapse__header-spacer{flex:1}.collapse__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-secondary);transition:transform var(--transition-speed-base) var(--transition-timing)}.collapse__icon--expanded{transform:rotate(180deg)}.collapse__body{height:0;overflow:hidden;transition:height var(--transition-speed-slow) var(--transition-timing)}.collapse__body-inner{padding:0 var(--spacing-4) var(--spacing-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-body-color)}.collapse--bottom .collapse__body-inner{padding-top:var(--spacing-2)}.collapse--disabled .collapse__header{cursor:not-allowed;pointer-events:none}.collapse--disabled .collapse__title,.collapse--disabled .collapse__icon{color:var(--color-secondary-disabled)}.collapse--disabled.collapse--full{border-color:var(--color-secondary-disabled);background-color:var(--color-light-bg)}.collapse--disabled.collapse--bottom{border-bottom-color:var(--color-secondary-disabled);background-color:transparent}";var h=Object.defineProperty,b=Object.getOwnPropertyDescriptor,a=(i,e,o,r)=>{for(var l=r>1?void 0:r?b(e,o):e,d=i.length-1,p;d>=0;d--)(p=i[d])&&(l=(r?p(e,o,l):p(l))||l);return r&&l&&h(e,o,l),l};const n=typeof requestAnimationFrame<"u"?requestAnimationFrame.bind(window):i=>setTimeout(()=>i(Date.now()),16);exports.Collapse=class extends t.LitElement{constructor(){super(...arguments),this.title="",this.expanded=!1,this.disabled=!1,this.iconPosition="right",this.border="full",this.size="default"}_toggle(){this.disabled||(this.expanded=!this.expanded,this.dispatchEvent(new CustomEvent("toggle",{detail:{expanded:this.expanded},bubbles:!0,composed:!0})))}_onKeydown(e){(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),this._toggle())}_lockHeightForClose(){const e=this._body;if(!e)return;const o=e.getBoundingClientRect().height;e.style.height=`${o}px`,e.style.overflow="hidden"}willUpdate(e){super.willUpdate(e),e.has("expanded")&&!this.expanded&&this._lockHeightForClose()}updated(e){if(super.updated(e),!e.has("expanded")||!this._body||!this._inner)return;const o=this._body,r=this._inner;this.expanded?(o.style.height="0px",o.style.overflow="hidden",n(()=>{n(()=>{o.style.height=`${r.scrollHeight}px`,o.addEventListener("transitionend",function l(){o.style.height="auto",o.style.overflow="",o.removeEventListener("transitionend",l)},{once:!0})})})):(o.getBoundingClientRect(),n(()=>{n(()=>{o.style.height="0px"})}))}_renderIcon(){return t.html`
2
+ <span class="collapse__icon ${this.expanded?"collapse__icon--expanded":""}">
3
+ <ui-icon name="uil-angle-down" size="22"></ui-icon>
4
+ </span>
5
+ `}render(){return t.html`
6
+ <div
7
+ class="collapse
8
+ collapse--${this.border}
9
+ collapse--${this.size}
10
+ ${this.expanded?"collapse--expanded":""}
11
+ ${this.disabled?"collapse--disabled":""}"
12
+ >
13
+ <!-- Header -->
14
+ <div
15
+ class="collapse__header"
16
+ role="button"
17
+ tabindex=${this.disabled?"-1":"0"}
18
+ aria-expanded=${this.expanded?"true":"false"}
19
+ aria-disabled=${this.disabled?"true":t.nothing}
20
+ @click=${this._toggle}
21
+ @keydown=${this._onKeydown}
22
+ >
23
+ ${this.iconPosition==="left"?this._renderIcon():t.nothing}
24
+
25
+ <div class="collapse__title">
26
+ <slot name="title">${this.title}</slot>
27
+ </div>
28
+
29
+ <div class="collapse__header-extra">
30
+ <slot name="extra"></slot>
31
+ </div>
32
+
33
+ <!-- pushes extra to title side, icon stays at far right -->
34
+ <span class="collapse__header-spacer"></span>
35
+
36
+ ${this.iconPosition==="right"?this._renderIcon():t.nothing}
37
+ </div>
38
+
39
+ <!-- Body (animated) -->
40
+ <div class="collapse__body ${this.expanded?"collapse__body--visible":""}">
41
+ <div class="collapse__body-inner">
42
+ <!-- slot="body" for explicit usage; default slot as fallback -->
43
+ <slot name="body"><slot></slot></slot>
44
+ </div>
45
+ </div>
46
+ </div>
47
+ `}};exports.Collapse.styles=[t.css`${t.unsafeCSS(c)}`];a([s.property({type:String})],exports.Collapse.prototype,"title",2);a([s.property({type:Boolean,reflect:!0})],exports.Collapse.prototype,"expanded",2);a([s.property({type:Boolean,reflect:!0})],exports.Collapse.prototype,"disabled",2);a([s.property({type:String})],exports.Collapse.prototype,"iconPosition",2);a([s.property({type:String})],exports.Collapse.prototype,"border",2);a([s.property({type:String})],exports.Collapse.prototype,"size",2);a([s.query(".collapse__body-inner")],exports.Collapse.prototype,"_inner",2);a([s.query(".collapse__body")],exports.Collapse.prototype,"_body",2);exports.Collapse=a([s.customElement("logosphere-collapse")],exports.Collapse);
@@ -0,0 +1,141 @@
1
+ import { unsafeCSS as _, css as v, LitElement as g, html as h, nothing as p } from "lit";
2
+ import { property as r, query as b, customElement as u } from "lit/decorators.js";
3
+ import "./ui-icon-BeR-PaPg.js";
4
+ const y = ":host{display:block}.collapse{font-family:var(--font-family-base);background-color:var(--color-body-bg);overflow:hidden}.collapse--full{border:1px solid var(--color-border);border-radius:var(--radius-base)}.collapse--bottom{border-bottom:1px solid var(--color-border);border-radius:0}.collapse__header{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4) var(--spacing-4);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-speed-fast) var(--transition-timing);outline:none}.collapse--small .collapse__header{padding:var(--spacing-2) var(--spacing-4)}.collapse--full .collapse__header{border-radius:calc(var(--radius-base) - 1px)}.collapse--full.collapse--expanded .collapse__header{border-radius:calc(var(--radius-base) - 1px) calc(var(--radius-base) - 1px) 0 0}.collapse--full .collapse__header:hover:not(.collapse--disabled .collapse__header){background-color:var(--color-body-bg-hover)}.collapse--bottom .collapse__header:hover:not(.collapse--disabled .collapse__header){background-color:var(--color-body-bg-hover)}.collapse__header:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:calc(var(--radius-base) - 1px)}.collapse__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1.2;letter-spacing:-.16px;color:var(--color-body-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapse__header-extra:empty{display:none}.collapse__header-extra{display:flex;align-items:center;gap:var(--spacing-2);flex-shrink:0}.collapse__header-spacer{flex:1}.collapse__icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-secondary);transition:transform var(--transition-speed-base) var(--transition-timing)}.collapse__icon--expanded{transform:rotate(180deg)}.collapse__body{height:0;overflow:hidden;transition:height var(--transition-speed-slow) var(--transition-timing)}.collapse__body-inner{padding:0 var(--spacing-4) var(--spacing-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-body-color)}.collapse--bottom .collapse__body-inner{padding-top:var(--spacing-2)}.collapse--disabled .collapse__header{cursor:not-allowed;pointer-events:none}.collapse--disabled .collapse__title,.collapse--disabled .collapse__icon{color:var(--color-secondary-disabled)}.collapse--disabled.collapse--full{border-color:var(--color-secondary-disabled);background-color:var(--color-light-bg)}.collapse--disabled.collapse--bottom{border-bottom-color:var(--color-secondary-disabled);background-color:transparent}";
5
+ var f = Object.defineProperty, x = Object.getOwnPropertyDescriptor, t = (e, o, i, a) => {
6
+ for (var s = a > 1 ? void 0 : a ? x(o, i) : o, d = e.length - 1, c; d >= 0; d--)
7
+ (c = e[d]) && (s = (a ? c(o, i, s) : c(s)) || s);
8
+ return a && s && f(o, i, s), s;
9
+ };
10
+ const n = typeof requestAnimationFrame < "u" ? requestAnimationFrame.bind(window) : (e) => setTimeout(() => e(Date.now()), 16);
11
+ let l = class extends g {
12
+ constructor() {
13
+ super(...arguments), this.title = "", this.expanded = !1, this.disabled = !1, this.iconPosition = "right", this.border = "full", this.size = "default";
14
+ }
15
+ // ── Toggle ────────────────────────────────────────────────────────────────
16
+ _toggle() {
17
+ this.disabled || (this.expanded = !this.expanded, this.dispatchEvent(
18
+ new CustomEvent("toggle", {
19
+ detail: { expanded: this.expanded },
20
+ bubbles: !0,
21
+ composed: !0
22
+ })
23
+ ));
24
+ }
25
+ _onKeydown(e) {
26
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this._toggle());
27
+ }
28
+ // ── Animated height ───────────────────────────────────────────────────────
29
+ /**
30
+ * CLOSING: Called inside willUpdate — BEFORE Lit re-renders — so we can
31
+ * capture and lock the current height before the CSS class is removed.
32
+ */
33
+ _lockHeightForClose() {
34
+ const e = this._body;
35
+ if (!e) return;
36
+ const o = e.getBoundingClientRect().height;
37
+ e.style.height = `${o}px`, e.style.overflow = "hidden";
38
+ }
39
+ willUpdate(e) {
40
+ super.willUpdate(e), e.has("expanded") && !this.expanded && this._lockHeightForClose();
41
+ }
42
+ updated(e) {
43
+ if (super.updated(e), !e.has("expanded") || !this._body || !this._inner) return;
44
+ const o = this._body, i = this._inner;
45
+ this.expanded ? (o.style.height = "0px", o.style.overflow = "hidden", n(() => {
46
+ n(() => {
47
+ o.style.height = `${i.scrollHeight}px`, o.addEventListener("transitionend", function a() {
48
+ o.style.height = "auto", o.style.overflow = "", o.removeEventListener("transitionend", a);
49
+ }, { once: !0 });
50
+ });
51
+ })) : (o.getBoundingClientRect(), n(() => {
52
+ n(() => {
53
+ o.style.height = "0px";
54
+ });
55
+ }));
56
+ }
57
+ // ── Render ────────────────────────────────────────────────────────────────
58
+ _renderIcon() {
59
+ return h`
60
+ <span class="collapse__icon ${this.expanded ? "collapse__icon--expanded" : ""}">
61
+ <ui-icon name="uil-angle-down" size="22"></ui-icon>
62
+ </span>
63
+ `;
64
+ }
65
+ render() {
66
+ return h`
67
+ <div
68
+ class="collapse
69
+ collapse--${this.border}
70
+ collapse--${this.size}
71
+ ${this.expanded ? "collapse--expanded" : ""}
72
+ ${this.disabled ? "collapse--disabled" : ""}"
73
+ >
74
+ <!-- Header -->
75
+ <div
76
+ class="collapse__header"
77
+ role="button"
78
+ tabindex=${this.disabled ? "-1" : "0"}
79
+ aria-expanded=${this.expanded ? "true" : "false"}
80
+ aria-disabled=${this.disabled ? "true" : p}
81
+ @click=${this._toggle}
82
+ @keydown=${this._onKeydown}
83
+ >
84
+ ${this.iconPosition === "left" ? this._renderIcon() : p}
85
+
86
+ <div class="collapse__title">
87
+ <slot name="title">${this.title}</slot>
88
+ </div>
89
+
90
+ <div class="collapse__header-extra">
91
+ <slot name="extra"></slot>
92
+ </div>
93
+
94
+ <!-- pushes extra to title side, icon stays at far right -->
95
+ <span class="collapse__header-spacer"></span>
96
+
97
+ ${this.iconPosition === "right" ? this._renderIcon() : p}
98
+ </div>
99
+
100
+ <!-- Body (animated) -->
101
+ <div class="collapse__body ${this.expanded ? "collapse__body--visible" : ""}">
102
+ <div class="collapse__body-inner">
103
+ <!-- slot="body" for explicit usage; default slot as fallback -->
104
+ <slot name="body"><slot></slot></slot>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ `;
109
+ }
110
+ };
111
+ l.styles = [v`${_(y)}`];
112
+ t([
113
+ r({ type: String })
114
+ ], l.prototype, "title", 2);
115
+ t([
116
+ r({ type: Boolean, reflect: !0 })
117
+ ], l.prototype, "expanded", 2);
118
+ t([
119
+ r({ type: Boolean, reflect: !0 })
120
+ ], l.prototype, "disabled", 2);
121
+ t([
122
+ r({ type: String })
123
+ ], l.prototype, "iconPosition", 2);
124
+ t([
125
+ r({ type: String })
126
+ ], l.prototype, "border", 2);
127
+ t([
128
+ r({ type: String })
129
+ ], l.prototype, "size", 2);
130
+ t([
131
+ b(".collapse__body-inner")
132
+ ], l.prototype, "_inner", 2);
133
+ t([
134
+ b(".collapse__body")
135
+ ], l.prototype, "_body", 2);
136
+ l = t([
137
+ u("logosphere-collapse")
138
+ ], l);
139
+ export {
140
+ l as C
141
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./collapse-CbRE8ABx.cjs");Object.defineProperty(exports,"Collapse",{enumerable:!0,get:()=>e.Collapse});
@@ -0,0 +1,4 @@
1
+ import { C as e } from "./collapse-DY6SJ9jS.js";
2
+ export {
3
+ e as Collapse
4
+ };
@@ -0,0 +1,113 @@
1
+ "use strict";const r=require("lit"),o=require("lit/decorators.js"),b=require("@popperjs/core");require("./badge-CKSG_MyA.cjs");require("./checkbox-BAbPDN6x.cjs");require("./formfield-JXiv9mvJ.cjs");require("./ui-icon-DWl7I5BQ.cjs");const u=':host{display:block}.combobox{display:flex;flex-direction:column;gap:var(--spacing-1);font-family:var(--font-family-base);width:100%}.combobox__label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-body-text)}.combobox__label--required:after{content:" *";color:var(--color-primary)}.combobox__readonly{border:none;background:transparent;font-size:var(--font-size-sm);color:var(--color-body-text);padding:0;outline:none;font-family:var(--font-family-base)}.combobox__wrapper{position:relative;width:100%;box-sizing:border-box;padding-right:16px;cursor:pointer}.combobox__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--spacing-2);padding:0;border:none;border-radius:0;background-color:transparent;cursor:pointer;overflow:hidden;font-size:var(--font-size-sm);color:var(--color-body-text);transition:color var(--transition-speed-fast) var(--transition-timing);box-sizing:border-box}.combobox__trigger--default{min-height:20px}.combobox__trigger--large{min-height:24px;font-size:var(--font-size-base)}.combobox__trigger--open{color:var(--color-body-text)}.combobox__trigger--readonly{cursor:default;color:var(--color-tertiary)}.combobox__trigger--disabled{cursor:not-allowed;color:var(--color-tertiary)}.combobox__trigger--readonly .combobox__chevron,.combobox__trigger--disabled .combobox__chevron{opacity:.3}.combobox__placeholder{color:var(--color-tertiary);font-size:var(--font-size-sm);flex:1}.combobox__single-value{flex:1;font-size:var(--font-size-sm);color:var(--color-body-text)}.combobox__trigger--not-clearable .combobox__single-value,.combobox__trigger--not-clearable .combobox__placeholder{padding-right:24px}.combobox__chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--color-tertiary);flex-shrink:0;transition:transform var(--transition-speed-fast) var(--transition-timing);position:absolute;right:var(--spacing-3)}.combobox__chevron--open{transform:rotate(180deg)}.combobox__tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-1);flex:1;overflow:hidden}.combobox__tag{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);background-color:var(--combobox-tag-bg, var(--color-light));border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--combobox-tag-color, var(--color-body-text));white-space:nowrap}.combobox__tag-remove{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;color:var(--color-tertiary);line-height:1;transition:color var(--transition-speed-fast) var(--transition-timing)}.combobox__tag-remove:hover{color:var(--color-body-text)}.combobox__clear{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0 12px 0 0;cursor:pointer;color:var(--combobox-clear-color, var(--color-secondary));line-height:1;flex-shrink:0;transition:color var(--transition-speed-fast) var(--transition-timing)}.combobox__clear:hover{color:var(--color-body-text)}.combobox__filter-input{flex:1;border:none;outline:none;background:transparent;font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-body-text);min-width:0;padding:0;cursor:text}.combobox__filter-input:disabled{cursor:not-allowed}.combobox__filter-input::placeholder{color:var(--color-tertiary)}.combobox__filter-input--inline{flex:1;min-width:60px}.combobox__trigger--multi-filter{flex-wrap:wrap;height:auto;min-height:32px;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-3)}.combobox__trigger--large.combobox__trigger--multi-filter{min-height:40px}.combobox__dropdown[popover]{position:fixed;inset:unset;margin:0;padding:0;border:none}.combobox__dropdown{width:auto;background-color:var(--color-body-bg);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:var(--shadow-sm);z-index:var(--z-index-dropdown);overflow:hidden}.combobox__search{width:100%;padding:var(--spacing-2) var(--spacing-3);border:none;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-body-text);font-family:var(--font-family-base);outline:none;box-sizing:border-box;background-color:var(--color-body-bg)}.combobox__search::placeholder{color:var(--color-tertiary)}.combobox__list{max-height:208px;overflow-y:auto}.combobox__group--titled+.combobox__group--titled:before{content:"";display:block;margin:var(--spacing-2) 0;border-top:1px solid var(--color-border)}.combobox__group-title{margin-top:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3) var(--spacing-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-tertiary)}.combobox__item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-body-text);cursor:pointer;transition:background-color var(--transition-speed-fast) var(--transition-timing)}.combobox__item:hover,.combobox__item--selected,.combobox__item--focused{background-color:var(--color-light)}.combobox__empty{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-tertiary);text-align:center}';var m=Object.defineProperty,_=Object.getOwnPropertyDescriptor,i=(d,e,t,s)=>{for(var n=s>1?void 0:s?_(e,t):e,l=d.length-1,p;l>=0;l--)(p=d[l])&&(n=(s?p(e,t,n):p(n))||n);return s&&n&&m(e,t,n),n};exports.Combobox=class extends r.LitElement{constructor(){super(...arguments),this.inputId="combo-"+Math.random().toString(36).substring(2),this.label="",this.helper="",this.error="",this.placeholder="Seçim yapınız",this.required=!1,this.disabled=!1,this.readOnly=!1,this.variant="default",this.multiple=!1,this.filterable=!1,this.optionLabel="label",this.optionValue="value",this.emptyMessage="Sonuç yok",this.items=[],this.size="default",this.clearable=!0,this.selected=[],this.inputValue="",this._pendingValue=void 0,this.isOpen=!1,this.focusedIndex=-1,this._filteredItems=[],this._filteredGroups=[],this._handleOutsideClick=e=>{e.composedPath().includes(this)||this._closeDropdown()},this._handleKeydown=e=>{if(!(this.readOnly||this.disabled))switch(e.key){case"ArrowDown":e.preventDefault(),this.isOpen?this.focusedIndex=Math.min(this.focusedIndex+1,this._filteredItems.length-1):(this.isOpen=!0,this.focusedIndex=0),this._scrollFocusedIntoView();break;case"ArrowUp":e.preventDefault(),this.isOpen&&(this.focusedIndex=Math.max(this.focusedIndex-1,0),this._scrollFocusedIntoView());break;case"Enter":e.preventDefault(),this.isOpen?this.focusedIndex>=0&&this.focusedIndex<this._filteredItems.length&&this._selectItem(this._filteredItems[this.focusedIndex],e):(this.isOpen=!0,this.focusedIndex=0);break;case"Escape":e.preventDefault(),this._closeDropdown();break}},this._removeTag=(e,t)=>{t.stopPropagation(),this.setSelected(this.selected.filter(s=>s[this.optionValue]!==e[this.optionValue]))},this._clearSelection=e=>{e.stopPropagation(),this.setSelected([]),this.inputValue=""},this._onFilterFocus=()=>{this.readOnly||this.disabled||(this.inputValue="",this.isOpen=!0,this.focusedIndex=0)},this._onFilterInput=e=>{this.readOnly||this.disabled||(this.inputValue=e.target.value,this.focusedIndex=0,this.isOpen||(this.isOpen=!0))},this._stopPropagation=e=>e.stopPropagation(),this._onTriggerClick=()=>{this.readOnly||this.disabled||(this.filterable&&!this.multiple?this._focusFilterInput():this.isOpen=!this.isOpen)},this._onFieldClick=e=>{if(this.readOnly||this.disabled)return;const t=e.composedPath();if(!(t.some(l=>{const p=l?.classList;return p?.contains("combobox__trigger")||p?.contains("combobox__chevron")})||t.some(l=>l?.classList?.contains("combobox__dropdown")))){if(this.filterable&&!this.multiple){this.isOpen=!0,this._focusFilterInput();return}this.isOpen=!this.isOpen}},this._onChevronClick=()=>{if(!(this.readOnly||this.disabled)){if(this.isOpen){this._closeDropdown();return}this.isOpen=!0,this.filterable&&!this.multiple&&this._focusFilterInput()}}}get value(){return this.multiple?this.selected.map(e=>e[this.optionValue]):this.selected[0]?.[this.optionValue]}set value(e){this._pendingValue=e,this._applyPendingValue(),this.requestUpdate()}_applyPendingValue(){if(this._pendingValue===void 0||!this.items.length)return;const e=this.multiple?Array.isArray(this._pendingValue)?this._pendingValue:[this._pendingValue]:[this._pendingValue];this.selected=this.items.filter(t=>e.includes(t[this.optionValue])),this._pendingValue=void 0}willUpdate(e){if(e.has("items")&&this._applyPendingValue(),e.has("items")||e.has("inputValue")||e.has("optionLabel")){const t=this.inputValue.toLocaleLowerCase(),s=a=>a.filter(c=>String(c[this.optionLabel]??"").toLocaleLowerCase().includes(t)),n=[];let l=[];const p=()=>{const a=s(l);a.length&&n.push({label:"",items:a}),l=[]};this.items.forEach(a=>{const c=this._getGroupItems(a);if(!c){l=[...l,a];return}p();const h=s(c);h.length&&n.push({label:this._getGroupLabel(a),items:h})}),p(),this._filteredGroups=n,this._filteredItems=this._filteredGroups.flatMap(a=>a.items)}}updated(e){if(e.has("isOpen")&&this.isOpen&&this.filterable&&this.multiple&&this.shadowRoot?.querySelector(".combobox__search")?.focus(),e.has("isOpen")){this.isOpen?this.updateComplete.then(()=>{this._showPopover(),this._updatePopper()}):(this._hidePopover(),this._destroyPopper());return}this.isOpen&&this._updatePopper()}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this._handleOutsideClick)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this._handleOutsideClick),this._destroyPopper()}_closeDropdown(){this.isOpen=!1,this.focusedIndex=-1,this.filterable&&(this.inputValue="")}get _filterDisplayValue(){return this.isOpen?this.inputValue:!this.multiple&&this.selected.length?String(this.selected[0][this.optionLabel]):""}_focusFilterInput(){this.updateComplete.then(()=>{this.shadowRoot?.querySelector(".combobox__filter-input")?.focus()})}_scrollFocusedIntoView(){this.updateComplete.then(()=>{this.shadowRoot?.querySelectorAll(".combobox__item")?.[this.focusedIndex]?.scrollIntoView({block:"nearest"})})}_getGroupItems(e){if(Array.isArray(e.options))return e.options;if(Array.isArray(e.items))return e.items}_getGroupLabel(e){return String(e.label??e.title??e.name??e[this.optionLabel]??"")}selectedItems(){return this.selected}isSelected(e){return this.selected.some(t=>t[this.optionValue]===e[this.optionValue])}_selectItem(e,t){t.stopPropagation();let s;this.multiple?s=this.isSelected(e)?this.selected.filter(n=>n[this.optionValue]!==e[this.optionValue]):[...this.selected,e]:(s=[e],this.isOpen=!1,this.filterable&&(this.inputValue="")),this.setSelected(s)}setSelected(e){this.selected=e,this._pendingValue=void 0,this.dispatchEvent(new CustomEvent("selected",{detail:{selected:e},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("lgsChange",{bubbles:!0,composed:!0,detail:{value:this.multiple?e.map(t=>t[this.optionValue]):e[0]?.[this.optionValue],selected:e}}))}_renderTagList(){return r.html`
2
+ <div class="combobox__tags">
3
+ ${this.selected.map(e=>r.html`
4
+ <logosphere-badge
5
+ variant="default"
6
+ text=${String(e[this.optionLabel])}
7
+ ?closeable=${!this.readOnly}
8
+ @close=${t=>this._removeTag(e,t)}
9
+ ></logosphere-badge>
10
+ `)}
11
+ </div>
12
+ `}_renderItemContent(e,t){return this.itemRenderer?this.itemRenderer(e,{index:t,selected:this.isSelected(e),focused:t===this.focusedIndex,multiple:this.multiple}):e[this.optionLabel]}_renderTriggerContent(){return this.filterable&&!this.multiple?r.html`
13
+ <input
14
+ class="combobox__filter-input"
15
+ type="text"
16
+ .value=${this._filterDisplayValue}
17
+ placeholder=${this.placeholder}
18
+ ?disabled=${this.readOnly||this.disabled}
19
+ @focus=${this._onFilterFocus}
20
+ @input=${this._onFilterInput}
21
+ @keydown=${this._handleKeydown}
22
+ @click=${this._stopPropagation}
23
+ />
24
+ ${this.clearable&&!this.readOnly&&this.selected.length?r.html`
25
+ <button class="combobox__clear" @click=${this._clearSelection} aria-label="Clear">
26
+ <ui-icon name="uil-times" size="14"></ui-icon>
27
+ </button>
28
+ `:r.nothing}
29
+ `:this.multiple&&this.selected.length?this._renderTagList():!this.multiple&&this.selected.length?r.html`
30
+ <span class="combobox__single-value">${this.selected[0][this.optionLabel]}</span>
31
+ ${this.clearable&&!this.readOnly?r.html`
32
+ <button class="combobox__clear" @click=${this._clearSelection} aria-label="Clear">
33
+ <ui-icon name="uil-times" size="14"></ui-icon>
34
+ </button>
35
+ `:r.nothing}
36
+ `:r.html`<span class="combobox__placeholder">${this.placeholder}</span>`}_renderDropdown(){let e=0;return r.html`
37
+ <div data-combobox-popper popover="manual" class="combobox__dropdown">
38
+ ${this.filterable&&this.multiple?r.html`
39
+ <input
40
+ class="combobox__search"
41
+ type="text"
42
+ placeholder=${this.placeholder}
43
+ .value=${this.inputValue}
44
+ @input=${this._onFilterInput}
45
+ @keydown=${this._handleKeydown}
46
+ @click=${this._stopPropagation}
47
+ />
48
+ `:r.nothing}
49
+
50
+ <div class="combobox__list">
51
+ ${this._filteredItems.length===0?r.html`<div class="combobox__empty">${this.emptyMessage}</div>`:this._filteredGroups.map(t=>r.html`
52
+ <div class="combobox__group ${t.label?"combobox__group--titled":""}">
53
+ ${t.label?r.html`<div class="combobox__group-title">${t.label}</div>`:r.nothing}
54
+ ${t.items.map(s=>{const n=e++;return r.html`
55
+ <div
56
+ class="combobox__item
57
+ ${!this.multiple&&this.isSelected(s)?"combobox__item--selected":""}
58
+ ${n===this.focusedIndex?"combobox__item--focused":""}"
59
+ @click=${l=>this._selectItem(s,l)}
60
+ @mouseenter=${()=>{this.focusedIndex=n}}
61
+ >
62
+ ${this.multiple?r.html`
63
+ <logosphere-checkbox
64
+ .checked=${this.isSelected(s)}
65
+ .value=${s[this.optionValue]}
66
+ @click=${this._stopPropagation}
67
+ ></logosphere-checkbox>
68
+ `:r.nothing}
69
+ ${this._renderItemContent(s,n)}
70
+ </div>
71
+ `})}
72
+ </div>
73
+ `)}
74
+ </div>
75
+ </div>
76
+ `}_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"]}}]}_getPopperReferenceElement(){return this._formFieldElement?.shadowRoot?.querySelector(".formfield__container")??this._referenceElement}_updatePopper(){const e=this._getPopperReferenceElement(),t=this._dropdownElement;if(!this.isOpen||!e||!t||!this.isConnected)return;const s=Math.round(e.getBoundingClientRect().width);if(t.style.width=`${s}px`,this._popperInstance){this._popperInstance.setOptions({placement:"bottom-start",strategy:"fixed",modifiers:this._getPopperModifiers()}),this._popperInstance.update();return}this._popperInstance=b.createPopper(e,t,{placement:"bottom-start",strategy:"fixed",modifiers:this._getPopperModifiers()})}_destroyPopper(){this._popperInstance&&(this._popperInstance.destroy(),this._popperInstance=void 0)}_showPopover(){this._dropdownElement?.showPopover?.()}_hidePopover(){const e=this._dropdownElement;try{e?.hidePopover?.()}catch{}}render(){const e=["combobox__trigger",`combobox__trigger--${this.size}`,this.disabled?"combobox__trigger--disabled":"",this.readOnly?"combobox__trigger--readonly":"",!this.readOnly&&!this.disabled&&this.isOpen?"combobox__trigger--open":"",this.clearable?"":"combobox__trigger--not-clearable"].filter(Boolean).join(" ");return r.html`
77
+ <div class="combobox">
78
+ <logosphere-formfield
79
+ .label=${this.label}
80
+ .helper=${this.helper}
81
+ .error=${this.error}
82
+ cursor="pointer"
83
+ .required=${this.required}
84
+ .disabled=${this.disabled}
85
+ .readonly=${this.readOnly}
86
+ .size=${this.size}
87
+ .variant=${this.variant}
88
+ .forceFocused=${this.isOpen}
89
+ @click=${this._onFieldClick}
90
+ >
91
+ <div class="combobox__wrapper">
92
+ <div
93
+ class="${e}"
94
+ tabindex="${this.readOnly||this.filterable||this.disabled?-1:0}"
95
+ @click=${this._onTriggerClick}
96
+ @keydown=${this.filterable?r.nothing:this._handleKeydown}
97
+ >
98
+ ${this._renderTriggerContent()}
99
+ </div>
100
+
101
+ ${this._renderDropdown()}
102
+ </div>
103
+ <span
104
+ class="combobox__chevron ${this.isOpen?"combobox__chevron--open":""}"
105
+ @click=${this._onChevronClick}
106
+ >
107
+ <ui-icon name="uil-angle-down" size="16"></ui-icon>
108
+ </span>
109
+ </logosphere-formfield>
110
+ </div>
111
+ `}};exports.Combobox.styles=[r.css`
112
+ ${r.unsafeCSS(u)}
113
+ `];i([o.property({type:String})],exports.Combobox.prototype,"label",2);i([o.property({type:String})],exports.Combobox.prototype,"helper",2);i([o.property({type:String})],exports.Combobox.prototype,"error",2);i([o.property({type:String})],exports.Combobox.prototype,"placeholder",2);i([o.property({type:Boolean})],exports.Combobox.prototype,"required",2);i([o.property({type:Boolean})],exports.Combobox.prototype,"disabled",2);i([o.property({type:Boolean})],exports.Combobox.prototype,"readOnly",2);i([o.property({type:String})],exports.Combobox.prototype,"variant",2);i([o.property({type:Boolean})],exports.Combobox.prototype,"multiple",2);i([o.property({type:Boolean})],exports.Combobox.prototype,"filterable",2);i([o.property({type:String})],exports.Combobox.prototype,"optionLabel",2);i([o.property({type:String})],exports.Combobox.prototype,"optionValue",2);i([o.property({type:String})],exports.Combobox.prototype,"emptyMessage",2);i([o.property({type:Array})],exports.Combobox.prototype,"items",2);i([o.property({attribute:!1})],exports.Combobox.prototype,"itemRenderer",2);i([o.property({type:String})],exports.Combobox.prototype,"size",2);i([o.property({type:Boolean})],exports.Combobox.prototype,"clearable",2);i([o.state()],exports.Combobox.prototype,"selected",2);i([o.state()],exports.Combobox.prototype,"inputValue",2);i([o.property({attribute:!1})],exports.Combobox.prototype,"value",1);i([o.state()],exports.Combobox.prototype,"isOpen",2);i([o.state()],exports.Combobox.prototype,"focusedIndex",2);i([o.query(".combobox__wrapper")],exports.Combobox.prototype,"_referenceElement",2);i([o.query("logosphere-formfield")],exports.Combobox.prototype,"_formFieldElement",2);i([o.query("[data-combobox-popper]")],exports.Combobox.prototype,"_dropdownElement",2);exports.Combobox=i([o.customElement("logosphere-combobox")],exports.Combobox);
@@ -1,11 +1,11 @@
1
1
  import { unsafeCSS as _, css as f, LitElement as g, html as a, nothing as d } from "lit";
2
2
  import { property as n, state as b, query as u, customElement as x } from "lit/decorators.js";
3
3
  import { createPopper as v } from "@popperjs/core";
4
- import "./badge-DsDxWEHx.js";
5
- import "./checkbox-CX0LgsWP.js";
6
- import "./formfield-O327HYt0.js";
7
- import "./ui-icon-BMJNdIOq.js";
8
- const y = '.combobox{display:flex;flex-direction:column;gap:var(--spacing-1);font-family:var(--font-family-base);width:100%}.combobox__label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-body-text)}.combobox__label--required:after{content:" *";color:var(--color-primary)}.combobox__readonly{border:none;background:transparent;font-size:var(--font-size-sm);color:var(--color-body-text);padding:0;outline:none;font-family:var(--font-family-base)}.combobox__wrapper{position:relative;width:100%;cursor:pointer}.combobox__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--spacing-2);padding:0;border:none;border-radius:0;background-color:transparent;cursor:pointer;overflow:hidden;font-size:var(--font-size-sm);color:var(--color-body-text);transition:color var(--transition-speed-fast) var(--transition-timing);box-sizing:border-box}.combobox__trigger--default{min-height:20px}.combobox__trigger--large{min-height:24px;font-size:var(--font-size-base)}.combobox__trigger--open{color:var(--color-body-text)}.combobox__trigger--readonly{cursor:default;color:var(--color-tertiary)}.combobox__trigger--disabled{cursor:not-allowed;color:var(--color-tertiary)}.combobox__trigger--readonly .combobox__chevron,.combobox__trigger--disabled .combobox__chevron{opacity:.3}.combobox__placeholder{color:var(--color-tertiary);font-size:var(--font-size-sm);flex:1}.combobox__single-value{flex:1;font-size:var(--font-size-sm);color:var(--color-body-text)}.combobox__trigger--not-clearable .combobox__single-value,.combobox__trigger--not-clearable .combobox__placeholder{padding-right:24px}.combobox__chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--color-tertiary);flex-shrink:0;transition:transform var(--transition-speed-fast) var(--transition-timing);position:absolute;right:var(--spacing-3)}.combobox__chevron--open{transform:rotate(180deg)}.combobox__tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-1);flex:1;overflow:hidden}.combobox__tag{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);background-color:var(--color-light);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-body-text);white-space:nowrap}.combobox__tag-remove{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;color:var(--color-tertiary);line-height:1;transition:color var(--transition-speed-fast) var(--transition-timing)}.combobox__tag-remove:hover{color:var(--color-body-text)}.combobox__clear{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0 12px 0 0;cursor:pointer;color:var(--color-secondary);line-height:1;flex-shrink:0;transition:color var(--transition-speed-fast) var(--transition-timing)}.combobox__clear:hover{color:var(--color-body-text)}.combobox__filter-input{flex:1;border:none;outline:none;background:transparent;font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-body-text);min-width:0;padding:0;cursor:text}.combobox__filter-input:disabled{cursor:not-allowed}.combobox__filter-input::placeholder{color:var(--color-tertiary)}.combobox__filter-input--inline{flex:1;min-width:60px}.combobox__trigger--multi-filter{flex-wrap:wrap;height:auto;min-height:32px;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-3)}.combobox__trigger--large.combobox__trigger--multi-filter{min-height:40px}.combobox__dropdown[popover]{position:fixed;inset:unset;margin:0;padding:0;border:none}.combobox__dropdown{width:auto;background-color:var(--color-body-bg);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:var(--shadow-sm);z-index:var(--z-index-dropdown);overflow:hidden}.combobox__search{width:100%;padding:var(--spacing-2) var(--spacing-3);border:none;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-body-text);font-family:var(--font-family-base);outline:none;box-sizing:border-box;background-color:var(--color-body-bg)}.combobox__search::placeholder{color:var(--color-tertiary)}.combobox__list{max-height:208px;overflow-y:auto}.combobox__group--titled+.combobox__group--titled:before{content:"";display:block;margin:var(--spacing-2) 0;border-top:1px solid var(--color-border)}.combobox__group-title{margin-top:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3) var(--spacing-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-tertiary)}.combobox__item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-body-text);cursor:pointer;transition:background-color var(--transition-speed-fast) var(--transition-timing)}.combobox__item:hover,.combobox__item--selected,.combobox__item--focused{background-color:var(--color-light)}.combobox__empty{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-tertiary);text-align:center}';
4
+ import "./badge-BhINg1p5.js";
5
+ import "./checkbox-CTfbav6M.js";
6
+ import "./formfield-ss2mFweu.js";
7
+ import "./ui-icon-BeR-PaPg.js";
8
+ const y = ':host{display:block}.combobox{display:flex;flex-direction:column;gap:var(--spacing-1);font-family:var(--font-family-base);width:100%}.combobox__label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-body-text)}.combobox__label--required:after{content:" *";color:var(--color-primary)}.combobox__readonly{border:none;background:transparent;font-size:var(--font-size-sm);color:var(--color-body-text);padding:0;outline:none;font-family:var(--font-family-base)}.combobox__wrapper{position:relative;width:100%;box-sizing:border-box;padding-right:16px;cursor:pointer}.combobox__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--spacing-2);padding:0;border:none;border-radius:0;background-color:transparent;cursor:pointer;overflow:hidden;font-size:var(--font-size-sm);color:var(--color-body-text);transition:color var(--transition-speed-fast) var(--transition-timing);box-sizing:border-box}.combobox__trigger--default{min-height:20px}.combobox__trigger--large{min-height:24px;font-size:var(--font-size-base)}.combobox__trigger--open{color:var(--color-body-text)}.combobox__trigger--readonly{cursor:default;color:var(--color-tertiary)}.combobox__trigger--disabled{cursor:not-allowed;color:var(--color-tertiary)}.combobox__trigger--readonly .combobox__chevron,.combobox__trigger--disabled .combobox__chevron{opacity:.3}.combobox__placeholder{color:var(--color-tertiary);font-size:var(--font-size-sm);flex:1}.combobox__single-value{flex:1;font-size:var(--font-size-sm);color:var(--color-body-text)}.combobox__trigger--not-clearable .combobox__single-value,.combobox__trigger--not-clearable .combobox__placeholder{padding-right:24px}.combobox__chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--color-tertiary);flex-shrink:0;transition:transform var(--transition-speed-fast) var(--transition-timing);position:absolute;right:var(--spacing-3)}.combobox__chevron--open{transform:rotate(180deg)}.combobox__tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-1);flex:1;overflow:hidden}.combobox__tag{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);background-color:var(--combobox-tag-bg, var(--color-light));border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--combobox-tag-color, var(--color-body-text));white-space:nowrap}.combobox__tag-remove{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;color:var(--color-tertiary);line-height:1;transition:color var(--transition-speed-fast) var(--transition-timing)}.combobox__tag-remove:hover{color:var(--color-body-text)}.combobox__clear{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0 12px 0 0;cursor:pointer;color:var(--combobox-clear-color, var(--color-secondary));line-height:1;flex-shrink:0;transition:color var(--transition-speed-fast) var(--transition-timing)}.combobox__clear:hover{color:var(--color-body-text)}.combobox__filter-input{flex:1;border:none;outline:none;background:transparent;font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-body-text);min-width:0;padding:0;cursor:text}.combobox__filter-input:disabled{cursor:not-allowed}.combobox__filter-input::placeholder{color:var(--color-tertiary)}.combobox__filter-input--inline{flex:1;min-width:60px}.combobox__trigger--multi-filter{flex-wrap:wrap;height:auto;min-height:32px;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-3)}.combobox__trigger--large.combobox__trigger--multi-filter{min-height:40px}.combobox__dropdown[popover]{position:fixed;inset:unset;margin:0;padding:0;border:none}.combobox__dropdown{width:auto;background-color:var(--color-body-bg);border:1px solid var(--color-border);border-radius:var(--radius-base);box-shadow:var(--shadow-sm);z-index:var(--z-index-dropdown);overflow:hidden}.combobox__search{width:100%;padding:var(--spacing-2) var(--spacing-3);border:none;border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);color:var(--color-body-text);font-family:var(--font-family-base);outline:none;box-sizing:border-box;background-color:var(--color-body-bg)}.combobox__search::placeholder{color:var(--color-tertiary)}.combobox__list{max-height:208px;overflow-y:auto}.combobox__group--titled+.combobox__group--titled:before{content:"";display:block;margin:var(--spacing-2) 0;border-top:1px solid var(--color-border)}.combobox__group-title{margin-top:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3) var(--spacing-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);color:var(--color-tertiary)}.combobox__item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-body-text);cursor:pointer;transition:background-color var(--transition-speed-fast) var(--transition-timing)}.combobox__item:hover,.combobox__item--selected,.combobox__item--focused{background-color:var(--color-light)}.combobox__empty{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-tertiary);text-align:center}';
9
9
  var w = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, i = (e, t, r, l) => {
10
10
  for (var s = l > 1 ? void 0 : l ? $(t, r) : t, p = e.length - 1, c; p >= 0; p--)
11
11
  (c = e[p]) && (s = (l ? c(t, r, s) : c(s)) || s);
@@ -13,7 +13,7 @@ var w = Object.defineProperty, $ = Object.getOwnPropertyDescriptor, i = (e, t, r
13
13
  };
14
14
  let o = class extends g {
15
15
  constructor() {
16
- super(...arguments), this.inputId = "combo-" + Math.random().toString(36).substring(2), this.label = "", this.helper = "", this.error = "", this.placeholder = "Seçim yapınız", this.required = !1, this.disabled = !1, this.readOnly = !1, this.variant = "default", this.multiple = !1, this.filterable = !1, this.optionLabel = "label", this.optionValue = "value", this.emptyMessage = "Sonuç yok", this.items = [], this.size = "default", this.clearable = !0, this.selected = [], this.inputValue = "", this.isOpen = !1, this.focusedIndex = -1, this._filteredItems = [], this._filteredGroups = [], this._handleOutsideClick = (e) => {
16
+ super(...arguments), this.inputId = "combo-" + Math.random().toString(36).substring(2), this.label = "", this.helper = "", this.error = "", this.placeholder = "Seçim yapınız", this.required = !1, this.disabled = !1, this.readOnly = !1, this.variant = "default", this.multiple = !1, this.filterable = !1, this.optionLabel = "label", this.optionValue = "value", this.emptyMessage = "Sonuç yok", this.items = [], this.size = "default", this.clearable = !0, this.selected = [], this.inputValue = "", this._pendingValue = void 0, this.isOpen = !1, this.focusedIndex = -1, this._filteredItems = [], this._filteredGroups = [], this._handleOutsideClick = (e) => {
17
17
  e.composedPath().includes(this) || this._closeDropdown();
18
18
  }, this._handleKeydown = (e) => {
19
19
  if (!(this.readOnly || this.disabled))
@@ -68,9 +68,20 @@ let o = class extends g {
68
68
  }
69
69
  };
70
70
  }
71
+ get value() {
72
+ return this.multiple ? this.selected.map((e) => e[this.optionValue]) : this.selected[0]?.[this.optionValue];
73
+ }
74
+ set value(e) {
75
+ this._pendingValue = e, this._applyPendingValue(), this.requestUpdate();
76
+ }
77
+ _applyPendingValue() {
78
+ if (this._pendingValue === void 0 || !this.items.length) return;
79
+ const e = this.multiple ? Array.isArray(this._pendingValue) ? this._pendingValue : [this._pendingValue] : [this._pendingValue];
80
+ this.selected = this.items.filter((t) => e.includes(t[this.optionValue])), this._pendingValue = void 0;
81
+ }
71
82
  // ==================== LIFECYCLE ====================
72
83
  willUpdate(e) {
73
- if (e.has("items") || e.has("inputValue") || e.has("optionLabel")) {
84
+ if (e.has("items") && this._applyPendingValue(), e.has("items") || e.has("inputValue") || e.has("optionLabel")) {
74
85
  const t = this.inputValue.toLocaleLowerCase(), r = (c) => c.filter(
75
86
  (h) => String(h[this.optionLabel] ?? "").toLocaleLowerCase().includes(t)
76
87
  ), l = [];
@@ -146,10 +157,19 @@ let o = class extends g {
146
157
  this.multiple ? r = this.isSelected(e) ? this.selected.filter((l) => l[this.optionValue] !== e[this.optionValue]) : [...this.selected, e] : (r = [e], this.isOpen = !1, this.filterable && (this.inputValue = "")), this.setSelected(r);
147
158
  }
148
159
  setSelected(e) {
149
- this.selected = e, this.dispatchEvent(
160
+ this.selected = e, this._pendingValue = void 0, this.dispatchEvent(
150
161
  new CustomEvent("selected", { detail: { selected: e }, bubbles: !0, composed: !0 })
151
162
  ), this.dispatchEvent(
152
163
  new CustomEvent("change", { detail: { value: e }, bubbles: !0, composed: !0 })
164
+ ), this.dispatchEvent(
165
+ new CustomEvent("lgsChange", {
166
+ bubbles: !0,
167
+ composed: !0,
168
+ detail: {
169
+ value: this.multiple ? e.map((t) => t[this.optionValue]) : e[0]?.[this.optionValue],
170
+ selected: e
171
+ }
172
+ })
153
173
  );
154
174
  }
155
175
  // ==================== RENDER PARTS ====================
@@ -414,6 +434,9 @@ i([
414
434
  i([
415
435
  b()
416
436
  ], o.prototype, "inputValue", 2);
437
+ i([
438
+ n({ attribute: !1 })
439
+ ], o.prototype, "value", 1);
417
440
  i([
418
441
  b()
419
442
  ], o.prototype, "isOpen", 2);
package/dist/combobox.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./combobox-BmIFPk8X.cjs");Object.defineProperty(exports,"Combobox",{enumerable:!0,get:()=>e.Combobox});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./combobox-BAa3UAQs.cjs");Object.defineProperty(exports,"Combobox",{enumerable:!0,get:()=>e.Combobox});
package/dist/combobox.js CHANGED
@@ -1,4 +1,4 @@
1
- import { C as m } from "./combobox-jak7Ac1m.js";
1
+ import { C as m } from "./combobox-BR05Tgfd.js";
2
2
  export {
3
3
  m as Combobox
4
4
  };