sos-portal-components-react 0.2.2 → 0.3.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/CHANGELOG.md +44 -0
- package/README.md +60 -5
- package/dist/DeviceAssistancePreferences.d.ts +2 -0
- package/dist/DeviceAssistancePreferences.d.ts.map +1 -0
- package/dist/DeviceAssistancePreferences.js +2 -0
- package/dist/DeviceAssistancePreferences.js.map +1 -0
- package/dist/LiveKitRealtimeCallClient.d.ts +8 -3
- package/dist/LiveKitRealtimeCallClient.d.ts.map +1 -1
- package/dist/LiveKitRealtimeCallClient.js +7 -3
- package/dist/LiveKitRealtimeCallClient.js.map +1 -1
- package/dist/SubjectConversationChat.js +2 -2
- package/dist/SubjectConversationChat.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +7 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,50 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.3.0 - 2026-11-08
|
|
6
|
+
|
|
7
|
+
- Export shared device-assistance preferences through an independent SOS entry,
|
|
8
|
+
delegating its controlled web renderer to Antifraud 0.3.0. Keep runtime,
|
|
9
|
+
capability detection, storage and authorization in the owning application.
|
|
10
|
+
Native preferences rendering is not implemented by this release.
|
|
11
|
+
- Typecheck, build and the independent export smoke pass. Cross-application
|
|
12
|
+
phone-authenticated browser checks belong to the CH acceptance evidence.
|
|
13
|
+
- List the three implemented runtime exports separately from the acceptance
|
|
14
|
+
catalogue. Base shell/profile/card extraction from the existing domain
|
|
15
|
+
package remains pending; controller administration has a separate owner.
|
|
16
|
+
|
|
17
|
+
- Specify shared subject-control placement, semantic option/action colours,
|
|
18
|
+
account-menu versus subject-device grants, appearance namespace parity and
|
|
19
|
+
separate model enablement/availability/preparation states in the existing
|
|
20
|
+
Tuskr cases. These are acceptance requirements, not new runtime readiness.
|
|
21
|
+
|
|
22
|
+
- Correct the shared acceptance guides to use the selected simulated-phone
|
|
23
|
+
tests without mailbox access. Treat current email-only Organization/employee
|
|
24
|
+
contracts as an implementation gap; preserve official-source verification,
|
|
25
|
+
independent profile authority and existing GW/DID behavior.
|
|
26
|
+
|
|
27
|
+
- Replace the dated developer handoff with numbered, README-linked guides for
|
|
28
|
+
generic portal modes/authentication and detailed cross-portal Tuskr cases.
|
|
29
|
+
Preserve the existing `SOS-PORTAL-001`–`029` and specialist research IDs.
|
|
30
|
+
- Distinguish public Demo real-email account login from fixed Firebase test
|
|
31
|
+
phone fixtures, BFF-owned Demo persistence from Test Network authority/GW
|
|
32
|
+
lifecycle, and dedicated RTC media from Communication history and assistants.
|
|
33
|
+
- Document positive/negative Personal ↔ Professional journeys, both-side
|
|
34
|
+
readback, profile/relationship revocation, sector variants and evidence
|
|
35
|
+
boundaries without claiming unexecuted gates have passed.
|
|
36
|
+
- Specify dependency-by-case progression: BFF/memory Demo first, independent
|
|
37
|
+
terminology-cache and RTC additions, and memory-GW -> local Fabric ->
|
|
38
|
+
online Test Network acceptance for network cases. Retain green evidence and
|
|
39
|
+
rerun only failed/affected gates while closing the cumulative release set.
|
|
40
|
+
|
|
41
|
+
## 0.2.3 - 2026-11-07
|
|
42
|
+
|
|
43
|
+
- Render caller-cancelled Communications as `Cancelled`/`Cancelada` rather
|
|
44
|
+
than collapsing them into an undefined or generic ended state.
|
|
45
|
+
- Let the host distinguish a caller cancellation from an unanswered timeout
|
|
46
|
+
when ending an RTC session; media teardown remains separate from canonical
|
|
47
|
+
Communication persistence.
|
|
48
|
+
|
|
5
49
|
## 0.2.2 - 2026-11-07
|
|
6
50
|
|
|
7
51
|
- Render the canonical ringing, missed and ended state beside every call
|
package/README.md
CHANGED
|
@@ -1,9 +1,30 @@
|
|
|
1
1
|
# SOS Portal Components React
|
|
2
2
|
|
|
3
|
+
## Numbered engineering guides
|
|
4
|
+
|
|
5
|
+
1. [00 — Documentation index](docs/00-INDEX.md)
|
|
6
|
+
2. [01 — Portal modes, authentication and authority](docs/01-PORTAL_MODES_AND_AUTH.md)
|
|
7
|
+
3. [02 — Cross-portal Tuskr cases](docs/02-CROSS_PORTAL_TUSKR_CASES.md)
|
|
8
|
+
|
|
9
|
+
Read these with the owning CH application's README for runnable commands and
|
|
10
|
+
flavour configuration. The cases below retain their stable IDs; the numbered
|
|
11
|
+
guides supply cross-portal steps, expected results and negative checks.
|
|
12
|
+
|
|
13
|
+
Start dependencies by use case: local Demo UI/BFF uses the memory vault and
|
|
14
|
+
no GW; clinical coding/cache cases add Terminology through its SDK, and call
|
|
15
|
+
cases add LiveKit independently. Network cases progress from GW memory/test
|
|
16
|
+
to local Fabric, then the chosen online `dev:staging` Test Network flavours.
|
|
17
|
+
Demo stays BFF-only throughout. See the
|
|
18
|
+
[dependency table](docs/01-PORTAL_MODES_AND_AUTH.md#11-start-dependencies-for-the-case-being-tested).
|
|
19
|
+
Rerun the smallest failed/affected gate while retaining valid green evidence;
|
|
20
|
+
release closure still requires every affected boundary.
|
|
21
|
+
|
|
3
22
|
## Runtime parity
|
|
4
23
|
|
|
5
|
-
|
|
6
|
-
|
|
24
|
+
Components share use-case state between Demo and Test Network. Native support
|
|
25
|
+
is export-specific: conversation uses the React Native/Web adapter; the device
|
|
26
|
+
preferences renderer currently uses web DOM. A native preferences renderer
|
|
27
|
+
remains future work. Components never select storage. Applications inject memory for
|
|
7
28
|
all-local, Expo SQLite for native, or an explicit durable adapter. Firestore
|
|
8
29
|
must not create a Demo-only component or data model.
|
|
9
30
|
|
|
@@ -18,8 +39,11 @@ health, animal care, public safety, emergency response and other configured
|
|
|
18
39
|
sectors. The package exists to prevent each sector flavour from reimplementing
|
|
19
40
|
the same shell, access journey, card navigation and governed subject workflows.
|
|
20
41
|
|
|
21
|
-
|
|
22
|
-
|
|
42
|
+
Public Demo authenticates a real email account and uses BFF-validated synthetic
|
|
43
|
+
profiles. Fixed Firebase test-phone codes belong only to tests in ignored
|
|
44
|
+
configuration, never public Demo access. Demo business state stays behind the
|
|
45
|
+
BFF Confidential Storage boundary; Test Network separately proves the complete
|
|
46
|
+
organization/employee/subject lifecycle through its real authority and GW.
|
|
23
47
|
|
|
24
48
|
The first implementation of a workflow may be proven in the animal-care
|
|
25
49
|
portals. That does not make every future human-health consumer depend
|
|
@@ -50,6 +74,32 @@ revalidated by the BFF/Gateway.
|
|
|
50
74
|
|
|
51
75
|
## Implemented exports
|
|
52
76
|
|
|
77
|
+
This is the current runtime inventory, not completion of the whole catalogue:
|
|
78
|
+
|
|
79
|
+
| Export | Owner / responsibility |
|
|
80
|
+
| --- | --- |
|
|
81
|
+
| `SubjectConversationChat` | SOS projection of authorized subject Communications into the neutral Antifraud conversation renderer. |
|
|
82
|
+
| `createLiveKitRealtimeCallClient` | Host-configured RTC client adapter; the BFF retains authorization, credentials and Communication persistence. |
|
|
83
|
+
| `DeviceAssistancePreferences` | Reexport of Antifraud's controlled web preferences renderer. |
|
|
84
|
+
|
|
85
|
+
The complete base-UI extraction is still pending. `PortalHeader`,
|
|
86
|
+
`PortalSettingsPanel`, profile protection, subject/card navigation and several
|
|
87
|
+
contact, permission and clinical controls remain in
|
|
88
|
+
`uhc-portal-components-react`; application composition also remains in the
|
|
89
|
+
owning portals. Research stays there pending its future owner. The catalogue
|
|
90
|
+
below is acceptance scope and must not be read as an implemented export list.
|
|
91
|
+
Controller administration is owned separately by
|
|
92
|
+
`antifraud-hosting-components-react`.
|
|
93
|
+
|
|
94
|
+
- `sos-portal-components-react/device-assistance-preferences` reexports the
|
|
95
|
+
controlled `DeviceAssistancePreferences` owned by the neutral Antifraud
|
|
96
|
+
package. Import `antifraud-portal-components-react/device-assistance-preferences.css`
|
|
97
|
+
once in the application shell. It separates consent, runtime availability
|
|
98
|
+
and explicit preparation; hosts supply localized labels, storage and runtime
|
|
99
|
+
adapters. Rendering/toggling does not prepare a model or grant subject access.
|
|
100
|
+
Use this independent entry on account pages to avoid loading conversation
|
|
101
|
+
and RTC modules. Do not fork another device preferences panel per flavour.
|
|
102
|
+
|
|
53
103
|
- `sos-portal-components-react/subject-conversation-chat` provides the
|
|
54
104
|
canonical React Native/Web adapter for an already-authorized subject
|
|
55
105
|
conversation. It projects the stable SOS entry model into the neutral
|
|
@@ -68,6 +118,11 @@ executed for every applicable flavour, actor, viewport and environment. Demo
|
|
|
68
118
|
uses synthetic state and must say so; Test Network and Production must use
|
|
69
119
|
their real authorized BFF path.
|
|
70
120
|
|
|
121
|
+
Use [02 — Cross-portal Tuskr cases](docs/02-CROSS_PORTAL_TUSKR_CASES.md)
|
|
122
|
+
for Personal ↔ Professional prerequisites, numbered actions, both-side
|
|
123
|
+
readback, rejected access, reset/revocation and execution evidence. A documented
|
|
124
|
+
case is an acceptance target, not an end-to-end pass claim.
|
|
125
|
+
|
|
71
126
|
| ID | Area | Governed journey and acceptance target |
|
|
72
127
|
|---|---|---|
|
|
73
128
|
| SOS-PORTAL-001 | Shell | Render the shared top bar, brand slot, account/profile menu, current subject and responsive navigation without flavour-specific forks. |
|
|
@@ -95,7 +150,7 @@ their real authorized BFF path.
|
|
|
95
150
|
| SOS-PORTAL-023 | Provider directory | Select authorized card/index, clinical, appointment or emergency providers from host-supplied directories without hard-coded flavour endpoints. |
|
|
96
151
|
| SOS-PORTAL-024 | Accessibility | Complete every shared journey by keyboard and screen reader with visible focus, labelled controls, status announcements and responsive layouts. |
|
|
97
152
|
| SOS-PORTAL-025 | Expo reuse | Render platform-neutral contracts in Expo Android/iOS adapters and web adapters while retaining one message/card/action model and host-owned native capabilities. |
|
|
98
|
-
| SOS-PORTAL-026 | Preferences |
|
|
153
|
+
| SOS-PORTAL-026 | Preferences | Reuse one device/account Preferences surface across modes: appearance, text size, locale, accessibility and actual speech/language-model enablement/availability/preparation, with explicit disabled states and no implied subject authorization. |
|
|
99
154
|
| SOS-PORTAL-027 | Failure safety | Fail closed on missing capabilities, expired sessions, invalid attachments, unavailable providers or rejected persistence and preserve an actionable, non-sensitive error. |
|
|
100
155
|
| SOS-PORTAL-028 | Controller embedding | In CH Management, embed the published Antifraud controller components for groups, departments, workforce and memberships until controller access is removed from branded professional portals. |
|
|
101
156
|
| SOS-PORTAL-029 | Conversation threads | Open the individual card's root channel and authorized child threads for members, related entities or emergency contacts; each thread keeps stable subject/relationship/participant identifiers, and contact status alone grants no message access. |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceAssistancePreferences.d.ts","sourceRoot":"","sources":["../src/DeviceAssistancePreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAE,KAAK,uBAAuB,EAAE,KAAK,gCAAgC,EAAC,MAAM,iEAAiE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeviceAssistancePreferences.js","sourceRoot":"","sources":["../src/DeviceAssistancePreferences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,2BAA2B,EAAsE,MAAM,iEAAiE,CAAA"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export type RealtimeCallMedia = 'audio' | 'video';
|
|
2
|
+
export type RealtimeCallEndOutcome = 'missed' | 'cancelled';
|
|
2
3
|
export type RealtimeCallSession = Readonly<{
|
|
3
4
|
callId: string;
|
|
4
5
|
localStream: MediaStream;
|
|
5
6
|
remoteStream: MediaStream;
|
|
6
|
-
|
|
7
|
+
answered: Promise<void>;
|
|
8
|
+
end(outcome?: RealtimeCallEndOutcome): Promise<void>;
|
|
7
9
|
}>;
|
|
8
10
|
export type LiveKitJoinSession<Conversation> = Readonly<{
|
|
9
11
|
conversation: Conversation;
|
|
@@ -22,6 +24,7 @@ export declare function createLiveKitRealtimeCallClient<Conversation>(dependenci
|
|
|
22
24
|
endCall(input: Readonly<{
|
|
23
25
|
conversation: Conversation;
|
|
24
26
|
callId: string;
|
|
27
|
+
outcome?: RealtimeCallEndOutcome;
|
|
25
28
|
}>): Promise<void>;
|
|
26
29
|
loadLiveKit?: () => Promise<LiveKitModule>;
|
|
27
30
|
createMediaStream?: () => MediaStream;
|
|
@@ -33,7 +36,8 @@ export declare function createLiveKitRealtimeCallClient<Conversation>(dependenci
|
|
|
33
36
|
callId: string;
|
|
34
37
|
localStream: MediaStream;
|
|
35
38
|
remoteStream: MediaStream;
|
|
36
|
-
|
|
39
|
+
answered: Promise<void>;
|
|
40
|
+
end(outcome?: RealtimeCallEndOutcome): Promise<void>;
|
|
37
41
|
}>>;
|
|
38
42
|
accept(input: Readonly<{
|
|
39
43
|
conversation: Conversation;
|
|
@@ -43,7 +47,8 @@ export declare function createLiveKitRealtimeCallClient<Conversation>(dependenci
|
|
|
43
47
|
callId: string;
|
|
44
48
|
localStream: MediaStream;
|
|
45
49
|
remoteStream: MediaStream;
|
|
46
|
-
|
|
50
|
+
answered: Promise<void>;
|
|
51
|
+
end(outcome?: RealtimeCallEndOutcome): Promise<void>;
|
|
47
52
|
}>>;
|
|
48
53
|
};
|
|
49
54
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveKitRealtimeCallClient.d.ts","sourceRoot":"","sources":["../src/LiveKitRealtimeCallClient.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAA;AACjD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC;IAAC,
|
|
1
|
+
{"version":3,"file":"LiveKitRealtimeCallClient.d.ts","sourceRoot":"","sources":["../src/LiveKitRealtimeCallClient.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAA;AACjD,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAAG,WAAW,CAAA;AAC3D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAAC,GAAG,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAAA;AAClM,MAAM,MAAM,kBAAkB,CAAC,YAAY,IAAI,QAAQ,CAAC;IAAE,YAAY,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,CAAC,CAAA;AAC7I,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAE3G,KAAK,aAAa,GAAG,cAAc,gBAAgB,CAAC,CAAA;AAEpD,yFAAyF;AACzF,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC;IACnF,YAAY,CAAC,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IACnF,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,sBAAsB,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzH,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1C,iBAAiB,CAAC,EAAE,MAAM,WAAW,CAAA;CACtC,CAAC;iBAmCe,QAAQ,CAAC;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAE,CAAC;gBA/CzC,MAAM;qBAAe,WAAW;sBAAgB,WAAW;kBAAY,OAAO,CAAC,IAAI,CAAC;sBAAgB,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;;kBAgD7K,QAAQ,CAAC;QAAE,YAAY,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAA;KAAE,CAAC;gBAhD1D,MAAM;qBAAe,WAAW;sBAAgB,WAAW;kBAAY,OAAO,CAAC,IAAI,CAAC;sBAAgB,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;;EAkD9L"}
|
|
@@ -7,10 +7,14 @@ export function createLiveKitRealtimeCallClient(dependencies) {
|
|
|
7
7
|
const room = new liveKit.Room({ adaptiveStream: true, dynacast: true });
|
|
8
8
|
const localStream = createMediaStream();
|
|
9
9
|
const remoteStream = createMediaStream();
|
|
10
|
+
let resolveAnswered;
|
|
11
|
+
const answered = new Promise(resolve => { resolveAnswered = resolve; });
|
|
10
12
|
room.on(liveKit.RoomEvent.TrackSubscribed, track => {
|
|
11
13
|
const mediaTrack = track.mediaStreamTrack;
|
|
12
14
|
if (mediaTrack)
|
|
13
15
|
remoteStream.addTrack(mediaTrack);
|
|
16
|
+
resolveAnswered?.();
|
|
17
|
+
resolveAnswered = undefined;
|
|
14
18
|
});
|
|
15
19
|
await room.connect(grant.serverUrl, grant.participantToken);
|
|
16
20
|
if (input.media.includes('audio'))
|
|
@@ -23,12 +27,12 @@ export function createLiveKitRealtimeCallClient(dependencies) {
|
|
|
23
27
|
localStream.addTrack(mediaTrack);
|
|
24
28
|
}
|
|
25
29
|
return Object.freeze({
|
|
26
|
-
callId: grant.callId, localStream, remoteStream,
|
|
27
|
-
async end() {
|
|
30
|
+
callId: grant.callId, localStream, remoteStream, answered,
|
|
31
|
+
async end(outcome) {
|
|
28
32
|
room.disconnect();
|
|
29
33
|
for (const track of localStream.getTracks())
|
|
30
34
|
track.stop();
|
|
31
|
-
await dependencies.endCall({ conversation: input.conversation, callId: grant.callId });
|
|
35
|
+
await dependencies.endCall({ conversation: input.conversation, callId: grant.callId, ...(outcome ? { outcome } : {}) });
|
|
32
36
|
},
|
|
33
37
|
});
|
|
34
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveKitRealtimeCallClient.js","sourceRoot":"","sources":["../src/LiveKitRealtimeCallClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiveKitRealtimeCallClient.js","sourceRoot":"","sources":["../src/LiveKitRealtimeCallClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,8 +31,8 @@ export function SubjectConversationChat({ entries, currentUser, locale, onSendTe
|
|
|
31
31
|
}
|
|
32
32
|
function callStateLabel(state, locale) {
|
|
33
33
|
const labels = locale === 'es'
|
|
34
|
-
? { ringing: 'Sonando', received: 'Recibida', missed: 'Perdida', completed: 'Completada', declined: 'Rechazada', ended: 'Finalizada' }
|
|
35
|
-
: { ringing: 'Ringing', received: 'Received', missed: 'Missed', completed: 'Completed', declined: 'Declined', ended: 'Ended' };
|
|
34
|
+
? { ringing: 'Sonando', received: 'Recibida', missed: 'Perdida', completed: 'Completada', declined: 'Rechazada', cancelled: 'Cancelada', ended: 'Finalizada' }
|
|
35
|
+
: { ringing: 'Ringing', received: 'Received', missed: 'Missed', completed: 'Completed', declined: 'Declined', cancelled: 'Cancelled', ended: 'Ended' };
|
|
36
36
|
return labels[state];
|
|
37
37
|
}
|
|
38
38
|
//# sourceMappingURL=SubjectConversationChat.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubjectConversationChat.js","sourceRoot":"","sources":["../src/SubjectConversationChat.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAA;AAC/C,OAAO,EACL,4BAA4B,GAE7B,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EACL,8BAA8B,EAC9B,sCAAsC,GAGvC,MAAM,6CAA6C,CAAA;AAUpD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,EACtC,OAAO,EACP,WAAW,EACX,MAAM,EACN,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,EACN,IAAI,EACJ,eAAe,GAgBf;IACA,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,CAAC,GAAG,sCAAsC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QACvE,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAA;QACnD,IAAI,OAAO,CAAC,IAAI,KAAK,8BAA8B,CAAC,IAAI;YAAE,OAAO,OAAO,CAAA;QACxE,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QACpD,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,EAAE,CAAA;IAC7D,CAAC,CAAkC,EACnC,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAA;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1B,GAAG,EAAE,WAAW,CAAC,EAAE;QACnB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9D,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAA;IAE3D,OAAO,KAAC,4BAA4B,IAClC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,IAAI,EACjB,UAAU,EAAE,UAAU,KAClB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC1B,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAC9B,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,CAAC,OAAoC,EAAE,EAAE;gBAC/G,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAA;gBACnD,OAAO,OAAO,CAAC,IAAI,KAAK,8BAA8B,CAAC,YAAY,IAAI,kBAAkB;oBACvF,CAAC,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBAC/E,CAAC,CAAC,kBAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;YAC3C,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACL,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACtB,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAC9D,CAAA;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"SubjectConversationChat.js","sourceRoot":"","sources":["../src/SubjectConversationChat.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
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,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kCAAkC,CAAA;AAChD,cAAc,gCAAgC,CAAA"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kCAAkC,CAAA;AAChD,cAAc,gCAAgC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sos-portal-components-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Shared portal UI for base components",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"exports": {
|
|
10
|
+
"./device-assistance-preferences": {
|
|
11
|
+
"types": "./dist/DeviceAssistancePreferences.d.ts",
|
|
12
|
+
"default": "./dist/DeviceAssistancePreferences.js"
|
|
13
|
+
},
|
|
10
14
|
".": {
|
|
11
15
|
"types": "./dist/index.d.ts",
|
|
12
16
|
"default": "./dist/index.js"
|
|
@@ -67,8 +71,8 @@
|
|
|
67
71
|
}
|
|
68
72
|
},
|
|
69
73
|
"dependencies": {
|
|
70
|
-
"antifraud-portal-components-react": "0.
|
|
71
|
-
"sos-data-utils-ts": "0.6.
|
|
74
|
+
"antifraud-portal-components-react": "0.3.0",
|
|
75
|
+
"sos-data-utils-ts": "0.6.29"
|
|
72
76
|
},
|
|
73
77
|
"devDependencies": {
|
|
74
78
|
"@testing-library/react": "^16.3.2",
|