sos-portal-components-react 0.3.4 → 0.5.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.
Files changed (169) hide show
  1. package/CHANGELOG.md +180 -145
  2. package/README.md +255 -233
  3. package/dist/PortalCurrentSubject.d.ts +29 -0
  4. package/dist/PortalCurrentSubject.d.ts.map +1 -0
  5. package/dist/PortalCurrentSubject.js +62 -0
  6. package/dist/PortalCurrentSubject.js.map +1 -0
  7. package/dist/PortalHeader.d.ts +10 -0
  8. package/dist/PortalHeader.d.ts.map +1 -0
  9. package/dist/PortalHeader.js +11 -0
  10. package/dist/PortalHeader.js.map +1 -0
  11. package/dist/PortalSettingsPanel.d.ts +8 -0
  12. package/dist/PortalSettingsPanel.d.ts.map +1 -0
  13. package/dist/PortalSettingsPanel.js +10 -0
  14. package/dist/PortalSettingsPanel.js.map +1 -0
  15. package/dist/care/AnimalCardArtifact.d.ts +42 -0
  16. package/dist/care/AnimalCardArtifact.d.ts.map +1 -0
  17. package/dist/care/AnimalCardArtifact.js +32 -0
  18. package/dist/care/AnimalCardArtifact.js.map +1 -0
  19. package/dist/care/BrowserRealtimeCallPanel.d.ts +39 -0
  20. package/dist/care/BrowserRealtimeCallPanel.d.ts.map +1 -0
  21. package/dist/care/BrowserRealtimeCallPanel.js +43 -0
  22. package/dist/care/BrowserRealtimeCallPanel.js.map +1 -0
  23. package/dist/care/CardPreview.d.ts +6 -0
  24. package/dist/care/CardPreview.d.ts.map +1 -0
  25. package/dist/care/CardPreview.js +6 -0
  26. package/dist/care/CardPreview.js.map +1 -0
  27. package/dist/care/CommunicationsWorkspace.d.ts +18 -0
  28. package/dist/care/CommunicationsWorkspace.d.ts.map +1 -0
  29. package/dist/care/CommunicationsWorkspace.js +13 -0
  30. package/dist/care/CommunicationsWorkspace.js.map +1 -0
  31. package/dist/care/EmergencyTaskHub.d.ts +27 -0
  32. package/dist/care/EmergencyTaskHub.d.ts.map +1 -0
  33. package/dist/care/EmergencyTaskHub.js +25 -0
  34. package/dist/care/EmergencyTaskHub.js.map +1 -0
  35. package/dist/care/LegalMarkdownDocument.d.ts +6 -0
  36. package/dist/care/LegalMarkdownDocument.d.ts.map +1 -0
  37. package/dist/care/LegalMarkdownDocument.js +57 -0
  38. package/dist/care/LegalMarkdownDocument.js.map +1 -0
  39. package/dist/care/NotificationComposer.d.ts +49 -0
  40. package/dist/care/NotificationComposer.d.ts.map +1 -0
  41. package/dist/care/NotificationComposer.js +83 -0
  42. package/dist/care/NotificationComposer.js.map +1 -0
  43. package/dist/care/ProtectedIndexEmergencyData.d.ts +32 -0
  44. package/dist/care/ProtectedIndexEmergencyData.d.ts.map +1 -0
  45. package/dist/care/ProtectedIndexEmergencyData.js +13 -0
  46. package/dist/care/ProtectedIndexEmergencyData.js.map +1 -0
  47. package/dist/care/SelectedSubjectWorkspace.d.ts +32 -0
  48. package/dist/care/SelectedSubjectWorkspace.d.ts.map +1 -0
  49. package/dist/care/SelectedSubjectWorkspace.js +32 -0
  50. package/dist/care/SelectedSubjectWorkspace.js.map +1 -0
  51. package/dist/care/SoschainWorkspace.d.ts +119 -0
  52. package/dist/care/SoschainWorkspace.d.ts.map +1 -0
  53. package/dist/care/SoschainWorkspace.js +61 -0
  54. package/dist/care/SoschainWorkspace.js.map +1 -0
  55. package/dist/care/SubjectCommunicationCenter.d.ts +45 -0
  56. package/dist/care/SubjectCommunicationCenter.d.ts.map +1 -0
  57. package/dist/care/SubjectCommunicationCenter.js +40 -0
  58. package/dist/care/SubjectCommunicationCenter.js.map +1 -0
  59. package/dist/care/SubjectDemographicsFields.d.ts +42 -0
  60. package/dist/care/SubjectDemographicsFields.d.ts.map +1 -0
  61. package/dist/care/SubjectDemographicsFields.js +71 -0
  62. package/dist/care/SubjectDemographicsFields.js.map +1 -0
  63. package/dist/care/SubjectSectionIndex.d.ts +22 -0
  64. package/dist/care/SubjectSectionIndex.d.ts.map +1 -0
  65. package/dist/care/SubjectSectionIndex.js +34 -0
  66. package/dist/care/SubjectSectionIndex.js.map +1 -0
  67. package/dist/care/SubjectWorkspace.d.ts +29 -0
  68. package/dist/care/SubjectWorkspace.d.ts.map +1 -0
  69. package/dist/care/SubjectWorkspace.js +59 -0
  70. package/dist/care/SubjectWorkspace.js.map +1 -0
  71. package/dist/care/care.css +215 -0
  72. package/dist/care/index.d.ts +16 -0
  73. package/dist/care/index.d.ts.map +1 -0
  74. package/dist/care/index.js +16 -0
  75. package/dist/care/index.js.map +1 -0
  76. package/dist/care/notification-bff-client.d.ts +44 -0
  77. package/dist/care/notification-bff-client.d.ts.map +1 -0
  78. package/dist/care/notification-bff-client.js +89 -0
  79. package/dist/care/notification-bff-client.js.map +1 -0
  80. package/dist/clinical/BrowserClinicalSpeechInput.d.ts +25 -0
  81. package/dist/clinical/BrowserClinicalSpeechInput.d.ts.map +1 -0
  82. package/dist/clinical/BrowserClinicalSpeechInput.js +32 -0
  83. package/dist/clinical/BrowserClinicalSpeechInput.js.map +1 -0
  84. package/dist/clinical/ClinicalActionButton.d.ts +9 -0
  85. package/dist/clinical/ClinicalActionButton.d.ts.map +1 -0
  86. package/dist/clinical/ClinicalActionButton.js +13 -0
  87. package/dist/clinical/ClinicalActionButton.js.map +1 -0
  88. package/dist/clinical/ClinicalArtifactEditor.d.ts +147 -0
  89. package/dist/clinical/ClinicalArtifactEditor.d.ts.map +1 -0
  90. package/dist/clinical/ClinicalArtifactEditor.js +382 -0
  91. package/dist/clinical/ClinicalArtifactEditor.js.map +1 -0
  92. package/dist/clinical/ClinicalArtifactEditorV2.d.ts +77 -0
  93. package/dist/clinical/ClinicalArtifactEditorV2.d.ts.map +1 -0
  94. package/dist/clinical/ClinicalArtifactEditorV2.js +89 -0
  95. package/dist/clinical/ClinicalArtifactEditorV2.js.map +1 -0
  96. package/dist/clinical/ClinicalArtifactPropertiesV2.d.ts +83 -0
  97. package/dist/clinical/ClinicalArtifactPropertiesV2.d.ts.map +1 -0
  98. package/dist/clinical/ClinicalArtifactPropertiesV2.js +46 -0
  99. package/dist/clinical/ClinicalArtifactPropertiesV2.js.map +1 -0
  100. package/dist/clinical/ClinicalBundleDraftEditor.d.ts +99 -0
  101. package/dist/clinical/ClinicalBundleDraftEditor.d.ts.map +1 -0
  102. package/dist/clinical/ClinicalBundleDraftEditor.js +225 -0
  103. package/dist/clinical/ClinicalBundleDraftEditor.js.map +1 -0
  104. package/dist/clinical/ClinicalEditorLayer.d.ts +8 -0
  105. package/dist/clinical/ClinicalEditorLayer.d.ts.map +1 -0
  106. package/dist/clinical/ClinicalEditorLayer.js +12 -0
  107. package/dist/clinical/ClinicalEditorLayer.js.map +1 -0
  108. package/dist/clinical/ClinicalSectionSummary.d.ts +36 -0
  109. package/dist/clinical/ClinicalSectionSummary.d.ts.map +1 -0
  110. package/dist/clinical/ClinicalSectionSummary.js +24 -0
  111. package/dist/clinical/ClinicalSectionSummary.js.map +1 -0
  112. package/dist/clinical/ClinicalSpeechInput.d.ts +58 -0
  113. package/dist/clinical/ClinicalSpeechInput.d.ts.map +1 -0
  114. package/dist/clinical/ClinicalSpeechInput.js +84 -0
  115. package/dist/clinical/ClinicalSpeechInput.js.map +1 -0
  116. package/dist/clinical/ClinicalTimeline.d.ts +52 -0
  117. package/dist/clinical/ClinicalTimeline.d.ts.map +1 -0
  118. package/dist/clinical/ClinicalTimeline.js +48 -0
  119. package/dist/clinical/ClinicalTimeline.js.map +1 -0
  120. package/dist/clinical/ImmunizationArtifactEditorV2.d.ts +15 -0
  121. package/dist/clinical/ImmunizationArtifactEditorV2.d.ts.map +1 -0
  122. package/dist/clinical/ImmunizationArtifactEditorV2.js +62 -0
  123. package/dist/clinical/ImmunizationArtifactEditorV2.js.map +1 -0
  124. package/dist/clinical/IpsBundleSummary.d.ts +34 -0
  125. package/dist/clinical/IpsBundleSummary.d.ts.map +1 -0
  126. package/dist/clinical/IpsBundleSummary.js +75 -0
  127. package/dist/clinical/IpsBundleSummary.js.map +1 -0
  128. package/dist/clinical/SchemaClinicalArtifactEditorV2.d.ts +11 -0
  129. package/dist/clinical/SchemaClinicalArtifactEditorV2.d.ts.map +1 -0
  130. package/dist/clinical/SchemaClinicalArtifactEditorV2.js +62 -0
  131. package/dist/clinical/SchemaClinicalArtifactEditorV2.js.map +1 -0
  132. package/dist/clinical/clinical.css +148 -0
  133. package/dist/clinical/index.d.ts +14 -0
  134. package/dist/clinical/index.d.ts.map +1 -0
  135. package/dist/clinical/index.js +14 -0
  136. package/dist/clinical/index.js.map +1 -0
  137. package/dist/encounter-journey.css +91 -91
  138. package/dist/identity/AnimalIdentityDetailsV2.d.ts +43 -0
  139. package/dist/identity/AnimalIdentityDetailsV2.d.ts.map +1 -0
  140. package/dist/identity/AnimalIdentityDetailsV2.js +9 -0
  141. package/dist/identity/AnimalIdentityDetailsV2.js.map +1 -0
  142. package/dist/identity/AnimalIdentityOnboarding.d.ts +91 -0
  143. package/dist/identity/AnimalIdentityOnboarding.d.ts.map +1 -0
  144. package/dist/identity/AnimalIdentityOnboarding.js +73 -0
  145. package/dist/identity/AnimalIdentityOnboarding.js.map +1 -0
  146. package/dist/identity/AnimalIdentityOnboardingV2.d.ts +56 -0
  147. package/dist/identity/AnimalIdentityOnboardingV2.d.ts.map +1 -0
  148. package/dist/identity/AnimalIdentityOnboardingV2.js +174 -0
  149. package/dist/identity/AnimalIdentityOnboardingV2.js.map +1 -0
  150. package/dist/identity/current-subject.css +11 -0
  151. package/dist/identity/identity.css +64 -0
  152. package/dist/identity/index.d.ts +9 -0
  153. package/dist/identity/index.d.ts.map +1 -0
  154. package/dist/identity/index.js +10 -0
  155. package/dist/identity/index.js.map +1 -0
  156. package/dist/index.d.ts +8 -0
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +8 -0
  159. package/dist/index.js.map +1 -1
  160. package/dist/preferences.d.ts +12 -0
  161. package/dist/preferences.d.ts.map +1 -0
  162. package/dist/preferences.js +57 -0
  163. package/dist/preferences.js.map +1 -0
  164. package/dist/styles.css +24 -0
  165. package/dist/usePortalUiPreferences.d.ts +9 -0
  166. package/dist/usePortalUiPreferences.d.ts.map +1 -0
  167. package/dist/usePortalUiPreferences.js +39 -0
  168. package/dist/usePortalUiPreferences.js.map +1 -0
  169. package/package.json +127 -110
