@proximus/lavender-tag 2.0.0-alpha.17 → 2.0.0-alpha.170
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/Tag.d.ts +24 -6
- package/dist/index.es.js +139 -57
- package/package.json +2 -2
package/dist/Tag.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { PxElement } from '@proximus/lavender-common';
|
|
2
2
|
import { type ButtonIcon } from '@proximus/lavender-button-icon';
|
|
3
3
|
import '@proximus/lavender-button-icon';
|
|
4
|
+
export declare const tagSizeValues: string[];
|
|
5
|
+
export declare const tagStateValues: string[];
|
|
4
6
|
export declare class Tag extends PxElement<HTMLDivElement> {
|
|
5
7
|
static nativeName: string;
|
|
6
8
|
private template;
|
|
@@ -8,10 +10,26 @@ export declare class Tag extends PxElement<HTMLDivElement> {
|
|
|
8
10
|
connectedCallback(): void;
|
|
9
11
|
static get observedAttributes(): string[];
|
|
10
12
|
attributeChangedCallback(attrName: string, oldValue: string, newValue: string): void;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
updateStateStyles(oldValue: string, newValue: string, attributeValues: string[]): void;
|
|
14
|
+
getStateIcon(state: string): "" | "checkmark_fill" | "minus_fill" | "exclamation_mark_fill";
|
|
15
|
+
updateStateIconLabel(newValue: string): void;
|
|
16
|
+
updateStateIconFrom(newValue: string): void;
|
|
17
|
+
styleBeforeIcon(): void;
|
|
18
|
+
styleAfterBtnIcon(): void;
|
|
19
|
+
get $slottedBeforeIcon(): HTMLSlotElement;
|
|
20
|
+
get $slotBefore(): HTMLSlotElement;
|
|
21
|
+
get $slottedAfterBtnIcon(): ButtonIcon;
|
|
22
|
+
get $slotAfter(): HTMLSlotElement;
|
|
23
|
+
get size(): string;
|
|
24
|
+
set size(value: string);
|
|
25
|
+
get state(): string;
|
|
26
|
+
set state(value: string);
|
|
27
|
+
get dismissible(): boolean;
|
|
28
|
+
set dismissible(value: boolean);
|
|
29
|
+
get inverted(): boolean;
|
|
30
|
+
set inverted(value: boolean);
|
|
31
|
+
get stateIconAriaLabel(): string;
|
|
32
|
+
set stateIconAriaLabel(value: string);
|
|
33
|
+
get stateIconFrom(): string;
|
|
34
|
+
set stateIconFrom(value: string);
|
|
17
35
|
}
|
package/dist/index.es.js
CHANGED
|
@@ -1,59 +1,141 @@
|
|
|
1
|
-
import { PxElement as
|
|
1
|
+
import { PxElement as e } from "@proximus/lavender-common";
|
|
2
2
|
import "@proximus/lavender-button-icon";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
3
|
+
//#region src/tag.css?inline
|
|
4
|
+
var t = ":host:has(.tag){display:inline-block}.tag,.tag *{box-sizing:border-box}.tag{vertical-align:middle;font-family:var(--px-font-family);font-size:var(--px-text-size-label-m-mobile);line-height:var(--px-line-height-ratio-l);font-weight:var(--px-font-weight-body);justify-content:center;align-items:center;gap:var(--px-spacing-2xs-mobile);background-color:var(--px-color-background-container-default-default);color:var(--px-color-text-neutral-default);padding:var(--px-padding-2xs-mobile) var(--px-padding-xs-mobile);border:var(--px-size-border-s) solid transparent;border-radius:var(--px-radius-main);display:inline-flex}:host([disabled]:not([dismissible])) .tag{background-color:var(--px-color-background-state-disabled-default);color:var(--px-color-text-state-disabled-default)}:host([size=s]) .tag{padding:var(--px-padding-2xs-mobile) var(--px-padding-xs-mobile);gap:var(--px-spacing-2xs-mobile)}:host([size=m]) .tag{padding:var(--px-padding-xs-mobile) var(--px-padding-s-mobile);gap:var(--px-spacing-xs-mobile)}:host([state=success]) .tag{background-color:var(--px-color-background-purpose-success-default);color:var(--px-color-text-neutral-inverted)}:host([state=warning]) .tag{background-color:var(--px-color-background-purpose-warning-default);color:var(--px-color-text-neutral-inverted)}:host([state=error]) .tag{background-color:var(--px-color-background-purpose-error-default);color:var(--px-color-text-neutral-inverted)}:host([inverted]) .tag{background-color:var(--px-color-background-container-default-inverted);color:var(--px-color-text-neutral-inverted)}:host([inverted]):host([disabled]:not([dismissible])) .tag{background-color:var(--px-color-background-state-disabled-inverted);color:var(--px-color-text-state-disabled-inverted)}:host([inverted]):host([state=success]) .tag{background-color:var(--px-color-background-purpose-success-inverted);color:var(--px-color-text-neutral-default)}:host([inverted]):host([state=warning]) .tag{background-color:var(--px-color-background-purpose-warning-inverted);color:var(--px-color-text-neutral-default)}:host([inverted]):host([state=error]) .tag{background-color:var(--px-color-background-purpose-error-inverted);color:var(--px-color-text-neutral-default)}@media screen and (width>=48rem){.tag{font-size:var(--px-text-size-label-m-tablet);gap:var(--px-spacing-2xs-tablet);padding:var(--px-padding-2xs-tablet) var(--px-padding-xs-tablet)}:host([size=s]) .tag{padding:var(--px-padding-2xs-tablet) var(--px-padding-xs-tablet);gap:var(--px-spacing-2xs-tablet)}:host([size=m]) .tag{padding:var(--px-padding-xs-tablet) var(--px-padding-s-tablet);gap:var(--px-spacing-xs-tablet)}}@media screen and (width>=64.0625rem){.tag{font-size:var(--px-text-size-label-m-laptop);gap:var(--px-spacing-2xs-laptop);padding:var(--px-padding-2xs-laptop) var(--px-padding-xs-laptop)}:host([size=s]) .tag{padding:var(--px-padding-2xs-laptop) var(--px-padding-xs-laptop);gap:var(--px-spacing-2xs-laptop)}:host([size=m]) .tag{padding:var(--px-padding-xs-laptop) var(--px-padding-s-laptop);gap:var(--px-spacing-xs-laptop)}}@media screen and (width>=90.0625rem){.tag{font-size:var(--px-text-size-label-m-desktop);gap:var(--px-spacing-2xs-desktop);padding:var(--px-padding-2xs-desktop) var(--px-padding-xs-desktop)}:host([size=s]) .tag{padding:var(--px-padding-2xs-desktop) var(--px-padding-xs-desktop);gap:var(--px-spacing-2xs-desktop)}:host([size=m]) .tag{padding:var(--px-padding-xs-desktop) var(--px-padding-s-desktop);gap:var(--px-spacing-xs-desktop)}}", n = new CSSStyleSheet();
|
|
5
|
+
n.replaceSync(t);
|
|
6
|
+
var r = [
|
|
7
|
+
"",
|
|
8
|
+
"s",
|
|
9
|
+
"m"
|
|
10
|
+
], i = [
|
|
11
|
+
"",
|
|
12
|
+
"success",
|
|
13
|
+
"error",
|
|
14
|
+
"warning"
|
|
15
|
+
], a = class extends e {
|
|
16
|
+
static {
|
|
17
|
+
this.nativeName = "div";
|
|
18
|
+
}
|
|
19
|
+
template() {
|
|
20
|
+
return "\n <div class=\"tag\">\n <slot name=\"before\"></slot>\n <slot></slot>\n <slot name=\"after\"></slot>\n </div>\n ";
|
|
21
|
+
}
|
|
22
|
+
constructor() {
|
|
23
|
+
super(n), this.shadowRoot.innerHTML = this.template(), this.shadowRoot.adoptedStyleSheets = [n];
|
|
24
|
+
}
|
|
25
|
+
connectedCallback() {
|
|
26
|
+
this.styleBeforeIcon = this.styleBeforeIcon.bind(this), this.styleBeforeIcon(), this.$slotBefore?.addEventListener("slotchange", this.styleBeforeIcon), this.styleAfterBtnIcon = this.styleAfterBtnIcon.bind(this), this.styleAfterBtnIcon(), this.$slotAfter?.addEventListener("slotchange", this.styleAfterBtnIcon);
|
|
27
|
+
}
|
|
28
|
+
static get observedAttributes() {
|
|
29
|
+
return [
|
|
30
|
+
"dismissible",
|
|
31
|
+
"inverted",
|
|
32
|
+
"disabled",
|
|
33
|
+
"size",
|
|
34
|
+
"state",
|
|
35
|
+
"state-icon-aria-label",
|
|
36
|
+
"state-icon-from"
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
attributeChangedCallback(e, t, n) {
|
|
40
|
+
if (t !== n) switch (e) {
|
|
41
|
+
case "inverted":
|
|
42
|
+
this.hasAttribute("dismissible") && this.$slottedAfterBtnIcon.toggleAttribute("inverted");
|
|
43
|
+
break;
|
|
44
|
+
case "state":
|
|
45
|
+
this.hasAttribute("dismissible") || this.updateStateStyles(t, n, i);
|
|
46
|
+
break;
|
|
47
|
+
case "state-icon-aria-label":
|
|
48
|
+
this.hasAttribute("dismissible") || this.updateStateIconLabel(n);
|
|
49
|
+
break;
|
|
50
|
+
case "state-icon-from":
|
|
51
|
+
this.hasAttribute("dismissible") || this.updateStateIconFrom(n);
|
|
52
|
+
break;
|
|
53
|
+
default: super.attributeChangedCallback(e, t, n);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
updateStateStyles(e, t, n) {
|
|
57
|
+
if (!n.includes(e) && n.includes(t)) {
|
|
58
|
+
let e = document.createElement("px-icon");
|
|
59
|
+
e.setAttribute("size", "xs"), e.setAttribute("color", "inherit"), e.setAttribute("from", this.stateIconFrom ? this.stateIconFrom : "lavender"), e.setAttribute("name", this.getStateIcon(t)), this.stateIconAriaLabel && (e.setAttribute("aria-label", this.stateIconAriaLabel), e.setAttribute("title", this.stateIconAriaLabel)), this.$el.insertAdjacentElement("afterbegin", e);
|
|
60
|
+
} else if (n.includes(e) && !n.includes(t)) {
|
|
61
|
+
let e = this.$el.querySelector("px-icon");
|
|
62
|
+
e && this.$el.removeChild(e);
|
|
63
|
+
} else if (n.includes(e) && n.includes(t)) {
|
|
64
|
+
let e = this.$el.querySelector("px-icon");
|
|
65
|
+
e && e.setAttribute("name", this.getStateIcon(t));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
getStateIcon(e) {
|
|
69
|
+
switch (e) {
|
|
70
|
+
case "success": return "checkmark_fill";
|
|
71
|
+
case "error": return "minus_fill";
|
|
72
|
+
case "warning": return "exclamation_mark_fill";
|
|
73
|
+
default: return "";
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
updateStateIconLabel(e) {
|
|
77
|
+
let t = this.$el.querySelector("px-icon");
|
|
78
|
+
t && (e ? (t.setAttribute("aria-label", e), t.setAttribute("title", e)) : (t.removeAttribute("aria-label"), t.removeAttribute("title")));
|
|
79
|
+
}
|
|
80
|
+
updateStateIconFrom(e) {
|
|
81
|
+
let t = this.$el.querySelector("px-icon");
|
|
82
|
+
t && (e ? t.setAttribute("from", e) : t.setAttribute("from", "lavender"));
|
|
83
|
+
}
|
|
84
|
+
styleBeforeIcon() {
|
|
85
|
+
this.$slottedBeforeIcon && (this.$slottedBeforeIcon.setAttribute("size", "xs"), this.$slottedBeforeIcon.setAttribute("color", "inherit"));
|
|
86
|
+
}
|
|
87
|
+
styleAfterBtnIcon() {
|
|
88
|
+
this.$slottedAfterBtnIcon && (this.$slottedAfterBtnIcon.setAttribute("variant", "secondary"), this.$slottedAfterBtnIcon.setAttribute("size", "small"));
|
|
89
|
+
}
|
|
90
|
+
get $slottedBeforeIcon() {
|
|
91
|
+
return this.querySelector("px-icon[slot=\"before\"]");
|
|
92
|
+
}
|
|
93
|
+
get $slotBefore() {
|
|
94
|
+
return this.shadowRoot?.querySelector("slot[name=\"before\"]");
|
|
95
|
+
}
|
|
96
|
+
get $slottedAfterBtnIcon() {
|
|
97
|
+
return this.querySelector("px-button-icon[slot=\"after\"]");
|
|
98
|
+
}
|
|
99
|
+
get $slotAfter() {
|
|
100
|
+
return this.shadowRoot?.querySelector("slot[name=\"after\"]");
|
|
101
|
+
}
|
|
102
|
+
get size() {
|
|
103
|
+
return this.getAttribute("size") || "";
|
|
104
|
+
}
|
|
105
|
+
set size(e) {
|
|
106
|
+
this.setAttribute("size", e);
|
|
107
|
+
}
|
|
108
|
+
get state() {
|
|
109
|
+
return this.getAttribute("state") || "";
|
|
110
|
+
}
|
|
111
|
+
set state(e) {
|
|
112
|
+
this.setAttribute("state", e);
|
|
113
|
+
}
|
|
114
|
+
get dismissible() {
|
|
115
|
+
return this.hasAttribute("dismissible");
|
|
116
|
+
}
|
|
117
|
+
set dismissible(e) {
|
|
118
|
+
e ? this.setAttribute("dismissible", "") : this.removeAttribute("dismissible");
|
|
119
|
+
}
|
|
120
|
+
get inverted() {
|
|
121
|
+
return this.hasAttribute("inverted");
|
|
122
|
+
}
|
|
123
|
+
set inverted(e) {
|
|
124
|
+
e ? this.setAttribute("inverted", "") : this.removeAttribute("inverted");
|
|
125
|
+
}
|
|
126
|
+
get stateIconAriaLabel() {
|
|
127
|
+
return this.getAttribute("state-icon-aria-label") || "";
|
|
128
|
+
}
|
|
129
|
+
set stateIconAriaLabel(e) {
|
|
130
|
+
this.setAttribute("state-icon-aria-label", e);
|
|
131
|
+
}
|
|
132
|
+
get stateIconFrom() {
|
|
133
|
+
return this.getAttribute("state-icon-from") || "";
|
|
134
|
+
}
|
|
135
|
+
set stateIconFrom(e) {
|
|
136
|
+
this.setAttribute("state-icon-from", e);
|
|
137
|
+
}
|
|
59
138
|
};
|
|
139
|
+
customElements.get("px-tag") || customElements.define("px-tag", a);
|
|
140
|
+
//#endregion
|
|
141
|
+
export { a as Tag, r as tagSizeValues, i as tagStateValues };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proximus/lavender-tag",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.170",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.es.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"clean": "rm -rf dist",
|
|
14
14
|
"build": "npm run clean && NODE_ENV=development vite build && tsc && npm run transform-package-json && npm run wc-manifest",
|
|
15
15
|
"test": "vitest run --coverage",
|
|
16
|
-
"wc-manifest": "cem analyze --globs \"src/*\" --config
|
|
16
|
+
"wc-manifest": "cem analyze --globs \"src/*\" --config ../../custom-elements-manifest.config.js --outdir dist"
|
|
17
17
|
},
|
|
18
18
|
"publishConfig": {
|
|
19
19
|
"access": "public"
|