@eka-care/medical-records-ui 1.0.51 → 1.0.55

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 (62) hide show
  1. package/dist/{OriginalRecordPanel-DQF55MG3.js → OriginalRecordPanel-PR35G6KV.js} +25 -147
  2. package/dist/OriginalRecordPanel-PR35G6KV.js.map +1 -0
  3. package/dist/{OriginalRecordPanel-FBSPPGVL.mjs → OriginalRecordPanel-QYGV744W.mjs} +7 -129
  4. package/dist/OriginalRecordPanel-QYGV744W.mjs.map +1 -0
  5. package/dist/SmartUploadModal-5SITEKEJ.mjs +9 -0
  6. package/dist/SmartUploadModal-RHGZPTB3.js +9 -0
  7. package/dist/{SmartUploadModal-TI6I4ZM3.js.map → SmartUploadModal-RHGZPTB3.js.map} +1 -1
  8. package/dist/VitalHistoryPanel-76GSKJPJ.mjs +10 -0
  9. package/dist/VitalHistoryPanel-7GT3GZEJ.js +10 -0
  10. package/dist/{VitalHistoryPanel-V6NJE5JI.js.map → VitalHistoryPanel-7GT3GZEJ.js.map} +1 -1
  11. package/dist/chunk-22QQK3VR.mjs +96 -0
  12. package/dist/chunk-22QQK3VR.mjs.map +1 -0
  13. package/dist/{chunk-EOMQQSZU.mjs → chunk-3J6XMPXB.mjs} +2 -2
  14. package/dist/{chunk-QK7VGCUW.js → chunk-636WE5XC.js} +14 -14
  15. package/dist/{chunk-QK7VGCUW.js.map → chunk-636WE5XC.js.map} +1 -1
  16. package/dist/{chunk-MI2JSHXL.mjs → chunk-7AO6M347.mjs} +9 -9
  17. package/dist/chunk-7AO6M347.mjs.map +1 -0
  18. package/dist/{chunk-TFR7PUDT.mjs → chunk-IIAX5R33.mjs} +3 -3
  19. package/dist/{chunk-3VRMKZ4H.mjs → chunk-NZNI6YJ5.mjs} +66 -1
  20. package/dist/chunk-NZNI6YJ5.mjs.map +1 -0
  21. package/dist/{chunk-PN7IJ5MG.js → chunk-QGGLSO4W.js} +84 -19
  22. package/dist/chunk-QGGLSO4W.js.map +1 -0
  23. package/dist/chunk-QYUEKKMV.js +96 -0
  24. package/dist/chunk-QYUEKKMV.js.map +1 -0
  25. package/dist/{chunk-WUON6OEN.js → chunk-STQYPHI3.js} +16 -16
  26. package/dist/chunk-STQYPHI3.js.map +1 -0
  27. package/dist/{chunk-GDLEVEWR.js → chunk-WXCGQDIL.js} +21 -21
  28. package/dist/{chunk-GDLEVEWR.js.map → chunk-WXCGQDIL.js.map} +1 -1
  29. package/dist/index.css +35 -5
  30. package/dist/index.css.map +1 -1
  31. package/dist/index.d.mts +28 -1
  32. package/dist/index.d.ts +28 -1
  33. package/dist/index.js +370 -174
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +345 -149
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/styles.css +35 -5
  38. package/dist/styles.css.map +1 -1
  39. package/dist/widgets-GSEIOGU4.js +43 -0
  40. package/dist/{widgets-3PAKTLR5.js.map → widgets-GSEIOGU4.js.map} +1 -1
  41. package/dist/{widgets-QTQJHVAY.mjs → widgets-RJVE37HS.mjs} +2 -2
  42. package/package.json +1 -1
  43. package/dist/OriginalRecordPanel-DQF55MG3.js.map +0 -1
  44. package/dist/OriginalRecordPanel-FBSPPGVL.mjs.map +0 -1
  45. package/dist/SmartUploadModal-RFFYDGAF.mjs +0 -9
  46. package/dist/SmartUploadModal-TI6I4ZM3.js +0 -9
  47. package/dist/VitalHistoryPanel-KXYWVG55.mjs +0 -10
  48. package/dist/VitalHistoryPanel-V6NJE5JI.js +0 -10
  49. package/dist/chunk-3VRMKZ4H.mjs.map +0 -1
  50. package/dist/chunk-LSDWS36C.mjs +0 -49
  51. package/dist/chunk-LSDWS36C.mjs.map +0 -1
  52. package/dist/chunk-MI2JSHXL.mjs.map +0 -1
  53. package/dist/chunk-PN7IJ5MG.js.map +0 -1
  54. package/dist/chunk-QXXC4RX4.js +0 -49
  55. package/dist/chunk-QXXC4RX4.js.map +0 -1
  56. package/dist/chunk-WUON6OEN.js.map +0 -1
  57. package/dist/widgets-3PAKTLR5.js +0 -43
  58. /package/dist/{SmartUploadModal-RFFYDGAF.mjs.map → SmartUploadModal-5SITEKEJ.mjs.map} +0 -0
  59. /package/dist/{VitalHistoryPanel-KXYWVG55.mjs.map → VitalHistoryPanel-76GSKJPJ.mjs.map} +0 -0
  60. /package/dist/{chunk-EOMQQSZU.mjs.map → chunk-3J6XMPXB.mjs.map} +0 -0
  61. /package/dist/{chunk-TFR7PUDT.mjs.map → chunk-IIAX5R33.mjs.map} +0 -0
  62. /package/dist/{widgets-QTQJHVAY.mjs.map → widgets-RJVE37HS.mjs.map} +0 -0
@@ -2,13 +2,13 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkQXXC4RX4js = require('./chunk-QXXC4RX4.js');
5
+ var _chunkQYUEKKMVjs = require('./chunk-QYUEKKMV.js');
6
6
 
7
7
 
8
8
 
9
9
 
10
10
 
11
- var _chunkWUON6OENjs = require('./chunk-WUON6OEN.js');
11
+ var _chunkSTQYPHI3js = require('./chunk-STQYPHI3.js');
12
12
 
13
13
 
14
14
 
@@ -16,7 +16,7 @@ var _chunkWUON6OENjs = require('./chunk-WUON6OEN.js');
16
16
 
17
17
 
18
18
 
19
- var _chunkPN7IJ5MGjs = require('./chunk-PN7IJ5MG.js');
19
+ var _chunkQGGLSO4Wjs = require('./chunk-QGGLSO4W.js');
20
20
 
21
21
  // src/views/components/shared/OriginalRecordPanel.tsx
22
22
  var _react = require('react');
