@logosphere-ui/core 0.0.0-alpha.2 → 0.0.0-alpha.20

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 (108) hide show
  1. package/dist/atoms/FormField/formfield.d.ts +7 -0
  2. package/dist/badge-7IIatiRv.cjs +13 -0
  3. package/dist/{badge-DE7Tgd8Z.js → badge-B2chRYGd.js} +5 -4
  4. package/dist/badge.cjs +1 -1
  5. package/dist/badge.js +1 -1
  6. package/dist/{breadcrumb-B-4yqoJZ.js → breadcrumb-BB61Xt0s.js} +3 -3
  7. package/dist/breadcrumb.js +1 -1
  8. package/dist/{button-C1EwOosO.js → button-BqOMevro.js} +4 -4
  9. package/dist/button.js +1 -1
  10. package/dist/calendar-LMn1ZF3N.cjs +88 -0
  11. package/dist/calendar-WZ_GQvnn.js +652 -0
  12. package/dist/calendar.cjs +1 -0
  13. package/dist/calendar.js +4 -0
  14. package/dist/{card-CUhlTJyJ.js → card-CNoTUaJC.js} +5 -4
  15. package/dist/{card-n8ka8Zk-.cjs → card-KiNHfEi2.cjs} +1 -1
  16. package/dist/card.cjs +1 -1
  17. package/dist/card.js +1 -1
  18. package/dist/chatbot-B_3w7h4T.cjs +161 -0
  19. package/dist/{chatbot-Ces7Xveb.js → chatbot-uGYcx6Nn.js} +118 -107
  20. package/dist/chatbot.cjs +1 -1
  21. package/dist/chatbot.js +2 -2
  22. package/dist/{checkbox-7Rb3WKGx.js → checkbox-g6kl2jGR.js} +4 -4
  23. package/dist/checkbox.js +1 -1
  24. package/dist/combobox-C6zoQopK.cjs +113 -0
  25. package/dist/combobox-LBU6VHLi.js +376 -0
  26. package/dist/combobox.cjs +1 -1
  27. package/dist/combobox.js +1 -1
  28. package/dist/datepicker-CwDDA6np.cjs +85 -0
  29. package/dist/datepicker-SwKsdw3S.js +375 -0
  30. package/dist/datepicker.cjs +1 -1
  31. package/dist/datepicker.js +2 -2
  32. package/dist/{download-manager-A4fOxGWJ.js → download-manager-a541AYhr.js} +3 -3
  33. package/dist/download-manager.js +1 -1
  34. package/dist/drawer-BvcPd5nz.cjs +25 -0
  35. package/dist/drawer-DVINJB4a.js +106 -0
  36. package/dist/drawer.cjs +1 -0
  37. package/dist/drawer.js +4 -0
  38. package/dist/formfield-BFOIEicR.cjs +33 -0
  39. package/dist/formfield-CNh4mBSs.js +147 -0
  40. package/dist/formfield.cjs +1 -1
  41. package/dist/formfield.js +1 -1
  42. package/dist/index.cjs +1 -1
  43. package/dist/index.d.ts +4 -0
  44. package/dist/index.js +36 -27
  45. package/dist/index.umd.js +462 -205
  46. package/dist/input-JpAWN-M1.cjs +59 -0
  47. package/dist/{input-ByllRq9M.js → input-jmbvgWEq.js} +100 -80
  48. package/dist/input.cjs +1 -1
  49. package/dist/input.js +1 -1
  50. package/dist/left-menu.cjs +1 -0
  51. package/dist/left-menu.js +5 -0
  52. package/dist/leftmenu-C-q1h_2U.js +291 -0
  53. package/dist/leftmenu-DBcncBN8.cjs +74 -0
  54. package/dist/{modal-Bfc6WQSL.js → modal-B8aQyCBg.js} +6 -7
  55. package/dist/{modal-DQ8VFL-P.cjs → modal-DU1sszVn.cjs} +7 -7
  56. package/dist/modal.cjs +1 -1
  57. package/dist/modal.js +1 -1
  58. package/dist/molecules/Input/input.d.ts +3 -1
  59. package/dist/molecules/Textarea/text-area.d.ts +0 -1
  60. package/dist/organisms/Calendar/calendar.d.ts +54 -0
  61. package/dist/organisms/Calendar/index.d.ts +1 -0
  62. package/dist/organisms/Calendar/shared.d.ts +9 -0
  63. package/dist/organisms/Chatbot/chatbot.d.ts +3 -1
  64. package/dist/organisms/Chatbot/index.d.ts +1 -1
  65. package/dist/organisms/Combobox/combobox.d.ts +16 -0
  66. package/dist/organisms/DatePicker/datepicker.d.ts +33 -33
  67. package/dist/organisms/Drawer/drawer.d.ts +29 -0
  68. package/dist/organisms/Drawer/index.d.ts +1 -0
  69. package/dist/organisms/LeftMenu/index.d.ts +2 -0
  70. package/dist/organisms/LeftMenu/leftmenu-item.d.ts +14 -0
  71. package/dist/organisms/LeftMenu/leftmenu.d.ts +44 -0
  72. package/dist/organisms/TreeMenu/index.d.ts +1 -0
  73. package/dist/organisms/TreeMenu/tree-menu.d.ts +41 -0
  74. package/dist/popover-C2p5Pmts.cjs +30 -0
  75. package/dist/popover-CaVOXo_k.js +140 -0
  76. package/dist/popover.cjs +1 -1
  77. package/dist/popover.js +1 -1
  78. package/dist/{switch-Cpl53nRW.js → switch-CG4SSjTg.js} +4 -4
  79. package/dist/switch.js +1 -1
  80. package/dist/{tab-BKdN4xAz.js → tab-BYU_XEhp.js} +4 -4
  81. package/dist/tab.js +1 -1
  82. package/dist/text-area-CZDdxbrN.cjs +46 -0
  83. package/dist/{text-area-CtZY3yLA.js → text-area-Dec_k4rs.js} +45 -44
  84. package/dist/textarea.cjs +1 -1
  85. package/dist/textarea.js +1 -1
  86. package/dist/tree-menu-B1iwfHyd.cjs +47 -0
  87. package/dist/tree-menu-BbX8GK_z.js +154 -0
  88. package/dist/tree-menu.cjs +1 -0
  89. package/dist/tree-menu.js +4 -0
  90. package/dist/ui-icon-Bys4HYSQ.js +57 -0
  91. package/dist/ui-icon-DWh1MhBa.cjs +22 -0
  92. package/package.json +31 -2
  93. package/dist/badge-BbhaO73N.cjs +0 -13
  94. package/dist/chatbot-oRwt64d8.cjs +0 -160
  95. package/dist/combobox-BJbI-Tgi.js +0 -268
  96. package/dist/combobox-pmE7bgEL.cjs +0 -99
  97. package/dist/datepicker-DFJx45C-.js +0 -750
  98. package/dist/datepicker-b9JGTTMx.cjs +0 -115
  99. package/dist/directive-Z_rhNYWK.js +0 -240
  100. package/dist/directive-ekjitgzi.cjs +0 -3
  101. package/dist/formfield-D_7NFFoe.cjs +0 -27
  102. package/dist/formfield-d8fp9FTV.js +0 -118
  103. package/dist/input-DsIOQPGV.cjs +0 -46
  104. package/dist/live-BX-yBGvT.cjs +0 -1
  105. package/dist/live-WTVSYE2F.js +0 -24
  106. package/dist/popover-C_Ob86CJ.cjs +0 -30
  107. package/dist/popover-D-FXdEdS.js +0 -1040
  108. package/dist/text-area-DFDF5oos.cjs +0 -44
