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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/AGENTS.md +49 -5
  2. package/dist/AGENTS.md +49 -5
  3. package/dist/atoms/Checkbox/checkbox.d.ts +11 -2
  4. package/dist/atoms/FormField/formfield.d.ts +2 -0
  5. package/dist/{badge-BJqUgXZD.js → badge-B0Bj-HAT.js} +20 -20
  6. package/dist/{badge-COTtd1jh.cjs → badge-DWkKpZTX.cjs} +1 -1
  7. package/dist/badge.cjs +1 -1
  8. package/dist/badge.js +1 -1
  9. package/dist/breadcrumb-BOuCLUJh.cjs +12 -0
  10. package/dist/breadcrumb-BeJqq-5C.js +41 -0
  11. package/dist/breadcrumb.cjs +1 -1
  12. package/dist/breadcrumb.js +1 -1
  13. package/dist/button-MBxtvVqn.cjs +10 -0
  14. package/dist/button-QWCkFTeJ.js +58 -0
  15. package/dist/button.cjs +1 -1
  16. package/dist/button.js +1 -1
  17. package/dist/{calendar-DtpJBtpq.cjs → calendar-DcDT4o-U.cjs} +1 -1
  18. package/dist/{calendar-B7bSuIt4.js → calendar-DsriSHZ4.js} +1 -1
  19. package/dist/calendar.cjs +1 -1
  20. package/dist/calendar.js +1 -1
  21. package/dist/{card-BD8FkSTi.cjs → card-BUWvno93.cjs} +1 -1
  22. package/dist/{card-CAAhjIjf.js → card-R_cKrdHK.js} +2 -2
  23. package/dist/card.cjs +1 -1
  24. package/dist/card.js +1 -1
  25. package/dist/chatbot-BPVC2wqM.cjs +183 -0
  26. package/dist/{chatbot-Cr6iOO7s.js → chatbot-yup4Nz00.js} +13 -13
  27. package/dist/chatbot.cjs +1 -1
  28. package/dist/chatbot.js +1 -1
  29. package/dist/checkbox-BAbPDN6x.cjs +53 -0
  30. package/dist/checkbox-CTfbav6M.js +152 -0
  31. package/dist/checkbox.cjs +1 -1
  32. package/dist/checkbox.js +1 -1
  33. package/dist/chip-group-BqYKZKmu.cjs +26 -0
  34. package/dist/chip-group-CC5RBhN_.js +89 -0
  35. package/dist/chip-group.cjs +1 -0
  36. package/dist/chip-group.js +4 -0
  37. package/dist/combobox-Bah9Akr-.cjs +113 -0
  38. package/dist/combobox-Nxhk75IH.js +460 -0
  39. package/dist/combobox.cjs +1 -1
  40. package/dist/combobox.js +1 -1
  41. package/dist/{datepicker-tJbIvNpy.js → datepicker-BExZseRQ.js} +58 -51
  42. package/dist/datepicker-BOQ13sIm.cjs +85 -0
  43. package/dist/datepicker.cjs +1 -1
  44. package/dist/datepicker.js +1 -1
  45. package/dist/{drawer-g6mHdpjF.cjs → drawer-DBrOkz0z.cjs} +1 -1
  46. package/dist/{drawer-CRB8UUAo.js → drawer-DHsESNFL.js} +2 -2
  47. package/dist/drawer.cjs +1 -1
  48. package/dist/drawer.js +1 -1
  49. package/dist/formfield-JXiv9mvJ.cjs +33 -0
  50. package/dist/{formfield-O327HYt0.js → formfield-ss2mFweu.js} +59 -52
  51. package/dist/formfield.cjs +1 -1
  52. package/dist/formfield.js +1 -1
  53. package/dist/icon.cjs +1 -0
  54. package/dist/icon.js +4 -0
  55. package/dist/index.cjs +7 -7
  56. package/dist/index.d.ts +2 -0
  57. package/dist/index.js +61 -58
  58. package/dist/index.umd.js +202 -171
  59. package/dist/input-D9lFcDHU.js +278 -0
  60. package/dist/input-Dg-jos9u.cjs +60 -0
  61. package/dist/input.cjs +1 -1
  62. package/dist/input.js +1 -1
  63. package/dist/left-menu.cjs +1 -1
  64. package/dist/left-menu.js +1 -1
  65. package/dist/{leftmenu-Cf2gC2J0.js → leftmenu-CMx2K5Ws.js} +4 -4
  66. package/dist/{leftmenu-D0sRExqr.cjs → leftmenu-DCfTelzi.cjs} +1 -1
  67. package/dist/modal-BJNCTlBX.cjs +84 -0
  68. package/dist/{modal-Cfa0imdF.js → modal-DNjURVZy.js} +3 -3
  69. package/dist/modal.cjs +1 -1
  70. package/dist/modal.js +1 -1
  71. package/dist/molecules/Chip/chip-group.d.ts +29 -0
  72. package/dist/molecules/Chip/index.d.ts +2 -0
  73. package/dist/molecules/Input/input.d.ts +17 -0
  74. package/dist/organisms/Combobox/combobox.d.ts +20 -0
  75. package/dist/organisms/DatePicker/datepicker.d.ts +2 -0
  76. package/dist/{pagination-DG56TV5n.js → pagination-B91sZD5E.js} +61 -61
  77. package/dist/pagination-Cnh-o-Nq.cjs +169 -0
  78. package/dist/pagination.cjs +1 -1
  79. package/dist/pagination.js +1 -1
  80. package/dist/{popover-BSfKsQni.js → popover-CSgoaROl.js} +1 -1
  81. package/dist/popover-DwDyLpQq.cjs +30 -0
  82. package/dist/popover.cjs +1 -1
  83. package/dist/popover.js +1 -1
  84. package/dist/shared/icons/index.d.ts +1 -0
  85. package/dist/{switch-8RGGesy5.cjs → switch-Do6SCkPJ.cjs} +2 -2
  86. package/dist/{switch-DNqPqH-R.js → switch-uYVuohJ-.js} +25 -21
  87. package/dist/switch.cjs +1 -1
  88. package/dist/switch.js +1 -1
  89. package/dist/tab-BvRVHpWs.cjs +41 -0
  90. package/dist/{tab-CuBCFGoO.js → tab-Byh4UgFB.js} +1 -1
  91. package/dist/tab.cjs +1 -1
  92. package/dist/tab.js +1 -1
  93. package/dist/{text-area-coWx4Xn-.js → text-area-CHkrGi3S.js} +16 -12
  94. package/dist/text-area-DvOiCcKP.cjs +51 -0
  95. package/dist/textarea.cjs +1 -1
  96. package/dist/textarea.js +1 -1
  97. package/dist/{timepicker-rNyKCfN3.js → timepicker-CAat7fcK.js} +6 -2
  98. package/dist/{timepicker-WxA2Uo66.cjs → timepicker-Co7lW5Rp.cjs} +1 -1
  99. package/dist/timepicker.cjs +1 -1
  100. package/dist/timepicker.js +1 -1
  101. package/dist/{toast-container-Cb0MduXt.js → toast-container-DxFwLT5S.js} +3 -3
  102. package/dist/{toast-container-B9E_mVk6.cjs → toast-container-aY1lGjRi.cjs} +1 -1
  103. package/dist/toast.cjs +1 -1
  104. package/dist/toast.js +1 -1
  105. package/dist/tree-menu-Dqy14_m2.cjs +47 -0
  106. package/dist/{tree-menu-CufITiv_.js → tree-menu-Psek8QB9.js} +2 -2
  107. package/dist/tree-menu.cjs +1 -1
  108. package/dist/tree-menu.js +1 -1
  109. package/dist/ui-icon-Cd5YhUeQ.cjs +22 -0
  110. package/dist/ui-icon-Ckljc9hg.js +74 -0
  111. package/package.json +11 -1
  112. package/dist/breadcrumb-BB61Xt0s.js +0 -41
  113. package/dist/breadcrumb-Cop-B1J7.cjs +0 -12
  114. package/dist/button-DRZ4sG4T.cjs +0 -10
  115. package/dist/button-Uu9oaieg.js +0 -58
  116. package/dist/chatbot-Dl6P98Jq.cjs +0 -183
  117. package/dist/checkbox-CX0LgsWP.js +0 -148
  118. package/dist/checkbox-DpbKHANK.cjs +0 -53
  119. package/dist/combobox-CFF30L-n.js +0 -393
  120. package/dist/combobox-s7NFPAd3.cjs +0 -108
  121. package/dist/datepicker-BCNJROwD.cjs +0 -85
  122. package/dist/formfield-CRcyUMvQ.cjs +0 -33
  123. package/dist/input-BUX_2G5m.js +0 -257
  124. package/dist/input-Tkm7VBBl.cjs +0 -59
  125. package/dist/modal-DFnpqdWX.cjs +0 -84
  126. package/dist/pagination-HyX0EAZr.cjs +0 -169
  127. package/dist/popover-DhEvLuOo.cjs +0 -30
  128. package/dist/tab-CDMcFHvP.cjs +0 -41
  129. package/dist/text-area-DCBCDtJw.cjs +0 -51
  130. package/dist/tree-menu-DuJuy5pp.cjs +0 -47
  131. package/dist/ui-icon-Ctn4nGFa.js +0 -70
  132. package/dist/ui-icon-jKyMV1zp.cjs +0 -22