@@ -40,12 +40,12 @@ function OriginalRecordPanel({
40
40
  caseId,
41
41
  onBack
42
42
  }) {
43
- const { store } = _chunkPN7IJ5MGjs.useSdk.call(void 0, );
43
+ const { store } = _chunkQGGLSO4Wjs.useSdk.call(void 0, );
44
44
  const record = _zustand.useStore.call(void 0, store, (s) => s.records.byId[recordId]);
45
45
  const recordsById = _zustand.useStore.call(void 0, store, (s) => s.records.byId);
46
- const preview = _chunkWUON6OENjs.useRecordPreview.call(void 0, recordId);
47
- const { replaceOriginal, onCopyToNote, onCopyVitalsToNote, hasCopyToNote, onToast } = _chunkWUON6OENjs.useSmartRecordsActions.call(void 0, );
48
- const { status: vitalsStatus, table } = _chunkWUON6OENjs.useRecordPanelTable.call(void 0,
46
+ const preview = _chunkSTQYPHI3js.useRecordPreview.call(void 0, recordId);
47
+ const { replaceOriginal, onCopyToNote, onCopyVitalsToNote, hasCopyToNote, onToast } = _chunkSTQYPHI3js.useSmartRecordsActions.call(void 0, );
48
+ const { status: vitalsStatus, table } = _chunkSTQYPHI3js.useRecordPanelTable.call(void 0,
49
49
  _optionalChain([record, 'optionalAccess', _3 => _3.isSmart]) ? recordId : null
50
50
  );
51
51
  const [smartPanelOpen, setSmartPanelOpen] = _react.useState.call(void 0, true);
@@ -148,7 +148,7 @@ function OriginalRecordPanel({
148
148
  void onCopyToNote(
149
149
  text,
150
150
  rect ? { x: rect.left + rect.width / 2, y: rect.bottom } : void 0,
151
- _chunkQXXC4RX4js.toVitalNoteRows.call(void 0, selectedRows)
151
+ _chunkQYUEKKMVjs.toVitalNoteRows.call(void 0, selectedRows)
152
152
  );
153
153
  }
154
154
  }, [filteredRows, srSelected, onCopyVitalsToNote, onCopyToNote]);
@@ -187,131 +187,9 @@ function OriginalRecordPanel({
187
187
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { size: 16, "aria-hidden": true }),
188
188
  "Back"
189
189
  ] }),
190
- showNavPicker ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__nav-wrap", ref: dropdownRef, children: [
191
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
192
- "div",
193
- {
194
- className: `mr-orig__nav-pill${dropdownOpen ? " mr-orig__nav-pill--open" : ""}`,
195
- role: "button",
196
- tabIndex: 0,
197
- onClick: () => setDropdownOpen((v) => !v),
198
- onKeyDown: (e) => {
199
- if (e.key === "Enter" || e.key === " ") {
200
- e.preventDefault();
201
- setDropdownOpen((v) => !v);
202
- }
203
- },
204
- children: [
205
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
206
- "button",
207
- {
208
- type: "button",
209
- className: "mr-orig__nav-chevron",
210
- onClick: (e) => {
211
- e.stopPropagation();
212
- goPrev();
213
- },
214
- "aria-label": "Previous record",
215
- disabled: currentIndex <= 0,
216
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronLeft, { size: 14, "aria-hidden": true })
217
- }
218
- ),
219
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__nav-text", children: [
220
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-orig__nav-title", children: _nullishCoalesce(_optionalChain([record, 'optionalAccess', _19 => _19.title]), () => ( "Record")) }),
221
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "mr-orig__nav-counter", children: [
222
- currentIndex + 1,
223
- " of ",
224
- total
225
- ] })
226
- ] }),
227
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
228
- "button",
229
- {
230
- type: "button",
231
- className: "mr-orig__nav-chevron",
232
- onClick: (e) => {
233
- e.stopPropagation();
234
- goNext();
235
- },
236
- "aria-label": "Next record",
237
- disabled: currentIndex >= total - 1,
238
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronRight, { size: 14, "aria-hidden": true })
239
- }
240
- )
241
- ]
242
- }
243
- ),
244
- dropdownOpen && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__dropdown", children: [
245
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__dropdown-eyebrow", children: [
246
- total,
247
- " RECORD",
248
- total !== 1 ? "S" : "",
249
- " ",
250
- isUngrouped ? "WITH NO CARE CONTEXT" : "FOUND IN THIS ENCOUNTER"
251
- ] }),
252
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-orig__dropdown-list", children: caseRecords.map((r) => {
253
- const isActive = r.id === recordId;
254
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
255
- "button",
256
- {
257
- type: "button",
258
- className: `mr-orig__dropdown-item${isActive ? " mr-orig__dropdown-item--active" : ""}`,
259
- onClick: () => goTo(r),
260
- children: [
261
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__dropdown-icon", children: [
262
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.File, { size: 16, "aria-hidden": true }),
263
- r.isSmart && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
264
- _chunkQXXC4RX4js.SmartSparkles_default,
265
- {
266
- className: "mr-orig__dropdown-smart-dot",
267
- "aria-label": "Smart report"
268
- }
269
- )
270
- ] }),
271
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__dropdown-info", children: [
272
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__dropdown-title-row", children: [
273
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-orig__dropdown-title", children: r.title }),
274
- r.isSmart && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "mr-orig__dropdown-smart-badge", children: [
275
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQXXC4RX4js.SmartSparkles_default, { "aria-hidden": true }),
276
- "Smart Report"
277
- ] }),
278
- _optionalChain([r, 'access', _20 => _20.fileType, 'optionalAccess', _21 => _21.toUpperCase, 'call', _22 => _22()]) === "HTML" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-tag-chip mr-tag-chip--html", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-tag-chip__label", children: "HTML" }) })
279
- ] }),
280
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__dropdown-meta", children: [
281
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { children: _chunkPN7IJ5MGjs.epochToDisplay.call(void 0, r.createdAtEpoch) }),
282
- r.isSmart && r.totalVitals > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
283
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-orig__dropdown-dot", children: "\xB7" }),
284
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { children: [
285
- r.totalVitals,
286
- " vitals"
287
- ] })
288
- ] }),
289
- r.isSmart && r.outOfRangeVitals > 0 && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
290
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-orig__dropdown-dot", children: "\xB7" }),
291
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "mr-orig__dropdown-oor", children: [
292
- r.outOfRangeVitals,
293
- " out of range"
294
- ] })
295
- ] })
296
- ] })
297
- ] }),
298
- isActive && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
299
- _lucidereact.Check,
300
- {
301
- size: 14,
302
- className: "mr-orig__dropdown-check",
303
- "aria-hidden": true
304
- }
305
- )
306
- ]
307
- },
308
- r.id
309
- );
310
- }) })
311
- ] })
312
- ] }) : record ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-sv__panel-info", children: [
313
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPN7IJ5MGjs.Typography, { variant: "label", as: "span", className: "mr-sv__panel-name", children: record.title }),
314
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPN7IJ5MGjs.Typography, { variant: "hint", as: "span", className: "mr-sv__panel-meta-text", children: _chunkPN7IJ5MGjs.epochToDisplay.call(void 0, record.createdAtEpoch) })
190
+ record ? /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-sv__panel-info", children: [
191
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQGGLSO4Wjs.Typography, { variant: "label", as: "span", className: "mr-sv__panel-name", children: record.title }),
192
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQGGLSO4Wjs.Typography, { variant: "hint", as: "span", className: "mr-sv__panel-meta-text", children: _chunkQGGLSO4Wjs.epochToDisplay.call(void 0, record.createdAtEpoch) })
315
193
  ] }) : null,
