@helixui/library 1.1.2-next.2 → 1.1.2-next.4
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 +623 -629
- package/dist/components/hx-avatar/hx-avatar.styles.d.ts.map +1 -1
- package/dist/components/hx-avatar/index.js +1 -1
- package/dist/components/hx-button/hx-button.d.ts +12 -6
- package/dist/components/hx-button/hx-button.d.ts.map +1 -1
- package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -1
- package/dist/components/hx-button/index.js +1 -1
- package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +14 -6
- package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -1
- package/dist/components/hx-clinical-status/hx-clinical-status.styles.d.ts.map +1 -1
- package/dist/components/hx-clinical-status/index.d.ts +1 -1
- package/dist/components/hx-clinical-status/index.d.ts.map +1 -1
- package/dist/components/hx-clinical-status/index.js +1 -1
- package/dist/css/helix-all.css +56 -3
- package/dist/css/helix-core.css +52 -1
- package/dist/css/hx-avatar.css +18 -1
- package/dist/css/hx-button.css +34 -0
- package/dist/css/hx-clinical-status.css +4 -2
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +2 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/shared/{hx-avatar-7p1cj3lG.js → hx-avatar-CZfA9KEl.js} +27 -10
- package/dist/shared/hx-avatar-CZfA9KEl.js.map +1 -0
- package/dist/shared/{hx-button-6S3DwuIj.js → hx-button-CC1YH9RZ.js} +52 -12
- package/dist/shared/hx-button-CC1YH9RZ.js.map +1 -0
- package/dist/shared/{hx-clinical-status-De8yrA5I.js → hx-clinical-status-D6eaplvs.js} +5 -3
- package/dist/shared/hx-clinical-status-D6eaplvs.js.map +1 -0
- package/package.json +2 -2
- package/dist/shared/hx-avatar-7p1cj3lG.js.map +0 -1
- package/dist/shared/hx-button-6S3DwuIj.js.map +0 -1
- package/dist/shared/hx-clinical-status-De8yrA5I.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-avatar.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-avatar/hx-avatar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"hx-avatar.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-avatar/hx-avatar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAsI7B,CAAC"}
|
|
@@ -109,14 +109,20 @@ export declare class HelixButton extends HelixButton_base {
|
|
|
109
109
|
updated(changedProperties: PropertyValues<this>): void;
|
|
110
110
|
/** @internal */
|
|
111
111
|
private _handleDefaultSlotChange;
|
|
112
|
-
/**
|
|
113
|
-
|
|
112
|
+
/**
|
|
113
|
+
* @private
|
|
114
|
+
* @internal
|
|
115
|
+
*/
|
|
114
116
|
private _handleClick;
|
|
115
|
-
/**
|
|
116
|
-
|
|
117
|
+
/**
|
|
118
|
+
* @private
|
|
119
|
+
* @internal
|
|
120
|
+
*/
|
|
117
121
|
private _renderSpinner;
|
|
118
|
-
/**
|
|
119
|
-
|
|
122
|
+
/**
|
|
123
|
+
* @private
|
|
124
|
+
* @internal
|
|
125
|
+
*/
|
|
120
126
|
private _renderInner;
|
|
121
127
|
render(): TemplateResult<1>;
|
|
122
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-button.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;;AAS1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,WAAY,SAAQ,gBAA8B;IAC7D,OAAgB,MAAM,4BAAoC;IAI1D,gBAAgB;IAChB,MAAM,CAAC,cAAc,UAAQ;IAE7B,gBAAgB;IAChB,OAAO,CAAC,UAAU,CAAmB;;IAUrC;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAa;IAE3F;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;;OAIG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE/C;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAEvC;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAEtC;;;;OAIG;IAEH,IAAI,UAAS;IAEb;;;;OAIG;IAEH,QAAQ,UAAS;IAIjB,mDAAmD;IACnD,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,gBAAgB;IAChB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAM7C,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAO5B;IAEF,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAgB/D,gBAAgB;IAChB,OAAO,CAAC,wBAAwB;IAahC
|
|
1
|
+
{"version":3,"file":"hx-button.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;;AAS1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,WAAY,SAAQ,gBAA8B;IAC7D,OAAgB,MAAM,4BAAoC;IAI1D,gBAAgB;IAChB,MAAM,CAAC,cAAc,UAAQ;IAE7B,gBAAgB;IAChB,OAAO,CAAC,UAAU,CAAmB;;IAUrC;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAa;IAE3F;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;;OAIG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE/C;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAEvC;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAEtC;;;;OAIG;IAEH,IAAI,UAAS;IAEb;;;;OAIG;IAEH,QAAQ,UAAS;IAIjB,mDAAmD;IACnD,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,gBAAgB;IAChB,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAM7C,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAO5B;IAEF,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAgB/D,gBAAgB;IAChB,OAAO,CAAC,wBAAwB;IAahC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAgCpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA6BtB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAiBX,MAAM;CAyChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,WAAW,CAAC;KAC1B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"hx-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAwS7B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PropertyValues } from 'lit';
|
|
1
2
|
import { HelixElement } from '../../base/index.js';
|
|
2
3
|
/** Clinical severity level for alert fatigue prevention. */
|
|
3
4
|
export type ClinicalSeverity = 'info' | 'warning' | 'critical' | 'emergent';
|
|
@@ -12,8 +13,8 @@ export type ClinicalSeverity = 'info' | 'warning' | 'critical' | 'emergent';
|
|
|
12
13
|
*
|
|
13
14
|
* @slot - Default slot for additional message content.
|
|
14
15
|
*
|
|
15
|
-
* @fires {CustomEvent} hx-dismiss - Dispatched when the user dismisses the status.
|
|
16
|
-
* @fires {CustomEvent} hx-acknowledge - Dispatched when the user acknowledges a critical/emergent status.
|
|
16
|
+
* @fires {CustomEvent<void>} hx-dismiss - Dispatched when the user dismisses the status.
|
|
17
|
+
* @fires {CustomEvent<{ severity: ClinicalSeverity; persistent: boolean }>} hx-acknowledge - Dispatched when the user acknowledges a critical/emergent status.
|
|
17
18
|
*
|
|
18
19
|
* @csspart container - The outer status container.
|
|
19
20
|
* @csspart icon - The icon container.
|
|
@@ -80,9 +81,15 @@ export declare class HelixClinicalStatus extends HelixElement {
|
|
|
80
81
|
private _hasSlottedContent;
|
|
81
82
|
/** @internal */
|
|
82
83
|
private _acknowledged;
|
|
83
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* SSR-safe unique ID for ARIA relationships.
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
84
88
|
private _componentId;
|
|
85
|
-
/**
|
|
89
|
+
/**
|
|
90
|
+
* Tracks whether `persistent` was explicitly set by the consumer.
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
86
93
|
private _persistentExplicitlySet;
|
|
87
94
|
/** Returns true when the severity requires assertive announcement. */
|
|
88
95
|
private get _isAssertive();
|
|
@@ -96,7 +103,7 @@ export declare class HelixClinicalStatus extends HelixElement {
|
|
|
96
103
|
private get _effectivePersistent();
|
|
97
104
|
connectedCallback(): void;
|
|
98
105
|
attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
|
|
99
|
-
protected updated(changedProperties:
|
|
106
|
+
protected updated(changedProperties: PropertyValues<this>): void;
|
|
100
107
|
/** @internal */
|
|
101
108
|
private _renderInfoIcon;
|
|
102
109
|
/** @internal */
|
|
@@ -122,5 +129,6 @@ declare global {
|
|
|
122
129
|
'hx-clinical-status': HelixClinicalStatus;
|
|
123
130
|
}
|
|
124
131
|
}
|
|
125
|
-
|
|
132
|
+
/** Canonical type alias for the hx-clinical-status component. */
|
|
133
|
+
export type HxClinicalStatus = HelixClinicalStatus;
|
|
126
134
|
//# sourceMappingURL=hx-clinical-status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-clinical-status.d.ts","sourceRoot":"","sources":["../../../src/components/hx-clinical-status/hx-clinical-status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hx-clinical-status.d.ts","sourceRoot":"","sources":["../../../src/components/hx-clinical-status/hx-clinical-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,4DAA4D;AAC5D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAI5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBACa,mBAAoB,SAAQ,YAAY;IACnD,OAAgB,MAAM,4BAA4C;IAIlE;;;;;;;OAOG;IAEH,QAAQ,EAAE,gBAAgB,CAAU;IAEpC;;;OAGG;IAEH,OAAO,SAAM;IAEb;;;;OAIG;IAEH,WAAW,UAAS;IAEpB;;;;;OAKG;IAEH,UAAU,UAAS;IAEnB;;;OAGG;IAEH,IAAI,SAAM;IAEV;;;;OAIG;IAEH,OAAO,UAAS;IAIhB,gBAAgB;IAEhB,OAAO,CAAC,kBAAkB,CAAS;IAEnC,gBAAgB;IAEhB,OAAO,CAAC,aAAa,CAAS;IAE9B;;;OAGG;IACH,OAAO,CAAC,YAAY,CAAY;IAEhC;;;OAGG;IACH,OAAO,CAAC,wBAAwB,CAAS;IAIzC,sEAAsE;IACtE,OAAO,KAAK,YAAY,GAEvB;IAED,2DAA2D;IAC3D,OAAO,KAAK,KAAK,GAEhB;IAED,0EAA0E;IAC1E,OAAO,CAAC,cAAc;IAUtB,uEAAuE;IACvE,OAAO,KAAK,uBAAuB,GAElC;IAED,uEAAuE;IACvE,OAAO,KAAK,oBAAoB,GAK/B;IAIQ,iBAAiB,IAAI,IAAI;IAKzB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;cAO7E,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IASzE,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAQvB,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAQ1B,gBAAgB;IAChB,OAAO,CAAC,mBAAmB;IAQ3B,gBAAgB;IAChB,OAAO,CAAC,mBAAmB;IAQ3B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAc1B,gBAAgB;IAChB,OAAO,CAAC,gBAAgB;IAUxB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAOzB,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAStB,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAgBjB,MAAM;CA+DhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,mBAAmB,CAAC;KAC3C;CACF;AAED,iEAAiE;AACjE,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-clinical-status.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-clinical-status/hx-clinical-status.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"hx-clinical-status.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-clinical-status/hx-clinical-status.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,yBAwPrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/hx-clinical-status/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/hx-clinical-status/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/css/helix-all.css
CHANGED
|
@@ -450,11 +450,28 @@
|
|
|
450
450
|
}
|
|
451
451
|
|
|
452
452
|
/* P1-B: Windows High Contrast Mode — avatar background is stripped by the system,
|
|
453
|
-
leaving no visual boundary.
|
|
453
|
+
leaving no visual boundary. Restore a visible border, explicit foreground, and
|
|
454
|
+
background so the avatar container, initials, and fallback icon all remain
|
|
455
|
+
perceivable at any contrast level.
|
|
454
456
|
WCAG 1.4.11 Non-text Contrast (Level AA). */
|
|
455
457
|
@media (forced-colors: active) {
|
|
456
458
|
.avatar {
|
|
459
|
+
forced-color-adjust: none;
|
|
457
460
|
border: 2px solid ButtonText;
|
|
461
|
+
background-color: Canvas;
|
|
462
|
+
color: CanvasText;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
.avatar__initials {
|
|
466
|
+
color: CanvasText;
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
.avatar__fallback-icon {
|
|
470
|
+
color: CanvasText;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
.avatar__image {
|
|
474
|
+
forced-color-adjust: auto;
|
|
458
475
|
}
|
|
459
476
|
}
|
|
460
477
|
/* ── hx-badge ── */
|
|
@@ -1136,6 +1153,40 @@
|
|
|
1136
1153
|
.button__label {
|
|
1137
1154
|
flex: 1 1 auto;
|
|
1138
1155
|
}
|
|
1156
|
+
|
|
1157
|
+
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
1158
|
+
|
|
1159
|
+
@media (forced-colors: active) {
|
|
1160
|
+
.button {
|
|
1161
|
+
/* Ensure button outline is visible in Windows High Contrast mode.
|
|
1162
|
+
ButtonText/ButtonFace are system colors recognized by the browser. */
|
|
1163
|
+
forced-color-adjust: none;
|
|
1164
|
+
background-color: ButtonFace;
|
|
1165
|
+
color: ButtonText;
|
|
1166
|
+
border: 2px solid ButtonText;
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1169
|
+
.button:focus-visible {
|
|
1170
|
+
outline: 3px solid Highlight;
|
|
1171
|
+
outline-offset: 2px;
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
.button[disabled] {
|
|
1175
|
+
background-color: ButtonFace;
|
|
1176
|
+
color: GrayText;
|
|
1177
|
+
border-color: GrayText;
|
|
1178
|
+
opacity: 1;
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
:host([disabled]) {
|
|
1182
|
+
opacity: 1;
|
|
1183
|
+
}
|
|
1184
|
+
|
|
1185
|
+
.button--loading .button__spinner {
|
|
1186
|
+
/* Ensure spinner is visible in HCM */
|
|
1187
|
+
forced-color-adjust: auto;
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1139
1190
|
/* ── hx-button-group ── */
|
|
1140
1191
|
:host {
|
|
1141
1192
|
display: inline-flex;
|
|
@@ -2081,7 +2132,8 @@
|
|
|
2081
2132
|
}
|
|
2082
2133
|
|
|
2083
2134
|
.clinical-status__dismiss-button:focus-visible {
|
|
2084
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
2135
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
2136
|
+
var(--hx-focus-ring-color, var(--hx-color-focus, #2563eb));
|
|
2085
2137
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
2086
2138
|
opacity: 1;
|
|
2087
2139
|
}
|
|
@@ -2126,7 +2178,8 @@
|
|
|
2126
2178
|
}
|
|
2127
2179
|
|
|
2128
2180
|
.clinical-status__acknowledge-button:focus-visible {
|
|
2129
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
2181
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
2182
|
+
var(--hx-focus-ring-color, var(--hx-color-focus, #2563eb));
|
|
2130
2183
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
2131
2184
|
}
|
|
2132
2185
|
|
package/dist/css/helix-core.css
CHANGED
|
@@ -110,11 +110,28 @@
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
/* P1-B: Windows High Contrast Mode — avatar background is stripped by the system,
|
|
113
|
-
leaving no visual boundary.
|
|
113
|
+
leaving no visual boundary. Restore a visible border, explicit foreground, and
|
|
114
|
+
background so the avatar container, initials, and fallback icon all remain
|
|
115
|
+
perceivable at any contrast level.
|
|
114
116
|
WCAG 1.4.11 Non-text Contrast (Level AA). */
|
|
115
117
|
@media (forced-colors: active) {
|
|
116
118
|
.avatar {
|
|
119
|
+
forced-color-adjust: none;
|
|
117
120
|
border: 2px solid ButtonText;
|
|
121
|
+
background-color: Canvas;
|
|
122
|
+
color: CanvasText;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.avatar__initials {
|
|
126
|
+
color: CanvasText;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.avatar__fallback-icon {
|
|
130
|
+
color: CanvasText;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.avatar__image {
|
|
134
|
+
forced-color-adjust: auto;
|
|
118
135
|
}
|
|
119
136
|
}
|
|
120
137
|
/* ── hx-badge ── */
|
|
@@ -557,6 +574,40 @@
|
|
|
557
574
|
.button__label {
|
|
558
575
|
flex: 1 1 auto;
|
|
559
576
|
}
|
|
577
|
+
|
|
578
|
+
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
579
|
+
|
|
580
|
+
@media (forced-colors: active) {
|
|
581
|
+
.button {
|
|
582
|
+
/* Ensure button outline is visible in Windows High Contrast mode.
|
|
583
|
+
ButtonText/ButtonFace are system colors recognized by the browser. */
|
|
584
|
+
forced-color-adjust: none;
|
|
585
|
+
background-color: ButtonFace;
|
|
586
|
+
color: ButtonText;
|
|
587
|
+
border: 2px solid ButtonText;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
.button:focus-visible {
|
|
591
|
+
outline: 3px solid Highlight;
|
|
592
|
+
outline-offset: 2px;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
.button[disabled] {
|
|
596
|
+
background-color: ButtonFace;
|
|
597
|
+
color: GrayText;
|
|
598
|
+
border-color: GrayText;
|
|
599
|
+
opacity: 1;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
:host([disabled]) {
|
|
603
|
+
opacity: 1;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
.button--loading .button__spinner {
|
|
607
|
+
/* Ensure spinner is visible in HCM */
|
|
608
|
+
forced-color-adjust: auto;
|
|
609
|
+
}
|
|
610
|
+
}
|
|
560
611
|
/* ── hx-button-group ── */
|
|
561
612
|
:host {
|
|
562
613
|
display: inline-flex;
|
package/dist/css/hx-avatar.css
CHANGED
|
@@ -108,10 +108,27 @@
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
/* P1-B: Windows High Contrast Mode — avatar background is stripped by the system,
|
|
111
|
-
leaving no visual boundary.
|
|
111
|
+
leaving no visual boundary. Restore a visible border, explicit foreground, and
|
|
112
|
+
background so the avatar container, initials, and fallback icon all remain
|
|
113
|
+
perceivable at any contrast level.
|
|
112
114
|
WCAG 1.4.11 Non-text Contrast (Level AA). */
|
|
113
115
|
@media (forced-colors: active) {
|
|
114
116
|
.avatar {
|
|
117
|
+
forced-color-adjust: none;
|
|
115
118
|
border: 2px solid ButtonText;
|
|
119
|
+
background-color: Canvas;
|
|
120
|
+
color: CanvasText;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.avatar__initials {
|
|
124
|
+
color: CanvasText;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.avatar__fallback-icon {
|
|
128
|
+
color: CanvasText;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.avatar__image {
|
|
132
|
+
forced-color-adjust: auto;
|
|
116
133
|
}
|
|
117
134
|
}
|
package/dist/css/hx-button.css
CHANGED
|
@@ -260,3 +260,37 @@
|
|
|
260
260
|
.button__label {
|
|
261
261
|
flex: 1 1 auto;
|
|
262
262
|
}
|
|
263
|
+
|
|
264
|
+
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
265
|
+
|
|
266
|
+
@media (forced-colors: active) {
|
|
267
|
+
.button {
|
|
268
|
+
/* Ensure button outline is visible in Windows High Contrast mode.
|
|
269
|
+
ButtonText/ButtonFace are system colors recognized by the browser. */
|
|
270
|
+
forced-color-adjust: none;
|
|
271
|
+
background-color: ButtonFace;
|
|
272
|
+
color: ButtonText;
|
|
273
|
+
border: 2px solid ButtonText;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.button:focus-visible {
|
|
277
|
+
outline: 3px solid Highlight;
|
|
278
|
+
outline-offset: 2px;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.button[disabled] {
|
|
282
|
+
background-color: ButtonFace;
|
|
283
|
+
color: GrayText;
|
|
284
|
+
border-color: GrayText;
|
|
285
|
+
opacity: 1;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
:host([disabled]) {
|
|
289
|
+
opacity: 1;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.button--loading .button__spinner {
|
|
293
|
+
/* Ensure spinner is visible in HCM */
|
|
294
|
+
forced-color-adjust: auto;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
@@ -184,7 +184,8 @@
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
.clinical-status__dismiss-button:focus-visible {
|
|
187
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
187
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
188
|
+
var(--hx-focus-ring-color, var(--hx-color-focus, #2563eb));
|
|
188
189
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
189
190
|
opacity: 1;
|
|
190
191
|
}
|
|
@@ -229,7 +230,8 @@
|
|
|
229
230
|
}
|
|
230
231
|
|
|
231
232
|
.clinical-status__acknowledge-button:focus-visible {
|
|
232
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
233
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
234
|
+
var(--hx-focus-ring-color, var(--hx-color-focus, #2563eb));
|
|
233
235
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
234
236
|
}
|
|
235
237
|
|
package/dist/css/index.css
CHANGED
package/dist/css/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generated": "2026-03-
|
|
2
|
+
"generated": "2026-03-26T21:57:25.689Z",
|
|
3
3
|
"components": [
|
|
4
4
|
{
|
|
5
5
|
"name": "hx-accordion",
|
|
@@ -462,6 +462,7 @@
|
|
|
462
462
|
"--hx-color-error-700",
|
|
463
463
|
"--hx-color-error-800",
|
|
464
464
|
"--hx-color-error-900",
|
|
465
|
+
"--hx-color-focus",
|
|
465
466
|
"--hx-color-info-200",
|
|
466
467
|
"--hx-color-info-50",
|
|
467
468
|
"--hx-color-info-500",
|
package/dist/index.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export { HelixCarouselItem } from './components/hx-carousel/index.js';
|
|
|
34
34
|
export { HelixCheckbox } from './components/hx-checkbox/index.js';
|
|
35
35
|
export { HelixCheckboxGroup } from './components/hx-checkbox-group/index.js';
|
|
36
36
|
export { HelixClinicalStatus } from './components/hx-clinical-status/index.js';
|
|
37
|
-
export type { ClinicalSeverity } from './components/hx-clinical-status/index.js';
|
|
37
|
+
export type { ClinicalSeverity, HxClinicalStatus } from './components/hx-clinical-status/index.js';
|
|
38
38
|
export { HelixCodeSnippet } from './components/hx-code-snippet/index.js';
|
|
39
39
|
export { HelixColorPicker } from './components/hx-color-picker/index.js';
|
|
40
40
|
export { HelixCombobox, type ComboboxOption, type HxComboboxSize } from './components/hx-combobox/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGxG,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { H as d, a as h } from "./shared/hx-accordion-_KeulaQR.js";
|
|
2
2
|
import { H as b } from "./shared/hx-action-bar-vGFnNwNY.js";
|
|
3
3
|
import { H as S } from "./shared/hx-alert-DRZYP0Oo.js";
|
|
4
|
-
import { H as g } from "./shared/hx-avatar-
|
|
4
|
+
import { H as g } from "./shared/hx-avatar-CZfA9KEl.js";
|
|
5
5
|
import { H as v } from "./shared/hx-badge-Xg7zoh4Q.js";
|
|
6
6
|
import { H as y } from "./shared/hx-banner-2RS7Nux4.js";
|
|
7
7
|
import { H as E, a as B } from "./shared/hx-breadcrumb-item-B2rjepqy.js";
|
|
8
|
-
import { H as w } from "./shared/hx-button-
|
|
8
|
+
import { H as w } from "./shared/hx-button-CC1YH9RZ.js";
|
|
9
9
|
import { H as A } from "./shared/hx-button-group-ChTQsnQj.js";
|
|
10
10
|
import { H as L } from "./shared/hx-card-dIKdcMhr.js";
|
|
11
11
|
import { H as N, a as R } from "./shared/hx-carousel-item-Cm8a1nAi.js";
|
|
12
12
|
import { H as U } from "./shared/hx-checkbox-_WUiuTo9.js";
|
|
13
13
|
import { H as V } from "./shared/hx-checkbox-group-B-ci-dxp.js";
|
|
14
|
-
import { H as W } from "./shared/hx-clinical-status-
|
|
14
|
+
import { H as W } from "./shared/hx-clinical-status-D6eaplvs.js";
|
|
15
15
|
import { H as Y } from "./shared/hx-code-snippet-CQsyvthi.js";
|
|
16
16
|
import { H as q } from "./shared/hx-color-picker-Dk2Myvaf.js";
|
|
17
17
|
import { H as J } from "./shared/hx-combobox-CNAJXIxo.js";
|
|
@@ -2,7 +2,7 @@ import { css as _, LitElement as y, html as v, nothing as d } from "lit";
|
|
|
2
2
|
import { property as l, state as c, customElement as z } from "lit/decorators.js";
|
|
3
3
|
import { classMap as p } from "lit/directives/class-map.js";
|
|
4
4
|
import { tokenStyles as S } from "@helixui/tokens/lit";
|
|
5
|
-
import { d as
|
|
5
|
+
import { d as g } from "./dev-warn-YlwPHjtX.js";
|
|
6
6
|
const w = _`
|
|
7
7
|
:host {
|
|
8
8
|
display: inline-block;
|
|
@@ -113,16 +113,33 @@ const w = _`
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
/* P1-B: Windows High Contrast Mode — avatar background is stripped by the system,
|
|
116
|
-
leaving no visual boundary.
|
|
116
|
+
leaving no visual boundary. Restore a visible border, explicit foreground, and
|
|
117
|
+
background so the avatar container, initials, and fallback icon all remain
|
|
118
|
+
perceivable at any contrast level.
|
|
117
119
|
WCAG 1.4.11 Non-text Contrast (Level AA). */
|
|
118
120
|
@media (forced-colors: active) {
|
|
119
121
|
.avatar {
|
|
122
|
+
forced-color-adjust: none;
|
|
120
123
|
border: 2px solid ButtonText;
|
|
124
|
+
background-color: Canvas;
|
|
125
|
+
color: CanvasText;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.avatar__initials {
|
|
129
|
+
color: CanvasText;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.avatar__fallback-icon {
|
|
133
|
+
color: CanvasText;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.avatar__image {
|
|
137
|
+
forced-color-adjust: auto;
|
|
121
138
|
}
|
|
122
139
|
}
|
|
123
140
|
`;
|
|
124
|
-
var E = Object.defineProperty,
|
|
125
|
-
for (var s = a > 1 ? void 0 : a ?
|
|
141
|
+
var E = Object.defineProperty, C = Object.getOwnPropertyDescriptor, o = (t, r, e, a) => {
|
|
142
|
+
for (var s = a > 1 ? void 0 : a ? C(r, e) : r, n = t.length - 1, h; n >= 0; n--)
|
|
126
143
|
(h = t[n]) && (s = (a ? h(r, e, s) : h(s)) || s);
|
|
127
144
|
return a && s && E(r, e, s), s;
|
|
128
145
|
};
|
|
@@ -137,12 +154,12 @@ let i = class extends y {
|
|
|
137
154
|
willUpdate(t) {
|
|
138
155
|
t.has("src") && (this._imgError = !1), (t.has("src") || t.has("alt")) && this.src && this.alt, (t.has("initials") || t.has("label")) && this.initials && this.label;
|
|
139
156
|
const r = ["xs", "sm", "md", "lg", "xl"];
|
|
140
|
-
t.has("size") && !r.includes(this.size) &&
|
|
157
|
+
t.has("size") && !r.includes(this.size) && g(
|
|
141
158
|
"hx-avatar",
|
|
142
159
|
`Invalid hx-size="${String(this.size)}". Valid values: xs, sm, md, lg, xl. Rendering with "md".`
|
|
143
160
|
);
|
|
144
161
|
const e = ["circle", "square"];
|
|
145
|
-
t.has("shape") && !e.includes(this.shape) &&
|
|
162
|
+
t.has("shape") && !e.includes(this.shape) && g(
|
|
146
163
|
"hx-avatar",
|
|
147
164
|
`Invalid shape="${String(this.shape)}". Valid values: circle, square. Rendering with "circle".`
|
|
148
165
|
);
|
|
@@ -188,10 +205,10 @@ let i = class extends y {
|
|
|
188
205
|
}
|
|
189
206
|
// ─── Render ───
|
|
190
207
|
render() {
|
|
191
|
-
const t = this.src, r = this._hasDefaultSlot, e = !r && !!t && !this._imgError, a = !r && !e && !!this.initials.trim(), s = !r && !e && !a, n = e ? this.alt || this.label || "Avatar" : a ? this.label || this.initials : this.label || "Avatar", h = ["xs", "sm", "md", "lg", "xl"],
|
|
208
|
+
const t = this.src, r = this._hasDefaultSlot, e = !r && !!t && !this._imgError, a = !r && !e && !!this.initials.trim(), s = !r && !e && !a, n = e ? this.alt || this.label || "Avatar" : a ? this.label || this.initials : this.label || "Avatar", h = ["xs", "sm", "md", "lg", "xl"], m = ["circle", "square"], f = h.includes(this.size) ? this.size : "md", u = m.includes(this.shape) ? this.shape : "circle", x = {
|
|
192
209
|
avatar: !0,
|
|
193
210
|
[`avatar--${f}`]: !0,
|
|
194
|
-
[`avatar--${
|
|
211
|
+
[`avatar--${u}`]: !0
|
|
195
212
|
}, b = {
|
|
196
213
|
avatar__badge: !0,
|
|
197
214
|
"avatar__badge--hidden": !this._hasBadgeSlot
|
|
@@ -200,7 +217,7 @@ let i = class extends y {
|
|
|
200
217
|
<div class="avatar-wrapper">
|
|
201
218
|
<div
|
|
202
219
|
part="avatar"
|
|
203
|
-
class=${p(
|
|
220
|
+
class=${p(x)}
|
|
204
221
|
role=${r ? d : "img"}
|
|
205
222
|
aria-label=${r ? d : n}
|
|
206
223
|
>
|
|
@@ -258,4 +275,4 @@ i = o([
|
|
|
258
275
|
export {
|
|
259
276
|
i as H
|
|
260
277
|
};
|
|
261
|
-
//# sourceMappingURL=hx-avatar-
|
|
278
|
+
//# sourceMappingURL=hx-avatar-CZfA9KEl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-avatar-CZfA9KEl.js","sources":["../../src/components/hx-avatar/hx-avatar.styles.ts","../../src/components/hx-avatar/hx-avatar.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixAvatarStyles = css`\n :host {\n display: inline-block;\n }\n\n /* P2-5: Respect the HTML hidden attribute — custom elements with explicit display ignore it otherwise. */\n :host([hidden]) {\n display: none !important;\n }\n\n /* P0-2: Wrapper provides the positioning context for the badge slot, outside overflow: hidden. */\n .avatar-wrapper {\n position: relative;\n display: inline-flex;\n }\n\n .avatar {\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n width: var(--hx-avatar-size);\n height: var(--hx-avatar-size);\n background-color: var(--hx-avatar-bg, var(--hx-color-primary-100));\n color: var(--hx-avatar-color, var(--hx-color-primary-700));\n border-radius: var(--hx-avatar-border-radius);\n flex-shrink: 0;\n }\n\n /* ─── Size Variants ─── */\n\n .avatar--xs {\n --hx-avatar-size: var(--hx-size-6, 1.5rem);\n --hx-avatar-font-size: var(--hx-font-size-2xs, 0.625rem);\n }\n\n .avatar--sm {\n --hx-avatar-size: var(--hx-size-8, 2rem);\n --hx-avatar-font-size: var(--hx-font-size-xs, 0.75rem);\n }\n\n .avatar--md {\n --hx-avatar-size: var(--hx-size-10, 2.5rem);\n --hx-avatar-font-size: var(--hx-font-size-sm, 0.875rem);\n }\n\n .avatar--lg {\n --hx-avatar-size: var(--hx-size-12, 3rem);\n --hx-avatar-font-size: var(--hx-font-size-md, 1rem);\n }\n\n .avatar--xl {\n --hx-avatar-size: var(--hx-size-16, 4rem);\n --hx-avatar-font-size: var(--hx-font-size-lg, 1.125rem);\n }\n\n /* ─── Shape Variants ─── */\n\n .avatar--circle {\n --hx-avatar-border-radius: 50%;\n }\n\n .avatar--square {\n --hx-avatar-border-radius: var(--hx-border-radius-md, 0.375rem);\n }\n\n /* ─── Image ─── */\n\n .avatar__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n }\n\n /* ─── Initials ─── */\n\n .avatar__initials {\n font-family: var(--hx-font-family-sans, sans-serif);\n font-size: var(--hx-avatar-font-size);\n font-weight: var(--hx-font-weight-semibold, 600);\n line-height: 1;\n text-transform: uppercase;\n letter-spacing: var(--hx-letter-spacing-wide, 0.025em);\n user-select: none;\n }\n\n /* ─── Fallback Icon ─── */\n\n .avatar__fallback-icon {\n width: 60%;\n height: 60%;\n color: var(--hx-avatar-color, var(--hx-color-primary-700));\n }\n\n /* ─── Badge Slot ─── */\n\n /* P0-2: Positioned relative to .avatar-wrapper — outside the overflow: hidden on .avatar. */\n .avatar__badge {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n /* P2-2: Hide the badge wrapper when no slot content is present, preserving slotchange detection. */\n .avatar__badge--hidden {\n display: none;\n }\n\n /* P1-B: Windows High Contrast Mode — avatar background is stripped by the system,\n leaving no visual boundary. Restore a visible border, explicit foreground, and\n background so the avatar container, initials, and fallback icon all remain\n perceivable at any contrast level.\n WCAG 1.4.11 Non-text Contrast (Level AA). */\n @media (forced-colors: active) {\n .avatar {\n forced-color-adjust: none;\n border: 2px solid ButtonText;\n background-color: Canvas;\n color: CanvasText;\n }\n\n .avatar__initials {\n color: CanvasText;\n }\n\n .avatar__fallback-icon {\n color: CanvasText;\n }\n\n .avatar__image {\n forced-color-adjust: auto;\n }\n }\n`;\n","import { LitElement, html, nothing, type PropertyValues } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixAvatarStyles } from './hx-avatar.styles.js';\nimport { devWarn } from '../../utils/dev-warn.js';\n\n/**\n * A user avatar component that displays an image, initials, or a fallback icon.\n * Supports a badge slot for status indicator overlays.\n *\n * @summary User avatar with image, initials, and fallback icon support for healthcare applications.\n *\n * @tag hx-avatar\n *\n * @slot - Default slot for custom avatar content. Overrides src and initials when slotted content is present.\n * @slot badge - Status indicator overlay, positioned at the bottom-right of the avatar container.\n *\n * @csspart avatar - The outer container element.\n * @csspart image - The img element shown when src is provided.\n * @csspart initials - The initials text span shown as a fallback.\n * @csspart fallback-icon - The SVG person silhouette shown when no src or initials are available.\n * @csspart badge - The badge slot container.\n *\n * @cssprop [--hx-avatar-size] - Computed width and height from the size variant.\n * @cssprop [--hx-avatar-border-radius] - Circle = 50%, Square = var(--hx-border-radius-md).\n * @cssprop [--hx-avatar-bg=var(--hx-color-primary-100)] - Background color of the avatar container.\n * @cssprop [--hx-avatar-color=var(--hx-color-primary-700)] - Text and icon color inside the avatar.\n * @cssprop [--hx-avatar-font-size] - Font size for the initials text, set per size variant.\n */\n@customElement('hx-avatar')\nexport class HelixAvatar extends LitElement {\n static override styles = [tokenStyles, helixAvatarStyles];\n\n /**\n * Image URL. When provided and successfully loaded, displays the image.\n * @attr src\n */\n @property({ type: String })\n src: string | undefined = undefined;\n\n /**\n * Accessible label for the image. Required when `src` is provided.\n * Used as the container's aria-label in image mode.\n * @attr alt\n */\n @property({ type: String })\n alt = '';\n\n /**\n * Human-readable accessible name for non-image states (initials, fallback icon).\n * In healthcare contexts, provide the full person name (e.g., \"Dr. Jane Doe\") rather than\n * relying on raw initials, which screen readers announce as individual letters.\n * When set, takes precedence over raw initials and the generic \"Avatar\" fallback.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * Fallback initials text displayed when no image is available.\n * @attr initials\n */\n @property({ type: String })\n initials = '';\n\n /**\n * Size variant of the avatar.\n * @attr hx-size\n */\n @property({ type: String, reflect: true, attribute: 'hx-size' })\n size: 'xs' | 'sm' | 'md' | 'lg' | 'xl' = 'md';\n\n /**\n * Shape variant of the avatar.\n * @attr shape\n */\n @property({ type: String, reflect: true })\n shape: 'circle' | 'square' = 'circle';\n\n /**\n * Tracks whether the image failed to load, triggering the fallback chain.\n * @internal\n */\n @state()\n private _imgError = false;\n\n /**\n * Tracks whether the default slot has assigned content.\n * @internal\n */\n @state()\n private _hasDefaultSlot = false;\n\n /**\n * Tracks whether the badge slot has assigned content.\n * @internal\n */\n @state()\n private _hasBadgeSlot = false;\n\n // ─── Lifecycle ───\n\n // P1-A / P2-B: Use willUpdate() instead of updated() for property validation\n // and derived state. willUpdate() runs before render() and does not schedule\n // a second update cycle when @state() properties are mutated.\n override willUpdate(changedProperties: PropertyValues<this>): void {\n // P0-1: Reset image error state when src changes so a new valid src renders correctly.\n if (changedProperties.has('src')) {\n this._imgError = false;\n }\n\n // P1-2: Warn when src is provided without alt — silent accessibility failure in healthcare UIs.\n if (changedProperties.has('src') || changedProperties.has('alt')) {\n if (this.src && !this.alt) {\n devWarn(\n 'hx-avatar',\n 'Accessibility: \"alt\" attribute is required when \"src\" is provided. ' +\n 'Without alt text, screen readers announce a non-descriptive label. ' +\n 'Add alt=\"Full name or description\" to your hx-avatar element.',\n );\n }\n }\n\n // P2-A: Warn when initials are used without label — screen readers announce\n // raw initials as individual letters (e.g., \"J D\") instead of a name.\n if (changedProperties.has('initials') || changedProperties.has('label')) {\n if (this.initials && !this.label) {\n devWarn(\n 'hx-avatar',\n 'Accessibility: \"label\" attribute is recommended when \"initials\" is provided. ' +\n 'Without label, screen readers announce raw initials as individual letters. ' +\n 'Add label=\"Full Name\" to your hx-avatar element.',\n );\n }\n }\n\n // P2-1: Warn when invalid size or shape attribute values are used (e.g., from Twig templates).\n const validSizes: ReadonlyArray<string> = ['xs', 'sm', 'md', 'lg', 'xl'];\n if (changedProperties.has('size') && !validSizes.includes(this.size)) {\n devWarn(\n 'hx-avatar',\n `Invalid hx-size=\"${String(this.size)}\". Valid values: xs, sm, md, lg, xl. Rendering with \"md\".`,\n );\n }\n const validShapes: ReadonlyArray<string> = ['circle', 'square'];\n if (changedProperties.has('shape') && !validShapes.includes(this.shape)) {\n devWarn(\n 'hx-avatar',\n `Invalid shape=\"${String(this.shape)}\". Valid values: circle, square. Rendering with \"circle\".`,\n );\n }\n }\n\n // ─── Slot Change Handling ───\n\n /** @internal */\n private _handleSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n const nodes = slot.assignedNodes({ flatten: true });\n this._hasDefaultSlot = nodes.some((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) return true;\n if (node.nodeType === Node.TEXT_NODE) {\n return (node.textContent ?? '').trim().length > 0;\n }\n return false;\n });\n }\n\n /** @internal */\n private _handleBadgeSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n const nodes = slot.assignedNodes({ flatten: true });\n this._hasBadgeSlot = nodes.some((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) return true;\n if (node.nodeType === Node.TEXT_NODE) {\n return (node.textContent ?? '').trim().length > 0;\n }\n return false;\n });\n\n // P2-C: Warn when badge slot content lacks an accessible name.\n // A plain <span class=\"dot\"></span> badge is invisible to screen readers.\n if (this._hasBadgeSlot) {\n const hasAccessibleName = nodes.some((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const el = node as Element;\n return (\n el.hasAttribute('aria-label') ||\n el.hasAttribute('aria-labelledby') ||\n !!el.getAttribute('role')\n );\n }\n return false;\n });\n if (!hasAccessibleName) {\n devWarn(\n 'hx-avatar',\n 'Accessibility: badge slot content should have an accessible name ' +\n '(aria-label, role, etc.). Without it, the badge is invisible to screen readers.',\n );\n }\n }\n }\n\n // ─── Image Error Handling ───\n\n /** @internal */\n private _handleImgError(): void {\n this._imgError = true;\n }\n\n // ─── Fallback Icon ───\n\n /** @internal */\n private _renderFallbackIcon() {\n return html`\n <svg\n part=\"fallback-icon\"\n class=\"avatar__fallback-icon\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n fill=\"currentColor\"\n >\n <path\n d=\"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z\"\n />\n </svg>\n `;\n }\n\n // ─── Render ───\n\n override render() {\n const src = this.src;\n const showSlot = this._hasDefaultSlot;\n const showImage = !showSlot && !!src && !this._imgError;\n const showInitials = !showSlot && !showImage && !!this.initials.trim();\n const showFallback = !showSlot && !showImage && !showInitials;\n\n // P1-1 / P1-7: Use label property for human-readable accessible name in non-image states.\n const ariaLabel = showImage\n ? this.alt || this.label || 'Avatar'\n : showInitials\n ? this.label || this.initials\n : this.label || 'Avatar';\n\n // P2-1: Safe class fallback for invalid attribute values supplied via HTML/Twig.\n const validSizes: ReadonlyArray<string> = ['xs', 'sm', 'md', 'lg', 'xl'];\n const validShapes: ReadonlyArray<string> = ['circle', 'square'];\n const sizeClass = validSizes.includes(this.size) ? this.size : 'md';\n const shapeClass = validShapes.includes(this.shape) ? this.shape : 'circle';\n\n const classes = {\n avatar: true,\n [`avatar--${sizeClass}`]: true,\n [`avatar--${shapeClass}`]: true,\n };\n\n // P2-2: Badge wrapper is hidden (not removed) when empty so slotchange detection still works.\n const badgeClasses = {\n avatar__badge: true,\n 'avatar__badge--hidden': !this._hasBadgeSlot,\n };\n\n return html`\n <div class=\"avatar-wrapper\">\n <div\n part=\"avatar\"\n class=${classMap(classes)}\n role=${showSlot ? nothing : 'img'}\n aria-label=${showSlot ? nothing : ariaLabel}\n >\n <slot @slotchange=${this._handleSlotChange}></slot>\n ${showImage && src\n ? html`<img\n part=\"image\"\n class=\"avatar__image\"\n src=${src}\n alt=${this.alt}\n aria-hidden=\"true\"\n loading=\"lazy\"\n @error=${this._handleImgError}\n />`\n : nothing}\n ${showInitials\n ? html`<span part=\"initials\" class=\"avatar__initials\">${this.initials.trim()}</span>`\n : nothing}\n ${showFallback ? this._renderFallbackIcon() : nothing}\n </div>\n <span part=\"badge\" class=${classMap(badgeClasses)}>\n <slot name=\"badge\" @slotchange=${this._handleBadgeSlotChange}></slot>\n </span>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-avatar': HelixAvatar;\n }\n}\n"],"names":["helixAvatarStyles","css","HelixAvatar","LitElement","changedProperties","validSizes","devWarn","validShapes","e","nodes","node","el","html","src","showSlot","showImage","showInitials","showFallback","ariaLabel","sizeClass","shapeClass","classes","badgeClasses","classMap","nothing","tokenStyles","__decorateClass","property","state","customElement"],"mappings":"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"}
|