@@ -1,148 +0,0 @@
1
- import { unsafeCSS as b, css as k, LitElement as u, nothing as h, html as a } from "lit";
2
- import { property as n, state as f, customElement as v } from "lit/decorators.js";
3
- import { ref as p } from "lit/directives/ref.js";
4
- const m = '.checkbox-wrapper{display:inline-flex;align-items:center;gap:var(--spacing-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-family-base)}.checkbox-wrapper--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.checkbox-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.checkbox-control{box-sizing:border-box;width:16px;height:16px;flex-shrink:0;position:relative;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-body-bg);transition:background-color var(--transition-speed-fast) var(--transition-timing),border-color var(--transition-speed-fast) var(--transition-timing)}.checkbox-control--checked{background-color:var(--color-primary);border-color:var(--color-primary)}.checkbox-control--checked:after{content:"";position:absolute;top:50%;left:50%;width:9px;height:5px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:translate(-50%,-65%) rotate(-45deg)}.checkbox-control--indeterminate{background-color:var(--color-primary);border-color:var(--color-primary)}.checkbox-control--indeterminate:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:2px;background-color:#fff;border-radius:1px;transform:translate(-50%,-50%)}.checkbox-label{font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-body-text)}.radio-control{box-sizing:border-box;width:16px;height:16px;flex-shrink:0;position:relative;border:1.5px solid var(--color-border);border-radius:var(--radius-full);background-color:var(--color-body-bg);transition:background-color var(--transition-speed-fast) var(--transition-timing),border-color var(--transition-speed-fast) var(--transition-timing)}.checkbox-wrapper:hover .radio-control{border-color:var(--color-border-emphasis);background-color:var(--color-body-bg-hover)}.radio-control--checked{background-color:var(--color-primary);border-color:var(--color-primary)}.checkbox-wrapper:hover .radio-control--checked{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.radio-control--checked:after{content:"";position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:var(--radius-full);background-color:#fff;transform:translate(-50%,-50%)}.checkbox-wrapper--disabled .radio-control--checked{background-color:var(--color-primary-disabled);border-color:var(--color-primary-disabled)}.switch-wrapper{display:inline-flex;align-items:center;gap:var(--spacing-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-family-base)}.switch-wrapper--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.switch-track{width:36px;height:20px;flex-shrink:0;border-radius:var(--radius-full);background-color:var(--color-border);position:relative;transition:background-color var(--transition-speed-fast) var(--transition-timing)}.switch-track--checked{background-color:var(--color-primary)}.switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--radius-full);background-color:#fff;box-shadow:var(--shadow-xs);transition:transform var(--transition-speed-fast) var(--transition-timing)}.switch-track--checked .switch-thumb{transform:translate(16px)}';
5
- var x = Object.defineProperty, g = Object.getOwnPropertyDescriptor, o = (e, t, c, s) => {
6
- for (var i = s > 1 ? void 0 : s ? g(t, c) : t, l = e.length - 1, d; l >= 0; l--)
7
- (d = e[l]) && (i = (s ? d(t, c, i) : d(i)) || i);
8
- return s && i && x(t, c, i), i;
9
- };
10
- let r = class extends u {
11
- constructor() {
12
- super(...arguments), this.label = "", this.value = "", this.checked = !1, this.type = "checkbox", this.disabled = !1, this.indeterminate = !1, this.internalChecked = !1;
13
- }
14
- connectedCallback() {
15
- super.connectedCallback(), this.internalChecked = this.checked;
16
- }
17
- firstUpdated() {
18
- this.setIndeterminate();
19
- }
20
- updated(e) {
21
- e.has("indeterminate") && this.setIndeterminate(), e.has("checked") && (this.internalChecked = this.checked);
22
- }
23
- setIndeterminate() {
24
- this.inputElement && (this.inputElement.indeterminate = this.indeterminate);
25
- }
26
- toggleChecked() {
27
- if (!this.disabled) {
28
- if (this.type === "radio") {
29
- if (this.internalChecked) return;
30
- this.internalChecked = !0;
31
- } else this.indeterminate ? (this.indeterminate = !1, this.internalChecked = !0) : this.internalChecked = !this.internalChecked;
32
- this.dispatchEvent(
33
- new CustomEvent("lgsChange", {
34
- detail: {
35
- checked: this.internalChecked,
36
- indeterminate: this.indeterminate,
37
- value: this.value
38
- },
39
- bubbles: !0,
40
- composed: !0
41
- })
42
- );
43
- }
44
- }
45
- renderCheckbox() {
46
- const e = [
47
- "checkbox-control",
48
- this.internalChecked ? "checkbox-control--checked" : "",
49
- this.indeterminate ? "checkbox-control--indeterminate" : ""
50
- ].filter(Boolean).join(" ");
51
- return a`
52
- <div
53
- class="checkbox-wrapper ${this.disabled ? "checkbox-wrapper--disabled" : ""}"
54
- @click=${this.toggleChecked}
55
- >
56
- <input
57
- type="checkbox"
58
- class="checkbox-input"
59
- .checked=${this.internalChecked}
60
- ?disabled=${this.disabled}
61
- .value=${this.value}
62
- ${p((t) => this.inputElement = t)}
63
- />
64
- <span class="${e}"></span>
65
- ${this.label ? a`<span class="checkbox-label">${this.label}</span>` : h}
66
- </div>
67
- `;
68
- }
69
- renderRadio() {
70
- const e = [
71
- "radio-control",
72
- this.internalChecked ? "radio-control--checked" : ""
73
- ].filter(Boolean).join(" ");
74
- return a`
75
- <div
76
- class="checkbox-wrapper ${this.disabled ? "checkbox-wrapper--disabled" : ""}"
77
- @click=${this.toggleChecked}
78
- >
79
- <input
80
- type="radio"
81
- class="checkbox-input"
82
- .checked=${this.internalChecked}
83
- ?disabled=${this.disabled}
84
- .value=${this.value}
85
- ${p((t) => this.inputElement = t)}
86
- />
87
- <span class="${e}"></span>
88
- ${this.label ? a`<span class="checkbox-label">${this.label}</span>` : h}
89
- </div>
90
- `;
91
- }
92
- renderSwitch() {
93
- return a`
94
- <div
95
- class="switch-wrapper ${this.disabled ? "switch-wrapper--disabled" : ""}"
96
- @click=${this.toggleChecked}
97
- >
98
- <input
99
- type="checkbox"
100
- class="checkbox-input"
101
- .checked=${this.internalChecked}
102
- ?disabled=${this.disabled}
103
- .value=${this.value}
104
- ${p((e) => this.inputElement = e)}
105
- />
106
- <div class="switch-track ${this.internalChecked ? "switch-track--checked" : ""}">
107
- <div class="switch-thumb"></div>
108
- </div>
109
- ${this.label ? a`<span class="checkbox-label">${this.label}</span>` : h}
110
- </div>
111
- `;
112
- }
113
- render() {
114
- return this.type === "switch" ? this.renderSwitch() : this.type === "radio" ? this.renderRadio() : this.renderCheckbox();
115
- }
116
- };
117
- r.styles = [
118
- k`
119
- ${b(m)}
120
- `
121
- ];
122
- o([
123
- n({ type: String })
124
- ], r.prototype, "label", 2);
125
- o([
126
- n({ type: String })
127
- ], r.prototype, "value", 2);
128
- o([
129
- n({ type: Boolean })
130
- ], r.prototype, "checked", 2);
131
- o([
132
- n({ type: String })
133
- ], r.prototype, "type", 2);
134
- o([
135
- n({ type: Boolean })
136
- ], r.prototype, "disabled", 2);
137
- o([
138
- n({ type: Boolean })
139
- ], r.prototype, "indeterminate", 2);
140
- o([
141
- f()
142
- ], r.prototype, "internalChecked", 2);
143
- r = o([
144
- v("logosphere-checkbox")
145
- ], r);
146
- export {
147
- r as C
148
- };
@@ -1,53 +0,0 @@
1
- "use strict";const r=require("lit"),t=require("lit/decorators.js"),h=require("lit/directives/ref.js"),d='.checkbox-wrapper{display:inline-flex;align-items:center;gap:var(--spacing-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-family-base)}.checkbox-wrapper--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.checkbox-input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.checkbox-control{box-sizing:border-box;width:16px;height:16px;flex-shrink:0;position:relative;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-body-bg);transition:background-color var(--transition-speed-fast) var(--transition-timing),border-color var(--transition-speed-fast) var(--transition-timing)}.checkbox-control--checked{background-color:var(--color-primary);border-color:var(--color-primary)}.checkbox-control--checked:after{content:"";position:absolute;top:50%;left:50%;width:9px;height:5px;border-left:2px solid #ffffff;border-bottom:2px solid #ffffff;transform:translate(-50%,-65%) rotate(-45deg)}.checkbox-control--indeterminate{background-color:var(--color-primary);border-color:var(--color-primary)}.checkbox-control--indeterminate:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:2px;background-color:#fff;border-radius:1px;transform:translate(-50%,-50%)}.checkbox-label{font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-body-text)}.radio-control{box-sizing:border-box;width:16px;height:16px;flex-shrink:0;position:relative;border:1.5px solid var(--color-border);border-radius:var(--radius-full);background-color:var(--color-body-bg);transition:background-color var(--transition-speed-fast) var(--transition-timing),border-color var(--transition-speed-fast) var(--transition-timing)}.checkbox-wrapper:hover .radio-control{border-color:var(--color-border-emphasis);background-color:var(--color-body-bg-hover)}.radio-control--checked{background-color:var(--color-primary);border-color:var(--color-primary)}.checkbox-wrapper:hover .radio-control--checked{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.radio-control--checked:after{content:"";position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:var(--radius-full);background-color:#fff;transform:translate(-50%,-50%)}.checkbox-wrapper--disabled .radio-control--checked{background-color:var(--color-primary-disabled);border-color:var(--color-primary-disabled)}.switch-wrapper{display:inline-flex;align-items:center;gap:var(--spacing-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-family:var(--font-family-base)}.switch-wrapper--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.switch-track{width:36px;height:20px;flex-shrink:0;border-radius:var(--radius-full);background-color:var(--color-border);position:relative;transition:background-color var(--transition-speed-fast) var(--transition-timing)}.switch-track--checked{background-color:var(--color-primary)}.switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--radius-full);background-color:#fff;box-shadow:var(--shadow-xs);transition:transform var(--transition-speed-fast) var(--transition-timing)}.switch-track--checked .switch-thumb{transform:translate(16px)}';var p=Object.defineProperty,b=Object.getOwnPropertyDescriptor,o=(n,e,i,c)=>{for(var a=c>1?void 0:c?b(e,i):e,s=n.length-1,l;s>=0;s--)(l=n[s])&&(a=(c?l(e,i,a):l(a))||a);return c&&a&&p(e,i,a),a};exports.Checkbox=class extends r.LitElement{constructor(){super(...arguments),this.label="",this.value="",this.checked=!1,this.type="checkbox",this.disabled=!1,this.indeterminate=!1,this.internalChecked=!1}connectedCallback(){super.connectedCallback(),this.internalChecked=this.checked}firstUpdated(){this.setIndeterminate()}updated(e){e.has("indeterminate")&&this.setIndeterminate(),e.has("checked")&&(this.internalChecked=this.checked)}setIndeterminate(){this.inputElement&&(this.inputElement.indeterminate=this.indeterminate)}toggleChecked(){if(!this.disabled){if(this.type==="radio"){if(this.internalChecked)return;this.internalChecked=!0}else this.indeterminate?(this.indeterminate=!1,this.internalChecked=!0):this.internalChecked=!this.internalChecked;this.dispatchEvent(new CustomEvent("lgsChange",{detail:{checked:this.internalChecked,indeterminate:this.indeterminate,value:this.value},bubbles:!0,composed:!0}))}}renderCheckbox(){const e=["checkbox-control",this.internalChecked?"checkbox-control--checked":"",this.indeterminate?"checkbox-control--indeterminate":""].filter(Boolean).join(" ");return r.html`
2
- <div
3
- class="checkbox-wrapper ${this.disabled?"checkbox-wrapper--disabled":""}"
4
- @click=${this.toggleChecked}
5
- >
6
- <input
7
- type="checkbox"
8
- class="checkbox-input"
9
- .checked=${this.internalChecked}
10
- ?disabled=${this.disabled}
11
- .value=${this.value}
12
- ${h.ref(i=>this.inputElement=i)}
13
- />
14
- <span class="${e}"></span>
15
- ${this.label?r.html`<span class="checkbox-label">${this.label}</span>`:r.nothing}
16
- </div>
17
- `}renderRadio(){const e=["radio-control",this.internalChecked?"radio-control--checked":""].filter(Boolean).join(" ");return r.html`
18
- <div
19
- class="checkbox-wrapper ${this.disabled?"checkbox-wrapper--disabled":""}"
20
- @click=${this.toggleChecked}
21
- >
22
- <input
23
- type="radio"
24
- class="checkbox-input"
25
- .checked=${this.internalChecked}
26
- ?disabled=${this.disabled}
27
- .value=${this.value}
28
- ${h.ref(i=>this.inputElement=i)}
29
- />
30
- <span class="${e}"></span>
31
- ${this.label?r.html`<span class="checkbox-label">${this.label}</span>`:r.nothing}
32
- </div>
33
- `}renderSwitch(){return r.html`
34
- <div
35
- class="switch-wrapper ${this.disabled?"switch-wrapper--disabled":""}"
36
- @click=${this.toggleChecked}
37
- >
38
- <input
39
- type="checkbox"
40
- class="checkbox-input"
41
- .checked=${this.internalChecked}
42
- ?disabled=${this.disabled}
43
- .value=${this.value}
44
- ${h.ref(e=>this.inputElement=e)}
45
- />
46
- <div class="switch-track ${this.internalChecked?"switch-track--checked":""}">
47
- <div class="switch-thumb"></div>
48
- </div>
49
- ${this.label?r.html`<span class="checkbox-label">${this.label}</span>`:r.nothing}
50
- </div>
51
- `}render(){return this.type==="switch"?this.renderSwitch():this.type==="radio"?this.renderRadio():this.renderCheckbox()}};exports.Checkbox.styles=[r.css`
52
- ${r.unsafeCSS(d)}
53
- `];o([t.property({type:String})],exports.Checkbox.prototype,"label",2);o([t.property({type:String})],exports.Checkbox.prototype,"value",2);o([t.property({type:Boolean})],exports.Checkbox.prototype,"checked",2);o([t.property({type:String})],exports.Checkbox.prototype,"type",2);o([t.property({type:Boolean})],exports.Checkbox.prototype,"disabled",2);o([t.property({type:Boolean})],exports.Checkbox.prototype,"indeterminate",2);o([t.state()],exports.Checkbox.prototype,"internalChecked",2);exports.Checkbox=o([t.customElement("logosphere-checkbox")],exports.Checkbox);
@@ -1,393 +0,0 @@
1
- import { unsafeCSS as u, css as m, LitElement as _, html as n, nothing as p } from "lit";
2
- import { property as s, state as d, query as b, customElement as f } from "lit/decorators.js";
3
- import { createPopper as g } from "@popperjs/core";
4
- import "./badge-BJqUgXZD.js";
5
- import "./checkbox-CX0LgsWP.js";
6
- import "./formfield-O327HYt0.js";
7
- import "./ui-icon-Ctn4nGFa.js";
8
- const x = '.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__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
- var v = Object.defineProperty, y = Object.getOwnPropertyDescriptor, i = (e, o, r, a) => {
10
- for (var l = a > 1 ? void 0 : a ? y(o, r) : o, c = e.length - 1, h; c >= 0; c--)
11
- (h = e[c]) && (l = (a ? h(o, r, l) : h(l)) || l);
12
- return a && l && v(o, r, l), l;
13
- };
14
- let t = class extends _ {
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._handleOutsideClick = (e) => {
17
- e.composedPath().includes(this) || this._closeDropdown();
18
- }, this._handleKeydown = (e) => {
19
- if (!(this.readOnly || this.disabled))
20
- switch (e.key) {
21
- case "ArrowDown":
22
- e.preventDefault(), this.isOpen ? this.focusedIndex = Math.min(this.focusedIndex + 1, this._filteredItems.length - 1) : (this.isOpen = !0, this.focusedIndex = 0), this._scrollFocusedIntoView();
23
- break;
24
- case "ArrowUp":
25
- e.preventDefault(), this.isOpen && (this.focusedIndex = Math.max(this.focusedIndex - 1, 0), this._scrollFocusedIntoView());
26
- break;
27
- case "Enter":
28
- 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);
29
- break;
30
- case "Escape":
31
- e.preventDefault(), this._closeDropdown();
32
- break;
33
- }
34
- }, this._removeTag = (e, o) => {
35
- o.stopPropagation(), this.setSelected(
36
- this.selected.filter((r) => r[this.optionValue] !== e[this.optionValue])
37
- );
38
- }, this._clearSelection = (e) => {
39
- e.stopPropagation(), this.setSelected([]), this.inputValue = "";
40
- }, this._onFilterFocus = () => {
41
- this.readOnly || this.disabled || (this.inputValue = "", this.isOpen = !0, this.focusedIndex = 0);
42
- }, this._onFilterInput = (e) => {
43
- this.readOnly || this.disabled || (this.inputValue = e.target.value, this.focusedIndex = 0, this.isOpen || (this.isOpen = !0));
44
- }, this._stopPropagation = (e) => e.stopPropagation(), this._onTriggerClick = () => {
45
- this.readOnly || this.disabled || (this.filterable && !this.multiple ? this._focusFilterInput() : this.isOpen = !this.isOpen);
46
- }, this._onFieldClick = (e) => {
47
- if (this.readOnly || this.disabled) return;
48
- const o = e.composedPath();
49
- if (!(o.some((l) => {
50
- const c = l?.classList;
51
- return c?.contains("combobox__trigger") || c?.contains("combobox__chevron");
52
- }) || o.some(
53
- (l) => l?.classList?.contains("combobox__dropdown")
54
- ))) {
55
- if (this.filterable && !this.multiple) {
56
- this.isOpen = !0, this._focusFilterInput();
57
- return;
58
- }
59
- this.isOpen = !this.isOpen;
60
- }
61
- }, this._onChevronClick = () => {
62
- if (!(this.readOnly || this.disabled)) {
63
- if (this.isOpen) {
64
- this._closeDropdown();
65
- return;
66
- }
67
- this.isOpen = !0, this.filterable && !this.multiple && this._focusFilterInput();
68
- }
69
- };
70
- }
71
- // ==================== LIFECYCLE ====================
72
- willUpdate(e) {
73
- if (e.has("items") || e.has("inputValue") || e.has("optionLabel")) {
74
- const o = this.inputValue.toLocaleLowerCase();
75
- this._filteredItems = this.items.filter(
76
- (r) => String(r[this.optionLabel] ?? "").toLocaleLowerCase().includes(o)
77
- );
78
- }
79
- }
80
- updated(e) {
81
- if (e.has("isOpen") && this.isOpen && this.filterable && this.multiple && this.shadowRoot?.querySelector(".combobox__search")?.focus(), e.has("isOpen")) {
82
- this.isOpen ? this.updateComplete.then(() => {
83
- this._showPopover(), this._updatePopper();
84
- }) : (this._hidePopover(), this._destroyPopper());
85
- return;
86
- }
87
- this.isOpen && this._updatePopper();
88
- }
89
- connectedCallback() {
90
- super.connectedCallback(), document.addEventListener("click", this._handleOutsideClick);
91
- }
92
- disconnectedCallback() {
93
- super.disconnectedCallback(), document.removeEventListener("click", this._handleOutsideClick), this._destroyPopper();
94
- }
95
- // ==================== HELPERS ====================
96
- _closeDropdown() {
97
- this.isOpen = !1, this.focusedIndex = -1, this.filterable && (this.inputValue = "");
98
- }
99
- get _filterDisplayValue() {
100
- return this.isOpen ? this.inputValue : !this.multiple && this.selected.length ? String(this.selected[0][this.optionLabel]) : "";
101
- }
102
- _focusFilterInput() {
103
- this.updateComplete.then(() => {
104
- this.shadowRoot?.querySelector(".combobox__filter-input")?.focus();
105
- });
106
- }
107
- _scrollFocusedIntoView() {
108
- this.updateComplete.then(() => {
109
- this.shadowRoot?.querySelectorAll(".combobox__item")?.[this.focusedIndex]?.scrollIntoView({ block: "nearest" });
110
- });
111
- }
112
- // ==================== SELECTION ====================
113
- selectedItems() {
114
- return this.selected;
115
- }
116
- isSelected(e) {
117
- return this.selected.some((o) => o[this.optionValue] === e[this.optionValue]);
118
- }
119
- _selectItem(e, o) {
120
- o.stopPropagation();
121
- let r;
122
- this.multiple ? r = this.isSelected(e) ? this.selected.filter((a) => a[this.optionValue] !== e[this.optionValue]) : [...this.selected, e] : (r = [e], this.isOpen = !1, this.filterable && (this.inputValue = "")), this.setSelected(r);
123
- }
124
- setSelected(e) {
125
- this.selected = e, this.dispatchEvent(
126
- new CustomEvent("selected", { detail: { selected: e }, bubbles: !0, composed: !0 })
127
- ), this.dispatchEvent(
128
- new CustomEvent("change", { detail: { value: e }, bubbles: !0, composed: !0 })
129
- );
130
- }
131
- // ==================== RENDER PARTS ====================
132
- _renderTagList() {
133
- return n`
134
- <div class="combobox__tags">
135
- ${this.selected.map(
136
- (e) => n`
137
- <logosphere-badge
138
- variant="default"
139
- text=${String(e[this.optionLabel])}
140
- ?closeable=${!this.readOnly}
141
- @close=${(o) => this._removeTag(e, o)}
142
- ></logosphere-badge>
143
- `
144
- )}
145
- </div>
146
- `;
147
- }
148
- _renderTriggerContent() {
149
- return this.filterable && !this.multiple ? n`
150
- <input
151
- class="combobox__filter-input"
152
- type="text"
153
- .value=${this._filterDisplayValue}
154
- placeholder=${this.placeholder}
155
- ?disabled=${this.readOnly || this.disabled}
156
- @focus=${this._onFilterFocus}
157
- @input=${this._onFilterInput}
158
- @keydown=${this._handleKeydown}
159
- @click=${this._stopPropagation}
160
- />
161
- ${this.clearable && !this.readOnly && this.selected.length ? n`
162
- <button class="combobox__clear" @click=${this._clearSelection} aria-label="Clear">
163
- <ui-icon name="uil-times" size="14"></ui-icon>
164
- </button>
165
- ` : p}
166
- ` : this.multiple && this.selected.length ? this._renderTagList() : !this.multiple && this.selected.length ? n`
167
- <span class="combobox__single-value">${this.selected[0][this.optionLabel]}</span>
168
- ${this.clearable && !this.readOnly ? n`
169
- <button class="combobox__clear" @click=${this._clearSelection} aria-label="Clear">
170
- <ui-icon name="uil-times" size="14"></ui-icon>
171
- </button>
172
- ` : p}
173
- ` : n`<span class="combobox__placeholder">${this.placeholder}</span>`;
174
- }
175
- _renderDropdown() {
176
- return n`
177
- <div data-combobox-popper popover="manual" class="combobox__dropdown">
178
- ${this.filterable && this.multiple ? n`
179
- <input
180
- class="combobox__search"
181
- type="text"
182
- placeholder=${this.placeholder}
183
- .value=${this.inputValue}
184
- @input=${this._onFilterInput}
185
- @keydown=${this._handleKeydown}
186
- @click=${this._stopPropagation}
187
- />
188
- ` : p}
189
-
190
- <div class="combobox__list">
191
- ${this._filteredItems.length === 0 ? n`<div class="combobox__empty">${this.emptyMessage}</div>` : this._filteredItems.map(
192
- (e, o) => n`
193
- <div
194
- class="combobox__item
195
- ${!this.multiple && this.isSelected(e) ? "combobox__item--selected" : ""}
196
- ${o === this.focusedIndex ? "combobox__item--focused" : ""}"
197
- @click=${(r) => this._selectItem(e, r)}
198
- @mouseenter=${() => {
199
- this.focusedIndex = o;
200
- }}
201
- >
202
- ${this.multiple ? n`
203
- <logosphere-checkbox
204
- .checked=${this.isSelected(e)}
205
- .value=${e[this.optionValue]}
206
- @click=${this._stopPropagation}
207
- ></logosphere-checkbox>
208
- ` : p}
209
- ${e[this.optionLabel]}
210
- </div>
211
- `
212
- )}
213
- </div>
214
- </div>
215
- `;
216
- }
217
- _getPopperModifiers() {
218
- return [
219
- { name: "offset", options: { offset: [0, 8] } },
220
- { name: "preventOverflow", options: { padding: 8 } },
221
- {
222
- name: "flip",
223
- options: {
224
- padding: 8,
225
- fallbackPlacements: ["top-start", "right-start", "left-start", "bottom-end", "top-end"]
226
- }
227
- }
228
- ];
229
- }
230
- _getPopperReferenceElement() {
231
- return this._formFieldElement?.shadowRoot?.querySelector(
232
- ".formfield__container"
233
- ) ?? this._referenceElement;
234
- }
235
- _updatePopper() {
236
- const e = this._getPopperReferenceElement(), o = this._dropdownElement;
237
- if (!this.isOpen || !e || !o || !this.isConnected) return;
238
- const r = Math.round(e.getBoundingClientRect().width);
239
- if (o.style.width = `${r}px`, this._popperInstance) {
240
- this._popperInstance.setOptions({
241
- placement: "bottom-start",
242
- strategy: "fixed",
243
- modifiers: this._getPopperModifiers()
244
- }), this._popperInstance.update();
245
- return;
246
- }
247
- this._popperInstance = g(e, o, {
248
- placement: "bottom-start",
249
- strategy: "fixed",
250
- modifiers: this._getPopperModifiers()
251
- });
252
- }
253
- _destroyPopper() {
254
- this._popperInstance && (this._popperInstance.destroy(), this._popperInstance = void 0);
255
- }
256
- _showPopover() {
257
- this._dropdownElement?.showPopover?.();
258
- }
259
- _hidePopover() {
260
- const e = this._dropdownElement;
261
- try {
262
- e?.hidePopover?.();
263
- } catch {
264
- }
265
- }
266
- // ==================== MAIN RENDER ====================
267
- render() {
268
- const e = [
269
- "combobox__trigger",
270
- `combobox__trigger--${this.size}`,
271
- this.disabled ? "combobox__trigger--disabled" : "",
272
- this.readOnly ? "combobox__trigger--readonly" : "",
273
- !this.readOnly && !this.disabled && this.isOpen ? "combobox__trigger--open" : "",
274
- this.clearable ? "" : "combobox__trigger--not-clearable"
275
- ].filter(Boolean).join(" ");
276
- return n`
277
- <div class="combobox">
278
- <logosphere-formfield
279
- .label=${this.label}
280
- .helper=${this.helper}
281
- .error=${this.error}
282
- cursor="pointer"
283
- .required=${this.required}
284
- .disabled=${this.disabled}
285
- .readonly=${this.readOnly}
286
- .size=${this.size}
287
- .variant=${this.variant}
288
- .forceFocused=${this.isOpen}
289
- @click=${this._onFieldClick}
290
- >
291
- <div class="combobox__wrapper">
292
- <div
293
- class="${e}"
294
- tabindex="${this.readOnly || this.filterable || this.disabled ? -1 : 0}"
295
- @click=${this._onTriggerClick}
296
- @keydown=${this.filterable ? p : this._handleKeydown}
297
- >
298
- ${this._renderTriggerContent()}
299
- </div>
300
-
301
- ${this._renderDropdown()}
302
- </div>
303
- <span
304
- class="combobox__chevron ${this.isOpen ? "combobox__chevron--open" : ""}"
305
- @click=${this._onChevronClick}
306
- >
307
- <ui-icon name="uil-angle-down" size="16"></ui-icon>
308
- </span>
309
- </logosphere-formfield>
310
- </div>
311
- `;
312
- }
313
- };
314
- t.styles = [
315
- m`
316
- ${u(x)}
317
- `
318
- ];
319
- i([
320
- s({ type: String })
321
- ], t.prototype, "label", 2);
322
- i([
323
- s({ type: String })
324
- ], t.prototype, "helper", 2);
325
- i([
326
- s({ type: String })
327
- ], t.prototype, "error", 2);
328
- i([
329
- s({ type: String })
330
- ], t.prototype, "placeholder", 2);
331
- i([
332
- s({ type: Boolean })
333
- ], t.prototype, "required", 2);
334
- i([
335
- s({ type: Boolean })
336
- ], t.prototype, "disabled", 2);
337
- i([
338
- s({ type: Boolean })
339
- ], t.prototype, "readOnly", 2);
340
- i([
341
- s({ type: String })
342
- ], t.prototype, "variant", 2);
343
- i([
344
- s({ type: Boolean })
345
- ], t.prototype, "multiple", 2);
346
- i([
347
- s({ type: Boolean })
348
- ], t.prototype, "filterable", 2);
349
- i([
350
- s({ type: String })
351
- ], t.prototype, "optionLabel", 2);
352
- i([
353
- s({ type: String })
354
- ], t.prototype, "optionValue", 2);
355
- i([
356
- s({ type: String })
357
- ], t.prototype, "emptyMessage", 2);
358
- i([
359
- s({ type: Array })
360
- ], t.prototype, "items", 2);
361
- i([
362
- s({ type: String })
363
- ], t.prototype, "size", 2);
364
- i([
365
- s({ type: Boolean })
366
- ], t.prototype, "clearable", 2);
367
- i([
368
- d()
369
- ], t.prototype, "selected", 2);
370
- i([
371
- d()
372
- ], t.prototype, "inputValue", 2);
373
- i([
374
- d()
375
- ], t.prototype, "isOpen", 2);
376
- i([
377
- d()
378
- ], t.prototype, "focusedIndex", 2);
379
- i([
380
- b(".combobox__wrapper")
381
- ], t.prototype, "_referenceElement", 2);
382
- i([
383
- b("logosphere-formfield")
384
- ], t.prototype, "_formFieldElement", 2);
385
- i([
386
- b("[data-combobox-popper]")
387
- ], t.prototype, "_dropdownElement", 2);
388
- t = i([
389
- f("logosphere-combobox")
390
- ], t);
391
- export {
392
- t as C
393
- };