@justeattakeaway/pie-tag 0.11.1 → 0.12.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/custom-elements.json +29 -3
- package/dist/index.d.ts +11 -4
- package/dist/index.js +65 -57
- package/dist/react.d.ts +11 -4
- package/dist/react.js +5 -4
- package/package.json +1 -1
- package/src/defs.ts +9 -2
- package/src/index.ts +35 -25
- package/src/tag.scss +30 -21
package/custom-elements.json
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"kind": "variable",
|
|
17
17
|
"name": "variants",
|
|
18
18
|
"type": {
|
|
19
|
-
"text": "['neutral-alternative', 'neutral', 'outline', 'ghost', '
|
|
19
|
+
"text": "['neutral-alternative', 'neutral', 'outline', 'ghost', 'information', 'success', 'error', 'brand-02', 'brand-03', 'brand-04', 'brand-05', 'brand-06']"
|
|
20
20
|
},
|
|
21
|
-
"default": "['neutral-alternative', 'neutral', 'outline', 'ghost', '
|
|
21
|
+
"default": "['neutral-alternative', 'neutral', 'outline', 'ghost', 'information', 'success', 'error', 'brand-02', 'brand-03', 'brand-04', 'brand-05', 'brand-06']"
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"kind": "variable",
|
|
@@ -28,13 +28,21 @@
|
|
|
28
28
|
},
|
|
29
29
|
"default": "['small', 'large']"
|
|
30
30
|
},
|
|
31
|
+
{
|
|
32
|
+
"kind": "variable",
|
|
33
|
+
"name": "iconPlacements",
|
|
34
|
+
"type": {
|
|
35
|
+
"text": "['leading', 'trailing']"
|
|
36
|
+
},
|
|
37
|
+
"default": "['leading', 'trailing']"
|
|
38
|
+
},
|
|
31
39
|
{
|
|
32
40
|
"kind": "variable",
|
|
33
41
|
"name": "defaultProps",
|
|
34
42
|
"type": {
|
|
35
43
|
"text": "DefaultProps"
|
|
36
44
|
},
|
|
37
|
-
"default": "{\n variant: 'neutral',\n isStrong: false,\n isInteractive: false,\n disabled: false,\n size: 'large',\n}"
|
|
45
|
+
"default": "{\n variant: 'neutral',\n isStrong: false,\n isInteractive: false,\n disabled: false,\n size: 'large',\n iconPlacement: 'leading',\n}"
|
|
38
46
|
}
|
|
39
47
|
],
|
|
40
48
|
"exports": [
|
|
@@ -54,6 +62,14 @@
|
|
|
54
62
|
"module": "src/defs.js"
|
|
55
63
|
}
|
|
56
64
|
},
|
|
65
|
+
{
|
|
66
|
+
"kind": "js",
|
|
67
|
+
"name": "iconPlacements",
|
|
68
|
+
"declaration": {
|
|
69
|
+
"name": "iconPlacements",
|
|
70
|
+
"module": "src/defs.js"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
57
73
|
{
|
|
58
74
|
"kind": "js",
|
|
59
75
|
"name": "defaultProps",
|
|
@@ -113,6 +129,12 @@
|
|
|
113
129
|
"privacy": "public",
|
|
114
130
|
"attribute": "isInteractive"
|
|
115
131
|
},
|
|
132
|
+
{
|
|
133
|
+
"kind": "field",
|
|
134
|
+
"name": "iconPlacement",
|
|
135
|
+
"privacy": "public",
|
|
136
|
+
"attribute": "iconPlacement"
|
|
137
|
+
},
|
|
116
138
|
{
|
|
117
139
|
"kind": "method",
|
|
118
140
|
"name": "renderIconSlot",
|
|
@@ -165,6 +187,10 @@
|
|
|
165
187
|
{
|
|
166
188
|
"name": "isInteractive",
|
|
167
189
|
"fieldName": "isInteractive"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"name": "iconPlacement",
|
|
193
|
+
"fieldName": "iconPlacement"
|
|
168
194
|
}
|
|
169
195
|
],
|
|
170
196
|
"superclass": {
|
package/dist/index.d.ts
CHANGED
|
@@ -7,21 +7,24 @@ export declare type DefaultProps = ComponentDefaultProps<TagProps>;
|
|
|
7
7
|
|
|
8
8
|
export declare const defaultProps: DefaultProps;
|
|
9
9
|
|
|
10
|
+
export declare const iconPlacements: readonly ["leading", "trailing"];
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
* @tagname pie-tag
|
|
12
14
|
* @slot icon - The icon slot
|
|
13
15
|
* @slot - Default slot
|
|
14
16
|
*/
|
|
15
17
|
export declare class PieTag extends LitElement implements TagProps {
|
|
16
|
-
variant: "neutral-alternative" | "neutral" | "outline" | "ghost" | "
|
|
18
|
+
variant: "neutral-alternative" | "neutral" | "outline" | "ghost" | "information" | "success" | "error" | "brand-02" | "brand-03" | "brand-04" | "brand-05" | "brand-06";
|
|
17
19
|
size: "small" | "large";
|
|
18
20
|
isStrong: boolean;
|
|
19
21
|
disabled: boolean;
|
|
20
22
|
isInteractive: boolean;
|
|
21
|
-
|
|
23
|
+
iconPlacement: "leading" | "trailing";
|
|
22
24
|
private renderIconSlot;
|
|
23
25
|
private renderTag;
|
|
24
26
|
private renderButtonTag;
|
|
27
|
+
render(): TemplateResult<1>;
|
|
25
28
|
static styles: CSSResult;
|
|
26
29
|
}
|
|
27
30
|
|
|
@@ -33,7 +36,7 @@ export declare interface TagProps {
|
|
|
33
36
|
*/
|
|
34
37
|
variant?: typeof variants[number];
|
|
35
38
|
/**
|
|
36
|
-
* When true, the "
|
|
39
|
+
* When true, the "information", "success", "error", "brand-05", and "neutral" variants change their styles and become bolder
|
|
37
40
|
*/
|
|
38
41
|
isStrong?: boolean;
|
|
39
42
|
/**
|
|
@@ -49,8 +52,12 @@ export declare interface TagProps {
|
|
|
49
52
|
* What size the tag should be.
|
|
50
53
|
*/
|
|
51
54
|
size?: typeof sizes[number];
|
|
55
|
+
/**
|
|
56
|
+
* The placement of the icon slot such as leading (default) or trailing. Available only if `isInteractive` is set to true.
|
|
57
|
+
*/
|
|
58
|
+
iconPlacement?: typeof iconPlacements[number];
|
|
52
59
|
}
|
|
53
60
|
|
|
54
|
-
export declare const variants: readonly ["neutral-alternative", "neutral", "outline", "ghost", "
|
|
61
|
+
export declare const variants: readonly ["neutral-alternative", "neutral", "outline", "ghost", "information", "success", "error", "brand-02", "brand-03", "brand-04", "brand-05", "brand-06"];
|
|
55
62
|
|
|
56
63
|
export { }
|
package/dist/index.js
CHANGED
|
@@ -1,87 +1,95 @@
|
|
|
1
|
-
import { LitElement as
|
|
2
|
-
import { property as
|
|
3
|
-
import { classMap as
|
|
4
|
-
import { validPropertyValues as
|
|
5
|
-
const w = "*,*:after,*:before{box-sizing:inherit}.c-tag{--tag-bg-color: var(--dt-color-container-strong);--tag-color: var(--dt-color-content-default);--tag-border-radius: var(--dt-radius-rounded-b);--tag-padding-block: 2px;--tag-padding-inline: var(--dt-spacing-b);--tag-font-family: var(--dt-font-body-s-family);--tag-font-weight: var(--dt-font-body-s-weight);--tag-font-size: calc(var(--dt-font-body-s-size) * 1px);--tag-line-height: calc(var(--dt-font-body-s-line-height) * 1px);--tag-cursor: text;--tag-transparent-bg-color: transparent;--icon-display-override: block;--icon-size-override: 16px;display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;gap:var(--dt-spacing-a);padding:var(--tag-padding-block) var(--tag-padding-inline);border-radius:var(--tag-border-radius);background-color:var(--tag-bg-color);color:var(--tag-color);font-family:var(--tag-font-family);font-weight:var(--tag-font-weight);font-size:var(--tag-font-size);line-height:var(--tag-line-height);cursor:var(--tag-cursor)}.c-tag.c-tag--interactive{--tag-cursor: pointer;border:none;-webkit-user-select:none;user-select:none}.c-tag.c-tag--interactive:focus-visible{box-shadow:0 0 0 2px var(--dt-color-focus-inner),0 0 0 4px var(--dt-color-focus-outer);outline:none}.c-tag.c-tag--small{--tag-padding-block: 0;--tag-padding-inline: var(--dt-spacing-a);--tag-border-radius: var(--dt-radius-rounded-a);--tag-font-size: calc(var(--dt-font-caption-size) * 1px);--tag-line-height: calc(var(--dt-font-caption-line-height) * 1px)}.c-tag.c-tag--neutral.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-container-strong-h), var(--dt-color-container-strong-s), calc(var(--dt-color-container-strong-l) + var(--hover-modifier)))}.c-tag.c-tag--neutral.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-container-strong-h), var(--dt-color-container-strong-s), calc(var(--dt-color-container-strong-l) + var(--active-modifier)))}.c-tag.c-tag--neutral.c-tag--strong{--tag-bg-color: var(--dt-color-container-inverse);--tag-color: var(--dt-color-content-inverse)}.c-tag.c-tag--neutral.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: var(--dt-color-hover-02);--tag-bg-color: hsl(var(--dt-color-container-inverse-h), var(--dt-color-container-inverse-s), calc(var(--dt-color-container-inverse-l) + var(--hover-modifier)))}.c-tag.c-tag--neutral.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: var(--dt-color-active-02);--tag-bg-color: hsl(var(--dt-color-container-inverse-h), var(--dt-color-container-inverse-s), calc(var(--dt-color-container-inverse-l) + var(--active-modifier)))}.c-tag.c-tag--blue{--tag-bg-color: var(--dt-color-support-info-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--blue.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-info-02-h), var(--dt-color-support-info-02-s), calc(var(--dt-color-support-info-02-l) + var(--hover-modifier)))}.c-tag.c-tag--blue.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-info-02-h), var(--dt-color-support-info-02-s), calc(var(--dt-color-support-info-02-l) + var(--active-modifier)))}.c-tag.c-tag--blue.c-tag--strong{--tag-bg-color: var(--dt-color-support-info);--tag-color: var(--dt-color-content-inverse)}.c-tag.c-tag--blue.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-info-h), var(--dt-color-support-info-s), calc(var(--dt-color-support-info-l) + var(--hover-modifier)))}.c-tag.c-tag--blue.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-info-h), var(--dt-color-support-info-s), calc(var(--dt-color-support-info-l) + var(--active-modifier)))}.c-tag.c-tag--green{--tag-bg-color: var(--dt-color-support-positive-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--green.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-positive-02-h), var(--dt-color-support-positive-02-s), calc(var(--dt-color-support-positive-02-l) + var(--hover-modifier)))}.c-tag.c-tag--green.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-positive-02-h), var(--dt-color-support-positive-02-s), calc(var(--dt-color-support-positive-02-l) + var(--active-modifier)))}.c-tag.c-tag--green.c-tag--strong{--tag-bg-color: var(--dt-color-support-positive);--tag-color: var(--dt-color-content-inverse)}.c-tag.c-tag--green.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-positive-h), var(--dt-color-support-positive-s), calc(var(--dt-color-support-positive-l) + var(--hover-modifier)))}.c-tag.c-tag--green.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-positive-h), var(--dt-color-support-positive-s), calc(var(--dt-color-support-positive-l) + var(--active-modifier)))}.c-tag.c-tag--yellow{--tag-bg-color: var(--dt-color-support-warning-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--yellow.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-warning-02-h), var(--dt-color-support-warning-02-s), calc(var(--dt-color-support-warning-02-l) + var(--hover-modifier)))}.c-tag.c-tag--yellow.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-warning-02-h), var(--dt-color-support-warning-02-s), calc(var(--dt-color-support-warning-02-l) + var(--active-modifier)))}.c-tag.c-tag--yellow.c-tag--strong{--tag-bg-color: var(--dt-color-support-warning);--tag-color: var(--dt-color-content-dark)}.c-tag.c-tag--yellow.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-warning-h), var(--dt-color-support-warning-s), calc(var(--dt-color-support-warning-l) + var(--hover-modifier)))}.c-tag.c-tag--yellow.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-warning-h), var(--dt-color-support-warning-s), calc(var(--dt-color-support-warning-l) + var(--active-modifier)))}.c-tag.c-tag--red{--tag-bg-color: var(--dt-color-support-error-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--red.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-error-02-h), var(--dt-color-support-error-02-s), calc(var(--dt-color-support-error-02-l) + var(--hover-modifier)))}.c-tag.c-tag--red.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-error-02-h), var(--dt-color-support-error-02-s), calc(var(--dt-color-support-error-02-l) + var(--active-modifier)))}.c-tag.c-tag--red.c-tag--strong{--tag-bg-color: var(--dt-color-support-error);--tag-color: var(--dt-color-content-light)}.c-tag.c-tag--red.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-error-h), var(--dt-color-support-error-s), calc(var(--dt-color-support-error-l) + var(--hover-modifier)))}.c-tag.c-tag--red.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-error-h), var(--dt-color-support-error-s), calc(var(--dt-color-support-error-l) + var(--active-modifier)))}.c-tag.c-tag--brand-03{--tag-bg-color: var(--dt-color-support-brand-03);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--brand-03.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-brand-03-h), var(--dt-color-support-brand-03-s), calc(var(--dt-color-support-brand-03-l) + var(--hover-modifier)))}.c-tag.c-tag--brand-03.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-brand-03-h), var(--dt-color-support-brand-03-s), calc(var(--dt-color-support-brand-03-l) + var(--active-modifier)))}.c-tag.c-tag--brand-04{--tag-bg-color: var(--dt-color-support-brand-04);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--brand-04.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-brand-04-h), var(--dt-color-support-brand-04-s), calc(var(--dt-color-support-brand-04-l) + var(--hover-modifier)))}.c-tag.c-tag--brand-04.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-brand-04-h), var(--dt-color-support-brand-04-s), calc(var(--dt-color-support-brand-04-l) + var(--active-modifier)))}.c-tag.c-tag--brand-06{--tag-bg-color: var(--dt-color-support-brand-06);--tag-color: var(--dt-color-content-light)}.c-tag.c-tag--brand-06.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: var(--dt-color-hover-02);--tag-bg-color: hsl(var(--dt-color-support-brand-06-h), var(--dt-color-support-brand-06-s), calc(var(--dt-color-support-brand-06-l) + var(--hover-modifier)))}.c-tag.c-tag--brand-06.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: var(--dt-color-active-02);--tag-bg-color: hsl(var(--dt-color-support-brand-06-h), var(--dt-color-support-brand-06-s), calc(var(--dt-color-support-brand-06-l) + var(--active-modifier)))}.c-tag.c-tag--brand{--tag-bg-color: var(--dt-color-support-brand-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--brand.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-brand-02-h), var(--dt-color-support-brand-02-s), calc(var(--dt-color-support-brand-02-l) + var(--hover-modifier)))}.c-tag.c-tag--brand.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-brand-02-h), var(--dt-color-support-brand-02-s), calc(var(--dt-color-support-brand-02-l) + var(--active-modifier)))}.c-tag.c-tag--neutral-alternative{--tag-bg-color: var(--dt-color-container-default);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--neutral-alternative.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--hover-modifier)))}.c-tag.c-tag--neutral-alternative.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--active-modifier)))}.c-tag.c-tag--outline{--tag-bg-color: var(--tag-transparent-bg-color);--tag-color: var(--dt-color-content-default);box-shadow:0 0 0 1px var(--dt-color-border-strong)}.c-tag.c-tag--outline.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--hover-modifier: var(--dt-color-hover-01);--tag-bg-color: hsl(var(--dt-color-black-h), var(--dt-color-black-s), var(--dt-color-black-l), var(--hover-modifier))}.c-tag.c-tag--outline.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--active-modifier: var(--dt-color-active-01);--tag-bg-color: hsl(var(--dt-color-black-h), var(--dt-color-black-s), var(--dt-color-black-l), var(--active-modifier))}.c-tag.c-tag--ghost{--tag-bg-color: var(--tag-transparent-bg-color);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--ghost.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--hover-modifier: var(--dt-color-hover-01);--tag-bg-color: hsl(var(--dt-color-black-h), var(--dt-color-black-s), var(--dt-color-black-l), var(--hover-modifier))}.c-tag.c-tag--ghost.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--active-modifier: var(--dt-color-active-01);--tag-bg-color: hsl(var(--dt-color-black-h), var(--dt-color-black-s), var(--dt-color-black-l), var(--active-modifier))}.c-tag.c-tag--disabled{opacity:.5}.c-tag[disabled]{--tag-cursor: not-allowed}::slotted(svg){display:block;height:var(--icon-size-override);width:var(--icon-size-override)}", k = ["neutral-alternative", "neutral", "outline", "ghost", "blue", "green", "yellow", "red", "brand", "brand-03", "brand-04", "brand-06"], z = ["small", "large"], a = {
|
|
1
|
+
import { LitElement as f, nothing as m, html as v, unsafeCSS as y } from "lit";
|
|
2
|
+
import { property as e } from "lit/decorators.js";
|
|
3
|
+
import { classMap as u } from "lit/directives/class-map.js";
|
|
4
|
+
import { validPropertyValues as g, defineCustomElement as w } from "@justeattakeaway/pie-webc-core";
|
|
5
|
+
const k = "*,*:after,*:before{box-sizing:inherit}.c-tag{--tag-bg-color: var(--dt-color-container-strong);--tag-color: var(--dt-color-content-default);--tag-border-radius: var(--dt-radius-rounded-b);--tag-padding-block: 2px;--tag-padding-inline: var(--dt-spacing-b);--tag-font-family: var(--dt-font-body-s-family);--tag-font-weight: var(--dt-font-body-s-weight);--tag-font-size: calc(var(--dt-font-body-s-size) * 1px);--tag-line-height: calc(var(--dt-font-body-s-line-height) * 1px);--tag-cursor: text;--tag-transparent-bg-color: transparent;--icon-display-override: block;--icon-size-override: 16px;display:inline-flex;flex-direction:row;vertical-align:middle;align-items:center;justify-content:center;gap:var(--dt-spacing-a);padding:var(--tag-padding-block) var(--tag-padding-inline);border-radius:var(--tag-border-radius);background-color:var(--tag-bg-color);color:var(--tag-color);font-family:var(--tag-font-family);font-weight:var(--tag-font-weight);font-size:var(--tag-font-size);line-height:var(--tag-line-height);cursor:var(--tag-cursor)}.c-tag.c-tag--interactive{--tag-cursor: pointer;border:none;-webkit-user-select:none;user-select:none}.c-tag.c-tag--interactive:focus-visible{box-shadow:0 0 0 2px var(--dt-color-focus-inner),0 0 0 4px var(--dt-color-focus-outer);outline:none}.c-tag.c-tag--icon-placement--trailing{flex-direction:row-reverse}.c-tag.c-tag--small{--tag-padding-block: 0;--tag-padding-inline: var(--dt-spacing-a);--tag-border-radius: var(--dt-radius-rounded-a);--tag-font-size: calc(var(--dt-font-caption-size) * 1px);--tag-line-height: calc(var(--dt-font-caption-line-height) * 1px)}.c-tag.c-tag--neutral.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-container-strong-h), var(--dt-color-container-strong-s), calc(var(--dt-color-container-strong-l) + var(--hover-modifier)))}.c-tag.c-tag--neutral.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-container-strong-h), var(--dt-color-container-strong-s), calc(var(--dt-color-container-strong-l) + var(--active-modifier)))}.c-tag.c-tag--neutral.c-tag--strong{--tag-bg-color: var(--dt-color-container-inverse);--tag-color: var(--dt-color-content-inverse)}.c-tag.c-tag--neutral.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: var(--dt-color-hover-02);--tag-bg-color: hsl(var(--dt-color-container-inverse-h), var(--dt-color-container-inverse-s), calc(var(--dt-color-container-inverse-l) + var(--hover-modifier)))}.c-tag.c-tag--neutral.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: var(--dt-color-active-02);--tag-bg-color: hsl(var(--dt-color-container-inverse-h), var(--dt-color-container-inverse-s), calc(var(--dt-color-container-inverse-l) + var(--active-modifier)))}.c-tag.c-tag--information{--tag-bg-color: var(--dt-color-support-info-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--information.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-info-02-h), var(--dt-color-support-info-02-s), calc(var(--dt-color-support-info-02-l) + var(--hover-modifier)))}.c-tag.c-tag--information.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-info-02-h), var(--dt-color-support-info-02-s), calc(var(--dt-color-support-info-02-l) + var(--active-modifier)))}.c-tag.c-tag--information.c-tag--strong{--tag-bg-color: var(--dt-color-support-info);--tag-color: var(--dt-color-content-inverse)}.c-tag.c-tag--information.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-info-h), var(--dt-color-support-info-s), calc(var(--dt-color-support-info-l) + var(--hover-modifier)))}.c-tag.c-tag--information.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-info-h), var(--dt-color-support-info-s), calc(var(--dt-color-support-info-l) + var(--active-modifier)))}.c-tag.c-tag--success{--tag-bg-color: var(--dt-color-support-positive-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--success.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-positive-02-h), var(--dt-color-support-positive-02-s), calc(var(--dt-color-support-positive-02-l) + var(--hover-modifier)))}.c-tag.c-tag--success.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-positive-02-h), var(--dt-color-support-positive-02-s), calc(var(--dt-color-support-positive-02-l) + var(--active-modifier)))}.c-tag.c-tag--success.c-tag--strong{--tag-bg-color: var(--dt-color-support-positive);--tag-color: var(--dt-color-content-inverse)}.c-tag.c-tag--success.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-positive-h), var(--dt-color-support-positive-s), calc(var(--dt-color-support-positive-l) + var(--hover-modifier)))}.c-tag.c-tag--success.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-positive-h), var(--dt-color-support-positive-s), calc(var(--dt-color-support-positive-l) + var(--active-modifier)))}.c-tag.c-tag--error{--tag-bg-color: var(--dt-color-support-error-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--error.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-error-02-h), var(--dt-color-support-error-02-s), calc(var(--dt-color-support-error-02-l) + var(--hover-modifier)))}.c-tag.c-tag--error.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-error-02-h), var(--dt-color-support-error-02-s), calc(var(--dt-color-support-error-02-l) + var(--active-modifier)))}.c-tag.c-tag--error.c-tag--strong{--tag-bg-color: var(--dt-color-support-error);--tag-color: var(--dt-color-content-light)}.c-tag.c-tag--error.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-error-h), var(--dt-color-support-error-s), calc(var(--dt-color-support-error-l) + var(--hover-modifier)))}.c-tag.c-tag--error.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-error-h), var(--dt-color-support-error-s), calc(var(--dt-color-support-error-l) + var(--active-modifier)))}.c-tag.c-tag--brand-02{--tag-bg-color: var(--dt-color-support-brand-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--brand-02.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-brand-02-h), var(--dt-color-support-brand-02-s), calc(var(--dt-color-support-brand-02-l) + var(--hover-modifier)))}.c-tag.c-tag--brand-02.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-brand-02-h), var(--dt-color-support-brand-02-s), calc(var(--dt-color-support-brand-02-l) + var(--active-modifier)))}.c-tag.c-tag--brand-03{--tag-bg-color: var(--dt-color-support-brand-03);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--brand-03.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-brand-03-h), var(--dt-color-support-brand-03-s), calc(var(--dt-color-support-brand-03-l) + var(--hover-modifier)))}.c-tag.c-tag--brand-03.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-brand-03-h), var(--dt-color-support-brand-03-s), calc(var(--dt-color-support-brand-03-l) + var(--active-modifier)))}.c-tag.c-tag--brand-04{--tag-bg-color: var(--dt-color-support-brand-04);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--brand-04.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-brand-04-h), var(--dt-color-support-brand-04-s), calc(var(--dt-color-support-brand-04-l) + var(--hover-modifier)))}.c-tag.c-tag--brand-04.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-brand-04-h), var(--dt-color-support-brand-04-s), calc(var(--dt-color-support-brand-04-l) + var(--active-modifier)))}.c-tag.c-tag--brand-05{--tag-bg-color: var(--dt-color-support-warning-02);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--brand-05.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-warning-02-h), var(--dt-color-support-warning-02-s), calc(var(--dt-color-support-warning-02-l) + var(--hover-modifier)))}.c-tag.c-tag--brand-05.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-warning-02-h), var(--dt-color-support-warning-02-s), calc(var(--dt-color-support-warning-02-l) + var(--active-modifier)))}.c-tag.c-tag--brand-05.c-tag--strong{--tag-bg-color: var(--dt-color-support-warning);--tag-color: var(--dt-color-content-dark)}.c-tag.c-tag--brand-05.c-tag--strong.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-support-warning-h), var(--dt-color-support-warning-s), calc(var(--dt-color-support-warning-l) + var(--hover-modifier)))}.c-tag.c-tag--brand-05.c-tag--strong.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-support-warning-h), var(--dt-color-support-warning-s), calc(var(--dt-color-support-warning-l) + var(--active-modifier)))}.c-tag.c-tag--brand-06{--tag-bg-color: var(--dt-color-support-brand-06);--tag-color: var(--dt-color-content-light)}.c-tag.c-tag--brand-06.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: var(--dt-color-hover-02);--tag-bg-color: hsl(var(--dt-color-support-brand-06-h), var(--dt-color-support-brand-06-s), calc(var(--dt-color-support-brand-06-l) + var(--hover-modifier)))}.c-tag.c-tag--brand-06.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: var(--dt-color-active-02);--tag-bg-color: hsl(var(--dt-color-support-brand-06-h), var(--dt-color-support-brand-06-s), calc(var(--dt-color-support-brand-06-l) + var(--active-modifier)))}.c-tag.c-tag--neutral-alternative{--tag-bg-color: var(--dt-color-container-default);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--neutral-alternative.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--tag-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--hover-modifier)))}.c-tag.c-tag--neutral-alternative.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--tag-bg-color: hsl(var(--dt-color-container-default-h), var(--dt-color-container-default-s), calc(var(--dt-color-container-default-l) + var(--active-modifier)))}.c-tag.c-tag--outline{--tag-bg-color: var(--tag-transparent-bg-color);--tag-color: var(--dt-color-content-default);box-shadow:0 0 0 1px var(--dt-color-border-strong)}.c-tag.c-tag--outline.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--hover-modifier: var(--dt-color-hover-01);--tag-bg-color: hsl(var(--dt-color-black-h), var(--dt-color-black-s), var(--dt-color-black-l), var(--hover-modifier))}.c-tag.c-tag--outline.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--active-modifier: var(--dt-color-active-01);--tag-bg-color: hsl(var(--dt-color-black-h), var(--dt-color-black-s), var(--dt-color-black-l), var(--active-modifier))}.c-tag.c-tag--ghost{--tag-bg-color: var(--tag-transparent-bg-color);--tag-color: var(--dt-color-content-default)}.c-tag.c-tag--ghost.c-tag--interactive:hover:not(.c-tag--disabled){--hover-modifier: calc(-1 * var(--dt-color-hover-01));--hover-modifier: var(--dt-color-hover-01);--tag-bg-color: hsl(var(--dt-color-black-h), var(--dt-color-black-s), var(--dt-color-black-l), var(--hover-modifier))}.c-tag.c-tag--ghost.c-tag--interactive:active:not(.c-tag--disabled){--active-modifier: calc(-1 * var(--dt-color-active-01));--active-modifier: var(--dt-color-active-01);--tag-bg-color: hsl(var(--dt-color-black-h), var(--dt-color-black-s), var(--dt-color-black-l), var(--active-modifier))}.c-tag.c-tag--disabled{opacity:.5}.c-tag[disabled]{--tag-cursor: not-allowed}::slotted(svg){display:block;height:var(--icon-size-override);width:var(--icon-size-override)}", x = ["neutral-alternative", "neutral", "outline", "ghost", "information", "success", "error", "brand-02", "brand-03", "brand-04", "brand-05", "brand-06"], z = ["small", "large"], S = ["leading", "trailing"], r = {
|
|
6
6
|
variant: "neutral",
|
|
7
7
|
isStrong: !1,
|
|
8
8
|
isInteractive: !1,
|
|
9
9
|
disabled: !1,
|
|
10
|
-
size: "large"
|
|
10
|
+
size: "large",
|
|
11
|
+
iconPlacement: "leading"
|
|
11
12
|
};
|
|
12
|
-
var
|
|
13
|
-
for (var
|
|
14
|
-
(
|
|
15
|
-
return
|
|
13
|
+
var P = Object.defineProperty, i = (p, o, c, b) => {
|
|
14
|
+
for (var a = void 0, l = p.length - 1, d; l >= 0; l--)
|
|
15
|
+
(d = p[l]) && (a = d(o, c, a) || a);
|
|
16
|
+
return a && P(o, c, a), a;
|
|
16
17
|
};
|
|
17
|
-
const
|
|
18
|
+
const n = "pie-tag", s = class s extends f {
|
|
18
19
|
constructor() {
|
|
19
|
-
super(...arguments), this.variant =
|
|
20
|
-
}
|
|
21
|
-
render() {
|
|
22
|
-
const {
|
|
23
|
-
disabled: r,
|
|
24
|
-
isInteractive: c,
|
|
25
|
-
isStrong: p,
|
|
26
|
-
size: t,
|
|
27
|
-
variant: e
|
|
28
|
-
} = this, i = {
|
|
29
|
-
"c-tag": !0,
|
|
30
|
-
[`c-tag--${t}`]: !0,
|
|
31
|
-
[`c-tag--${e}`]: !0,
|
|
32
|
-
"c-tag--disabled": r,
|
|
33
|
-
"c-tag--strong": p,
|
|
34
|
-
"c-tag--interactive": c
|
|
35
|
-
};
|
|
36
|
-
return c ? this.renderButtonTag(i) : this.renderTag(i);
|
|
20
|
+
super(...arguments), this.variant = r.variant, this.size = r.size, this.isStrong = r.isStrong, this.disabled = r.disabled, this.isInteractive = r.isInteractive, this.iconPlacement = r.iconPlacement;
|
|
37
21
|
}
|
|
38
22
|
renderIconSlot() {
|
|
39
|
-
return this.size !== "large" ?
|
|
23
|
+
return this.size !== "large" ? m : v`<slot name="icon"></slot>`;
|
|
40
24
|
}
|
|
41
|
-
renderTag(
|
|
25
|
+
renderTag(o) {
|
|
42
26
|
return v`
|
|
43
27
|
<div
|
|
44
|
-
class="${
|
|
28
|
+
class="${u(o)}"
|
|
45
29
|
data-test-id="pie-tag">
|
|
46
30
|
${this.renderIconSlot()}
|
|
47
31
|
<slot></slot>
|
|
48
32
|
</div>`;
|
|
49
33
|
}
|
|
50
|
-
renderButtonTag(
|
|
34
|
+
renderButtonTag(o) {
|
|
51
35
|
return v`
|
|
52
36
|
<button
|
|
53
37
|
type="button"
|
|
54
38
|
?disabled="${this.disabled}"
|
|
55
|
-
class="${
|
|
39
|
+
class="${u(o)}"
|
|
56
40
|
data-test-id="pie-tag">
|
|
57
41
|
${this.renderIconSlot()}
|
|
58
42
|
<slot></slot>
|
|
59
43
|
</button>`;
|
|
60
44
|
}
|
|
45
|
+
render() {
|
|
46
|
+
const {
|
|
47
|
+
disabled: o,
|
|
48
|
+
isInteractive: c,
|
|
49
|
+
isStrong: b,
|
|
50
|
+
size: a,
|
|
51
|
+
variant: l,
|
|
52
|
+
iconPlacement: d
|
|
53
|
+
} = this, h = {
|
|
54
|
+
"c-tag": !0,
|
|
55
|
+
[`c-tag--${a}`]: !0,
|
|
56
|
+
[`c-tag--${l}`]: !0,
|
|
57
|
+
"c-tag--disabled": o,
|
|
58
|
+
"c-tag--strong": b,
|
|
59
|
+
"c-tag--interactive": c,
|
|
60
|
+
[`c-tag--icon-placement--${d}`]: c && d
|
|
61
|
+
};
|
|
62
|
+
return c ? this.renderButtonTag(h) : this.renderTag(h);
|
|
63
|
+
}
|
|
61
64
|
};
|
|
62
|
-
|
|
63
|
-
let
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
],
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
],
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
],
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
],
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
],
|
|
81
|
-
|
|
65
|
+
s.styles = y(k);
|
|
66
|
+
let t = s;
|
|
67
|
+
i([
|
|
68
|
+
e({ type: String }),
|
|
69
|
+
g(n, x, r.variant)
|
|
70
|
+
], t.prototype, "variant");
|
|
71
|
+
i([
|
|
72
|
+
e({ type: String }),
|
|
73
|
+
g(n, z, r.size)
|
|
74
|
+
], t.prototype, "size");
|
|
75
|
+
i([
|
|
76
|
+
e({ type: Boolean })
|
|
77
|
+
], t.prototype, "isStrong");
|
|
78
|
+
i([
|
|
79
|
+
e({ type: Boolean })
|
|
80
|
+
], t.prototype, "disabled");
|
|
81
|
+
i([
|
|
82
|
+
e({ type: Boolean })
|
|
83
|
+
], t.prototype, "isInteractive");
|
|
84
|
+
i([
|
|
85
|
+
e({ type: String }),
|
|
86
|
+
g(n, S, r.iconPlacement)
|
|
87
|
+
], t.prototype, "iconPlacement");
|
|
88
|
+
w(n, t);
|
|
82
89
|
export {
|
|
83
|
-
|
|
84
|
-
|
|
90
|
+
t as PieTag,
|
|
91
|
+
r as defaultProps,
|
|
92
|
+
S as iconPlacements,
|
|
85
93
|
z as sizes,
|
|
86
|
-
|
|
94
|
+
x as variants
|
|
87
95
|
};
|
package/dist/react.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export declare type DefaultProps = ComponentDefaultProps<TagProps>;
|
|
|
8
8
|
|
|
9
9
|
export declare const defaultProps: DefaultProps;
|
|
10
10
|
|
|
11
|
+
export declare const iconPlacements: readonly ["leading", "trailing"];
|
|
12
|
+
|
|
11
13
|
export declare const PieTag: React_2.ForwardRefExoticComponent<TagProps & React_2.RefAttributes<PieTag_2> & ReactBaseType>;
|
|
12
14
|
|
|
13
15
|
/**
|
|
@@ -16,15 +18,16 @@ export declare const PieTag: React_2.ForwardRefExoticComponent<TagProps & React_
|
|
|
16
18
|
* @slot - Default slot
|
|
17
19
|
*/
|
|
18
20
|
declare class PieTag_2 extends LitElement implements TagProps {
|
|
19
|
-
variant: "neutral-alternative" | "neutral" | "outline" | "ghost" | "
|
|
21
|
+
variant: "neutral-alternative" | "neutral" | "outline" | "ghost" | "information" | "success" | "error" | "brand-02" | "brand-03" | "brand-04" | "brand-05" | "brand-06";
|
|
20
22
|
size: "small" | "large";
|
|
21
23
|
isStrong: boolean;
|
|
22
24
|
disabled: boolean;
|
|
23
25
|
isInteractive: boolean;
|
|
24
|
-
|
|
26
|
+
iconPlacement: "leading" | "trailing";
|
|
25
27
|
private renderIconSlot;
|
|
26
28
|
private renderTag;
|
|
27
29
|
private renderButtonTag;
|
|
30
|
+
render(): TemplateResult<1>;
|
|
28
31
|
static styles: CSSResult;
|
|
29
32
|
}
|
|
30
33
|
|
|
@@ -38,7 +41,7 @@ export declare interface TagProps {
|
|
|
38
41
|
*/
|
|
39
42
|
variant?: typeof variants[number];
|
|
40
43
|
/**
|
|
41
|
-
* When true, the "
|
|
44
|
+
* When true, the "information", "success", "error", "brand-05", and "neutral" variants change their styles and become bolder
|
|
42
45
|
*/
|
|
43
46
|
isStrong?: boolean;
|
|
44
47
|
/**
|
|
@@ -54,8 +57,12 @@ export declare interface TagProps {
|
|
|
54
57
|
* What size the tag should be.
|
|
55
58
|
*/
|
|
56
59
|
size?: typeof sizes[number];
|
|
60
|
+
/**
|
|
61
|
+
* The placement of the icon slot such as leading (default) or trailing. Available only if `isInteractive` is set to true.
|
|
62
|
+
*/
|
|
63
|
+
iconPlacement?: typeof iconPlacements[number];
|
|
57
64
|
}
|
|
58
65
|
|
|
59
|
-
export declare const variants: readonly ["neutral-alternative", "neutral", "outline", "ghost", "
|
|
66
|
+
export declare const variants: readonly ["neutral-alternative", "neutral", "outline", "ghost", "information", "success", "error", "brand-02", "brand-03", "brand-04", "brand-05", "brand-06"];
|
|
60
67
|
|
|
61
68
|
export { }
|
package/dist/react.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as e from "react";
|
|
2
2
|
import { createComponent as a } from "@lit/react";
|
|
3
3
|
import { PieTag as t } from "./index.js";
|
|
4
|
-
import { defaultProps as
|
|
4
|
+
import { defaultProps as p, iconPlacements as c, sizes as g, variants as P } from "./index.js";
|
|
5
5
|
const o = a({
|
|
6
6
|
displayName: "PieTag",
|
|
7
7
|
elementClass: t,
|
|
@@ -11,7 +11,8 @@ const o = a({
|
|
|
11
11
|
}), s = o;
|
|
12
12
|
export {
|
|
13
13
|
s as PieTag,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
p as defaultProps,
|
|
15
|
+
c as iconPlacements,
|
|
16
|
+
g as sizes,
|
|
17
|
+
P as variants
|
|
17
18
|
};
|
package/package.json
CHANGED
package/src/defs.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
|
|
2
2
|
|
|
3
|
-
export const variants = ['neutral-alternative', 'neutral', 'outline', 'ghost', '
|
|
3
|
+
export const variants = ['neutral-alternative', 'neutral', 'outline', 'ghost', 'information', 'success', 'error', 'brand-02', 'brand-03', 'brand-04', 'brand-05', 'brand-06'] as const;
|
|
4
4
|
export const sizes = ['small', 'large'] as const;
|
|
5
|
+
export const iconPlacements = ['leading', 'trailing'] as const;
|
|
5
6
|
|
|
6
7
|
export interface TagProps {
|
|
7
8
|
/**
|
|
@@ -10,7 +11,7 @@ export interface TagProps {
|
|
|
10
11
|
variant?: typeof variants[number];
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
|
-
* When true, the "
|
|
14
|
+
* When true, the "information", "success", "error", "brand-05", and "neutral" variants change their styles and become bolder
|
|
14
15
|
*/
|
|
15
16
|
isStrong?: boolean;
|
|
16
17
|
|
|
@@ -29,6 +30,11 @@ export interface TagProps {
|
|
|
29
30
|
* What size the tag should be.
|
|
30
31
|
*/
|
|
31
32
|
size?: typeof sizes[number];
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The placement of the icon slot such as leading (default) or trailing. Available only if `isInteractive` is set to true.
|
|
36
|
+
*/
|
|
37
|
+
iconPlacement?: typeof iconPlacements[number];
|
|
32
38
|
}
|
|
33
39
|
|
|
34
40
|
export type DefaultProps = ComponentDefaultProps<TagProps>;
|
|
@@ -39,4 +45,5 @@ export const defaultProps: DefaultProps = {
|
|
|
39
45
|
isInteractive: false,
|
|
40
46
|
disabled: false,
|
|
41
47
|
size: 'large',
|
|
48
|
+
iconPlacement: 'leading',
|
|
42
49
|
};
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,11 @@ import { classMap, type ClassInfo } from 'lit/directives/class-map.js';
|
|
|
6
6
|
import { validPropertyValues, defineCustomElement } from '@justeattakeaway/pie-webc-core';
|
|
7
7
|
import styles from './tag.scss?inline';
|
|
8
8
|
import {
|
|
9
|
-
|
|
9
|
+
variants,
|
|
10
|
+
sizes,
|
|
11
|
+
defaultProps,
|
|
12
|
+
iconPlacements,
|
|
13
|
+
type TagProps,
|
|
10
14
|
} from './defs';
|
|
11
15
|
|
|
12
16
|
// Valid values available to consumers
|
|
@@ -37,30 +41,9 @@ export class PieTag extends LitElement implements TagProps {
|
|
|
37
41
|
@property({ type: Boolean })
|
|
38
42
|
public isInteractive = defaultProps.isInteractive;
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
isInteractive,
|
|
44
|
-
isStrong,
|
|
45
|
-
size,
|
|
46
|
-
variant,
|
|
47
|
-
} = this;
|
|
48
|
-
|
|
49
|
-
const classes = {
|
|
50
|
-
'c-tag': true,
|
|
51
|
-
[`c-tag--${size}`]: true,
|
|
52
|
-
[`c-tag--${variant}`]: true,
|
|
53
|
-
'c-tag--disabled': disabled,
|
|
54
|
-
'c-tag--strong': isStrong,
|
|
55
|
-
'c-tag--interactive': isInteractive,
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
if (isInteractive) {
|
|
59
|
-
return this.renderButtonTag(classes);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return this.renderTag(classes);
|
|
63
|
-
}
|
|
44
|
+
@property({ type: String })
|
|
45
|
+
@validPropertyValues(componentSelector, iconPlacements, defaultProps.iconPlacement)
|
|
46
|
+
public iconPlacement = defaultProps.iconPlacement;
|
|
64
47
|
|
|
65
48
|
private renderIconSlot () {
|
|
66
49
|
if (this.size !== 'large') return nothing;
|
|
@@ -90,6 +73,33 @@ export class PieTag extends LitElement implements TagProps {
|
|
|
90
73
|
</button>`;
|
|
91
74
|
}
|
|
92
75
|
|
|
76
|
+
render () {
|
|
77
|
+
const {
|
|
78
|
+
disabled,
|
|
79
|
+
isInteractive,
|
|
80
|
+
isStrong,
|
|
81
|
+
size,
|
|
82
|
+
variant,
|
|
83
|
+
iconPlacement,
|
|
84
|
+
} = this;
|
|
85
|
+
|
|
86
|
+
const classes = {
|
|
87
|
+
'c-tag': true,
|
|
88
|
+
[`c-tag--${size}`]: true,
|
|
89
|
+
[`c-tag--${variant}`]: true,
|
|
90
|
+
'c-tag--disabled': disabled,
|
|
91
|
+
'c-tag--strong': isStrong,
|
|
92
|
+
'c-tag--interactive': isInteractive,
|
|
93
|
+
[`c-tag--icon-placement--${iconPlacement}`]: isInteractive && iconPlacement,
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
if (isInteractive) {
|
|
97
|
+
return this.renderButtonTag(classes);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return this.renderTag(classes);
|
|
101
|
+
}
|
|
102
|
+
|
|
93
103
|
// Renders a `CSSResult` generated from SCSS by Vite
|
|
94
104
|
static styles = unsafeCSS(styles);
|
|
95
105
|
}
|
package/src/tag.scss
CHANGED
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
--icon-size-override: 16px;
|
|
56
56
|
|
|
57
57
|
display: inline-flex;
|
|
58
|
+
flex-direction: row;
|
|
58
59
|
vertical-align: middle;
|
|
59
60
|
align-items: center;
|
|
60
61
|
justify-content: center;
|
|
@@ -80,6 +81,14 @@
|
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
|
|
84
|
+
&.c-tag--icon-placement--leading {
|
|
85
|
+
// same as default styles
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
&.c-tag--icon-placement--trailing {
|
|
89
|
+
flex-direction: row-reverse;
|
|
90
|
+
}
|
|
91
|
+
|
|
83
92
|
// Size
|
|
84
93
|
&.c-tag--small {
|
|
85
94
|
--tag-padding-block: 0;
|
|
@@ -104,7 +113,7 @@
|
|
|
104
113
|
}
|
|
105
114
|
}
|
|
106
115
|
|
|
107
|
-
&.c-tag--
|
|
116
|
+
&.c-tag--information {
|
|
108
117
|
--tag-bg-color: var(--dt-color-support-info-02);
|
|
109
118
|
--tag-color: var(--dt-color-content-default);
|
|
110
119
|
@include tag-interactive-states('--dt-color-support-info-02');
|
|
@@ -116,7 +125,7 @@
|
|
|
116
125
|
}
|
|
117
126
|
}
|
|
118
127
|
|
|
119
|
-
&.c-tag--
|
|
128
|
+
&.c-tag--success {
|
|
120
129
|
--tag-bg-color: var(--dt-color-support-positive-02);
|
|
121
130
|
--tag-color: var(--dt-color-content-default);
|
|
122
131
|
@include tag-interactive-states('--dt-color-support-positive-02');
|
|
@@ -128,19 +137,7 @@
|
|
|
128
137
|
}
|
|
129
138
|
}
|
|
130
139
|
|
|
131
|
-
&.c-tag--
|
|
132
|
-
--tag-bg-color: var(--dt-color-support-warning-02);
|
|
133
|
-
--tag-color: var(--dt-color-content-default);
|
|
134
|
-
@include tag-interactive-states('--dt-color-support-warning-02');
|
|
135
|
-
|
|
136
|
-
&.c-tag--strong {
|
|
137
|
-
--tag-bg-color: var(--dt-color-support-warning);
|
|
138
|
-
--tag-color: var(--dt-color-content-dark);
|
|
139
|
-
@include tag-interactive-states('--dt-color-support-warning');
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
&.c-tag--red {
|
|
140
|
+
&.c-tag--error {
|
|
144
141
|
--tag-bg-color: var(--dt-color-support-error-02);
|
|
145
142
|
--tag-color: var(--dt-color-content-default);
|
|
146
143
|
@include tag-interactive-states('--dt-color-support-error-02');
|
|
@@ -152,6 +149,12 @@
|
|
|
152
149
|
}
|
|
153
150
|
}
|
|
154
151
|
|
|
152
|
+
&.c-tag--brand-02 {
|
|
153
|
+
--tag-bg-color: var(--dt-color-support-brand-02);
|
|
154
|
+
--tag-color: var(--dt-color-content-default);
|
|
155
|
+
@include tag-interactive-states('--dt-color-support-brand-02');
|
|
156
|
+
}
|
|
157
|
+
|
|
155
158
|
&.c-tag--brand-03 {
|
|
156
159
|
--tag-bg-color: var(--dt-color-support-brand-03);
|
|
157
160
|
--tag-color: var(--dt-color-content-default);
|
|
@@ -164,18 +167,24 @@
|
|
|
164
167
|
@include tag-interactive-states('--dt-color-support-brand-04');
|
|
165
168
|
}
|
|
166
169
|
|
|
170
|
+
&.c-tag--brand-05 {
|
|
171
|
+
--tag-bg-color: var(--dt-color-support-warning-02);
|
|
172
|
+
--tag-color: var(--dt-color-content-default);
|
|
173
|
+
@include tag-interactive-states('--dt-color-support-warning-02');
|
|
174
|
+
|
|
175
|
+
&.c-tag--strong {
|
|
176
|
+
--tag-bg-color: var(--dt-color-support-warning);
|
|
177
|
+
--tag-color: var(--dt-color-content-dark);
|
|
178
|
+
@include tag-interactive-states('--dt-color-support-warning');
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
167
182
|
&.c-tag--brand-06 {
|
|
168
183
|
--tag-bg-color: var(--dt-color-support-brand-06);
|
|
169
184
|
--tag-color: var(--dt-color-content-light);
|
|
170
185
|
@include tag-interactive-states('--dt-color-support-brand-06', 'inverse');
|
|
171
186
|
}
|
|
172
187
|
|
|
173
|
-
&.c-tag--brand {
|
|
174
|
-
--tag-bg-color: var(--dt-color-support-brand-02);
|
|
175
|
-
--tag-color: var(--dt-color-content-default);
|
|
176
|
-
@include tag-interactive-states('--dt-color-support-brand-02');
|
|
177
|
-
}
|
|
178
|
-
|
|
179
188
|
&.c-tag--neutral-alternative {
|
|
180
189
|
--tag-bg-color: var(--dt-color-container-default);
|
|
181
190
|
--tag-color: var(--dt-color-content-default);
|