uhc-portal-components-react 0.1.10 → 0.1.11
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/CHANGELOG.md +7 -0
- package/dist/ProtectedIndexEmergencyData.d.ts +32 -0
- package/dist/ProtectedIndexEmergencyData.d.ts.map +1 -0
- package/dist/ProtectedIndexEmergencyData.js +12 -0
- package/dist/SoschainWorkspace.d.ts +7 -2
- package/dist/SoschainWorkspace.d.ts.map +1 -1
- package/dist/SoschainWorkspace.js +9 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/styles.css +17 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
- Add a brand-neutral protected-index and emergency-copy panel. Hosts supply
|
|
6
|
+
backend-confirmed records; protected storage, individual authorship and
|
|
7
|
+
emergency availability remain separate states, and professional release is
|
|
8
|
+
never inferred by the browser.
|
|
9
|
+
|
|
3
10
|
## 0.1.10 - 2026-08-03
|
|
4
11
|
|
|
5
12
|
- Add the reusable organization workforce administration surface with total,
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type ProtectedIndexEmergencyItem = Readonly<{
|
|
2
|
+
identifier: string;
|
|
3
|
+
title: string;
|
|
4
|
+
categoryLabel: string;
|
|
5
|
+
sourceLabel?: string;
|
|
6
|
+
creatorLabel?: string;
|
|
7
|
+
/** True only after the backend confirms emergency-copy consent and policy. */
|
|
8
|
+
emergencyAvailable: boolean;
|
|
9
|
+
}>;
|
|
10
|
+
export type ProtectedIndexEmergencyCopy = Readonly<{
|
|
11
|
+
title: string;
|
|
12
|
+
body: string;
|
|
13
|
+
securePinTitle: string;
|
|
14
|
+
securePinBody: string;
|
|
15
|
+
emergencyPinTitle: string;
|
|
16
|
+
emergencyPinBody: string;
|
|
17
|
+
emergencyOnly: string;
|
|
18
|
+
protectedOnly: string;
|
|
19
|
+
empty: string;
|
|
20
|
+
sourcePrefix: string;
|
|
21
|
+
creatorPrefix: string;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Presents backend-confirmed protected-index copies and their independent
|
|
25
|
+
* emergency availability. The component never infers emergency consent from
|
|
26
|
+
* individual authorship, storage, a selected card or browser state.
|
|
27
|
+
*/
|
|
28
|
+
export declare function ProtectedIndexEmergencyData({ copy, items, }: Readonly<{
|
|
29
|
+
copy: ProtectedIndexEmergencyCopy;
|
|
30
|
+
items: readonly ProtectedIndexEmergencyItem[];
|
|
31
|
+
}>): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=ProtectedIndexEmergencyData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProtectedIndexEmergencyData.d.ts","sourceRoot":"","sources":["../src/ProtectedIndexEmergencyData.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC;IACjD,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8EAA8E;IAC9E,kBAAkB,EAAE,OAAO,CAAA;CAC5B,CAAC,CAAA;AAEF,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CAAC;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAC,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,IAAI,EACJ,KAAK,GACN,EAAE,QAAQ,CAAC;IACV,IAAI,EAAE,2BAA2B,CAAA;IACjC,KAAK,EAAE,SAAS,2BAA2B,EAAE,CAAA;CAC9C,CAAC,+BAkCD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Presents backend-confirmed protected-index copies and their independent
|
|
4
|
+
* emergency availability. The component never infers emergency consent from
|
|
5
|
+
* individual authorship, storage, a selected card or browser state.
|
|
6
|
+
*/
|
|
7
|
+
export function ProtectedIndexEmergencyData({ copy, items, }) {
|
|
8
|
+
return (_jsxs("section", { className: "uhcp-emergency-copy", "aria-labelledby": "protected-index-emergency-title", children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsx("h2", { id: "protected-index-emergency-title", children: copy.title }), _jsx("p", { children: copy.body })] }), _jsxs("div", { className: "uhcp-emergency-copy-legend", "aria-label": copy.title, children: [_jsx(Pin, { kind: "secure", label: copy.securePinTitle, help: copy.securePinBody }), _jsx(Pin, { kind: "emergency", label: copy.emergencyPinTitle, help: copy.emergencyPinBody })] })] }), items.length === 0 ? _jsx("p", { className: "uhcp-emergency-copy-empty", children: copy.empty }) : (_jsx("ul", { className: "uhcp-emergency-copy-list", children: items.map((item) => (_jsxs("li", { children: [_jsxs("div", { className: "uhcp-emergency-copy-item-heading", children: [_jsx("span", { className: "uhcp-emergency-copy-category", children: item.categoryLabel }), _jsxs("span", { className: "uhcp-emergency-copy-pins", children: [_jsx(Pin, { kind: "secure", label: copy.securePinTitle, help: copy.securePinBody, compact: true }), item.emergencyAvailable ? _jsx(Pin, { kind: "emergency", label: copy.emergencyPinTitle, help: copy.emergencyPinBody, compact: true }) : null] })] }), _jsx("strong", { children: item.title }), _jsx("small", { children: item.emergencyAvailable ? copy.emergencyOnly : copy.protectedOnly }), item.sourceLabel ? _jsxs("span", { children: [copy.sourcePrefix, ": ", item.sourceLabel] }) : null, item.creatorLabel ? _jsxs("span", { children: [copy.creatorPrefix, ": ", item.creatorLabel] }) : null] }, item.identifier))) }))] }));
|
|
9
|
+
}
|
|
10
|
+
function Pin({ kind, label, help, compact = false, }) {
|
|
11
|
+
return (_jsxs("span", { className: `uhcp-emergency-copy-pin uhcp-emergency-copy-pin-${kind}`, role: "img", "aria-label": label, title: help, children: [_jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { d: "M12 17v5m-5-9 2-2V5L7 3h10l-2 2v6l2 2H7Z" }) }), compact ? null : _jsx("span", { children: label })] }));
|
|
12
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { type ProtectedIndexEmergencyCopy, type ProtectedIndexEmergencyItem } from './ProtectedIndexEmergencyData.js';
|
|
2
|
+
export type SoschainWorkspaceArea = 'overview' | 'emergency-data' | 'places' | 'products' | 'communications';
|
|
2
3
|
export type SoschainCardSummary = Readonly<{
|
|
3
4
|
identifier: string;
|
|
4
5
|
displayName: string;
|
|
@@ -33,6 +34,9 @@ export type SoschainWorkspaceCopy = Readonly<{
|
|
|
33
34
|
areas: Record<SoschainWorkspaceArea, string>;
|
|
34
35
|
overviewTitle: string;
|
|
35
36
|
overviewBody: string;
|
|
37
|
+
emergencyDataTitle: string;
|
|
38
|
+
emergencyDataBody: string;
|
|
39
|
+
emergencyData: ProtectedIndexEmergencyCopy;
|
|
36
40
|
placesTitle: string;
|
|
37
41
|
placesBody: string;
|
|
38
42
|
productsTitle: string;
|
|
@@ -56,6 +60,7 @@ export type SoschainWorkspaceProps = Readonly<{
|
|
|
56
60
|
places: readonly SoschainAssociationSummary[];
|
|
57
61
|
products: readonly SoschainAssociationSummary[];
|
|
58
62
|
communications: readonly SoschainCommunicationSummary[];
|
|
63
|
+
emergencyData?: readonly ProtectedIndexEmergencyItem[];
|
|
59
64
|
canManageAssociations: boolean;
|
|
60
65
|
addPlaceHref?: string;
|
|
61
66
|
addProductHref?: string;
|
|
@@ -68,5 +73,5 @@ export type SoschainWorkspaceProps = Readonly<{
|
|
|
68
73
|
* communications. This presentational component never derives authority from
|
|
69
74
|
* a selected role, card, tab or browser-controlled value.
|
|
70
75
|
*/
|
|
71
|
-
export declare function SoschainWorkspace({ copy, cards, selectedCard, activeArea, areaHrefs, places, products, communications, canManageAssociations, addPlaceHref, addProductHref, importCardHref, }: SoschainWorkspaceProps): import("react").JSX.Element;
|
|
76
|
+
export declare function SoschainWorkspace({ copy, cards, selectedCard, activeArea, areaHrefs, places, products, communications, emergencyData, canManageAssociations, addPlaceHref, addProductHref, importCardHref, }: SoschainWorkspaceProps): import("react").JSX.Element;
|
|
72
77
|
//# sourceMappingURL=SoschainWorkspace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SoschainWorkspace.d.ts","sourceRoot":"","sources":["../src/SoschainWorkspace.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"SoschainWorkspace.d.ts","sourceRoot":"","sources":["../src/SoschainWorkspace.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ProtectedIndexEmergencyData } from './ProtectedIndexEmergencyData.js';
|
|
2
3
|
function AssociationList({ items, empty }) {
|
|
3
4
|
if (items.length === 0)
|
|
4
5
|
return _jsx("p", { className: "uhcp-sos-empty", children: empty });
|
|
@@ -11,7 +12,7 @@ function AssociationList({ items, empty }) {
|
|
|
11
12
|
* communications. This presentational component never derives authority from
|
|
12
13
|
* a selected role, card, tab or browser-controlled value.
|
|
13
14
|
*/
|
|
14
|
-
export function SoschainWorkspace({ copy, cards, selectedCard, activeArea, areaHrefs, places, products, communications, canManageAssociations, addPlaceHref, addProductHref, importCardHref, }) {
|
|
15
|
+
export function SoschainWorkspace({ copy, cards, selectedCard, activeArea, areaHrefs, places, products, communications, emergencyData = [], canManageAssociations, addPlaceHref, addProductHref, importCardHref, }) {
|
|
15
16
|
if (!selectedCard) {
|
|
16
17
|
return (_jsxs("section", { className: "uhcp-sos-wrap", "aria-labelledby": "sos-card-picker-title", children: [_jsxs("header", { className: "uhcp-sos-heading", children: [_jsx("span", { children: copy.workspaceEyebrow }), _jsx("h1", { id: "sos-card-picker-title", children: copy.cardsTitle }), _jsx("p", { children: copy.cardsDescription }), importCardHref && copy.importCard ? _jsxs("a", { href: importCardHref, children: [copy.importCard, " \u2192"] }) : null] }), cards.length === 0 ? (_jsxs("div", { className: "uhcp-sos-empty-panel", children: [_jsx("h2", { children: copy.noCardTitle }), _jsx("p", { children: copy.noCardBody })] })) : (_jsx("ul", { className: "uhcp-sos-card-grid", children: cards.map((card) => (_jsx("li", { children: _jsxs("a", { href: card.openHref, children: [_jsx("span", { children: card.kindLabel }), _jsx("strong", { children: card.displayName }), _jsx("small", { children: card.identifier }), _jsxs("b", { children: [copy.openCard, " \u2192"] })] }) }, card.identifier))) }))] }));
|
|
17
18
|
}
|
|
@@ -21,13 +22,17 @@ export function SoschainWorkspace({ copy, cards, selectedCard, activeArea, areaH
|
|
|
21
22
|
? copy.productsTitle
|
|
22
23
|
: activeArea === 'communications'
|
|
23
24
|
? copy.communicationsTitle
|
|
24
|
-
:
|
|
25
|
+
: activeArea === 'emergency-data'
|
|
26
|
+
? copy.emergencyDataTitle
|
|
27
|
+
: copy.overviewTitle;
|
|
25
28
|
const body = activeArea === 'places'
|
|
26
29
|
? copy.placesBody
|
|
27
30
|
: activeArea === 'products'
|
|
28
31
|
? copy.productsBody
|
|
29
32
|
: activeArea === 'communications'
|
|
30
33
|
? copy.communicationsBody
|
|
31
|
-
:
|
|
32
|
-
|
|
34
|
+
: activeArea === 'emergency-data'
|
|
35
|
+
? copy.emergencyDataBody
|
|
36
|
+
: copy.overviewBody;
|
|
37
|
+
return (_jsxs("section", { className: "uhcp-sos-wrap", children: [_jsxs("header", { className: "uhcp-sos-heading", children: [_jsx("span", { children: copy.selectedCard }), _jsx("h1", { children: selectedCard.displayName }), _jsxs("p", { children: [selectedCard.kindLabel, " \u00B7 ", selectedCard.identifier] })] }), _jsx("nav", { className: "uhcp-sos-tabs", "aria-label": copy.workspaceEyebrow, children: Object.keys(areaHrefs).map((area) => (_jsx("a", { href: areaHrefs[area], "aria-current": activeArea === area ? 'page' : undefined, children: copy.areas[area] }, area))) }), _jsxs("div", { className: "uhcp-sos-panel", children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsx("h2", { children: title }), _jsx("p", { children: body })] }), !canManageAssociations && activeArea !== 'communications' && activeArea !== 'emergency-data' && (_jsx("span", { className: "uhcp-sos-readonly", children: copy.readOnly })), canManageAssociations && activeArea === 'places' && addPlaceHref && _jsx("a", { href: addPlaceHref, children: copy.addPlace }), canManageAssociations && activeArea === 'products' && addProductHref && _jsx("a", { href: addProductHref, children: copy.addProduct })] }), activeArea === 'overview' && (_jsxs("div", { className: "uhcp-sos-overview-grid", children: [_jsxs("article", { children: [_jsx("strong", { children: places.length }), _jsx("span", { children: copy.areas.places })] }), _jsxs("article", { children: [_jsx("strong", { children: products.length }), _jsx("span", { children: copy.areas.products })] }), _jsxs("article", { children: [_jsx("strong", { children: communications.length }), _jsx("span", { children: copy.areas.communications })] })] })), activeArea === 'emergency-data' && _jsx(ProtectedIndexEmergencyData, { copy: copy.emergencyData, items: emergencyData }), activeArea === 'places' && _jsx(AssociationList, { items: places, empty: copy.emptyPlaces }), activeArea === 'products' && _jsx(AssociationList, { items: products, empty: copy.emptyProducts }), activeArea === 'communications' && (communications.length === 0 ? _jsx("p", { className: "uhcp-sos-empty", children: copy.emptyCommunications }) : (_jsx("ol", { className: "uhcp-sos-timeline", children: communications.map((message) => (_jsxs("li", { children: [_jsxs("div", { children: [_jsx("span", { children: message.categoryLabel }), _jsx("time", { children: message.occurredAt })] }), _jsx("strong", { children: message.subject }), _jsx("p", { children: message.body }), _jsxs("small", { children: [message.sender, message.placeLabel ? ` · ${message.placeLabel}` : ''] })] }, message.identifier))) })))] })] }));
|
|
33
38
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,4 +11,5 @@ export * from './InvitationAcceptancePanel.js';
|
|
|
11
11
|
export * from './SubjectAccessRequestPanel.js';
|
|
12
12
|
export * from './SoschainWorkspace.js';
|
|
13
13
|
export * from './OrganizationWorkforceAdministration.js';
|
|
14
|
+
export * from './ProtectedIndexEmergencyData.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,wBAAwB,CAAA;AACtC,cAAc,0CAA0C,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,wBAAwB,CAAA;AACtC,cAAc,0CAA0C,CAAA;AACxD,cAAc,kCAAkC,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/styles.css
CHANGED
|
@@ -327,3 +327,20 @@ html[data-theme='dark'] .uhcp-brand-artwork-dark { display: block !important; }
|
|
|
327
327
|
.uhcp-sos-overview-grid { grid-template-columns: 1fr; }
|
|
328
328
|
.uhcp-sos-panel > header { display: grid; }
|
|
329
329
|
}
|
|
330
|
+
.uhcp-emergency-copy { background: var(--uhcp-panel); border: 1px solid var(--uhcp-border); border-radius: 2rem; color: var(--uhcp-text); padding: clamp(1.25rem, 4vw, 2.25rem); }
|
|
331
|
+
.uhcp-emergency-copy > header { align-items: flex-start; display: flex; gap: 1.5rem; justify-content: space-between; }
|
|
332
|
+
.uhcp-emergency-copy h2 { margin: 0 0 .45rem; }
|
|
333
|
+
.uhcp-emergency-copy header p { color: var(--uhcp-muted); line-height: 1.6; margin: 0; max-width: 48rem; }
|
|
334
|
+
.uhcp-emergency-copy-legend { display: grid; flex: 0 0 auto; gap: .5rem; }
|
|
335
|
+
.uhcp-emergency-copy-pin { align-items: center; border-radius: 999px; display: inline-flex; font-size: .75rem; font-weight: 850; gap: .35rem; padding: .35rem .55rem; }
|
|
336
|
+
.uhcp-emergency-copy-pin svg { fill: none; height: 1rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 1rem; }
|
|
337
|
+
.uhcp-emergency-copy-pin-secure { background: color-mix(in srgb, var(--uhcp-turquoise) 16%, transparent); color: color-mix(in srgb, var(--uhcp-turquoise) 72%, var(--uhcp-text)); }
|
|
338
|
+
.uhcp-emergency-copy-pin-emergency { background: color-mix(in srgb, var(--uhcp-attention) 18%, transparent); color: color-mix(in srgb, var(--uhcp-attention) 78%, var(--uhcp-text)); }
|
|
339
|
+
.uhcp-emergency-copy-list { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); list-style: none; margin: 1.5rem 0 0; padding: 0; }
|
|
340
|
+
.uhcp-emergency-copy-list li { background: var(--uhcp-panel-muted); border: 1px solid var(--uhcp-border); border-radius: 1.25rem; display: grid; gap: .45rem; padding: 1rem; }
|
|
341
|
+
.uhcp-emergency-copy-item-heading { align-items: center; display: flex; gap: .6rem; justify-content: space-between; }
|
|
342
|
+
.uhcp-emergency-copy-category { color: var(--uhcp-emerald); font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
|
|
343
|
+
.uhcp-emergency-copy-pins { display: inline-flex; gap: .3rem; }
|
|
344
|
+
.uhcp-emergency-copy-list small, .uhcp-emergency-copy-list li > span, .uhcp-emergency-copy-empty { color: var(--uhcp-muted); }
|
|
345
|
+
.uhcp-emergency-copy-empty { margin: 1.5rem 0 0; }
|
|
346
|
+
@media (max-width: 620px) { .uhcp-emergency-copy > header { display: grid; } .uhcp-emergency-copy-legend { width: 100%; } }
|
package/package.json
CHANGED