316
194
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__header-actions", children: [
317
195
  preview.isHtml && hasCopyToNote && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
@@ -329,7 +207,7 @@ function OriginalRecordPanel({
329
207
  }
330
208
  ),
331
209
  hasPreview && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
332
- _chunkPN7IJ5MGjs.IconButton,
210
+ _chunkQGGLSO4Wjs.IconButton,
333
211
  {
334
212
  icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { size: 16, "aria-hidden": true }),
335
213
  label: "Open in new tab",
@@ -358,8 +236,8 @@ function OriginalRecordPanel({
358
236
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.LoaderCircle, { size: 44, className: "mr-sv__loading-spinner", "aria-hidden": true })
359
237
  }
360
238
  ),
361
- preview.status === "error" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPN7IJ5MGjs.Typography, { variant: "muted", className: "mr-sv__panel-empty", children: "Failed to load document preview." }),
362
- preview.status === "loaded" && preview.files.length === 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPN7IJ5MGjs.Typography, { variant: "muted", className: "mr-sv__panel-empty", children: "No preview available for this record." }),
239
+ preview.status === "error" && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQGGLSO4Wjs.Typography, { variant: "muted", className: "mr-sv__panel-empty", children: "Failed to load document preview." }),
240
+ preview.status === "loaded" && preview.files.length === 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQGGLSO4Wjs.Typography, { variant: "muted", className: "mr-sv__panel-empty", children: "No preview available for this record." }),
363
241
  hasPreview && !isSmart && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
364
242
  "div",
365
243
  {
@@ -369,7 +247,7 @@ function OriginalRecordPanel({
369
247
  DocumentViewer,
370
248
  {
371
249
  files: preview.files,
372
- title: _nullishCoalesce(_optionalChain([record, 'optionalAccess', _23 => _23.title]), () => ( "")),
250
+ title: _nullishCoalesce(_optionalChain([record, 'optionalAccess', _19 => _19.title]), () => ( "")),
373
251
  isHtml: preview.isHtml
374
252
  }
375
253
  ) })
@@ -380,7 +258,7 @@ function OriginalRecordPanel({
380
258
  DocumentViewer,
381
259
  {
382
260
  files: preview.files,
383
- title: _nullishCoalesce(_optionalChain([record, 'optionalAccess', _24 => _24.title]), () => ( "")),
261
+ title: _nullishCoalesce(_optionalChain([record, 'optionalAccess', _20 => _20.title]), () => ( "")),
384
262
  isHtml: preview.isHtml
385
263
  }
386
264
  ) }) }),
@@ -388,7 +266,7 @@ function OriginalRecordPanel({
388
266
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__smart-hdr", children: [
389
267
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "mr-orig__smart-title-row", children: [
390
268
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-orig__smart-title", children: "Smart Report" }),
391
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQXXC4RX4js.SmartSparkles_default, { className: "mr-orig__smart-title-icon", "aria-hidden": true })
269
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQYUEKKMVjs.SmartSparkles_default, { className: "mr-orig__smart-title-icon", "aria-hidden": true })
392
270
  ] }),
393
271
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
394
272
  "button",
@@ -403,7 +281,7 @@ function OriginalRecordPanel({
403
281
  )
404
282
  ] }),
405
283
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
406
- _chunkPN7IJ5MGjs.SearchInput_default,
284
+ _chunkQGGLSO4Wjs.SearchInput_default,
407
285
  {
408
286
  className: "mr-orig__smart-search",
409
287
  iconSize: 16,
@@ -442,7 +320,7 @@ function OriginalRecordPanel({
442
320
  "aria-hidden": true
443
321
  }
444
322
  ) }),
445
- vitalsStatus === "loaded" && filteredRows.length === 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPN7IJ5MGjs.Typography, { variant: "muted", className: "mr-orig__smart-empty", children: "No vitals match." }),
323
+ vitalsStatus === "loaded" && filteredRows.length === 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQGGLSO4Wjs.Typography, { variant: "muted", className: "mr-orig__smart-empty", children: "No vitals match." }),
446
324
  vitalsStatus === "loaded" && filteredRows.map((row, idx) => {
447
325
  const cell = row.cells[0];
448
326
  const isOor = row.latestStatus === "high" || row.latestStatus === "low";
@@ -557,7 +435,7 @@ function OriginalRecordPanel({
557
435
  }
558
436
  )
559
437
  ] })
560
- ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-orig__smart-side mr-orig__smart-side--collapsed", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPN7IJ5MGjs.Tooltip, { content: "Show smart report", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
438
+ ] }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-orig__smart-side mr-orig__smart-side--collapsed", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQGGLSO4Wjs.Tooltip, { content: "Show smart report", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
561
439
  "button",
562
440
  {
563
441
  type: "button",
@@ -565,7 +443,7 @@ function OriginalRecordPanel({
565
443
  "aria-label": "Expand smart report panel",
566
444
  "aria-expanded": false,
567
445
  onClick: () => setSmartPanelOpen(true),
568
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-orig__smart-collapsed-icon-wrap", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQXXC4RX4js.SmartSparkles_default, { className: "mr-orig__smart-collapsed-icon", "aria-hidden": true }) })
446
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-orig__smart-collapsed-icon-wrap", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQYUEKKMVjs.SmartSparkles_default, { className: "mr-orig__smart-collapsed-icon", "aria-hidden": true }) })
569
447
  }
570
448
  ) }) })
571
449
  ] })
@@ -575,10 +453,10 @@ function OriginalRecordPanel({
575
453
  ] });
576
454
  }