@@ -0,0 +1,30 @@
1
+ "use strict";const s=require("lit"),o=require("lit/decorators.js"),d=require("@popperjs/core"),c='.popover__wrapper{position:relative;display:inline-block;font-family:var(--font-family-base)}.popover__trigger{display:inline-flex}.popover__panel{position:relative;overflow:visible;z-index:var(--z-index-popover);min-width:240px;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-body-bg);box-shadow:var(--shadow-md)}.popover__content{position:relative;z-index:1;background-color:var(--color-body-bg);border-radius:var(--radius-md);overflow:hidden}.popover__content:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background-color:var(--color-body-bg);border-radius:var(--radius-md) var(--radius-md) 0 0;z-index:1;pointer-events:none}.popover__content>*{position:relative;z-index:2}.popover__title{padding:10px var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-body-text)}.popover__body{padding:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-secondary)}.popover__body--with-border{border-top:1px solid var(--color-border)}.popper-arrow{position:absolute;width:12px;height:12px;pointer-events:none;z-index:0}.popper-arrow:before{content:"";position:absolute;inset:0;background:var(--color-border);transform:rotate(45deg)}.popper-arrow:after{content:"";position:absolute;inset:1px;background:var(--color-body-bg);transform:rotate(45deg)}[data-popper]{position:relative;overflow:visible}[data-popper-placement^=bottom]>.popper-arrow{top:-6px;left:50%;transform:translate(-50%,-50%)}[data-popper-placement^=top]>.popper-arrow{bottom:-6px;left:50%;transform:translate(-50%,50%)}[data-popper-placement^=left]>.popper-arrow{right:-6px;top:50%;transform:translate(50%,-50%)}[data-popper-placement^=right]>.popper-arrow{left:-6px;top:50%;transform:translate(-50%,-50%)}';var v=Object.defineProperty,h=Object.getOwnPropertyDescriptor,t=(n,e,r,i)=>{for(var p=i>1?void 0:i?h(e,r):e,a=n.length-1,l;a>=0;a--)(l=n[a])&&(p=(i?l(e,r,p):l(p))||p);return i&&p&&v(e,r,p),p};exports.Popover=class extends s.LitElement{constructor(){super(...arguments),this.title="",this.trigger="click",this.placement="bottom",this.offset=8,this.open=!1,this.closeOnOutsideClick=!0,this.handleDocumentClick=e=>{!this.open||!this.closeOnOutsideClick||e.composedPath().includes(this)||this.setOpen(!1)},this.toggle=e=>{(this.trigger==="click"||this.trigger==="both")&&(e?.stopPropagation(),this.setOpen(!this.open))},this.handleMouseEnter=()=>{(this.trigger==="hover"||this.trigger==="both")&&this.setOpen(!0)},this.handleMouseLeave=()=>{(this.trigger==="hover"||this.trigger==="both")&&this.setOpen(!1)}}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.handleDocumentClick,{capture:!0})}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("click",this.handleDocumentClick,{capture:!0}),this.destroyPopper()}updated(e){super.updated(e);const r=e.has("placement"),i=e.has("open")&&this.open;if(e.has("open")&&!this.open){this.destroyPopper();return}(i||r)&&this.open&&this.updatePopper()}setOpen(e){this.open!==e&&(this.open=e,this.dispatchEvent(new CustomEvent(e?"popover-open":"popover-close",{bubbles:!0,composed:!0})))}updatePopper(){if(!this.isConnected||!this.open)return;const e=this.triggerElement,r=this.popperElement;if(!(!e||!r)){if(this.popperInstance){this.popperInstance.setOptions({placement:this.placement,modifiers:this.getPopperModifiers(),strategy:"fixed"}),this.popperInstance.update();return}this.popperInstance=d.createPopper(e,r,{placement:this.placement,strategy:"fixed",modifiers:this.getPopperModifiers()})}}getPopperModifiers(){return[{name:"offset",options:{offset:[0,this.offset]}},{name:"arrow",options:{element:this.popperArrowElement,padding:8}},{name:"preventOverflow",options:{padding:8}},{name:"flip",options:{padding:8}}]}destroyPopper(){this.popperInstance&&(this.popperInstance.destroy(),this.popperInstance=void 0)}render(){const e=!!this.title;return s.html`
2
+ <div
3
+ class="popover__wrapper"
4
+ @mouseenter=${this.handleMouseEnter}
5
+ @mouseleave=${this.handleMouseLeave}
6
+ >
7
+ <div class="popover__trigger" part="trigger" @click=${this.toggle}>
8
+ <slot name="trigger"></slot>
9
+ </div>
10
+
11
+ ${this.open?s.html`
12
+ <div
13
+ data-popper
14
+ class="popover__panel"
15
+ role="dialog"
16
+ aria-hidden=${this.open?"false":"true"}
17
+ >
18
+ <div data-popper-arrow class="popper-arrow"></div>
19
+ <div class="popover__content">
20
+ ${this.title?s.html`
21
+ <div class="popover__title">${this.title}</div>
22
+ `:null}
23
+ <div class="popover__body ${e?"popover__body--with-border":""}">
24
+ <slot></slot>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ `:null}
29
+ </div>
30
+ `}};exports.Popover.styles=[s.css`${s.unsafeCSS(c)}`];t([o.property({type:String})],exports.Popover.prototype,"title",2);t([o.property({type:String})],exports.Popover.prototype,"trigger",2);t([o.property({type:String})],exports.Popover.prototype,"placement",2);t([o.property({type:Number})],exports.Popover.prototype,"offset",2);t([o.property({type:Boolean,reflect:!0})],exports.Popover.prototype,"open",2);t([o.property({type:Boolean})],exports.Popover.prototype,"closeOnOutsideClick",2);t([o.query('[part="trigger"]')],exports.Popover.prototype,"triggerElement",2);t([o.query("[data-popper]")],exports.Popover.prototype,"popperElement",2);t([o.query("[data-popper-arrow]")],exports.Popover.prototype,"popperArrowElement",2);exports.Popover=t([o.customElement("logosphere-popover")],exports.Popover);
@@ -0,0 +1,140 @@
1
+ import { unsafeCSS as h, css as v, LitElement as f, html as d } from "lit";
2
+ import { property as i, query as c, customElement as g } from "lit/decorators.js";
3
+ import { createPopper as m } from "@popperjs/core";
4
+ const u = '.popover__wrapper{position:relative;display:inline-block;font-family:var(--font-family-base)}.popover__trigger{display:inline-flex}.popover__panel{position:relative;overflow:visible;z-index:var(--z-index-popover);min-width:240px;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-body-bg);box-shadow:var(--shadow-md)}.popover__content{position:relative;z-index:1;background-color:var(--color-body-bg);border-radius:var(--radius-md);overflow:hidden}.popover__content:before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background-color:var(--color-body-bg);border-radius:var(--radius-md) var(--radius-md) 0 0;z-index:1;pointer-events:none}.popover__content>*{position:relative;z-index:2}.popover__title{padding:10px var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-body-text)}.popover__body{padding:var(--spacing-3);font-size:var(--font-size-sm);color:var(--color-secondary)}.popover__body--with-border{border-top:1px solid var(--color-border)}.popper-arrow{position:absolute;width:12px;height:12px;pointer-events:none;z-index:0}.popper-arrow:before{content:"";position:absolute;inset:0;background:var(--color-border);transform:rotate(45deg)}.popper-arrow:after{content:"";position:absolute;inset:1px;background:var(--color-body-bg);transform:rotate(45deg)}[data-popper]{position:relative;overflow:visible}[data-popper-placement^=bottom]>.popper-arrow{top:-6px;left:50%;transform:translate(-50%,-50%)}[data-popper-placement^=top]>.popper-arrow{bottom:-6px;left:50%;transform:translate(-50%,50%)}[data-popper-placement^=left]>.popper-arrow{right:-6px;top:50%;transform:translate(50%,-50%)}[data-popper-placement^=right]>.popper-arrow{left:-6px;top:50%;transform:translate(-50%,-50%)}';
5
+ var b = Object.defineProperty, y = Object.getOwnPropertyDescriptor, o = (e, r, s, n) => {
6
+ for (var p = n > 1 ? void 0 : n ? y(r, s) : r, a = e.length - 1, l; a >= 0; a--)
7
+ (l = e[a]) && (p = (n ? l(r, s, p) : l(p)) || p);
8
+ return n && p && b(r, s, p), p;
9
+ };
10
+ let t = class extends f {
11
+ constructor() {
12
+ super(...arguments), this.title = "", this.trigger = "click", this.placement = "bottom", this.offset = 8, this.open = !1, this.closeOnOutsideClick = !0, this.handleDocumentClick = (e) => {
13
+ !this.open || !this.closeOnOutsideClick || e.composedPath().includes(this) || this.setOpen(!1);
14
+ }, this.toggle = (e) => {
15
+ (this.trigger === "click" || this.trigger === "both") && (e?.stopPropagation(), this.setOpen(!this.open));
16
+ }, this.handleMouseEnter = () => {
17
+ (this.trigger === "hover" || this.trigger === "both") && this.setOpen(!0);
18
+ }, this.handleMouseLeave = () => {
19
+ (this.trigger === "hover" || this.trigger === "both") && this.setOpen(!1);
20
+ };
21
+ }
22
+ connectedCallback() {
23
+ super.connectedCallback(), document.addEventListener("click", this.handleDocumentClick, { capture: !0 });
24
+ }
25
+ disconnectedCallback() {
26
+ super.disconnectedCallback(), document.removeEventListener("click", this.handleDocumentClick, { capture: !0 }), this.destroyPopper();
27
+ }
28
+ updated(e) {
29
+ super.updated(e);
30
+ const r = e.has("placement"), s = e.has("open") && this.open;
31
+ if (e.has("open") && !this.open) {
32
+ this.destroyPopper();
33
+ return;
34
+ }
35
+ (s || r) && this.open && this.updatePopper();
36
+ }
37
+ setOpen(e) {
38
+ this.open !== e && (this.open = e, this.dispatchEvent(new CustomEvent(e ? "popover-open" : "popover-close", {
39
+ bubbles: !0,
40
+ composed: !0
41
+ })));
42
+ }
43
+ updatePopper() {
44
+ if (!this.isConnected || !this.open) return;
45
+ const e = this.triggerElement, r = this.popperElement;
46
+ if (!(!e || !r)) {
47
+ if (this.popperInstance) {
48
+ this.popperInstance.setOptions({
49
+ placement: this.placement,
50
+ modifiers: this.getPopperModifiers(),
51
+ strategy: "fixed"
52
+ }), this.popperInstance.update();
53
+ return;
54
+ }
55
+ this.popperInstance = m(e, r, {
56
+ placement: this.placement,
57
+ strategy: "fixed",
58
+ modifiers: this.getPopperModifiers()
59
+ });
60
+ }
61
+ }
62
+ getPopperModifiers() {
63
+ return [
64
+ { name: "offset", options: { offset: [0, this.offset] } },
65
+ { name: "arrow", options: { element: this.popperArrowElement, padding: 8 } },
66
+ { name: "preventOverflow", options: { padding: 8 } },
67
+ { name: "flip", options: { padding: 8 } }
68
+ ];
69
+ }
70
+ destroyPopper() {
71
+ this.popperInstance && (this.popperInstance.destroy(), this.popperInstance = void 0);
72
+ }
73
+ render() {
74
+ const e = !!this.title;
75
+ return d`
76
+ <div
77
+ class="popover__wrapper"
78
+ @mouseenter=${this.handleMouseEnter}
79
+ @mouseleave=${this.handleMouseLeave}
80
+ >
81
+ <div class="popover__trigger" part="trigger" @click=${this.toggle}>
82
+ <slot name="trigger"></slot>
83
+ </div>
84
+
85
+ ${this.open ? d`
86
+ <div
87
+ data-popper
88
+ class="popover__panel"
89
+ role="dialog"
90
+ aria-hidden=${this.open ? "false" : "true"}
91
+ >
92
+ <div data-popper-arrow class="popper-arrow"></div>
93
+ <div class="popover__content">
94
+ ${this.title ? d`
95
+ <div class="popover__title">${this.title}</div>
96
+ ` : null}
97
+ <div class="popover__body ${e ? "popover__body--with-border" : ""}">
98
+ <slot></slot>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ ` : null}
103
+ </div>
104
+ `;
105
+ }
106
+ };
107
+ t.styles = [v`${h(u)}`];
108
+ o([
109
+ i({ type: String })
110
+ ], t.prototype, "title", 2);
111
+ o([
112
+ i({ type: String })
113
+ ], t.prototype, "trigger", 2);
114
+ o([
115
+ i({ type: String })
116
+ ], t.prototype, "placement", 2);
117
+ o([
118
+ i({ type: Number })
119
+ ], t.prototype, "offset", 2);
120
+ o([
121
+ i({ type: Boolean, reflect: !0 })
122
+ ], t.prototype, "open", 2);
123
+ o([
124
+ i({ type: Boolean })
125
+ ], t.prototype, "closeOnOutsideClick", 2);
126
+ o([
127
+ c('[part="trigger"]')
128
+ ], t.prototype, "triggerElement", 2);
129
+ o([
130
+ c("[data-popper]")
131
+ ], t.prototype, "popperElement", 2);
132
+ o([
133
+ c("[data-popper-arrow]")
134
+ ], t.prototype, "popperArrowElement", 2);
135
+ t = o([
136
+ g("logosphere-popover")
137
+ ], t);
138
+ export {
139
+ t as P
140
+ };
package/dist/popover.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./popover-C_Ob86CJ.cjs");Object.defineProperty(exports,"Popover",{enumerable:!0,get:()=>e.Popover});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./popover-C2p5Pmts.cjs");Object.defineProperty(exports,"Popover",{enumerable:!0,get:()=>e.Popover});
package/dist/popover.js CHANGED
@@ -1,4 +1,4 @@
1
- import { P as e } from "./popover-D-FXdEdS.js";
1
+ import { P as e } from "./popover-CaVOXo_k.js";
2
2
  export {
3
3
  e as Popover
4
4
  };
