@digital2analogue2/parsimony-components 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +3751 -0
- package/dist/alert/alert.d.ts +36 -0
- package/dist/alert/alert.d.ts.map +1 -0
- package/dist/alert/alert.js +179 -0
- package/dist/alert/alert.js.map +1 -0
- package/dist/alert/alert.stories.d.ts +12 -0
- package/dist/alert/alert.stories.d.ts.map +1 -0
- package/dist/alert/alert.stories.js +59 -0
- package/dist/alert/alert.stories.js.map +1 -0
- package/dist/avatar/avatar.d.ts +37 -0
- package/dist/avatar/avatar.d.ts.map +1 -0
- package/dist/avatar/avatar.js +150 -0
- package/dist/avatar/avatar.js.map +1 -0
- package/dist/avatar/avatar.stories.d.ts +10 -0
- package/dist/avatar/avatar.stories.d.ts.map +1 -0
- package/dist/avatar/avatar.stories.js +56 -0
- package/dist/avatar/avatar.stories.js.map +1 -0
- package/dist/badge/badge.d.ts +31 -0
- package/dist/badge/badge.d.ts.map +1 -0
- package/dist/badge/badge.js +104 -0
- package/dist/badge/badge.js.map +1 -0
- package/dist/badge/badge.stories.d.ts +9 -0
- package/dist/badge/badge.stories.d.ts.map +1 -0
- package/dist/badge/badge.stories.js +35 -0
- package/dist/badge/badge.stories.js.map +1 -0
- package/dist/button/button.d.ts +50 -0
- package/dist/button/button.d.ts.map +1 -0
- package/dist/button/button.js +237 -0
- package/dist/button/button.js.map +1 -0
- package/dist/button/button.stories.d.ts +12 -0
- package/dist/button/button.stories.d.ts.map +1 -0
- package/dist/button/button.stories.js +44 -0
- package/dist/button/button.stories.js.map +1 -0
- package/dist/card/card.d.ts +32 -0
- package/dist/card/card.d.ts.map +1 -0
- package/dist/card/card.js +107 -0
- package/dist/card/card.js.map +1 -0
- package/dist/card/card.stories.d.ts +9 -0
- package/dist/card/card.stories.d.ts.map +1 -0
- package/dist/card/card.stories.js +39 -0
- package/dist/card/card.stories.js.map +1 -0
- package/dist/checkbox/checkbox.d.ts +44 -0
- package/dist/checkbox/checkbox.d.ts.map +1 -0
- package/dist/checkbox/checkbox.js +201 -0
- package/dist/checkbox/checkbox.js.map +1 -0
- package/dist/checkbox/checkbox.stories.d.ts +10 -0
- package/dist/checkbox/checkbox.stories.d.ts.map +1 -0
- package/dist/checkbox/checkbox.stories.js +38 -0
- package/dist/checkbox/checkbox.stories.js.map +1 -0
- package/dist/dialog/dialog.d.ts +51 -0
- package/dist/dialog/dialog.d.ts.map +1 -0
- package/dist/dialog/dialog.js +234 -0
- package/dist/dialog/dialog.js.map +1 -0
- package/dist/dialog/dialog.stories.d.ts +7 -0
- package/dist/dialog/dialog.stories.d.ts.map +1 -0
- package/dist/dialog/dialog.stories.js +30 -0
- package/dist/dialog/dialog.stories.js.map +1 -0
- package/dist/icon/icon.d.ts +40 -0
- package/dist/icon/icon.d.ts.map +1 -0
- package/dist/icon/icon.js +99 -0
- package/dist/icon/icon.js.map +1 -0
- package/dist/icon/icon.stories.d.ts +9 -0
- package/dist/icon/icon.stories.d.ts.map +1 -0
- package/dist/icon/icon.stories.js +41 -0
- package/dist/icon/icon.stories.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/input/input.d.ts +61 -0
- package/dist/input/input.d.ts.map +1 -0
- package/dist/input/input.js +233 -0
- package/dist/input/input.js.map +1 -0
- package/dist/input/input.stories.d.ts +10 -0
- package/dist/input/input.stories.d.ts.map +1 -0
- package/dist/input/input.stories.js +48 -0
- package/dist/input/input.stories.js.map +1 -0
- package/dist/link/link.d.ts +39 -0
- package/dist/link/link.d.ts.map +1 -0
- package/dist/link/link.js +112 -0
- package/dist/link/link.js.map +1 -0
- package/dist/link/link.stories.d.ts +9 -0
- package/dist/link/link.stories.d.ts.map +1 -0
- package/dist/link/link.stories.js +44 -0
- package/dist/link/link.stories.js.map +1 -0
- package/dist/progress/progress.d.ts +35 -0
- package/dist/progress/progress.d.ts.map +1 -0
- package/dist/progress/progress.js +116 -0
- package/dist/progress/progress.js.map +1 -0
- package/dist/progress/progress.stories.d.ts +10 -0
- package/dist/progress/progress.stories.d.ts.map +1 -0
- package/dist/progress/progress.stories.js +32 -0
- package/dist/progress/progress.stories.js.map +1 -0
- package/dist/radio/radio-group.d.ts +53 -0
- package/dist/radio/radio-group.d.ts.map +1 -0
- package/dist/radio/radio-group.js +183 -0
- package/dist/radio/radio-group.js.map +1 -0
- package/dist/radio/radio-group.stories.d.ts +9 -0
- package/dist/radio/radio-group.stories.d.ts.map +1 -0
- package/dist/radio/radio-group.stories.js +44 -0
- package/dist/radio/radio-group.stories.js.map +1 -0
- package/dist/radio/radio.d.ts +29 -0
- package/dist/radio/radio.d.ts.map +1 -0
- package/dist/radio/radio.js +166 -0
- package/dist/radio/radio.js.map +1 -0
- package/dist/radio/radio.stories.d.ts +13 -0
- package/dist/radio/radio.stories.d.ts.map +1 -0
- package/dist/radio/radio.stories.js +28 -0
- package/dist/radio/radio.stories.js.map +1 -0
- package/dist/select/select.d.ts +63 -0
- package/dist/select/select.d.ts.map +1 -0
- package/dist/select/select.js +258 -0
- package/dist/select/select.js.map +1 -0
- package/dist/select/select.stories.d.ts +9 -0
- package/dist/select/select.stories.d.ts.map +1 -0
- package/dist/select/select.stories.js +46 -0
- package/dist/select/select.stories.js.map +1 -0
- package/dist/skeleton/skeleton.d.ts +39 -0
- package/dist/skeleton/skeleton.d.ts.map +1 -0
- package/dist/skeleton/skeleton.js +111 -0
- package/dist/skeleton/skeleton.js.map +1 -0
- package/dist/skeleton/skeleton.stories.d.ts +9 -0
- package/dist/skeleton/skeleton.stories.d.ts.map +1 -0
- package/dist/skeleton/skeleton.stories.js +36 -0
- package/dist/skeleton/skeleton.stories.js.map +1 -0
- package/dist/spinner/spinner.d.ts +29 -0
- package/dist/spinner/spinner.d.ts.map +1 -0
- package/dist/spinner/spinner.js +131 -0
- package/dist/spinner/spinner.js.map +1 -0
- package/dist/spinner/spinner.stories.d.ts +8 -0
- package/dist/spinner/spinner.stories.d.ts.map +1 -0
- package/dist/spinner/spinner.stories.js +29 -0
- package/dist/spinner/spinner.stories.js.map +1 -0
- package/dist/tabs/tab-list.d.ts +45 -0
- package/dist/tabs/tab-list.d.ts.map +1 -0
- package/dist/tabs/tab-list.js +150 -0
- package/dist/tabs/tab-list.js.map +1 -0
- package/dist/tabs/tab-list.stories.d.ts +7 -0
- package/dist/tabs/tab-list.stories.d.ts.map +1 -0
- package/dist/tabs/tab-list.stories.js +27 -0
- package/dist/tabs/tab-list.stories.js.map +1 -0
- package/dist/tabs/tab.d.ts +40 -0
- package/dist/tabs/tab.d.ts.map +1 -0
- package/dist/tabs/tab.js +114 -0
- package/dist/tabs/tab.js.map +1 -0
- package/dist/tabs/tab.stories.d.ts +13 -0
- package/dist/tabs/tab.stories.d.ts.map +1 -0
- package/dist/tabs/tab.stories.js +28 -0
- package/dist/tabs/tab.stories.js.map +1 -0
- package/dist/tag/tag.d.ts +38 -0
- package/dist/tag/tag.d.ts.map +1 -0
- package/dist/tag/tag.js +71 -0
- package/dist/tag/tag.js.map +1 -0
- package/dist/tag/tag.stories.d.ts +10 -0
- package/dist/tag/tag.stories.d.ts.map +1 -0
- package/dist/tag/tag.stories.js +43 -0
- package/dist/tag/tag.stories.js.map +1 -0
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +2 -0
- package/dist/test-setup.js.map +1 -0
- package/dist/textarea/textarea.d.ts +60 -0
- package/dist/textarea/textarea.d.ts.map +1 -0
- package/dist/textarea/textarea.js +232 -0
- package/dist/textarea/textarea.js.map +1 -0
- package/dist/textarea/textarea.stories.d.ts +10 -0
- package/dist/textarea/textarea.stories.d.ts.map +1 -0
- package/dist/textarea/textarea.stories.js +47 -0
- package/dist/textarea/textarea.stories.js.map +1 -0
- package/dist/toggle/toggle.d.ts +43 -0
- package/dist/toggle/toggle.d.ts.map +1 -0
- package/dist/toggle/toggle.js +189 -0
- package/dist/toggle/toggle.js.map +1 -0
- package/dist/toggle/toggle.stories.d.ts +9 -0
- package/dist/toggle/toggle.stories.d.ts.map +1 -0
- package/dist/toggle/toggle.stories.js +34 -0
- package/dist/toggle/toggle.stories.js.map +1 -0
- package/package.json +65 -0
- package/src/react.d.ts +199 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { LitElement, nothing } from 'lit';
|
|
2
|
+
export type AlertVariant = 'success' | 'warning' | 'danger' | 'info';
|
|
3
|
+
/**
|
|
4
|
+
* An inline notification banner for success, warning, danger, and info messages.
|
|
5
|
+
*
|
|
6
|
+
* Use for form-level feedback, async status messages, and system notifications.
|
|
7
|
+
* For field-level validation errors, use `<rr-input error-text="...">` instead.
|
|
8
|
+
*
|
|
9
|
+
* @slot - Alert body content
|
|
10
|
+
* @slot icon - Optional icon in front of the heading (use <rr-icon>)
|
|
11
|
+
* @fires close - When the dismiss button is clicked (only fires when dismissible)
|
|
12
|
+
* @csspart alert - The root alert element
|
|
13
|
+
* @csspart heading - The heading text element
|
|
14
|
+
* @csspart content - The content slot wrapper
|
|
15
|
+
* @csspart dismiss - The dismiss button
|
|
16
|
+
*/
|
|
17
|
+
export declare class RrAlert extends LitElement {
|
|
18
|
+
static styles: import("lit").CSSResult;
|
|
19
|
+
/** Visual variant and semantic role. */
|
|
20
|
+
variant: AlertVariant;
|
|
21
|
+
/** Optional bold heading rendered above the body content. */
|
|
22
|
+
heading: string;
|
|
23
|
+
/** When true, renders a dismiss button that hides the alert and fires close. */
|
|
24
|
+
dismissible: boolean;
|
|
25
|
+
private _dismissed;
|
|
26
|
+
private _dismiss;
|
|
27
|
+
/** Reshow the alert after it has been dismissed. */
|
|
28
|
+
show(): void;
|
|
29
|
+
render(): typeof nothing | import("lit-html").TemplateResult<1>;
|
|
30
|
+
}
|
|
31
|
+
declare global {
|
|
32
|
+
interface HTMLElementTagNameMap {
|
|
33
|
+
'rr-alert': RrAlert;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/alert/alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAGrD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,MAAM,CAAC,MAAM,0BAwFX;IAEF,wCAAwC;IACX,OAAO,EAAE,YAAY,CAAa;IAC/D,6DAA6D;IACjD,OAAO,SAAM;IACzB,gFAAgF;IACpC,WAAW,UAAS;IAEvD,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,QAAQ;IAMhB,oDAAoD;IACpD,IAAI;IAKJ,MAAM;CA6BP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html, css, nothing } from 'lit';
|
|
8
|
+
import { customElement, property, state } from 'lit/decorators.js';
|
|
9
|
+
/**
|
|
10
|
+
* An inline notification banner for success, warning, danger, and info messages.
|
|
11
|
+
*
|
|
12
|
+
* Use for form-level feedback, async status messages, and system notifications.
|
|
13
|
+
* For field-level validation errors, use `<rr-input error-text="...">` instead.
|
|
14
|
+
*
|
|
15
|
+
* @slot - Alert body content
|
|
16
|
+
* @slot icon - Optional icon in front of the heading (use <rr-icon>)
|
|
17
|
+
* @fires close - When the dismiss button is clicked (only fires when dismissible)
|
|
18
|
+
* @csspart alert - The root alert element
|
|
19
|
+
* @csspart heading - The heading text element
|
|
20
|
+
* @csspart content - The content slot wrapper
|
|
21
|
+
* @csspart dismiss - The dismiss button
|
|
22
|
+
*/
|
|
23
|
+
let RrAlert = class RrAlert extends LitElement {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
/** Visual variant and semantic role. */
|
|
27
|
+
this.variant = 'success';
|
|
28
|
+
/** Optional bold heading rendered above the body content. */
|
|
29
|
+
this.heading = '';
|
|
30
|
+
/** When true, renders a dismiss button that hides the alert and fires close. */
|
|
31
|
+
this.dismissible = false;
|
|
32
|
+
this._dismissed = false;
|
|
33
|
+
}
|
|
34
|
+
_dismiss() {
|
|
35
|
+
this._dismissed = true;
|
|
36
|
+
this.dispatchEvent(new Event('close', { bubbles: true, composed: true }));
|
|
37
|
+
this.setAttribute('hidden', '');
|
|
38
|
+
}
|
|
39
|
+
/** Reshow the alert after it has been dismissed. */
|
|
40
|
+
show() {
|
|
41
|
+
this._dismissed = false;
|
|
42
|
+
this.removeAttribute('hidden');
|
|
43
|
+
}
|
|
44
|
+
render() {
|
|
45
|
+
if (this._dismissed)
|
|
46
|
+
return nothing;
|
|
47
|
+
return html `
|
|
48
|
+
<div class="alert" part="alert" role="alert">
|
|
49
|
+
<slot name="icon"></slot>
|
|
50
|
+
<div class="body">
|
|
51
|
+
${this.heading
|
|
52
|
+
? html `<p class="heading" part="heading">${this.heading}</p>`
|
|
53
|
+
: nothing}
|
|
54
|
+
<div class="content" part="content"><slot></slot></div>
|
|
55
|
+
</div>
|
|
56
|
+
${this.dismissible
|
|
57
|
+
? html `
|
|
58
|
+
<button
|
|
59
|
+
class="dismiss"
|
|
60
|
+
part="dismiss"
|
|
61
|
+
aria-label="Dismiss"
|
|
62
|
+
@click=${this._dismiss}
|
|
63
|
+
>
|
|
64
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
|
65
|
+
<path d="M12 4L4 12M4 4L12 12" stroke="currentColor" stroke-width="1.5"
|
|
66
|
+
stroke-linecap="round" stroke-linejoin="round"/>
|
|
67
|
+
</svg>
|
|
68
|
+
</button>`
|
|
69
|
+
: nothing}
|
|
70
|
+
</div>
|
|
71
|
+
`;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
RrAlert.styles = css `
|
|
75
|
+
:host {
|
|
76
|
+
display: block;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
:host([hidden]) {
|
|
80
|
+
display: none;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.alert {
|
|
84
|
+
display: flex;
|
|
85
|
+
align-items: flex-start;
|
|
86
|
+
gap: var(--spacing-tight);
|
|
87
|
+
padding: var(--component-alert-padding-y) var(--component-alert-padding-x);
|
|
88
|
+
border-radius: var(--component-alert-radius);
|
|
89
|
+
border: 1px solid var(--component-alert-success-border);
|
|
90
|
+
background: var(--component-alert-success-background);
|
|
91
|
+
color: var(--component-alert-success-foreground);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Variant: warning */
|
|
95
|
+
:host([variant='warning']) .alert {
|
|
96
|
+
border-color: var(--component-alert-warning-border);
|
|
97
|
+
background: var(--component-alert-warning-background);
|
|
98
|
+
color: var(--component-alert-warning-foreground);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* Variant: danger */
|
|
102
|
+
:host([variant='danger']) .alert {
|
|
103
|
+
border-color: var(--component-alert-danger-border);
|
|
104
|
+
background: var(--component-alert-danger-background);
|
|
105
|
+
color: var(--component-alert-danger-foreground);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* Variant: info */
|
|
109
|
+
:host([variant='info']) .alert {
|
|
110
|
+
border-color: var(--component-alert-info-border);
|
|
111
|
+
background: var(--component-alert-info-background);
|
|
112
|
+
color: var(--component-alert-info-foreground);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.body {
|
|
116
|
+
flex: 1;
|
|
117
|
+
min-width: 0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.heading {
|
|
121
|
+
font: var(--font-label-strong-medium);
|
|
122
|
+
margin: 0 0 2px;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.content {
|
|
126
|
+
font: var(--font-body-medium);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/* Icon slot */
|
|
130
|
+
::slotted([slot='icon']) {
|
|
131
|
+
flex-shrink: 0;
|
|
132
|
+
margin-top: 1px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/* Dismiss button */
|
|
136
|
+
.dismiss {
|
|
137
|
+
flex-shrink: 0;
|
|
138
|
+
display: inline-flex;
|
|
139
|
+
align-items: center;
|
|
140
|
+
justify-content: center;
|
|
141
|
+
background: none;
|
|
142
|
+
border: none;
|
|
143
|
+
cursor: pointer;
|
|
144
|
+
color: currentColor;
|
|
145
|
+
padding: 2px;
|
|
146
|
+
border-radius: var(--radius-sm);
|
|
147
|
+
opacity: 0.7;
|
|
148
|
+
transition: opacity var(--motion-duration-instant) var(--motion-easing-default);
|
|
149
|
+
margin-top: -1px;
|
|
150
|
+
margin-right: -4px;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.dismiss:hover {
|
|
154
|
+
opacity: 1;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.dismiss:focus-visible {
|
|
158
|
+
outline: 2px solid currentColor;
|
|
159
|
+
outline-offset: 2px;
|
|
160
|
+
opacity: 1;
|
|
161
|
+
}
|
|
162
|
+
`;
|
|
163
|
+
__decorate([
|
|
164
|
+
property({ reflect: true })
|
|
165
|
+
], RrAlert.prototype, "variant", void 0);
|
|
166
|
+
__decorate([
|
|
167
|
+
property()
|
|
168
|
+
], RrAlert.prototype, "heading", void 0);
|
|
169
|
+
__decorate([
|
|
170
|
+
property({ type: Boolean, reflect: true })
|
|
171
|
+
], RrAlert.prototype, "dismissible", void 0);
|
|
172
|
+
__decorate([
|
|
173
|
+
state()
|
|
174
|
+
], RrAlert.prototype, "_dismissed", void 0);
|
|
175
|
+
RrAlert = __decorate([
|
|
176
|
+
customElement('rr-alert')
|
|
177
|
+
], RrAlert);
|
|
178
|
+
export { RrAlert };
|
|
179
|
+
//# sourceMappingURL=alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/alert/alert.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAInE;;;;;;;;;;;;;GAaG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAAhC;;QA2FL,wCAAwC;QACX,YAAO,GAAiB,SAAS,CAAC;QAC/D,6DAA6D;QACjD,YAAO,GAAG,EAAE,CAAC;QACzB,gFAAgF;QACpC,gBAAW,GAAG,KAAK,CAAC;QAE/C,eAAU,GAAG,KAAK,CAAC;IA2CtC,CAAC;IAzCS,QAAQ;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,oDAAoD;IACpD,IAAI;QACF,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,OAAO,CAAC;QAEpC,OAAO,IAAI,CAAA;;;;YAIH,IAAI,CAAC,OAAO;YACZ,CAAC,CAAC,IAAI,CAAA,qCAAqC,IAAI,CAAC,OAAO,MAAM;YAC7D,CAAC,CAAC,OAAO;;;UAGX,IAAI,CAAC,WAAW;YAChB,CAAC,CAAC,IAAI,CAAA;;;;;uBAKO,IAAI,CAAC,QAAQ;;;;;;sBAMd;YACZ,CAAC,CAAC,OAAO;;KAEd,CAAC;IACJ,CAAC;;AA3IM,cAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFlB,AAxFY,CAwFX;AAG2B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAAmC;AAEnD;IAAX,QAAQ,EAAE;wCAAc;AAEmB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAAqB;AAE/C;IAAhB,KAAK,EAAE;2CAA4B;AAlGzB,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CA6InB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import '@digital2analogue2/parsimony-components';
|
|
3
|
+
declare const meta: Meta;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj;
|
|
6
|
+
export declare const Success: Story;
|
|
7
|
+
export declare const Warning: Story;
|
|
8
|
+
export declare const Danger: Story;
|
|
9
|
+
export declare const Info: Story;
|
|
10
|
+
export declare const Dismissible: Story;
|
|
11
|
+
export declare const WithIcon: Story;
|
|
12
|
+
//# sourceMappingURL=alert.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.stories.d.ts","sourceRoot":"","sources":["../../src/alert/alert.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,yCAAyC,CAAC;AAEjD,QAAA,MAAM,IAAI,EAAE,IAoBX,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,OAAO,EAAE,KAA0D,CAAC;AAEjF,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAKpB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,KAKlB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import '@digital2analogue2/parsimony-components';
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Components/Alert',
|
|
5
|
+
component: 'rr-alert',
|
|
6
|
+
argTypes: {
|
|
7
|
+
variant: { control: 'select', options: ['success', 'warning', 'danger', 'info'] },
|
|
8
|
+
heading: { control: 'text' },
|
|
9
|
+
dismissible: { control: 'boolean' },
|
|
10
|
+
},
|
|
11
|
+
args: {
|
|
12
|
+
variant: 'success',
|
|
13
|
+
heading: 'Heads up',
|
|
14
|
+
dismissible: false,
|
|
15
|
+
},
|
|
16
|
+
render: ({ variant, heading, dismissible }) => html `
|
|
17
|
+
<rr-alert
|
|
18
|
+
variant=${variant}
|
|
19
|
+
heading=${heading}
|
|
20
|
+
?dismissible=${dismissible}
|
|
21
|
+
>Your changes have been saved.</rr-alert>
|
|
22
|
+
`,
|
|
23
|
+
};
|
|
24
|
+
export default meta;
|
|
25
|
+
export const Success = { args: { variant: 'success', heading: 'Saved' } };
|
|
26
|
+
export const Warning = {
|
|
27
|
+
args: { variant: 'warning', heading: 'Check this' },
|
|
28
|
+
render: ({ variant, heading }) => html `
|
|
29
|
+
<rr-alert variant=${variant} heading=${heading}>Some fields need your attention.</rr-alert>
|
|
30
|
+
`,
|
|
31
|
+
};
|
|
32
|
+
export const Danger = {
|
|
33
|
+
args: { variant: 'danger', heading: 'Something went wrong' },
|
|
34
|
+
render: ({ variant, heading }) => html `
|
|
35
|
+
<rr-alert variant=${variant} heading=${heading}>We couldn't process your request.</rr-alert>
|
|
36
|
+
`,
|
|
37
|
+
};
|
|
38
|
+
export const Info = {
|
|
39
|
+
args: { variant: 'info', heading: 'Did you know' },
|
|
40
|
+
render: ({ variant, heading }) => html `
|
|
41
|
+
<rr-alert variant=${variant} heading=${heading}>Tokens sync automatically on build.</rr-alert>
|
|
42
|
+
`,
|
|
43
|
+
};
|
|
44
|
+
export const Dismissible = {
|
|
45
|
+
args: { variant: 'info', heading: 'Dismissible', dismissible: true },
|
|
46
|
+
};
|
|
47
|
+
export const WithIcon = {
|
|
48
|
+
render: () => html `
|
|
49
|
+
<rr-alert variant="success" heading="Deployed">
|
|
50
|
+
<rr-icon slot="icon" aria-label="Success">
|
|
51
|
+
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
52
|
+
<path d="M20 6 9 17l-5-5" />
|
|
53
|
+
</svg>
|
|
54
|
+
</rr-icon>
|
|
55
|
+
Your site is live.
|
|
56
|
+
</rr-alert>
|
|
57
|
+
`,
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=alert.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.stories.js","sourceRoot":"","sources":["../../src/alert/alert.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,yCAAyC,CAAC;AAEjD,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,UAAU;IACrB,QAAQ,EAAE;QACR,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;QACjF,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QAC5B,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE;KACpC;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE,KAAK;KACnB;IACD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,IAAI,CAAA;;gBAErC,OAAO;gBACP,OAAO;qBACF,WAAW;;GAE7B;CACF,CAAC;AACF,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,OAAO,GAAU,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC;AAEjF,MAAM,CAAC,MAAM,OAAO,GAAU;IAC5B,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE;IACnD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAA;wBAChB,OAAO,YAAY,OAAO;GAC/C;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAU;IAC3B,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAsB,EAAE;IAC5D,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAA;wBAChB,OAAO,YAAY,OAAO;GAC/C;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAU;IACzB,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE;IAClD,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,CAAA;wBAChB,OAAO,YAAY,OAAO;GAC/C;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE;CACrE,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAA;;;;;;;;;GASjB;CACF,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
3
|
+
export type AvatarColor = 'default' | 'indigo' | 'sky' | 'green' | 'amber';
|
|
4
|
+
/**
|
|
5
|
+
* A circular identity surface showing initials or an image.
|
|
6
|
+
*
|
|
7
|
+
* When `src` is provided an `<img>` fills the circle. When omitted, up to two
|
|
8
|
+
* initials are derived from `name` (first letter of each word, max two words).
|
|
9
|
+
* Colorized variants use the accent-bold fill tier with matching on-* foreground
|
|
10
|
+
* tokens — all pairs are WCAG AA verified.
|
|
11
|
+
*
|
|
12
|
+
* @slot - Optional custom content to replace initials (e.g. an icon)
|
|
13
|
+
* @csspart avatar - The root circle element
|
|
14
|
+
* @csspart img - The img element (only when src is set)
|
|
15
|
+
* @csspart initials - The initials text element
|
|
16
|
+
*/
|
|
17
|
+
export declare class RrAvatar extends LitElement {
|
|
18
|
+
static styles: import("lit").CSSResult;
|
|
19
|
+
/** Circle diameter. */
|
|
20
|
+
size: AvatarSize;
|
|
21
|
+
/** Accent-bold color variant for the initials surface. */
|
|
22
|
+
color: AvatarColor;
|
|
23
|
+
/** Full name used to derive up to two initials and the accessible label. */
|
|
24
|
+
name: string;
|
|
25
|
+
/** Image URL. When set, an img fills the circle instead of initials. */
|
|
26
|
+
src: string;
|
|
27
|
+
/** Alt text for the image; falls back to name when omitted. */
|
|
28
|
+
imgAlt: string;
|
|
29
|
+
private get _initials();
|
|
30
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
31
|
+
}
|
|
32
|
+
declare global {
|
|
33
|
+
interface HTMLElementTagNameMap {
|
|
34
|
+
'rr-avatar': RrAvatar;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=avatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/avatar/avatar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACnD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3E;;;;;;;;;;;;GAYG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,MAAM,0BAoEX;IAEF,uBAAuB;IACM,IAAI,EAAE,UAAU,CAAQ;IACrD,0DAA0D;IAC7B,KAAK,EAAE,WAAW,CAAa;IAC5D,4EAA4E;IAChE,IAAI,SAAM;IACtB,wEAAwE;IAC5D,GAAG,SAAM;IACrB,+DAA+D;IAC/B,MAAM,SAAM;IAE5C,OAAO,KAAK,SAAS,GAKpB;IAED,MAAM;CAiBP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html, css, nothing } from 'lit';
|
|
8
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
9
|
+
/**
|
|
10
|
+
* A circular identity surface showing initials or an image.
|
|
11
|
+
*
|
|
12
|
+
* When `src` is provided an `<img>` fills the circle. When omitted, up to two
|
|
13
|
+
* initials are derived from `name` (first letter of each word, max two words).
|
|
14
|
+
* Colorized variants use the accent-bold fill tier with matching on-* foreground
|
|
15
|
+
* tokens — all pairs are WCAG AA verified.
|
|
16
|
+
*
|
|
17
|
+
* @slot - Optional custom content to replace initials (e.g. an icon)
|
|
18
|
+
* @csspart avatar - The root circle element
|
|
19
|
+
* @csspart img - The img element (only when src is set)
|
|
20
|
+
* @csspart initials - The initials text element
|
|
21
|
+
*/
|
|
22
|
+
let RrAvatar = class RrAvatar extends LitElement {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
/** Circle diameter. */
|
|
26
|
+
this.size = 'md';
|
|
27
|
+
/** Accent-bold color variant for the initials surface. */
|
|
28
|
+
this.color = 'default';
|
|
29
|
+
/** Full name used to derive up to two initials and the accessible label. */
|
|
30
|
+
this.name = '';
|
|
31
|
+
/** Image URL. When set, an img fills the circle instead of initials. */
|
|
32
|
+
this.src = '';
|
|
33
|
+
/** Alt text for the image; falls back to name when omitted. */
|
|
34
|
+
this.imgAlt = '';
|
|
35
|
+
}
|
|
36
|
+
get _initials() {
|
|
37
|
+
if (!this.name)
|
|
38
|
+
return '';
|
|
39
|
+
const words = this.name.trim().split(/\s+/).filter(Boolean);
|
|
40
|
+
if (words.length === 1)
|
|
41
|
+
return words[0].charAt(0).toUpperCase();
|
|
42
|
+
return (words[0].charAt(0) + words[words.length - 1].charAt(0)).toUpperCase();
|
|
43
|
+
}
|
|
44
|
+
render() {
|
|
45
|
+
const hasSlot = this.querySelectorAll('*').length > 0;
|
|
46
|
+
return html `
|
|
47
|
+
<div
|
|
48
|
+
class="avatar"
|
|
49
|
+
part="avatar"
|
|
50
|
+
role=${this.name && !this.src ? 'img' : nothing}
|
|
51
|
+
aria-label=${this.name && !this.src ? this.name : nothing}
|
|
52
|
+
>
|
|
53
|
+
${this.src
|
|
54
|
+
? html `<img part="img" src=${this.src} alt=${this.imgAlt || this.name || ''} />`
|
|
55
|
+
: hasSlot
|
|
56
|
+
? html `<slot></slot>`
|
|
57
|
+
: html `<span part="initials" aria-hidden="true">${this._initials}</span>`}
|
|
58
|
+
</div>
|
|
59
|
+
`;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
RrAvatar.styles = css `
|
|
63
|
+
:host {
|
|
64
|
+
display: inline-flex;
|
|
65
|
+
flex-shrink: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.avatar {
|
|
69
|
+
display: inline-flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
justify-content: center;
|
|
72
|
+
border-radius: 50%;
|
|
73
|
+
overflow: hidden;
|
|
74
|
+
background: var(--component-avatar-background-default);
|
|
75
|
+
color: var(--component-avatar-foreground-default);
|
|
76
|
+
width: var(--component-avatar-size-md);
|
|
77
|
+
height: var(--component-avatar-size-md);
|
|
78
|
+
font: var(--font-label-strong-small);
|
|
79
|
+
flex-shrink: 0;
|
|
80
|
+
user-select: none;
|
|
81
|
+
line-height: 1;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/* Sizes */
|
|
85
|
+
:host([size='sm']) .avatar {
|
|
86
|
+
width: var(--component-avatar-size-sm);
|
|
87
|
+
height: var(--component-avatar-size-sm);
|
|
88
|
+
font: var(--font-label-strong-xsmall);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
:host([size='lg']) .avatar {
|
|
92
|
+
width: var(--component-avatar-size-lg);
|
|
93
|
+
height: var(--component-avatar-size-lg);
|
|
94
|
+
font: var(--font-label-strong-medium);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
:host([size='xl']) .avatar {
|
|
98
|
+
width: var(--component-avatar-size-xl);
|
|
99
|
+
height: var(--component-avatar-size-xl);
|
|
100
|
+
font: var(--font-label-strong-medium);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* Color variants */
|
|
104
|
+
:host([color='indigo']) .avatar {
|
|
105
|
+
background: var(--component-avatar-background-indigo);
|
|
106
|
+
color: var(--component-avatar-foreground-indigo);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
:host([color='sky']) .avatar {
|
|
110
|
+
background: var(--component-avatar-background-sky);
|
|
111
|
+
color: var(--component-avatar-foreground-sky);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
:host([color='green']) .avatar {
|
|
115
|
+
background: var(--component-avatar-background-green);
|
|
116
|
+
color: var(--component-avatar-foreground-green);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
:host([color='amber']) .avatar {
|
|
120
|
+
background: var(--component-avatar-background-amber);
|
|
121
|
+
color: var(--component-avatar-foreground-amber);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
img {
|
|
125
|
+
display: block;
|
|
126
|
+
width: 100%;
|
|
127
|
+
height: 100%;
|
|
128
|
+
object-fit: cover;
|
|
129
|
+
}
|
|
130
|
+
`;
|
|
131
|
+
__decorate([
|
|
132
|
+
property({ reflect: true })
|
|
133
|
+
], RrAvatar.prototype, "size", void 0);
|
|
134
|
+
__decorate([
|
|
135
|
+
property({ reflect: true })
|
|
136
|
+
], RrAvatar.prototype, "color", void 0);
|
|
137
|
+
__decorate([
|
|
138
|
+
property()
|
|
139
|
+
], RrAvatar.prototype, "name", void 0);
|
|
140
|
+
__decorate([
|
|
141
|
+
property()
|
|
142
|
+
], RrAvatar.prototype, "src", void 0);
|
|
143
|
+
__decorate([
|
|
144
|
+
property({ attribute: 'alt' })
|
|
145
|
+
], RrAvatar.prototype, "imgAlt", void 0);
|
|
146
|
+
RrAvatar = __decorate([
|
|
147
|
+
customElement('rr-avatar')
|
|
148
|
+
], RrAvatar);
|
|
149
|
+
export { RrAvatar };
|
|
150
|
+
//# sourceMappingURL=avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../src/avatar/avatar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAK5D;;;;;;;;;;;;GAYG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QAuEL,uBAAuB;QACM,SAAI,GAAe,IAAI,CAAC;QACrD,0DAA0D;QAC7B,UAAK,GAAgB,SAAS,CAAC;QAC5D,4EAA4E;QAChE,SAAI,GAAG,EAAE,CAAC;QACtB,wEAAwE;QAC5D,QAAG,GAAG,EAAE,CAAC;QACrB,+DAA+D;QAC/B,WAAM,GAAG,EAAE,CAAC;IA0B9C,CAAC;IAxBC,IAAY,SAAS;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAChE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChF,CAAC;IAED,MAAM;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACtD,OAAO,IAAI,CAAA;;;;eAIA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;qBAClC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;;UAEvD,IAAI,CAAC,GAAG;YACR,CAAC,CAAC,IAAI,CAAA,uBAAuB,IAAI,CAAC,GAAG,QAAQ,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,KAAK;YAChF,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,IAAI,CAAA,eAAe;gBACrB,CAAC,CAAC,IAAI,CAAA,4CAA4C,IAAI,CAAC,SAAS,SAAS;;KAE9E,CAAC;IACJ,CAAC;;AAxGM,eAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoElB,AApEY,CAoEX;AAG2B;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;sCAAyB;AAExB;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCAAgC;AAEhD;IAAX,QAAQ,EAAE;sCAAW;AAEV;IAAX,QAAQ,EAAE;qCAAU;AAEW;IAA/B,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;wCAAa;AAhFjC,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CA0GpB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import '@digital2analogue2/parsimony-components';
|
|
3
|
+
declare const meta: Meta;
|
|
4
|
+
export default meta;
|
|
5
|
+
type Story = StoryObj;
|
|
6
|
+
export declare const Initials: Story;
|
|
7
|
+
export declare const Sizes: Story;
|
|
8
|
+
export declare const Colors: Story;
|
|
9
|
+
export declare const Image: Story;
|
|
10
|
+
//# sourceMappingURL=avatar.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.stories.d.ts","sourceRoot":"","sources":["../../src/avatar/avatar.stories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,yCAAyC,CAAC;AAEjD,QAAA,MAAM,IAAI,EAAE,IA0BX,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,QAAQ,EAAE,KAA0C,CAAC;AAElE,eAAO,MAAM,KAAK,EAAE,KASnB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAUpB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAEnB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import '@digital2analogue2/parsimony-components';
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Components/Avatar',
|
|
5
|
+
component: 'rr-avatar',
|
|
6
|
+
argTypes: {
|
|
7
|
+
size: { control: 'select', options: ['sm', 'md', 'lg', 'xl'] },
|
|
8
|
+
color: { control: 'select', options: ['default', 'indigo', 'sky', 'green', 'amber'] },
|
|
9
|
+
name: { control: 'text' },
|
|
10
|
+
src: { control: 'text' },
|
|
11
|
+
alt: { control: 'text' },
|
|
12
|
+
},
|
|
13
|
+
args: {
|
|
14
|
+
size: 'md',
|
|
15
|
+
color: 'default',
|
|
16
|
+
name: 'River Romney',
|
|
17
|
+
src: '',
|
|
18
|
+
alt: '',
|
|
19
|
+
},
|
|
20
|
+
render: ({ size, color, name, src, alt }) => html `
|
|
21
|
+
<rr-avatar
|
|
22
|
+
size=${size}
|
|
23
|
+
color=${color}
|
|
24
|
+
name=${name}
|
|
25
|
+
src=${src}
|
|
26
|
+
alt=${alt}
|
|
27
|
+
></rr-avatar>
|
|
28
|
+
`,
|
|
29
|
+
};
|
|
30
|
+
export default meta;
|
|
31
|
+
export const Initials = { args: { name: 'River Romney' } };
|
|
32
|
+
export const Sizes = {
|
|
33
|
+
render: () => html `
|
|
34
|
+
<div style="display: flex; align-items: center; gap: var(--spacing-inline);">
|
|
35
|
+
<rr-avatar size="sm" name="River Romney"></rr-avatar>
|
|
36
|
+
<rr-avatar size="md" name="River Romney"></rr-avatar>
|
|
37
|
+
<rr-avatar size="lg" name="River Romney"></rr-avatar>
|
|
38
|
+
<rr-avatar size="xl" name="River Romney"></rr-avatar>
|
|
39
|
+
</div>
|
|
40
|
+
`,
|
|
41
|
+
};
|
|
42
|
+
export const Colors = {
|
|
43
|
+
render: () => html `
|
|
44
|
+
<div style="display: flex; align-items: center; gap: var(--spacing-inline);">
|
|
45
|
+
<rr-avatar color="default" name="River Romney"></rr-avatar>
|
|
46
|
+
<rr-avatar color="indigo" name="River Romney"></rr-avatar>
|
|
47
|
+
<rr-avatar color="sky" name="River Romney"></rr-avatar>
|
|
48
|
+
<rr-avatar color="green" name="River Romney"></rr-avatar>
|
|
49
|
+
<rr-avatar color="amber" name="River Romney"></rr-avatar>
|
|
50
|
+
</div>
|
|
51
|
+
`,
|
|
52
|
+
};
|
|
53
|
+
export const Image = {
|
|
54
|
+
args: { src: 'https://i.pravatar.cc/96', alt: 'User' },
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=avatar.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.stories.js","sourceRoot":"","sources":["../../src/avatar/avatar.stories.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,yCAAyC,CAAC;AAEjD,MAAM,IAAI,GAAS;IACjB,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE;QACR,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;QAC9D,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QACrF,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QACzB,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;QACxB,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;KACzB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;KACR;IACD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAA;;aAEtC,IAAI;cACH,KAAK;aACN,IAAI;YACL,GAAG;YACH,GAAG;;GAEZ;CACF,CAAC;AACF,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,QAAQ,GAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,CAAC;AAElE,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAA;;;;;;;GAOjB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAU;IAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAA;;;;;;;;GAQjB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAU;IAC1B,IAAI,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,EAAE,MAAM,EAAE;CACvD,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
|
+
export type BadgeVariant = 'default' | 'success' | 'warning' | 'danger' | 'info' | 'accent-green' | 'accent-blue' | 'accent-violet' | 'accent-amber';
|
|
3
|
+
/**
|
|
4
|
+
* A status badge / chip component.
|
|
5
|
+
*
|
|
6
|
+
* Uses component-level design tokens for all visual properties.
|
|
7
|
+
* Brand theming cascades automatically via CSS custom properties on `:root`.
|
|
8
|
+
*
|
|
9
|
+
* @slot - Badge label text
|
|
10
|
+
* @cssprop --component-badge-{variant}-background
|
|
11
|
+
* @cssprop --component-badge-{variant}-foreground
|
|
12
|
+
* @cssprop --component-badge-{variant}-border
|
|
13
|
+
* @cssprop --component-badge-radius
|
|
14
|
+
* @cssprop --component-badge-padding-x
|
|
15
|
+
* @cssprop --component-badge-padding-y
|
|
16
|
+
*/
|
|
17
|
+
export declare class RrBadge extends LitElement {
|
|
18
|
+
static styles: import("lit").CSSResult;
|
|
19
|
+
/**
|
|
20
|
+
* Visual variant. Status variants (success, warning, danger, info) convey
|
|
21
|
+
* semantic meaning. Accent variants are decorative emphasis tags.
|
|
22
|
+
*/
|
|
23
|
+
variant: BadgeVariant;
|
|
24
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
25
|
+
}
|
|
26
|
+
declare global {
|
|
27
|
+
interface HTMLElementTagNameMap {
|
|
28
|
+
'rr-badge': RrBadge;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/badge/badge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,SAAS,GACT,SAAS,GACT,QAAQ,GACR,MAAM,GACN,cAAc,GACd,aAAa,GACb,eAAe,GACf,cAAc,CAAC;AAEnB;;;;;;;;;;;;;GAaG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,MAAM,CAAC,MAAM,0BA4DX;IAEF;;;OAGG;IAEH,OAAO,EAAE,YAAY,CAAa;IAElC,MAAM;CAGP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
|