@@ -0,0 +1,89 @@
1
+ import { normalizePublicNotificationRecord, normalizeNotificationComposerDraft, } from 'sos-data-utils-ts/public-notifications';
2
+ /** Personal public-topic reader; the BFF derives subscriptions, exclusions and delivery decisions. */
3
+ export function createPersonalNotificationBffClient(input) {
4
+ const routeRoot = input.routeRoot ?? '/api/notifications';
5
+ return Object.freeze({
6
+ async listPublic(context) {
7
+ const subjectReference = context.subjectReference.trim();
8
+ if (!subjectReference)
9
+ throw new Error('notification_subject_reference_required');
10
+ const query = new URLSearchParams({ subject: subjectReference });
11
+ if (context.subjectKind === 'animal')
12
+ query.set('species', context.species);
13
+ const response = await input.authorizedFetch(`${routeRoot}?${query.toString()}`, { method: 'GET' });
14
+ const payload = await response.json();
15
+ if (!response.ok || !Array.isArray(payload.notifications)) {
16
+ throw new Error(payload.error || 'notification_list_failed');
17
+ }
18
+ return Object.freeze(payload.notifications.map(normalizePublicNotificationRecord));
19
+ },
20
+ });
21
+ }
22
+ /** Shared transport adapter for browser, mobile-web and assistant hosts. */
23
+ export function createNotificationBffClient(input) {
24
+ const routeRoot = input.routeRoot ?? '/api/notifications';
25
+ return Object.freeze({
26
+ async uploadAttachment(file) {
27
+ const form = new FormData();
28
+ form.set('attachment', file);
29
+ const response = await input.authorizedFetch(`${routeRoot}/attachments`, {
30
+ method: 'POST',
31
+ body: form,
32
+ });
33
+ const payload = await response.json();
34
+ if (!response.ok || !payload.attachment)
35
+ throw new Error(payload.error || 'notification_attachment_upload_failed');
36
+ return Object.freeze(payload.attachment);
37
+ },
38
+ async send(draft) {
39
+ const normalizedDraft = normalizeNotificationComposerDraft(draft);
40
+ const response = await input.authorizedFetch(routeRoot, {
41
+ method: 'POST',
42
+ headers: { 'content-type': 'application/json' },
43
+ body: JSON.stringify({ operation: 'send', draft: normalizedDraft }),
44
+ });
45
+ const payload = await response.json();
46
+ if (!response.ok || !payload.notificationId || payload.status !== 'accepted') {
47
+ throw new Error(payload.error || 'notification_send_failed');
48
+ }
49
+ return Object.freeze({ notificationId: payload.notificationId, status: 'accepted' });
50
+ },
51
+ });
52
+ }
53
+ /** Public-dataset transport shared by professional portals; the BFF validates the trusted profile proof. */
54
+ export function createPublicNotificationBffClient(input) {
55
+ const routeRoot = input.routeRoot ?? '/api/notifications/public';
56
+ const profileId = input.profileProof.profileId.trim();
57
+ const profileSessionToken = input.profileProof.profileSessionToken.trim();
58
+ if (!profileId)
59
+ throw new Error('profile_id_required');
60
+ if (!profileSessionToken)
61
+ throw new Error('wallet_session_required');
62
+ return Object.freeze({
63
+ async uploadAttachment(file) {
64
+ const form = new FormData();
65
+ form.set('profileId', profileId);
66
+ form.set('profileSessionToken', profileSessionToken);
67
+ form.set('file', file);
68
+ const response = await input.authorizedFetch(`${routeRoot}/attachments`, { method: 'POST', body: form });
69
+ const payload = await response.json();
70
+ if (!response.ok || !payload.attachment)
71
+ throw new Error(payload.error || 'notification_attachment_upload_failed');
72
+ return Object.freeze(payload.attachment);
73
+ },
74
+ async send(draft) {
75
+ const normalizedDraft = normalizeNotificationComposerDraft(draft);
76
+ const response = await input.authorizedFetch(routeRoot, {
77
+ method: 'POST',
78
+ headers: { 'content-type': 'application/json' },
79
+ body: JSON.stringify({ operation: 'send', profileId, profileSessionToken, draft: normalizedDraft }),
80
+ });
81
+ const payload = await response.json();
82
+ if (!response.ok || !payload.notificationId || payload.status !== 'accepted') {
83
+ throw new Error(payload.error || 'public_notification_send_failed');
84
+ }
85
+ return Object.freeze({ notificationId: payload.notificationId, status: 'accepted' });
86
+ },
87
+ });
88
+ }
89
+ //# sourceMappingURL=notification-bff-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-bff-client.js","sourceRoot":"","sources":["../../src/care/notification-bff-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ type SpeechResultEvent = Readonly<{
2
+ results: ArrayLike<ArrayLike<Readonly<{
3
+ transcript: string;
4
+ }>>>;
5
+ }>;
6
+ type SpeechErrorEvent = Readonly<{
7
+ error?: string;
8
+ }>;
9
+ type SpeechRecognitionLike = {
10
+ lang: string;
11
+ continuous: boolean;
12
+ interimResults: boolean;
13
+ maxAlternatives: number;
14
+ onresult: ((event: SpeechResultEvent) => void) | null;
15
+ onerror: ((event: SpeechErrorEvent) => void) | null;
16
+ onend: (() => void) | null;
17
+ start(): void;
18
+ stop(): void;
19
+ };
20
+ type SpeechRecognitionConstructor = new () => SpeechRecognitionLike;
21
+ /** Product-neutral browser microphone adapter; the transcript stays editable. */
22
+ export declare function transcribeBrowserClinicalSpeech(locale: string, suppliedConstructor?: SpeechRecognitionConstructor): Promise<string>;
23
+ export declare function supportsBrowserClinicalSpeech(): boolean;
24
+ export {};
25
+ //# sourceMappingURL=BrowserClinicalSpeechInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserClinicalSpeechInput.d.ts","sourceRoot":"","sources":["../../src/clinical/BrowserClinicalSpeechInput.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAAA;AACtG,KAAK,gBAAgB,GAAG,QAAQ,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AACpD,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IACrD,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IACnD,KAAK,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAA;IAC1B,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,IAAI,IAAI,CAAA;CACb,CAAA;AACD,KAAK,4BAA4B,GAAG,UAAU,qBAAqB,CAAA;AAEnE,iFAAiF;AACjF,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,4BAA4B,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBnI;AAED,wBAAgB,6BAA6B,IAAI,OAAO,CAIvD"}
@@ -0,0 +1,32 @@
1
+ /** Product-neutral browser microphone adapter; the transcript stays editable. */
2
+ export function transcribeBrowserClinicalSpeech(locale, suppliedConstructor) {
3
+ const browser = typeof window === 'undefined'
4
+ ? undefined
5
+ : window;
6
+ const Constructor = suppliedConstructor ?? browser?.SpeechRecognition ?? browser?.webkitSpeechRecognition;
7
+ if (!Constructor)
8
+ return Promise.reject(new Error('clinical_speech_input_unavailable'));
9
+ return new Promise((resolve, reject) => {
10
+ const recognition = new Constructor();
11
+ let settled = false;
12
+ recognition.lang = locale;
13
+ recognition.continuous = false;
14
+ recognition.interimResults = false;
15
+ recognition.maxAlternatives = 1;
16
+ recognition.onresult = (event) => {
17
+ settled = true;
18
+ resolve(Array.from(event.results).map((result) => result[0]?.transcript || '').join(' ').trim());
19
+ };
20
+ recognition.onerror = (event) => { settled = true; reject(new Error(event.error || 'clinical_speech_input_failed')); };
21
+ recognition.onend = () => { if (!settled)
22
+ reject(new Error('clinical_speech_input_empty')); };
23
+ recognition.start();
24
+ });
25
+ }
26
+ export function supportsBrowserClinicalSpeech() {
27
+ if (typeof window === 'undefined')
28
+ return false;
29
+ const browser = window;
30
+ return Boolean(browser.SpeechRecognition || browser.webkitSpeechRecognition);
31
+ }
32
+ //# sourceMappingURL=BrowserClinicalSpeechInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrowserClinicalSpeechInput.js","sourceRoot":"","sources":["../../src/clinical/BrowserClinicalSpeechInput.ts"],"names":[],"mappings":"AAeA,iFAAiF;AACjF,MAAM,UAAU,+BAA+B,CAAC,MAAc,EAAE,mBAAkD;IAChH,MAAM,OAAO,GAAG,OAAO,MAAM,KAAK,WAAW;QAC3C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAsI,CAAA;IAC1I,MAAM,WAAW,GAAG,mBAAmB,IAAI,OAAO,EAAE,iBAAiB,IAAI,OAAO,EAAE,uBAAuB,CAAA;IACzG,IAAI,CAAC,WAAW;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAA;IACvF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;QACrC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,WAAW,CAAC,IAAI,GAAG,MAAM,CAAA;QACzB,WAAW,CAAC,UAAU,GAAG,KAAK,CAAA;QAC9B,WAAW,CAAC,cAAc,GAAG,KAAK,CAAA;QAClC,WAAW,CAAC,eAAe,GAAG,CAAC,CAAA;QAC/B,WAAW,CAAC,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE;YAC/B,OAAO,GAAG,IAAI,CAAA;YACd,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QAClG,CAAC,CAAA;QACD,WAAW,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,8BAA8B,CAAC,CAAC,CAAA,CAAC,CAAC,CAAA;QACrH,WAAW,CAAC,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO;YAAE,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA,CAAC,CAAC,CAAA;QAC5F,WAAW,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,KAAK,CAAA;IAC/C,MAAM,OAAO,GAAG,MAA4F,CAAA;IAC5G,OAAO,OAAO,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAA;AAC9E,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type ClinicalActionKind = 'add' | 'edit' | 'delete';
2
+ /** Compact clinical action; authorization and callback behavior remain host-owned. */
3
+ export declare function ClinicalActionButton({ kind, label, disabled, onClick }: Readonly<{
4
+ kind: ClinicalActionKind;
5
+ label: string;
6
+ disabled?: boolean;
7
+ onClick: () => void;
8
+ }>): import("react").JSX.Element;
9
+ //# sourceMappingURL=ClinicalActionButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClinicalActionButton.d.ts","sourceRoot":"","sources":["../../src/clinical/ClinicalActionButton.tsx"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAA;AAE1D,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAgB,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC;IACxF,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAC,+BAUD"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /** Compact clinical action; authorization and callback behavior remain host-owned. */
3
+ export function ClinicalActionButton({ kind, label, disabled = false, onClick }) {
4
+ return _jsx("button", { type: "button", className: `uhcp-clinical-icon-action uhcp-clinical-icon-action-${kind}`, "aria-label": label, title: label, "data-tooltip": label, disabled: disabled, onClick: onClick, children: _jsx(ActionIcon, { kind: kind }) });
5
+ }
6
+ function ActionIcon({ kind }) {
7
+ if (kind === 'add')
8
+ return _jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { d: "M12 5v14M5 12h14" }) });
9
+ if (kind === 'delete')
10
+ return _jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { d: "M4 7h16m-10 4v6m4-6v6M9 7l1-3h4l1 3m3 0-1 14H7L6 7" }) });
11
+ return _jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { d: "m4 20 4.2-1 10.9-10.9a2.1 2.1 0 0 0-3-3L5.2 16 4 20Zm10.7-13.5 3 3" }) });
12
+ }
13
+ //# sourceMappingURL=ClinicalActionButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClinicalActionButton.js","sourceRoot":"","sources":["../../src/clinical/ClinicalActionButton.tsx"],"names":[],"mappings":";AAEA,sFAAsF;AACtF,MAAM,UAAU,oBAAoB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,EAK3E;IACA,OAAO,iBACL,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,uDAAuD,IAAI,EAAE,gBAC5D,KAAK,EACjB,KAAK,EAAE,KAAK,kBACE,KAAK,EACnB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,YACjB,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAG,GAAS,CAAA;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,IAAI,EAA0C;IAClE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,YAAC,eAAM,CAAC,EAAC,kBAAkB,GAAE,GAAM,CAAA;IACzG,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,YAAC,eAAM,CAAC,EAAC,oDAAoD,GAAE,GAAM,CAAA;IAC9I,OAAO,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,YAAC,eAAM,CAAC,EAAC,oEAAoE,GAAE,GAAM,CAAA;AACzI,CAAC"}
@@ -0,0 +1,147 @@
1
+ import type { ClinicalResourceBundleLike } from 'fhir-data-utils-ts/clinical-resource-view';
2
+ import { type MultichannelOperationSchema, type MultichannelOperationValues } from 'sos-data-utils-ts/multichannel-operation-schemas';
3
+ import type { ClinicalDateTimeFieldLabels } from './ClinicalTimeline.js';
4
+ export type ClinicalArtifactSchema = Readonly<{
5
+ resourceType: string;
6
+ sectionCode?: string;
7
+ requiredClaims: readonly string[];
8
+ optionalClaims: readonly string[];
9
+ terminologyTextClaims?: readonly string[];
10
+ initialClaims?: Readonly<Record<string, string>>;
11
+ }>;
12
+ export type ClinicalArtifactEditorRequest = Readonly<{
13
+ resourceType: string;
14
+ sectionCode: string;
15
+ mode: 'create' | 'update';
16
+ artifactId?: string;
17
+ ifMatch?: string;
18
+ initialClaims?: Readonly<Record<string, unknown>>;
19
+ /** Native FHIR R4 resource hydrated through the selected shared schema. */
20
+ initialResource?: Readonly<Record<string, unknown> & {
21
+ resourceType: string;
22
+ }>;
23
+ /** Authoritative claims-first provider Bundle hydrated through BundleReader. */
24
+ initialBundle?: Readonly<Record<string, unknown>>;
25
+ /** Documents already staged with this local entry. */
26
+ initialAttachments?: readonly ClinicalArtifactAttachment[];
27
+ }>;
28
+ export type ClinicalArtifactDraft = Readonly<{
29
+ resourceType: string;
30
+ id: string;
31
+ sectionCode: string;
32
+ mode: 'create' | 'update';
33
+ claims: Readonly<Record<string, string>>;
34
+ /** Complete schema-validated operation values when a multichannel schema is supplied. */
35
+ operationValues?: MultichannelOperationValues;
36
+ /** Claims-first operation result staged by the host. */
37
+ changesBundle?: ClinicalArtifactChangesBundle;
38
+ /** Local document evidence linked to this entry when the enclosing Bundle is built. */
39
+ attachments?: readonly ClinicalArtifactAttachment[];
40
+ }>;
41
+ export type ClinicalArtifactAttachment = Readonly<{
42
+ id: string;
43
+ name: string;
44
+ contentType: 'application/pdf' | 'image/jpeg' | 'image/png';
45
+ contentHash: string;
46
+ dataBase64: string;
47
+ }>;
48
+ export type ClinicalArtifactChangesBundle = Readonly<{
49
+ resourceType: string;
50
+ type: string;
51
+ data?: readonly unknown[];
52
+ entry?: readonly unknown[];
53
+ }>;
54
+ export type ClinicalArtifactAuthoringContext = Readonly<{
55
+ subjectReference: string;
56
+ language: string;
57
+ createdAt: string;
58
+ dataAuthorReference: string;
59
+ attestationState: 'draft' | 'confirmed';
60
+ attesterReference?: string;
61
+ attesterMode?: string;
62
+ attestedAt?: string;
63
+ }>;
64
+ export type ClinicalTerminologyCandidate = Readonly<{
65
+ system: string;
66
+ code: string;
67
+ display: string;
68
+ text?: string;
69
+ }>;
70
+ export type ClinicalTerminologySearch = Readonly<{
71
+ resourceType: string;
72
+ claim: string;
73
+ language: string;
74
+ text: string;
75
+ taxonomyId?: string;
76
+ limit: number;
77
+ sources?: readonly string[];
78
+ }>;
79
+ export type ClinicalTerminologySource = Readonly<{
80
+ id: string;
81
+ label?: string;
82
+ default?: boolean;
83
+ }>;
84
+ export type ClinicalTerminologySourceSearch = (input: Readonly<{
85
+ resourceType: string;
86
+ claim: string;
87
+ language: string;
88
+ taxonomyId?: string;
89
+ }>) => Promise<readonly ClinicalTerminologySource[]>;
90
+ export type ClinicalArtifactEditorCopy = Readonly<{
91
+ title: string;
92
+ description: string;
93
+ resourceType?: string;
94
+ save: string;
95
+ saving: string;
96
+ cancel: string;
97
+ close: string;
98
+ terminologyLoading: string;
99
+ terminologyUnavailable: string;
100
+ terminologySources?: string;
101
+ readbackMissing: string;
102
+ pending?: string;
103
+ retry?: string;
104
+ attachments?: string;
105
+ addAttachments?: string;
106
+ removeAttachment?: string;
107
+ dateTime?: ClinicalDateTimeFieldLabels;
108
+ }>;
109
+ export type ClinicalArtifactSaveOutcome = Readonly<{
110
+ state: 'confirmed';
111
+ bundle: ClinicalResourceBundleLike;
112
+ } | {
113
+ state: 'pending' | 'retryable';
114
+ message?: string;
115
+ } | {
116
+ state: 'rejected';
117
+ message: string;
118
+ }>;
119
+ export type ClinicalArtifactEditorProps = Readonly<{
120
+ request: ClinicalArtifactEditorRequest;
121
+ schema: ClinicalArtifactSchema;
122
+ /** Shared JSON Schema 2020-12 contract used by portal, voice, chat and WhatsApp. */
123
+ operationSchema?: MultichannelOperationSchema;
124
+ /** Host-owned subject and provenance; never inferred from the transport sender. */
125
+ authoringContext?: ClinicalArtifactAuthoringContext;
126
+ copy: ClinicalArtifactEditorCopy;
127
+ locale?: string;
128
+ /** IANA zone used to present and compose separate local date/time controls. */
129
+ timeZone?: string;
130
+ taxonomyId?: string;
131
+ fieldLabel: (claim: string) => string;
132
+ resourceTypeLabel?: string;
133
+ searchTerminology?: (input: ClinicalTerminologySearch) => Promise<readonly ClinicalTerminologyCandidate[]>;
134
+ loadTerminologySources?: ClinicalTerminologySourceSearch;
135
+ saveArtifact: (draft: ClinicalArtifactDraft) => Promise<ClinicalResourceBundleLike | ClinicalArtifactSaveOutcome | undefined>;
136
+ onCancel: () => void;
137
+ onReadback: (bundle: ClinicalResourceBundleLike) => void;
138
+ }>;
139
+ /**
140
+ * Shared human/animal clinical editor. The host owns authorization, transport,
141
+ * persistence and terminology service access. A successful form submission is
142
+ * published only after the host returns a fresh provider readback Bundle.
143
+ */
144
+ /** @deprecated Use ClinicalBundleDraftEditorV2 for every new clinical authoring flow. */
145
+ export declare function ClinicalArtifactEditor({ request, schema, operationSchema, authoringContext, copy, locale, timeZone, taxonomyId, fieldLabel, resourceTypeLabel, searchTerminology, loadTerminologySources, saveArtifact, onCancel, onReadback, }: ClinicalArtifactEditorProps): import("react").JSX.Element;
146
+ export declare function readClinicalAttachment(file: File): Promise<ClinicalArtifactAttachment>;
147
+ //# sourceMappingURL=ClinicalArtifactEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClinicalArtifactEditor.d.ts","sourceRoot":"","sources":["../../src/clinical/ClinicalArtifactEditor.tsx"],"names":[],"mappings":"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"}