@pine-ds/core 0.0.2-alpha.0 → 0.0.2-alpha.1
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/components/custom-elements.d.ts +2 -0
- package/components/index.d.ts +33 -0
- package/components/index.js +3 -0
- package/components/index.js.map +1 -0
- package/components/package.json +9 -0
- package/components/pds-avatar.d.ts +11 -0
- package/components/pds-avatar.js +98 -0
- package/components/pds-avatar.js.map +1 -0
- package/components/pds-button.d.ts +11 -0
- package/components/pds-button.js +8 -0
- package/components/pds-button.js.map +1 -0
- package/components/pds-button2.js +82 -0
- package/components/pds-button2.js.map +1 -0
- package/components/pds-checkbox.d.ts +11 -0
- package/components/pds-checkbox.js +83 -0
- package/components/pds-checkbox.js.map +1 -0
- package/components/pds-chip.d.ts +11 -0
- package/components/pds-chip.js +76 -0
- package/components/pds-chip.js.map +1 -0
- package/components/pds-copytext.d.ts +11 -0
- package/components/pds-copytext.js +100 -0
- package/components/pds-copytext.js.map +1 -0
- package/components/pds-divider.d.ts +11 -0
- package/components/pds-divider.js +53 -0
- package/components/pds-divider.js.map +1 -0
- package/components/pds-icon.js +8 -0
- package/components/pds-icon.js.map +1 -0
- package/components/pds-icon2.js +299 -0
- package/components/pds-icon2.js.map +1 -0
- package/components/pds-image.d.ts +11 -0
- package/components/pds-image.js +54 -0
- package/components/pds-image.js.map +1 -0
- package/components/pds-input.d.ts +11 -0
- package/components/pds-input.js +71 -0
- package/components/pds-input.js.map +1 -0
- package/components/pds-label.js +39 -0
- package/components/pds-label.js.map +1 -0
- package/components/pds-link.d.ts +11 -0
- package/components/pds-link.js +63 -0
- package/components/pds-link.js.map +1 -0
- package/components/pds-progress.d.ts +11 -0
- package/components/pds-progress.js +48 -0
- package/components/pds-progress.js.map +1 -0
- package/components/pds-radio.d.ts +11 -0
- package/components/pds-radio.js +77 -0
- package/components/pds-radio.js.map +1 -0
- package/components/pds-sortable-item.d.ts +11 -0
- package/components/pds-sortable-item.js +47 -0
- package/components/pds-sortable-item.js.map +1 -0
- package/components/pds-sortable.d.ts +11 -0
- package/components/pds-sortable.js +2724 -0
- package/components/pds-sortable.js.map +1 -0
- package/components/pds-switch.d.ts +11 -0
- package/components/pds-switch.js +81 -0
- package/components/pds-switch.js.map +1 -0
- package/components/pds-tab.d.ts +11 -0
- package/components/pds-tab.js +52 -0
- package/components/pds-tab.js.map +1 -0
- package/components/pds-tabpanel.d.ts +11 -0
- package/components/pds-tabpanel.js +44 -0
- package/components/pds-tabpanel.js.map +1 -0
- package/components/pds-tabs.d.ts +11 -0
- package/components/pds-tabs.js +118 -0
- package/components/pds-tabs.js.map +1 -0
- package/components/pds-textarea.d.ts +11 -0
- package/components/pds-textarea.js +81 -0
- package/components/pds-textarea.js.map +1 -0
- package/components/pds-tooltip.d.ts +11 -0
- package/components/pds-tooltip.js +177 -0
- package/components/pds-tooltip.js.map +1 -0
- package/dist/docs.json +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the base path to where the assets can be found. Use "setAssetPath(path)"
|
|
3
|
+
* if the path needs to be customized.
|
|
4
|
+
*/
|
|
5
|
+
export declare const getAssetPath: (path: string) => string;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Used to manually set the base path where assets can be found.
|
|
9
|
+
* If the script is used as "module", it's recommended to use "import.meta.url",
|
|
10
|
+
* such as "setAssetPath(import.meta.url)". Other options include
|
|
11
|
+
* "setAssetPath(document.currentScript.src)", or using a bundler's replace plugin to
|
|
12
|
+
* dynamically set the path at build time, such as "setAssetPath(process.env.ASSET_PATH)".
|
|
13
|
+
* But do note that this configuration depends on how your script is bundled, or lack of
|
|
14
|
+
* bundling, and where your assets can be loaded from. Additionally custom bundling
|
|
15
|
+
* will have to ensure the static assets are copied to its build directory.
|
|
16
|
+
*/
|
|
17
|
+
export declare const setAssetPath: (path: string) => void;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Used to specify a nonce value that corresponds with an application's CSP.
|
|
21
|
+
* When set, the nonce will be added to all dynamically created script and style tags at runtime.
|
|
22
|
+
* Alternatively, the nonce value can be set on a meta tag in the DOM head
|
|
23
|
+
* (<meta name="csp-nonce" content="{ nonce value here }" />) which
|
|
24
|
+
* will result in the same behavior.
|
|
25
|
+
*/
|
|
26
|
+
export declare const setNonce: (nonce: string) => void
|
|
27
|
+
|
|
28
|
+
export interface SetPlatformOptions {
|
|
29
|
+
raf?: (c: FrameRequestCallback) => number;
|
|
30
|
+
ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
|
|
31
|
+
rel?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
|
|
32
|
+
}
|
|
33
|
+
export declare const setPlatformOptions: (opts: SetPlatformOptions) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"index.js","mappings":"","names":[],"sources":[],"sourcesContent":[],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../dist/types/components";
|
|
2
|
+
|
|
3
|
+
interface PdsAvatar extends Components.PdsAvatar, HTMLElement {}
|
|
4
|
+
export const PdsAvatar: {
|
|
5
|
+
prototype: PdsAvatar;
|
|
6
|
+
new (): PdsAvatar;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { d as defineCustomElement$2 } from './pds-icon2.js';
|
|
3
|
+
|
|
4
|
+
const pdsAvatarCss = ":host{display:inline-block}div{--background-color:var(--pine-color-primary-100);--badge-background-color:var(--pine-color-base-white);--border:var(--pine-border-default);--radius-round:50%;-ms-flex-align:center;align-items:center;background-color:var(--background-color);border-radius:var(--radius-round);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-pack:center;justify-content:center;position:relative}:host(.pds-avatar--admin) div{border-radius:12px}:host(.pds-avatar--has-image) div{background:transparent}@supports selector(:has){div:has(img){background-color:transparent}}.pds-avatar__button{--radius-round:50%;--box-shadow-focus:0 0 0 4px var(--pine-color-primary-200);-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--radius-round);cursor:pointer;display:-ms-flexbox;display:flex;padding:0}.pds-avatar__button:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-avatar__badge{background-color:var(--badge-background-color);border:var(--border);border-color:var(--badge-background-color);border-radius:var(--radius-round);bottom:0;position:absolute;right:0}img{border-radius:var(--radius-round);width:100%}";
|
|
5
|
+
|
|
6
|
+
const PdsAvatar$1 = /*@__PURE__*/ proxyCustomElement(class PdsAvatar extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.renderAvatar = () => {
|
|
12
|
+
const style = {
|
|
13
|
+
height: this.avatarSize(),
|
|
14
|
+
width: this.avatarSize(),
|
|
15
|
+
};
|
|
16
|
+
return (this.dropdown
|
|
17
|
+
?
|
|
18
|
+
h("button", { class: "pds-avatar__button", type: "button" }, h("div", { style: style }, this.renderIconOrImage(), this.renderBadge()))
|
|
19
|
+
:
|
|
20
|
+
h("div", { style: style }, this.renderIconOrImage(), this.renderBadge()));
|
|
21
|
+
};
|
|
22
|
+
this.renderBadge = () => (this.badge
|
|
23
|
+
// Percentage is average size of icon in relation to total avatar size
|
|
24
|
+
// of all preset sizes found in Figma.
|
|
25
|
+
// Used to allow icons to scale to container size
|
|
26
|
+
&& h("pds-icon", { class: "pds-avatar__badge", name: "check-circle-filled", size: "33.53%" }));
|
|
27
|
+
this.renderIconOrImage = () => (this.image
|
|
28
|
+
? h("img", { alt: this.alt, src: this.image })
|
|
29
|
+
// Percentage is average size of icon in relation to total avatar size
|
|
30
|
+
// of all preset sizes found in Figma.
|
|
31
|
+
// Used to allow icons to scale to container size
|
|
32
|
+
: h("pds-icon", { name: "user-filled", size: "33.53%" }));
|
|
33
|
+
this.classNames = () => ({
|
|
34
|
+
'pds-avatar': true,
|
|
35
|
+
[`pds-avatar--has-image`]: this.image !== '' && this.image !== null,
|
|
36
|
+
[`pds-avatar--${this.variant}`]: this.variant === 'admin'
|
|
37
|
+
});
|
|
38
|
+
this.alt = null;
|
|
39
|
+
this.badge = false;
|
|
40
|
+
this.componentId = undefined;
|
|
41
|
+
this.dropdown = false;
|
|
42
|
+
this.image = null;
|
|
43
|
+
this.size = 'lg';
|
|
44
|
+
this.variant = 'customer';
|
|
45
|
+
}
|
|
46
|
+
avatarSize() {
|
|
47
|
+
const sizes = {
|
|
48
|
+
xs: '24px',
|
|
49
|
+
sm: '32px',
|
|
50
|
+
md: '40px',
|
|
51
|
+
lg: '56px',
|
|
52
|
+
xl: '64px',
|
|
53
|
+
};
|
|
54
|
+
if (sizes[this.size]) {
|
|
55
|
+
return sizes[this.size];
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return this.size;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
render() {
|
|
62
|
+
return (h(Host, { id: this.componentId, class: Object.assign({}, this.classNames()) }, this.renderAvatar()));
|
|
63
|
+
}
|
|
64
|
+
static get style() { return pdsAvatarCss; }
|
|
65
|
+
}, [1, "pds-avatar", {
|
|
66
|
+
"alt": [1],
|
|
67
|
+
"badge": [4],
|
|
68
|
+
"componentId": [1, "component-id"],
|
|
69
|
+
"dropdown": [4],
|
|
70
|
+
"image": [1],
|
|
71
|
+
"size": [513],
|
|
72
|
+
"variant": [513]
|
|
73
|
+
}]);
|
|
74
|
+
function defineCustomElement$1() {
|
|
75
|
+
if (typeof customElements === "undefined") {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const components = ["pds-avatar", "pds-icon"];
|
|
79
|
+
components.forEach(tagName => { switch (tagName) {
|
|
80
|
+
case "pds-avatar":
|
|
81
|
+
if (!customElements.get(tagName)) {
|
|
82
|
+
customElements.define(tagName, PdsAvatar$1);
|
|
83
|
+
}
|
|
84
|
+
break;
|
|
85
|
+
case "pds-icon":
|
|
86
|
+
if (!customElements.get(tagName)) {
|
|
87
|
+
defineCustomElement$2();
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
} });
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const PdsAvatar = PdsAvatar$1;
|
|
94
|
+
const defineCustomElement = defineCustomElement$1;
|
|
95
|
+
|
|
96
|
+
export { PdsAvatar, defineCustomElement };
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=pds-avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-avatar.js","mappings":";;;AAAA,MAAM,YAAY,GAAG,uwCAAuwC;;MCO/wCA,WAAS;;;;;QAiEZ,iBAAY,GAAG;YACrB,MAAM,KAAK,GAAG;gBACZ,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE;gBACzB,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;aACzB,CAAC;YACF,QACE,IAAI,CAAC,QAAQ;;oBAEX,cAAQ,KAAK,EAAC,oBAAoB,EAAC,IAAI,EAAC,QAAQ,IAC9C,WAAK,KAAK,EAAE,KAAK,IACd,IAAI,CAAC,iBAAiB,EAAE,EACxB,IAAI,CAAC,WAAW,EAAE,CACf,CACC;;oBAET,WAAK,KAAK,EAAE,KAAK,IACd,IAAI,CAAC,iBAAiB,EAAE,EACxB,IAAI,CAAC,WAAW,EAAE,CACf,EACT;SACF,CAAC;QAEM,gBAAW,GAAG,OACpB,IAAI,CAAC,KAAK;;;;eAIL,gBAAU,KAAK,EAAC,mBAAmB,EAAC,IAAI,EAAC,qBAAqB,EAAC,IAAI,EAAC,QAAQ,GAAY,CAC9F,CAAC;QAEM,sBAAiB,GAAG,OAC1B,IAAI,CAAC,KAAK;cACN,WAAK,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,GAAI;;;;cAIvC,gBAAU,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,QAAQ,GAAY,CAC3D,CAAC;QAEM,eAAU,GAAG,OACnB;YACE,YAAY,EAAE,IAAI;YAClB,CAAC,uBAAuB,GAAG,IAAI,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YACnE,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,KAAK,OAAO;SAC1D,CACF,CAAC;mBAxG4B,IAAI;qBAMjB,KAAK;;wBAWF,KAAK;qBAMO,IAAI;oBAYzB,IAAI;uBAM2C,UAAU;;IAE5D,UAAU;QAChB,MAAM,KAAK,GAA2B;YACpC,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;YACV,EAAE,EAAE,MAAM;SACX,CAAA;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;aAAM;YACL,OAAO,IAAI,CAAC,IAAI,CAAA;SACjB;KACF;IAiDD,MAAM;QAEJ,QACE,EAAC,IAAI,IACH,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,KAAK,oBAAM,IAAI,CAAC,UAAU,EAAE,KAE3B,IAAI,CAAC,YAAY,EAAE,CACf,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["PdsAvatar"],"sources":["src/components/pds-avatar/pds-avatar.scss?tag=pds-avatar&encapsulation=shadow","src/components/pds-avatar/pds-avatar.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\ndiv {\n // These custom props are not reachable\n --background-color: var(--pine-color-primary-100);\n --badge-background-color: var(--pine-color-base-white);\n --border: var(--pine-border-default);\n --radius-round: 50%;\n\n align-items: center;\n background-color: var(--background-color);\n border-radius: var(--radius-round);\n display: inline-flex;\n justify-content: center;\n position: relative;\n\n :host(.pds-avatar--admin) & {\n border-radius: 12px;\n }\n\n // Remove when FF has support for :has\n :host(.pds-avatar--has-image) & {\n background: transparent\n }\n\n @supports selector(:has) {\n &:has(img) {\n background-color: transparent\n }\n }\n}\n\n.pds-avatar__button {\n --radius-round: 50%;\n --box-shadow-focus: 0 0 0 4px var(--pine-color-primary-200);\n\n align-items: center;\n appearance: none;\n background: transparent;\n border: 0;\n border-radius: var(--radius-round);\n cursor: pointer;\n display: flex;\n padding: 0;\n\n &:focus-visible {\n // outline: var(--pine-border-focus); Border radius for outline does not work in Safari\n box-shadow: var(--box-shadow-focus); // Remove when outline radius is supported in Safari\n outline: none;\n }\n}\n\n.pds-avatar__badge {\n background-color: var(--badge-background-color);\n border: var(--border);\n border-color: var(--badge-background-color);\n border-radius: var(--radius-round);\n bottom: 0;\n position: absolute;\n right: 0;\n}\n\nimg {\n border-radius: var(--radius-round);\n width: 100%;\n}\n","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'pds-avatar',\n styleUrl: 'pds-avatar.scss',\n shadow: true,\n})\nexport class PdsAvatar {\n\n /**\n * The alt for a custom user image.\n * @defaultValue null\n */\n @Prop() alt?: string | null = null;\n\n /**\n * Determines whether the badge is visible or not.\n * @defaultValue false\n */\n @Prop() badge? = false;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Determines whether the avatar functions as a dropdown trigger.\n * @defaultValue false\n */\n @Prop() dropdown? = false;\n\n /**\n * The src for a custom user image.\n * @defaultValue null\n */\n @Prop() image?: string | null = null;\n\n /**\n * Size of the avatar. Value can be preset or custom.\n * @defaultValue lg\n */\n @Prop({ reflect: true }) size?:\n | 'xl' // 64px\n | 'lg' // 56px\n | 'md' // 40px\n | 'sm' // 32px\n | 'xs' // 24px\n | string = 'lg';\n\n /**\n * Determines the variant of avatar. Changes appearance accordingly.\n * @defaultValue customer\n */\n @Prop({ reflect: true }) variant?: 'customer' | 'admin' = 'customer';\n\n private avatarSize() {\n const sizes: { [key: string]: any } = {\n xs: '24px',\n sm: '32px',\n md: '40px',\n lg: '56px',\n xl: '64px',\n }\n\n if (sizes[this.size]) {\n return sizes[this.size];\n } else {\n return this.size\n }\n }\n\n private renderAvatar = () => {\n const style = {\n height: this.avatarSize(),\n width: this.avatarSize(),\n };\n return (\n this.dropdown\n ?\n <button class=\"pds-avatar__button\" type=\"button\">\n <div style={style}>\n {this.renderIconOrImage()}\n {this.renderBadge()}\n </div>\n </button>\n :\n <div style={style}>\n {this.renderIconOrImage()}\n {this.renderBadge()}\n </div>\n )\n };\n\n private renderBadge = () => (\n this.badge\n // Percentage is average size of icon in relation to total avatar size\n // of all preset sizes found in Figma.\n // Used to allow icons to scale to container size\n && <pds-icon class=\"pds-avatar__badge\" name=\"check-circle-filled\" size=\"33.53%\"></pds-icon>\n );\n\n private renderIconOrImage = () => (\n this.image\n ? <img alt={this.alt} src={this.image} />\n // Percentage is average size of icon in relation to total avatar size\n // of all preset sizes found in Figma.\n // Used to allow icons to scale to container size\n : <pds-icon name=\"user-filled\" size=\"33.53%\"></pds-icon>\n );\n\n private classNames = () => (\n {\n 'pds-avatar': true,\n [`pds-avatar--has-image`]: this.image !== '' && this.image !== null, // Remove when FF supports :has selector\n [`pds-avatar--${this.variant}`]: this.variant === 'admin'\n }\n );\n\n render() {\n\n return (\n <Host\n id={this.componentId}\n class={{...this.classNames()}}\n >\n {this.renderAvatar()}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../dist/types/components";
|
|
2
|
+
|
|
3
|
+
interface PdsButton extends Components.PdsButton, HTMLElement {}
|
|
4
|
+
export const PdsButton: {
|
|
5
|
+
prototype: PdsButton;
|
|
6
|
+
new (): PdsButton;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-button.js","mappings":";;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { d as defineCustomElement$1 } from './pds-icon2.js';
|
|
3
|
+
|
|
4
|
+
const hasShadowDom = (el) => {
|
|
5
|
+
return !!el.shadowRoot && !!el.attachShadow;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
const pdsButtonCss = ":host{--border-color:transparent;--border-color-hover:transparent;--border-color-focus:transparent;--border-color-disabled:transparent;--background-color-primary:var(--pine-color-neutral-charcoal-400);--background-color-hover-primary:var(--pine-color-neutral-charcoal-500);--background-color-disabled-primary:var(--pine-color-neutral-grey-300);--color-primary:var(--pine-color-base-white);--color-disabled-primary:var(--pine-color-neutral-charcoal-100);--outline-color-primary:var(--pine-color-primary-200);--border-color-secondary:var(--pine-color-neutral-grey-400);--border-color-hover-secondary:var(--pine-color-neutral-grey-500);--border-color-focus-secondary:var(--pine-color-neutral-grey-300);--border-color-disabled-secondary:var(--pine-color-neutral-grey-300);--color-secondary:var(--pine-color-neutral-charcoal-400);--color-disabled-secondary:var(--pine-color-neutral-charcoal-100);--outline-color-secondary:var(--pine-color-primary-200);--background-color-accent:var(--pine-color-primary-300);--background-color-hover-accent:var(--pine-color-primary-400);--background-color-disabled-accent:var(--pine-color-primary-100);--color-accent:var(--pine-color-base-white);--color-disabled-accent:var(--pine-color-primary-200);--outline-color-accent:var(--pine-color-primary-200);--background-color-destructive:var(--pine-color-red-300);--background-color-hover-destructive:var(--pine-color-red-400);--background-color-disabled-destructive:var(--pine-color-red-100);--color-destructive:var(--pine-color-base-white);--color-disabled-destructive:var(--pine-color-red-200);--outline-color-destructive:var(--pine-color-red-200);display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.pds-button{-ms-flex-align:center;align-items:center;background-color:var(--background-color);border:1px solid var(--border-color);border-radius:10px;color:var(--color);display:-ms-flexbox;display:flex;font-family:inherit;font-size:1rem;font-weight:500;min-height:40px;padding:0.5rem 1rem}.pds-button pds-icon{fill:currentColor;-webkit-margin-end:0.5rem;margin-inline-end:0.5rem}.pds-button:hover{background-color:var(--background-color-hover);border-color:var(--border-color-hover)}.pds-button:focus{border-color:var(--border-color-focus);outline:4px solid var(--outline-color)}.pds-button:disabled{background-color:var(--background-color-disabled);border-color:var(--border-color-disabled);color:var(--color-disabled)}.pds-button--primary{--background-color:var(--background-color-primary);--background-color-hover:var(--background-color-hover-primary);--background-color-disabled:var(--background-color-disabled-primary);--color:var(--color-primary);--color-disabled:var(--color-disabled-primary);--outline-color:var(--outline-color-primary)}.pds-button--accent{--background-color:var(--background-color-accent);--background-color-hover:var(--background-color-hover-accent);--background-color-disabled:var(--background-color-disabled-accent);--color:var(--color-accent);--color-disabled:var(--color-disabled-accent);--outline-color:var(--outline-color-accent)}.pds-button--destructive{--background-color:var(--background-color-destructive);--background-color-hover:var(--background-color-hover-destructive);--background-color-disabled:var(--background-color-disabled-destructive);--color:var(--color-destructive);--color-disabled:var(--color-disabled-destructive);--outline-color:var(--outline-color-destructive)}.pds-button--secondary,.pds-button--disclosure{--background-color:transparent;--background-color-hover:transparent;--background-color-disabled:transparent;--border-color-disabled:var(--border-color-disabled-secondary);--border-color-focus:var(--border-color-focus-secondary);--border-color-hover:var(--border-color-hover-secondary);--border-color:var(--border-color-secondary);--color:var(--color-secondary);--color-disabled:var(--color-disabled-secondary);--outline-color:var(--outline-color-secondary)}.pds-button--disclosure pds-icon{-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0.5rem;margin-inline-start:0.5rem}.pds-button--unstyled{--background-color:transparent;--background-color-hover:transparent;--background-color-disabled:transparent;--color:inherit;border:0;margin:0;min-height:auto;padding:0;width:inherit}";
|
|
9
|
+
|
|
10
|
+
const PdsButton = /*@__PURE__*/ proxyCustomElement(class PdsButton extends HTMLElement {
|
|
11
|
+
constructor() {
|
|
12
|
+
super();
|
|
13
|
+
this.__registerHost();
|
|
14
|
+
this.__attachShadow();
|
|
15
|
+
this.handleClick = (ev) => {
|
|
16
|
+
if (this.type != 'button') {
|
|
17
|
+
// If button clicked IS NOT associated with a form
|
|
18
|
+
if (hasShadowDom(this.el)) {
|
|
19
|
+
const form = this.el.closest('form');
|
|
20
|
+
if (form) {
|
|
21
|
+
ev.preventDefault();
|
|
22
|
+
const fakeButton = document.createElement('button');
|
|
23
|
+
fakeButton.type = this.type;
|
|
24
|
+
fakeButton.style.display = 'none';
|
|
25
|
+
form.appendChild(fakeButton);
|
|
26
|
+
fakeButton.click();
|
|
27
|
+
fakeButton.remove();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
this.componentId = undefined;
|
|
33
|
+
this.disabled = false;
|
|
34
|
+
this.icon = null;
|
|
35
|
+
this.name = undefined;
|
|
36
|
+
this.value = undefined;
|
|
37
|
+
this.type = 'button';
|
|
38
|
+
this.variant = 'primary';
|
|
39
|
+
}
|
|
40
|
+
classNames() {
|
|
41
|
+
const classNames = ['pds-button'];
|
|
42
|
+
if (this.variant) {
|
|
43
|
+
classNames.push('pds-button--' + this.variant);
|
|
44
|
+
}
|
|
45
|
+
return classNames.join(' ');
|
|
46
|
+
}
|
|
47
|
+
render() {
|
|
48
|
+
return (h(Host, { "aria-disabled": this.disabled ? 'true' : null, id: this.componentId, onClick: this.handleClick, variant: this.variant }, h("button", { class: this.classNames(), disabled: this.disabled, name: this.name, type: this.type, value: this.value }, this.icon && this.variant !== 'disclosure' && h("pds-icon", { name: this.icon }), h("slot", null), this.variant === 'disclosure' && h("pds-icon", { name: "caret-down" }))));
|
|
49
|
+
}
|
|
50
|
+
get el() { return this; }
|
|
51
|
+
static get style() { return pdsButtonCss; }
|
|
52
|
+
}, [1, "pds-button", {
|
|
53
|
+
"componentId": [1, "component-id"],
|
|
54
|
+
"disabled": [4],
|
|
55
|
+
"icon": [1],
|
|
56
|
+
"name": [1],
|
|
57
|
+
"value": [1],
|
|
58
|
+
"type": [1],
|
|
59
|
+
"variant": [1]
|
|
60
|
+
}]);
|
|
61
|
+
function defineCustomElement() {
|
|
62
|
+
if (typeof customElements === "undefined") {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const components = ["pds-button", "pds-icon"];
|
|
66
|
+
components.forEach(tagName => { switch (tagName) {
|
|
67
|
+
case "pds-button":
|
|
68
|
+
if (!customElements.get(tagName)) {
|
|
69
|
+
customElements.define(tagName, PdsButton);
|
|
70
|
+
}
|
|
71
|
+
break;
|
|
72
|
+
case "pds-icon":
|
|
73
|
+
if (!customElements.get(tagName)) {
|
|
74
|
+
defineCustomElement$1();
|
|
75
|
+
}
|
|
76
|
+
break;
|
|
77
|
+
} });
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export { PdsButton as P, defineCustomElement as d };
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=pds-button2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-button2.js","mappings":";;;AAIO,MAAM,YAAY,GAAG,CAAC,EAAe;IAC1C,OAAO,CAAC,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,CAAE,EAAU,CAAC,YAAY,CAAA;AACtD,CAAC;;ACND,MAAM,YAAY,GAAG,ypIAAypI;;MCQjqI,SAAS;;;;;QAwCZ,gBAAW,GAAG,CAAC,EAAS;YAC9B,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;;gBAEzB,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oBACpC,IAAI,IAAI,EAAE;wBACR,EAAE,CAAC,cAAc,EAAE,CAAA;wBAEnB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;wBACnD,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;wBAC3B,UAAU,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAA;wBACjC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;wBAC5B,UAAU,CAAC,KAAK,EAAE,CAAA;wBAClB,UAAU,CAAC,MAAM,EAAE,CAAA;qBACpB;iBACF;aACF;SACF,CAAA;;wBA7CmB,KAAK;oBAKD,IAAI;;;oBAgBmB,QAAQ;uBAK2C,SAAS;;IAqBnG,UAAU;QAChB,MAAM,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC;QAElC,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,UAAU,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;SAChD;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,MAAM;QACJ,QACE,EAAC,IAAI,qBACY,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,IAAI,EAC5C,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,OAAO,IAErB,cACE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,IAEhB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,gBAAU,IAAI,EAAE,IAAI,CAAC,IAAI,GAAa,EACrF,eAAQ,EACP,IAAI,CAAC,OAAO,KAAK,YAAY,IAAI,gBAAU,IAAI,EAAC,YAAY,GAAY,CAClE,CACJ,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/utils/utils.ts","src/components/pds-button/pds-button.scss?tag=pds-button&encapsulation=shadow","src/components/pds-button/pds-button.tsx"],"sourcesContent":["export function format(first: string, middle: string, last: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\nexport const hasShadowDom = (el: HTMLElement) => {\n return !!el.shadowRoot && !!(el as any).attachShadow\n}\n",":host {\n --border-color: transparent;\n --border-color-hover: transparent;\n --border-color-focus: transparent;\n --border-color-disabled: transparent;\n\n // primary\n --background-color-primary: var(--pine-color-neutral-charcoal-400);\n --background-color-hover-primary: var(--pine-color-neutral-charcoal-500);\n --background-color-disabled-primary: var(--pine-color-neutral-grey-300);\n --color-primary: var(--pine-color-base-white);\n --color-disabled-primary: var(--pine-color-neutral-charcoal-100);\n --outline-color-primary: var(--pine-color-primary-200);\n\n // secondary\n --border-color-secondary: var(--pine-color-neutral-grey-400);\n --border-color-hover-secondary: var(--pine-color-neutral-grey-500);\n --border-color-focus-secondary: var(--pine-color-neutral-grey-300);\n --border-color-disabled-secondary: var(--pine-color-neutral-grey-300);\n --color-secondary: var(--pine-color-neutral-charcoal-400);\n --color-disabled-secondary: var(--pine-color-neutral-charcoal-100);\n --outline-color-secondary: var(--pine-color-primary-200);\n\n // accent\n --background-color-accent: var(--pine-color-primary-300);\n --background-color-hover-accent: var(--pine-color-primary-400);\n --background-color-disabled-accent: var(--pine-color-primary-100);\n --color-accent: var(--pine-color-base-white);\n --color-disabled-accent: var(--pine-color-primary-200);\n --outline-color-accent: var(--pine-color-primary-200);\n\n // destructive\n --background-color-destructive: var(--pine-color-red-300);\n --background-color-hover-destructive: var(--pine-color-red-400);\n --background-color-disabled-destructive: var(--pine-color-red-100);\n --color-destructive: var(--pine-color-base-white);\n --color-disabled-destructive: var(--pine-color-red-200);\n --outline-color-destructive: var(--pine-color-red-200);\n\n display: inline-flex;\n vertical-align: middle;\n}\n\n.pds-button {\n align-items: center;\n background-color: var(--background-color);\n border: 1px solid var(--border-color);\n border-radius: 10px;\n color: var(--color);\n display: flex;\n font-family: inherit;\n font-size: 1rem;\n font-weight: 500;\n min-height: 40px;\n padding: 0.5rem 1rem;\n\n pds-icon {\n fill: currentColor;\n margin-inline-end: 0.5rem;\n }\n\n &:hover {\n background-color: var(--background-color-hover);\n border-color: var(--border-color-hover);\n }\n\n &:focus {\n border-color: var(--border-color-focus);\n outline: 4px solid var(--outline-color);\n }\n\n &:disabled {\n background-color: var(--background-color-disabled);\n border-color: var(--border-color-disabled);\n color: var(--color-disabled);\n }\n}\n\n.pds-button--primary {\n --background-color: var(--background-color-primary);\n --background-color-hover: var(--background-color-hover-primary);\n --background-color-disabled: var(--background-color-disabled-primary);\n --color: var(--color-primary);\n --color-disabled: var(--color-disabled-primary);\n --outline-color: var(--outline-color-primary);\n}\n\n.pds-button--accent {\n --background-color: var(--background-color-accent);\n --background-color-hover: var(--background-color-hover-accent);\n --background-color-disabled: var(--background-color-disabled-accent);\n --color: var(--color-accent);\n --color-disabled: var(--color-disabled-accent);\n --outline-color: var(--outline-color-accent);\n}\n\n.pds-button--destructive {\n --background-color: var(--background-color-destructive);\n --background-color-hover: var(--background-color-hover-destructive);\n --background-color-disabled: var(--background-color-disabled-destructive);\n --color: var(--color-destructive);\n --color-disabled: var(--color-disabled-destructive);\n --outline-color: var(--outline-color-destructive);\n}\n\n.pds-button--secondary,\n.pds-button--disclosure {\n --background-color: transparent;\n --background-color-hover: transparent;\n --background-color-disabled: transparent;\n --border-color-disabled: var(--border-color-disabled-secondary);\n --border-color-focus: var(--border-color-focus-secondary);\n --border-color-hover: var(--border-color-hover-secondary);\n --border-color: var(--border-color-secondary);\n --color: var(--color-secondary);\n --color-disabled: var(--color-disabled-secondary);\n --outline-color: var(--outline-color-secondary);\n}\n\n.pds-button--disclosure {\n pds-icon {\n margin-inline-end: 0;\n margin-inline-start: 0.5rem;\n }\n}\n\n.pds-button--unstyled {\n --background-color: transparent;\n --background-color-hover: transparent;\n --background-color-disabled: transparent;\n --color: inherit;\n border: 0;\n margin: 0;\n min-height: auto;\n padding: 0;\n width: inherit;\n}\n","import { Component, Element, Host, h, Prop } from '@stencil/core';\nimport { hasShadowDom } from '../../utils/utils';\n\n@Component({\n tag: 'pds-button',\n styleUrl: 'pds-button.scss',\n shadow: true,\n})\nexport class PdsButton {\n @Element() el: HTMLPdsButtonElement;\n\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Toggles disabled state of button\n * @defaultValue false\n */\n @Prop() disabled? = false;\n\n /**\n * Displays icon before text when icon string matches an icon name\n */\n @Prop() icon?: string = null;\n\n /**\n * Provides button with a submittable name\n */\n @Prop() name?: string;\n\n /**\n * Provides button with a submittable value\n */\n @Prop() value?: string;\n\n /**\n * Provides button with a type\n * @defaultValue button\n */\n @Prop() type?: 'button' | 'reset' | 'submit' = 'button';\n\n /**\n * Sets button variant styles as outlined in Figma documentation\n */\n @Prop() variant: 'primary' | 'secondary' | 'accent' | 'disclosure' | 'destructive' | 'unstyled' = 'primary';\n\n private handleClick = (ev: Event) => {\n if (this.type != 'button') {\n // If button clicked IS NOT associated with a form\n if (hasShadowDom(this.el)) {\n const form = this.el.closest('form')\n if (form) {\n ev.preventDefault()\n\n const fakeButton = document.createElement('button')\n fakeButton.type = this.type\n fakeButton.style.display = 'none'\n form.appendChild(fakeButton)\n fakeButton.click()\n fakeButton.remove()\n }\n }\n }\n }\n\n private classNames() {\n const classNames = ['pds-button'];\n\n if (this.variant) {\n classNames.push('pds-button--' + this.variant);\n }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host\n aria-disabled={this.disabled ? 'true' : null}\n id={this.componentId}\n onClick={this.handleClick}\n variant={this.variant}\n >\n <button\n class={this.classNames()}\n disabled={this.disabled}\n name={this.name}\n type={this.type}\n value={this.value}\n >\n {this.icon && this.variant !== 'disclosure' && <pds-icon name={this.icon}></pds-icon>}\n <slot />\n {this.variant === 'disclosure' && <pds-icon name=\"caret-down\"></pds-icon>}\n </button>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../dist/types/components";
|
|
2
|
+
|
|
3
|
+
interface PdsCheckbox extends Components.PdsCheckbox, HTMLElement {}
|
|
4
|
+
export const PdsCheckbox: {
|
|
5
|
+
prototype: PdsCheckbox;
|
|
6
|
+
new (): PdsCheckbox;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { a as assignDescription, P as PdsLabel, m as messageId } from './pds-label.js';
|
|
3
|
+
|
|
4
|
+
const pdsCheckboxCss = ":host{--background-color-disabled:var(--pine-color-neutral-grey-200);--background-color-hover:var(--pine-color-neutral-grey-100);--border:var(--pine-border-interactive);--border-color-disabled:var(--pine-color-neutral-charcoal-100);--border-color-hover:var(--pine-border-interactive-hover-color);--border-color-icon:var(--pine-color-base-white);--border-radius:var(--pine-border-radius-xs);--color-checked:var(--pine-color-neutral-charcoal-500);--color-disabled:var(--pine-color-neutral-grey-300);--color-focus:var(--pine-color-primary-200);--color-invalid-focus:var(--pine-color-red-200);--color-invalid:var(--pine-color-red-300);--message-color-disabled:var(--pine-color-neutral-grey-500);--message-color:var(--pine-color-neutral-charcoal-200);--input-size:16px;-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}:host(.is-invalid) input{border-color:var(--color-invalid)}:host(.is-invalid) input:checked{background:var(--color-invalid)}:host(.is-invalid) input:focus-visible{-webkit-box-shadow:0 0 0 4px var(--color-invalid-focus);box-shadow:0 0 0 4px var(--color-invalid-focus);outline:none}:host(.is-invalid) label,:host(.is-invalid) .pds-checkbox__message--error{color:var(--color-invalid)}:host(.is-indeterminate) input:checked::after{border-bottom:0;-webkit-transform:rotate(87deg) translate3d(-114%, 25%, 0);transform:rotate(87deg) translate3d(-114%, 25%, 0)}input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:var(--border);border-radius:var(--border-radius);height:var(--input-size);margin:0;position:relative;width:var(--input-size)}input:hover{background:var(--background-color-hover);border-color:var(--border-color-hover)}input:checked{background:var(--color-checked);border-color:var(--color-checked)}input:checked::after{border:1px solid var(--border-color-icon);border-left:0;border-top:0;content:\"\";display:block;height:7px;left:50%;position:absolute;top:50%;-webkit-transform:rotate(43deg) translate3d(-110%, -30%, 0);transform:rotate(43deg) translate3d(-110%, -30%, 0);width:4px}input:disabled{background:var(--background-color-disabled);border-color:var(--color-disabled);cursor:not-allowed}input:disabled:checked{background:var(--color-disabled);border-color:var(--color-disabled)}input:disabled:checked::after{border-color:var(--border-color-disabled)}input:disabled+label{color:var(--border-color-hover);cursor:not-allowed}input:disabled~.pds-checkbox__message{color:var(--message-color-disabled)}input:focus-visible{-webkit-box-shadow:0 0 0 4px var(--color-focus);box-shadow:0 0 0 4px var(--color-focus);outline:none}label{-webkit-margin-start:10px;margin-inline-start:10px}.pds-checkbox__message{color:var(--message-color);font-size:14px;-webkit-margin-before:6px;margin-block-start:6px;-webkit-margin-start:26px;margin-inline-start:26px;width:100%}";
|
|
5
|
+
|
|
6
|
+
const PdsCheckbox$1 = /*@__PURE__*/ proxyCustomElement(class PdsCheckbox extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.pdsCheckboxChange = createEvent(this, "pdsCheckboxChange", 7);
|
|
12
|
+
this.handleCheckboxChange = (e) => {
|
|
13
|
+
if (this.disabled) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const target = e.target;
|
|
17
|
+
const isChecked = target.checked;
|
|
18
|
+
this.pdsCheckboxChange.emit(isChecked);
|
|
19
|
+
};
|
|
20
|
+
this.checked = undefined;
|
|
21
|
+
this.componentId = undefined;
|
|
22
|
+
this.disabled = undefined;
|
|
23
|
+
this.errorMessage = undefined;
|
|
24
|
+
this.helperMessage = undefined;
|
|
25
|
+
this.indeterminate = undefined;
|
|
26
|
+
this.invalid = undefined;
|
|
27
|
+
this.label = undefined;
|
|
28
|
+
this.name = undefined;
|
|
29
|
+
this.required = undefined;
|
|
30
|
+
this.value = undefined;
|
|
31
|
+
}
|
|
32
|
+
classNames() {
|
|
33
|
+
const classNames = [];
|
|
34
|
+
if (this.invalid) {
|
|
35
|
+
classNames.push('is-invalid');
|
|
36
|
+
}
|
|
37
|
+
if (this.indeterminate) {
|
|
38
|
+
classNames.push('is-indeterminate');
|
|
39
|
+
}
|
|
40
|
+
if (this.disabled) {
|
|
41
|
+
classNames.push('is-disabled');
|
|
42
|
+
}
|
|
43
|
+
return classNames.join(' ');
|
|
44
|
+
}
|
|
45
|
+
render() {
|
|
46
|
+
return (h(Host, { class: this.classNames() }, h("input", { "aria-describedby": assignDescription(this.componentId, this.invalid, this.helperMessage), "aria-invalid": this.invalid ? "true" : undefined, type: "checkbox", id: this.componentId, name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onChange: this.handleCheckboxChange }), h(PdsLabel, { htmlFor: this.componentId, text: this.label }), this.helperMessage &&
|
|
47
|
+
h("div", { class: 'pds-checkbox__message', id: messageId(this.componentId, 'helper') }, this.helperMessage), this.errorMessage &&
|
|
48
|
+
h("div", { class: `pds-checkbox__message pds-checkbox__message--error`, id: messageId(this.componentId, 'error'), "aria-live": "assertive" }, this.errorMessage)));
|
|
49
|
+
}
|
|
50
|
+
static get style() { return pdsCheckboxCss; }
|
|
51
|
+
}, [1, "pds-checkbox", {
|
|
52
|
+
"checked": [4],
|
|
53
|
+
"componentId": [1, "component-id"],
|
|
54
|
+
"disabled": [4],
|
|
55
|
+
"errorMessage": [1, "error-message"],
|
|
56
|
+
"helperMessage": [1, "helper-message"],
|
|
57
|
+
"indeterminate": [4],
|
|
58
|
+
"invalid": [4],
|
|
59
|
+
"label": [1],
|
|
60
|
+
"name": [1],
|
|
61
|
+
"required": [4],
|
|
62
|
+
"value": [1]
|
|
63
|
+
}]);
|
|
64
|
+
function defineCustomElement$1() {
|
|
65
|
+
if (typeof customElements === "undefined") {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const components = ["pds-checkbox"];
|
|
69
|
+
components.forEach(tagName => { switch (tagName) {
|
|
70
|
+
case "pds-checkbox":
|
|
71
|
+
if (!customElements.get(tagName)) {
|
|
72
|
+
customElements.define(tagName, PdsCheckbox$1);
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
} });
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const PdsCheckbox = PdsCheckbox$1;
|
|
79
|
+
const defineCustomElement = defineCustomElement$1;
|
|
80
|
+
|
|
81
|
+
export { PdsCheckbox, defineCustomElement };
|
|
82
|
+
|
|
83
|
+
//# sourceMappingURL=pds-checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-checkbox.js","mappings":";;;AAAA,MAAM,cAAc,GAAG,mzFAAmzF;;MCS7zFA,aAAW;;;;;;QA8Dd,yBAAoB,GAAG,CAAC,CAAQ;YACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAO;aACR;YAED,MAAM,MAAM,GAAG,CAAC,CAAC,MAA0B,CAAC;YAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;YAEjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACxC,CAAA;;;;;;;;;;;;;IAEO,UAAU;QAChB,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,IAAI,IAAI,CAAC,OAAO,EAAE;YAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAAE;QACpD,IAAI,IAAI,CAAC,aAAa,EAAE;YAAE,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAAE;QAChE,IAAI,IAAI,CAAC,QAAQ,EAAE;YAAE,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAAE;QAEtD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAC5B,iCACoB,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,kBACzE,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,EAC/C,IAAI,EAAC,UAAU,EACf,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,oBAAoB,GACnC,EACF,EAAC,QAAQ,IAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,GAAI,EACxD,IAAI,CAAC,aAAa;YACjB,WACE,KAAK,EAAE,uBAAuB,EAC9B,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAExC,IAAI,CAAC,aAAa,CACf,EAEP,IAAI,CAAC,YAAY;YAChB,WACE,KAAK,EAAE,oDAAoD,EAC3D,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,eAC9B,WAAW,IAEpB,IAAI,CAAC,YAAY,CACd,CAEH,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["PdsCheckbox"],"sources":["src/components/pds-checkbox/pds-checkbox.scss?tag=pds-checkbox&encapsulation=shadow","src/components/pds-checkbox/pds-checkbox.tsx"],"sourcesContent":[":host {\n --background-color-disabled: var(--pine-color-neutral-grey-200);\n --background-color-hover: var(--pine-color-neutral-grey-100);\n --border: var(--pine-border-interactive);\n --border-color-disabled: var(--pine-color-neutral-charcoal-100);\n --border-color-hover: var(--pine-border-interactive-hover-color);\n --border-color-icon: var(--pine-color-base-white);\n --border-radius: var(--pine-border-radius-xs);\n --color-checked: var(--pine-color-neutral-charcoal-500);\n --color-disabled: var(--pine-color-neutral-grey-300);\n --color-focus: var(--pine-color-primary-200);\n --color-invalid-focus: var(--pine-color-red-200);\n --color-invalid: var(--pine-color-red-300);\n --message-color-disabled: var(--pine-color-neutral-grey-500);\n --message-color: var(--pine-color-neutral-charcoal-200);\n --input-size: 16px;\n\n align-items: center;\n display: flex;\n flex-flow: row wrap;\n}\n\n:host(.is-invalid) {\n input {\n border-color: var(--color-invalid);\n\n &:checked {\n background: var(--color-invalid);\n }\n\n &:focus-visible {\n box-shadow: 0 0 0 4px var(--color-invalid-focus);\n outline: none;\n }\n }\n\n label,\n .pds-checkbox__message--error {\n color: var(--color-invalid);\n }\n}\n\n:host(.is-indeterminate) {\n input:checked {\n &::after {\n border-bottom: 0;\n transform: rotate(87deg) translate3d(-114%, 25%, 0);\n }\n }\n}\n\ninput {\n appearance: none;\n border: var(--border);\n border-radius: var(--border-radius);\n height: var(--input-size);\n margin: 0;\n position: relative;\n width: var(--input-size);\n\n &:hover {\n background: var(--background-color-hover);\n border-color: var(--border-color-hover);\n }\n\n &:checked {\n background: var(--color-checked);\n border-color: var(--color-checked);\n\n &::after {\n border: 1px solid var(--border-color-icon);\n border-left: 0;\n border-top: 0;\n content: \"\";\n display: block;\n height: 7px;\n left: 50%;\n position: absolute;\n top: 50%;\n transform: rotate(43deg) translate3d(-110%, -30%, 0);\n width: 4px;\n }\n }\n\n &:disabled {\n background: var(--background-color-disabled);\n border-color: var(--color-disabled);\n cursor: not-allowed;\n\n &:checked {\n background: var(--color-disabled);\n border-color: var(--color-disabled);\n\n &::after {\n border-color: var(--border-color-disabled);\n }\n }\n\n + label {\n color: var(--border-color-hover);\n cursor: not-allowed;\n }\n\n ~ .pds-checkbox__message {\n color: var(--message-color-disabled);\n }\n }\n\n &:focus-visible {\n box-shadow: 0 0 0 4px var(--color-focus);\n outline: none;\n }\n}\n\nlabel {\n margin-inline-start: 10px;\n}\n\n.pds-checkbox__message {\n color: var(--message-color);\n font-size: 14px;\n margin-block-start: 6px;\n margin-inline-start: 26px;\n width: 100%;\n}\n","import { Component, h, Prop, Host, Event, EventEmitter } from '@stencil/core';\nimport { assignDescription, messageId } from '../../utils/form';\nimport { PdsLabel } from '../_internal/pds-label/pds-label';\n\n@Component({\n tag: 'pds-checkbox',\n styleUrl: 'pds-checkbox.scss',\n shadow: true,\n})\nexport class PdsCheckbox {\n /**\n * It determines whether or not the checkbox is checked.\n */\n @Prop() checked: boolean;\n\n /**\n * A unique identifier used for the underlying component `id` attribute and the label `for` attribute.\n */\n @Prop() componentId!: string;\n\n /**\n * It determines whether or not the checkbox is disabled.\n */\n @Prop() disabled: boolean;\n\n /**\n * Displays message text describing an invalid state.\n */\n @Prop() errorMessage: string;\n\n /**\n * String used for helper message below checkbox.\n */\n @Prop() helperMessage: string;\n\n /**\n * If `true`, the checkbox will visually appear as indeterminate.\n * Only JavaScript can set the objects `indeterminate` property. See [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#indeterminate_state_checkboxes).\n */\n @Prop() indeterminate: boolean;\n\n /**\n * It determines whether or not the checkbox is invalid.\n */\n @Prop() invalid: boolean;\n\n /**\n * String used for label text next to checkbox.\n */\n @Prop() label: string;\n\n /**\n * String used for checkbox `name` attribute.\n */\n @Prop() name: string;\n\n /**\n * It determines whether or not the checkbox is required.\n */\n @Prop() required: boolean;\n\n /**\n * The value of the checkbox that is submitted with a form.\n */\n @Prop() value: string;\n\n /**\n * Emits a boolean indicating whether the checkbox is currently checked or unchecked.\n */\n @Event() pdsCheckboxChange: EventEmitter<boolean>;\n\n private handleCheckboxChange = (e: Event) => {\n if (this.disabled) {\n return;\n }\n\n const target = e.target as HTMLInputElement;\n const isChecked = target.checked;\n\n this.pdsCheckboxChange.emit(isChecked);\n }\n\n private classNames() {\n const classNames = [];\n\n if (this.invalid) { classNames.push('is-invalid'); }\n if (this.indeterminate) { classNames.push('is-indeterminate'); }\n if (this.disabled) { classNames.push('is-disabled'); }\n\n return classNames.join(' ');\n }\n\n render() {\n return (\n <Host class={this.classNames()}>\n <input\n aria-describedby={assignDescription(this.componentId, this.invalid, this.helperMessage)}\n aria-invalid={this.invalid ? \"true\" : undefined}\n type=\"checkbox\"\n id={this.componentId}\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onChange={this.handleCheckboxChange}\n />\n <PdsLabel htmlFor={this.componentId} text={this.label} />\n {this.helperMessage &&\n <div\n class={'pds-checkbox__message'}\n id={messageId(this.componentId, 'helper')}\n >\n {this.helperMessage}\n </div>\n }\n {this.errorMessage &&\n <div\n class={`pds-checkbox__message pds-checkbox__message--error`}\n id={messageId(this.componentId, 'error')}\n aria-live=\"assertive\"\n >\n {this.errorMessage}\n </div>\n }\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../dist/types/components";
|
|
2
|
+
|
|
3
|
+
interface PdsChip extends Components.PdsChip, HTMLElement {}
|
|
4
|
+
export const PdsChip: {
|
|
5
|
+
prototype: PdsChip;
|
|
6
|
+
new (): PdsChip;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { d as defineCustomElement$2 } from './pds-icon2.js';
|
|
3
|
+
|
|
4
|
+
const pdsChipCss = ":host{--background-danger:var(--pine-color-red-100);--background-danger-dot:var(--pine-color-red-300);--background-danger-interactive:var(--pine-color-red-200);--background-neutral:var(--pine-color-neutral-grey-300);--background-neutral-dot:var(--pine-color-neutral-charcoal-100);--background-neutral-interactive:var(--pine-color-neutral-grey-400);--background-info:var(--pine-color-primary-100);--background-info-dot:var(--pine-color-primary-300);--background-info-interactive:var(--pine-color-primary-200);--background-accent:var(--pine-color-purple-100);--background-accent-dot:var(--pine-color-purple-300);--background-accent-interactive:var(--pine-color-purple-200);--background-success:var(--pine-color-green-100);--background-success-dot:var(--pine-color-green-300);--background-success-interactive:var(--pine-color-green-200);--background-warning:var(--pine-color-yellow-100);--background-warning-dot:var(--pine-color-yellow-300);--background-warning-interactive:var(--pine-color-yellow-200);--box-shadow-focus:0 0 0 4px var(--pine-color-primary-200);--border-radius:var(--pine-border-radius-lg);--font-size:var(--pine-font-size-body-sm);--font-size-lg:var(--pine-font-size-body);--font-weight:var(--pine-font-weight-medium);--line-height:var(--pine-line-height-sm);--padding-block-sm:calc(var(--pine-spacing-xxs) / 2);--padding-block:var(--pine-spacing-xxs);--padding-block-lg:6px;--padding-inline-sm:calc(var(--pine-spacing-xxs) / 2);--padding-inline:10px;--padding-inline-lg:calc(var(--pine-spacing-md) / 2);--padding-inline-xl:14px;--margin-block-xs:calc(var(--pine-spacing-xxs) / 2);--margin-inline-sm:calc(var(--pine-spacing-xs) / 2);--margin-inline-xs:calc(var(--pine-spacing-xxs) / 2);--margin-inline:4px;--margin-inline-lg:var(--pine-spacing-xs);--margin-inline-xl:calc(var(--pine-spacing-md) / 2);--dot-size:4px;--close-size:10px;--close-size-lg:24px;-ms-flex-align:center;align-items:center;border-radius:var(--border-radius);display:-ms-inline-flexbox;display:inline-flex;font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height);padding-block:var(--padding-block-sm);padding-inline:var(--padding-inline)}:host(.pds-chip--accent){background:var(--background-accent)}:host(.pds-chip--accent) .pds-chip__dot{background:var(--background-accent-dot)}:host(.pds-chip--accent) .pds-chip__close:hover{background:var(--background-accent-interactive)}:host(.pds-chip--accent.pds-chip--dropdown:hover){background:var(--background-accent-interactive)}:host(.pds-chip--danger){background:var(--background-danger)}:host(.pds-chip--danger) .pds-chip__dot{background:var(--background-danger-dot)}:host(.pds-chip--danger) .pds-chip__close:hover{background:var(--background-danger-interactive)}:host(.pds-chip--danger.pds-chip--dropdown:hover){background:var(--background-danger-interactive)}:host(.pds-chip--info){background:var(--background-info)}:host(.pds-chip--info) .pds-chip__dot{background:var(--background-info-dot)}:host(.pds-chip--info) .pds-chip__close:hover{background:var(--background-info-interactive)}:host(.pds-chip--info.pds-chip--dropdown:hover){background:var(--background-info-interactive)}:host(.pds-chip--neutral){background:var(--background-neutral)}:host(.pds-chip--neutral) .pds-chip__dot{background:var(--background-neutral-dot)}:host(.pds-chip--neutral) .pds-chip__close:hover{background:var(--background-neutral-interactive)}:host(.pds-chip--neutral.pds-chip--dropdown:hover){background:var(--background-neutral-interactive)}:host(.pds-chip--success){background:var(--background-success)}:host(.pds-chip--success) .pds-chip__dot{background:var(--background-success-dot)}:host(.pds-chip--success) .pds-chip__close:hover{background:var(--background-success-interactive)}:host(.pds-chip--success.pds-chip--dropdown:hover){background:var(--background-success-interactive)}:host(.pds-chip--warning){background:var(--background-warning)}:host(.pds-chip--warning) .pds-chip__dot{background:var(--background-warning-dot)}:host(.pds-chip--warning) .pds-chip__close:hover{background:var(--background-warning-interactive)}:host(.pds-chip--warning.pds-chip--dropdown:hover){background:var(--background-warning-interactive)}.pds-chip__dot{border:1px solid transparent;border-radius:50%;display:inline-block;height:var(--dot-size);-webkit-margin-after:var(--margin-block-xs);margin-block-end:var(--margin-block-xs);-webkit-margin-end:var(--margin-inline-sm);margin-inline-end:var(--margin-inline-sm);width:var(--dot-size)}:host(.pds-chip--dropdown){padding:0}:host(.pds-chip--dropdown) .pds-chip__dot{-webkit-margin-after:1px;margin-block-end:1px;-webkit-margin-before:var(--margin-block-xs);margin-block-start:var(--margin-block-xs)}.pds-chip__button{-ms-flex-align:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;font-family:inherit;font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height);padding-block:var(--padding-block-sm);padding-inline:var(--padding-inline)}.pds-chip__button:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}.pds-chip__button pds-icon{-webkit-margin-end:calc(var(--margin-inline-xs) * -1);margin-inline-end:calc(var(--margin-inline-xs) * -1);-webkit-margin-start:var(--margin-inline);margin-inline-start:var(--margin-inline)}:host(.pds-chip--tag){padding-block:var(--padding-block-sm)}.pds-chip__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:50%;height:var(--close-size);-webkit-margin-end:calc(var(--margin-inline-lg) * -1);margin-inline-end:calc(var(--margin-inline-lg) * -1);-webkit-margin-start:var(--margin-inline);margin-inline-start:var(--margin-inline);padding:var(--close-size);position:relative;width:var(--close-size)}.pds-chip__close pds-icon{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%)}.pds-chip__close:focus-visible{-webkit-box-shadow:var(--box-shadow-focus);box-shadow:var(--box-shadow-focus);outline:none}:host(.pds-chip--large){font-size:var(--font-size-lg);padding-block:var(--padding-block-lg);padding-inline:var(--padding-inline-xl)}:host(.pds-chip--large):host(.pds-chip--dropdown){padding-block:var(--padding-block);padding-inline:var(--padding-inline-sm)}:host(.pds-chip--large):host(.pds-chip--dropdown) .pds-chip__dot{-webkit-margin-after:0;margin-block-end:0}:host(.pds-chip--large) .pds-chip__button{font-size:var(--font-size-lg);padding-inline:var(--padding-inline-lg)}:host(.pds-chip--large) .pds-chip__close{height:var(--close-size-lg);-webkit-margin-end:calc(var(--margin-inline-xl) * -1);margin-inline-end:calc(var(--margin-inline-xl) * -1);width:var(--close-size-lg)}:host(.pds-chip--large):host(.pds-chip--tag){padding-block:var(--padding-block)}";
|
|
5
|
+
|
|
6
|
+
const PdsChip$1 = /*@__PURE__*/ proxyCustomElement(class PdsChip extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.__registerHost();
|
|
10
|
+
this.__attachShadow();
|
|
11
|
+
this.pdsTagCloseClick = createEvent(this, "pdsTagCloseClick", 7);
|
|
12
|
+
this.handleCloseClick = () => {
|
|
13
|
+
this.pdsTagCloseClick.emit();
|
|
14
|
+
};
|
|
15
|
+
this.componentId = undefined;
|
|
16
|
+
this.sentiment = 'neutral';
|
|
17
|
+
this.dot = false;
|
|
18
|
+
this.label = undefined;
|
|
19
|
+
this.large = false;
|
|
20
|
+
this.variant = 'text';
|
|
21
|
+
}
|
|
22
|
+
classNames() {
|
|
23
|
+
const classNames = ['pds-chip'];
|
|
24
|
+
if (this.large) {
|
|
25
|
+
classNames.push('pds-chip--large');
|
|
26
|
+
}
|
|
27
|
+
if (this.variant) {
|
|
28
|
+
classNames.push('pds-chip--' + this.variant);
|
|
29
|
+
}
|
|
30
|
+
if (this.sentiment) {
|
|
31
|
+
classNames.push('pds-chip--' + this.sentiment);
|
|
32
|
+
}
|
|
33
|
+
return classNames.join(' ');
|
|
34
|
+
}
|
|
35
|
+
setChipContent() {
|
|
36
|
+
const isDropdown = this.variant === 'dropdown';
|
|
37
|
+
const chipContent = isDropdown ? (h("button", { class: "pds-chip__button", type: "button" }, this.dot && h("i", { class: "pds-chip__dot", "aria-hidden": "true" }), this.label, h("pds-icon", { name: "down-small", size: "12px", "aria-hidden": "true" }))) : (h("span", { class: "pds-chip__label" }, this.dot && h("i", { class: "pds-chip__dot", "aria-hidden": "true" }), this.label));
|
|
38
|
+
return chipContent;
|
|
39
|
+
}
|
|
40
|
+
render() {
|
|
41
|
+
return (h(Host, { class: this.classNames(), id: this.componentId }, this.setChipContent(), this.variant === 'tag' && (h("button", { class: "pds-chip__close", type: "button", onClick: this.handleCloseClick, "aria-label": "Remove" }, h("pds-icon", { name: "remove", size: "12px" })))));
|
|
42
|
+
}
|
|
43
|
+
static get style() { return pdsChipCss; }
|
|
44
|
+
}, [1, "pds-chip", {
|
|
45
|
+
"componentId": [1, "component-id"],
|
|
46
|
+
"sentiment": [1],
|
|
47
|
+
"dot": [4],
|
|
48
|
+
"label": [1],
|
|
49
|
+
"large": [4],
|
|
50
|
+
"variant": [1]
|
|
51
|
+
}]);
|
|
52
|
+
function defineCustomElement$1() {
|
|
53
|
+
if (typeof customElements === "undefined") {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const components = ["pds-chip", "pds-icon"];
|
|
57
|
+
components.forEach(tagName => { switch (tagName) {
|
|
58
|
+
case "pds-chip":
|
|
59
|
+
if (!customElements.get(tagName)) {
|
|
60
|
+
customElements.define(tagName, PdsChip$1);
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
63
|
+
case "pds-icon":
|
|
64
|
+
if (!customElements.get(tagName)) {
|
|
65
|
+
defineCustomElement$2();
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
} });
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const PdsChip = PdsChip$1;
|
|
72
|
+
const defineCustomElement = defineCustomElement$1;
|
|
73
|
+
|
|
74
|
+
export { PdsChip, defineCustomElement };
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=pds-chip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"pds-chip.js","mappings":";;;AAAA,MAAM,UAAU,GAAG,kwNAAkwN;;MCOxwNA,SAAO;;;;;;QAwCV,qBAAgB,GAAG;YACzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;SAC9B,CAAA;;yBAhCqF,SAAS;mBAMjF,KAAK;;qBAWH,KAAK;uBAM0B,MAAM;;IAW7C,UAAU;QAChB,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;SACpC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,UAAU,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;SAChD;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAEO,cAAc;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC;QAC/C,MAAM,WAAW,GAAG,UAAU,IAC5B,cAAQ,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAC,QAAQ,IAC3C,IAAI,CAAC,GAAG,IAAI,SAAG,KAAK,EAAC,eAAe,iBAAa,MAAM,GAAK,EAC5D,IAAI,CAAC,KAAK,EACX,gBAAU,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,GAAY,CAC/D,KAET,YAAM,KAAK,EAAC,iBAAiB,IAC1B,IAAI,CAAC,GAAG,IAAI,SAAG,KAAK,EAAC,eAAe,iBAAa,MAAM,GAAK,EAC5D,IAAI,CAAC,KAAK,CACN,CACR,CAAC;QAEF,OAAO,WAAW,CAAC;KACpB;IAED,MAAM;QACJ,QACE,EAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,IACjD,IAAI,CAAC,cAAc,EAAE,EACrB,IAAI,CAAC,OAAO,KAAK,KAAK,KACrB,cAAQ,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,gBAAa,QAAQ,IAC/F,gBAAU,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,GAAY,CACxC,CACV,CACI,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["PdsChip"],"sources":["src/components/pds-chip/pds-chip.scss?tag=pds-chip&encapsulation=shadow","src/components/pds-chip/pds-chip.tsx"],"sourcesContent":[":host {\n --background-danger: var(--pine-color-red-100);\n --background-danger-dot: var(--pine-color-red-300);\n --background-danger-interactive: var(--pine-color-red-200);\n --background-neutral: var(--pine-color-neutral-grey-300);\n --background-neutral-dot: var(--pine-color-neutral-charcoal-100);\n --background-neutral-interactive: var(--pine-color-neutral-grey-400);\n --background-info: var(--pine-color-primary-100);\n --background-info-dot: var(--pine-color-primary-300);\n --background-info-interactive: var(--pine-color-primary-200);\n --background-accent: var(--pine-color-purple-100);\n --background-accent-dot: var(--pine-color-purple-300);\n --background-accent-interactive: var(--pine-color-purple-200);\n --background-success: var(--pine-color-green-100);\n --background-success-dot: var(--pine-color-green-300);\n --background-success-interactive: var(--pine-color-green-200);\n --background-warning: var(--pine-color-yellow-100);\n --background-warning-dot: var(--pine-color-yellow-300);\n --background-warning-interactive: var(--pine-color-yellow-200);\n --box-shadow-focus: 0 0 0 4px var(--pine-color-primary-200);\n\n --border-radius: var(--pine-border-radius-lg);\n --font-size: var(--pine-font-size-body-sm);\n --font-size-lg: var(--pine-font-size-body);\n --font-weight: var(--pine-font-weight-medium);\n --line-height: var(--pine-line-height-sm);\n --padding-block-sm: calc(var(--pine-spacing-xxs) / 2);\n --padding-block: var(--pine-spacing-xxs);\n --padding-block-lg: 6px;\n --padding-inline-sm: calc(var(--pine-spacing-xxs) / 2);\n --padding-inline: 10px;\n --padding-inline-lg: calc(var(--pine-spacing-md) / 2);\n --padding-inline-xl: 14px;\n --margin-block-xs: calc(var(--pine-spacing-xxs) / 2);\n --margin-inline-sm: calc(var(--pine-spacing-xs) / 2);\n --margin-inline-xs: calc(var(--pine-spacing-xxs) / 2);\n --margin-inline: 4px;\n --margin-inline-lg: var(--pine-spacing-xs);\n --margin-inline-xl: calc(var(--pine-spacing-md) / 2);\n\n --dot-size: 4px;\n --close-size: 10px;\n --close-size-lg: 24px;\n\n align-items: center;\n border-radius: var(--border-radius);\n display: inline-flex;\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n line-height: var(--line-height);\n padding-block: var(--padding-block-sm);\n padding-inline: var(--padding-inline);\n}\n\n$pds-chip-sentiment: (\n accent: var(--background-accent),\n danger: var(--background-danger),\n info: var(--background-info),\n neutral: var(--background-neutral),\n success: var(--background-success),\n warning: var(--background-warning),\n);\n\n$pds-chip-sentiment-dots: (\n accent: var(--background-accent-dot),\n danger: var(--background-danger-dot),\n info: var(--background-info-dot),\n neutral: var(--background-neutral-dot),\n success: var(--background-success-dot),\n warning: var(--background-warning-dot),\n);\n\n$pds-chip-sentiment-interactive: (\n accent: var(--background-accent-interactive),\n danger: var(--background-danger-interactive),\n info: var(--background-info-interactive),\n neutral: var(--background-neutral-interactive),\n success: var(--background-success-interactive),\n warning: var(--background-warning-interactive),\n);\n\n@each $sentiment, $value in $pds-chip-sentiment {\n :host(.pds-chip--#{$sentiment}) {\n background: $value;\n\n // dot colors\n .pds-chip__dot {\n /* stylelint-disable-next-line */\n background: map-get($pds-chip-sentiment-dots, $sentiment);\n }\n\n // tag close hover colors\n .pds-chip__close:hover {\n /* stylelint-disable-next-line */\n background: map-get($pds-chip-sentiment-interactive, $sentiment);\n }\n }\n // dropdown hover colors\n :host(.pds-chip--#{$sentiment}.pds-chip--dropdown:hover) {\n /* stylelint-disable-next-line */\n background: map-get($pds-chip-sentiment-interactive, $sentiment);\n }\n}\n\n.pds-chip__dot {\n border: 1px solid transparent;\n border-radius: 50%;\n display: inline-block;\n height: var(--dot-size);\n margin-block-end: var(--margin-block-xs);\n margin-inline-end: var(--margin-inline-sm);\n width: var(--dot-size);\n}\n\n// dropdown\n\n:host(.pds-chip--dropdown) {\n padding: 0;\n\n .pds-chip__dot {\n margin-block-end: 1px;\n margin-block-start: var(--margin-block-xs);\n }\n}\n\n.pds-chip__button {\n align-items: center;\n appearance: none;\n background: transparent;\n border: 0;\n border-radius: var(--border-radius);\n display: flex;\n font-family: inherit;\n font-size: var(--font-size);\n font-weight: var(--font-weight);\n line-height: var(--line-height);\n padding-block: var(--padding-block-sm);\n padding-inline: var(--padding-inline);\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n\n pds-icon {\n margin-inline-end: calc(var(--margin-inline-xs) * -1);\n margin-inline-start: var(--margin-inline);\n }\n}\n\n// tag\n\n:host(.pds-chip--tag) {\n padding-block: var(--padding-block-sm);\n}\n\n.pds-chip__close {\n appearance: none;\n background: transparent;\n border: 0;\n border-radius: 50%;\n height: var(--close-size);\n margin-inline-end: calc(var(--margin-inline-lg) * -1);\n margin-inline-start: var(--margin-inline);\n padding: var(--close-size);\n position: relative;\n width: var(--close-size);\n\n pds-icon {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n\n &:focus-visible {\n box-shadow: var(--box-shadow-focus);\n outline: none;\n }\n}\n\n// large\n\n:host(.pds-chip--large) {\n font-size: var(--font-size-lg);\n padding-block: var(--padding-block-lg);\n padding-inline: var(--padding-inline-xl);\n\n &:host(.pds-chip--dropdown) {\n padding-block: var(--padding-block);\n padding-inline: var(--padding-inline-sm);\n\n .pds-chip__dot {\n margin-block-end: 0;\n }\n }\n\n .pds-chip__button {\n font-size: var(--font-size-lg);\n padding-inline: var(--padding-inline-lg)\n }\n\n .pds-chip__close {\n height: var(--close-size-lg);\n margin-inline-end: calc(var(--margin-inline-xl) * -1);\n width: var(--close-size-lg);\n }\n\n &:host(.pds-chip--tag) {\n padding-block: var(--padding-block);\n }\n}\n","import { Component, Host, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'pds-chip',\n styleUrl: 'pds-chip.scss',\n shadow: true,\n})\nexport class PdsChip {\n /**\n * A unique identifier used for the underlying component `id` attribute.\n */\n @Prop() componentId: string;\n\n /**\n * Sets the color scheme of the chip.\n * @defaultValue 'neutral'\n */\n @Prop() sentiment: 'accent' | 'danger' | 'info' | 'neutral' | 'success' | 'warning' = 'neutral';\n\n /**\n * Determines whether a dot should be displayed on the chip.\n * @defaultValue false\n */\n @Prop() dot = false;\n\n /**\n * Sets the text label content of the chip.\n */\n @Prop() label: string;\n\n /**\n * Determines whether the chip should be rendered in a larger size.\n * @defaultValue false\n */\n @Prop() large = false;\n\n /**\n * Sets the style variant of the chip.\n * @defaultValue 'text'\n */\n @Prop() variant: 'text' | 'tag' | 'dropdown' = 'text';\n\n /**\n * Event when close button is clicked on tag variant.\n */\n @Event() pdsTagCloseClick: EventEmitter;\n\n private handleCloseClick = () => {\n this.pdsTagCloseClick.emit();\n }\n\n private classNames() {\n const classNames = ['pds-chip'];\n\n if (this.large) {\n classNames.push('pds-chip--large');\n }\n if (this.variant) {\n classNames.push('pds-chip--' + this.variant);\n }\n if (this.sentiment) {\n classNames.push('pds-chip--' + this.sentiment);\n }\n\n return classNames.join(' ');\n }\n\n private setChipContent() {\n const isDropdown = this.variant === 'dropdown';\n const chipContent = isDropdown ? (\n <button class=\"pds-chip__button\" type=\"button\">\n {this.dot && <i class=\"pds-chip__dot\" aria-hidden=\"true\"></i>}\n {this.label}\n <pds-icon name=\"down-small\" size=\"12px\" aria-hidden=\"true\"></pds-icon>\n </button>\n ) : (\n <span class=\"pds-chip__label\">\n {this.dot && <i class=\"pds-chip__dot\" aria-hidden=\"true\"></i>}\n {this.label}\n </span>\n );\n\n return chipContent;\n }\n\n render() {\n return (\n <Host class={this.classNames()} id={this.componentId}>\n {this.setChipContent()}\n {this.variant === 'tag' && (\n <button class=\"pds-chip__close\" type=\"button\" onClick={this.handleCloseClick} aria-label=\"Remove\">\n <pds-icon name=\"remove\" size=\"12px\"></pds-icon>\n </button>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../dist/types/components";
|
|
2
|
+
|
|
3
|
+
interface PdsCopytext extends Components.PdsCopytext, HTMLElement {}
|
|
4
|
+
export const PdsCopytext: {
|
|
5
|
+
prototype: PdsCopytext;
|
|
6
|
+
new (): PdsCopytext;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|