@nyx-ds/treeview 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/treeview.js +669 -0
- package/dist/treeview.umd.cjs +131 -0
- package/package.json +25 -0
package/dist/treeview.js
ADDED
|
@@ -0,0 +1,669 @@
|
|
|
1
|
+
import { LitElement as k, html as l, unsafeCSS as m, nothing as y } from "lit";
|
|
2
|
+
import { property as a, state as f, queryAssignedElements as M } from "lit/decorators.js";
|
|
3
|
+
import { repeat as U } from "lit/directives/repeat.js";
|
|
4
|
+
import { classMap as O } from "lit/directives/class-map.js";
|
|
5
|
+
import { eyeSlash as W, eye as V, xmark as G, check as j, minus as J, spinnerThird as K, magnifyingGlass as Q, chevronRightRegular as X } from "@nyx-ds/core";
|
|
6
|
+
import { classMap as $ } from "lit-html/directives/class-map.js";
|
|
7
|
+
import "@nyx-ds/icon";
|
|
8
|
+
import { unsafeHTML as B } from "lit-html/directives/unsafe-html.js";
|
|
9
|
+
function Y(c, o) {
|
|
10
|
+
return function(e, n) {
|
|
11
|
+
const { native: t = !1, ...r } = n || {}, i = t ? new Event(o, r) : new CustomEvent(o, { detail: e, ...r });
|
|
12
|
+
c.dispatchEvent(i);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function q(c) {
|
|
16
|
+
return (o, e) => {
|
|
17
|
+
Object.defineProperty(o, e, {
|
|
18
|
+
get() {
|
|
19
|
+
return Y(this, c || e);
|
|
20
|
+
},
|
|
21
|
+
enumerable: !0,
|
|
22
|
+
configurable: !0
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const Z = ":host{display:flex;flex-direction:column;width:100%;--treeview-radius: var(--nyx-radii-s);--treeview-search-padding: var(--nyx-sizing-1-25) var(--nyx-sizing-1-75) 0 var(--nyx-sizing-1-75);--treeview-header-padding: var(--nyx-sizing-2) var(--nyx-sizing-2) var(--nyx-sizing-1-75) var(--nyx-sizing-2);--treeview-row-padding: var(--nyx-sizing-1-5, 12px) var(--nyx-sizing-2);--treeview-row-gap: var(--nyx-sizing-2);--treeview-col-gap: var(--nyx-sizing-1);--treeview-node-gap: var(--nyx-sizing-1);--treeview-row-min-height: 56px;--treeview-expander-wrapper-size: var(--nyx-sizing-4);--treeview-expander-padding: var(--nyx-sizing-1-25);--treeview-col-width: var(--treeview-header-icon-size);--treeview-background: var(--nyx-color-neutral-background-primary);--treeview-border-color: var(--nyx-color-neutral-border-tertiary);--treeview-content-color: var(--nyx-color-neutral-content-primary);--treeview-focus-border-color: var(--nyx-color-brand-border-default);--treeview-row-selected-background: var(--nyx-color-brand-background-softer);--treeview-row-selected-hover-background: var( --nyx-color-brand-background-softer-hover );--treeview-row-selected-color: var(--nyx-color-neutral-content-primary);--treeview-font-family: var(--nyx-font-family-font-family);--treeview-title-font-size: var(--nyx-label-medium-font-size);--treeview-title-line-height: var(--nyx-label-medium-line-height);--treeview-text-font-size: var(--nyx-label-medium-font-size);--treeview-text-line-height: var(--nyx-label-medium-line-height);--treeview-header-icon-size: var(--nyx-label-large-font-size);--treeview-node-icon-size: var(--nyx-label-medium-font-size);--treeview-expander-icon-size: var(--nyx-label-large-font-size);--treeview-row-hover-background: var(--nyx-color-brand-background-hover);--treeview-row-hover-color: var(--nyx-color-neutral-content-primary-inverse)}.nyx-treeview{display:flex;flex-direction:column;width:100%;font-family:var(--treeview-font-family);align-items:flex-start;border-radius:var(--treeview-radius);border:1px solid var(--treeview-border-color);background:var(--treeview-background);box-sizing:border-box}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}.search-container{display:flex;padding:var(--treeview-search-padding);flex-direction:column;align-items:flex-start;align-self:stretch}.tree-scroll{width:100%}.tree-header{display:flex;justify-content:space-between;align-items:center;align-self:stretch;padding:var(--treeview-header-padding);border-bottom:.5px solid var(--treeview-border-color);box-sizing:border-box}.tree-title{color:var(--treeview-content-color);font-size:var(--treeview-title-font-size);line-height:var(--treeview-title-line-height);font-weight:600}.header-columns,.node-columns{display:flex;align-items:center;justify-content:flex-end;gap:var(--treeview-col-gap);flex-shrink:0}.col-cell{min-width:var(--treeview-col-width);width:var(--treeview-col-width);flex:0 0 auto}.col-cell,.header-columns ::slotted(*){display:flex;justify-content:center;align-items:center;box-sizing:border-box}.header-columns ::slotted(nyx-icon){--nyx-icon-size: var(--treeview-header-icon-size);color:var(--treeview-content-color)}.tree-body{width:100%;display:flex;flex-direction:column}.node-wrapper{display:flex;flex-direction:column;width:100%}.node-row{display:flex;align-items:center;justify-content:space-between;min-height:var(--treeview-row-min-height);border-bottom:.5px solid var(--treeview-border-color);gap:var(--treeview-row-gap);padding:var(--treeview-row-padding);box-sizing:border-box;background:transparent;color:var(--treeview-content-color);outline:none;cursor:default}.node-row:hover{background:var(--treeview-row-hover-background);color:var(--treeview-row-hover-color)}.node-row:focus-within{background:var(--treeview-row-hover-background)!important;color:var(--treeview-row-hover-color)!important}.node-row:hover .expander nyx-icon,.node-row:hover .node-type-icon-wrapper ::slotted(nyx-icon){color:var(--treeview-row-hover-color)}.node-row:focus-within .expander nyx-icon,.node-row:focus-within .node-type-icon-wrapper ::slotted(nyx-icon){color:var(--treeview-row-hover-color)}.node-row.selectable.selected{background-color:var(--treeview-row-selected-background);color:var(--treeview-row-selected-color)}.node-row.selectable.selected .expander nyx-icon,.node-row.selectable.selected .node-type-icon-wrapper ::slotted(nyx-icon){color:var(--treeview-row-selected-color)}.node-row.selectable.selected:hover{background-color:var(--treeview-row-selected-hover-background);color:var(--treeview-row-selected-color)}.node-row:focus-visible{position:relative;z-index:2;outline:2px solid var(--treeview-content-color);outline-offset:-4px;background:var(--treeview-row-hover-background)!important;color:var(--treeview-row-hover-color)}.row-checkbox{display:flex;align-items:center;margin-right:4px}.node-info{display:flex;align-items:center;gap:var(--treeview-node-gap);flex:1 0 0;overflow:hidden;min-height:32px;padding-left:4px}.expander{--button-icon-color: inherit}.expander nyx-icon{--nyx-icon-size: var(--treeview-expander-icon-size);transition:transform .2s ease;transform-origin:center}.expander nyx-icon.expanded{transform:rotate(90deg)}.expander:hover,.expander:focus-within{--button-icon-color: var(--treeview-content-color) !important}.expander:hover nyx-icon,.expander:focus-within nyx-icon{color:var(--treeview-content-color)!important;--nyx-icon-color: var(--treeview-content-color) !important}.node-type-icon-wrapper{display:flex;align-items:center;justify-content:center;flex-shrink:0}.node-type-icon-wrapper ::slotted(nyx-icon){--nyx-icon-size: var(--treeview-node-icon-size)}.node-text{font-size:var(--treeview-text-font-size);line-height:var(--treeview-text-line-height);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-children{width:100%}@media (max-width: 768px){.tree-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.tree-header,.tree-body{min-width:calc(250px + ((var(--treeview-col-width) + var(--treeview-col-gap)) * 4))}.node-text{white-space:normal;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}", oo = ':host{--field-padding: var(--nyx-sizing-1-5);--field-padding-small: var(--nyx-sizing-1) var(--nyx-sizing-1-5);--field-border-radius-sharp: var(--nyx-radii-xs);--field-border-radius-rounded: var(--nyx-radii-100);--field-border: var(--nyx-stroke-number-2) solid var(--nyx-color-neutral-border-tertiary);--field-text-color: var(--nyx-color-neutral-content-primary);--field-font-family: var(--nyx-font-family-font-family);--field-font-size: var(--nyx-label-medium-font-size);--field-line-height: var(--nyx-label-medium-line-height);--placeholder-color: var(--nyx-color-neutral-content-tertiary);--field-hover-border: var(--nyx-stroke-number-3) solid var(--nyx-color-neutral-border-active);--field-focus-outline: var(--nyx-stroke-number-3) solid var(--nyx-color-neutral-border-active);--field-invalid-border: var(--nyx-stroke-number-3) solid var(--nyx-color-danger-border-default);--field-disabled-border: var(--nyx-stroke-number-2) solid var(--nyx-color-neutral-border-disable);--field-disabled-text-color: var(--nyx-color-neutral-content-disabled);--icon-color: var(--nyx-color-neutral-content-tertiary);--icon-disabled-color: var(--nyx-color-neutral-content-disabled);box-sizing:border-box;display:inline-flex;width:100%}*{box-sizing:inherit}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}.container{width:100%;position:relative}.container.small ::slotted([slot="field"]){padding:var(--field-padding-small)}.container.iconLeft ::slotted([slot="field"]){padding-left:36px}.container.iconLeft ::slotted([slot="field"]){padding-right:36px}.password,.clear{display:none;position:absolute;top:0;bottom:0;right:12px;font-size:var(--field-font-size)}::slotted([slot="field"]){width:100%;margin:0;box-sizing:inherit;padding:var(--field-padding);border-radius:var(--field-border-radius-sharp);border:var(--field-border);color:var(--field-text-color);background-color:transparent;font-family:var(--field-font-family);font-size:var(--field-font-size);font-style:normal;font-weight:400;line-height:var(--field-line-height);resize:none}.container.rounded ::slotted([slot="field"]){border-radius:var(--field-border-radius-rounded)}::slotted([slot="field"])::placeholder{color:var(--placeholder-color)}::slotted([slot="field"]:hover:not([disabled])){border:var(--field-hover-border)}::slotted([slot="field"]:focus){outline:var(--field-focus-outline)}::slotted([slot="field"][invalid]){border:var(--field-invalid-border)}::slotted([slot="field"][disabled]){border:var(--field-disabled-border);color:var(--field-disabled-text-color)}::slotted([slot="field"][disabled])::placeholder{color:var(--field-disabled-text-color)}::slotted([slot="iconLeft"]),::slotted([slot="iconRight"]){position:absolute;top:12px;font-size:var(--field-font-size)}.container.small ::slotted([slot="iconLeft"]),.container.small ::slotted([slot="iconRight"]){top:8px}::slotted([slot="iconLeft"]){left:12px}::slotted([slot="iconRight"]){right:12px}::slotted([slot="iconLeft"]:not([action])),::slotted([slot="iconRight"]:not([action])){color:var(--icon-color)}::slotted([slot="iconLeft"][clickable]:not([disabled])),::slotted([slot="iconRight"][clickable]:not([disabled])){cursor:pointer}:host(.disabled) ::slotted([slot="iconLeft"]),:host(.disabled) ::slotted([slot="iconRight"]){color:var(--icon-disabled-color)}.container.passwordToggle ::slotted([slot="iconRight"]),.container.clearable ::slotted([slot="iconRight"]){display:none}.container.passwordToggle .password,.container.clearable .clear{display:flex;cursor:pointer}';
|
|
27
|
+
var to = Object.defineProperty, w = (c, o, e, n) => {
|
|
28
|
+
for (var t = void 0, r = c.length - 1, i; r >= 0; r--)
|
|
29
|
+
(i = c[r]) && (t = i(o, e, t) || t);
|
|
30
|
+
return t && to(o, e, t), t;
|
|
31
|
+
};
|
|
32
|
+
const C = class C extends k {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments), this.size = "medium", this.border = "sharp", this.passwordToggle = !1, this.clearable = !1, this.showPassword = !1;
|
|
35
|
+
}
|
|
36
|
+
updated(o) {
|
|
37
|
+
const e = this.querySelector('[slot="field"]'), n = e instanceof HTMLInputElement && e.disabled;
|
|
38
|
+
this.classList.toggle("disabled", n);
|
|
39
|
+
}
|
|
40
|
+
/** @internal */
|
|
41
|
+
handleClick() {
|
|
42
|
+
this.showPassword = !this.showPassword;
|
|
43
|
+
const e = this.shadowRoot.querySelector("slot[name='field']").assignedElements({ flatten: !0 })[0];
|
|
44
|
+
e && (e.type = this.showPassword ? "text" : "password");
|
|
45
|
+
}
|
|
46
|
+
/** @internal */
|
|
47
|
+
handleClear() {
|
|
48
|
+
const e = this.shadowRoot.querySelector("slot[name='field']").assignedElements({ flatten: !0 })[0];
|
|
49
|
+
e && (e.value = "");
|
|
50
|
+
}
|
|
51
|
+
render() {
|
|
52
|
+
const o = !!this.querySelector('[slot="iconLeft"]'), e = !!this.querySelector('[slot="iconRight"]'), n = {
|
|
53
|
+
container: !0,
|
|
54
|
+
small: this.size === "small",
|
|
55
|
+
iconLeft: o,
|
|
56
|
+
iconRight: e,
|
|
57
|
+
passwordToggle: this.passwordToggle,
|
|
58
|
+
clearable: this.clearable,
|
|
59
|
+
rounded: this.border === "rounded"
|
|
60
|
+
};
|
|
61
|
+
return l`
|
|
62
|
+
<div class=${$(n)}>
|
|
63
|
+
<slot name="field"></slot>
|
|
64
|
+
<slot name="iconLeft"></slot>
|
|
65
|
+
<slot name="iconRight"></slot>
|
|
66
|
+
<div class="password">
|
|
67
|
+
<nyx-icon @click=${this.handleClick} svg=${this.showPassword ? W : V}></nyx-icon>
|
|
68
|
+
</div>
|
|
69
|
+
<div class="clear">
|
|
70
|
+
<nyx-icon @click=${this.handleClear} svg=${G}></nyx-icon>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
`;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
C.styles = m(oo);
|
|
77
|
+
let h = C;
|
|
78
|
+
w([
|
|
79
|
+
a({ type: String, reflect: !0 })
|
|
80
|
+
], h.prototype, "size");
|
|
81
|
+
w([
|
|
82
|
+
a({ type: String, reflect: !0 })
|
|
83
|
+
], h.prototype, "border");
|
|
84
|
+
w([
|
|
85
|
+
a({ type: Boolean, reflect: !0 })
|
|
86
|
+
], h.prototype, "passwordToggle");
|
|
87
|
+
w([
|
|
88
|
+
a({ type: Boolean, reflect: !0 })
|
|
89
|
+
], h.prototype, "clearable");
|
|
90
|
+
w([
|
|
91
|
+
f()
|
|
92
|
+
], h.prototype, "showPassword");
|
|
93
|
+
customElements.get("nyx-input") || customElements.define("nyx-input", h);
|
|
94
|
+
const eo = ':host{--checkbox-container-gap: var(--nyx-sizing-1);--checkbox-container-color: var(--nyx-color-neutral-content-primary);--checkbox-container-font-family: var(--nyx-font-family-font-family);--checkbox-container-font-size: var(--nyx-label-medium-font-size);--checkbox-container-line-height: var(--nyx-label-medium-line-height);--checkbox-container-disabled-color: var(--nyx-color-neutral-content-disabled);--checkbox-background: var(--nyx-color-neutral-background-primary);--checkbox-border: 1px solid var(--nyx-color-neutral-border-primary);--checkbox-disabled-border: 1px solid var(--nyx-color-neutral-border-disable);--checkbox-hover-border: 1px solid var(--nyx-color-brand-border-hover);--checkbox-checked-background: var(--nyx-color-brand-background-default);--checkbox-background-hover: var(--nyx-color-neutral-content-primary-inverse);--checkbox-checked-color: var(--nyx-color-neutral-content-primary-inverse);--checkbox-checked-disabled-background: var(--nyx-color-neutral-background-disable);--checkbox-checked-disabled-color: var(--nyx-color-neutral-content-disabled);--checkbox-checked-hover-background: var(--nyx-color-brand-background-hover);box-sizing:border-box;display:inline-flex}*{box-sizing:inherit}::slotted(input[type="checkbox"]){position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.container{display:inline-flex;justify-content:center;align-items:center;gap:var(--checkbox-container-gap);color:var(--checkbox-container-color);font-family:var(--checkbox-container-font-family);font-size:var(--checkbox-container-font-size);font-style:normal;font-weight:400;line-height:var(--checkbox-container-line-height);cursor:pointer}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}.container[disabled]{color:var(--checkbox-container-disabled-color)}.container:focus-visible:not([disabled]),.container:focus-within:not([disabled]){outline:2px solid var(--checkbox-container-color);outline-offset:2px;border-radius:1px}.container:focus-visible .checkbox:not([disabled]),.container:focus-within .checkbox:not([disabled]){border:var(--checkbox-hover-border);background-color:var(--checkbox-background-hover)}.container:focus-visible .checkbox.checked:not([disabled]),.container:focus-visible .checkbox.indeterminate:not([disabled]),.container:focus-within .checkbox.checked:not([disabled]),.container:focus-within .checkbox.indeterminate:not([disabled]){background-color:var(--checkbox-checked-hover-background);border-color:transparent}.checkbox{display:inline-flex;gap:var(--checkbox-container-gap);padding:1px;justify-content:center;align-items:center;cursor:pointer;border-radius:4px;background-color:var(--checkbox-background);border:var(--checkbox-border)}.checkbox nyx-icon{opacity:0;--nyx-icon-size: var(--checkbox-container-font-size)}.checkbox.checked nyx-icon,.checkbox.indeterminate nyx-icon{opacity:1}.checkbox[disabled]{border:var(--checkbox-disabled-border);background-color:var(--checkbox-checked-disabled-background);color:var(--checkbox-checked-disabled-color);cursor:default}.container:hover .checkbox:not([disabled]){border:var(--checkbox-hover-border);background-color:var(--checkbox-background-hover)}.checkbox.checked,.checkbox.indeterminate{background-color:var(--checkbox-checked-background);color:var(--checkbox-checked-color);border:1px solid transparent}.checkbox[disabled].checked,.checkbox[disabled].indeterminate{border:var(--checkbox-disabled-border);background-color:var(--checkbox-checked-disabled-background);color:var(--checkbox-checked-disabled-color)}.container:hover .checkbox.checked:not([disabled]),.container:hover .checkbox.indeterminate:not([disabled]){background-color:var(--checkbox-checked-hover-background);border-color:transparent}';
|
|
95
|
+
var no = Object.defineProperty, S = (c, o, e, n) => {
|
|
96
|
+
for (var t = void 0, r = c.length - 1, i; r >= 0; r--)
|
|
97
|
+
(i = c[r]) && (t = i(o, e, t) || t);
|
|
98
|
+
return t && no(o, e, t), t;
|
|
99
|
+
};
|
|
100
|
+
const A = class A extends k {
|
|
101
|
+
constructor() {
|
|
102
|
+
super(...arguments), this.checked = !1, this.indeterminate = !1, this.disabled = !1;
|
|
103
|
+
}
|
|
104
|
+
updated(o) {
|
|
105
|
+
super.updated(o);
|
|
106
|
+
const e = this._slottedInputs[0];
|
|
107
|
+
e && (o.has("checked") && e.checked !== this.checked && (e.checked = this.checked), o.has("disabled") && (e.disabled = this.disabled, this.disabled ? e.setAttribute("tabindex", "-1") : e.removeAttribute("tabindex")));
|
|
108
|
+
}
|
|
109
|
+
_toggleCheck() {
|
|
110
|
+
if (this.disabled) return;
|
|
111
|
+
this.checked = !this.checked, this.indeterminate = !1;
|
|
112
|
+
const o = this._slottedInputs[0];
|
|
113
|
+
o && (o.checked = this.checked, o.dispatchEvent(new Event("change", { bubbles: !0 })));
|
|
114
|
+
}
|
|
115
|
+
render() {
|
|
116
|
+
const o = {
|
|
117
|
+
checkbox: !0,
|
|
118
|
+
checked: this.checked,
|
|
119
|
+
indeterminate: this.indeterminate,
|
|
120
|
+
disabled: this.disabled
|
|
121
|
+
};
|
|
122
|
+
return l`
|
|
123
|
+
<div class="container" ?disabled=${this.disabled} @click=${this._toggleCheck}>
|
|
124
|
+
<div class=${$(o)} ?disabled=${this.disabled}>
|
|
125
|
+
<nyx-icon svg=${this.checked ? j : this.indeterminate ? J : j}></nyx-icon>
|
|
126
|
+
</div>
|
|
127
|
+
<slot name="input"></slot>
|
|
128
|
+
<slot></slot>
|
|
129
|
+
</div>
|
|
130
|
+
`;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
A.styles = m(eo);
|
|
134
|
+
let x = A;
|
|
135
|
+
S([
|
|
136
|
+
a({ type: Boolean, reflect: !0 })
|
|
137
|
+
], x.prototype, "checked");
|
|
138
|
+
S([
|
|
139
|
+
a({ type: Boolean, reflect: !0 })
|
|
140
|
+
], x.prototype, "indeterminate");
|
|
141
|
+
S([
|
|
142
|
+
a({ type: Boolean, reflect: !0 })
|
|
143
|
+
], x.prototype, "disabled");
|
|
144
|
+
S([
|
|
145
|
+
M({ slot: "input" })
|
|
146
|
+
], x.prototype, "_slottedInputs");
|
|
147
|
+
customElements.get("nyx-checkbox") || customElements.define("nyx-checkbox", x);
|
|
148
|
+
const ro = ":host{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;font-size:var(--nyx-icon-size, 1rem);color:var(--nyx-icon-color, currentColor)}*{box-sizing:inherit}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}::slotted(svg),svg{width:var(--nyx-icon-size, 1rem);height:var(--nyx-icon-size, 1rem);fill:currentColor}i{font-size:inherit;color:inherit}";
|
|
149
|
+
var io = Object.defineProperty, _ = (c, o, e, n) => {
|
|
150
|
+
for (var t = void 0, r = c.length - 1, i; r >= 0; r--)
|
|
151
|
+
(i = c[r]) && (t = i(o, e, t) || t);
|
|
152
|
+
return t && io(o, e, t), t;
|
|
153
|
+
};
|
|
154
|
+
const E = class E extends k {
|
|
155
|
+
constructor() {
|
|
156
|
+
super(...arguments), this.variant = "solid";
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Watches for property changes and loads the SVG if `src` changes.
|
|
160
|
+
* @param changedProperties Properties that have been changed.
|
|
161
|
+
*/
|
|
162
|
+
async updated(o) {
|
|
163
|
+
o.has("src") && this.src && await this.loadSvg();
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* @private
|
|
167
|
+
* Loads an external SVG file and stores its contents.
|
|
168
|
+
*/
|
|
169
|
+
async loadSvg() {
|
|
170
|
+
if (this.src)
|
|
171
|
+
try {
|
|
172
|
+
const o = await fetch(this.src);
|
|
173
|
+
if (!o.ok)
|
|
174
|
+
throw new Error("Error on load SVG.");
|
|
175
|
+
this._svgContentImported = await o.text();
|
|
176
|
+
} catch (o) {
|
|
177
|
+
this.dispatchEvent(new CustomEvent("nyx-icon-load-error", {
|
|
178
|
+
detail: {
|
|
179
|
+
src: this.src,
|
|
180
|
+
message: o instanceof Error ? o.message : String(o)
|
|
181
|
+
},
|
|
182
|
+
bubbles: !0,
|
|
183
|
+
composed: !0
|
|
184
|
+
}));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
render() {
|
|
188
|
+
if (this.svg)
|
|
189
|
+
return l`${B(this.svg)}`;
|
|
190
|
+
if (this.src)
|
|
191
|
+
return l`${B(this._svgContentImported)}`;
|
|
192
|
+
const o = [`fa-${this.name}`];
|
|
193
|
+
this.variant && o.push(...this.variant.split(" ").map((n) => `fa-${n}`));
|
|
194
|
+
const e = document.createElement("i");
|
|
195
|
+
return e.className = o.join(" "), this.shadowRoot.host.innerHTML = "", this.shadowRoot.host.appendChild(e), l`<slot></slot>`;
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
E.styles = m(ro);
|
|
199
|
+
let v = E;
|
|
200
|
+
_([
|
|
201
|
+
a({ type: String })
|
|
202
|
+
], v.prototype, "name");
|
|
203
|
+
_([
|
|
204
|
+
a({ type: String })
|
|
205
|
+
], v.prototype, "variant");
|
|
206
|
+
_([
|
|
207
|
+
a({ type: String })
|
|
208
|
+
], v.prototype, "src");
|
|
209
|
+
_([
|
|
210
|
+
a({ type: String })
|
|
211
|
+
], v.prototype, "svg");
|
|
212
|
+
_([
|
|
213
|
+
f()
|
|
214
|
+
], v.prototype, "_svgContentImported");
|
|
215
|
+
customElements.get("nyx-icon") || customElements.define("nyx-icon", v);
|
|
216
|
+
const ao = ":host{--button-padding: var(--nyx-sizing-2);--button-gap: var(--nyx-sizing-1);--button-border-radius: var(--nyx-radii-2xs);--button-color: var(--nyx-color-neutral-content-always-white);--button-font-family: var(--nyx-font-family-font-family);--button-font-size: var(--nyx-label-medium-font-size);--button-line-height: var(--nyx-label-medium-line-height);--button-small-padding: var(--nyx-sizing-1-25);--button-small-font-size: var(--nyx-label-medium-font-size);--button-small-line-height: var(--nyx-label-medium-line-height);--button-medium-padding: var(--nyx-sizing-1-5);--button-brand-background: var(--nyx-color-brand-background-default);--button-warning-background: var(--nyx-color-warning-background-default);--button-danger-background: var(--nyx-color-danger-background-default);--button-info-background: var(--nyx-color-info-background-default);--button-success-background: var(--nyx-color-success-background-default);--button-brand-background-hover: var(--nyx-color-brand-background-hover);--button-warning-background-hover: var(--nyx-color-warning-background-hover);--button-danger-background-hover: var(--nyx-color-danger-background-hover);--button-info-background-hover: var(--nyx-color-info-background-hover);--button-success-background-hover: var(--nyx-color-success-background-hover);--button-neutral-background-hover: var(--nyx-color-neutral-background-hover);--button-brand-background-active: var(--nyx-color-brand-background-strong);--button-warning-background-active: var(--nyx-color-warning-background-strong);--button-danger-background-active: var(--nyx-color-danger-background-strong);--button-info-background-active: var(--nyx-color-info-background-strong);--button-success-background-active: var(--nyx-color-success-background-strong);--button-color-inverse: var(--nyx-color-neutral-content-primary-inverse);--button-disabled-background: var(--nyx-color-neutral-background-disable);--button-disabled-color: var(--nyx-color-neutral-content-disabled);--button-outline-border: 1px solid var(--nyx-color-neutral-border-primary);--button-outline-color: var(--nyx-color-neutral-content-primary);--button-outline-background: var(--nyx-color-neutral-background-primary);--button-outline-danger-border: 1px solid var(--nyx-color-danger-border-default);--button-outline-danger-color: var(--nyx-color-danger-content-default);--button-outline-warning-border: 1px solid var(--nyx-color-warning-border-default);--button-outline-warning-color: var(--nyx-color-warning-content-default);--button-outline-info-border: 1px solid var(--nyx-color-info-border-default);--button-outline-info-color: var(--nyx-color-info-content-default);--button-outline-success-border: 1px solid var(--nyx-color-success-border-default);--button-outline-success-color: var(--nyx-color-success-content-default);--button-outline-background-hover: var(--nyx-color-neutral-background-hover);--button-outline-border-hover: 1px solid var(--nyx-color-neutral-border-primary);--button-outline-color-hover: var(--nyx-color-neutral-content-primary);--button-outline-danger-background-hover: var(--nyx-color-danger-background-softer-hover);--button-outline-danger-border-hover: 1px solid var(--nyx-color-danger-border-softer);--button-outline-danger-color-hover: var(--nyx-color-danger-content-strong);--button-outline-warning-background-hover: var(--nyx-color-warning-background-softer-hover);--button-outline-warning-border-hover: 1px solid var(--nyx-color-warning-border-softer);--button-outline-warning-color-hover: var(--nyx-color-warning-content-strong);--button-outline-info-background-hover: var(--nyx-color-info-background-softer-hover);--button-outline-info-border-hover: 1px solid var(--nyx-color-info-border-softer);--button-outline-info-color-hover: var(--nyx-color-info-content-default);--button-outline-success-background-hover: var(--nyx-color-success-background-softer-hover);--button-outline-success-border-hover: 1px solid var(--nyx-color-success-border-softer);--button-outline-success-color-hover: var(--nyx-color-success-content-strong);--button-outline-background-active: var(--nyx-color-neutral-background-active);--button-outline-color-active: var(--nyx-color-neutral-content-primary);--button-outline-warning-background-active: var(--nyx-color-warning-background-strong);--button-outline-warning-color-active: var(--nyx-color-neutral-content-always-white);--button-outline-danger-background-active: var(--nyx-color-danger-background-strong);--button-outline-danger-color-active: var(--nyx-color-neutral-content-always-white);--button-outline-info-background-active: var(--nyx-color-info-background-strong);--button-outline-info-color-active: var(--nyx-color-neutral-content-always-white);--button-outline-success-background-active: var(--nyx-color-success-background-strong);--button-outline-success-color-active: var(--nyx-color-neutral-content-always-white);--button-outline-disabled-color: var(--nyx-color-neutral-content-disabled);--button-outline-disabled-border: 1px solid var(--nyx-color-neutral-border-disable);--button-ghost-color: var(--nyx-color-neutral-content-primary);--button-ghost-warning-color: var(--nyx-color-warning-content-default);--button-ghost-danger-color: var(--nyx-color-danger-content-default);--button-ghost-info-color: var(--nyx-color-info-content-default);--button-ghost-success-color: var(--nyx-color-success-content-default);--button-ghost-background: transparent;--button-ghost-neutral-color-hover: var(--nyx-color-neutral-content-tertiary);--button-ghost-warning-color-hover: var(--nyx-color-warning-content-hover);--button-ghost-danger-color-hover: var(--nyx-color-danger-content-hover);--button-ghost-info-color-hover: var(--nyx-color-info-content-hover);--button-ghost-success-color-hover: var(--nyx-color-success-content-hover);--button-ghost-neutral-color-active: var(--nyx-color-neutral-content-secondary);--button-ghost-warning-color-active: var(--nyx-color-warning-content-strong);--button-ghost-danger-color-active: var(--nyx-color-danger-content-strong);--button-ghost-info-color-active: var(--nyx-color-info-content-strong);--button-ghost-success-color-active: var(--nyx-color-success-content-strong);--button-loading-line-height: calc(var(--nyx-label-medium-line-height) - 4px);--button-icon-background-hover: var(--nyx-color-brand-background-softer-hover);--button-icon-border-hover: 1px solid var(--nyx-color-brand-border-hover);--button-icon-color-disabled: var(--nyx-color-neutral-content-disabled);--button-icon-border-disabled: 1px solid var(--nyx-color-neutral-border-disable);--button-icon-border-with-border: 1px solid var(--nyx-color-neutral-border-active);--button-icon-border-radius-with-border: var(--nyx-radii-2xs);--button-icon-color: var(--nyx-color-neutral-content-primary);--button-icon-border-radius: var(--nyx-radii-100);--button-icon-small-icon-font-size: var(--nyx-label-small-font-size);--button-icon-medium-icon-font-size: var(--nyx-label-medium-font-size);--button-icon-large-icon-font-size: var(--nyx-heading-h6-font-size);--button-icon-xlarge-icon-font-size: var(--nyx-heading-h4-font-size);box-sizing:border-box;display:inline-flex}:host([block]){width:100%}*{box-sizing:inherit}button.brand:not([disabled]):not(.loading):hover,button.brand:not([disabled]):not(.loading):active,button.warning:not([disabled]):not(.loading):hover,button.warning:not([disabled]):not(.loading):active,button.danger:not([disabled]):not(.loading):hover,button.danger:not([disabled]):not(.loading):active,button.info:not([disabled]):not(.loading):hover,button.info:not([disabled]):not(.loading):active,button.success:not([disabled]):not(.loading):hover,button.success:not([disabled]):not(.loading):active{color:var(--button-color-inverse)}button{display:inline-flex;padding:var(--button-padding);align-items:center;justify-content:center;gap:var(--button-gap);border-radius:var(--button-border-radius);color:var(--button-color);cursor:pointer;border:none;text-align:center;font-family:var(--button-font-family);font-size:var(--button-font-size);font-style:normal;font-weight:600;line-height:var(--button-line-height)}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}button.icon-right{flex-direction:row-reverse}button.small{padding:var(--button-small-padding);font-size:var(--button-small-font-size);line-height:var(--button-small-line-height)}button.medium{padding:var(--button-medium-padding)}button.block{width:100%}button.brand{background-color:var(--button-brand-background)}button.warning{background-color:var(--button-warning-background)}button.danger{background-color:var(--button-danger-background)}button.info{background-color:var(--button-info-background)}button.success{background-color:var(--button-success-background)}button.ghost{color:var(--button-ghost-color);background-color:var(--button-ghost-background)}button.ghost.danger{color:var(--button-ghost-danger-color);background-color:var(--button-ghost-background)}button.ghost.warning{color:var(--button-ghost-warning-color);background-color:var(--button-ghost-background)}button.ghost.info{color:var(--button-ghost-info-color);background-color:var(--button-ghost-background)}button.ghost.success{color:var(--button-ghost-success-color);background-color:var(--button-ghost-background)}button.brand:not([disabled]):not(.loading):hover{background-color:var(--button-brand-background-hover);color:var(--button-color-inverse)}button.warning:not([disabled]):not(.loading):hover{background-color:var(--button-warning-background-hover);color:var(--button-color-inverse)}button.danger:not([disabled]):not(.loading):hover{background-color:var(--button-danger-background-hover);color:var(--button-color-inverse)}button.info:not([disabled]):not(.loading):hover{background-color:var(--button-info-background-hover);color:var(--button-color-inverse)}button.outline:not([disabled]):not(.loading):hover{background-color:var(--button-success-background-hover);color:var(--button-color-inverse)}button.brand:not([disabled]):not(.loading):active{background-color:var(--button-brand-background-active)}button.warning:not([disabled]):not(.loading):active{background-color:var(--button-warning-background-active)}button.danger:not([disabled]):not(.loading):active{background-color:var(--button-danger-background-active)}button.info:not([disabled]):not(.loading):active{background-color:var(--button-info-background-active)}button.success:not([disabled]):not(.loading):active{background-color:var(--button-success-background-active)}button.outline:not([disabled]):not(.loading):active{background-color:var(--button-outline-background-active);color:var(--button-outline-color-active)}button.outline.warning:not([disabled]):not(.loading):active{background-color:var(--button-outline-warning-background-active);color:var(--button-outline-warning-background-active)}button.outline.danger:not([disabled]):not(.loading):active{background-color:var(--button-outline-danger-background-active);color:var(--button-outline-danger-background-active)}button.outline.info:not([disabled]):not(.loading):active{background-color:var(--button-outline-info-background-active);color:var(--button-outline-info-background-active)}button.outline.success:not([disabled]):not(.loading):active{background-color:var(--button-outline-success-background-active);color:var(--button-outline-success-background-active)}button.ghost:not([disabled]):not(.loading):active{background-color:var(--button-ghost-background-active);color:var(--button-ghost-neutral-color-active)}button.ghost.warning:not([disabled]):not(.loading):active{background-color:var(--button-warning-background-active);color:var(--button-ghost-warning-color-active)}button.ghost.danger:not([disabled]):not(.loading):active{background-color:var(--button-danger-background-active);color:var(--button-ghost-danger-color-active)}button.ghost.info:not([disabled]):not(.loading):active{background-color:var(--button-info-background-active);color:var(--button-ghost-info-color-active)}button.ghost.success:not([disabled]):not(.loading):active{background-color:var(--button-success-background-active);color:var(--button-ghost-success-color-active)}button:disabled{background:var(--button-disabled-background);color:var(--button-disabled-color);cursor:default}button.outline{background-color:transparent;border:var(--button-outline-border);color:var(--button-outline-color)}button.outline.danger{color:var(--button-outline-danger-color)}button.outline.warning{color:var(--button-outline-warning-color)}button.outline.info{color:var(--button-outline-info-color)}button.outline.success{color:var(--button-outline-success-color)}button.outline:not([disabled]):not(.loading):hover{background-color:var(--button-outline-background-hover);border:var(--button-outline-border-hover);color:var(--button-outline-color)}button.outline.danger:not([disabled]):not(.loading):hover{background-color:var(--button-outline-danger-background-hover);border:var(--button-outline-danger-border-hover);color:var(--button-outline-danger-color-hover)}button.outline.warning:not([disabled]):not(.loading):hover{background-color:var(--button-outline-warning-background-hover);border:var(--button-outline-warning-border-hover);color:var(--button-outline-warning-color-hover)}button.outline.info:not([disabled]):not(.loading):hover{background-color:var(--button-outline-info-background-hover);border:var(--button-outline-info-border-hover);color:var(--button-outline-info-color-hover)}button.outline.success:not([disabled]):not(.loading):hover{background-color:var(--button-outline-success-background-hover);border:var(--button-outline-success-border-hover);color:var(--button-outline-success-color-hover)}button.outline:disabled{border:1px solid var(--nyx-color-neutral-border-disable);background:var(--nyx-color-neutral-background-primary)}button.ghost{background-color:transparent;border:none;color:var(--button-ghost-color)}button.ghost.info{color:var(--button-ghost-info-color);background-color:transparent}button.ghost.danger{color:var(--button-ghost-danger-color);background-color:transparent}button.ghost.warning{color:var(--button-ghost-warning-color);background-color:transparent}button.ghost.success{color:var(--button-ghost-success-color);background-color:transparent}button.ghost:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-color)}button.ghost.danger:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-danger-color-hover)}button.ghost.warning:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-warning-color-hover)}button.ghost.info:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-info-color-hover)}button.ghost.success:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-success-color-hover)}button.ghost:disabled{background-color:var(--button-ghost-background);color:var(--button-disabled-color)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading nyx-icon{animation:spin 1s linear infinite}button.loading{cursor:default;line-height:var(--button-loading-line-height)}button.button-icon{display:flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:var(--button-icon-border-radius);align-self:stretch;border:none;cursor:pointer;background-color:transparent;color:var(--button-icon-color);text-align:center}button.button-icon:not([disabled]):hover{background-color:var(--button-icon-background-hover)!important}button.button-icon.neutral:not([disabled]):hover{background-color:var(--button-neutral-background-hover)!important}button.button-icon[disabled]{color:var(--button-icon-color-disabled);cursor:default}button:focus-visible,button:focus-within{outline:2px solid var(--button-outline-color);outline-offset:2px}button.brand:focus-visible,button.brand:focus-within{background-color:var(--button-brand-background-hover)}button.warning:focus-visible,button.warning:focus-within{background-color:var(--button-warning-background-hover)}button.danger:focus-visible,button.danger:focus-within{background-color:var(--button-danger-background-hover)}button.info:focus-visible,button.info:focus-within{background-color:var(--button-info-background-hover)}button.success:focus-visible,button.success:focus-within{background-color:var(--button-success-background-hover)}button.ghost:focus-visible,button.ghost:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-color)}button.ghost.danger:focus-visible,button.ghost.danger:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-danger-color-hover)}button.ghost.info:focus-visible,button.ghost.info:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-info-color-hover)}button.ghost.success:focus-visible,button.ghost.success:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-success-color-hover)}button.ghost.warning:focus-visible,button.ghost.warning:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-warning-color-hover)}button.outline:focus-visible,button.outline:focus-within{background-color:var(--button-outline-background-hover)}button.outline.danger:focus-visible,button.outline.danger:focus-within{background-color:var(--button-outline-danger-background-hover)}button.outline.warning:focus-visible,button.outline.warning:focus-within{background-color:var(--button-outline-warning-background-hover)}button.outline.info:focus-visible,button.outline.info:focus-within{background-color:var(--button-outline-info-background-hover)}button.outline.success:focus-visible,button.outline.success:focus-within{background-color:var(--button-outline-success-background-hover)}button.button-icon:focus-visible,button.button-icon:focus-within{background-color:var( --button-icon-background-focus, var(--button-icon-background-hover) )!important}button.button-icon.neutral:focus-visible,button.button-icon.neutral:focus-within{background-color:var( --button-icon-background-focus, var(--button-neutral-background-hover) )!important}:host(.active) button.button-icon:not([disabled]){background-color:var( --button-icon-background-focus, var(--button-icon-background-hover) )!important}button.button-icon.button-icon-with-border{border:var(--button-icon-border-with-border);border-radius:var(--button-icon-border-radius-with-border)}button.button-icon.button-icon-with-border:not([disabled]):hover{border:var(--button-icon-border-hover)}button.button-icon.button-icon-with-border[disabled]{border:var(--button-icon-border-disabled)}button.button-icon nyx-icon{font-style:normal;font-weight:400;line-height:normal}button.button-icon.small{width:var(--button-icon-override-width, 24px);height:var(--button-icon-override-height, 24px)}button.button-icon.small nyx-icon{font-size:var(--button-icon-small-icon-font-size)}button.button-icon.medium{width:var(--button-icon-override-width, 30px);height:var(--button-icon-override-height, 30px)}button.button-icon.medium nyx-icon{font-size:var(--button-icon-medium-icon-font-size)}button.button-icon.large{width:var(--button-icon-override-width, 34px);height:var(--button-icon-override-height, 34px)}button.button-icon.large nyx-icon{font-size:var(--button-icon-large-icon-font-size)}button.button-icon.xlarge{width:var(--button-icon-override-width, 40px);height:var(--button-icon-override-height, 40px)}button.button-icon.xlarge nyx-icon{font-size:var(--button-icon-xlarge-icon-font-size)}";
|
|
217
|
+
var co = Object.defineProperty, u = (c, o, e, n) => {
|
|
218
|
+
for (var t = void 0, r = c.length - 1, i; r >= 0; r--)
|
|
219
|
+
(i = c[r]) && (t = i(o, e, t) || t);
|
|
220
|
+
return t && co(o, e, t), t;
|
|
221
|
+
}, b;
|
|
222
|
+
const d = (b = class extends k {
|
|
223
|
+
constructor() {
|
|
224
|
+
super(...arguments), this.variant = "brand", this.size = "large", this.hierarchy = "solid", this.iconPosition = "left", this.disabled = !1, this.loading = !1, this.block = !1, this.buttonIcon = !1, this.buttonIconWithBorder = !1;
|
|
225
|
+
}
|
|
226
|
+
connectedCallback() {
|
|
227
|
+
super.connectedCallback(), this._hostAriaObserver = new MutationObserver(() => {
|
|
228
|
+
this.requestUpdate();
|
|
229
|
+
}), this._hostAriaObserver.observe(this, {
|
|
230
|
+
attributes: !0,
|
|
231
|
+
attributeFilter: [...b._HOST_ARIA_ATTRS]
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
willUpdate(o) {
|
|
235
|
+
this._pullHostAriaIntoShadowButton(), super.willUpdate(o);
|
|
236
|
+
}
|
|
237
|
+
disconnectedCallback() {
|
|
238
|
+
var o;
|
|
239
|
+
(o = this._hostAriaObserver) == null || o.disconnect(), this._hostAriaObserver = void 0, super.disconnectedCallback();
|
|
240
|
+
}
|
|
241
|
+
_pullHostAriaIntoShadowButton() {
|
|
242
|
+
var o, e;
|
|
243
|
+
if (this.hasAttribute("aria-label")) {
|
|
244
|
+
const n = this.getAttribute("aria-label") ?? "", t = n.trim() === "" ? void 0 : n;
|
|
245
|
+
t !== this._innerAriaLabel && (this._innerAriaLabel = t), this.removeAttribute("aria-label");
|
|
246
|
+
}
|
|
247
|
+
if (this.hasAttribute("aria-labelledby")) {
|
|
248
|
+
const n = (o = this.getAttribute("aria-labelledby")) == null ? void 0 : o.trim(), t = n === "" ? void 0 : n;
|
|
249
|
+
t !== this._innerAriaLabelledby && (this._innerAriaLabelledby = t), this.removeAttribute("aria-labelledby");
|
|
250
|
+
}
|
|
251
|
+
if (this.hasAttribute("aria-describedby")) {
|
|
252
|
+
const n = (e = this.getAttribute("aria-describedby")) == null ? void 0 : e.trim(), t = n === "" ? void 0 : n;
|
|
253
|
+
t !== this._innerAriaDescribedby && (this._innerAriaDescribedby = t), this.removeAttribute("aria-describedby");
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* @private
|
|
258
|
+
* Handles the click action performed on the button.
|
|
259
|
+
*/
|
|
260
|
+
_handleClick(o) {
|
|
261
|
+
if (this.disabled || this.loading) {
|
|
262
|
+
o.preventDefault(), o.stopPropagation();
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
o.stopPropagation(), this.click(void 0, { native: !0, bubbles: !0, composed: !0 });
|
|
266
|
+
}
|
|
267
|
+
render() {
|
|
268
|
+
const o = this.buttonIcon || this.buttonIconWithBorder, e = {
|
|
269
|
+
brand: this.variant === "brand",
|
|
270
|
+
info: this.variant === "info",
|
|
271
|
+
warning: this.variant === "warning",
|
|
272
|
+
danger: this.variant === "danger",
|
|
273
|
+
neutral: this.variant === "neutral",
|
|
274
|
+
success: this.variant === "success",
|
|
275
|
+
small: this.size === "small",
|
|
276
|
+
medium: this.size === "medium",
|
|
277
|
+
large: this.size === "large",
|
|
278
|
+
xlarge: this.size === "xlarge",
|
|
279
|
+
outline: this.hierarchy === "outline",
|
|
280
|
+
ghost: this.hierarchy === "ghost",
|
|
281
|
+
"icon-right": this.iconPosition === "right",
|
|
282
|
+
loading: this.loading,
|
|
283
|
+
block: this.block,
|
|
284
|
+
"button-icon": o,
|
|
285
|
+
"button-icon-with-border": this.buttonIconWithBorder
|
|
286
|
+
};
|
|
287
|
+
return l`
|
|
288
|
+
<button
|
|
289
|
+
type="button"
|
|
290
|
+
?disabled=${this.disabled}
|
|
291
|
+
class=${$(e)}
|
|
292
|
+
aria-label=${this._innerAriaLabel ?? y}
|
|
293
|
+
aria-labelledby=${this._innerAriaLabelledby ?? y}
|
|
294
|
+
aria-describedby=${this._innerAriaDescribedby ?? y}
|
|
295
|
+
@click=${this._handleClick}
|
|
296
|
+
>
|
|
297
|
+
${this.loading ? "" : l`<slot name="icon"></slot>`}
|
|
298
|
+
${this.loading ? l`<div class="loading"><nyx-icon svg=${K}></nyx-icon></div>` : ""}
|
|
299
|
+
${o ? "" : l`<slot></slot>`}
|
|
300
|
+
</button>
|
|
301
|
+
`;
|
|
302
|
+
}
|
|
303
|
+
}, b._HOST_ARIA_ATTRS = [
|
|
304
|
+
"aria-label",
|
|
305
|
+
"aria-labelledby",
|
|
306
|
+
"aria-describedby"
|
|
307
|
+
], b.styles = m(ao), b);
|
|
308
|
+
u([
|
|
309
|
+
a({ type: String, reflect: !0 })
|
|
310
|
+
], d.prototype, "variant");
|
|
311
|
+
u([
|
|
312
|
+
a({ type: String, reflect: !0 })
|
|
313
|
+
], d.prototype, "size");
|
|
314
|
+
u([
|
|
315
|
+
a({ type: String, reflect: !0 })
|
|
316
|
+
], d.prototype, "hierarchy");
|
|
317
|
+
u([
|
|
318
|
+
a()
|
|
319
|
+
], d.prototype, "iconPosition");
|
|
320
|
+
u([
|
|
321
|
+
a({ type: Boolean, reflect: !0 })
|
|
322
|
+
], d.prototype, "disabled");
|
|
323
|
+
u([
|
|
324
|
+
a({ type: Boolean, reflect: !0 })
|
|
325
|
+
], d.prototype, "loading");
|
|
326
|
+
u([
|
|
327
|
+
a({ type: Boolean, reflect: !0 })
|
|
328
|
+
], d.prototype, "block");
|
|
329
|
+
u([
|
|
330
|
+
a({ attribute: "button-icon", type: Boolean, reflect: !0 })
|
|
331
|
+
], d.prototype, "buttonIcon");
|
|
332
|
+
u([
|
|
333
|
+
a({ attribute: "button-icon-with-border", type: Boolean, reflect: !0 })
|
|
334
|
+
], d.prototype, "buttonIconWithBorder");
|
|
335
|
+
u([
|
|
336
|
+
q()
|
|
337
|
+
], d.prototype, "click");
|
|
338
|
+
u([
|
|
339
|
+
f()
|
|
340
|
+
], d.prototype, "_innerAriaLabel");
|
|
341
|
+
u([
|
|
342
|
+
f()
|
|
343
|
+
], d.prototype, "_innerAriaLabelledby");
|
|
344
|
+
u([
|
|
345
|
+
f()
|
|
346
|
+
], d.prototype, "_innerAriaDescribedby");
|
|
347
|
+
let lo = d;
|
|
348
|
+
customElements.get("nyx-button") || customElements.define("nyx-button", lo);
|
|
349
|
+
var so = Object.defineProperty, z = (c, o, e, n) => {
|
|
350
|
+
for (var t = void 0, r = c.length - 1, i; r >= 0; r--)
|
|
351
|
+
(i = c[r]) && (t = i(o, e, t) || t);
|
|
352
|
+
return t && so(o, e, t), t;
|
|
353
|
+
};
|
|
354
|
+
const R = class R extends k {
|
|
355
|
+
constructor() {
|
|
356
|
+
super(...arguments), this._items = [], this._expandedIds = /* @__PURE__ */ new Set(), this._searchTerm = "";
|
|
357
|
+
}
|
|
358
|
+
updated(o) {
|
|
359
|
+
o.has("options") && this.options && (this._items = JSON.parse(JSON.stringify(this.options.items)), this.options.defaultExpandedLevel !== void 0 && this._expandedIds.size === 0 && this._expandToLevel(
|
|
360
|
+
this._items,
|
|
361
|
+
0,
|
|
362
|
+
this.options.defaultExpandedLevel
|
|
363
|
+
), this._generateLightDomIcons());
|
|
364
|
+
}
|
|
365
|
+
_generateLightDomIcons() {
|
|
366
|
+
var n;
|
|
367
|
+
if (this.querySelectorAll("[data-auto-generated]").forEach((t) => t.remove()), !this.options) return;
|
|
368
|
+
(n = this.options.columns) == null || n.forEach((t, r) => {
|
|
369
|
+
t.icon && this._createIconElement(t.icon, `generated-header-icon-${r}`);
|
|
370
|
+
});
|
|
371
|
+
const e = (t) => {
|
|
372
|
+
t.icon && this._createIconElement(
|
|
373
|
+
t.icon,
|
|
374
|
+
`generated-tree-icon-${t.id}`
|
|
375
|
+
), t.children && t.children.forEach(e);
|
|
376
|
+
};
|
|
377
|
+
this._items.forEach(e);
|
|
378
|
+
}
|
|
379
|
+
_createIconElement(o, e) {
|
|
380
|
+
const n = document.createElement("nyx-icon");
|
|
381
|
+
let t = "regular";
|
|
382
|
+
typeof o == "string" ? n.setAttribute("name", o) : (o.name && n.setAttribute("name", o.name), o.variant && (t = o.variant), o.src && n.setAttribute("src", o.src), o.svg && (n.svg = o.svg)), n.setAttribute("variant", t), n.setAttribute("slot", e), n.setAttribute("data-auto-generated", ""), this.appendChild(n);
|
|
383
|
+
}
|
|
384
|
+
_expandToLevel(o, e, n) {
|
|
385
|
+
o.forEach((t) => {
|
|
386
|
+
e < n && (this._expandedIds.add(t.id), t.children && this._expandToLevel(t.children, e + 1, n));
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
_isColumnDisabled(o, e) {
|
|
390
|
+
return !!o.disabledColumns && o.disabledColumns.includes(e);
|
|
391
|
+
}
|
|
392
|
+
_isNodeSelected(o, e) {
|
|
393
|
+
return this._isColumnDisabled(o, e) ? !1 : (o.selectedColumns || []).includes(e);
|
|
394
|
+
}
|
|
395
|
+
_isIndeterminate(o, e) {
|
|
396
|
+
if (!o.children || o.children.length === 0) return !1;
|
|
397
|
+
const n = this._getFlatDescendants(o), t = n.filter(
|
|
398
|
+
(r) => this._isNodeSelected(r, e)
|
|
399
|
+
).length;
|
|
400
|
+
return t > 0 && t < n.length;
|
|
401
|
+
}
|
|
402
|
+
_allDescendantsSelected(o, e) {
|
|
403
|
+
return !o.children || o.children.length === 0 ? this._isNodeSelected(o, e) : this._getFlatDescendants(o).every((t) => this._isNodeSelected(t, e));
|
|
404
|
+
}
|
|
405
|
+
_getFlatDescendants(o) {
|
|
406
|
+
let e = [];
|
|
407
|
+
return o.children && o.children.forEach((n) => {
|
|
408
|
+
e.push(n), e = e.concat(this._getFlatDescendants(n));
|
|
409
|
+
}), e;
|
|
410
|
+
}
|
|
411
|
+
_handleCheck(o, e) {
|
|
412
|
+
const t = !this._isNodeSelected(o, e);
|
|
413
|
+
this._toggleNodeState(o, e, t), o.children && this._getFlatDescendants(o).forEach((r) => {
|
|
414
|
+
this._toggleNodeState(r, e, t);
|
|
415
|
+
}), this._updateParents(this._items, o.id, e), this._triggerChange();
|
|
416
|
+
}
|
|
417
|
+
_toggleNodeState(o, e, n) {
|
|
418
|
+
if (this._isColumnDisabled(o, e)) return;
|
|
419
|
+
o.selectedColumns || (o.selectedColumns = []);
|
|
420
|
+
const t = o.selectedColumns.indexOf(e);
|
|
421
|
+
n && t === -1 ? o.selectedColumns.push(e) : !n && t > -1 && o.selectedColumns.splice(t, 1);
|
|
422
|
+
}
|
|
423
|
+
_updateParents(o, e, n) {
|
|
424
|
+
for (const t of o)
|
|
425
|
+
if (t.children && t.children.some(
|
|
426
|
+
(r) => r.id === e || this._updateParents(t.children, e, n)
|
|
427
|
+
)) {
|
|
428
|
+
const r = t.children.every(
|
|
429
|
+
(i) => this._allDescendantsSelected(i, n)
|
|
430
|
+
);
|
|
431
|
+
return this._toggleNodeState(t, n, r), !0;
|
|
432
|
+
}
|
|
433
|
+
return !1;
|
|
434
|
+
}
|
|
435
|
+
_isRowAllSelected(o) {
|
|
436
|
+
var n;
|
|
437
|
+
if (!((n = this.options) != null && n.columns)) return !1;
|
|
438
|
+
const e = this.options.columns.every((t) => this._isColumnDisabled(o, t.id) ? !0 : this._isNodeSelected(o, t.id));
|
|
439
|
+
return o.children && o.children.length > 0 ? e && o.children.every((t) => this._isRowAllSelected(t)) : e;
|
|
440
|
+
}
|
|
441
|
+
_isRowIndeterminate(o) {
|
|
442
|
+
var t;
|
|
443
|
+
if (this._isRowAllSelected(o) || !((t = this.options) != null && t.columns)) return !1;
|
|
444
|
+
const e = this.options.columns.some(
|
|
445
|
+
(r) => this._isNodeSelected(o, r.id)
|
|
446
|
+
), n = o.children ? o.children.some(
|
|
447
|
+
(r) => this._isRowAllSelected(r) || this._isRowIndeterminate(r)
|
|
448
|
+
) : !1;
|
|
449
|
+
return e || n;
|
|
450
|
+
}
|
|
451
|
+
_handleRowCheck(o) {
|
|
452
|
+
var t;
|
|
453
|
+
const n = !this._isRowAllSelected(o);
|
|
454
|
+
this._toggleRowRecursively(o, n), (t = this.options) != null && t.columns && this.options.columns.forEach((r) => {
|
|
455
|
+
this._updateParents(this._items, o.id, r.id);
|
|
456
|
+
}), this._triggerChange();
|
|
457
|
+
}
|
|
458
|
+
_toggleRowRecursively(o, e) {
|
|
459
|
+
var n;
|
|
460
|
+
(n = this.options) != null && n.columns && (e ? this.options.columns.forEach((t) => {
|
|
461
|
+
this._isColumnDisabled(o, t.id) || (o.selectedColumns || (o.selectedColumns = []), o.selectedColumns.includes(t.id) || o.selectedColumns.push(t.id));
|
|
462
|
+
}) : o.selectedColumns = [], o.children && o.children.forEach((t) => this._toggleRowRecursively(t, e)));
|
|
463
|
+
}
|
|
464
|
+
_triggerChange() {
|
|
465
|
+
this._items = [...this._items], this.onChange({ items: this._items }, { bubbles: !0, composed: !0 });
|
|
466
|
+
}
|
|
467
|
+
async _toggleExpand(o, e = !1) {
|
|
468
|
+
var r;
|
|
469
|
+
if (!(o.children && o.children.length > 0)) return;
|
|
470
|
+
const t = this._expandedIds.has(o.id);
|
|
471
|
+
if (t ? this._expandedIds.delete(o.id) : this._expandedIds.add(o.id), this._expandedIds = new Set(this._expandedIds), !t && e && o.children && o.children[0]) {
|
|
472
|
+
await this.updateComplete;
|
|
473
|
+
const i = o.children[0].id, p = (r = this.shadowRoot) == null ? void 0 : r.querySelector(
|
|
474
|
+
`#row-${i}`
|
|
475
|
+
);
|
|
476
|
+
p && p.focus();
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
_handleRowKeyDown(o, e) {
|
|
480
|
+
var t;
|
|
481
|
+
const n = o.currentTarget;
|
|
482
|
+
if ((o.key === "Enter" || o.key === " ") && o.target === n) {
|
|
483
|
+
o.preventDefault(), this._enableChildren(n);
|
|
484
|
+
const r = n.querySelector(
|
|
485
|
+
"nyx-checkbox input, nyx-button:not([disabled])"
|
|
486
|
+
);
|
|
487
|
+
if (r)
|
|
488
|
+
if (r instanceof HTMLInputElement)
|
|
489
|
+
r.focus();
|
|
490
|
+
else {
|
|
491
|
+
const i = (t = r.shadowRoot) == null ? void 0 : t.querySelector("button");
|
|
492
|
+
i == null || i.focus();
|
|
493
|
+
}
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
o.key === "Escape" && (o.preventDefault(), o.stopPropagation(), this._disableChildren(n), n.focus());
|
|
497
|
+
}
|
|
498
|
+
_handleRowFocusOut(o) {
|
|
499
|
+
const e = o.currentTarget;
|
|
500
|
+
e.contains(o.relatedTarget) || this._disableChildren(e);
|
|
501
|
+
}
|
|
502
|
+
_enableChildren(o) {
|
|
503
|
+
const e = o.querySelectorAll('input[slot="input"]'), n = o.querySelectorAll("nyx-button");
|
|
504
|
+
e.forEach((t) => t.setAttribute("tabindex", "0")), n.forEach((t) => t.removeAttribute("tabindex"));
|
|
505
|
+
}
|
|
506
|
+
_disableChildren(o) {
|
|
507
|
+
const e = o.querySelectorAll('input[slot="input"]'), n = o.querySelectorAll("nyx-button");
|
|
508
|
+
e.forEach((t) => t.setAttribute("tabindex", "-1")), n.forEach((t) => t.setAttribute("tabindex", "-1"));
|
|
509
|
+
}
|
|
510
|
+
_clearAllFocus() {
|
|
511
|
+
var n, t;
|
|
512
|
+
const o = (n = this.shadowRoot) == null ? void 0 : n.activeElement;
|
|
513
|
+
o == null || o.blur();
|
|
514
|
+
const e = (t = this.shadowRoot) == null ? void 0 : t.querySelectorAll(".node-row");
|
|
515
|
+
e == null || e.forEach((r) => {
|
|
516
|
+
this._disableChildren(r);
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
render() {
|
|
520
|
+
var o, e, n;
|
|
521
|
+
return l`
|
|
522
|
+
<div class="nyx-treeview" @mousedown=${() => this._clearAllFocus()}>
|
|
523
|
+
<div class="search-container">
|
|
524
|
+
<nyx-input>
|
|
525
|
+
<nyx-icon .svg=${Q} slot="iconLeft"></nyx-icon>
|
|
526
|
+
<input
|
|
527
|
+
class="search-input"
|
|
528
|
+
type="text"
|
|
529
|
+
slot="field"
|
|
530
|
+
placeholder="Search..."
|
|
531
|
+
@input=${(t) => this._searchTerm = t.target.value}
|
|
532
|
+
/>
|
|
533
|
+
</nyx-input>
|
|
534
|
+
</div>
|
|
535
|
+
|
|
536
|
+
<div class="tree-scroll">
|
|
537
|
+
<div class="tree-header">
|
|
538
|
+
<div class="tree-title">${(o = this.options) == null ? void 0 : o.title}</div>
|
|
539
|
+
<div class="header-columns">
|
|
540
|
+
${(n = (e = this.options) == null ? void 0 : e.columns) == null ? void 0 : n.map(
|
|
541
|
+
(t, r) => l`
|
|
542
|
+
<div class="col-cell" title="${t.title || ""}">
|
|
543
|
+
<slot name="generated-header-icon-${r}"></slot>
|
|
544
|
+
</div>
|
|
545
|
+
`
|
|
546
|
+
)}
|
|
547
|
+
</div>
|
|
548
|
+
</div>
|
|
549
|
+
|
|
550
|
+
<div class="tree-body">${this._renderNodes(this._items, 0)}</div>
|
|
551
|
+
</div>
|
|
552
|
+
</div>
|
|
553
|
+
`;
|
|
554
|
+
}
|
|
555
|
+
_renderNodes(o, e) {
|
|
556
|
+
var r;
|
|
557
|
+
const n = o.filter(
|
|
558
|
+
(i) => !this._searchTerm || i.label.toLowerCase().includes(this._searchTerm.toLowerCase()) || i.children && i.children.some(
|
|
559
|
+
(p) => p.label.toLowerCase().includes(this._searchTerm.toLowerCase())
|
|
560
|
+
)
|
|
561
|
+
), t = 16 + e * 24 - ((r = this.options) != null && r.showRowSelection ? 4 : 0);
|
|
562
|
+
return U(
|
|
563
|
+
n,
|
|
564
|
+
(i) => i.id,
|
|
565
|
+
(i) => {
|
|
566
|
+
var I, D, P, T;
|
|
567
|
+
const p = this._expandedIds.has(i.id), L = i.children && i.children.length > 0, N = this._isRowAllSelected(i), F = this._isRowIndeterminate(i), H = !!((I = this.options) != null && I.showRowSelection);
|
|
568
|
+
return l`
|
|
569
|
+
<div class="node-wrapper">
|
|
570
|
+
<div
|
|
571
|
+
id="row-${i.id}"
|
|
572
|
+
class=${O({
|
|
573
|
+
"node-row": !0,
|
|
574
|
+
selectable: H,
|
|
575
|
+
selected: N || F
|
|
576
|
+
})}
|
|
577
|
+
style="padding-left: ${t}px;"
|
|
578
|
+
tabindex="0"
|
|
579
|
+
@mousedown=${(s) => s.preventDefault()}
|
|
580
|
+
@keydown=${(s) => this._handleRowKeyDown(s, i)}
|
|
581
|
+
@focusout=${this._handleRowFocusOut}
|
|
582
|
+
>
|
|
583
|
+
<div class="node-info">
|
|
584
|
+
${(D = this.options) != null && D.showRowSelection ? l`
|
|
585
|
+
<div class="row-checkbox">
|
|
586
|
+
<nyx-checkbox
|
|
587
|
+
?checked=${this._isRowAllSelected(i)}
|
|
588
|
+
?indeterminate=${this._isRowIndeterminate(i)}
|
|
589
|
+
@click=${(s) => {
|
|
590
|
+
s.stopPropagation(), this._handleRowCheck(i);
|
|
591
|
+
}}
|
|
592
|
+
>
|
|
593
|
+
<input type="checkbox" slot="input" tabindex="-1" />
|
|
594
|
+
</nyx-checkbox>
|
|
595
|
+
</div>
|
|
596
|
+
` : y}
|
|
597
|
+
${L ? l`
|
|
598
|
+
<nyx-button
|
|
599
|
+
class="expander"
|
|
600
|
+
size="small"
|
|
601
|
+
button-icon
|
|
602
|
+
tabindex="-1"
|
|
603
|
+
hierarchy="ghost"
|
|
604
|
+
@click=${() => this._toggleExpand(i, !1)}
|
|
605
|
+
@keydown=${(s) => {
|
|
606
|
+
(s.key === "Enter" || s.key === " ") && (s.preventDefault(), s.stopPropagation(), this._toggleExpand(i, !0));
|
|
607
|
+
}}
|
|
608
|
+
>
|
|
609
|
+
<nyx-icon
|
|
610
|
+
slot="icon"
|
|
611
|
+
class=${O({ expanded: p })}
|
|
612
|
+
.svg=${X}
|
|
613
|
+
></nyx-icon>
|
|
614
|
+
</nyx-button>
|
|
615
|
+
` : y}
|
|
616
|
+
<div class="node-type-icon-wrapper">
|
|
617
|
+
<slot name="generated-tree-icon-${i.id}"></slot>
|
|
618
|
+
</div>
|
|
619
|
+
<span class="node-text" title="${i.label}"
|
|
620
|
+
>${i.label}</span
|
|
621
|
+
>
|
|
622
|
+
</div>
|
|
623
|
+
<div class="node-columns">
|
|
624
|
+
${(T = (P = this.options) == null ? void 0 : P.columns) == null ? void 0 : T.map(
|
|
625
|
+
(s) => l`
|
|
626
|
+
<div class="col-cell">
|
|
627
|
+
<nyx-checkbox
|
|
628
|
+
?checked=${this._allDescendantsSelected(i, s.id)}
|
|
629
|
+
?indeterminate=${this._isIndeterminate(i, s.id)}
|
|
630
|
+
?disabled=${this._isColumnDisabled(i, s.id)}
|
|
631
|
+
@click=${() => this._handleCheck(i, s.id)}
|
|
632
|
+
>
|
|
633
|
+
<input type="checkbox" slot="input" tabindex="-1" />
|
|
634
|
+
</nyx-checkbox>
|
|
635
|
+
</div>
|
|
636
|
+
`
|
|
637
|
+
)}
|
|
638
|
+
</div>
|
|
639
|
+
</div>
|
|
640
|
+
${p && L ? l`<div class="node-children">
|
|
641
|
+
${this._renderNodes(i.children, e + 1)}
|
|
642
|
+
</div>` : ""}
|
|
643
|
+
</div>
|
|
644
|
+
`;
|
|
645
|
+
}
|
|
646
|
+
);
|
|
647
|
+
}
|
|
648
|
+
};
|
|
649
|
+
R.styles = m(Z);
|
|
650
|
+
let g = R;
|
|
651
|
+
z([
|
|
652
|
+
a({ type: Object })
|
|
653
|
+
], g.prototype, "options");
|
|
654
|
+
z([
|
|
655
|
+
f()
|
|
656
|
+
], g.prototype, "_items");
|
|
657
|
+
z([
|
|
658
|
+
f()
|
|
659
|
+
], g.prototype, "_expandedIds");
|
|
660
|
+
z([
|
|
661
|
+
f()
|
|
662
|
+
], g.prototype, "_searchTerm");
|
|
663
|
+
z([
|
|
664
|
+
q("nyx-change")
|
|
665
|
+
], g.prototype, "onChange");
|
|
666
|
+
customElements.get("nyx-treeview") || customElements.define("nyx-treeview", g);
|
|
667
|
+
export {
|
|
668
|
+
g as NyxTreeview
|
|
669
|
+
};
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
(function(u,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("lit"),require("lit/decorators.js"),require("lit/directives/repeat.js"),require("lit/directives/class-map.js"),require("@nyx-ds/core"),require("lit-html/directives/class-map.js"),require("@nyx-ds/icon"),require("lit-html/directives/unsafe-html.js")):typeof define=="function"&&define.amd?define(["exports","lit","lit/decorators.js","lit/directives/repeat.js","lit/directives/class-map.js","@nyx-ds/core","lit-html/directives/class-map.js","@nyx-ds/icon","lit-html/directives/unsafe-html.js"],a):(u=typeof globalThis<"u"?globalThis:u||self,a(u.treeview={},u.lit,u.decorators_js,u.repeat_js,u.classMap_js$1,u.core,u.classMap_js,null,u.unsafeHtml_js))})(this,function(u,a,l,O,E,h,z,Z,R){"use strict";var p;function B(c,o){return function(e,n){const{native:t=!1,...r}=n||{},i=t?new Event(o,r):new CustomEvent(o,{detail:e,...r});c.dispatchEvent(i)}}function L(c){return(o,e)=>{Object.defineProperty(o,e,{get(){return B(this,c||e)},enumerable:!0,configurable:!0})}}const N=":host{display:flex;flex-direction:column;width:100%;--treeview-radius: var(--nyx-radii-s);--treeview-search-padding: var(--nyx-sizing-1-25) var(--nyx-sizing-1-75) 0 var(--nyx-sizing-1-75);--treeview-header-padding: var(--nyx-sizing-2) var(--nyx-sizing-2) var(--nyx-sizing-1-75) var(--nyx-sizing-2);--treeview-row-padding: var(--nyx-sizing-1-5, 12px) var(--nyx-sizing-2);--treeview-row-gap: var(--nyx-sizing-2);--treeview-col-gap: var(--nyx-sizing-1);--treeview-node-gap: var(--nyx-sizing-1);--treeview-row-min-height: 56px;--treeview-expander-wrapper-size: var(--nyx-sizing-4);--treeview-expander-padding: var(--nyx-sizing-1-25);--treeview-col-width: var(--treeview-header-icon-size);--treeview-background: var(--nyx-color-neutral-background-primary);--treeview-border-color: var(--nyx-color-neutral-border-tertiary);--treeview-content-color: var(--nyx-color-neutral-content-primary);--treeview-focus-border-color: var(--nyx-color-brand-border-default);--treeview-row-selected-background: var(--nyx-color-brand-background-softer);--treeview-row-selected-hover-background: var( --nyx-color-brand-background-softer-hover );--treeview-row-selected-color: var(--nyx-color-neutral-content-primary);--treeview-font-family: var(--nyx-font-family-font-family);--treeview-title-font-size: var(--nyx-label-medium-font-size);--treeview-title-line-height: var(--nyx-label-medium-line-height);--treeview-text-font-size: var(--nyx-label-medium-font-size);--treeview-text-line-height: var(--nyx-label-medium-line-height);--treeview-header-icon-size: var(--nyx-label-large-font-size);--treeview-node-icon-size: var(--nyx-label-medium-font-size);--treeview-expander-icon-size: var(--nyx-label-large-font-size);--treeview-row-hover-background: var(--nyx-color-brand-background-hover);--treeview-row-hover-color: var(--nyx-color-neutral-content-primary-inverse)}.nyx-treeview{display:flex;flex-direction:column;width:100%;font-family:var(--treeview-font-family);align-items:flex-start;border-radius:var(--treeview-radius);border:1px solid var(--treeview-border-color);background:var(--treeview-background);box-sizing:border-box}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}.search-container{display:flex;padding:var(--treeview-search-padding);flex-direction:column;align-items:flex-start;align-self:stretch}.tree-scroll{width:100%}.tree-header{display:flex;justify-content:space-between;align-items:center;align-self:stretch;padding:var(--treeview-header-padding);border-bottom:.5px solid var(--treeview-border-color);box-sizing:border-box}.tree-title{color:var(--treeview-content-color);font-size:var(--treeview-title-font-size);line-height:var(--treeview-title-line-height);font-weight:600}.header-columns,.node-columns{display:flex;align-items:center;justify-content:flex-end;gap:var(--treeview-col-gap);flex-shrink:0}.col-cell{min-width:var(--treeview-col-width);width:var(--treeview-col-width);flex:0 0 auto}.col-cell,.header-columns ::slotted(*){display:flex;justify-content:center;align-items:center;box-sizing:border-box}.header-columns ::slotted(nyx-icon){--nyx-icon-size: var(--treeview-header-icon-size);color:var(--treeview-content-color)}.tree-body{width:100%;display:flex;flex-direction:column}.node-wrapper{display:flex;flex-direction:column;width:100%}.node-row{display:flex;align-items:center;justify-content:space-between;min-height:var(--treeview-row-min-height);border-bottom:.5px solid var(--treeview-border-color);gap:var(--treeview-row-gap);padding:var(--treeview-row-padding);box-sizing:border-box;background:transparent;color:var(--treeview-content-color);outline:none;cursor:default}.node-row:hover{background:var(--treeview-row-hover-background);color:var(--treeview-row-hover-color)}.node-row:focus-within{background:var(--treeview-row-hover-background)!important;color:var(--treeview-row-hover-color)!important}.node-row:hover .expander nyx-icon,.node-row:hover .node-type-icon-wrapper ::slotted(nyx-icon){color:var(--treeview-row-hover-color)}.node-row:focus-within .expander nyx-icon,.node-row:focus-within .node-type-icon-wrapper ::slotted(nyx-icon){color:var(--treeview-row-hover-color)}.node-row.selectable.selected{background-color:var(--treeview-row-selected-background);color:var(--treeview-row-selected-color)}.node-row.selectable.selected .expander nyx-icon,.node-row.selectable.selected .node-type-icon-wrapper ::slotted(nyx-icon){color:var(--treeview-row-selected-color)}.node-row.selectable.selected:hover{background-color:var(--treeview-row-selected-hover-background);color:var(--treeview-row-selected-color)}.node-row:focus-visible{position:relative;z-index:2;outline:2px solid var(--treeview-content-color);outline-offset:-4px;background:var(--treeview-row-hover-background)!important;color:var(--treeview-row-hover-color)}.row-checkbox{display:flex;align-items:center;margin-right:4px}.node-info{display:flex;align-items:center;gap:var(--treeview-node-gap);flex:1 0 0;overflow:hidden;min-height:32px;padding-left:4px}.expander{--button-icon-color: inherit}.expander nyx-icon{--nyx-icon-size: var(--treeview-expander-icon-size);transition:transform .2s ease;transform-origin:center}.expander nyx-icon.expanded{transform:rotate(90deg)}.expander:hover,.expander:focus-within{--button-icon-color: var(--treeview-content-color) !important}.expander:hover nyx-icon,.expander:focus-within nyx-icon{color:var(--treeview-content-color)!important;--nyx-icon-color: var(--treeview-content-color) !important}.node-type-icon-wrapper{display:flex;align-items:center;justify-content:center;flex-shrink:0}.node-type-icon-wrapper ::slotted(nyx-icon){--nyx-icon-size: var(--treeview-node-icon-size)}.node-text{font-size:var(--treeview-text-font-size);line-height:var(--treeview-text-line-height);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-children{width:100%}@media (max-width: 768px){.tree-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.tree-header,.tree-body{min-width:calc(250px + ((var(--treeview-col-width) + var(--treeview-col-gap)) * 4))}.node-text{white-space:normal;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}}",M=':host{--field-padding: var(--nyx-sizing-1-5);--field-padding-small: var(--nyx-sizing-1) var(--nyx-sizing-1-5);--field-border-radius-sharp: var(--nyx-radii-xs);--field-border-radius-rounded: var(--nyx-radii-100);--field-border: var(--nyx-stroke-number-2) solid var(--nyx-color-neutral-border-tertiary);--field-text-color: var(--nyx-color-neutral-content-primary);--field-font-family: var(--nyx-font-family-font-family);--field-font-size: var(--nyx-label-medium-font-size);--field-line-height: var(--nyx-label-medium-line-height);--placeholder-color: var(--nyx-color-neutral-content-tertiary);--field-hover-border: var(--nyx-stroke-number-3) solid var(--nyx-color-neutral-border-active);--field-focus-outline: var(--nyx-stroke-number-3) solid var(--nyx-color-neutral-border-active);--field-invalid-border: var(--nyx-stroke-number-3) solid var(--nyx-color-danger-border-default);--field-disabled-border: var(--nyx-stroke-number-2) solid var(--nyx-color-neutral-border-disable);--field-disabled-text-color: var(--nyx-color-neutral-content-disabled);--icon-color: var(--nyx-color-neutral-content-tertiary);--icon-disabled-color: var(--nyx-color-neutral-content-disabled);box-sizing:border-box;display:inline-flex;width:100%}*{box-sizing:inherit}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}.container{width:100%;position:relative}.container.small ::slotted([slot="field"]){padding:var(--field-padding-small)}.container.iconLeft ::slotted([slot="field"]){padding-left:36px}.container.iconLeft ::slotted([slot="field"]){padding-right:36px}.password,.clear{display:none;position:absolute;top:0;bottom:0;right:12px;font-size:var(--field-font-size)}::slotted([slot="field"]){width:100%;margin:0;box-sizing:inherit;padding:var(--field-padding);border-radius:var(--field-border-radius-sharp);border:var(--field-border);color:var(--field-text-color);background-color:transparent;font-family:var(--field-font-family);font-size:var(--field-font-size);font-style:normal;font-weight:400;line-height:var(--field-line-height);resize:none}.container.rounded ::slotted([slot="field"]){border-radius:var(--field-border-radius-rounded)}::slotted([slot="field"])::placeholder{color:var(--placeholder-color)}::slotted([slot="field"]:hover:not([disabled])){border:var(--field-hover-border)}::slotted([slot="field"]:focus){outline:var(--field-focus-outline)}::slotted([slot="field"][invalid]){border:var(--field-invalid-border)}::slotted([slot="field"][disabled]){border:var(--field-disabled-border);color:var(--field-disabled-text-color)}::slotted([slot="field"][disabled])::placeholder{color:var(--field-disabled-text-color)}::slotted([slot="iconLeft"]),::slotted([slot="iconRight"]){position:absolute;top:12px;font-size:var(--field-font-size)}.container.small ::slotted([slot="iconLeft"]),.container.small ::slotted([slot="iconRight"]){top:8px}::slotted([slot="iconLeft"]){left:12px}::slotted([slot="iconRight"]){right:12px}::slotted([slot="iconLeft"]:not([action])),::slotted([slot="iconRight"]:not([action])){color:var(--icon-color)}::slotted([slot="iconLeft"][clickable]:not([disabled])),::slotted([slot="iconRight"][clickable]:not([disabled])){cursor:pointer}:host(.disabled) ::slotted([slot="iconLeft"]),:host(.disabled) ::slotted([slot="iconRight"]){color:var(--icon-disabled-color)}.container.passwordToggle ::slotted([slot="iconRight"]),.container.clearable ::slotted([slot="iconRight"]){display:none}.container.passwordToggle .password,.container.clearable .clear{display:flex;cursor:pointer}';var F=Object.defineProperty,k=(c,o,e,n)=>{for(var t=void 0,r=c.length-1,i;r>=0;r--)(i=c[r])&&(t=i(o,e,t)||t);return t&&F(o,e,t),t};const S=class S extends a.LitElement{constructor(){super(...arguments),this.size="medium",this.border="sharp",this.passwordToggle=!1,this.clearable=!1,this.showPassword=!1}updated(o){const e=this.querySelector('[slot="field"]'),n=e instanceof HTMLInputElement&&e.disabled;this.classList.toggle("disabled",n)}handleClick(){this.showPassword=!this.showPassword;const e=this.shadowRoot.querySelector("slot[name='field']").assignedElements({flatten:!0})[0];e&&(e.type=this.showPassword?"text":"password")}handleClear(){const e=this.shadowRoot.querySelector("slot[name='field']").assignedElements({flatten:!0})[0];e&&(e.value="")}render(){const o=!!this.querySelector('[slot="iconLeft"]'),e=!!this.querySelector('[slot="iconRight"]'),n={container:!0,small:this.size==="small",iconLeft:o,iconRight:e,passwordToggle:this.passwordToggle,clearable:this.clearable,rounded:this.border==="rounded"};return a.html`
|
|
2
|
+
<div class=${z.classMap(n)}>
|
|
3
|
+
<slot name="field"></slot>
|
|
4
|
+
<slot name="iconLeft"></slot>
|
|
5
|
+
<slot name="iconRight"></slot>
|
|
6
|
+
<div class="password">
|
|
7
|
+
<nyx-icon @click=${this.handleClick} svg=${this.showPassword?h.eyeSlash:h.eye}></nyx-icon>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="clear">
|
|
10
|
+
<nyx-icon @click=${this.handleClear} svg=${h.xmark}></nyx-icon>
|
|
11
|
+
</div>
|
|
12
|
+
</div>
|
|
13
|
+
`}};S.styles=a.unsafeCSS(M);let g=S;k([l.property({type:String,reflect:!0})],g.prototype,"size"),k([l.property({type:String,reflect:!0})],g.prototype,"border"),k([l.property({type:Boolean,reflect:!0})],g.prototype,"passwordToggle"),k([l.property({type:Boolean,reflect:!0})],g.prototype,"clearable"),k([l.state()],g.prototype,"showPassword"),customElements.get("nyx-input")||customElements.define("nyx-input",g);const H=':host{--checkbox-container-gap: var(--nyx-sizing-1);--checkbox-container-color: var(--nyx-color-neutral-content-primary);--checkbox-container-font-family: var(--nyx-font-family-font-family);--checkbox-container-font-size: var(--nyx-label-medium-font-size);--checkbox-container-line-height: var(--nyx-label-medium-line-height);--checkbox-container-disabled-color: var(--nyx-color-neutral-content-disabled);--checkbox-background: var(--nyx-color-neutral-background-primary);--checkbox-border: 1px solid var(--nyx-color-neutral-border-primary);--checkbox-disabled-border: 1px solid var(--nyx-color-neutral-border-disable);--checkbox-hover-border: 1px solid var(--nyx-color-brand-border-hover);--checkbox-checked-background: var(--nyx-color-brand-background-default);--checkbox-background-hover: var(--nyx-color-neutral-content-primary-inverse);--checkbox-checked-color: var(--nyx-color-neutral-content-primary-inverse);--checkbox-checked-disabled-background: var(--nyx-color-neutral-background-disable);--checkbox-checked-disabled-color: var(--nyx-color-neutral-content-disabled);--checkbox-checked-hover-background: var(--nyx-color-brand-background-hover);box-sizing:border-box;display:inline-flex}*{box-sizing:inherit}::slotted(input[type="checkbox"]){position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.container{display:inline-flex;justify-content:center;align-items:center;gap:var(--checkbox-container-gap);color:var(--checkbox-container-color);font-family:var(--checkbox-container-font-family);font-size:var(--checkbox-container-font-size);font-style:normal;font-weight:400;line-height:var(--checkbox-container-line-height);cursor:pointer}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}.container[disabled]{color:var(--checkbox-container-disabled-color)}.container:focus-visible:not([disabled]),.container:focus-within:not([disabled]){outline:2px solid var(--checkbox-container-color);outline-offset:2px;border-radius:1px}.container:focus-visible .checkbox:not([disabled]),.container:focus-within .checkbox:not([disabled]){border:var(--checkbox-hover-border);background-color:var(--checkbox-background-hover)}.container:focus-visible .checkbox.checked:not([disabled]),.container:focus-visible .checkbox.indeterminate:not([disabled]),.container:focus-within .checkbox.checked:not([disabled]),.container:focus-within .checkbox.indeterminate:not([disabled]){background-color:var(--checkbox-checked-hover-background);border-color:transparent}.checkbox{display:inline-flex;gap:var(--checkbox-container-gap);padding:1px;justify-content:center;align-items:center;cursor:pointer;border-radius:4px;background-color:var(--checkbox-background);border:var(--checkbox-border)}.checkbox nyx-icon{opacity:0;--nyx-icon-size: var(--checkbox-container-font-size)}.checkbox.checked nyx-icon,.checkbox.indeterminate nyx-icon{opacity:1}.checkbox[disabled]{border:var(--checkbox-disabled-border);background-color:var(--checkbox-checked-disabled-background);color:var(--checkbox-checked-disabled-color);cursor:default}.container:hover .checkbox:not([disabled]){border:var(--checkbox-hover-border);background-color:var(--checkbox-background-hover)}.checkbox.checked,.checkbox.indeterminate{background-color:var(--checkbox-checked-background);color:var(--checkbox-checked-color);border:1px solid transparent}.checkbox[disabled].checked,.checkbox[disabled].indeterminate{border:var(--checkbox-disabled-border);background-color:var(--checkbox-checked-disabled-background);color:var(--checkbox-checked-disabled-color)}.container:hover .checkbox.checked:not([disabled]),.container:hover .checkbox.indeterminate:not([disabled]){background-color:var(--checkbox-checked-hover-background);border-color:transparent}';var U=Object.defineProperty,_=(c,o,e,n)=>{for(var t=void 0,r=c.length-1,i;r>=0;r--)(i=c[r])&&(t=i(o,e,t)||t);return t&&U(o,e,t),t};const $=class $ extends a.LitElement{constructor(){super(...arguments),this.checked=!1,this.indeterminate=!1,this.disabled=!1}updated(o){super.updated(o);const e=this._slottedInputs[0];e&&(o.has("checked")&&e.checked!==this.checked&&(e.checked=this.checked),o.has("disabled")&&(e.disabled=this.disabled,this.disabled?e.setAttribute("tabindex","-1"):e.removeAttribute("tabindex")))}_toggleCheck(){if(this.disabled)return;this.checked=!this.checked,this.indeterminate=!1;const o=this._slottedInputs[0];o&&(o.checked=this.checked,o.dispatchEvent(new Event("change",{bubbles:!0})))}render(){const o={checkbox:!0,checked:this.checked,indeterminate:this.indeterminate,disabled:this.disabled};return a.html`
|
|
14
|
+
<div class="container" ?disabled=${this.disabled} @click=${this._toggleCheck}>
|
|
15
|
+
<div class=${z.classMap(o)} ?disabled=${this.disabled}>
|
|
16
|
+
<nyx-icon svg=${this.checked?h.check:this.indeterminate?h.minus:h.check}></nyx-icon>
|
|
17
|
+
</div>
|
|
18
|
+
<slot name="input"></slot>
|
|
19
|
+
<slot></slot>
|
|
20
|
+
</div>
|
|
21
|
+
`}};$.styles=a.unsafeCSS(H);let y=$;_([l.property({type:Boolean,reflect:!0})],y.prototype,"checked"),_([l.property({type:Boolean,reflect:!0})],y.prototype,"indeterminate"),_([l.property({type:Boolean,reflect:!0})],y.prototype,"disabled"),_([l.queryAssignedElements({slot:"input"})],y.prototype,"_slottedInputs"),customElements.get("nyx-checkbox")||customElements.define("nyx-checkbox",y);const W=":host{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;font-size:var(--nyx-icon-size, 1rem);color:var(--nyx-icon-color, currentColor)}*{box-sizing:inherit}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}::slotted(svg),svg{width:var(--nyx-icon-size, 1rem);height:var(--nyx-icon-size, 1rem);fill:currentColor}i{font-size:inherit;color:inherit}";var V=Object.defineProperty,m=(c,o,e,n)=>{for(var t=void 0,r=c.length-1,i;r>=0;r--)(i=c[r])&&(t=i(o,e,t)||t);return t&&V(o,e,t),t};const C=class C extends a.LitElement{constructor(){super(...arguments),this.variant="solid"}async updated(o){o.has("src")&&this.src&&await this.loadSvg()}async loadSvg(){if(this.src)try{const o=await fetch(this.src);if(!o.ok)throw new Error("Error on load SVG.");this._svgContentImported=await o.text()}catch(o){this.dispatchEvent(new CustomEvent("nyx-icon-load-error",{detail:{src:this.src,message:o instanceof Error?o.message:String(o)},bubbles:!0,composed:!0}))}}render(){if(this.svg)return a.html`${R.unsafeHTML(this.svg)}`;if(this.src)return a.html`${R.unsafeHTML(this._svgContentImported)}`;const o=[`fa-${this.name}`];this.variant&&o.push(...this.variant.split(" ").map(n=>`fa-${n}`));const e=document.createElement("i");return e.className=o.join(" "),this.shadowRoot.host.innerHTML="",this.shadowRoot.host.appendChild(e),a.html`<slot></slot>`}};C.styles=a.unsafeCSS(W);let f=C;m([l.property({type:String})],f.prototype,"name"),m([l.property({type:String})],f.prototype,"variant"),m([l.property({type:String})],f.prototype,"src"),m([l.property({type:String})],f.prototype,"svg"),m([l.state()],f.prototype,"_svgContentImported"),customElements.get("nyx-icon")||customElements.define("nyx-icon",f);const j=":host{--button-padding: var(--nyx-sizing-2);--button-gap: var(--nyx-sizing-1);--button-border-radius: var(--nyx-radii-2xs);--button-color: var(--nyx-color-neutral-content-always-white);--button-font-family: var(--nyx-font-family-font-family);--button-font-size: var(--nyx-label-medium-font-size);--button-line-height: var(--nyx-label-medium-line-height);--button-small-padding: var(--nyx-sizing-1-25);--button-small-font-size: var(--nyx-label-medium-font-size);--button-small-line-height: var(--nyx-label-medium-line-height);--button-medium-padding: var(--nyx-sizing-1-5);--button-brand-background: var(--nyx-color-brand-background-default);--button-warning-background: var(--nyx-color-warning-background-default);--button-danger-background: var(--nyx-color-danger-background-default);--button-info-background: var(--nyx-color-info-background-default);--button-success-background: var(--nyx-color-success-background-default);--button-brand-background-hover: var(--nyx-color-brand-background-hover);--button-warning-background-hover: var(--nyx-color-warning-background-hover);--button-danger-background-hover: var(--nyx-color-danger-background-hover);--button-info-background-hover: var(--nyx-color-info-background-hover);--button-success-background-hover: var(--nyx-color-success-background-hover);--button-neutral-background-hover: var(--nyx-color-neutral-background-hover);--button-brand-background-active: var(--nyx-color-brand-background-strong);--button-warning-background-active: var(--nyx-color-warning-background-strong);--button-danger-background-active: var(--nyx-color-danger-background-strong);--button-info-background-active: var(--nyx-color-info-background-strong);--button-success-background-active: var(--nyx-color-success-background-strong);--button-color-inverse: var(--nyx-color-neutral-content-primary-inverse);--button-disabled-background: var(--nyx-color-neutral-background-disable);--button-disabled-color: var(--nyx-color-neutral-content-disabled);--button-outline-border: 1px solid var(--nyx-color-neutral-border-primary);--button-outline-color: var(--nyx-color-neutral-content-primary);--button-outline-background: var(--nyx-color-neutral-background-primary);--button-outline-danger-border: 1px solid var(--nyx-color-danger-border-default);--button-outline-danger-color: var(--nyx-color-danger-content-default);--button-outline-warning-border: 1px solid var(--nyx-color-warning-border-default);--button-outline-warning-color: var(--nyx-color-warning-content-default);--button-outline-info-border: 1px solid var(--nyx-color-info-border-default);--button-outline-info-color: var(--nyx-color-info-content-default);--button-outline-success-border: 1px solid var(--nyx-color-success-border-default);--button-outline-success-color: var(--nyx-color-success-content-default);--button-outline-background-hover: var(--nyx-color-neutral-background-hover);--button-outline-border-hover: 1px solid var(--nyx-color-neutral-border-primary);--button-outline-color-hover: var(--nyx-color-neutral-content-primary);--button-outline-danger-background-hover: var(--nyx-color-danger-background-softer-hover);--button-outline-danger-border-hover: 1px solid var(--nyx-color-danger-border-softer);--button-outline-danger-color-hover: var(--nyx-color-danger-content-strong);--button-outline-warning-background-hover: var(--nyx-color-warning-background-softer-hover);--button-outline-warning-border-hover: 1px solid var(--nyx-color-warning-border-softer);--button-outline-warning-color-hover: var(--nyx-color-warning-content-strong);--button-outline-info-background-hover: var(--nyx-color-info-background-softer-hover);--button-outline-info-border-hover: 1px solid var(--nyx-color-info-border-softer);--button-outline-info-color-hover: var(--nyx-color-info-content-default);--button-outline-success-background-hover: var(--nyx-color-success-background-softer-hover);--button-outline-success-border-hover: 1px solid var(--nyx-color-success-border-softer);--button-outline-success-color-hover: var(--nyx-color-success-content-strong);--button-outline-background-active: var(--nyx-color-neutral-background-active);--button-outline-color-active: var(--nyx-color-neutral-content-primary);--button-outline-warning-background-active: var(--nyx-color-warning-background-strong);--button-outline-warning-color-active: var(--nyx-color-neutral-content-always-white);--button-outline-danger-background-active: var(--nyx-color-danger-background-strong);--button-outline-danger-color-active: var(--nyx-color-neutral-content-always-white);--button-outline-info-background-active: var(--nyx-color-info-background-strong);--button-outline-info-color-active: var(--nyx-color-neutral-content-always-white);--button-outline-success-background-active: var(--nyx-color-success-background-strong);--button-outline-success-color-active: var(--nyx-color-neutral-content-always-white);--button-outline-disabled-color: var(--nyx-color-neutral-content-disabled);--button-outline-disabled-border: 1px solid var(--nyx-color-neutral-border-disable);--button-ghost-color: var(--nyx-color-neutral-content-primary);--button-ghost-warning-color: var(--nyx-color-warning-content-default);--button-ghost-danger-color: var(--nyx-color-danger-content-default);--button-ghost-info-color: var(--nyx-color-info-content-default);--button-ghost-success-color: var(--nyx-color-success-content-default);--button-ghost-background: transparent;--button-ghost-neutral-color-hover: var(--nyx-color-neutral-content-tertiary);--button-ghost-warning-color-hover: var(--nyx-color-warning-content-hover);--button-ghost-danger-color-hover: var(--nyx-color-danger-content-hover);--button-ghost-info-color-hover: var(--nyx-color-info-content-hover);--button-ghost-success-color-hover: var(--nyx-color-success-content-hover);--button-ghost-neutral-color-active: var(--nyx-color-neutral-content-secondary);--button-ghost-warning-color-active: var(--nyx-color-warning-content-strong);--button-ghost-danger-color-active: var(--nyx-color-danger-content-strong);--button-ghost-info-color-active: var(--nyx-color-info-content-strong);--button-ghost-success-color-active: var(--nyx-color-success-content-strong);--button-loading-line-height: calc(var(--nyx-label-medium-line-height) - 4px);--button-icon-background-hover: var(--nyx-color-brand-background-softer-hover);--button-icon-border-hover: 1px solid var(--nyx-color-brand-border-hover);--button-icon-color-disabled: var(--nyx-color-neutral-content-disabled);--button-icon-border-disabled: 1px solid var(--nyx-color-neutral-border-disable);--button-icon-border-with-border: 1px solid var(--nyx-color-neutral-border-active);--button-icon-border-radius-with-border: var(--nyx-radii-2xs);--button-icon-color: var(--nyx-color-neutral-content-primary);--button-icon-border-radius: var(--nyx-radii-100);--button-icon-small-icon-font-size: var(--nyx-label-small-font-size);--button-icon-medium-icon-font-size: var(--nyx-label-medium-font-size);--button-icon-large-icon-font-size: var(--nyx-heading-h6-font-size);--button-icon-xlarge-icon-font-size: var(--nyx-heading-h4-font-size);box-sizing:border-box;display:inline-flex}:host([block]){width:100%}*{box-sizing:inherit}button.brand:not([disabled]):not(.loading):hover,button.brand:not([disabled]):not(.loading):active,button.warning:not([disabled]):not(.loading):hover,button.warning:not([disabled]):not(.loading):active,button.danger:not([disabled]):not(.loading):hover,button.danger:not([disabled]):not(.loading):active,button.info:not([disabled]):not(.loading):hover,button.info:not([disabled]):not(.loading):active,button.success:not([disabled]):not(.loading):hover,button.success:not([disabled]):not(.loading):active{color:var(--button-color-inverse)}button{display:inline-flex;padding:var(--button-padding);align-items:center;justify-content:center;gap:var(--button-gap);border-radius:var(--button-border-radius);color:var(--button-color);cursor:pointer;border:none;text-align:center;font-family:var(--button-font-family);font-size:var(--button-font-size);font-style:normal;font-weight:600;line-height:var(--button-line-height)}.component-subtitle{color:var(--nyx-color-neutral-content-tertiary);font-family:var(--nyx-font-family-font-family);font-size:var(--nyx-paragraph-large-font-size);line-height:var(--nyx-paragraph-large-line-height);display:block;margin-top:-8px;margin-bottom:16px}button.icon-right{flex-direction:row-reverse}button.small{padding:var(--button-small-padding);font-size:var(--button-small-font-size);line-height:var(--button-small-line-height)}button.medium{padding:var(--button-medium-padding)}button.block{width:100%}button.brand{background-color:var(--button-brand-background)}button.warning{background-color:var(--button-warning-background)}button.danger{background-color:var(--button-danger-background)}button.info{background-color:var(--button-info-background)}button.success{background-color:var(--button-success-background)}button.ghost{color:var(--button-ghost-color);background-color:var(--button-ghost-background)}button.ghost.danger{color:var(--button-ghost-danger-color);background-color:var(--button-ghost-background)}button.ghost.warning{color:var(--button-ghost-warning-color);background-color:var(--button-ghost-background)}button.ghost.info{color:var(--button-ghost-info-color);background-color:var(--button-ghost-background)}button.ghost.success{color:var(--button-ghost-success-color);background-color:var(--button-ghost-background)}button.brand:not([disabled]):not(.loading):hover{background-color:var(--button-brand-background-hover);color:var(--button-color-inverse)}button.warning:not([disabled]):not(.loading):hover{background-color:var(--button-warning-background-hover);color:var(--button-color-inverse)}button.danger:not([disabled]):not(.loading):hover{background-color:var(--button-danger-background-hover);color:var(--button-color-inverse)}button.info:not([disabled]):not(.loading):hover{background-color:var(--button-info-background-hover);color:var(--button-color-inverse)}button.outline:not([disabled]):not(.loading):hover{background-color:var(--button-success-background-hover);color:var(--button-color-inverse)}button.brand:not([disabled]):not(.loading):active{background-color:var(--button-brand-background-active)}button.warning:not([disabled]):not(.loading):active{background-color:var(--button-warning-background-active)}button.danger:not([disabled]):not(.loading):active{background-color:var(--button-danger-background-active)}button.info:not([disabled]):not(.loading):active{background-color:var(--button-info-background-active)}button.success:not([disabled]):not(.loading):active{background-color:var(--button-success-background-active)}button.outline:not([disabled]):not(.loading):active{background-color:var(--button-outline-background-active);color:var(--button-outline-color-active)}button.outline.warning:not([disabled]):not(.loading):active{background-color:var(--button-outline-warning-background-active);color:var(--button-outline-warning-background-active)}button.outline.danger:not([disabled]):not(.loading):active{background-color:var(--button-outline-danger-background-active);color:var(--button-outline-danger-background-active)}button.outline.info:not([disabled]):not(.loading):active{background-color:var(--button-outline-info-background-active);color:var(--button-outline-info-background-active)}button.outline.success:not([disabled]):not(.loading):active{background-color:var(--button-outline-success-background-active);color:var(--button-outline-success-background-active)}button.ghost:not([disabled]):not(.loading):active{background-color:var(--button-ghost-background-active);color:var(--button-ghost-neutral-color-active)}button.ghost.warning:not([disabled]):not(.loading):active{background-color:var(--button-warning-background-active);color:var(--button-ghost-warning-color-active)}button.ghost.danger:not([disabled]):not(.loading):active{background-color:var(--button-danger-background-active);color:var(--button-ghost-danger-color-active)}button.ghost.info:not([disabled]):not(.loading):active{background-color:var(--button-info-background-active);color:var(--button-ghost-info-color-active)}button.ghost.success:not([disabled]):not(.loading):active{background-color:var(--button-success-background-active);color:var(--button-ghost-success-color-active)}button:disabled{background:var(--button-disabled-background);color:var(--button-disabled-color);cursor:default}button.outline{background-color:transparent;border:var(--button-outline-border);color:var(--button-outline-color)}button.outline.danger{color:var(--button-outline-danger-color)}button.outline.warning{color:var(--button-outline-warning-color)}button.outline.info{color:var(--button-outline-info-color)}button.outline.success{color:var(--button-outline-success-color)}button.outline:not([disabled]):not(.loading):hover{background-color:var(--button-outline-background-hover);border:var(--button-outline-border-hover);color:var(--button-outline-color)}button.outline.danger:not([disabled]):not(.loading):hover{background-color:var(--button-outline-danger-background-hover);border:var(--button-outline-danger-border-hover);color:var(--button-outline-danger-color-hover)}button.outline.warning:not([disabled]):not(.loading):hover{background-color:var(--button-outline-warning-background-hover);border:var(--button-outline-warning-border-hover);color:var(--button-outline-warning-color-hover)}button.outline.info:not([disabled]):not(.loading):hover{background-color:var(--button-outline-info-background-hover);border:var(--button-outline-info-border-hover);color:var(--button-outline-info-color-hover)}button.outline.success:not([disabled]):not(.loading):hover{background-color:var(--button-outline-success-background-hover);border:var(--button-outline-success-border-hover);color:var(--button-outline-success-color-hover)}button.outline:disabled{border:1px solid var(--nyx-color-neutral-border-disable);background:var(--nyx-color-neutral-background-primary)}button.ghost{background-color:transparent;border:none;color:var(--button-ghost-color)}button.ghost.info{color:var(--button-ghost-info-color);background-color:transparent}button.ghost.danger{color:var(--button-ghost-danger-color);background-color:transparent}button.ghost.warning{color:var(--button-ghost-warning-color);background-color:transparent}button.ghost.success{color:var(--button-ghost-success-color);background-color:transparent}button.ghost:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-color)}button.ghost.danger:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-danger-color-hover)}button.ghost.warning:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-warning-color-hover)}button.ghost.info:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-info-color-hover)}button.ghost.success:not([disabled]):not(.loading):hover{background-color:var(--button-ghost-background);color:var(--button-ghost-success-color-hover)}button.ghost:disabled{background-color:var(--button-ghost-background);color:var(--button-disabled-color)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading nyx-icon{animation:spin 1s linear infinite}button.loading{cursor:default;line-height:var(--button-loading-line-height)}button.button-icon{display:flex;justify-content:center;align-items:center;flex-shrink:0;border-radius:var(--button-icon-border-radius);align-self:stretch;border:none;cursor:pointer;background-color:transparent;color:var(--button-icon-color);text-align:center}button.button-icon:not([disabled]):hover{background-color:var(--button-icon-background-hover)!important}button.button-icon.neutral:not([disabled]):hover{background-color:var(--button-neutral-background-hover)!important}button.button-icon[disabled]{color:var(--button-icon-color-disabled);cursor:default}button:focus-visible,button:focus-within{outline:2px solid var(--button-outline-color);outline-offset:2px}button.brand:focus-visible,button.brand:focus-within{background-color:var(--button-brand-background-hover)}button.warning:focus-visible,button.warning:focus-within{background-color:var(--button-warning-background-hover)}button.danger:focus-visible,button.danger:focus-within{background-color:var(--button-danger-background-hover)}button.info:focus-visible,button.info:focus-within{background-color:var(--button-info-background-hover)}button.success:focus-visible,button.success:focus-within{background-color:var(--button-success-background-hover)}button.ghost:focus-visible,button.ghost:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-color)}button.ghost.danger:focus-visible,button.ghost.danger:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-danger-color-hover)}button.ghost.info:focus-visible,button.ghost.info:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-info-color-hover)}button.ghost.success:focus-visible,button.ghost.success:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-success-color-hover)}button.ghost.warning:focus-visible,button.ghost.warning:focus-within{background-color:var(--button-ghost-background-hover);color:var(--button-ghost-warning-color-hover)}button.outline:focus-visible,button.outline:focus-within{background-color:var(--button-outline-background-hover)}button.outline.danger:focus-visible,button.outline.danger:focus-within{background-color:var(--button-outline-danger-background-hover)}button.outline.warning:focus-visible,button.outline.warning:focus-within{background-color:var(--button-outline-warning-background-hover)}button.outline.info:focus-visible,button.outline.info:focus-within{background-color:var(--button-outline-info-background-hover)}button.outline.success:focus-visible,button.outline.success:focus-within{background-color:var(--button-outline-success-background-hover)}button.button-icon:focus-visible,button.button-icon:focus-within{background-color:var( --button-icon-background-focus, var(--button-icon-background-hover) )!important}button.button-icon.neutral:focus-visible,button.button-icon.neutral:focus-within{background-color:var( --button-icon-background-focus, var(--button-neutral-background-hover) )!important}:host(.active) button.button-icon:not([disabled]){background-color:var( --button-icon-background-focus, var(--button-icon-background-hover) )!important}button.button-icon.button-icon-with-border{border:var(--button-icon-border-with-border);border-radius:var(--button-icon-border-radius-with-border)}button.button-icon.button-icon-with-border:not([disabled]):hover{border:var(--button-icon-border-hover)}button.button-icon.button-icon-with-border[disabled]{border:var(--button-icon-border-disabled)}button.button-icon nyx-icon{font-style:normal;font-weight:400;line-height:normal}button.button-icon.small{width:var(--button-icon-override-width, 24px);height:var(--button-icon-override-height, 24px)}button.button-icon.small nyx-icon{font-size:var(--button-icon-small-icon-font-size)}button.button-icon.medium{width:var(--button-icon-override-width, 30px);height:var(--button-icon-override-height, 30px)}button.button-icon.medium nyx-icon{font-size:var(--button-icon-medium-icon-font-size)}button.button-icon.large{width:var(--button-icon-override-width, 34px);height:var(--button-icon-override-height, 34px)}button.button-icon.large nyx-icon{font-size:var(--button-icon-large-icon-font-size)}button.button-icon.xlarge{width:var(--button-icon-override-width, 40px);height:var(--button-icon-override-height, 40px)}button.button-icon.xlarge nyx-icon{font-size:var(--button-icon-xlarge-icon-font-size)}";var G=Object.defineProperty,b=(c,o,e,n)=>{for(var t=void 0,r=c.length-1,i;r>=0;r--)(i=c[r])&&(t=i(o,e,t)||t);return t&&G(o,e,t),t};const d=(p=class extends a.LitElement{constructor(){super(...arguments),this.variant="brand",this.size="large",this.hierarchy="solid",this.iconPosition="left",this.disabled=!1,this.loading=!1,this.block=!1,this.buttonIcon=!1,this.buttonIconWithBorder=!1}connectedCallback(){super.connectedCallback(),this._hostAriaObserver=new MutationObserver(()=>{this.requestUpdate()}),this._hostAriaObserver.observe(this,{attributes:!0,attributeFilter:[...p._HOST_ARIA_ATTRS]})}willUpdate(o){this._pullHostAriaIntoShadowButton(),super.willUpdate(o)}disconnectedCallback(){var o;(o=this._hostAriaObserver)==null||o.disconnect(),this._hostAriaObserver=void 0,super.disconnectedCallback()}_pullHostAriaIntoShadowButton(){var o,e;if(this.hasAttribute("aria-label")){const n=this.getAttribute("aria-label")??"",t=n.trim()===""?void 0:n;t!==this._innerAriaLabel&&(this._innerAriaLabel=t),this.removeAttribute("aria-label")}if(this.hasAttribute("aria-labelledby")){const n=(o=this.getAttribute("aria-labelledby"))==null?void 0:o.trim(),t=n===""?void 0:n;t!==this._innerAriaLabelledby&&(this._innerAriaLabelledby=t),this.removeAttribute("aria-labelledby")}if(this.hasAttribute("aria-describedby")){const n=(e=this.getAttribute("aria-describedby"))==null?void 0:e.trim(),t=n===""?void 0:n;t!==this._innerAriaDescribedby&&(this._innerAriaDescribedby=t),this.removeAttribute("aria-describedby")}}_handleClick(o){if(this.disabled||this.loading){o.preventDefault(),o.stopPropagation();return}o.stopPropagation(),this.click(void 0,{native:!0,bubbles:!0,composed:!0})}render(){const o=this.buttonIcon||this.buttonIconWithBorder,e={brand:this.variant==="brand",info:this.variant==="info",warning:this.variant==="warning",danger:this.variant==="danger",neutral:this.variant==="neutral",success:this.variant==="success",small:this.size==="small",medium:this.size==="medium",large:this.size==="large",xlarge:this.size==="xlarge",outline:this.hierarchy==="outline",ghost:this.hierarchy==="ghost","icon-right":this.iconPosition==="right",loading:this.loading,block:this.block,"button-icon":o,"button-icon-with-border":this.buttonIconWithBorder};return a.html`
|
|
22
|
+
<button
|
|
23
|
+
type="button"
|
|
24
|
+
?disabled=${this.disabled}
|
|
25
|
+
class=${z.classMap(e)}
|
|
26
|
+
aria-label=${this._innerAriaLabel??a.nothing}
|
|
27
|
+
aria-labelledby=${this._innerAriaLabelledby??a.nothing}
|
|
28
|
+
aria-describedby=${this._innerAriaDescribedby??a.nothing}
|
|
29
|
+
@click=${this._handleClick}
|
|
30
|
+
>
|
|
31
|
+
${this.loading?"":a.html`<slot name="icon"></slot>`}
|
|
32
|
+
${this.loading?a.html`<div class="loading"><nyx-icon svg=${h.spinnerThird}></nyx-icon></div>`:""}
|
|
33
|
+
${o?"":a.html`<slot></slot>`}
|
|
34
|
+
</button>
|
|
35
|
+
`}},p._HOST_ARIA_ATTRS=["aria-label","aria-labelledby","aria-describedby"],p.styles=a.unsafeCSS(j),p);b([l.property({type:String,reflect:!0})],d.prototype,"variant"),b([l.property({type:String,reflect:!0})],d.prototype,"size"),b([l.property({type:String,reflect:!0})],d.prototype,"hierarchy"),b([l.property()],d.prototype,"iconPosition"),b([l.property({type:Boolean,reflect:!0})],d.prototype,"disabled"),b([l.property({type:Boolean,reflect:!0})],d.prototype,"loading"),b([l.property({type:Boolean,reflect:!0})],d.prototype,"block"),b([l.property({attribute:"button-icon",type:Boolean,reflect:!0})],d.prototype,"buttonIcon"),b([l.property({attribute:"button-icon-with-border",type:Boolean,reflect:!0})],d.prototype,"buttonIconWithBorder"),b([L()],d.prototype,"click"),b([l.state()],d.prototype,"_innerAriaLabel"),b([l.state()],d.prototype,"_innerAriaLabelledby"),b([l.state()],d.prototype,"_innerAriaDescribedby");let J=d;customElements.get("nyx-button")||customElements.define("nyx-button",J);var K=Object.defineProperty,w=(c,o,e,n)=>{for(var t=void 0,r=c.length-1,i;r>=0;r--)(i=c[r])&&(t=i(o,e,t)||t);return t&&K(o,e,t),t};const A=class A extends a.LitElement{constructor(){super(...arguments),this._items=[],this._expandedIds=new Set,this._searchTerm=""}updated(o){o.has("options")&&this.options&&(this._items=JSON.parse(JSON.stringify(this.options.items)),this.options.defaultExpandedLevel!==void 0&&this._expandedIds.size===0&&this._expandToLevel(this._items,0,this.options.defaultExpandedLevel),this._generateLightDomIcons())}_generateLightDomIcons(){var n;if(this.querySelectorAll("[data-auto-generated]").forEach(t=>t.remove()),!this.options)return;(n=this.options.columns)==null||n.forEach((t,r)=>{t.icon&&this._createIconElement(t.icon,`generated-header-icon-${r}`)});const e=t=>{t.icon&&this._createIconElement(t.icon,`generated-tree-icon-${t.id}`),t.children&&t.children.forEach(e)};this._items.forEach(e)}_createIconElement(o,e){const n=document.createElement("nyx-icon");let t="regular";typeof o=="string"?n.setAttribute("name",o):(o.name&&n.setAttribute("name",o.name),o.variant&&(t=o.variant),o.src&&n.setAttribute("src",o.src),o.svg&&(n.svg=o.svg)),n.setAttribute("variant",t),n.setAttribute("slot",e),n.setAttribute("data-auto-generated",""),this.appendChild(n)}_expandToLevel(o,e,n){o.forEach(t=>{e<n&&(this._expandedIds.add(t.id),t.children&&this._expandToLevel(t.children,e+1,n))})}_isColumnDisabled(o,e){return!!o.disabledColumns&&o.disabledColumns.includes(e)}_isNodeSelected(o,e){return this._isColumnDisabled(o,e)?!1:(o.selectedColumns||[]).includes(e)}_isIndeterminate(o,e){if(!o.children||o.children.length===0)return!1;const n=this._getFlatDescendants(o),t=n.filter(r=>this._isNodeSelected(r,e)).length;return t>0&&t<n.length}_allDescendantsSelected(o,e){return!o.children||o.children.length===0?this._isNodeSelected(o,e):this._getFlatDescendants(o).every(t=>this._isNodeSelected(t,e))}_getFlatDescendants(o){let e=[];return o.children&&o.children.forEach(n=>{e.push(n),e=e.concat(this._getFlatDescendants(n))}),e}_handleCheck(o,e){const t=!this._isNodeSelected(o,e);this._toggleNodeState(o,e,t),o.children&&this._getFlatDescendants(o).forEach(r=>{this._toggleNodeState(r,e,t)}),this._updateParents(this._items,o.id,e),this._triggerChange()}_toggleNodeState(o,e,n){if(this._isColumnDisabled(o,e))return;o.selectedColumns||(o.selectedColumns=[]);const t=o.selectedColumns.indexOf(e);n&&t===-1?o.selectedColumns.push(e):!n&&t>-1&&o.selectedColumns.splice(t,1)}_updateParents(o,e,n){for(const t of o)if(t.children&&t.children.some(r=>r.id===e||this._updateParents(t.children,e,n))){const r=t.children.every(i=>this._allDescendantsSelected(i,n));return this._toggleNodeState(t,n,r),!0}return!1}_isRowAllSelected(o){var n;if(!((n=this.options)!=null&&n.columns))return!1;const e=this.options.columns.every(t=>this._isColumnDisabled(o,t.id)?!0:this._isNodeSelected(o,t.id));return o.children&&o.children.length>0?e&&o.children.every(t=>this._isRowAllSelected(t)):e}_isRowIndeterminate(o){var t;if(this._isRowAllSelected(o)||!((t=this.options)!=null&&t.columns))return!1;const e=this.options.columns.some(r=>this._isNodeSelected(o,r.id)),n=o.children?o.children.some(r=>this._isRowAllSelected(r)||this._isRowIndeterminate(r)):!1;return e||n}_handleRowCheck(o){var t;const n=!this._isRowAllSelected(o);this._toggleRowRecursively(o,n),(t=this.options)!=null&&t.columns&&this.options.columns.forEach(r=>{this._updateParents(this._items,o.id,r.id)}),this._triggerChange()}_toggleRowRecursively(o,e){var n;(n=this.options)!=null&&n.columns&&(e?this.options.columns.forEach(t=>{this._isColumnDisabled(o,t.id)||(o.selectedColumns||(o.selectedColumns=[]),o.selectedColumns.includes(t.id)||o.selectedColumns.push(t.id))}):o.selectedColumns=[],o.children&&o.children.forEach(t=>this._toggleRowRecursively(t,e)))}_triggerChange(){this._items=[...this._items],this.onChange({items:this._items},{bubbles:!0,composed:!0})}async _toggleExpand(o,e=!1){var r;if(!(o.children&&o.children.length>0))return;const t=this._expandedIds.has(o.id);if(t?this._expandedIds.delete(o.id):this._expandedIds.add(o.id),this._expandedIds=new Set(this._expandedIds),!t&&e&&o.children&&o.children[0]){await this.updateComplete;const i=o.children[0].id,x=(r=this.shadowRoot)==null?void 0:r.querySelector(`#row-${i}`);x&&x.focus()}}_handleRowKeyDown(o,e){var t;const n=o.currentTarget;if((o.key==="Enter"||o.key===" ")&&o.target===n){o.preventDefault(),this._enableChildren(n);const r=n.querySelector("nyx-checkbox input, nyx-button:not([disabled])");if(r)if(r instanceof HTMLInputElement)r.focus();else{const i=(t=r.shadowRoot)==null?void 0:t.querySelector("button");i==null||i.focus()}return}o.key==="Escape"&&(o.preventDefault(),o.stopPropagation(),this._disableChildren(n),n.focus())}_handleRowFocusOut(o){const e=o.currentTarget;e.contains(o.relatedTarget)||this._disableChildren(e)}_enableChildren(o){const e=o.querySelectorAll('input[slot="input"]'),n=o.querySelectorAll("nyx-button");e.forEach(t=>t.setAttribute("tabindex","0")),n.forEach(t=>t.removeAttribute("tabindex"))}_disableChildren(o){const e=o.querySelectorAll('input[slot="input"]'),n=o.querySelectorAll("nyx-button");e.forEach(t=>t.setAttribute("tabindex","-1")),n.forEach(t=>t.setAttribute("tabindex","-1"))}_clearAllFocus(){var n,t;const o=(n=this.shadowRoot)==null?void 0:n.activeElement;o==null||o.blur();const e=(t=this.shadowRoot)==null?void 0:t.querySelectorAll(".node-row");e==null||e.forEach(r=>{this._disableChildren(r)})}render(){var o,e,n;return a.html`
|
|
36
|
+
<div class="nyx-treeview" @mousedown=${()=>this._clearAllFocus()}>
|
|
37
|
+
<div class="search-container">
|
|
38
|
+
<nyx-input>
|
|
39
|
+
<nyx-icon .svg=${h.magnifyingGlass} slot="iconLeft"></nyx-icon>
|
|
40
|
+
<input
|
|
41
|
+
class="search-input"
|
|
42
|
+
type="text"
|
|
43
|
+
slot="field"
|
|
44
|
+
placeholder="Search..."
|
|
45
|
+
@input=${t=>this._searchTerm=t.target.value}
|
|
46
|
+
/>
|
|
47
|
+
</nyx-input>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<div class="tree-scroll">
|
|
51
|
+
<div class="tree-header">
|
|
52
|
+
<div class="tree-title">${(o=this.options)==null?void 0:o.title}</div>
|
|
53
|
+
<div class="header-columns">
|
|
54
|
+
${(n=(e=this.options)==null?void 0:e.columns)==null?void 0:n.map((t,r)=>a.html`
|
|
55
|
+
<div class="col-cell" title="${t.title||""}">
|
|
56
|
+
<slot name="generated-header-icon-${r}"></slot>
|
|
57
|
+
</div>
|
|
58
|
+
`)}
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
<div class="tree-body">${this._renderNodes(this._items,0)}</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
`}_renderNodes(o,e){var r;const n=o.filter(i=>!this._searchTerm||i.label.toLowerCase().includes(this._searchTerm.toLowerCase())||i.children&&i.children.some(x=>x.label.toLowerCase().includes(this._searchTerm.toLowerCase()))),t=16+e*24-((r=this.options)!=null&&r.showRowSelection?4:0);return O.repeat(n,i=>i.id,i=>{var T,P,D,q;const x=this._expandedIds.has(i.id),I=i.children&&i.children.length>0,Q=this._isRowAllSelected(i),X=this._isRowIndeterminate(i),Y=!!((T=this.options)!=null&&T.showRowSelection);return a.html`
|
|
66
|
+
<div class="node-wrapper">
|
|
67
|
+
<div
|
|
68
|
+
id="row-${i.id}"
|
|
69
|
+
class=${E.classMap({"node-row":!0,selectable:Y,selected:Q||X})}
|
|
70
|
+
style="padding-left: ${t}px;"
|
|
71
|
+
tabindex="0"
|
|
72
|
+
@mousedown=${s=>s.preventDefault()}
|
|
73
|
+
@keydown=${s=>this._handleRowKeyDown(s,i)}
|
|
74
|
+
@focusout=${this._handleRowFocusOut}
|
|
75
|
+
>
|
|
76
|
+
<div class="node-info">
|
|
77
|
+
${(P=this.options)!=null&&P.showRowSelection?a.html`
|
|
78
|
+
<div class="row-checkbox">
|
|
79
|
+
<nyx-checkbox
|
|
80
|
+
?checked=${this._isRowAllSelected(i)}
|
|
81
|
+
?indeterminate=${this._isRowIndeterminate(i)}
|
|
82
|
+
@click=${s=>{s.stopPropagation(),this._handleRowCheck(i)}}
|
|
83
|
+
>
|
|
84
|
+
<input type="checkbox" slot="input" tabindex="-1" />
|
|
85
|
+
</nyx-checkbox>
|
|
86
|
+
</div>
|
|
87
|
+
`:a.nothing}
|
|
88
|
+
${I?a.html`
|
|
89
|
+
<nyx-button
|
|
90
|
+
class="expander"
|
|
91
|
+
size="small"
|
|
92
|
+
button-icon
|
|
93
|
+
tabindex="-1"
|
|
94
|
+
hierarchy="ghost"
|
|
95
|
+
@click=${()=>this._toggleExpand(i,!1)}
|
|
96
|
+
@keydown=${s=>{(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),s.stopPropagation(),this._toggleExpand(i,!0))}}
|
|
97
|
+
>
|
|
98
|
+
<nyx-icon
|
|
99
|
+
slot="icon"
|
|
100
|
+
class=${E.classMap({expanded:x})}
|
|
101
|
+
.svg=${h.chevronRightRegular}
|
|
102
|
+
></nyx-icon>
|
|
103
|
+
</nyx-button>
|
|
104
|
+
`:a.nothing}
|
|
105
|
+
<div class="node-type-icon-wrapper">
|
|
106
|
+
<slot name="generated-tree-icon-${i.id}"></slot>
|
|
107
|
+
</div>
|
|
108
|
+
<span class="node-text" title="${i.label}"
|
|
109
|
+
>${i.label}</span
|
|
110
|
+
>
|
|
111
|
+
</div>
|
|
112
|
+
<div class="node-columns">
|
|
113
|
+
${(q=(D=this.options)==null?void 0:D.columns)==null?void 0:q.map(s=>a.html`
|
|
114
|
+
<div class="col-cell">
|
|
115
|
+
<nyx-checkbox
|
|
116
|
+
?checked=${this._allDescendantsSelected(i,s.id)}
|
|
117
|
+
?indeterminate=${this._isIndeterminate(i,s.id)}
|
|
118
|
+
?disabled=${this._isColumnDisabled(i,s.id)}
|
|
119
|
+
@click=${()=>this._handleCheck(i,s.id)}
|
|
120
|
+
>
|
|
121
|
+
<input type="checkbox" slot="input" tabindex="-1" />
|
|
122
|
+
</nyx-checkbox>
|
|
123
|
+
</div>
|
|
124
|
+
`)}
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
${x&&I?a.html`<div class="node-children">
|
|
128
|
+
${this._renderNodes(i.children,e+1)}
|
|
129
|
+
</div>`:""}
|
|
130
|
+
</div>
|
|
131
|
+
`})}};A.styles=a.unsafeCSS(N);let v=A;w([l.property({type:Object})],v.prototype,"options"),w([l.state()],v.prototype,"_items"),w([l.state()],v.prototype,"_expandedIds"),w([l.state()],v.prototype,"_searchTerm"),w([L("nyx-change")],v.prototype,"onChange"),customElements.get("nyx-treeview")||customElements.define("nyx-treeview",v),u.NyxTreeview=v,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nyx-ds/treeview",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/treeview.js",
|
|
7
|
+
"module": "dist/treeview.js",
|
|
8
|
+
"types": "treeview.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "vite build"
|
|
14
|
+
},
|
|
15
|
+
"peerDependencies": {
|
|
16
|
+
"@nyx-ds/button": "^0.1.3",
|
|
17
|
+
"@nyx-ds/checkbox": "^0.1.4",
|
|
18
|
+
"@nyx-ds/core": "^0.1.11",
|
|
19
|
+
"@nyx-ds/icon": "^0.1.1",
|
|
20
|
+
"@nyx-ds/input": "^0.1.6",
|
|
21
|
+
"lit": "^3.2.1",
|
|
22
|
+
"lit-html": "^3.2.1"
|
|
23
|
+
},
|
|
24
|
+
"gitHead": "322d90fcbbce1bf63b8ea2bcdedc48a98e8b5f62"
|
|
25
|
+
}
|