@@ -1,4 +1,4 @@
1
- import { LitElement as l, html as d, unsafeCSS as p, css as _ } from "lit";
1
+ import { unsafeCSS as l, css as d, LitElement as p, html as _ } from "lit";
2
2
  import { property as n, query as w, customElement as b } from "lit/decorators.js";
3
3
  const u = ":host{display:block}.switch{display:inline-block;position:relative}.switch--md{width:36px;height:20px}.switch--sm{width:32px;height:18px}.switch__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.switch__track{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--transition-speed-base) var(--transition-timing);background-color:var(--color-gray-300)}.switch__track--on{background-color:var(--color-primary)}.switch__track--disabled{cursor:not-allowed}.switch__track--disabled-on{background-color:color-mix(in srgb,var(--color-primary) 30%,transparent)}.switch__track--disabled-off{background-color:var(--color-gray-200)}.switch__thumb{position:absolute;background-color:#fff;border-radius:var(--radius-full);box-shadow:var(--shadow-xs);top:2px;left:2px;transform:translate(0);transition:transform var(--transition-speed-base) var(--transition-timing)}.switch--md .switch__thumb{width:16px;height:16px}.switch--sm .switch__thumb{width:14px;height:14px}.switch__thumb--on.switch--md .switch__thumb,.switch__track--on~.switch__thumb{transform:translate(16px)}.switch__track--on+.switch__thumb{transform:translate(16px)}";