577
455
  function VitalReadingsExpanded({ vitalName, ekaId }) {
578
- const { data: trendData, status } = _chunkWUON6OENjs.useParameterTrend.call(void 0, ekaId);
456
+ const { data: trendData, status } = _chunkSTQYPHI3js.useParameterTrend.call(void 0, ekaId);
579
457
  const readings = _react.useMemo.call(void 0, () => {
580
458
  const trend = trendData;
581
- if (!_optionalChain([trend, 'optionalAccess', _25 => _25.vitals_info, 'optionalAccess', _26 => _26.length])) return [];
459
+ if (!_optionalChain([trend, 'optionalAccess', _21 => _21.vitals_info, 'optionalAccess', _22 => _22.length])) return [];
582
460
  return [...trend.vitals_info].sort((a, b) => (_nullishCoalesce(b.date, () => ( 0))) - (_nullishCoalesce(a.date, () => ( 0)))).slice(0, 3).map((info) => {
583
461
  const dr = (_nullishCoalesce(info.display_result, () => ( ""))).toLowerCase();
584
462
  const isOor = dr.includes("high") || dr.includes("above") || dr.includes("abnormal_high") || dr.includes("low") || dr.includes("below") || dr.includes("abnormal_low");
@@ -593,7 +471,7 @@ function VitalReadingsExpanded({ vitalName, ekaId }) {
593
471
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-orig__vital-readings mr-orig__vital-readings--loading", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.LoaderCircle, { size: 16, className: "mr-sv__loading-spinner", "aria-hidden": true }) });
594
472
  }
595
473
  if (status === "error" || !readings.length) {
596
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-orig__vital-readings", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkPN7IJ5MGjs.Typography, { variant: "muted", className: "mr-orig__vital-readings-empty", children: "No readings available" }) });
474
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "mr-orig__vital-readings", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQGGLSO4Wjs.Typography, { variant: "muted", className: "mr-orig__vital-readings-empty", children: "No readings available" }) });
597
475
  }
598
476
  return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__vital-readings", children: [
599
477
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "mr-orig__vital-readings-title", children: [
@@ -609,4 +487,4 @@ function VitalReadingsExpanded({ vitalName, ekaId }) {
609
487
 
610
488
 
611
489
  exports.OriginalRecordPanel = OriginalRecordPanel;
612
- //# sourceMappingURL=OriginalRecordPanel-DQF55MG3.js.map
490
+ //# sourceMappingURL=OriginalRecordPanel-PR35G6KV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/medical-records-ui/medical-records-ui/dist/OriginalRecordPanel-PR35G6KV.js","../src/views/components/shared/OriginalRecordPanel.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/medical-records-ui/medical-records-ui/dist/OriginalRecordPanel-PR35G6KV.js","sourcesContent":[null,"\"use client\";\n\nimport { lazy, Suspense, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { ChevronLeft, ChevronRight, ChevronDown, ExternalLink, Check, File, LoaderCircle } from \"lucide-react\";\nimport { useStore } from \"zustand\";\nimport { useSdk } from \"../../../connection/useSdk\";\nimport { useRecordPreview } from \"../../../connection/useRecordPreview\";\nimport { useRecordPanelTable } from \"../../hooks/care-panel/useRecordPanelTable\";\nimport { useParameterTrend } from \"../../hooks/care-panel/useParameterTrend\";\nimport { epochToDisplay } from \"../../../helpers/formatters\";\nimport type { ParameterTrendResponse } from \"@eka-care/medical-records-ts-sdk\";\nimport { useSmartRecordsActions } from \"../../context/SmartRecordsActionsContext\";\nimport { IconButton, Typography, SearchInput, Tooltip } from \"widgets\";\nimport type { RecordItem } from \"../../../helpers\";\nimport type { PanelRow } from \"../../../helpers/vitalsPanel\";\nimport { toVitalNoteRows } from \"../../../helpers/vitalsPanel\";\nimport SmartSparkles from \"icons/SmartSparkles\";\n\nconst DocumentViewer = lazy(() =>\n import(\"../../RecordPreview/DocumentViewer\").then((m) => ({\n default: m.DocumentViewer,\n })),\n);\n\ninterface OriginalRecordPanelProps {\n recordId: string;\n caseId?: string;\n onBack: () => void;\n}\n\ntype SrTab = \"all\" | \"oor\" | \"none\";\n\nfunction buildVitalsText(rows: PanelRow[]): string {\n return rows\n .map((r) => {\n const cell = r.cells[0];\n const ref = cell?.refRange ? ` (Ref: ${cell.refRange})` : \"\";\n return `${r.name}: ${cell?.value ?? \"—\"} ${r.unit}${ref}`;\n })\n .join(\"\\n\");\n}\n\nexport function OriginalRecordPanel({\n recordId,\n caseId,\n onBack,\n}: OriginalRecordPanelProps) {\n const { store } = useSdk();\n const record = useStore(store, (s) => s.records.byId[recordId]);\n const recordsById = useStore(store, (s) => s.records.byId);\n const preview = useRecordPreview(recordId);\n const { replaceOriginal, onCopyToNote, onCopyVitalsToNote, hasCopyToNote, onToast } =\n useSmartRecordsActions();\n\n // Smart report vitals (only fetched when record.isSmart)\n const { status: vitalsStatus, table } = useRecordPanelTable(\n record?.isSmart ? recordId : null,\n );\n const [smartPanelOpen, setSmartPanelOpen] = useState(true);\n const [srSearch, setSrSearch] = useState(\"\");\n const [srTab, setSrTab] = useState<SrTab>(\"all\");\n const [expandedVital, setExpandedVital] = useState<string | null>(null);\n const toggleExpand = useCallback((key: string) => {\n setExpandedVital((prev) => (prev === key ? null : key));\n }, []);\n const [srSelected, setSrSelected] = useState<Set<string>>(new Set());\n const srCopyBtnRef = useRef<HTMLButtonElement>(null);\n\n // Dropdown state\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!dropdownOpen) return;\n const handler = (e: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(e.target as Node)) {\n setDropdownOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, [dropdownOpen]);\n\n const caseRecords = useMemo<RecordItem[]>(() => {\n if (!caseId) return [];\n return Object.values(recordsById)\n .filter(\n (r): r is RecordItem =>\n r != null &&\n (caseId === \"__ungrouped__\" ? r.cases.length === 0 : r.cases.includes(caseId)),\n )\n .sort((a, b) => b.createdAtEpoch - a.createdAtEpoch);\n }, [recordsById, caseId]);\n\n const currentIndex = caseRecords.findIndex((r) => r.id === recordId);\n const total = caseRecords.length;\n const isUngrouped = caseId === \"__ungrouped__\";\n\n const goTo = useCallback(\n (r: RecordItem) => {\n setDropdownOpen(false);\n replaceOriginal(r.id, caseId);\n },\n [replaceOriginal, caseId],\n );\n\n const goPrev = useCallback(() => {\n if (currentIndex > 0) goTo(caseRecords[currentIndex - 1]);\n }, [currentIndex, caseRecords, goTo]);\n\n const goNext = useCallback(() => {\n if (currentIndex < total - 1) goTo(caseRecords[currentIndex + 1]);\n }, [currentIndex, total, caseRecords, goTo]);\n\n const showNavPicker = caseId && total > 0;\n\n // Smart report vitals filtering\n const allRows = table.rows;\n const oorRows = useMemo(\n () => allRows.filter((r) => r.latestStatus === \"high\" || r.latestStatus === \"low\"),\n [allRows],\n );\n const noInterpRows = useMemo(\n () => allRows.filter((r) => r.latestStatus === \"unknown\"),\n [allRows],\n );\n\n const baseRows = srTab === \"oor\" ? oorRows : srTab === \"none\" ? noInterpRows : allRows;\n\n const filteredRows = useMemo(() => {\n if (!srSearch) return baseRows;\n const q = srSearch.toLowerCase();\n return baseRows.filter((r) => r.name.toLowerCase().includes(q));\n }, [baseRows, srSearch]);\n\n const tabCounts = useMemo(() => {\n if (!srSearch) return { all: allRows.length, oor: oorRows.length, none: noInterpRows.length };\n const q = srSearch.toLowerCase();\n return {\n all: allRows.filter((r) => r.name.toLowerCase().includes(q)).length,\n oor: oorRows.filter((r) => r.name.toLowerCase().includes(q)).length,\n none: noInterpRows.filter((r) => r.name.toLowerCase().includes(q)).length,\n };\n }, [srSearch, allRows, oorRows, noInterpRows]);\n\n useEffect(() => {\n setSrSelected(new Set());\n }, [srTab, srSearch]);\n\n useEffect(() => {\n if (srTab === \"oor\" && oorRows.length === 0) setSrTab(\"all\");\n if (srTab === \"none\" && noInterpRows.length === 0) setSrTab(\"all\");\n }, [srTab, oorRows.length, noInterpRows.length]);\n\n const srAllSelected =\n filteredRows.length > 0 && filteredRows.every((r) => srSelected.has(r.key));\n const srSomeSelected = srSelected.size > 0;\n\n const toggleSrRow = useCallback((key: string) => {\n setSrSelected((prev) => {\n const next = new Set(prev);\n next.has(key) ? next.delete(key) : next.add(key);\n return next;\n });\n }, []);\n\n const toggleSrAll = useCallback(() => {\n setSrSelected(\n srAllSelected ? new Set() : new Set(filteredRows.map((r) => r.key)),\n );\n }, [srAllSelected, filteredRows]);\n\n const handleSrCopyToNote = useCallback(() => {\n const selectedRows = filteredRows.filter((r) => srSelected.has(r.key));\n if (!selectedRows.length) return;\n const text = buildVitalsText(selectedRows);\n if (onCopyVitalsToNote) {\n void onCopyVitalsToNote(text);\n } else if (onCopyToNote) {\n const rect = srCopyBtnRef.current?.getBoundingClientRect();\n void onCopyToNote(\n text,\n rect ? { x: rect.left + rect.width / 2, y: rect.bottom } : undefined,\n toVitalNoteRows(selectedRows),\n );\n }\n }, [filteredRows, srSelected, onCopyVitalsToNote, onCopyToNote]);\n\n const htmlCopyBtnRef = useRef<HTMLButtonElement>(null);\n const [isHtmlCopying, setIsHtmlCopying] = useState(false);\n\n const handleHtmlCopyToNote = useCallback(async () => {\n const url = preview.files[0]?.url;\n if (!url) return;\n setIsHtmlCopying(true);\n try {\n const res = await fetch(url);\n const html = await res.text();\n const doc = new DOMParser().parseFromString(html, \"text/html\");\n const text = doc.body.textContent?.trim() ?? \"\";\n if (!text) return;\n if (onCopyVitalsToNote) {\n void onCopyVitalsToNote(text);\n } else if (onCopyToNote) {\n const rect = htmlCopyBtnRef.current?.getBoundingClientRect();\n void onCopyToNote(\n text,\n rect ? { x: rect.left, y: rect.bottom } : undefined,\n );\n }\n } catch {\n onToast?.(\"Failed to copy document text\", \"error\");\n } finally {\n setIsHtmlCopying(false);\n }\n }, [preview.files, onCopyVitalsToNote, onCopyToNote, onToast]);\n\n const isSmart = record?.isSmart ?? false;\n const hasPreview = preview.status === \"loaded\" && preview.files.length > 0;\n\n return (\n <div className=\"mr-sv__panel\">\n <div className=\"mr-sv__panel-header\">\n <button type=\"button\" className=\"mr-sv__back-btn\" onClick={onBack}>\n <ChevronLeft size={16} aria-hidden />\n Back\n </button>\n\n {/* Prev/next record carousel + dropdown — temporarily disabled, will re-enable later.\n {showNavPicker ? (\n <div className=\"mr-orig__nav-wrap\" ref={dropdownRef}>\n <div\n className={`mr-orig__nav-pill${dropdownOpen ? \" mr-orig__nav-pill--open\" : \"\"}`}\n role=\"button\"\n tabIndex={0}\n onClick={() => setDropdownOpen((v) => !v)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setDropdownOpen((v) => !v);\n }\n }}\n >\n <button\n type=\"button\"\n className=\"mr-orig__nav-chevron\"\n onClick={(e) => { e.stopPropagation(); goPrev(); }}\n aria-label=\"Previous record\"\n disabled={currentIndex <= 0}\n >\n <ChevronLeft size={14} aria-hidden />\n </button>\n <div className=\"mr-orig__nav-text\">\n <span className=\"mr-orig__nav-title\">{record?.title ?? \"Record\"}</span>\n <span className=\"mr-orig__nav-counter\">\n {currentIndex + 1} of {total}\n </span>\n </div>\n <button\n type=\"button\"\n className=\"mr-orig__nav-chevron\"\n onClick={(e) => { e.stopPropagation(); goNext(); }}\n aria-label=\"Next record\"\n disabled={currentIndex >= total - 1}\n >\n <ChevronRight size={14} aria-hidden />\n </button>\n </div>\n\n {dropdownOpen && (\n <div className=\"mr-orig__dropdown\">\n <div className=\"mr-orig__dropdown-eyebrow\">\n {total} RECORD{total !== 1 ? \"S\" : \"\"}{\" \"}\n {isUngrouped ? \"WITH NO CARE CONTEXT\" : \"FOUND IN THIS ENCOUNTER\"}\n </div>\n <div className=\"mr-orig__dropdown-list\">\n {caseRecords.map((r) => {\n const isActive = r.id === recordId;\n return (\n <button\n key={r.id}\n type=\"button\"\n className={`mr-orig__dropdown-item${isActive ? \" mr-orig__dropdown-item--active\" : \"\"}`}\n onClick={() => goTo(r)}\n >\n <div className=\"mr-orig__dropdown-icon\">\n <File size={16} aria-hidden />\n {r.isSmart && (\n <SmartSparkles\n className=\"mr-orig__dropdown-smart-dot\"\n aria-label=\"Smart report\"\n />\n )}\n </div>\n <div className=\"mr-orig__dropdown-info\">\n <div className=\"mr-orig__dropdown-title-row\">\n <span className=\"mr-orig__dropdown-title\">{r.title}</span>\n {r.isSmart && (\n <span className=\"mr-orig__dropdown-smart-badge\">\n <SmartSparkles aria-hidden />\n Smart Report\n </span>\n )}\n {r.fileType?.toUpperCase() === \"HTML\" && (\n <span className=\"mr-tag-chip mr-tag-chip--html\">\n <span className=\"mr-tag-chip__label\">HTML</span>\n </span>\n )}\n </div>\n <div className=\"mr-orig__dropdown-meta\">\n <span>{epochToDisplay(r.createdAtEpoch)}</span>\n {r.isSmart && r.totalVitals > 0 && (\n <>\n <span className=\"mr-orig__dropdown-dot\">·</span>\n <span>{r.totalVitals} vitals</span>\n </>\n )}\n </div>\n </div>\n {isActive && (\n <Check\n size={14}\n className=\"mr-orig__dropdown-check\"\n aria-hidden\n />\n )}\n </button>\n );\n })}\n </div>\n </div>\n )}\n </div>\n ) : record ? (\n */}\n {record ? (\n <div className=\"mr-sv__panel-info\">\n <Typography variant=\"label\" as=\"span\" className=\"mr-sv__panel-name\">\n {record.title}\n </Typography>\n <Typography variant=\"hint\" as=\"span\" className=\"mr-sv__panel-meta-text\">\n {epochToDisplay(record.createdAtEpoch)}\n </Typography>\n </div>\n ) : null}\n {/* } */}\n\n <div className=\"mr-orig__header-actions\">\n {preview.isHtml && hasCopyToNote && (\n <button\n ref={htmlCopyBtnRef}\n type=\"button\"\n className=\"mr-orig__html-copy-btn\"\n onClick={handleHtmlCopyToNote}\n disabled={isHtmlCopying}\n >\n {isHtmlCopying && <LoaderCircle size={12} className=\"mr-sv__loading-spinner\" aria-hidden />}\n Copy to note\n </button>\n )}\n {hasPreview && (\n <IconButton\n icon={<ExternalLink size={16} aria-hidden />}\n label=\"Open in new tab\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() =>\n window.open(preview.files[0].url, \"_blank\", \"noopener,noreferrer\")\n }\n />\n )}\n </div>\n </div>\n\n <div\n className=\"mr-sv__panel-body\"\n style={{ flex: 1, display: \"flex\", flexDirection: \"column\", overflow: \"hidden\" }}\n >\n {preview.status === \"loading\" && (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n }}\n >\n <LoaderCircle size={44} className=\"mr-sv__loading-spinner\" aria-hidden />\n </div>\n )}\n {preview.status === \"error\" && (\n <Typography variant=\"muted\" className=\"mr-sv__panel-empty\">\n Failed to load document preview.\n </Typography>\n )}\n {preview.status === \"loaded\" && preview.files.length === 0 && (\n <Typography variant=\"muted\" className=\"mr-sv__panel-empty\">\n No preview available for this record.\n </Typography>\n )}\n\n {/* Non-smart: full-width PDF */}\n {hasPreview && !isSmart && (\n <div\n className=\"mr-record-preview__body\"\n style={{ flex: 1, display: \"flex\", overflow: \"hidden\" }}\n >\n <Suspense fallback={null}>\n <DocumentViewer\n files={preview.files}\n title={record?.title ?? \"\"}\n isHtml={preview.isHtml}\n />\n </Suspense>\n </div>\n )}\n\n {/* Smart: split view — PDF left, smart report panel right */}\n {hasPreview && isSmart && (\n <div className=\"mr-orig__split\">\n <div className=\"mr-orig__pdf-side\">\n <Suspense fallback={null}>\n <DocumentViewer\n files={preview.files}\n title={record?.title ?? \"\"}\n isHtml={preview.isHtml}\n />\n </Suspense>\n </div>\n\n {smartPanelOpen ? (\n <div className=\"mr-orig__smart-side\">\n {/* Header */}\n <div className=\"mr-orig__smart-hdr\">\n <span className=\"mr-orig__smart-title-row\">\n <span className=\"mr-orig__smart-title\">Smart Report</span>\n <SmartSparkles className=\"mr-orig__smart-title-icon\" aria-hidden />\n </span>\n <button\n type=\"button\"\n className=\"mr-sv__sidebar-collapse-btn mr-orig__smart-expanded-btn\"\n aria-label=\"Collapse smart report panel\"\n aria-expanded={true}\n onClick={() => setSmartPanelOpen(false)}\n >\n <ChevronRight size={14} aria-hidden />\n </button>\n </div>\n\n {/* Search */}\n <SearchInput\n className=\"mr-orig__smart-search\"\n iconSize={16}\n placeholder=\"Search vitals\"\n value={srSearch}\n onChange={setSrSearch}\n />\n\n {/* Filter tabs — only when at least one sub-category has data */}\n {(oorRows.length > 0 || noInterpRows.length > 0) && (\n <div className=\"mr-orig__smart-tabs-wrap\">\n <div className=\"mr-orig__smart-tabs\">\n {([\"all\", \"oor\", \"none\"] as SrTab[]).map((tab) => {\n if (tab === \"oor\" && oorRows.length === 0) return null;\n if (tab === \"none\" && noInterpRows.length === 0) return null;\n const count =\n tab === \"all\"\n ? tabCounts.all\n : tab === \"oor\"\n ? tabCounts.oor\n : tabCounts.none;\n const label =\n tab === \"all\"\n ? \"All\"\n : tab === \"oor\"\n ? \"Out of range\"\n : \"No interpretation\";\n return (\n <button\n key={tab}\n type=\"button\"\n className={`mr-orig__smart-tab${srTab === tab ? \" mr-orig__smart-tab--active\" : \"\"}`}\n onClick={() => setSrTab(tab)}\n >\n {label} ({count})\n </button>\n );\n })}\n </div>\n </div>\n )}\n\n {/* Vital list */}\n <div className=\"mr-orig__smart-list\">\n {vitalsStatus === \"loading\" && (\n <div className=\"mr-orig__smart-loading\">\n <LoaderCircle\n size={20}\n className=\"mr-sv__loading-spinner\"\n aria-hidden\n />\n </div>\n )}\n {vitalsStatus === \"loaded\" && filteredRows.length === 0 && (\n <Typography variant=\"muted\" className=\"mr-orig__smart-empty\">\n No vitals match.\n </Typography>\n )}\n {vitalsStatus === \"loaded\" &&\n filteredRows.map((row, idx) => {\n const cell = row.cells[0];\n const isOor =\n row.latestStatus === \"high\" || row.latestStatus === \"low\";\n const isSelected = srSelected.has(row.key);\n const isLast = idx === filteredRows.length - 1;\n return (\n <div\n key={row.key}\n className={`mr-orig__vital-item${isLast ? \" mr-orig__vital-item--last\" : \"\"}`}\n >\n <div\n className={`mr-orig__vital-row mr-orig__vital-row--selectable${isSelected ? \" mr-orig__vital-row--selected\" : \"\"}`}\n onClick={() => toggleSrRow(row.key)}\n >\n <span\n className={`mr-sv__checkbox mr-cc-table__row-check${isSelected ? \" mr-sv__checkbox--checked\" : \"\"}`}\n role=\"checkbox\"\n aria-checked={isSelected}\n tabIndex={0}\n onClick={(e) => {\n e.stopPropagation();\n toggleSrRow(row.key);\n }}\n onKeyDown={(e) => {\n if (e.key === \" \" || e.key === \"Enter\") {\n e.preventDefault();\n e.stopPropagation();\n toggleSrRow(row.key);\n }\n }}\n >\n {isSelected && <Check size={10} strokeWidth={3} />}\n </span>\n <div className=\"mr-orig__vital-info\">\n <span className=\"mr-orig__vital-name\">{row.name}</span>\n {row.refRange && (\n <span className=\"mr-orig__vital-ref\">\n Ref {row.refRange}\n </span>\n )}\n </div>\n {cell && (\n <div className=\"mr-orig__vital-value\">\n <span\n className={`mr-orig__vital-val${isOor ? \" mr-orig__vital-val--oor\" : \"\"}`}\n >\n {cell.value}\n </span>\n {cell.unit && (\n <span className=\"mr-orig__vital-unit\">{cell.unit}</span>\n )}\n </div>\n )}\n {row.ekaId && (\n <button\n type=\"button\"\n className={`mr-orig__vital-expand-btn${expandedVital === row.key ? \" mr-orig__vital-expand-btn--open\" : \"\"}`}\n onClick={(e) => { e.stopPropagation(); toggleExpand(row.key); }}\n aria-label={expandedVital === row.key ? \"Collapse readings\" : \"Show latest readings\"}\n >\n <ChevronDown size={13} aria-hidden />\n </button>\n )}\n </div>\n {expandedVital === row.key && row.ekaId && (\n <VitalReadingsExpanded vitalName={row.name} ekaId={row.ekaId} />\n )}\n </div>\n );\n })}\n </div>\n\n {/* Footer */}\n <div className=\"mr-cc-table__footer\">\n <span\n className={`mr-sv__checkbox mr-cc-table__footer-check${srAllSelected ? \" mr-sv__checkbox--checked\" : \"\"}`}\n role=\"checkbox\"\n aria-checked={srAllSelected}\n tabIndex={0}\n onClick={toggleSrAll}\n onKeyDown={(e) => {\n if (e.key === \" \" || e.key === \"Enter\") {\n e.preventDefault();\n toggleSrAll();\n }\n }}\n >\n {srAllSelected && <Check size={10} strokeWidth={3} />}\n </span>\n <span className=\"mr-cc-table__footer-label\" onClick={toggleSrAll}>Select all</span>\n <span className=\"mr-cc-table__footer-count\">\n {srSelected.size} of {filteredRows.length} selected\n </span>\n <button\n ref={srCopyBtnRef}\n type=\"button\"\n className=\"mr-cc-table__copy-note-btn\"\n disabled={!srSomeSelected || !hasCopyToNote}\n onClick={handleSrCopyToNote}\n >\n Copy to note\n </button>\n </div>\n </div>\n ) : (\n <div className=\"mr-orig__smart-side mr-orig__smart-side--collapsed\">\n <Tooltip content=\"Show smart report\">\n <button\n type=\"button\"\n className=\"mr-sv__sidebar-collapse-btn mr-orig__smart-collapsed-btn\"\n aria-label=\"Expand smart report panel\"\n aria-expanded={false}\n onClick={() => setSmartPanelOpen(true)}\n >\n <span className=\"mr-orig__smart-collapsed-icon-wrap\">\n <SmartSparkles className=\"mr-orig__smart-collapsed-icon\" aria-hidden />\n </span>\n </button>\n </Tooltip>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nfunction VitalReadingsExpanded({ vitalName, ekaId }: { vitalName: string; ekaId: string }) {\n const { data: trendData, status } = useParameterTrend(ekaId);\n\n const readings = useMemo(() => {\n const trend = trendData as ParameterTrendResponse | null;\n if (!trend?.vitals_info?.length) return [];\n return [...trend.vitals_info]\n .sort((a, b) => (b.date ?? 0) - (a.date ?? 0))\n .slice(0, 3)\n .map((info) => {\n const dr = (info.display_result ?? \"\").toLowerCase();\n const isOor = dr.includes(\"high\") || dr.includes(\"above\") || dr.includes(\"abnormal_high\") ||\n dr.includes(\"low\") || dr.includes(\"below\") || dr.includes(\"abnormal_low\");\n return {\n value: info.val != null ? String(info.val) : ((info as any).val_string ?? \"—\"),\n date: (info.display_time || \"\").replace(/['‘’]/g, \" \"),\n isOor,\n };\n });\n }, [trendData]);\n\n if (status === \"loading\") {\n return (\n <div className=\"mr-orig__vital-readings mr-orig__vital-readings--loading\">\n <LoaderCircle size={16} className=\"mr-sv__loading-spinner\" aria-hidden />\n </div>\n );\n }\n\n if (status === \"error\" || !readings.length) {\n return (\n <div className=\"mr-orig__vital-readings\">\n <Typography variant=\"muted\" className=\"mr-orig__vital-readings-empty\">\n No readings available\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"mr-orig__vital-readings\">\n <div className=\"mr-orig__vital-readings-title\">\n LATEST READINGS FOR {vitalName.toUpperCase()}\n </div>\n <div className=\"mr-orig__vital-readings-grid\">\n {readings.map((r, i) => (\n <div key={i} className=\"mr-orig__vital-reading-item\">\n <span className={`mr-orig__vital-reading-value${r.isOor ? \" mr-orig__vital-reading-value--oor\" : \"\"}`}>{r.value}</span>\n <span className=\"mr-orig__vital-reading-date\">{r.date}</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"]}
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  SmartSparkles_default,
4
4
  toVitalNoteRows
5
- } from "./chunk-LSDWS36C.mjs";
5
+ } from "./chunk-22QQK3VR.mjs";
6
6
  import {
7
7
  useParameterTrend,
8
8
  useRecordPanelTable,
9
9
  useRecordPreview,
10
10
  useSmartRecordsActions
11
- } from "./chunk-MI2JSHXL.mjs";
11
+ } from "./chunk-7AO6M347.mjs";
12
12
  import {
13
13
  IconButton,
14
14
  SearchInput_default,
@@ -16,13 +16,13 @@ import {
16
16
  Typography,
17
17
  epochToDisplay,
18
18
  useSdk
19
- } from "./chunk-3VRMKZ4H.mjs";
19
+ } from "./chunk-NZNI6YJ5.mjs";
20
20
 
21
21
  // src/views/components/shared/OriginalRecordPanel.tsx
22
22
  import { lazy, Suspense, useCallback, useEffect, useMemo, useRef, useState } from "react";
23
- import { ChevronLeft, ChevronRight, ChevronDown, ExternalLink, Check, File, LoaderCircle } from "lucide-react";
23
+ import { ChevronLeft, ChevronRight, ChevronDown, ExternalLink, Check, LoaderCircle } from "lucide-react";
24
24
  import { useStore } from "zustand";
25
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
25
+ import { jsx, jsxs } from "react/jsx-runtime";
26
26
  var DocumentViewer = lazy(
27
27
  () => import("./DocumentViewer-5AXKL75U.mjs").then((m) => ({
28
28
  default: m.DocumentViewer
@@ -187,129 +187,7 @@ function OriginalRecordPanel({
187
187
  /* @__PURE__ */ jsx(ChevronLeft, { size: 16, "aria-hidden": true }),
188
188
  "Back"
189
189
  ] }),
190
- showNavPicker ? /* @__PURE__ */ jsxs("div", { className: "mr-orig__nav-wrap", ref: dropdownRef, children: [
191
- /* @__PURE__ */ jsxs(
192
- "div",
193
- {
194
- className: `mr-orig__nav-pill${dropdownOpen ? " mr-orig__nav-pill--open" : ""}`,
195
- role: "button",
196
- tabIndex: 0,
197
- onClick: () => setDropdownOpen((v) => !v),
198
- onKeyDown: (e) => {
199
- if (e.key === "Enter" || e.key === " ") {
200
- e.preventDefault();
201
- setDropdownOpen((v) => !v);
202
- }
203
- },
204
- children: [
205
- /* @__PURE__ */ jsx(
206
- "button",
207
- {
208
- type: "button",
209
- className: "mr-orig__nav-chevron",
210
- onClick: (e) => {
211
- e.stopPropagation();
212
- goPrev();
213
- },
214
- "aria-label": "Previous record",
215
- disabled: currentIndex <= 0,
216
- children: /* @__PURE__ */ jsx(ChevronLeft, { size: 14, "aria-hidden": true })
217
- }
218
- ),
219
- /* @__PURE__ */ jsxs("div", { className: "mr-orig__nav-text", children: [
220
- /* @__PURE__ */ jsx("span", { className: "mr-orig__nav-title", children: record?.title ?? "Record" }),
221
- /* @__PURE__ */ jsxs("span", { className: "mr-orig__nav-counter", children: [
222
- currentIndex + 1,
223
- " of ",
224
- total
225
- ] })
226
- ] }),
227
- /* @__PURE__ */ jsx(
228
- "button",
229
- {
230
- type: "button",
231
- className: "mr-orig__nav-chevron",
232
- onClick: (e) => {
233
- e.stopPropagation();
234
- goNext();
235
- },
236
- "aria-label": "Next record",
237
- disabled: currentIndex >= total - 1,
238
- children: /* @__PURE__ */ jsx(ChevronRight, { size: 14, "aria-hidden": true })
239
- }
240
- )
241
- ]
242
- }
243
- ),
244
- dropdownOpen && /* @__PURE__ */ jsxs("div", { className: "mr-orig__dropdown", children: [
245
- /* @__PURE__ */ jsxs("div", { className: "mr-orig__dropdown-eyebrow", children: [
246
- total,
247
- " RECORD",
248
- total !== 1 ? "S" : "",
249
- " ",
250
- isUngrouped ? "WITH NO CARE CONTEXT" : "FOUND IN THIS ENCOUNTER"
251
- ] }),
252
- /* @__PURE__ */ jsx("div", { className: "mr-orig__dropdown-list", children: caseRecords.map((r) => {
253
- const isActive = r.id === recordId;
254
- return /* @__PURE__ */ jsxs(
255
- "button",
256
- {
257
- type: "button",
258
- className: `mr-orig__dropdown-item${isActive ? " mr-orig__dropdown-item--active" : ""}`,
259
- onClick: () => goTo(r),
260
- children: [
261
- /* @__PURE__ */ jsxs("div", { className: "mr-orig__dropdown-icon", children: [
262
- /* @__PURE__ */ jsx(File, { size: 16, "aria-hidden": true }),
263
- r.isSmart && /* @__PURE__ */ jsx(
264
- SmartSparkles_default,
265
- {
266
- className: "mr-orig__dropdown-smart-dot",
267
- "aria-label": "Smart report"
268
- }
269
- )
270
- ] }),
271
- /* @__PURE__ */ jsxs("div", { className: "mr-orig__dropdown-info", children: [
272
- /* @__PURE__ */ jsxs("div", { className: "mr-orig__dropdown-title-row", children: [
273
- /* @__PURE__ */ jsx("span", { className: "mr-orig__dropdown-title", children: r.title }),
274
- r.isSmart && /* @__PURE__ */ jsxs("span", { className: "mr-orig__dropdown-smart-badge", children: [
275
- /* @__PURE__ */ jsx(SmartSparkles_default, { "aria-hidden": true }),
276
- "Smart Report"
277
- ] }),
278
- r.fileType?.toUpperCase() === "HTML" && /* @__PURE__ */ jsx("span", { className: "mr-tag-chip mr-tag-chip--html", children: /* @__PURE__ */ jsx("span", { className: "mr-tag-chip__label", children: "HTML" }) })
279
- ] }),
280
- /* @__PURE__ */ jsxs("div", { className: "mr-orig__dropdown-meta", children: [
281
- /* @__PURE__ */ jsx("span", { children: epochToDisplay(r.createdAtEpoch) }),
282
- r.isSmart && r.totalVitals > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
283
- /* @__PURE__ */ jsx("span", { className: "mr-orig__dropdown-dot", children: "\xB7" }),
284
- /* @__PURE__ */ jsxs("span", { children: [
285
- r.totalVitals,
286
- " vitals"
287
- ] })
288
- ] }),
289
- r.isSmart && r.outOfRangeVitals > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
290
- /* @__PURE__ */ jsx("span", { className: "mr-orig__dropdown-dot", children: "\xB7" }),
291
- /* @__PURE__ */ jsxs("span", { className: "mr-orig__dropdown-oor", children: [
292
- r.outOfRangeVitals,
293
- " out of range"
294
- ] })
295
- ] })
296
- ] })
297
- ] }),
298
- isActive && /* @__PURE__ */ jsx(
299
- Check,
300
- {
301
- size: 14,
302
- className: "mr-orig__dropdown-check",
303
- "aria-hidden": true
304
- }
305
- )
306
- ]
307
- },
308
- r.id
309
- );
310
- }) })
311
- ] })
312
- ] }) : record ? /* @__PURE__ */ jsxs("div", { className: "mr-sv__panel-info", children: [
190
+ record ? /* @__PURE__ */ jsxs("div", { className: "mr-sv__panel-info", children: [
313
191
  /* @__PURE__ */ jsx(Typography, { variant: "label", as: "span", className: "mr-sv__panel-name", children: record.title }),
314
192
  /* @__PURE__ */ jsx(Typography, { variant: "hint", as: "span", className: "mr-sv__panel-meta-text", children: epochToDisplay(record.createdAtEpoch) })
315
193
  ] }) : null,
@@ -609,4 +487,4 @@ function VitalReadingsExpanded({ vitalName, ekaId }) {
609
487
  export {
610
488
  OriginalRecordPanel
611
489
  };
612
- //# sourceMappingURL=OriginalRecordPanel-FBSPPGVL.mjs.map
490
+ //# sourceMappingURL=OriginalRecordPanel-QYGV744W.mjs.map