4
4
  var m = Object.defineProperty, k = Object.getOwnPropertyDescriptor, a = (e, t, r, c) => {
@@ -6,7 +6,7 @@ var m = Object.defineProperty, k = Object.getOwnPropertyDescriptor, a = (e, t, r
6
6
  (h = e[o]) && (s = (c ? h(t, r, s) : h(s)) || s);
7
7
  return c && s && m(t, r, s), s;
8
8
  };
9
- let i = class extends l {
9
+ let i = class extends p {
10
10
  constructor() {
11
11
  super(...arguments), this.checked = !1, this.disabled = !1, this.size = "md";
12
12
  }
@@ -24,7 +24,7 @@ let i = class extends l {
24
24
  this.disabled && this.checked ? "switch__track--disabled-on" : "",
25
25
  this.disabled && !this.checked ? "switch__track--disabled-off" : ""
26
26
  ].filter(Boolean).join(" "), r = this.checked ? "translateX(16px)" : "translateX(0)";
27
- return d`
27
+ return _`
28
28
  <label class="${e}">
29
29
  <input
30
30
  class="switch__input"
@@ -43,7 +43,7 @@ let i = class extends l {
43
43
  `;
44
44
  }
45
45
  };
46
- i.styles = [_`${p(u)}`];
46
+ i.styles = [d`${l(u)}`];
47
47
  a([
48
48
  n({ type: Boolean })
49
49
  ], i.prototype, "checked", 2);
package/dist/switch.js CHANGED
@@ -1,4 +1,4 @@
1
- import { S as t } from "./switch-Cpl53nRW.js";
1
+ import { S as t } from "./switch-CG4SSjTg.js";
2
2
  export {
3
3
  t as Switch
4
4
  };
@@ -1,4 +1,4 @@
1
- import { LitElement as p, nothing as c, html as r, unsafeCSS as f, css as v } from "lit";
1
+ import { unsafeCSS as p, css as f, LitElement as v, nothing as c, html as r } from "lit";
2
2
  import { property as b, state as h, query as _, customElement as u } from "lit/decorators.js";
3
3
  const y = ".tab{width:100%;font-family:var(--font-family-base)}.tab__list{display:flex;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid var(--color-border);scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.tab__list::-webkit-scrollbar{display:none}.tab__button{display:inline-flex;flex-direction:row;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);min-width:120px;position:relative;cursor:pointer;border:none;border-bottom:2px solid transparent;background:transparent;font-family:var(--font-family-base);white-space:nowrap;transition:background-color var(--transition-speed-base) var(--transition-timing),border-color var(--transition-speed-base) var(--transition-timing)}.tab__button:hover:not(.tab__button--disabled):not(.tab__button--active){background-color:var(--color-tertiary-bg)}.tab__button--active{border-bottom-color:var(--color-primary)}.tab__button--disabled{cursor:not-allowed;opacity:.4;pointer-events:none}.tab__icon{font-size:var(--font-size-xl);flex-shrink:0;color:inherit;line-height:1}.tab__content{display:flex;flex-direction:column;align-items:flex-start}.tab__label{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-body-text)}.tab__label--inactive{color:var(--color-tertiary)}.tab__description{font-size:var(--font-size-xs);text-align:left;color:var(--color-tertiary)}.tab__description--active{color:var(--color-secondary)}.tab__panel{padding:var(--spacing-4);outline:none}.tab__panel--hidden{display:none}";
4
4
  var g = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (e, i, t, a) => {
@@ -6,7 +6,7 @@ var g = Object.defineProperty, w = Object.getOwnPropertyDescriptor, n = (e, i, t
6
6
  (d = e[l]) && (s = (a ? d(i, t, s) : d(s)) || s);
7
7
  return a && s && g(i, t, s), s;
8
8
  };
9
- let o = class extends p {
9
+ let o = class extends v {
10
10
  constructor() {
11
11
  super(...arguments), this.tabs = [], this.activeTab = "", this.lazy = !0, this.variant = "default", this._focusedIndex = 0, this._renderedTabs = /* @__PURE__ */ new Set();
12
12
  }
@@ -143,8 +143,8 @@ let o = class extends p {
143
143
  }
144
144
  };
145
145
  o.styles = [
146
- v`
147
- ${f(y)}
146
+ f`
147
+ ${p(y)}
148
148
  `
149
149
  ];
150
150
  n([
package/dist/tab.js CHANGED
@@ -1,4 +1,4 @@
1
- import { L as r } from "./tab-BKdN4xAz.js";
1
+ import { L as r } from "./tab-BYU_XEhp.js";
2
2
  export {
3
3
  r as LogosphereTab
4
4
  };
@@ -0,0 +1,46 @@
1
+ "use strict";const i=require("lit"),t=require("lit/decorators.js"),p=require("lit/directives/live.js");require("./formfield-BFOIEicR.cjs");require("./ui-icon-DWh1MhBa.cjs");const u=".textarea__field{width:100%;background:transparent;border:none;outline:none;font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-body-text);box-sizing:border-box;line-height:1.5}.textarea__field::placeholder{color:var(--color-tertiary)}.textarea__field:disabled{cursor:not-allowed}.textarea__field--resize-none{resize:none}.textarea__field--resize-vertical{resize:vertical}.textarea__field--resize-horizontal{resize:horizontal}.textarea__field--resize-both{resize:both}.textarea__field--auto-resize{resize:none;overflow:hidden}.textarea__clear-btn{border:none;background:transparent;color:var(--color-gray-400);cursor:pointer;padding:0;display:inline-flex;align-items:flex-start;align-self:flex-start;margin-top:var(--spacing-1);outline:none;flex-shrink:0;transition:color var(--transition-speed-fast) var(--transition-timing)}.textarea__clear-btn:hover{color:var(--color-gray-600)}";var d=Object.defineProperty,y=Object.getOwnPropertyDescriptor,r=(l,e,a,o)=>{for(var s=o>1?void 0:o?y(e,a):e,n=l.length-1,h;n>=0;n--)(h=l[n])&&(s=(o?h(e,a,s):h(s))||s);return o&&s&&d(e,a,s),s};exports.TextArea=class extends i.LitElement{constructor(){super(...arguments),this.value="",this.placeholder="",this.name="",this.autocomplete="",this.rows=3,this.wrap="soft",this.resize="vertical",this.autoResize=!1,this.size="default",this.variant="default",this.label="",this.helper="",this.error="",this.required=!1,this.disabled=!1,this.readonly=!1,this._internalError="",this.handleInput=e=>{const a=e.target;this.value=a.value,this.autoResize&&this.adjustHeight(),this._internalError&&(this._internalError="",this._textareaElement.setCustomValidity("")),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:this.value,originalEvent:e}}))},this.handleChange=e=>{const a=e.target;this.value=a.value,a.checkValidity()||(this._internalError=a.validationMessage),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value,originalEvent:e}}))},this.handleKeyDown=e=>{this.dispatchEvent(new CustomEvent("keydown",{bubbles:!0,composed:!0,detail:{key:e.key,originalEvent:e}}))},this.handleKeyUp=e=>{this.dispatchEvent(new CustomEvent("keyup",{bubbles:!0,composed:!0,detail:{key:e.key,originalEvent:e}}))},this.handleClear=()=>{this.value="",this._textareaElement&&(this._textareaElement.value="",this.autoResize&&this.adjustHeight()),this.dispatchEvent(new CustomEvent("clear",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:"",originalEvent:null}}))}}get textareaElement(){return this._textareaElement}focus(){this._textareaElement?.focus()}blur(){this._textareaElement?.blur()}select(){this._textareaElement?.select()}setSelectionRange(e,a,o){this._textareaElement?.setSelectionRange(e,a,o)}checkValidity(){return this._textareaElement?.checkValidity()??!0}reportValidity(){return this._textareaElement?.reportValidity()??!0}setCustomValidity(e){this._textareaElement?.setCustomValidity(e),this._internalError=e,this.requestUpdate()}adjustHeight(){!this.autoResize||!this._textareaElement||(this._textareaElement.style.height="auto",this._textareaElement.style.height=`${this._textareaElement.scrollHeight}px`)}updated(e){super.updated(e),e.has("value")&&this.autoResize&&this.adjustHeight()}getResizeClass(){return this.autoResize?"textarea__field--auto-resize":{none:"textarea__field--resize-none",vertical:"textarea__field--resize-vertical",horizontal:"textarea__field--resize-horizontal",both:"textarea__field--resize-both"}[this.resize]}render(){const e=this.error||this._internalError,a=!!this.value&&!this.disabled&&!this.readonly,o=`textarea__field ${this.getResizeClass()}`;return i.html`
2
+ <logosphere-formfield
3
+ .label=${this.label}
4
+ .helper=${this.helper}
5
+ .error=${e}
6
+ .required=${this.required}
7
+ .disabled=${this.disabled}
8
+ .readonly=${this.readonly}
9
+ .placeholder=${this.placeholder}
10
+ .size=${this.size}
11
+ .variant=${this.variant}
12
+ >
13
+ <slot name="prefix" slot="prefix"></slot>
14
+ <textarea
15
+ class="${o}"
16
+ .value=${p.live(this.value)}
17
+ placeholder=${this.placeholder||i.nothing}
18
+ name=${this.name||i.nothing}
19
+ autocomplete=${this.autocomplete||i.nothing}
20
+ ?required=${this.required}
21
+ ?disabled=${this.disabled}
22
+ ?readonly=${this.readonly}
23
+ minlength=${this.minlength??i.nothing}
24
+ maxlength=${this.maxlength??i.nothing}
25
+ rows=${this.rows}
26
+ cols=${this.cols??i.nothing}
27
+ wrap=${this.wrap}
28
+ @input=${this.handleInput}
29
+ @change=${this.handleChange}
30
+ @keydown=${this.handleKeyDown}
31
+ @keyup=${this.handleKeyUp}
32
+ ></textarea>
33
+ ${a?i.html`
34
+ <button
35
+ type="button"
36
+ slot="clear"
37
+ class="textarea__clear-btn"
38
+ @click=${this.handleClear}
39
+ tabindex="-1"
40
+ >
41
+ <ui-icon name="uil-times" size="14"></ui-icon>
42
+ </button>
43
+ `:i.nothing}
44
+ <slot name="suffix" slot="suffix"></slot>
45
+ </logosphere-formfield>
46
+ `}};exports.TextArea.styles=[i.css`${i.unsafeCSS(u)}`];r([t.query("textarea")],exports.TextArea.prototype,"_textareaElement",2);r([t.property({type:String})],exports.TextArea.prototype,"value",2);r([t.property({type:String})],exports.TextArea.prototype,"placeholder",2);r([t.property({type:String})],exports.TextArea.prototype,"name",2);r([t.property({type:String})],exports.TextArea.prototype,"autocomplete",2);r([t.property({type:Number})],exports.TextArea.prototype,"minlength",2);r([t.property({type:Number})],exports.TextArea.prototype,"maxlength",2);r([t.property({type:Number})],exports.TextArea.prototype,"rows",2);r([t.property({type:Number})],exports.TextArea.prototype,"cols",2);r([t.property({type:String})],exports.TextArea.prototype,"wrap",2);r([t.property({type:String})],exports.TextArea.prototype,"resize",2);r([t.property({type:Boolean})],exports.TextArea.prototype,"autoResize",2);r([t.property({type:String})],exports.TextArea.prototype,"size",2);r([t.property({type:String})],exports.TextArea.prototype,"variant",2);r([t.property({type:String})],exports.TextArea.prototype,"label",2);r([t.property({type:String})],exports.TextArea.prototype,"helper",2);r([t.property({type:String})],exports.TextArea.prototype,"error",2);r([t.property({type:Boolean})],exports.TextArea.prototype,"required",2);r([t.property({type:Boolean})],exports.TextArea.prototype,"disabled",2);r([t.property({type:Boolean})],exports.TextArea.prototype,"readonly",2);r([t.state()],exports.TextArea.prototype,"_internalError",2);exports.TextArea=r([t.customElement("logosphere-textarea")],exports.TextArea);
@@ -1,24 +1,26 @@
1
- import { LitElement as d, nothing as l, html as u, unsafeCSS as y, css as c } from "lit";
2
- import { query as m, property as a, state as _, customElement as f } from "lit/decorators.js";
3
- import { l as v } from "./live-WTVSYE2F.js";
4
- const b = ".textarea__field{width:100%;background:transparent;border:none;outline:none;font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-body-text);box-sizing:border-box;line-height:1.5}.textarea__field::placeholder{color:var(--color-tertiary)}.textarea__field:disabled{cursor:not-allowed}.textarea__field--resize-none{resize:none}.textarea__field--resize-vertical{resize:vertical}.textarea__field--resize-horizontal{resize:horizontal}.textarea__field--resize-both{resize:both}.textarea__field--auto-resize{resize:none;overflow:hidden}.textarea__clear-btn{border:none;background:transparent;color:var(--color-gray-400);cursor:pointer;padding:0;display:inline-flex;align-items:flex-start;align-self:flex-start;margin-top:var(--spacing-1);outline:none;flex-shrink:0;transition:color var(--transition-speed-fast) var(--transition-timing)}.textarea__clear-btn:hover{color:var(--color-gray-600)}";
5
- var x = Object.defineProperty, g = Object.getOwnPropertyDescriptor, r = (e, i, s, n) => {
6
- for (var o = n > 1 ? void 0 : n ? g(i, s) : i, h = e.length - 1, p; h >= 0; h--)
7
- (p = e[h]) && (o = (n ? p(i, s, o) : p(o)) || o);
8
- return n && o && x(i, s, o), o;
1
+ import { unsafeCSS as d, css as c, LitElement as y, nothing as l, html as u } from "lit";
2
+ import { query as m, property as i, state as f, customElement as _ } from "lit/decorators.js";
3
+ import { live as v } from "lit/directives/live.js";
4
+ import "./formfield-CNh4mBSs.js";
5
+ import "./ui-icon-Bys4HYSQ.js";
6
+ const x = ".textarea__field{width:100%;background:transparent;border:none;outline:none;font-size:var(--font-size-sm);font-family:var(--font-family-base);color:var(--color-body-text);box-sizing:border-box;line-height:1.5}.textarea__field::placeholder{color:var(--color-tertiary)}.textarea__field:disabled{cursor:not-allowed}.textarea__field--resize-none{resize:none}.textarea__field--resize-vertical{resize:vertical}.textarea__field--resize-horizontal{resize:horizontal}.textarea__field--resize-both{resize:both}.textarea__field--auto-resize{resize:none;overflow:hidden}.textarea__clear-btn{border:none;background:transparent;color:var(--color-gray-400);cursor:pointer;padding:0;display:inline-flex;align-items:flex-start;align-self:flex-start;margin-top:var(--spacing-1);outline:none;flex-shrink:0;transition:color var(--transition-speed-fast) var(--transition-timing)}.textarea__clear-btn:hover{color:var(--color-gray-600)}";
7
+ var b = Object.defineProperty, g = Object.getOwnPropertyDescriptor, r = (e, a, s, n) => {
8
+ for (var o = n > 1 ? void 0 : n ? g(a, s) : a, h = e.length - 1, p; h >= 0; h--)
9
+ (p = e[h]) && (o = (n ? p(a, s, o) : p(o)) || o);
10
+ return n && o && b(a, s, o), o;
9
11
  };
10
- let t = class extends d {
12
+ let t = class extends y {
11
13
  constructor() {
12
- super(...arguments), this.value = "", this.placeholder = "", this.name = "", this.autocomplete = "", this.rows = 3, this.wrap = "soft", this.resize = "vertical", this.autoResize = !1, this.size = "default", this.variant = "default", this.showClear = !1, this.label = "", this.helper = "", this.error = "", this.required = !1, this.disabled = !1, this.readonly = !1, this._internalError = "", this.handleInput = (e) => {
13
- const i = e.target;
14
- this.value = i.value, this.autoResize && this.adjustHeight(), this._internalError && (this._internalError = "", this._textareaElement.setCustomValidity("")), this.dispatchEvent(new CustomEvent("input", {
14
+ super(...arguments), this.value = "", this.placeholder = "", this.name = "", this.autocomplete = "", this.rows = 3, this.wrap = "soft", this.resize = "vertical", this.autoResize = !1, this.size = "default", this.variant = "default", this.label = "", this.helper = "", this.error = "", this.required = !1, this.disabled = !1, this.readonly = !1, this._internalError = "", this.handleInput = (e) => {
15
+ const a = e.target;
16
+ this.value = a.value, this.autoResize && this.adjustHeight(), this._internalError && (this._internalError = "", this._textareaElement.setCustomValidity("")), this.dispatchEvent(new CustomEvent("input", {
15
17
  bubbles: !0,
16
18
  composed: !0,
17
19
  detail: { value: this.value, originalEvent: e }
18
20
  }));
19
21
  }, this.handleChange = (e) => {
20
- const i = e.target;
21
- this.value = i.value, i.checkValidity() || (this._internalError = i.validationMessage), this.dispatchEvent(new CustomEvent("change", {
22
+ const a = e.target;
23
+ this.value = a.value, a.checkValidity() || (this._internalError = a.validationMessage), this.dispatchEvent(new CustomEvent("change", {
22
24
  bubbles: !0,
23
25
  composed: !0,
24
26
  detail: { value: this.value, originalEvent: e }
@@ -55,8 +57,8 @@ let t = class extends d {
55
57
  select() {
56
58
  this._textareaElement?.select();
57
59
  }
58
- setSelectionRange(e, i, s) {
59
- this._textareaElement?.setSelectionRange(e, i, s);
60
+ setSelectionRange(e, a, s) {
61
+ this._textareaElement?.setSelectionRange(e, a, s);
60
62
  }
61
63
  checkValidity() {
62
64
  return this._textareaElement?.checkValidity() ?? !0;
@@ -82,7 +84,7 @@ let t = class extends d {
82
84
  }[this.resize];
83
85
  }
84
86
  render() {
85
- const e = this.error || this._internalError, i = this.showClear && this.value && !this.disabled && !this.readonly, s = `textarea__field ${this.getResizeClass()}`;
87
+ const e = this.error || this._internalError, a = !!this.value && !this.disabled && !this.readonly, s = `textarea__field ${this.getResizeClass()}`;
86
88
  return u`
87
89
  <logosphere-formfield
88
90
  .label=${this.label}
@@ -95,6 +97,7 @@ let t = class extends d {
95
97
  .size=${this.size}
96
98
  .variant=${this.variant}
97
99
  >
100
+ <slot name="prefix" slot="prefix"></slot>
98
101
  <textarea
99
102
  class="${s}"
100
103
  .value=${v(this.value)}
@@ -114,10 +117,10 @@ let t = class extends d {
114
117
  @keydown=${this.handleKeyDown}
115
118
  @keyup=${this.handleKeyUp}
116
119
  ></textarea>
117
- ${i ? u`
120
+ ${a ? u`
118
121
  <button
119
122
  type="button"
120
- slot="suffix"
123
+ slot="clear"
121
124
  class="textarea__clear-btn"
122
125
  @click=${this.handleClear}
123
126
  tabindex="-1"
@@ -125,79 +128,77 @@ let t = class extends d {
125
128
  <ui-icon name="uil-times" size="14"></ui-icon>
126
129
  </button>
127
130
  ` : l}
131
+ <slot name="suffix" slot="suffix"></slot>
128
132
  </logosphere-formfield>
129
133
  `;
130
134
  }
131
135
  };
132
- t.styles = [c`${y(b)}`];
136
+ t.styles = [c`${d(x)}`];
133
137
  r([
134
138
  m("textarea")
135
139
  ], t.prototype, "_textareaElement", 2);
136
140
  r([
137
- a({ type: String })
141
+ i({ type: String })
138
142
  ], t.prototype, "value", 2);
139
143
  r([
140
- a({ type: String })
144
+ i({ type: String })
141
145
  ], t.prototype, "placeholder", 2);
142
146
  r([
143
- a({ type: String })
147
+ i({ type: String })
144
148
  ], t.prototype, "name", 2);
145
149
  r([
146
- a({ type: String })
150
+ i({ type: String })
147
151
  ], t.prototype, "autocomplete", 2);
148
152
  r([
149
- a({ type: Number })
153
+ i({ type: Number })
150
154
  ], t.prototype, "minlength", 2);
151
155
  r([
152
- a({ type: Number })
156
+ i({ type: Number })
153
157
  ], t.prototype, "maxlength", 2);
154
158
  r([
155
- a({ type: Number })
159
+ i({ type: Number })
156
160
  ], t.prototype, "rows", 2);
157
161
  r([
158
- a({ type: Number })
162
+ i({ type: Number })
159
163
  ], t.prototype, "cols", 2);
160
164
  r([
161
- a({ type: String })
165
+ i({ type: String })
162
166
  ], t.prototype, "wrap", 2);
163
167
  r([
164
- a({ type: String })
168
+ i({ type: String })
165
169
  ], t.prototype, "resize", 2);
166
170
  r([
167
- a({ type: Boolean })
171
+ i({ type: Boolean })
168
172
  ], t.prototype, "autoResize", 2);
169
173
  r([
170
- a({ type: String })
174
+ i({ type: String })
171
175
  ], t.prototype, "size", 2);
172
176
  r([
173
- a({ type: String })
177
+ i({ type: String })
174
178
  ], t.prototype, "variant", 2);
175
179
  r([
176
- a({ type: Boolean })
177
- ], t.prototype, "showClear", 2);
178
- r([
179
- a({ type: String })
180
+ i({ type: String })
180
181
  ], t.prototype, "label", 2);
181
182
  r([
182
- a({ type: String })
183
+ i({ type: String })
183
184
  ], t.prototype, "helper", 2);
184
185
  r([
185
- a({ type: String })
186
+ i({ type: String })
186
187
  ], t.prototype, "error", 2);
187
188
  r([
188
- a({ type: Boolean })
189
+ i({ type: Boolean })
189
190
  ], t.prototype, "required", 2);
190
191
  r([
191
- a({ type: Boolean })
192
+ i({ type: Boolean })
192
193
  ], t.prototype, "disabled", 2);
193
194
  r([
194
- a({ type: Boolean })
195
+ i({ type: Boolean })
195
196
  ], t.prototype, "readonly", 2);
196
197
  r([
197
- _()
198
+ f()
198
199
  ], t.prototype, "_internalError", 2);
199
200
  t = r([
200
- f("logosphere-textarea")
201
+ _("logosphere-textarea")
201
202
  ], t);
202
203
  export {
203
204
  t as T
package/dist/textarea.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./text-area-DFDF5oos.cjs");Object.defineProperty(exports,"TextArea",{enumerable:!0,get:()=>e.TextArea});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./text-area-CZDdxbrN.cjs");Object.defineProperty(exports,"TextArea",{enumerable:!0,get:()=>e.TextArea});
package/dist/textarea.js CHANGED
@@ -1,4 +1,4 @@
1
- import { T as a } from "./text-area-CtZY3yLA.js";
1
+ import { T as a } from "./text-area-Dec_k4rs.js";
2
2
  export {
3
3
  a as TextArea
4
4
  };
@@ -0,0 +1,47 @@
1
+ "use strict";const r=require("lit"),s=require("lit/decorators.js"),d=require("lit/directives/unsafe-html.js");require("./ui-icon-DWh1MhBa.cjs");const h=".tree{width:100%;font-family:var(--font-family-base)}.tree__list,.tree__children{list-style:none;margin:0;padding:0}.tree__item{margin:0;padding:0}.tree__row{display:flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-3);padding-left:calc(var(--spacing-3) + (var(--tree-level, 0) * 14px));border-radius:var(--radius-sm);color:var(--color-body-text);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-speed-fast) var(--transition-timing)}.tree--icons .tree__row{justify-content:center;padding:0;width:44px;height:44px;min-height:44px;margin:0 auto}.tree__row:hover{background-color:var(--color-tertiary-bg)}.tree__row:focus-visible{outline:2px solid var(--color-secondary);outline-offset:1px}.tree__row--disabled{opacity:.5;cursor:not-allowed}.tree__row--active .tree__label,.tree__row--active .tree__icon{color:var(--color-primary)}.tree:not(.tree--icons) .tree__row--active{background-color:var(--color-tertiary-bg)}.tree__icon{width:20px;min-width:20px;display:inline-flex;align-items:center;justify-content:center;color:inherit}.tree--icons .tree__icon{width:20px;min-width:20px;height:20px}.tree--icons .tree__row--active{background-color:var(--color-primary)}.tree--icons .tree__row--active .tree__icon{color:#fff}.tree--icons .tree__row--active:hover{background-color:var(--color-primary-hover)}.tree__chevron-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:transparent;color:var(--color-tertiary);cursor:pointer;padding:0;flex-shrink:0}.tree__chevron-btn--right{margin-left:auto}.tree__chevron{transform:rotate(-90deg);transition:transform var(--transition-speed-fast) var(--transition-timing)}.tree__chevron--open{transform:rotate(0)}.tree__chevron-spacer{width:20px;height:20px;flex-shrink:0}.tree__label{display:inline-flex;align-items:center;font-size:var(--font-size-sm);color:inherit}";var p=Object.defineProperty,_=Object.getOwnPropertyDescriptor,a=(c,e,t,n)=>{for(var i=n>1?void 0:n?_(e,t):e,l=c.length-1,o;l>=0;l--)(o=c[l])&&(i=(n?o(e,t,i):o(i))||i);return n&&i&&p(e,t,i),i};exports.TreeMenu=class extends r.LitElement{constructor(){super(...arguments),this.items=[],this.expandedIds=[],this.expandOnLabelClick=!0,this.chevronPosition="left",this.showLabels=!0,this.iconSize=16,this._expandedSet=new Set}willUpdate(e){e.has("expandedIds")&&(this._expandedSet=new Set(this.expandedIds??[]))}_isExpanded(e){return this._expandedSet.has(e)}_emitToggle(e,t){this.dispatchEvent(new CustomEvent("toggle",{detail:{item:e,expanded:t},bubbles:!0,composed:!0}))}_emitItemClick(e){this.dispatchEvent(new CustomEvent("item-click",{detail:{item:e},bubbles:!0,composed:!0}))}_emitNodeClick(e,t){this.dispatchEvent(new CustomEvent("node-click",{detail:{item:e,hasChildren:t},bubbles:!0,composed:!0}))}_setExpanded(e,t){t?this._expandedSet.add(e.id):this._expandedSet.delete(e.id),this.expandedIds=Array.from(this._expandedSet),this._emitToggle(e,t)}_toggle(e,t){t.stopPropagation(),!(e.disabled||!e.children?.length)&&this._setExpanded(e,!this._isExpanded(e.id))}_handleItemClick(e,t){if(t.stopPropagation(),e.disabled)return;const n=!!e.children?.length;if(this._emitNodeClick(e,n),n&&this.expandOnLabelClick){this._setExpanded(e,!this._isExpanded(e.id));return}n||(e.onClick?.(e),this._emitItemClick(e))}_handleRowKeydown(e,t){t.key!=="Enter"&&t.key!==" "||(t.preventDefault(),this._handleItemClick(e,t))}_renderIcon(e){return e.iconName?r.html`
2
+ <span class="tree__icon">
3
+ <ui-icon name=${e.iconName} .size=${this.iconSize}></ui-icon>
4
+ </span>
5
+ `:e.iconHtml?r.html`<span class="tree__icon">${d.unsafeHTML(e.iconHtml)}</span>`:r.nothing}_renderChevron(e,t){const n=!!e.children?.length;return this.showLabels?n?r.html`
6
+ <button
7
+ type="button"
8
+ class="tree__chevron-btn ${this.chevronPosition==="right"?"tree__chevron-btn--right":""}"
9
+ aria-label=${t?"Collapse":"Expand"}
10
+ @click=${i=>this._toggle(e,i)}
11
+ >
12
+ <ui-icon
13
+ class="tree__chevron ${t?"tree__chevron--open":""}"
14
+ name="uil-angle-down"
15
+ size="20"
16
+ ></ui-icon>
17
+ </button>
18
+ `:r.html`<span class="tree__chevron-spacer"></span>`:r.nothing}_renderNode(e,t){const n=!!e.children?.length,i=n?this._isExpanded(e.id):!1,l=this.showLabels?`--tree-level:${t};`:"--tree-level:0;";return r.html`
19
+ <li class="tree__item">
20
+ <div
21
+ class="tree__row ${e.disabled?"tree__row--disabled":""} ${e.active?"tree__row--active":""}"
22
+ style=${l}
23
+ role="button"
24
+ tabindex=${e.disabled?-1:0}
25
+ @click=${o=>this._handleItemClick(e,o)}
26
+ @keydown=${o=>this._handleRowKeydown(e,o)}
27
+ title=${this.showLabels?"":e.label}
28
+ >
29
+ ${this.chevronPosition==="left"?this._renderChevron(e,i):r.nothing}
30
+ ${this._renderIcon(e)}
31
+ ${this.showLabels?r.html`<span class="tree__label">${e.label}</span>`:r.nothing}
32
+ ${this.chevronPosition==="right"?this._renderChevron(e,i):r.nothing}
33
+ </div>
34
+
35
+ ${this.showLabels&&n&&i?r.html`
36
+ <ul class="tree__children">
37
+ ${e.children.map(o=>this._renderNode(o,t+1))}
38
+ </ul>
39
+ `:r.nothing}
40
+ </li>
41
+ `}render(){return r.html`
42
+ <nav class="tree ${this.showLabels?"":"tree--icons"}" aria-label="Tree Menu">
43
+ <ul class="tree__list">
44
+ ${this.items.map(e=>this._renderNode(e,0))}
45
+ </ul>
46
+ </nav>
47
+ `}};exports.TreeMenu.styles=[r.css`${r.unsafeCSS(h)}`];a([s.property({attribute:!1})],exports.TreeMenu.prototype,"items",2);a([s.property({type:Array})],exports.TreeMenu.prototype,"expandedIds",2);a([s.property({type:Boolean})],exports.TreeMenu.prototype,"expandOnLabelClick",2);a([s.property({type:String})],exports.TreeMenu.prototype,"chevronPosition",2);a([s.property({type:Boolean})],exports.TreeMenu.prototype,"showLabels",2);a([s.property({type:Number})],exports.TreeMenu.prototype,"iconSize",2);a([s.state()],exports.TreeMenu.prototype,"_expandedSet",2);exports.TreeMenu=a([s.customElement("logosphere-tree-menu")],exports.TreeMenu);