@mieweb/ui 0.6.1-dev.174 → 0.6.1-dev.175

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 (104) hide show
  1. package/dist/{chunk-O6MBLWAI.js → chunk-35VBGVMB.js} +3 -3
  2. package/dist/{chunk-O6MBLWAI.js.map → chunk-35VBGVMB.js.map} +1 -1
  3. package/dist/{chunk-CDMWZBDD.cjs → chunk-372IIHUA.cjs} +5 -5
  4. package/dist/{chunk-CDMWZBDD.cjs.map → chunk-372IIHUA.cjs.map} +1 -1
  5. package/dist/{chunk-X7J45FU5.cjs → chunk-4GXECTPS.cjs} +2 -2
  6. package/dist/{chunk-X7J45FU5.cjs.map → chunk-4GXECTPS.cjs.map} +1 -1
  7. package/dist/chunk-62ZOA6PX.js +31 -0
  8. package/dist/chunk-62ZOA6PX.js.map +1 -0
  9. package/dist/{chunk-ROXYP3BZ.cjs → chunk-AES2BKEW.cjs} +71 -56
  10. package/dist/chunk-AES2BKEW.cjs.map +1 -0
  11. package/dist/{chunk-GBRPZGSI.cjs → chunk-BLPCYP4D.cjs} +7 -7
  12. package/dist/{chunk-GBRPZGSI.cjs.map → chunk-BLPCYP4D.cjs.map} +1 -1
  13. package/dist/{chunk-YWHSQH7S.cjs → chunk-DAPZPT5N.cjs} +24 -55
  14. package/dist/chunk-DAPZPT5N.cjs.map +1 -0
  15. package/dist/{chunk-FJG7KUDJ.js → chunk-FJH7P5WG.js} +3 -3
  16. package/dist/{chunk-FJG7KUDJ.js.map → chunk-FJH7P5WG.js.map} +1 -1
  17. package/dist/chunk-FSGEDDF2.cjs +33 -0
  18. package/dist/chunk-FSGEDDF2.cjs.map +1 -0
  19. package/dist/{chunk-DZIUSGUF.js → chunk-HRS6W74P.js} +3 -3
  20. package/dist/{chunk-DZIUSGUF.js.map → chunk-HRS6W74P.js.map} +1 -1
  21. package/dist/{chunk-6Y727LPG.js → chunk-J7Z7467B.js} +24 -55
  22. package/dist/chunk-J7Z7467B.js.map +1 -0
  23. package/dist/{chunk-ETGZ5DSA.js → chunk-JHYFHEHS.js} +3 -3
  24. package/dist/{chunk-ETGZ5DSA.js.map → chunk-JHYFHEHS.js.map} +1 -1
  25. package/dist/{chunk-QPOTSLY6.cjs → chunk-JTBQNOSL.cjs} +4 -4
  26. package/dist/{chunk-QPOTSLY6.cjs.map → chunk-JTBQNOSL.cjs.map} +1 -1
  27. package/dist/{chunk-CB4JX5EJ.cjs → chunk-MAMY5HTT.cjs} +117 -93
  28. package/dist/chunk-MAMY5HTT.cjs.map +1 -0
  29. package/dist/{chunk-WFS6R2F5.js → chunk-MKWGKASO.js} +114 -101
  30. package/dist/chunk-MKWGKASO.js.map +1 -0
  31. package/dist/{chunk-2JQBPU3Y.cjs → chunk-MZPF2QGM.cjs} +95 -77
  32. package/dist/chunk-MZPF2QGM.cjs.map +1 -0
  33. package/dist/{chunk-5INNPOZZ.cjs → chunk-NAQ3ZALI.cjs} +5 -5
  34. package/dist/{chunk-5INNPOZZ.cjs.map → chunk-NAQ3ZALI.cjs.map} +1 -1
  35. package/dist/chunk-QA6ZDHFP.js +117 -0
  36. package/dist/chunk-QA6ZDHFP.js.map +1 -0
  37. package/dist/{chunk-7QZSJFYT.js → chunk-UM6NA7HL.js} +117 -93
  38. package/dist/chunk-UM6NA7HL.js.map +1 -0
  39. package/dist/{chunk-7BARESXI.cjs → chunk-VPNURIAY.cjs} +114 -101
  40. package/dist/chunk-VPNURIAY.cjs.map +1 -0
  41. package/dist/{chunk-GSOOPTGM.js → chunk-YZT62IMX.js} +95 -77
  42. package/dist/chunk-YZT62IMX.js.map +1 -0
  43. package/dist/{chunk-PI3KOYAT.js → chunk-ZAIEQWRA.js} +71 -56
  44. package/dist/chunk-ZAIEQWRA.js.map +1 -0
  45. package/dist/chunk-ZDEYV373.cjs +139 -0
  46. package/dist/chunk-ZDEYV373.cjs.map +1 -0
  47. package/dist/{chunk-6VGXX6L6.js → chunk-ZGSC2CB2.js} +2 -2
  48. package/dist/{chunk-6VGXX6L6.js.map → chunk-ZGSC2CB2.js.map} +1 -1
  49. package/dist/components/Autocomplete/index.cjs +4 -3
  50. package/dist/components/Autocomplete/index.js +3 -2
  51. package/dist/components/CountryCodeDropdown/index.cjs +6 -5
  52. package/dist/components/CountryCodeDropdown/index.js +3 -2
  53. package/dist/components/Dropdown/index.cjs +9 -8
  54. package/dist/components/Dropdown/index.d.cts +2 -1
  55. package/dist/components/Dropdown/index.d.ts +2 -1
  56. package/dist/components/Dropdown/index.js +3 -2
  57. package/dist/components/MediaEditor/index.cjs +9 -7
  58. package/dist/components/MediaEditor/index.js +4 -2
  59. package/dist/components/RichTextEditor/index.cjs +7 -6
  60. package/dist/components/RichTextEditor/index.js +4 -3
  61. package/dist/components/Select/index.cjs +5 -3
  62. package/dist/components/Select/index.js +3 -1
  63. package/dist/components/Sheet/index.d.cts +1 -1
  64. package/dist/components/Sheet/index.d.ts +1 -1
  65. package/dist/components/SuperChat/index.cjs +9 -8
  66. package/dist/components/SuperChat/index.cjs.map +1 -1
  67. package/dist/components/SuperChat/index.js +4 -3
  68. package/dist/components/SuperChat/index.js.map +1 -1
  69. package/dist/components/SuperChat/plugins/index.cjs +4 -3
  70. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  71. package/dist/components/SuperChat/plugins/index.js +3 -2
  72. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  73. package/dist/esheet.cjs +7 -5
  74. package/dist/esheet.cjs.map +1 -1
  75. package/dist/esheet.js +4 -2
  76. package/dist/esheet.js.map +1 -1
  77. package/dist/hooks/index.cjs +21 -16
  78. package/dist/hooks/index.d.cts +2 -1
  79. package/dist/hooks/index.d.ts +2 -1
  80. package/dist/hooks/index.js +3 -2
  81. package/dist/index.cjs +1072 -983
  82. package/dist/index.cjs.map +1 -1
  83. package/dist/index.d.cts +1 -0
  84. package/dist/index.d.ts +1 -0
  85. package/dist/index.js +941 -855
  86. package/dist/index.js.map +1 -1
  87. package/dist/styles.css +1 -1
  88. package/dist/useAnchoredPosition-nXdSFKHf.d.cts +65 -0
  89. package/dist/useAnchoredPosition-nXdSFKHf.d.ts +65 -0
  90. package/package.json +1 -1
  91. package/dist/chunk-2JQBPU3Y.cjs.map +0 -1
  92. package/dist/chunk-6Y727LPG.js.map +0 -1
  93. package/dist/chunk-7BARESXI.cjs.map +0 -1
  94. package/dist/chunk-7QZSJFYT.js.map +0 -1
  95. package/dist/chunk-CB4JX5EJ.cjs.map +0 -1
  96. package/dist/chunk-GSOOPTGM.js.map +0 -1
  97. package/dist/chunk-IKMR2ADM.cjs +0 -25
  98. package/dist/chunk-IKMR2ADM.cjs.map +0 -1
  99. package/dist/chunk-OKBR6PX4.js +0 -23
  100. package/dist/chunk-OKBR6PX4.js.map +0 -1
  101. package/dist/chunk-PI3KOYAT.js.map +0 -1
  102. package/dist/chunk-ROXYP3BZ.cjs.map +0 -1
  103. package/dist/chunk-WFS6R2F5.js.map +0 -1
  104. package/dist/chunk-YWHSQH7S.cjs.map +0 -1
package/dist/index.cjs CHANGED
@@ -22,13 +22,13 @@ var chunkKJ5BSGEO_cjs = require('./chunk-KJ5BSGEO.cjs');
22
22
  var chunk3GGET5LK_cjs = require('./chunk-3GGET5LK.cjs');
23
23
  var chunkDEZ7XSTG_cjs = require('./chunk-DEZ7XSTG.cjs');
24
24
  var chunkIWDQPSJN_cjs = require('./chunk-IWDQPSJN.cjs');
25
- var chunkCDMWZBDD_cjs = require('./chunk-CDMWZBDD.cjs');
26
- var chunkCB4JX5EJ_cjs = require('./chunk-CB4JX5EJ.cjs');
25
+ var chunk372IIHUA_cjs = require('./chunk-372IIHUA.cjs');
26
+ var chunkMAMY5HTT_cjs = require('./chunk-MAMY5HTT.cjs');
27
27
  var chunkNVHAQOHH_cjs = require('./chunk-NVHAQOHH.cjs');
28
28
  var chunkZNZZCB2M_cjs = require('./chunk-ZNZZCB2M.cjs');
29
29
  var chunkKQAXXJ4G_cjs = require('./chunk-KQAXXJ4G.cjs');
30
30
  var chunkTR2OJKQ4_cjs = require('./chunk-TR2OJKQ4.cjs');
31
- var chunkGBRPZGSI_cjs = require('./chunk-GBRPZGSI.cjs');
31
+ var chunkBLPCYP4D_cjs = require('./chunk-BLPCYP4D.cjs');
32
32
  var chunkOXYFTCRW_cjs = require('./chunk-OXYFTCRW.cjs');
33
33
  var chunkQ2EWNXIB_cjs = require('./chunk-Q2EWNXIB.cjs');
34
34
  var chunkAFKKJEV5_cjs = require('./chunk-AFKKJEV5.cjs');
@@ -38,7 +38,7 @@ var chunk74NOFB34_cjs = require('./chunk-74NOFB34.cjs');
38
38
  var chunkFZQAF3WA_cjs = require('./chunk-FZQAF3WA.cjs');
39
39
  var chunk6RV7HQ4U_cjs = require('./chunk-6RV7HQ4U.cjs');
40
40
  var chunkUL3PQ7HL_cjs = require('./chunk-UL3PQ7HL.cjs');
41
- var chunk5INNPOZZ_cjs = require('./chunk-5INNPOZZ.cjs');
41
+ var chunkNAQ3ZALI_cjs = require('./chunk-NAQ3ZALI.cjs');
42
42
  var chunkS7JQ3FV5_cjs = require('./chunk-S7JQ3FV5.cjs');
43
43
  var chunkGOKC4CCZ_cjs = require('./chunk-GOKC4CCZ.cjs');
44
44
  require('./chunk-GLXTVCHN.cjs');
@@ -48,24 +48,24 @@ var chunk5MAGWW5X_cjs = require('./chunk-5MAGWW5X.cjs');
48
48
  require('./chunk-RHNPILZQ.cjs');
49
49
  var chunkDFCZPVG4_cjs = require('./chunk-DFCZPVG4.cjs');
50
50
  var chunkBT3ZQJGT_cjs = require('./chunk-BT3ZQJGT.cjs');
51
- var chunk7BARESXI_cjs = require('./chunk-7BARESXI.cjs');
52
- var chunk2JQBPU3Y_cjs = require('./chunk-2JQBPU3Y.cjs');
51
+ var chunkVPNURIAY_cjs = require('./chunk-VPNURIAY.cjs');
52
+ var chunkMZPF2QGM_cjs = require('./chunk-MZPF2QGM.cjs');
53
53
  var chunk44CK4CT2_cjs = require('./chunk-44CK4CT2.cjs');
54
54
  var chunkWGPMTW36_cjs = require('./chunk-WGPMTW36.cjs');
55
55
  var chunk6ZYE6JUK_cjs = require('./chunk-6ZYE6JUK.cjs');
56
56
  var chunkLOTMAKUG_cjs = require('./chunk-LOTMAKUG.cjs');
57
57
  var chunkEUUQVDXX_cjs = require('./chunk-EUUQVDXX.cjs');
58
- var chunkROXYP3BZ_cjs = require('./chunk-ROXYP3BZ.cjs');
58
+ var chunkAES2BKEW_cjs = require('./chunk-AES2BKEW.cjs');
59
59
  var chunkFQ3UCZUX_cjs = require('./chunk-FQ3UCZUX.cjs');
60
60
  require('./chunk-VBWRH4UW.cjs');
61
61
  var chunkBWYYA3LQ_cjs = require('./chunk-BWYYA3LQ.cjs');
62
62
  var chunkRI56YPED_cjs = require('./chunk-RI56YPED.cjs');
63
- var chunkQPOTSLY6_cjs = require('./chunk-QPOTSLY6.cjs');
63
+ var chunkJTBQNOSL_cjs = require('./chunk-JTBQNOSL.cjs');
64
64
  var chunkU3ABLVYH_cjs = require('./chunk-U3ABLVYH.cjs');
65
65
  var chunkRH43XBNV_cjs = require('./chunk-RH43XBNV.cjs');
66
66
  var chunkXP6HELVG_cjs = require('./chunk-XP6HELVG.cjs');
67
67
  var chunkUOOH356R_cjs = require('./chunk-UOOH356R.cjs');
68
- var chunkYWHSQH7S_cjs = require('./chunk-YWHSQH7S.cjs');
68
+ var chunkDAPZPT5N_cjs = require('./chunk-DAPZPT5N.cjs');
69
69
  var chunkZHBANUBI_cjs = require('./chunk-ZHBANUBI.cjs');
70
70
  var chunkJC6Y3LGF_cjs = require('./chunk-JC6Y3LGF.cjs');
71
71
  var chunkKJPOFUF5_cjs = require('./chunk-KJPOFUF5.cjs');
@@ -73,15 +73,16 @@ var chunkMSRU3XBH_cjs = require('./chunk-MSRU3XBH.cjs');
73
73
  var chunkUTYUT5YY_cjs = require('./chunk-UTYUT5YY.cjs');
74
74
  var chunkA2QVQF54_cjs = require('./chunk-A2QVQF54.cjs');
75
75
  var chunkEL2RSQTJ_cjs = require('./chunk-EL2RSQTJ.cjs');
76
- var chunkX7J45FU5_cjs = require('./chunk-X7J45FU5.cjs');
76
+ var chunk4GXECTPS_cjs = require('./chunk-4GXECTPS.cjs');
77
77
  var chunk2O7D6F67_cjs = require('./chunk-2O7D6F67.cjs');
78
78
  var chunkY4ESBDQ5_cjs = require('./chunk-Y4ESBDQ5.cjs');
79
79
  var chunkJYZW2PZS_cjs = require('./chunk-JYZW2PZS.cjs');
80
- var chunkIKMR2ADM_cjs = require('./chunk-IKMR2ADM.cjs');
81
80
  var chunkYVPC65ZJ_cjs = require('./chunk-YVPC65ZJ.cjs');
82
81
  var chunk6HFFWEM3_cjs = require('./chunk-6HFFWEM3.cjs');
83
82
  var chunkNNEFAUHV_cjs = require('./chunk-NNEFAUHV.cjs');
84
83
  var chunkFHY3K6PL_cjs = require('./chunk-FHY3K6PL.cjs');
84
+ var chunkFSGEDDF2_cjs = require('./chunk-FSGEDDF2.cjs');
85
+ var chunkZDEYV373_cjs = require('./chunk-ZDEYV373.cjs');
85
86
  require('./chunk-AT732HC6.cjs');
86
87
  var chunkC7RVKV25_cjs = require('./chunk-C7RVKV25.cjs');
87
88
  var chunkL7YQBSEL_cjs = require('./chunk-L7YQBSEL.cjs');
@@ -280,7 +281,7 @@ function AddContactModal({
280
281
  }
281
282
  ),
282
283
  /* @__PURE__ */ jsxRuntime.jsx(
283
- chunkYWHSQH7S_cjs.Select,
284
+ chunkDAPZPT5N_cjs.Select,
284
285
  {
285
286
  id: "contact-sex",
286
287
  options: SEX_OPTIONS,
@@ -1394,7 +1395,7 @@ function AIEmptyState({
1394
1395
  /* @__PURE__ */ jsxRuntime.jsx(SuggestedActions, { actions: suggestions, onSelect: onSuggestionSelect })
1395
1396
  ] }) : void 0;
1396
1397
  return /* @__PURE__ */ jsxRuntime.jsx(
1397
- chunkCDMWZBDD_cjs.EmptyState,
1398
+ chunk372IIHUA_cjs.EmptyState,
1398
1399
  {
1399
1400
  title,
1400
1401
  description,
@@ -1586,7 +1587,7 @@ function AIChat({
1586
1587
  }
1587
1588
  ) }),
1588
1589
  /* @__PURE__ */ jsxRuntime.jsx(
1589
- chunkCB4JX5EJ_cjs.MessageComposer,
1590
+ chunkMAMY5HTT_cjs.MessageComposer,
1590
1591
  {
1591
1592
  onSend: handleSend,
1592
1593
  placeholder: inputPlaceholder,
@@ -2081,7 +2082,7 @@ function OzwellSettingsMenu({
2081
2082
  fn?.();
2082
2083
  };
2083
2084
  return /* @__PURE__ */ jsxRuntime.jsxs(
2084
- chunk2JQBPU3Y_cjs.Dropdown,
2085
+ chunkMZPF2QGM_cjs.Dropdown,
2085
2086
  {
2086
2087
  trigger,
2087
2088
  open,
@@ -2098,8 +2099,8 @@ function OzwellSettingsMenu({
2098
2099
  onScroll: updateHasMore,
2099
2100
  className: "max-h-[392px] overflow-x-hidden overflow-y-auto",
2100
2101
  children: [
2101
- /* @__PURE__ */ jsxRuntime.jsx(chunk2JQBPU3Y_cjs.DropdownHeader, { title: "\u2699 Ozwell settings" }),
2102
- onManageVoices && /* @__PURE__ */ jsxRuntime.jsx(chunk2JQBPU3Y_cjs.DropdownItem, { onClick: act(onManageVoices), children: /* @__PURE__ */ jsxRuntime.jsx(
2102
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMZPF2QGM_cjs.DropdownHeader, { title: "\u2699 Ozwell settings" }),
2103
+ onManageVoices && /* @__PURE__ */ jsxRuntime.jsx(chunkMZPF2QGM_cjs.DropdownItem, { onClick: act(onManageVoices), children: /* @__PURE__ */ jsxRuntime.jsx(
2103
2104
  ItemLabel,
2104
2105
  {
2105
2106
  label: "Your voice",
@@ -6773,8 +6774,8 @@ function ConcernRow({
6773
6774
  ]
6774
6775
  }
6775
6776
  ),
6776
- !readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunkQPOTSLY6_cjs.RowActionToolbar, { label: `Actions for ${current.text}`, align: "top", children: visibleActions.map((action) => /* @__PURE__ */ jsxRuntime.jsx(
6777
- chunkQPOTSLY6_cjs.RowIconButton,
6777
+ !readOnly && /* @__PURE__ */ jsxRuntime.jsx(chunkJTBQNOSL_cjs.RowActionToolbar, { label: `Actions for ${current.text}`, align: "top", children: visibleActions.map((action) => /* @__PURE__ */ jsxRuntime.jsx(
6778
+ chunkJTBQNOSL_cjs.RowIconButton,
6778
6779
  {
6779
6780
  label: ACTION_META[action].label,
6780
6781
  icon: ACTION_META[action].icon,
@@ -7203,13 +7204,13 @@ function OrderRow({
7203
7204
  ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7204
7205
  /* @__PURE__ */ jsxRuntime.jsx(OrderContent, { order }),
7205
7206
  interactive && /* @__PURE__ */ jsxRuntime.jsxs(
7206
- chunkQPOTSLY6_cjs.RowActionToolbar,
7207
+ chunkJTBQNOSL_cjs.RowActionToolbar,
7207
7208
  {
7208
7209
  label: `Actions for ${order.display}`,
7209
7210
  group: "order",
7210
7211
  children: [
7211
7212
  canEdit && /* @__PURE__ */ jsxRuntime.jsx(
7212
- chunkQPOTSLY6_cjs.RowIconButton,
7213
+ chunkJTBQNOSL_cjs.RowIconButton,
7213
7214
  {
7214
7215
  label: "Edit",
7215
7216
  icon: chunkUTYUT5YY_cjs.Pencil,
@@ -7220,7 +7221,7 @@ function OrderRow({
7220
7221
  (controls?.moveWithin || controls?.moveToProblem && controls.targets.some(
7221
7222
  (t) => t.concernId !== order.concernId
7222
7223
  )) && /* @__PURE__ */ jsxRuntime.jsxs(
7223
- chunk2JQBPU3Y_cjs.Dropdown,
7224
+ chunkMZPF2QGM_cjs.Dropdown,
7224
7225
  {
7225
7226
  open: menuOpen,
7226
7227
  onOpenChange: setMenuOpen,
@@ -7238,7 +7239,7 @@ function OrderRow({
7238
7239
  children: [
7239
7240
  controls?.moveWithin && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7240
7241
  /* @__PURE__ */ jsxRuntime.jsx(
7241
- chunk2JQBPU3Y_cjs.DropdownItem,
7242
+ chunkMZPF2QGM_cjs.DropdownItem,
7242
7243
  {
7243
7244
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.ChevronUp, { size: 14 }),
7244
7245
  onClick: pick(() => controls.moveWithin?.(order, -1)),
@@ -7246,7 +7247,7 @@ function OrderRow({
7246
7247
  }
7247
7248
  ),
7248
7249
  /* @__PURE__ */ jsxRuntime.jsx(
7249
- chunk2JQBPU3Y_cjs.DropdownItem,
7250
+ chunkMZPF2QGM_cjs.DropdownItem,
7250
7251
  {
7251
7252
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.ChevronDown, { size: 14 }),
7252
7253
  onClick: pick(() => controls.moveWithin?.(order, 1)),
@@ -7257,9 +7258,9 @@ function OrderRow({
7257
7258
  controls?.moveToProblem && controls.targets.some(
7258
7259
  (t) => t.concernId !== order.concernId
7259
7260
  ) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7260
- controls.moveWithin && /* @__PURE__ */ jsxRuntime.jsx(chunk2JQBPU3Y_cjs.DropdownSeparator, {}),
7261
+ controls.moveWithin && /* @__PURE__ */ jsxRuntime.jsx(chunkMZPF2QGM_cjs.DropdownSeparator, {}),
7261
7262
  controls.targets.filter((t) => t.concernId !== order.concernId).map((t) => /* @__PURE__ */ jsxRuntime.jsxs(
7262
- chunk2JQBPU3Y_cjs.DropdownItem,
7263
+ chunkMZPF2QGM_cjs.DropdownItem,
7263
7264
  {
7264
7265
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Link, { size: 14 }),
7265
7266
  onClick: pick(
@@ -7277,7 +7278,7 @@ function OrderRow({
7277
7278
  }
7278
7279
  ),
7279
7280
  controls?.remove && /* @__PURE__ */ jsxRuntime.jsx(
7280
- chunkQPOTSLY6_cjs.RowIconButton,
7281
+ chunkJTBQNOSL_cjs.RowIconButton,
7281
7282
  {
7282
7283
  label: "Remove",
7283
7284
  icon: chunkUTYUT5YY_cjs.Trash2,
@@ -7445,7 +7446,7 @@ var Assessment = React10__namespace.forwardRef(
7445
7446
  null
7446
7447
  );
7447
7448
  const [announcement, setAnnouncement] = chunkYVPC65ZJ_cjs.useLiveAnnouncement();
7448
- const ambientCodeLookup = chunkQPOTSLY6_cjs.useCodeLookupConfig();
7449
+ const ambientCodeLookup = chunkJTBQNOSL_cjs.useCodeLookupConfig();
7449
7450
  const effectiveRenderOrderSearch = renderOrderSearch === false ? void 0 : renderOrderSearch ?? (ambientCodeLookup ? contextOrderSearch(ambientCodeLookup) : void 0);
7450
7451
  const concernById = React10__namespace.useMemo(
7451
7452
  () => new Map(concerns.map((c) => [c.concernId, c])),
@@ -7700,7 +7701,7 @@ var Assessment = React10__namespace.forwardRef(
7700
7701
  assertion.verificationStatus !== "confirmed" && /* @__PURE__ */ jsxRuntime.jsx(chunkEL2RSQTJ_cjs.Badge, { variant: "warning", size: "sm", children: assertion.verificationStatus }),
7701
7702
  /* @__PURE__ */ jsxRuntime.jsx(CodingChips, { coding: assertion.coding }),
7702
7703
  !readOnly && /* @__PURE__ */ jsxRuntime.jsx(
7703
- chunkQPOTSLY6_cjs.RowActionToolbar,
7704
+ chunkJTBQNOSL_cjs.RowActionToolbar,
7704
7705
  {
7705
7706
  label: `Actions for ${assertion.text}`,
7706
7707
  align: "top",
@@ -7710,7 +7711,7 @@ var Assessment = React10__namespace.forwardRef(
7710
7711
  if (action === "add-order" && !onAddOrder && !onAction)
7711
7712
  return null;
7712
7713
  return /* @__PURE__ */ jsxRuntime.jsx(
7713
- chunkQPOTSLY6_cjs.RowIconButton,
7714
+ chunkJTBQNOSL_cjs.RowIconButton,
7714
7715
  {
7715
7716
  label: meta.label,
7716
7717
  icon: meta.icon,
@@ -8886,15 +8887,12 @@ function ServiceSelect({
8886
8887
  }) {
8887
8888
  const [isOpen, setIsOpen] = React10__namespace.useState(false);
8888
8889
  const dropdownRef = React10__namespace.useRef(null);
8889
- React10__namespace.useEffect(() => {
8890
- function handleClickOutside(event) {
8891
- if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
8892
- setIsOpen(false);
8893
- }
8894
- }
8895
- document.addEventListener("mousedown", handleClickOutside);
8896
- return () => document.removeEventListener("mousedown", handleClickOutside);
8897
- }, []);
8890
+ const { anchorRef, floatingRef, style } = chunkZDEYV373_cjs.useAnchoredPosition({ open: isOpen, matchWidth: true, maxHeight: 240 });
8891
+ const outsideRefs = React10__namespace.useMemo(
8892
+ () => [dropdownRef, floatingRef],
8893
+ [floatingRef]
8894
+ );
8895
+ chunkFSGEDDF2_cjs.useClickOutside(outsideRefs, () => setIsOpen(false), isOpen);
8898
8896
  const toggleService = (serviceSlug) => {
8899
8897
  if (selectedServices.includes(serviceSlug)) {
8900
8898
  onChange(selectedServices.filter((s) => s !== serviceSlug));
@@ -8906,7 +8904,10 @@ function ServiceSelect({
8906
8904
  return /* @__PURE__ */ jsxRuntime.jsxs(
8907
8905
  "div",
8908
8906
  {
8909
- ref: dropdownRef,
8907
+ ref: (node) => {
8908
+ dropdownRef.current = node;
8909
+ anchorRef.current = node;
8910
+ },
8910
8911
  className: chunkOR5DRJCW_cjs.cn("relative", className),
8911
8912
  "data-slot": "service-select",
8912
8913
  children: [
@@ -8944,35 +8945,40 @@ function ServiceSelect({
8944
8945
  ]
8945
8946
  }
8946
8947
  ),
8947
- isOpen && /* @__PURE__ */ jsxRuntime.jsxs(
8948
- "div",
8949
- {
8950
- className: "border-border bg-card absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-lg border shadow-lg",
8951
- "data-slot": "service-select-dropdown",
8952
- children: [
8953
- services.map((service) => /* @__PURE__ */ jsxRuntime.jsxs(
8954
- "label",
8955
- {
8956
- "data-slot": "service-select-option",
8957
- className: "hover:bg-muted flex cursor-pointer items-center gap-3 px-4 py-3",
8958
- children: [
8959
- /* @__PURE__ */ jsxRuntime.jsx(
8960
- "input",
8961
- {
8962
- type: "checkbox",
8963
- checked: selectedServices.includes(service.slug),
8964
- onChange: () => toggleService(service.slug),
8965
- className: "text-primary-800 focus:ring-primary-500 border-input h-4 w-4 rounded"
8966
- }
8967
- ),
8968
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground", children: service.name })
8969
- ]
8970
- },
8971
- service.slug
8972
- )),
8973
- services.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground px-4 py-3 text-center", children: "No services available" })
8974
- ]
8975
- }
8948
+ isOpen && ReactDOM.createPortal(
8949
+ /* @__PURE__ */ jsxRuntime.jsxs(
8950
+ "div",
8951
+ {
8952
+ ref: floatingRef,
8953
+ style,
8954
+ className: "border-border bg-card overflow-auto rounded-lg border shadow-lg",
8955
+ "data-slot": "service-select-dropdown",
8956
+ children: [
8957
+ services.map((service) => /* @__PURE__ */ jsxRuntime.jsxs(
8958
+ "label",
8959
+ {
8960
+ "data-slot": "service-select-option",
8961
+ className: "hover:bg-muted flex cursor-pointer items-center gap-3 px-4 py-3",
8962
+ children: [
8963
+ /* @__PURE__ */ jsxRuntime.jsx(
8964
+ "input",
8965
+ {
8966
+ type: "checkbox",
8967
+ checked: selectedServices.includes(service.slug),
8968
+ onChange: () => toggleService(service.slug),
8969
+ className: "text-primary-800 focus:ring-primary-500 border-input h-4 w-4 rounded"
8970
+ }
8971
+ ),
8972
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-foreground", children: service.name })
8973
+ ]
8974
+ },
8975
+ service.slug
8976
+ )),
8977
+ services.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground px-4 py-3 text-center", children: "No services available" })
8978
+ ]
8979
+ }
8980
+ ),
8981
+ document.body
8976
8982
  ),
8977
8983
  error && /* @__PURE__ */ jsxRuntime.jsx(
8978
8984
  "p",
@@ -10345,44 +10351,44 @@ function BusinessHoursEditor({
10345
10351
  }
10346
10352
  ),
10347
10353
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
10348
- hours.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "group relative", children: [
10349
- /* @__PURE__ */ jsxRuntime.jsxs(
10350
- chunkA2QVQF54_cjs.Button,
10351
- {
10352
- type: "button",
10353
- variant: "ghost",
10354
- size: "sm",
10355
- disabled,
10356
- className: "text-xs",
10357
- children: [
10358
- /* @__PURE__ */ jsxRuntime.jsx(CopyIcon, { className: "mr-1 h-3 w-3" }),
10359
- "Copy"
10360
- ]
10361
- }
10362
- ),
10363
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "invisible absolute top-full right-0 z-10 mt-1 rounded-md border border-gray-200 bg-white opacity-0 shadow-lg transition-all group-hover:visible group-hover:opacity-100 dark:border-gray-700 dark:bg-gray-800", children: [
10364
- /* @__PURE__ */ jsxRuntime.jsx(
10365
- "button",
10354
+ hours.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(
10355
+ chunkMZPF2QGM_cjs.Dropdown,
10356
+ {
10357
+ placement: "bottom-end",
10358
+ trigger: /* @__PURE__ */ jsxRuntime.jsxs(
10359
+ chunkA2QVQF54_cjs.Button,
10366
10360
  {
10367
10361
  type: "button",
10368
- className: "block w-full px-3 py-2 text-left text-xs whitespace-nowrap hover:bg-gray-100 dark:hover:bg-gray-700",
10369
- onClick: () => handleCopyToAll(dayIndex),
10362
+ variant: "ghost",
10363
+ size: "sm",
10370
10364
  disabled,
10371
- children: "Copy to all days"
10365
+ className: "text-xs",
10366
+ children: [
10367
+ /* @__PURE__ */ jsxRuntime.jsx(CopyIcon, { className: "mr-1 h-3 w-3" }),
10368
+ "Copy"
10369
+ ]
10372
10370
  }
10373
10371
  ),
10374
- /* @__PURE__ */ jsxRuntime.jsx(
10375
- "button",
10376
- {
10377
- type: "button",
10378
- className: "block w-full px-3 py-2 text-left text-xs whitespace-nowrap hover:bg-gray-100 dark:hover:bg-gray-700",
10379
- onClick: () => handleCopyToWeekdays(dayIndex),
10380
- disabled,
10381
- children: "Copy to weekdays"
10382
- }
10383
- )
10384
- ] })
10385
- ] }),
10372
+ children: [
10373
+ /* @__PURE__ */ jsxRuntime.jsx(
10374
+ chunkMZPF2QGM_cjs.DropdownItem,
10375
+ {
10376
+ onClick: () => handleCopyToAll(dayIndex),
10377
+ disabled,
10378
+ children: "Copy to all days"
10379
+ }
10380
+ ),
10381
+ /* @__PURE__ */ jsxRuntime.jsx(
10382
+ chunkMZPF2QGM_cjs.DropdownItem,
10383
+ {
10384
+ onClick: () => handleCopyToWeekdays(dayIndex),
10385
+ disabled,
10386
+ children: "Copy to weekdays"
10387
+ }
10388
+ )
10389
+ ]
10390
+ }
10391
+ ),
10386
10392
  /* @__PURE__ */ jsxRuntime.jsxs(
10387
10393
  chunkA2QVQF54_cjs.Button,
10388
10394
  {
@@ -10702,7 +10708,7 @@ function ConditionEditor({
10702
10708
  "data-testid": dataTestId
10703
10709
  }) {
10704
10710
  const prior = concern ? currentAssertion(concern) : void 0;
10705
- const ambientCodeLookup = chunkQPOTSLY6_cjs.useCodeLookupConfig();
10711
+ const ambientCodeLookup = chunkJTBQNOSL_cjs.useCodeLookupConfig();
10706
10712
  const effectiveRenderCodeSearch = renderCodeSearch === false ? void 0 : renderCodeSearch ?? (ambientCodeLookup ? contextConditionCodeSearch(ambientCodeLookup) : void 0);
10707
10713
  const [text, setText] = React10__namespace.useState("");
10708
10714
  const [coding, setCoding] = React10__namespace.useState([]);
@@ -10834,7 +10840,7 @@ function ConditionEditor({
10834
10840
  ),
10835
10841
  mode === "relate" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10836
10842
  /* @__PURE__ */ jsxRuntime.jsx(
10837
- chunkYWHSQH7S_cjs.Select,
10843
+ chunkDAPZPT5N_cjs.Select,
10838
10844
  {
10839
10845
  label: "Relationship",
10840
10846
  options: RELATIONSHIP_OPTIONS,
@@ -10843,7 +10849,7 @@ function ConditionEditor({
10843
10849
  }
10844
10850
  ),
10845
10851
  /* @__PURE__ */ jsxRuntime.jsx(
10846
- chunkYWHSQH7S_cjs.Select,
10852
+ chunkDAPZPT5N_cjs.Select,
10847
10853
  {
10848
10854
  label: "Related problem",
10849
10855
  placeholder: "Select a problem\u2026",
@@ -10945,7 +10951,7 @@ function ConditionEditor({
10945
10951
  coding.length === 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground text-xs", children: "Optional \u2014 a name-only problem is valid. Codes can be added any time." }),
10946
10952
  coding.map((c, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [
10947
10953
  /* @__PURE__ */ jsxRuntime.jsx(
10948
- chunkYWHSQH7S_cjs.Select,
10954
+ chunkDAPZPT5N_cjs.Select,
10949
10955
  {
10950
10956
  "aria-label": `Coding system ${i + 1}`,
10951
10957
  options: CODING_SYSTEMS.map((s) => ({
@@ -11010,7 +11016,7 @@ function ConditionEditor({
11010
11016
  ] }, i))
11011
11017
  ] }),
11012
11018
  /* @__PURE__ */ jsxRuntime.jsx(
11013
- chunkYWHSQH7S_cjs.Select,
11019
+ chunkDAPZPT5N_cjs.Select,
11014
11020
  {
11015
11021
  label: "Verification status",
11016
11022
  options: VERIFICATION_OPTIONS,
@@ -11695,7 +11701,7 @@ function CheckrIntegration({
11695
11701
  }
11696
11702
  ),
11697
11703
  /* @__PURE__ */ jsxRuntime.jsx(
11698
- chunkYWHSQH7S_cjs.Select,
11704
+ chunkDAPZPT5N_cjs.Select,
11699
11705
  {
11700
11706
  label: packageLabel,
11701
11707
  options: packageOptions,
@@ -11754,7 +11760,7 @@ function CommandPaletteProvider({
11754
11760
  open();
11755
11761
  }
11756
11762
  }, [isOpen, open, close]);
11757
- chunkX7J45FU5_cjs.useCommandK(toggle, enableShortcut);
11763
+ chunk4GXECTPS_cjs.useCommandK(toggle, enableShortcut);
11758
11764
  React10__namespace.default.useEffect(() => {
11759
11765
  if (!customEventName) return;
11760
11766
  const handler = () => open();
@@ -11943,7 +11949,7 @@ function CommandPalette({
11943
11949
  return groups;
11944
11950
  }, [effectiveItems]);
11945
11951
  chunkFHY3K6PL_cjs.useEscapeKey(close, isOpen);
11946
- chunkIKMR2ADM_cjs.useClickOutside(containerRef, close);
11952
+ chunkFSGEDDF2_cjs.useClickOutside(containerRef, close);
11947
11953
  React10.useEffect(() => {
11948
11954
  if (isOpen) {
11949
11955
  setTimeout(() => inputRef.current?.focus(), 50);
@@ -12793,16 +12799,8 @@ function RowActionMenu({
12793
12799
  const [open, setOpen] = React10__namespace.useState(false);
12794
12800
  const menuRef = React10__namespace.useRef(null);
12795
12801
  const buttonRef = React10__namespace.useRef(null);
12796
- React10__namespace.useEffect(() => {
12797
- if (!open) return;
12798
- function handleClick(e) {
12799
- if (menuRef.current && !menuRef.current.contains(e.target) && buttonRef.current && !buttonRef.current.contains(e.target)) {
12800
- setOpen(false);
12801
- }
12802
- }
12803
- document.addEventListener("mousedown", handleClick);
12804
- return () => document.removeEventListener("mousedown", handleClick);
12805
- }, [open]);
12802
+ const outsideRefs = React10__namespace.useMemo(() => [menuRef, buttonRef], []);
12803
+ chunkFSGEDDF2_cjs.useClickOutside(outsideRefs, () => setOpen(false), open);
12806
12804
  React10__namespace.useEffect(() => {
12807
12805
  if (!open) return;
12808
12806
  function handleKey(e) {
@@ -12892,7 +12890,9 @@ function RowActionMenu({
12892
12890
  function HoverMenu({
12893
12891
  items,
12894
12892
  actions,
12895
- variant
12893
+ variant,
12894
+ floatingRef,
12895
+ style
12896
12896
  }) {
12897
12897
  const headerBg = {
12898
12898
  default: "bg-neutral-50 dark:bg-neutral-800",
@@ -12907,11 +12907,13 @@ function HoverMenu({
12907
12907
  /* @__PURE__ */ jsxRuntime.jsxs(
12908
12908
  "div",
12909
12909
  {
12910
+ ref: floatingRef,
12911
+ style,
12910
12912
  "data-slot": "count-badge-menu",
12911
12913
  className: chunkOR5DRJCW_cjs.cn(
12912
- "absolute top-full right-0 z-50 mt-2",
12913
12914
  "w-[320px] rounded-lg border border-neutral-200 bg-white shadow-xl",
12914
12915
  "dark:border-neutral-700 dark:bg-neutral-800",
12916
+ "flex flex-col overflow-hidden",
12915
12917
  "animate-in fade-in slide-in-from-top-1 duration-150"
12916
12918
  ),
12917
12919
  onMouseDown: (e) => e.stopPropagation(),
@@ -12920,7 +12922,7 @@ function HoverMenu({
12920
12922
  "div",
12921
12923
  {
12922
12924
  className: chunkOR5DRJCW_cjs.cn(
12923
- "rounded-t-lg border-b border-neutral-200 px-3 py-2 dark:border-neutral-700",
12925
+ "shrink-0 rounded-t-lg border-b border-neutral-200 px-3 py-2 dark:border-neutral-700",
12924
12926
  headerBg[variant ?? "default"]
12925
12927
  ),
12926
12928
  children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs font-semibold text-neutral-600 dark:text-neutral-300", children: [
@@ -12934,7 +12936,7 @@ function HoverMenu({
12934
12936
  "div",
12935
12937
  {
12936
12938
  "data-slot": "count-badge-menu-scroll",
12937
- className: "max-h-[240px] overflow-y-auto",
12939
+ className: "max-h-[240px] min-h-0 overflow-y-auto",
12938
12940
  children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "w-full text-left text-xs", children: [
12939
12941
  /* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { className: "border-b border-neutral-100 dark:border-neutral-700", children: [
12940
12942
  /* @__PURE__ */ jsxRuntime.jsx("th", { className: "text-muted-foreground px-3 py-1.5 font-medium", children: "#" }),
@@ -12997,117 +12999,133 @@ function ViewModalActions({
12997
12999
  }) {
12998
13000
  const [shareOpen, setShareOpen] = React10__namespace.useState(false);
12999
13001
  const shareRef = React10__namespace.useRef(null);
13000
- React10__namespace.useEffect(() => {
13001
- if (!shareOpen) return;
13002
- const handleClick = (e) => {
13003
- if (shareRef.current && !shareRef.current.contains(e.target)) {
13004
- setShareOpen(false);
13005
- }
13006
- };
13007
- document.addEventListener("mousedown", handleClick);
13008
- return () => document.removeEventListener("mousedown", handleClick);
13009
- }, [shareOpen]);
13002
+ const {
13003
+ anchorRef: shareAnchorRef,
13004
+ floatingRef: shareFloatingRef,
13005
+ style: shareStyle
13006
+ } = chunkZDEYV373_cjs.useAnchoredPosition({
13007
+ open: shareOpen
13008
+ });
13009
+ const shareOutsideRefs = React10__namespace.useMemo(
13010
+ () => [shareRef, shareFloatingRef],
13011
+ [shareFloatingRef]
13012
+ );
13013
+ chunkFSGEDDF2_cjs.useClickOutside(shareOutsideRefs, () => setShareOpen(false), shareOpen);
13010
13014
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center gap-1 border-b border-neutral-200 pb-3 dark:border-neutral-700", children: [
13011
- /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: shareRef, className: "relative", children: [
13012
- /* @__PURE__ */ jsxRuntime.jsxs(
13013
- chunkA2QVQF54_cjs.Button,
13014
- {
13015
- variant: "ghost",
13016
- size: "sm",
13017
- onClick: () => setShareOpen((v) => !v),
13018
- "aria-expanded": shareOpen,
13019
- "aria-haspopup": "menu",
13020
- children: [
13021
- /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Share, { size: 14, className: "mr-1.5" }),
13022
- "Share",
13023
- /* @__PURE__ */ jsxRuntime.jsx(
13024
- chunkUTYUT5YY_cjs.ChevronDown,
13025
- {
13026
- size: 12,
13027
- className: chunkOR5DRJCW_cjs.cn(
13028
- "ml-1 transition-transform duration-150",
13029
- shareOpen && "rotate-180"
13015
+ /* @__PURE__ */ jsxRuntime.jsxs(
13016
+ "div",
13017
+ {
13018
+ ref: (node) => {
13019
+ shareRef.current = node;
13020
+ shareAnchorRef.current = node;
13021
+ },
13022
+ className: "relative",
13023
+ children: [
13024
+ /* @__PURE__ */ jsxRuntime.jsxs(
13025
+ chunkA2QVQF54_cjs.Button,
13026
+ {
13027
+ variant: "ghost",
13028
+ size: "sm",
13029
+ onClick: () => setShareOpen((v) => !v),
13030
+ "aria-expanded": shareOpen,
13031
+ "aria-haspopup": "menu",
13032
+ children: [
13033
+ /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Share, { size: 14, className: "mr-1.5" }),
13034
+ "Share",
13035
+ /* @__PURE__ */ jsxRuntime.jsx(
13036
+ chunkUTYUT5YY_cjs.ChevronDown,
13037
+ {
13038
+ size: 12,
13039
+ className: chunkOR5DRJCW_cjs.cn(
13040
+ "ml-1 transition-transform duration-150",
13041
+ shareOpen && "rotate-180"
13042
+ )
13043
+ }
13030
13044
  )
13031
- }
13032
- )
13033
- ]
13034
- }
13035
- ),
13036
- shareOpen && /* @__PURE__ */ jsxRuntime.jsxs(
13037
- "div",
13038
- {
13039
- role: "menu",
13040
- className: chunkOR5DRJCW_cjs.cn(
13041
- "absolute top-full left-0 z-50 mt-1",
13042
- "min-w-[10rem] rounded-lg border border-neutral-200 bg-white py-1 shadow-lg",
13043
- "dark:border-neutral-700 dark:bg-neutral-800",
13044
- "animate-in fade-in zoom-in-95 duration-100"
13045
+ ]
13046
+ }
13045
13047
  ),
13046
- children: [
13047
- /* @__PURE__ */ jsxRuntime.jsxs(
13048
- "button",
13049
- {
13050
- role: "menuitem",
13051
- type: "button",
13052
- className: chunkOR5DRJCW_cjs.cn(
13053
- "flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm",
13054
- "text-neutral-700 hover:bg-neutral-100",
13055
- "dark:text-neutral-300 dark:hover:bg-neutral-700"
13056
- ),
13057
- onClick: () => {
13058
- console.warn("Share with physician", viewTarget);
13059
- setShareOpen(false);
13060
- },
13061
- children: [
13062
- /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Stethoscope, { size: 14 }),
13063
- "Physician"
13064
- ]
13065
- }
13066
- ),
13048
+ shareOpen && ReactDOM__namespace.createPortal(
13067
13049
  /* @__PURE__ */ jsxRuntime.jsxs(
13068
- "button",
13050
+ "div",
13069
13051
  {
13070
- role: "menuitem",
13071
- type: "button",
13052
+ ref: shareFloatingRef,
13053
+ style: shareStyle,
13054
+ role: "menu",
13072
13055
  className: chunkOR5DRJCW_cjs.cn(
13073
- "flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm",
13074
- "text-neutral-700 hover:bg-neutral-100",
13075
- "dark:text-neutral-300 dark:hover:bg-neutral-700"
13056
+ "min-w-[10rem] overflow-auto rounded-lg border border-neutral-200 bg-white py-1 shadow-lg",
13057
+ "dark:border-neutral-700 dark:bg-neutral-800",
13058
+ "animate-in fade-in zoom-in-95 duration-100"
13076
13059
  ),
13077
- onClick: () => {
13078
- console.warn("Share with patient", viewTarget);
13079
- setShareOpen(false);
13080
- },
13081
13060
  children: [
13082
- /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.User, { size: 14 }),
13083
- "Patient"
13061
+ /* @__PURE__ */ jsxRuntime.jsxs(
13062
+ "button",
13063
+ {
13064
+ role: "menuitem",
13065
+ type: "button",
13066
+ className: chunkOR5DRJCW_cjs.cn(
13067
+ "flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm",
13068
+ "text-neutral-700 hover:bg-neutral-100",
13069
+ "dark:text-neutral-300 dark:hover:bg-neutral-700"
13070
+ ),
13071
+ onClick: () => {
13072
+ console.warn("Share with physician", viewTarget);
13073
+ setShareOpen(false);
13074
+ },
13075
+ children: [
13076
+ /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Stethoscope, { size: 14 }),
13077
+ "Physician"
13078
+ ]
13079
+ }
13080
+ ),
13081
+ /* @__PURE__ */ jsxRuntime.jsxs(
13082
+ "button",
13083
+ {
13084
+ role: "menuitem",
13085
+ type: "button",
13086
+ className: chunkOR5DRJCW_cjs.cn(
13087
+ "flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm",
13088
+ "text-neutral-700 hover:bg-neutral-100",
13089
+ "dark:text-neutral-300 dark:hover:bg-neutral-700"
13090
+ ),
13091
+ onClick: () => {
13092
+ console.warn("Share with patient", viewTarget);
13093
+ setShareOpen(false);
13094
+ },
13095
+ children: [
13096
+ /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.User, { size: 14 }),
13097
+ "Patient"
13098
+ ]
13099
+ }
13100
+ ),
13101
+ /* @__PURE__ */ jsxRuntime.jsxs(
13102
+ "button",
13103
+ {
13104
+ role: "menuitem",
13105
+ type: "button",
13106
+ className: chunkOR5DRJCW_cjs.cn(
13107
+ "flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm",
13108
+ "text-neutral-700 hover:bg-neutral-100",
13109
+ "dark:text-neutral-300 dark:hover:bg-neutral-700"
13110
+ ),
13111
+ onClick: () => {
13112
+ console.warn("Share via email", viewTarget);
13113
+ setShareOpen(false);
13114
+ },
13115
+ children: [
13116
+ /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Mail, { size: 14 }),
13117
+ "Email"
13118
+ ]
13119
+ }
13120
+ )
13084
13121
  ]
13085
13122
  }
13086
13123
  ),
13087
- /* @__PURE__ */ jsxRuntime.jsxs(
13088
- "button",
13089
- {
13090
- role: "menuitem",
13091
- type: "button",
13092
- className: chunkOR5DRJCW_cjs.cn(
13093
- "flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm",
13094
- "text-neutral-700 hover:bg-neutral-100",
13095
- "dark:text-neutral-300 dark:hover:bg-neutral-700"
13096
- ),
13097
- onClick: () => {
13098
- console.warn("Share via email", viewTarget);
13099
- setShareOpen(false);
13100
- },
13101
- children: [
13102
- /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Mail, { size: 14 }),
13103
- "Email"
13104
- ]
13105
- }
13106
- )
13107
- ]
13108
- }
13109
- )
13110
- ] }),
13124
+ document.body
13125
+ )
13126
+ ]
13127
+ }
13128
+ ),
13111
13129
  /* @__PURE__ */ jsxRuntime.jsxs(
13112
13130
  chunkA2QVQF54_cjs.Button,
13113
13131
  {
@@ -13161,16 +13179,20 @@ var CountBadge = React10__namespace.forwardRef(
13161
13179
  null
13162
13180
  );
13163
13181
  const showMenu = items && items.length > 0;
13164
- React10__namespace.useEffect(() => {
13165
- if (!open) return;
13166
- const handleClickOutside = (e) => {
13167
- if (containerRef.current && !containerRef.current.contains(e.target)) {
13168
- setOpen(false);
13169
- }
13170
- };
13171
- document.addEventListener("mousedown", handleClickOutside);
13172
- return () => document.removeEventListener("mousedown", handleClickOutside);
13173
- }, [open]);
13182
+ const {
13183
+ anchorRef,
13184
+ floatingRef,
13185
+ style: menuStyle
13186
+ } = chunkZDEYV373_cjs.useAnchoredPosition({
13187
+ open: Boolean(showMenu && open),
13188
+ placement: "bottom-end",
13189
+ offset: 8
13190
+ });
13191
+ const outsideRefs = React10__namespace.useMemo(
13192
+ () => [containerRef, floatingRef],
13193
+ [floatingRef]
13194
+ );
13195
+ chunkFSGEDDF2_cjs.useClickOutside(outsideRefs, () => setOpen(false), open);
13174
13196
  React10__namespace.useEffect(() => {
13175
13197
  if (!open) return;
13176
13198
  const handleEscape = (e) => {
@@ -13203,48 +13225,63 @@ var CountBadge = React10__namespace.forwardRef(
13203
13225
  );
13204
13226
  const entityLabel = deleteLabel ?? "item";
13205
13227
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
13206
- /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: "relative inline-flex", children: [
13207
- /* @__PURE__ */ jsxRuntime.jsxs(
13208
- "button",
13209
- {
13210
- ref,
13211
- type: "button",
13212
- "data-slot": "count-badge",
13213
- "data-count-badge": "",
13214
- className: chunkOR5DRJCW_cjs.cn(countBadgeVariants({ variant }), className),
13215
- onClick: (e) => {
13216
- if (showMenu) {
13217
- setOpen((prev) => !prev);
13228
+ /* @__PURE__ */ jsxRuntime.jsxs(
13229
+ "div",
13230
+ {
13231
+ ref: (node) => {
13232
+ containerRef.current = node;
13233
+ anchorRef.current = node;
13234
+ },
13235
+ className: "relative inline-flex",
13236
+ children: [
13237
+ /* @__PURE__ */ jsxRuntime.jsxs(
13238
+ "button",
13239
+ {
13240
+ ref,
13241
+ type: "button",
13242
+ "data-slot": "count-badge",
13243
+ "data-count-badge": "",
13244
+ className: chunkOR5DRJCW_cjs.cn(countBadgeVariants({ variant }), className),
13245
+ onClick: (e) => {
13246
+ if (showMenu) {
13247
+ setOpen((prev) => !prev);
13248
+ }
13249
+ props.onClick?.(e);
13250
+ },
13251
+ "aria-expanded": showMenu ? open : void 0,
13252
+ ...props,
13253
+ children: [
13254
+ icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", children: icon }),
13255
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: label }),
13256
+ /* @__PURE__ */ jsxRuntime.jsx(
13257
+ "span",
13258
+ {
13259
+ "data-slot": "count-chip",
13260
+ className: chunkOR5DRJCW_cjs.cn(
13261
+ countChipVariants({ variant: countVariant ?? variant })
13262
+ ),
13263
+ children: count
13264
+ }
13265
+ )
13266
+ ]
13218
13267
  }
13219
- props.onClick?.(e);
13220
- },
13221
- "aria-expanded": showMenu ? open : void 0,
13222
- ...props,
13223
- children: [
13224
- icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0", children: icon }),
13225
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: label }),
13268
+ ),
13269
+ showMenu && open && ReactDOM__namespace.createPortal(
13226
13270
  /* @__PURE__ */ jsxRuntime.jsx(
13227
- "span",
13271
+ HoverMenu,
13228
13272
  {
13229
- "data-slot": "count-chip",
13230
- className: chunkOR5DRJCW_cjs.cn(
13231
- countChipVariants({ variant: countVariant ?? variant })
13232
- ),
13233
- children: count
13273
+ items,
13274
+ actions: resolvedActions,
13275
+ variant,
13276
+ floatingRef,
13277
+ style: menuStyle
13234
13278
  }
13235
- )
13236
- ]
13237
- }
13238
- ),
13239
- showMenu && open && /* @__PURE__ */ jsxRuntime.jsx(
13240
- HoverMenu,
13241
- {
13242
- items,
13243
- actions: resolvedActions,
13244
- variant
13245
- }
13246
- )
13247
- ] }),
13279
+ ),
13280
+ document.body
13281
+ )
13282
+ ]
13283
+ }
13284
+ ),
13248
13285
  /* @__PURE__ */ jsxRuntime.jsxs(
13249
13286
  chunkKJPOFUF5_cjs.Modal,
13250
13287
  {
@@ -14083,7 +14120,7 @@ function CSVColumnCard({
14083
14120
  hasError && !column.ignored && "ring-warning-700/50 dark:ring-warning-400/50 ring-2"
14084
14121
  ),
14085
14122
  children: /* @__PURE__ */ jsxRuntime.jsx(
14086
- chunkYWHSQH7S_cjs.Select,
14123
+ chunkDAPZPT5N_cjs.Select,
14087
14124
  {
14088
14125
  id: formatHtmlId(column.name),
14089
14126
  label: `Map ${column.name} to field`,
@@ -14112,7 +14149,7 @@ function CSVColumnCard({
14112
14149
  }
14113
14150
  ),
14114
14151
  /* @__PURE__ */ jsxRuntime.jsx(
14115
- chunkYWHSQH7S_cjs.Select,
14152
+ chunkDAPZPT5N_cjs.Select,
14116
14153
  {
14117
14154
  id: formatHtmlId(column.name, column.mappedTo),
14118
14155
  label: `${column.name} sub-field`,
@@ -14911,11 +14948,21 @@ function DateRangePicker({
14911
14948
  setRangeEnd(value.end ?? null);
14912
14949
  }, [value]);
14913
14950
  const wrapperRef = React10__namespace.useRef(null);
14914
- chunkIKMR2ADM_cjs.useClickOutside(wrapperRef, () => {
14915
- if (isCalendarOpen) {
14951
+ const outsideRefs = React10__namespace.useMemo(
14952
+ () => [wrapperRef, calendarRef],
14953
+ [calendarRef]
14954
+ );
14955
+ chunkFSGEDDF2_cjs.useClickOutside(
14956
+ outsideRefs,
14957
+ () => {
14916
14958
  setIsCalendarOpen(false);
14917
14959
  setSelectingEnd(false);
14918
- }
14960
+ },
14961
+ isCalendarOpen
14962
+ );
14963
+ const { anchorRef, floatingRef, style } = chunkZDEYV373_cjs.useAnchoredPosition({
14964
+ open: !isMobileVariant && isCalendarOpen,
14965
+ placement: resolvedAlign === "end" ? "bottom-end" : "bottom-start"
14919
14966
  });
14920
14967
  chunkFHY3K6PL_cjs.useEscapeKey(() => {
14921
14968
  setIsCalendarOpen(false);
@@ -15140,7 +15187,10 @@ function DateRangePicker({
15140
15187
  return /* @__PURE__ */ jsxRuntime.jsxs(
15141
15188
  "div",
15142
15189
  {
15143
- ref: wrapperRef,
15190
+ ref: (node) => {
15191
+ wrapperRef.current = node;
15192
+ anchorRef.current = node;
15193
+ },
15144
15194
  className: chunkOR5DRJCW_cjs.cn("relative inline-block", className),
15145
15195
  "data-slot": "date-range-picker",
15146
15196
  children: [
@@ -15282,147 +15332,153 @@ function DateRangePicker({
15282
15332
  )
15283
15333
  }
15284
15334
  ),
15285
- !isMobileVariant && isCalendarOpen && /* @__PURE__ */ jsxRuntime.jsx(
15286
- "div",
15287
- {
15288
- ref: calendarRef,
15289
- className: chunkOR5DRJCW_cjs.cn(
15290
- "absolute top-full z-50 mt-1",
15291
- resolvedAlign === "end" ? "right-0" : "left-0",
15292
- "bg-background border-border rounded-lg border shadow-lg"
15293
- ),
15294
- role: "dialog",
15295
- "aria-label": "Choose date range",
15296
- "data-slot": "date-range-popup",
15297
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex", children: [
15298
- showPresets && /* @__PURE__ */ jsxRuntime.jsx(
15299
- "div",
15300
- {
15301
- className: chunkOR5DRJCW_cjs.cn(
15302
- "border-border flex w-[200px] shrink-0 flex-col gap-0.5 border-r p-3",
15303
- isResponsive && "hidden md:flex"
15304
- ),
15305
- "data-slot": "date-range-presets",
15306
- children: finalPresets.map((preset) => /* @__PURE__ */ jsxRuntime.jsx(
15307
- "button",
15308
- {
15309
- type: "button",
15310
- onClick: () => handlePresetSelect(preset.key),
15311
- "data-slot": "date-range-preset",
15312
- className: chunkOR5DRJCW_cjs.cn(
15313
- "rounded-md px-3 py-1.5 text-left text-sm transition-colors",
15314
- "hover:bg-muted",
15315
- activePreset === preset.key && "bg-primary-800 text-white"
15316
- ),
15317
- children: preset.label
15318
- },
15319
- preset.key
15320
- ))
15321
- }
15335
+ !isMobileVariant && isCalendarOpen && ReactDOM.createPortal(
15336
+ /* @__PURE__ */ jsxRuntime.jsx(
15337
+ "div",
15338
+ {
15339
+ ref: (node) => {
15340
+ calendarRef.current = node;
15341
+ floatingRef.current = node;
15342
+ },
15343
+ style,
15344
+ className: chunkOR5DRJCW_cjs.cn(
15345
+ "overflow-auto",
15346
+ "bg-background border-border rounded-lg border shadow-lg"
15322
15347
  ),
15323
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", "data-slot": "date-range-calendar", children: [
15324
- /* @__PURE__ */ jsxRuntime.jsx(
15325
- "p",
15326
- {
15327
- className: "text-muted-foreground mb-4 text-sm",
15328
- "data-slot": "date-range-subtitle",
15329
- children: "Select a start and end date from the calendar."
15330
- }
15331
- ),
15332
- /* @__PURE__ */ jsxRuntime.jsxs(
15348
+ role: "dialog",
15349
+ "aria-label": "Choose date range",
15350
+ "data-slot": "date-range-popup",
15351
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex", children: [
15352
+ showPresets && /* @__PURE__ */ jsxRuntime.jsx(
15333
15353
  "div",
15334
15354
  {
15335
- className: "flex gap-8",
15336
- onMouseLeave: () => setHoverDate(null),
15337
- "data-slot": "date-range-calendars",
15338
- children: [
15339
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
15340
- /* @__PURE__ */ jsxRuntime.jsxs(
15341
- "div",
15342
- {
15343
- className: "mb-3 flex items-center",
15344
- "data-slot": "date-range-month-header",
15345
- children: [
15346
- /* @__PURE__ */ jsxRuntime.jsx(
15347
- "button",
15348
- {
15349
- type: "button",
15350
- onClick: goToPrevMonth,
15351
- className: "hover:bg-muted rounded-md p-1 transition-colors",
15352
- "aria-label": "Previous month",
15353
- "data-slot": "date-range-nav",
15354
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4" })
15355
- }
15356
- ),
15357
- /* @__PURE__ */ jsxRuntime.jsxs(
15358
- "div",
15359
- {
15360
- className: "flex-1 text-center text-sm font-medium",
15361
- "data-slot": "date-range-month-label",
15362
- children: [
15363
- monthNames[leftMonth],
15364
- " ",
15365
- leftYear
15366
- ]
15367
- }
15368
- ),
15369
- isResponsive && /* @__PURE__ */ jsxRuntime.jsx(
15370
- "button",
15371
- {
15372
- type: "button",
15373
- onClick: goToNextMonth,
15374
- className: "hover:bg-muted rounded-md p-1 transition-colors md:hidden",
15375
- "aria-label": "Next month",
15376
- "data-slot": "date-range-nav",
15377
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" })
15378
- }
15379
- )
15380
- ]
15381
- }
15382
- ),
15383
- renderMonthGrid(leftMonth, leftYear)
15384
- ] }),
15385
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkOR5DRJCW_cjs.cn(isResponsive && "hidden md:block"), children: [
15386
- /* @__PURE__ */ jsxRuntime.jsxs(
15387
- "div",
15388
- {
15389
- className: "mb-3 flex items-center",
15390
- "data-slot": "date-range-month-header",
15391
- children: [
15392
- /* @__PURE__ */ jsxRuntime.jsxs(
15393
- "div",
15394
- {
15395
- className: "flex-1 text-center text-sm font-medium",
15396
- "data-slot": "date-range-month-label",
15397
- children: [
15398
- monthNames[rightMonth],
15399
- " ",
15400
- rightYear
15401
- ]
15402
- }
15403
- ),
15404
- /* @__PURE__ */ jsxRuntime.jsx(
15405
- "button",
15406
- {
15407
- type: "button",
15408
- onClick: goToNextMonth,
15409
- className: "hover:bg-muted rounded-md p-1 transition-colors",
15410
- "aria-label": "Next month",
15411
- "data-slot": "date-range-nav",
15412
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" })
15413
- }
15414
- )
15415
- ]
15416
- }
15355
+ className: chunkOR5DRJCW_cjs.cn(
15356
+ "border-border flex w-[200px] shrink-0 flex-col gap-0.5 border-r p-3",
15357
+ isResponsive && "hidden md:flex"
15358
+ ),
15359
+ "data-slot": "date-range-presets",
15360
+ children: finalPresets.map((preset) => /* @__PURE__ */ jsxRuntime.jsx(
15361
+ "button",
15362
+ {
15363
+ type: "button",
15364
+ onClick: () => handlePresetSelect(preset.key),
15365
+ "data-slot": "date-range-preset",
15366
+ className: chunkOR5DRJCW_cjs.cn(
15367
+ "rounded-md px-3 py-1.5 text-left text-sm transition-colors",
15368
+ "hover:bg-muted",
15369
+ activePreset === preset.key && "bg-primary-800 text-white"
15417
15370
  ),
15418
- renderMonthGrid(rightMonth, rightYear)
15419
- ] })
15420
- ]
15371
+ children: preset.label
15372
+ },
15373
+ preset.key
15374
+ ))
15421
15375
  }
15422
- )
15376
+ ),
15377
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", "data-slot": "date-range-calendar", children: [
15378
+ /* @__PURE__ */ jsxRuntime.jsx(
15379
+ "p",
15380
+ {
15381
+ className: "text-muted-foreground mb-4 text-sm",
15382
+ "data-slot": "date-range-subtitle",
15383
+ children: "Select a start and end date from the calendar."
15384
+ }
15385
+ ),
15386
+ /* @__PURE__ */ jsxRuntime.jsxs(
15387
+ "div",
15388
+ {
15389
+ className: "flex gap-8",
15390
+ onMouseLeave: () => setHoverDate(null),
15391
+ "data-slot": "date-range-calendars",
15392
+ children: [
15393
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
15394
+ /* @__PURE__ */ jsxRuntime.jsxs(
15395
+ "div",
15396
+ {
15397
+ className: "mb-3 flex items-center",
15398
+ "data-slot": "date-range-month-header",
15399
+ children: [
15400
+ /* @__PURE__ */ jsxRuntime.jsx(
15401
+ "button",
15402
+ {
15403
+ type: "button",
15404
+ onClick: goToPrevMonth,
15405
+ className: "hover:bg-muted rounded-md p-1 transition-colors",
15406
+ "aria-label": "Previous month",
15407
+ "data-slot": "date-range-nav",
15408
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4" })
15409
+ }
15410
+ ),
15411
+ /* @__PURE__ */ jsxRuntime.jsxs(
15412
+ "div",
15413
+ {
15414
+ className: "flex-1 text-center text-sm font-medium",
15415
+ "data-slot": "date-range-month-label",
15416
+ children: [
15417
+ monthNames[leftMonth],
15418
+ " ",
15419
+ leftYear
15420
+ ]
15421
+ }
15422
+ ),
15423
+ isResponsive && /* @__PURE__ */ jsxRuntime.jsx(
15424
+ "button",
15425
+ {
15426
+ type: "button",
15427
+ onClick: goToNextMonth,
15428
+ className: "hover:bg-muted rounded-md p-1 transition-colors md:hidden",
15429
+ "aria-label": "Next month",
15430
+ "data-slot": "date-range-nav",
15431
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" })
15432
+ }
15433
+ )
15434
+ ]
15435
+ }
15436
+ ),
15437
+ renderMonthGrid(leftMonth, leftYear)
15438
+ ] }),
15439
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkOR5DRJCW_cjs.cn(isResponsive && "hidden md:block"), children: [
15440
+ /* @__PURE__ */ jsxRuntime.jsxs(
15441
+ "div",
15442
+ {
15443
+ className: "mb-3 flex items-center",
15444
+ "data-slot": "date-range-month-header",
15445
+ children: [
15446
+ /* @__PURE__ */ jsxRuntime.jsxs(
15447
+ "div",
15448
+ {
15449
+ className: "flex-1 text-center text-sm font-medium",
15450
+ "data-slot": "date-range-month-label",
15451
+ children: [
15452
+ monthNames[rightMonth],
15453
+ " ",
15454
+ rightYear
15455
+ ]
15456
+ }
15457
+ ),
15458
+ /* @__PURE__ */ jsxRuntime.jsx(
15459
+ "button",
15460
+ {
15461
+ type: "button",
15462
+ onClick: goToNextMonth,
15463
+ className: "hover:bg-muted rounded-md p-1 transition-colors",
15464
+ "aria-label": "Next month",
15465
+ "data-slot": "date-range-nav",
15466
+ children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" })
15467
+ }
15468
+ )
15469
+ ]
15470
+ }
15471
+ ),
15472
+ renderMonthGrid(rightMonth, rightYear)
15473
+ ] })
15474
+ ]
15475
+ }
15476
+ )
15477
+ ] })
15423
15478
  ] })
15424
- ] })
15425
- }
15479
+ }
15480
+ ),
15481
+ document.body
15426
15482
  )
15427
15483
  ]
15428
15484
  }
@@ -15444,7 +15500,7 @@ function DateRangeFilter({
15444
15500
  onChange(range, presetKey);
15445
15501
  };
15446
15502
  return /* @__PURE__ */ jsxRuntime.jsx(
15447
- chunk2JQBPU3Y_cjs.Dropdown,
15503
+ chunkMZPF2QGM_cjs.Dropdown,
15448
15504
  {
15449
15505
  trigger: /* @__PURE__ */ jsxRuntime.jsxs(chunkA2QVQF54_cjs.Button, { variant, size: "md", className, children: [
15450
15506
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Calendar, { className: "mr-2 h-4 w-4" }),
@@ -15454,7 +15510,7 @@ function DateRangeFilter({
15454
15510
  className: "w-56",
15455
15511
  "data-slot": "date-range-filter",
15456
15512
  children: finalPresets.map((preset) => /* @__PURE__ */ jsxRuntime.jsx(
15457
- chunk2JQBPU3Y_cjs.DropdownItem,
15513
+ chunkMZPF2QGM_cjs.DropdownItem,
15458
15514
  {
15459
15515
  onClick: () => handlePresetSelect(preset.key),
15460
15516
  className: chunkOR5DRJCW_cjs.cn(
@@ -16737,7 +16793,7 @@ function DocumentScanner({
16737
16793
  const [error, setError] = React10__namespace.useState(null);
16738
16794
  const [isWebcamOpen, setIsWebcamOpen] = React10__namespace.useState(false);
16739
16795
  const [validationErrors, setValidationErrors] = React10__namespace.useState([]);
16740
- const isMobile = chunkX7J45FU5_cjs.useIsMobile();
16796
+ const isMobile = chunk4GXECTPS_cjs.useIsMobile();
16741
16797
  const cameraInputRef = React10__namespace.useRef(null);
16742
16798
  const {
16743
16799
  files,
@@ -17373,7 +17429,7 @@ function ClaimProviderForm({
17373
17429
  }
17374
17430
  ),
17375
17431
  /* @__PURE__ */ jsxRuntime.jsx(
17376
- chunkYWHSQH7S_cjs.Select,
17432
+ chunkDAPZPT5N_cjs.Select,
17377
17433
  {
17378
17434
  label: "Role at this Organization",
17379
17435
  value: formData.role,
@@ -17403,7 +17459,7 @@ function ClaimProviderForm({
17403
17459
  "data-slot": "claim-form-section",
17404
17460
  className: "space-y-4 border-t border-gray-200 pt-4 dark:border-gray-700",
17405
17461
  children: /* @__PURE__ */ jsxRuntime.jsx(
17406
- chunkYWHSQH7S_cjs.Select,
17462
+ chunkDAPZPT5N_cjs.Select,
17407
17463
  {
17408
17464
  label: "Preferred Language",
17409
17465
  value: formData.preferredLanguage || "en",
@@ -17648,7 +17704,7 @@ function CreateInvoiceModal({
17648
17704
  }
17649
17705
  ),
17650
17706
  /* @__PURE__ */ jsxRuntime.jsx(
17651
- chunkYWHSQH7S_cjs.Select,
17707
+ chunkDAPZPT5N_cjs.Select,
17652
17708
  {
17653
17709
  label: "Employer",
17654
17710
  options: employerOptions,
@@ -18339,7 +18395,7 @@ function EditUserRoleModal({
18339
18395
  )
18340
18396
  ] }) }),
18341
18397
  /* @__PURE__ */ jsxRuntime.jsx(
18342
- chunkYWHSQH7S_cjs.Select,
18398
+ chunkDAPZPT5N_cjs.Select,
18343
18399
  {
18344
18400
  label: "Role",
18345
18401
  value: selectedRoleId,
@@ -18606,7 +18662,7 @@ function EmployeeForm({
18606
18662
  }
18607
18663
  ),
18608
18664
  /* @__PURE__ */ jsxRuntime.jsx(
18609
- chunkYWHSQH7S_cjs.Select,
18665
+ chunkDAPZPT5N_cjs.Select,
18610
18666
  {
18611
18667
  label: selectDepartments,
18612
18668
  value: selectedDepartments[0] ?? "",
@@ -18721,7 +18777,7 @@ function EmployeeForm({
18721
18777
  }
18722
18778
  ) }),
18723
18779
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-32", children: /* @__PURE__ */ jsxRuntime.jsx(
18724
- chunkYWHSQH7S_cjs.Select,
18780
+ chunkDAPZPT5N_cjs.Select,
18725
18781
  {
18726
18782
  label: index === 0 ? "Type" : void 0,
18727
18783
  "aria-label": index > 0 ? "Phone type" : void 0,
@@ -22745,7 +22801,7 @@ function InviteUserModal({
22745
22801
  }
22746
22802
  ),
22747
22803
  /* @__PURE__ */ jsxRuntime.jsx(
22748
- chunkYWHSQH7S_cjs.Select,
22804
+ chunkDAPZPT5N_cjs.Select,
22749
22805
  {
22750
22806
  label: "Role",
22751
22807
  value: roleId,
@@ -23939,16 +23995,13 @@ function LanguageSelector({
23939
23995
  }) {
23940
23996
  const [isOpen, setIsOpen] = React10__namespace.useState(false);
23941
23997
  const containerRef = React10__namespace.useRef(null);
23998
+ const { anchorRef, floatingRef, style } = chunkZDEYV373_cjs.useAnchoredPosition({ open: isOpen, matchMinWidth: true, maxHeight: 240 });
23942
23999
  const selectedLanguage = languages.find((l) => l.code === value);
23943
- React10__namespace.useEffect(() => {
23944
- const handleClickOutside = (e) => {
23945
- if (containerRef.current && !containerRef.current.contains(e.target)) {
23946
- setIsOpen(false);
23947
- }
23948
- };
23949
- document.addEventListener("mousedown", handleClickOutside);
23950
- return () => document.removeEventListener("mousedown", handleClickOutside);
23951
- }, []);
24000
+ const outsideRefs = React10__namespace.useMemo(
24001
+ () => [containerRef, floatingRef],
24002
+ [floatingRef]
24003
+ );
24004
+ chunkFSGEDDF2_cjs.useClickOutside(outsideRefs, () => setIsOpen(false), isOpen);
23952
24005
  React10__namespace.useEffect(() => {
23953
24006
  const handleEscape = (e) => {
23954
24007
  if (e.key === "Escape") setIsOpen(false);
@@ -23963,7 +24016,10 @@ function LanguageSelector({
23963
24016
  return /* @__PURE__ */ jsxRuntime.jsxs(
23964
24017
  "div",
23965
24018
  {
23966
- ref: containerRef,
24019
+ ref: (node) => {
24020
+ containerRef.current = node;
24021
+ anchorRef.current = node;
24022
+ },
23967
24023
  "data-slot": "language-selector",
23968
24024
  className: chunkOR5DRJCW_cjs.cn(selectorVariants({ size }), className),
23969
24025
  children: [
@@ -23999,44 +24055,41 @@ function LanguageSelector({
23999
24055
  ]
24000
24056
  }
24001
24057
  ),
24002
- isOpen && /* @__PURE__ */ jsxRuntime.jsx(
24003
- "div",
24004
- {
24005
- "data-slot": "language-selector-dropdown",
24006
- className: chunkOR5DRJCW_cjs.cn(
24007
- "absolute z-50 mt-1 w-full min-w-[180px] rounded-lg border border-gray-200 bg-white shadow-lg",
24008
- "dark:border-gray-700 dark:bg-gray-800",
24009
- "animate-in fade-in slide-in-from-top-1 duration-150"
24010
- ),
24011
- children: /* @__PURE__ */ jsxRuntime.jsx(
24012
- "ul",
24013
- {
24014
- role: "listbox",
24015
- "aria-label": label,
24016
- className: "max-h-60 overflow-auto py-1",
24017
- children: languages.map((language) => /* @__PURE__ */ jsxRuntime.jsxs(
24018
- "li",
24019
- {
24020
- role: "option",
24021
- "aria-selected": language.code === value,
24022
- onClick: () => handleSelect(language),
24023
- onKeyDown: (e) => e.key === "Enter" && handleSelect(language),
24024
- "data-slot": "language-selector-option",
24025
- className: chunkOR5DRJCW_cjs.cn(
24026
- "flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition-colors",
24027
- language.code === value ? "bg-primary-50 text-primary-700 dark:bg-primary-900/20 dark:text-primary-400" : "text-gray-700 hover:bg-gray-100 dark:text-gray-200 dark:hover:bg-gray-700"
24028
- ),
24029
- children: [
24030
- showFlags && language.flag && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base", children: language.flag }),
24031
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1", children: language.name }),
24032
- language.code === value && /* @__PURE__ */ jsxRuntime.jsx(CheckIcon2, { className: "text-primary-800 dark:text-primary-400 h-4 w-4" })
24033
- ]
24034
- },
24035
- language.code
24036
- ))
24037
- }
24038
- )
24039
- }
24058
+ isOpen && ReactDOM.createPortal(
24059
+ /* @__PURE__ */ jsxRuntime.jsx(
24060
+ "div",
24061
+ {
24062
+ ref: floatingRef,
24063
+ style,
24064
+ "data-slot": "language-selector-dropdown",
24065
+ className: chunkOR5DRJCW_cjs.cn(
24066
+ "min-w-[180px] overflow-auto rounded-lg border border-gray-200 bg-white shadow-lg",
24067
+ "dark:border-gray-700 dark:bg-gray-800",
24068
+ "animate-in fade-in slide-in-from-top-1 duration-150"
24069
+ ),
24070
+ children: /* @__PURE__ */ jsxRuntime.jsx("ul", { role: "listbox", "aria-label": label, className: "py-1", children: languages.map((language) => /* @__PURE__ */ jsxRuntime.jsxs(
24071
+ "li",
24072
+ {
24073
+ role: "option",
24074
+ "aria-selected": language.code === value,
24075
+ onClick: () => handleSelect(language),
24076
+ onKeyDown: (e) => e.key === "Enter" && handleSelect(language),
24077
+ "data-slot": "language-selector-option",
24078
+ className: chunkOR5DRJCW_cjs.cn(
24079
+ "flex cursor-pointer items-center gap-2 px-3 py-2 text-sm transition-colors",
24080
+ language.code === value ? "bg-primary-50 text-primary-700 dark:bg-primary-900/20 dark:text-primary-400" : "text-gray-700 hover:bg-gray-100 dark:text-gray-200 dark:hover:bg-gray-700"
24081
+ ),
24082
+ children: [
24083
+ showFlags && language.flag && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-base", children: language.flag }),
24084
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1", children: language.name }),
24085
+ language.code === value && /* @__PURE__ */ jsxRuntime.jsx(CheckIcon2, { className: "text-primary-800 dark:text-primary-400 h-4 w-4" })
24086
+ ]
24087
+ },
24088
+ language.code
24089
+ )) })
24090
+ }
24091
+ ),
24092
+ document.body
24040
24093
  )
24041
24094
  ]
24042
24095
  }
@@ -26208,7 +26261,7 @@ var defaultOrderTabs = [
26208
26261
  { id: "rejected", label: "Rejected", statuses: ["rejected", "cancelled"] }
26209
26262
  ];
26210
26263
  function orderToMedication(order) {
26211
- const sig = order.detail ? chunkQPOTSLY6_cjs.parseSig(order.detail) : void 0;
26264
+ const sig = order.detail ? chunkJTBQNOSL_cjs.parseSig(order.detail) : void 0;
26212
26265
  return {
26213
26266
  id: order.orderId,
26214
26267
  name: order.display,
@@ -26216,7 +26269,7 @@ function orderToMedication(order) {
26216
26269
  status: "unreconciled",
26217
26270
  indication: order.indication,
26218
26271
  pharmacyNotes: order.notes,
26219
- ...chunkQPOTSLY6_cjs.labelToMedicationFields(order.display),
26272
+ ...chunkJTBQNOSL_cjs.labelToMedicationFields(order.display),
26220
26273
  ...sig && {
26221
26274
  route: sig.route,
26222
26275
  frequency: sig.frequency,
@@ -26287,7 +26340,7 @@ function BaseOrderEditor({
26287
26340
  onSave
26288
26341
  }) {
26289
26342
  const config = TYPE_CONFIG[type];
26290
- const ambientCodeLookup = chunkQPOTSLY6_cjs.useCodeLookupConfig();
26343
+ const ambientCodeLookup = chunkJTBQNOSL_cjs.useCodeLookupConfig();
26291
26344
  const effectiveCodeLookup = codeLookup === false ? void 0 : codeLookup ?? ambientCodeLookup ?? void 0;
26292
26345
  const [draft, setDraft] = React10__namespace.useState(
26293
26346
  () => order ?? {
@@ -26486,7 +26539,7 @@ function OrderEditor({
26486
26539
  display: ""
26487
26540
  };
26488
26541
  return /* @__PURE__ */ jsxRuntime.jsx(
26489
- chunkQPOTSLY6_cjs.MedicationEditor,
26542
+ chunkJTBQNOSL_cjs.MedicationEditor,
26490
26543
  {
26491
26544
  open,
26492
26545
  medication: order ? orderToMedication(order) : void 0,
@@ -27061,9 +27114,15 @@ function PatientOverflowMenu({
27061
27114
  }) {
27062
27115
  const [open, setOpen] = React10__namespace.useState(false);
27063
27116
  const menuRef = React10__namespace.useRef(null);
27064
- chunkIKMR2ADM_cjs.useClickOutside(
27065
- menuRef,
27066
- React10__namespace.useCallback(() => setOpen(false), [])
27117
+ const { anchorRef, floatingRef, style } = chunkZDEYV373_cjs.useAnchoredPosition({ open, placement: "bottom-end" });
27118
+ const outsideRefs = React10__namespace.useMemo(
27119
+ () => [menuRef, floatingRef],
27120
+ [floatingRef]
27121
+ );
27122
+ chunkFSGEDDF2_cjs.useClickOutside(
27123
+ outsideRefs,
27124
+ React10__namespace.useCallback(() => setOpen(false), []),
27125
+ open
27067
27126
  );
27068
27127
  chunkFHY3K6PL_cjs.useEscapeKey(
27069
27128
  React10__namespace.useCallback(() => setOpen(false), []),
@@ -27073,174 +27132,188 @@ function PatientOverflowMenu({
27073
27132
  onAction?.(action);
27074
27133
  setOpen(false);
27075
27134
  };
27076
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", ref: menuRef, children: [
27077
- /* @__PURE__ */ jsxRuntime.jsx(
27078
- chunkA2QVQF54_cjs.Button,
27079
- {
27080
- variant: "ghost",
27081
- size: "icon",
27082
- onClick: () => setOpen(!open),
27083
- "aria-label": "Patient actions menu",
27084
- "aria-haspopup": "menu",
27085
- "aria-expanded": open,
27086
- className: "h-8 w-8",
27087
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.MoreVertical, { size: 18 })
27088
- }
27089
- ),
27090
- open && /* @__PURE__ */ jsxRuntime.jsx(
27091
- "div",
27092
- {
27093
- role: "menu",
27094
- "aria-label": "Patient actions",
27095
- className: chunkOR5DRJCW_cjs.cn(
27096
- "absolute top-full right-0 z-50 mt-1",
27097
- "w-[calc(100vw_-_2rem)] md:w-auto",
27098
- "border-border bg-card rounded-xl border py-1 shadow-lg",
27099
- "max-h-[calc(100vh_-_3rem)] overflow-y-auto md:max-h-[calc(100vh_-_4rem)]",
27100
- "motion-safe:animate-fade-in"
27135
+ return /* @__PURE__ */ jsxRuntime.jsxs(
27136
+ "div",
27137
+ {
27138
+ className: "relative",
27139
+ ref: (node) => {
27140
+ menuRef.current = node;
27141
+ anchorRef.current = node;
27142
+ },
27143
+ children: [
27144
+ /* @__PURE__ */ jsxRuntime.jsx(
27145
+ chunkA2QVQF54_cjs.Button,
27146
+ {
27147
+ variant: "ghost",
27148
+ size: "icon",
27149
+ onClick: () => setOpen(!open),
27150
+ "aria-label": "Patient actions menu",
27151
+ "aria-haspopup": "menu",
27152
+ "aria-expanded": open,
27153
+ className: "h-8 w-8",
27154
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.MoreVertical, { size: 18 })
27155
+ }
27101
27156
  ),
27102
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row", children: [
27103
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-[13rem]", children: [
27104
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-1.5", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-[11px] font-semibold tracking-wide uppercase", children: "Quick Actions" }) }),
27105
- /* @__PURE__ */ jsxRuntime.jsx(
27106
- OverflowMenuItem,
27107
- {
27108
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Pencil, { size: 15 }),
27109
- label: "Edit Patient",
27110
- onClick: () => handleAction("edit-patient")
27111
- }
27112
- ),
27113
- /* @__PURE__ */ jsxRuntime.jsx(
27114
- OverflowMenuItem,
27115
- {
27116
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Phone, { size: 15 }),
27117
- label: "Contact",
27118
- onClick: () => handleAction("contact")
27119
- }
27120
- ),
27121
- /* @__PURE__ */ jsxRuntime.jsx(
27122
- OverflowMenuItem,
27123
- {
27124
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Send, { size: 15 }),
27125
- label: "Send Message",
27126
- onClick: () => handleAction("send-message")
27127
- }
27128
- ),
27129
- /* @__PURE__ */ jsxRuntime.jsx(
27130
- OverflowMenuItem,
27131
- {
27132
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Calendar, { size: 15 }),
27133
- label: "Schedule Appointment",
27134
- onClick: () => handleAction("schedule-appointment")
27135
- }
27136
- ),
27137
- /* @__PURE__ */ jsxRuntime.jsx(
27138
- OverflowMenuItem,
27139
- {
27140
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Printer, { size: 15 }),
27141
- label: "Print Summary",
27142
- onClick: () => handleAction("print-summary")
27143
- }
27144
- ),
27145
- /* @__PURE__ */ jsxRuntime.jsx(
27146
- OverflowMenuItem,
27147
- {
27148
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Download, { size: 15 }),
27149
- label: "Export Record",
27150
- onClick: () => handleAction("export-record")
27151
- }
27152
- )
27153
- ] }),
27154
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-border my-1 border-t md:my-0 md:border-t-0 md:border-l" }),
27155
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "md:min-w-[26rem]", children: [
27156
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-1.5", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-[11px] font-semibold tracking-wide uppercase", children: "Add" }) }),
27157
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-1 md:grid-cols-2 md:gap-2", children: [
27158
- /* @__PURE__ */ jsxRuntime.jsx(
27159
- OverflowMenuItem,
27160
- {
27161
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.ClipboardPlus, { size: 15 }),
27162
- label: "Task",
27163
- onClick: () => handleAction("add-task")
27164
- }
27165
- ),
27166
- /* @__PURE__ */ jsxRuntime.jsx(
27167
- OverflowMenuItem,
27168
- {
27169
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Stethoscope, { size: 15 }),
27170
- label: "Encounter",
27171
- onClick: () => handleAction("add-encounter")
27172
- }
27173
- ),
27174
- /* @__PURE__ */ jsxRuntime.jsx(
27175
- OverflowMenuItem,
27176
- {
27177
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.ClipboardCheck, { size: 15 }),
27178
- label: "Due List Item",
27179
- onClick: () => handleAction("add-due-list")
27180
- }
27181
- ),
27182
- /* @__PURE__ */ jsxRuntime.jsx(
27183
- OverflowMenuItem,
27184
- {
27185
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.FilePlus, { size: 15 }),
27186
- label: "Order Request",
27187
- onClick: () => handleAction("add-order")
27188
- }
27189
- ),
27190
- /* @__PURE__ */ jsxRuntime.jsx(
27191
- OverflowMenuItem,
27192
- {
27193
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.FileCheck, { size: 15 }),
27194
- label: "eSign Request",
27195
- onClick: () => handleAction("add-esign")
27196
- }
27197
- ),
27198
- /* @__PURE__ */ jsxRuntime.jsx(
27199
- OverflowMenuItem,
27200
- {
27201
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Wheat, { size: 15 }),
27202
- label: "Allergy",
27203
- onClick: () => handleAction("add-allergy")
27204
- }
27205
- ),
27206
- /* @__PURE__ */ jsxRuntime.jsx(
27207
- OverflowMenuItem,
27208
- {
27209
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Pill, { size: 15 }),
27210
- label: "Medication",
27211
- onClick: () => handleAction("add-medication")
27212
- }
27213
- ),
27214
- /* @__PURE__ */ jsxRuntime.jsx(
27215
- OverflowMenuItem,
27216
- {
27217
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Bell, { size: 15 }),
27218
- label: "Alert",
27219
- onClick: () => handleAction("add-alert")
27220
- }
27221
- ),
27222
- /* @__PURE__ */ jsxRuntime.jsx(
27223
- OverflowMenuItem,
27224
- {
27225
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.FileHeart, { size: 15 }),
27226
- label: "Condition",
27227
- onClick: () => handleAction("add-condition")
27228
- }
27157
+ open && ReactDOM.createPortal(
27158
+ /* @__PURE__ */ jsxRuntime.jsx(
27159
+ "div",
27160
+ {
27161
+ ref: floatingRef,
27162
+ style,
27163
+ role: "menu",
27164
+ "aria-label": "Patient actions",
27165
+ className: chunkOR5DRJCW_cjs.cn(
27166
+ "w-[calc(100vw_-_2rem)] md:w-auto",
27167
+ "border-border bg-card rounded-xl border py-1 shadow-lg",
27168
+ "overflow-y-auto",
27169
+ "motion-safe:animate-fade-in"
27229
27170
  ),
27230
- /* @__PURE__ */ jsxRuntime.jsx(
27231
- OverflowMenuItem,
27232
- {
27233
- icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.HeartPulse, { size: 15 }),
27234
- label: "Vitals",
27235
- onClick: () => handleAction("add-vitals")
27236
- }
27237
- )
27238
- ] })
27239
- ] })
27240
- ] })
27241
- }
27242
- )
27243
- ] });
27171
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col md:flex-row", children: [
27172
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-[13rem]", children: [
27173
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-1.5", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-[11px] font-semibold tracking-wide uppercase", children: "Quick Actions" }) }),
27174
+ /* @__PURE__ */ jsxRuntime.jsx(
27175
+ OverflowMenuItem,
27176
+ {
27177
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Pencil, { size: 15 }),
27178
+ label: "Edit Patient",
27179
+ onClick: () => handleAction("edit-patient")
27180
+ }
27181
+ ),
27182
+ /* @__PURE__ */ jsxRuntime.jsx(
27183
+ OverflowMenuItem,
27184
+ {
27185
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Phone, { size: 15 }),
27186
+ label: "Contact",
27187
+ onClick: () => handleAction("contact")
27188
+ }
27189
+ ),
27190
+ /* @__PURE__ */ jsxRuntime.jsx(
27191
+ OverflowMenuItem,
27192
+ {
27193
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Send, { size: 15 }),
27194
+ label: "Send Message",
27195
+ onClick: () => handleAction("send-message")
27196
+ }
27197
+ ),
27198
+ /* @__PURE__ */ jsxRuntime.jsx(
27199
+ OverflowMenuItem,
27200
+ {
27201
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Calendar, { size: 15 }),
27202
+ label: "Schedule Appointment",
27203
+ onClick: () => handleAction("schedule-appointment")
27204
+ }
27205
+ ),
27206
+ /* @__PURE__ */ jsxRuntime.jsx(
27207
+ OverflowMenuItem,
27208
+ {
27209
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Printer, { size: 15 }),
27210
+ label: "Print Summary",
27211
+ onClick: () => handleAction("print-summary")
27212
+ }
27213
+ ),
27214
+ /* @__PURE__ */ jsxRuntime.jsx(
27215
+ OverflowMenuItem,
27216
+ {
27217
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Download, { size: 15 }),
27218
+ label: "Export Record",
27219
+ onClick: () => handleAction("export-record")
27220
+ }
27221
+ )
27222
+ ] }),
27223
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-border my-1 border-t md:my-0 md:border-t-0 md:border-l" }),
27224
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "md:min-w-[26rem]", children: [
27225
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-1.5", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground text-[11px] font-semibold tracking-wide uppercase", children: "Add" }) }),
27226
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-1 md:grid-cols-2 md:gap-2", children: [
27227
+ /* @__PURE__ */ jsxRuntime.jsx(
27228
+ OverflowMenuItem,
27229
+ {
27230
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.ClipboardPlus, { size: 15 }),
27231
+ label: "Task",
27232
+ onClick: () => handleAction("add-task")
27233
+ }
27234
+ ),
27235
+ /* @__PURE__ */ jsxRuntime.jsx(
27236
+ OverflowMenuItem,
27237
+ {
27238
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Stethoscope, { size: 15 }),
27239
+ label: "Encounter",
27240
+ onClick: () => handleAction("add-encounter")
27241
+ }
27242
+ ),
27243
+ /* @__PURE__ */ jsxRuntime.jsx(
27244
+ OverflowMenuItem,
27245
+ {
27246
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.ClipboardCheck, { size: 15 }),
27247
+ label: "Due List Item",
27248
+ onClick: () => handleAction("add-due-list")
27249
+ }
27250
+ ),
27251
+ /* @__PURE__ */ jsxRuntime.jsx(
27252
+ OverflowMenuItem,
27253
+ {
27254
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.FilePlus, { size: 15 }),
27255
+ label: "Order Request",
27256
+ onClick: () => handleAction("add-order")
27257
+ }
27258
+ ),
27259
+ /* @__PURE__ */ jsxRuntime.jsx(
27260
+ OverflowMenuItem,
27261
+ {
27262
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.FileCheck, { size: 15 }),
27263
+ label: "eSign Request",
27264
+ onClick: () => handleAction("add-esign")
27265
+ }
27266
+ ),
27267
+ /* @__PURE__ */ jsxRuntime.jsx(
27268
+ OverflowMenuItem,
27269
+ {
27270
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Wheat, { size: 15 }),
27271
+ label: "Allergy",
27272
+ onClick: () => handleAction("add-allergy")
27273
+ }
27274
+ ),
27275
+ /* @__PURE__ */ jsxRuntime.jsx(
27276
+ OverflowMenuItem,
27277
+ {
27278
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Pill, { size: 15 }),
27279
+ label: "Medication",
27280
+ onClick: () => handleAction("add-medication")
27281
+ }
27282
+ ),
27283
+ /* @__PURE__ */ jsxRuntime.jsx(
27284
+ OverflowMenuItem,
27285
+ {
27286
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Bell, { size: 15 }),
27287
+ label: "Alert",
27288
+ onClick: () => handleAction("add-alert")
27289
+ }
27290
+ ),
27291
+ /* @__PURE__ */ jsxRuntime.jsx(
27292
+ OverflowMenuItem,
27293
+ {
27294
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.FileHeart, { size: 15 }),
27295
+ label: "Condition",
27296
+ onClick: () => handleAction("add-condition")
27297
+ }
27298
+ ),
27299
+ /* @__PURE__ */ jsxRuntime.jsx(
27300
+ OverflowMenuItem,
27301
+ {
27302
+ icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.HeartPulse, { size: 15 }),
27303
+ label: "Vitals",
27304
+ onClick: () => handleAction("add-vitals")
27305
+ }
27306
+ )
27307
+ ] })
27308
+ ] })
27309
+ ] })
27310
+ }
27311
+ ),
27312
+ document.body
27313
+ )
27314
+ ]
27315
+ }
27316
+ );
27244
27317
  }
27245
27318
  function AlertRow({ comments }) {
27246
27319
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -29119,7 +29192,7 @@ function RelevanceControl({
29119
29192
  {
29120
29193
  role: "toolbar",
29121
29194
  "aria-label": `Relevance for ${labelPrefix}`,
29122
- onKeyDown: chunkQPOTSLY6_cjs.toolbarKeyNav,
29195
+ onKeyDown: chunkJTBQNOSL_cjs.toolbarKeyNav,
29123
29196
  className: "border-border flex shrink-0 items-center overflow-hidden rounded-md border",
29124
29197
  children: RELEVANCE_ORDER.map((relevance) => {
29125
29198
  const active = value === relevance;
@@ -31976,15 +32049,12 @@ function ServiceMultiSelect({
31976
32049
  const containerRef = React10__namespace.useRef(null);
31977
32050
  const inputRef = React10__namespace.useRef(null);
31978
32051
  const listboxId = React10__namespace.useId();
31979
- React10__namespace.useEffect(() => {
31980
- function handleClickOutside(event) {
31981
- if (containerRef.current && !containerRef.current.contains(event.target)) {
31982
- setIsOpen(false);
31983
- }
31984
- }
31985
- document.addEventListener("mousedown", handleClickOutside);
31986
- return () => document.removeEventListener("mousedown", handleClickOutside);
31987
- }, []);
32052
+ const { anchorRef, floatingRef, style } = chunkZDEYV373_cjs.useAnchoredPosition({ open: isOpen, matchWidth: true, maxHeight: 240 });
32053
+ const outsideRefs = React10__namespace.useMemo(
32054
+ () => [containerRef, floatingRef],
32055
+ [floatingRef]
32056
+ );
32057
+ chunkFSGEDDF2_cjs.useClickOutside(outsideRefs, () => setIsOpen(false), isOpen);
31988
32058
  const filteredServices = React10__namespace.useMemo(() => {
31989
32059
  if (!searchTerm) return services;
31990
32060
  const lowerSearch = searchTerm.toLowerCase();
@@ -32025,7 +32095,10 @@ function ServiceMultiSelect({
32025
32095
  return /* @__PURE__ */ jsxRuntime.jsxs(
32026
32096
  "div",
32027
32097
  {
32028
- ref: containerRef,
32098
+ ref: (node) => {
32099
+ containerRef.current = node;
32100
+ anchorRef.current = node;
32101
+ },
32029
32102
  className: "relative",
32030
32103
  "data-slot": "provider-service-select",
32031
32104
  children: [
@@ -32057,99 +32130,106 @@ function ServiceMultiSelect({
32057
32130
  children: selectedServices.length > 0 ? `${selectedServices.length} service${selectedServices.length > 1 ? "s" : ""} selected` : placeholder
32058
32131
  }
32059
32132
  ) }),
32060
- isOpen && /* @__PURE__ */ jsxRuntime.jsxs(
32061
- "div",
32062
- {
32063
- className: chunkOR5DRJCW_cjs.cn(
32064
- "absolute z-50 mt-1 w-full rounded-md border border-neutral-200 bg-white shadow-lg",
32065
- "dark:border-neutral-700 dark:bg-neutral-800",
32066
- "max-h-60 overflow-auto"
32067
- ),
32068
- role: "listbox",
32069
- id: listboxId,
32070
- "aria-multiselectable": "true",
32071
- children: [
32072
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-0 border-b border-neutral-200 bg-white p-2 dark:border-neutral-700 dark:bg-neutral-800", children: [
32073
- /* @__PURE__ */ jsxRuntime.jsx(
32074
- "input",
32133
+ isOpen && ReactDOM.createPortal(
32134
+ /* @__PURE__ */ jsxRuntime.jsxs(
32135
+ "div",
32136
+ {
32137
+ ref: floatingRef,
32138
+ style,
32139
+ className: chunkOR5DRJCW_cjs.cn(
32140
+ "rounded-md border border-neutral-200 bg-white shadow-lg",
32141
+ "dark:border-neutral-700 dark:bg-neutral-800",
32142
+ "overflow-auto"
32143
+ ),
32144
+ role: "listbox",
32145
+ id: listboxId,
32146
+ "aria-multiselectable": "true",
32147
+ children: [
32148
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-0 border-b border-neutral-200 bg-white p-2 dark:border-neutral-700 dark:bg-neutral-800", children: [
32149
+ /* @__PURE__ */ jsxRuntime.jsx(
32150
+ "input",
32151
+ {
32152
+ ref: inputRef,
32153
+ type: "text",
32154
+ value: searchTerm,
32155
+ onChange: (e) => setSearchTerm(e.target.value),
32156
+ placeholder: "Search services...",
32157
+ className: chunkOR5DRJCW_cjs.cn(inputVariants3({ hasIcon: true }), "pl-8"),
32158
+ autoFocus: true
32159
+ }
32160
+ ),
32161
+ /* @__PURE__ */ jsxRuntime.jsx(SearchIcon4, { className: "absolute top-1/2 left-4 -translate-y-1/2 text-neutral-400" })
32162
+ ] }),
32163
+ Object.entries(groupedServices).length > 0 ? Object.entries(groupedServices).map(
32164
+ ([category, categoryServices]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
32165
+ services.some((s) => s.category) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-neutral-50 px-3 py-2 text-xs font-semibold tracking-wider text-neutral-500 uppercase dark:bg-neutral-900 dark:text-neutral-400", children: category }),
32166
+ categoryServices.map((service) => {
32167
+ const isSelected = selectedServices.includes(
32168
+ service.value
32169
+ );
32170
+ return /* @__PURE__ */ jsxRuntime.jsxs(
32171
+ "button",
32172
+ {
32173
+ type: "button",
32174
+ role: "option",
32175
+ "aria-selected": isSelected,
32176
+ onClick: () => handleToggleService(service.value),
32177
+ className: chunkOR5DRJCW_cjs.cn(
32178
+ "flex w-full items-center justify-between px-3 py-2 text-left text-sm",
32179
+ "hover:bg-neutral-100 dark:hover:bg-neutral-700",
32180
+ isSelected && "bg-primary-50 dark:bg-primary-900/20"
32181
+ ),
32182
+ children: [
32183
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
32184
+ /* @__PURE__ */ jsxRuntime.jsx(
32185
+ "span",
32186
+ {
32187
+ className: chunkOR5DRJCW_cjs.cn(
32188
+ "flex h-4 w-4 items-center justify-center rounded border",
32189
+ isSelected ? "bg-primary-800 border-primary-500 text-white" : "border-neutral-300 dark:border-neutral-600"
32190
+ ),
32191
+ children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(
32192
+ "svg",
32193
+ {
32194
+ "aria-hidden": "true",
32195
+ className: "h-3 w-3",
32196
+ viewBox: "0 0 12 12",
32197
+ fill: "currentColor",
32198
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.28 2.28L4.75 7.81 1.72 4.78a.75.75 0 00-1.06 1.06l3.75 3.75a.75.75 0 001.06 0l6.25-6.25a.75.75 0 00-1.06-1.06z" })
32199
+ }
32200
+ )
32201
+ }
32202
+ ),
32203
+ service.label
32204
+ ] }),
32205
+ showCounts && service.count !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-neutral-400", children: [
32206
+ "(",
32207
+ service.count,
32208
+ ")"
32209
+ ] })
32210
+ ]
32211
+ },
32212
+ service.value
32213
+ );
32214
+ })
32215
+ ] }, category)
32216
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground px-3 py-4 text-center text-sm", children: "No services found" }),
32217
+ selectedServices.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky bottom-0 border-t border-neutral-200 bg-white p-2 dark:border-neutral-700 dark:bg-neutral-800", children: /* @__PURE__ */ jsxRuntime.jsx(
32218
+ "button",
32075
32219
  {
32076
- ref: inputRef,
32077
- type: "text",
32078
- value: searchTerm,
32079
- onChange: (e) => setSearchTerm(e.target.value),
32080
- placeholder: "Search services...",
32081
- className: chunkOR5DRJCW_cjs.cn(inputVariants3({ hasIcon: true }), "pl-8"),
32082
- autoFocus: true
32220
+ type: "button",
32221
+ onClick: () => onSelectionChange([]),
32222
+ className: chunkOR5DRJCW_cjs.cn(
32223
+ "w-full rounded-md px-3 py-2 text-center text-sm",
32224
+ "text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/20"
32225
+ ),
32226
+ children: "Clear selection"
32083
32227
  }
32084
- ),
32085
- /* @__PURE__ */ jsxRuntime.jsx(SearchIcon4, { className: "absolute top-1/2 left-4 -translate-y-1/2 text-neutral-400" })
32086
- ] }),
32087
- Object.entries(groupedServices).length > 0 ? Object.entries(groupedServices).map(
32088
- ([category, categoryServices]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
32089
- services.some((s) => s.category) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "bg-neutral-50 px-3 py-2 text-xs font-semibold tracking-wider text-neutral-500 uppercase dark:bg-neutral-900 dark:text-neutral-400", children: category }),
32090
- categoryServices.map((service) => {
32091
- const isSelected = selectedServices.includes(service.value);
32092
- return /* @__PURE__ */ jsxRuntime.jsxs(
32093
- "button",
32094
- {
32095
- type: "button",
32096
- role: "option",
32097
- "aria-selected": isSelected,
32098
- onClick: () => handleToggleService(service.value),
32099
- className: chunkOR5DRJCW_cjs.cn(
32100
- "flex w-full items-center justify-between px-3 py-2 text-left text-sm",
32101
- "hover:bg-neutral-100 dark:hover:bg-neutral-700",
32102
- isSelected && "bg-primary-50 dark:bg-primary-900/20"
32103
- ),
32104
- children: [
32105
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-2", children: [
32106
- /* @__PURE__ */ jsxRuntime.jsx(
32107
- "span",
32108
- {
32109
- className: chunkOR5DRJCW_cjs.cn(
32110
- "flex h-4 w-4 items-center justify-center rounded border",
32111
- isSelected ? "bg-primary-800 border-primary-500 text-white" : "border-neutral-300 dark:border-neutral-600"
32112
- ),
32113
- children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(
32114
- "svg",
32115
- {
32116
- "aria-hidden": "true",
32117
- className: "h-3 w-3",
32118
- viewBox: "0 0 12 12",
32119
- fill: "currentColor",
32120
- children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.28 2.28L4.75 7.81 1.72 4.78a.75.75 0 00-1.06 1.06l3.75 3.75a.75.75 0 001.06 0l6.25-6.25a.75.75 0 00-1.06-1.06z" })
32121
- }
32122
- )
32123
- }
32124
- ),
32125
- service.label
32126
- ] }),
32127
- showCounts && service.count !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-neutral-400", children: [
32128
- "(",
32129
- service.count,
32130
- ")"
32131
- ] })
32132
- ]
32133
- },
32134
- service.value
32135
- );
32136
- })
32137
- ] }, category)
32138
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground px-3 py-4 text-center text-sm", children: "No services found" }),
32139
- selectedServices.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky bottom-0 border-t border-neutral-200 bg-white p-2 dark:border-neutral-700 dark:bg-neutral-800", children: /* @__PURE__ */ jsxRuntime.jsx(
32140
- "button",
32141
- {
32142
- type: "button",
32143
- onClick: () => onSelectionChange([]),
32144
- className: chunkOR5DRJCW_cjs.cn(
32145
- "w-full rounded-md px-3 py-2 text-center text-sm",
32146
- "text-red-600 hover:bg-red-50 dark:text-red-400 dark:hover:bg-red-900/20"
32147
- ),
32148
- children: "Clear selection"
32149
- }
32150
- ) })
32151
- ]
32152
- }
32228
+ ) })
32229
+ ]
32230
+ }
32231
+ ),
32232
+ document.body
32153
32233
  )
32154
32234
  ]
32155
32235
  }
@@ -32510,15 +32590,12 @@ function ProviderSelector({
32510
32590
  const [isOpen, setIsOpen] = React10__namespace.useState(false);
32511
32591
  const [searchQuery, setSearchQuery] = React10__namespace.useState("");
32512
32592
  const containerRef = React10__namespace.useRef(null);
32513
- React10__namespace.useEffect(() => {
32514
- function handleClickOutside(event) {
32515
- if (containerRef.current && !containerRef.current.contains(event.target)) {
32516
- setIsOpen(false);
32517
- }
32518
- }
32519
- document.addEventListener("mousedown", handleClickOutside);
32520
- return () => document.removeEventListener("mousedown", handleClickOutside);
32521
- }, []);
32593
+ const { anchorRef, floatingRef, style } = chunkZDEYV373_cjs.useAnchoredPosition({ open: isOpen, matchWidth: true });
32594
+ const outsideRefs = React10__namespace.useMemo(
32595
+ () => [containerRef, floatingRef],
32596
+ [floatingRef]
32597
+ );
32598
+ chunkFSGEDDF2_cjs.useClickOutside(outsideRefs, () => setIsOpen(false), isOpen);
32522
32599
  React10__namespace.useEffect(() => {
32523
32600
  function handleEscape(event) {
32524
32601
  if (event.key === "Escape") {
@@ -32557,7 +32634,10 @@ function ProviderSelector({
32557
32634
  {
32558
32635
  "data-slot": "provider-selector",
32559
32636
  className: chunkOR5DRJCW_cjs.cn("relative", className),
32560
- ref: containerRef,
32637
+ ref: (node) => {
32638
+ containerRef.current = node;
32639
+ anchorRef.current = node;
32640
+ },
32561
32641
  children: [
32562
32642
  label && /* @__PURE__ */ jsxRuntime.jsx(
32563
32643
  "label",
@@ -32678,138 +32758,143 @@ function ProviderSelector({
32678
32758
  ]
32679
32759
  }
32680
32760
  ),
32681
- isOpen && /* @__PURE__ */ jsxRuntime.jsxs(
32682
- "div",
32683
- {
32684
- "data-slot": "provider-selector-dropdown",
32685
- className: "border-border bg-card absolute z-50 mt-1 w-full overflow-hidden rounded-lg border shadow-lg",
32686
- children: [
32687
- searchable && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-border border-b p-2", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
32688
- /* @__PURE__ */ jsxRuntime.jsx(
32689
- "svg",
32690
- {
32691
- "aria-hidden": "true",
32692
- className: "text-muted-foreground absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2",
32693
- fill: "none",
32694
- viewBox: "0 0 24 24",
32695
- stroke: "currentColor",
32696
- children: /* @__PURE__ */ jsxRuntime.jsx(
32697
- "path",
32698
- {
32699
- strokeLinecap: "round",
32700
- strokeLinejoin: "round",
32701
- strokeWidth: 2,
32702
- d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
32703
- }
32704
- )
32705
- }
32706
- ),
32707
- /* @__PURE__ */ jsxRuntime.jsx(
32708
- "input",
32709
- {
32710
- type: "text",
32711
- "data-slot": "provider-selector-search",
32712
- placeholder: searchPlaceholder,
32713
- value: searchQuery,
32714
- onChange: (e) => setSearchQuery(e.target.value),
32715
- className: "border-input bg-background text-foreground placeholder:text-muted-foreground focus:ring-ring w-full rounded-md border py-2 pr-4 pl-9 text-sm focus:ring-1 focus:outline-none",
32716
- autoFocus: true
32717
- }
32718
- )
32719
- ] }) }),
32720
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-64 overflow-y-auto", children: filteredProviders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground px-4 py-6 text-center", children: "No providers found" }) : filteredProviders.map((provider) => /* @__PURE__ */ jsxRuntime.jsxs(
32721
- "button",
32722
- {
32723
- type: "button",
32724
- "data-slot": "provider-selector-option",
32725
- onClick: () => handleSelect(provider),
32726
- className: chunkOR5DRJCW_cjs.cn(
32727
- "flex w-full items-center gap-3 px-4 py-3 text-left transition-colors",
32728
- "hover:bg-muted",
32729
- selectedProvider?.id === provider.id && "bg-primary/10"
32761
+ isOpen && ReactDOM.createPortal(
32762
+ /* @__PURE__ */ jsxRuntime.jsxs(
32763
+ "div",
32764
+ {
32765
+ ref: floatingRef,
32766
+ style,
32767
+ "data-slot": "provider-selector-dropdown",
32768
+ className: "border-border bg-card flex flex-col overflow-hidden rounded-lg border shadow-lg",
32769
+ children: [
32770
+ searchable && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-border shrink-0 border-b p-2", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
32771
+ /* @__PURE__ */ jsxRuntime.jsx(
32772
+ "svg",
32773
+ {
32774
+ "aria-hidden": "true",
32775
+ className: "text-muted-foreground absolute top-1/2 left-3 h-4 w-4 -translate-y-1/2",
32776
+ fill: "none",
32777
+ viewBox: "0 0 24 24",
32778
+ stroke: "currentColor",
32779
+ children: /* @__PURE__ */ jsxRuntime.jsx(
32780
+ "path",
32781
+ {
32782
+ strokeLinecap: "round",
32783
+ strokeLinejoin: "round",
32784
+ strokeWidth: 2,
32785
+ d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
32786
+ }
32787
+ )
32788
+ }
32730
32789
  ),
32731
- children: [
32732
- provider.logoUrl ? /* @__PURE__ */ jsxRuntime.jsx(
32733
- "img",
32734
- {
32735
- "data-slot": "provider-selector-option-avatar",
32736
- src: provider.logoUrl,
32737
- alt: provider.name,
32738
- className: "h-8 w-8 rounded object-cover"
32739
- }
32740
- ) : /* @__PURE__ */ jsxRuntime.jsx(
32741
- "div",
32742
- {
32743
- "data-slot": "provider-selector-option-avatar",
32744
- className: "bg-muted text-muted-foreground flex h-8 w-8 items-center justify-center rounded text-sm font-medium",
32745
- children: getInitials2(provider.name)
32746
- }
32790
+ /* @__PURE__ */ jsxRuntime.jsx(
32791
+ "input",
32792
+ {
32793
+ type: "text",
32794
+ "data-slot": "provider-selector-search",
32795
+ placeholder: searchPlaceholder,
32796
+ value: searchQuery,
32797
+ onChange: (e) => setSearchQuery(e.target.value),
32798
+ className: "border-input bg-background text-foreground placeholder:text-muted-foreground focus:ring-ring w-full rounded-md border py-2 pr-4 pl-9 text-sm focus:ring-1 focus:outline-none",
32799
+ autoFocus: true
32800
+ }
32801
+ )
32802
+ ] }) }),
32803
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-h-64 min-h-0 overflow-y-auto", children: filteredProviders.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground px-4 py-6 text-center", children: "No providers found" }) : filteredProviders.map((provider) => /* @__PURE__ */ jsxRuntime.jsxs(
32804
+ "button",
32805
+ {
32806
+ type: "button",
32807
+ "data-slot": "provider-selector-option",
32808
+ onClick: () => handleSelect(provider),
32809
+ className: chunkOR5DRJCW_cjs.cn(
32810
+ "flex w-full items-center gap-3 px-4 py-3 text-left transition-colors",
32811
+ "hover:bg-muted",
32812
+ selectedProvider?.id === provider.id && "bg-primary/10"
32747
32813
  ),
32748
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
32749
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
32750
- /* @__PURE__ */ jsxRuntime.jsx(
32751
- "span",
32752
- {
32753
- "data-slot": "provider-selector-option-name",
32754
- className: "text-foreground font-medium",
32755
- children: provider.name
32756
- }
32757
- ),
32758
- provider.code && /* @__PURE__ */ jsxRuntime.jsxs(
32759
- "span",
32760
- {
32761
- "data-slot": "provider-selector-option-code",
32762
- className: "text-xs text-neutral-600 dark:text-neutral-400",
32763
- children: [
32764
- "(",
32765
- provider.code,
32766
- ")"
32767
- ]
32768
- }
32769
- ),
32770
- provider.isActive === false && /* @__PURE__ */ jsxRuntime.jsx(
32771
- "span",
32814
+ children: [
32815
+ provider.logoUrl ? /* @__PURE__ */ jsxRuntime.jsx(
32816
+ "img",
32817
+ {
32818
+ "data-slot": "provider-selector-option-avatar",
32819
+ src: provider.logoUrl,
32820
+ alt: provider.name,
32821
+ className: "h-8 w-8 rounded object-cover"
32822
+ }
32823
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
32824
+ "div",
32825
+ {
32826
+ "data-slot": "provider-selector-option-avatar",
32827
+ className: "bg-muted text-muted-foreground flex h-8 w-8 items-center justify-center rounded text-sm font-medium",
32828
+ children: getInitials2(provider.name)
32829
+ }
32830
+ ),
32831
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
32832
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
32833
+ /* @__PURE__ */ jsxRuntime.jsx(
32834
+ "span",
32835
+ {
32836
+ "data-slot": "provider-selector-option-name",
32837
+ className: "text-foreground font-medium",
32838
+ children: provider.name
32839
+ }
32840
+ ),
32841
+ provider.code && /* @__PURE__ */ jsxRuntime.jsxs(
32842
+ "span",
32843
+ {
32844
+ "data-slot": "provider-selector-option-code",
32845
+ className: "text-xs text-neutral-600 dark:text-neutral-400",
32846
+ children: [
32847
+ "(",
32848
+ provider.code,
32849
+ ")"
32850
+ ]
32851
+ }
32852
+ ),
32853
+ provider.isActive === false && /* @__PURE__ */ jsxRuntime.jsx(
32854
+ "span",
32855
+ {
32856
+ "data-slot": "provider-selector-option-badge",
32857
+ className: "bg-muted rounded px-1.5 py-0.5 text-xs font-medium text-neutral-600 dark:text-neutral-400",
32858
+ children: "Inactive"
32859
+ }
32860
+ )
32861
+ ] }),
32862
+ (provider.location || provider.type) && /* @__PURE__ */ jsxRuntime.jsx(
32863
+ "div",
32772
32864
  {
32773
- "data-slot": "provider-selector-option-badge",
32774
- className: "bg-muted rounded px-1.5 py-0.5 text-xs font-medium text-neutral-600 dark:text-neutral-400",
32775
- children: "Inactive"
32865
+ "data-slot": "provider-selector-option-detail",
32866
+ className: "text-muted-foreground truncate text-sm",
32867
+ children: [provider.type, provider.location].filter(Boolean).join(" \u2022 ")
32776
32868
  }
32777
32869
  )
32778
32870
  ] }),
32779
- (provider.location || provider.type) && /* @__PURE__ */ jsxRuntime.jsx(
32780
- "div",
32871
+ selectedProvider?.id === provider.id && /* @__PURE__ */ jsxRuntime.jsx(
32872
+ "svg",
32781
32873
  {
32782
- "data-slot": "provider-selector-option-detail",
32783
- className: "text-muted-foreground truncate text-sm",
32784
- children: [provider.type, provider.location].filter(Boolean).join(" \u2022 ")
32874
+ "aria-hidden": "true",
32875
+ className: "text-primary-800 dark:text-primary-400 h-5 w-5 flex-shrink-0",
32876
+ fill: "none",
32877
+ viewBox: "0 0 24 24",
32878
+ stroke: "currentColor",
32879
+ children: /* @__PURE__ */ jsxRuntime.jsx(
32880
+ "path",
32881
+ {
32882
+ strokeLinecap: "round",
32883
+ strokeLinejoin: "round",
32884
+ strokeWidth: 2,
32885
+ d: "M5 13l4 4L19 7"
32886
+ }
32887
+ )
32785
32888
  }
32786
32889
  )
32787
- ] }),
32788
- selectedProvider?.id === provider.id && /* @__PURE__ */ jsxRuntime.jsx(
32789
- "svg",
32790
- {
32791
- "aria-hidden": "true",
32792
- className: "text-primary-800 dark:text-primary-400 h-5 w-5 flex-shrink-0",
32793
- fill: "none",
32794
- viewBox: "0 0 24 24",
32795
- stroke: "currentColor",
32796
- children: /* @__PURE__ */ jsxRuntime.jsx(
32797
- "path",
32798
- {
32799
- strokeLinecap: "round",
32800
- strokeLinejoin: "round",
32801
- strokeWidth: 2,
32802
- d: "M5 13l4 4L19 7"
32803
- }
32804
- )
32805
- }
32806
- )
32807
- ]
32808
- },
32809
- provider.id
32810
- )) })
32811
- ]
32812
- }
32890
+ ]
32891
+ },
32892
+ provider.id
32893
+ )) })
32894
+ ]
32895
+ }
32896
+ ),
32897
+ document.body
32813
32898
  )
32814
32899
  ]
32815
32900
  }
@@ -33514,7 +33599,7 @@ function RowActionsMenu({
33514
33599
  const showRemove = onRemove && !isCurrentUser;
33515
33600
  const needsSeparator = (showResend || onEditRole) && showRemove;
33516
33601
  return /* @__PURE__ */ jsxRuntime.jsxs(
33517
- chunk2JQBPU3Y_cjs.Dropdown,
33602
+ chunkMZPF2QGM_cjs.Dropdown,
33518
33603
  {
33519
33604
  trigger: /* @__PURE__ */ jsxRuntime.jsx(
33520
33605
  chunkA2QVQF54_cjs.Button,
@@ -33530,7 +33615,7 @@ function RowActionsMenu({
33530
33615
  placement: "bottom-end",
33531
33616
  children: [
33532
33617
  showResend && /* @__PURE__ */ jsxRuntime.jsx(
33533
- chunk2JQBPU3Y_cjs.DropdownItem,
33618
+ chunkMZPF2QGM_cjs.DropdownItem,
33534
33619
  {
33535
33620
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Send, { size: 14 }),
33536
33621
  onClick: () => onResendInvite?.(user),
@@ -33538,16 +33623,16 @@ function RowActionsMenu({
33538
33623
  }
33539
33624
  ),
33540
33625
  onEditRole && /* @__PURE__ */ jsxRuntime.jsx(
33541
- chunk2JQBPU3Y_cjs.DropdownItem,
33626
+ chunkMZPF2QGM_cjs.DropdownItem,
33542
33627
  {
33543
33628
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Pencil, { size: 14 }),
33544
33629
  onClick: () => onEditRole(user),
33545
33630
  children: "Edit Role"
33546
33631
  }
33547
33632
  ),
33548
- needsSeparator && /* @__PURE__ */ jsxRuntime.jsx(chunk2JQBPU3Y_cjs.DropdownSeparator, {}),
33633
+ needsSeparator && /* @__PURE__ */ jsxRuntime.jsx(chunkMZPF2QGM_cjs.DropdownSeparator, {}),
33549
33634
  showRemove && /* @__PURE__ */ jsxRuntime.jsx(
33550
- chunk2JQBPU3Y_cjs.DropdownItem,
33635
+ chunkMZPF2QGM_cjs.DropdownItem,
33551
33636
  {
33552
33637
  variant: "danger",
33553
33638
  icon: /* @__PURE__ */ jsxRuntime.jsx(chunkUTYUT5YY_cjs.Trash2, { size: 14 }),
@@ -34570,7 +34655,7 @@ function ReportDashboard({
34570
34655
  ] }),
34571
34656
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
34572
34657
  /* @__PURE__ */ jsxRuntime.jsx(
34573
- chunkYWHSQH7S_cjs.Select,
34658
+ chunkDAPZPT5N_cjs.Select,
34574
34659
  {
34575
34660
  "aria-label": "Date range",
34576
34661
  options: Array.isArray(dateRangeOptions) && dateRangeOptions.every(
@@ -36770,7 +36855,7 @@ function ServiceGeneralSettings({
36770
36855
  }
36771
36856
  ),
36772
36857
  categories.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
36773
- chunkYWHSQH7S_cjs.Select,
36858
+ chunkDAPZPT5N_cjs.Select,
36774
36859
  {
36775
36860
  label: "Category",
36776
36861
  value: categoryId || "",
@@ -37925,7 +38010,7 @@ function ServiceShippingSettings({
37925
38010
  "data-slot": "shipping-settings-content",
37926
38011
  children: [
37927
38012
  shippingMethods.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
37928
- chunkYWHSQH7S_cjs.Select,
38013
+ chunkDAPZPT5N_cjs.Select,
37929
38014
  {
37930
38015
  label: "Shipping Method",
37931
38016
  value: selectedMethodId || "",
@@ -38007,7 +38092,7 @@ function ServiceShippingSettings({
38007
38092
  }
38008
38093
  ) }),
38009
38094
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsx(
38010
- chunkYWHSQH7S_cjs.Select,
38095
+ chunkDAPZPT5N_cjs.Select,
38011
38096
  {
38012
38097
  label: "State",
38013
38098
  value: address.state,
@@ -38135,7 +38220,7 @@ function SetupServiceModal({
38135
38220
  }
38136
38221
  ),
38137
38222
  showServicePicker && availableServices.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
38138
- chunkYWHSQH7S_cjs.Select,
38223
+ chunkDAPZPT5N_cjs.Select,
38139
38224
  {
38140
38225
  label: "Select Service",
38141
38226
  value: formData.serviceId || "",
@@ -38183,7 +38268,7 @@ function SetupServiceModal({
38183
38268
  )
38184
38269
  ] }),
38185
38270
  categories.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
38186
- chunkYWHSQH7S_cjs.Select,
38271
+ chunkDAPZPT5N_cjs.Select,
38187
38272
  {
38188
38273
  label: "Category",
38189
38274
  value: formData.categoryId || "",
@@ -38380,7 +38465,7 @@ function SidebarProvider({
38380
38465
  defaultExpandedGroup = null,
38381
38466
  mobileBreakpoint = "(max-width: 1023px)"
38382
38467
  }) {
38383
- const isMobileViewport = chunkX7J45FU5_cjs.useMediaQuery(mobileBreakpoint);
38468
+ const isMobileViewport = chunk4GXECTPS_cjs.useMediaQuery(mobileBreakpoint);
38384
38469
  const [isCollapsed, setIsCollapsed] = React10.useState(() => {
38385
38470
  if (typeof window !== "undefined" && persistCollapsed) {
38386
38471
  const stored = localStorage.getItem(storageKey);
@@ -41003,7 +41088,7 @@ function TableOfContents({
41003
41088
  }, [manualItems, selector, maxDepth, contentEl]);
41004
41089
  const ids = React10__namespace.useMemo(() => flatItems.map((i) => i.id), [flatItems]);
41005
41090
  const isControlled = controlledActiveId !== void 0;
41006
- const { activeId: spyActiveId } = chunkX7J45FU5_cjs.useScrollSpy({
41091
+ const { activeId: spyActiveId } = chunk4GXECTPS_cjs.useScrollSpy({
41007
41092
  ids,
41008
41093
  root: contentRef,
41009
41094
  enabled: !isControlled && ids.length > 0,
@@ -42226,7 +42311,7 @@ function ReportTimeRange({
42226
42311
  className: chunkOR5DRJCW_cjs.cn("flex flex-wrap items-center gap-3", className),
42227
42312
  children: [
42228
42313
  /* @__PURE__ */ jsxRuntime.jsx(
42229
- chunkYWHSQH7S_cjs.Select,
42314
+ chunkDAPZPT5N_cjs.Select,
42230
42315
  {
42231
42316
  "aria-label": "Time range",
42232
42317
  value: preset,
@@ -42812,163 +42897,163 @@ Object.defineProperty(exports, "getToolIcon", {
42812
42897
  });
42813
42898
  Object.defineProperty(exports, "AttachmentPreview", {
42814
42899
  enumerable: true,
42815
- get: function () { return chunkCDMWZBDD_cjs.AttachmentPreview; }
42900
+ get: function () { return chunk372IIHUA_cjs.AttachmentPreview; }
42816
42901
  });
42817
42902
  Object.defineProperty(exports, "ConversationHeader", {
42818
42903
  enumerable: true,
42819
- get: function () { return chunkCDMWZBDD_cjs.ConversationHeader; }
42904
+ get: function () { return chunk372IIHUA_cjs.ConversationHeader; }
42820
42905
  });
42821
42906
  Object.defineProperty(exports, "ConversationListItem", {
42822
42907
  enumerable: true,
42823
- get: function () { return chunkCDMWZBDD_cjs.ConversationListItem; }
42908
+ get: function () { return chunk372IIHUA_cjs.ConversationListItem; }
42824
42909
  });
42825
42910
  Object.defineProperty(exports, "ConversationListSkeleton", {
42826
42911
  enumerable: true,
42827
- get: function () { return chunkCDMWZBDD_cjs.ConversationListSkeleton; }
42912
+ get: function () { return chunk372IIHUA_cjs.ConversationListSkeleton; }
42828
42913
  });
42829
42914
  Object.defineProperty(exports, "DateSeparator", {
42830
42915
  enumerable: true,
42831
- get: function () { return chunkCDMWZBDD_cjs.DateSeparator; }
42916
+ get: function () { return chunk372IIHUA_cjs.DateSeparator; }
42832
42917
  });
42833
42918
  Object.defineProperty(exports, "EmptyState", {
42834
42919
  enumerable: true,
42835
- get: function () { return chunkCDMWZBDD_cjs.EmptyState; }
42920
+ get: function () { return chunk372IIHUA_cjs.EmptyState; }
42836
42921
  });
42837
42922
  Object.defineProperty(exports, "LightboxModal", {
42838
42923
  enumerable: true,
42839
- get: function () { return chunkCDMWZBDD_cjs.LightboxModal; }
42924
+ get: function () { return chunk372IIHUA_cjs.LightboxModal; }
42840
42925
  });
42841
42926
  Object.defineProperty(exports, "LoadMoreButton", {
42842
42927
  enumerable: true,
42843
- get: function () { return chunkCDMWZBDD_cjs.LoadMoreButton; }
42928
+ get: function () { return chunk372IIHUA_cjs.LoadMoreButton; }
42844
42929
  });
42845
42930
  Object.defineProperty(exports, "MessageBubble", {
42846
42931
  enumerable: true,
42847
- get: function () { return chunkCDMWZBDD_cjs.MessageBubble; }
42932
+ get: function () { return chunk372IIHUA_cjs.MessageBubble; }
42848
42933
  });
42849
42934
  Object.defineProperty(exports, "MessageList", {
42850
42935
  enumerable: true,
42851
- get: function () { return chunkCDMWZBDD_cjs.MessageList; }
42936
+ get: function () { return chunk372IIHUA_cjs.MessageList; }
42852
42937
  });
42853
42938
  Object.defineProperty(exports, "MessageStatusIcon", {
42854
42939
  enumerable: true,
42855
- get: function () { return chunkCDMWZBDD_cjs.MessageStatusIcon; }
42940
+ get: function () { return chunk372IIHUA_cjs.MessageStatusIcon; }
42856
42941
  });
42857
42942
  Object.defineProperty(exports, "MessageThread", {
42858
42943
  enumerable: true,
42859
- get: function () { return chunkCDMWZBDD_cjs.MessageThread; }
42944
+ get: function () { return chunk372IIHUA_cjs.MessageThread; }
42860
42945
  });
42861
42946
  Object.defineProperty(exports, "MessagingSplitView", {
42862
42947
  enumerable: true,
42863
- get: function () { return chunkCDMWZBDD_cjs.MessagingSplitView; }
42948
+ get: function () { return chunk372IIHUA_cjs.MessagingSplitView; }
42864
42949
  });
42865
42950
  Object.defineProperty(exports, "ReadReceiptIndicator", {
42866
42951
  enumerable: true,
42867
- get: function () { return chunkCDMWZBDD_cjs.ReadReceiptIndicator; }
42952
+ get: function () { return chunk372IIHUA_cjs.ReadReceiptIndicator; }
42868
42953
  });
42869
42954
  Object.defineProperty(exports, "SkeletonMessage", {
42870
42955
  enumerable: true,
42871
- get: function () { return chunkCDMWZBDD_cjs.SkeletonMessage; }
42956
+ get: function () { return chunk372IIHUA_cjs.SkeletonMessage; }
42872
42957
  });
42873
42958
  Object.defineProperty(exports, "TypingIndicator", {
42874
42959
  enumerable: true,
42875
- get: function () { return chunkCDMWZBDD_cjs.TypingIndicator; }
42960
+ get: function () { return chunk372IIHUA_cjs.TypingIndicator; }
42876
42961
  });
42877
42962
  Object.defineProperty(exports, "bubbleVariants", {
42878
42963
  enumerable: true,
42879
- get: function () { return chunkCDMWZBDD_cjs.bubbleVariants; }
42964
+ get: function () { return chunk372IIHUA_cjs.bubbleVariants; }
42880
42965
  });
42881
42966
  Object.defineProperty(exports, "formatDateLabel", {
42882
42967
  enumerable: true,
42883
- get: function () { return chunkCDMWZBDD_cjs.formatDateLabel; }
42968
+ get: function () { return chunk372IIHUA_cjs.formatDateLabel; }
42884
42969
  });
42885
42970
  Object.defineProperty(exports, "formatFileSize", {
42886
42971
  enumerable: true,
42887
- get: function () { return chunkCDMWZBDD_cjs.formatFileSize; }
42972
+ get: function () { return chunk372IIHUA_cjs.formatFileSize; }
42888
42973
  });
42889
42974
  Object.defineProperty(exports, "formatLastSeen", {
42890
42975
  enumerable: true,
42891
- get: function () { return chunkCDMWZBDD_cjs.formatLastSeen; }
42976
+ get: function () { return chunk372IIHUA_cjs.formatLastSeen; }
42892
42977
  });
42893
42978
  Object.defineProperty(exports, "getConversationSubtitle", {
42894
42979
  enumerable: true,
42895
- get: function () { return chunkCDMWZBDD_cjs.getConversationSubtitle; }
42980
+ get: function () { return chunk372IIHUA_cjs.getConversationSubtitle; }
42896
42981
  });
42897
42982
  Object.defineProperty(exports, "getConversationTitle", {
42898
42983
  enumerable: true,
42899
- get: function () { return chunkCDMWZBDD_cjs.getConversationTitle; }
42984
+ get: function () { return chunk372IIHUA_cjs.getConversationTitle; }
42900
42985
  });
42901
42986
  Object.defineProperty(exports, "groupMessagesByDate", {
42902
42987
  enumerable: true,
42903
- get: function () { return chunkCDMWZBDD_cjs.groupMessagesByDate; }
42988
+ get: function () { return chunk372IIHUA_cjs.groupMessagesByDate; }
42904
42989
  });
42905
42990
  Object.defineProperty(exports, "headerVariants", {
42906
42991
  enumerable: true,
42907
- get: function () { return chunkCDMWZBDD_cjs.headerVariants; }
42992
+ get: function () { return chunk372IIHUA_cjs.headerVariants; }
42908
42993
  });
42909
42994
  Object.defineProperty(exports, "isSameSenderGroup", {
42910
42995
  enumerable: true,
42911
- get: function () { return chunkCDMWZBDD_cjs.isSameSenderGroup; }
42996
+ get: function () { return chunk372IIHUA_cjs.isSameSenderGroup; }
42912
42997
  });
42913
42998
  Object.defineProperty(exports, "useMessageScroll", {
42914
42999
  enumerable: true,
42915
- get: function () { return chunkCDMWZBDD_cjs.useMessageScroll; }
43000
+ get: function () { return chunk372IIHUA_cjs.useMessageScroll; }
42916
43001
  });
42917
43002
  Object.defineProperty(exports, "useMessages", {
42918
43003
  enumerable: true,
42919
- get: function () { return chunkCDMWZBDD_cjs.useMessages; }
43004
+ get: function () { return chunk372IIHUA_cjs.useMessages; }
42920
43005
  });
42921
43006
  Object.defineProperty(exports, "useReadReceipts", {
42922
43007
  enumerable: true,
42923
- get: function () { return chunkCDMWZBDD_cjs.useReadReceipts; }
43008
+ get: function () { return chunk372IIHUA_cjs.useReadReceipts; }
42924
43009
  });
42925
43010
  Object.defineProperty(exports, "useTypingIndicator", {
42926
43011
  enumerable: true,
42927
- get: function () { return chunkCDMWZBDD_cjs.useTypingIndicator; }
43012
+ get: function () { return chunk372IIHUA_cjs.useTypingIndicator; }
42928
43013
  });
42929
43014
  Object.defineProperty(exports, "AttachmentPicker", {
42930
43015
  enumerable: true,
42931
- get: function () { return chunkCB4JX5EJ_cjs.AttachmentPicker; }
43016
+ get: function () { return chunkMAMY5HTT_cjs.AttachmentPicker; }
42932
43017
  });
42933
43018
  Object.defineProperty(exports, "AttachmentPreviewItem", {
42934
43019
  enumerable: true,
42935
- get: function () { return chunkCB4JX5EJ_cjs.AttachmentPreviewItem; }
43020
+ get: function () { return chunkMAMY5HTT_cjs.AttachmentPreviewItem; }
42936
43021
  });
42937
43022
  Object.defineProperty(exports, "CameraButton", {
42938
43023
  enumerable: true,
42939
- get: function () { return chunkCB4JX5EJ_cjs.CameraButton; }
43024
+ get: function () { return chunkMAMY5HTT_cjs.CameraButton; }
42940
43025
  });
42941
43026
  Object.defineProperty(exports, "CharacterCounter", {
42942
43027
  enumerable: true,
42943
- get: function () { return chunkCB4JX5EJ_cjs.CharacterCounter; }
43028
+ get: function () { return chunkMAMY5HTT_cjs.CharacterCounter; }
42944
43029
  });
42945
43030
  Object.defineProperty(exports, "DragDropZone", {
42946
43031
  enumerable: true,
42947
- get: function () { return chunkCB4JX5EJ_cjs.DragDropZone; }
43032
+ get: function () { return chunkMAMY5HTT_cjs.DragDropZone; }
42948
43033
  });
42949
43034
  Object.defineProperty(exports, "MessageComposer", {
42950
43035
  enumerable: true,
42951
- get: function () { return chunkCB4JX5EJ_cjs.MessageComposer; }
43036
+ get: function () { return chunkMAMY5HTT_cjs.MessageComposer; }
42952
43037
  });
42953
43038
  Object.defineProperty(exports, "SendButton", {
42954
43039
  enumerable: true,
42955
- get: function () { return chunkCB4JX5EJ_cjs.SendButton; }
43040
+ get: function () { return chunkMAMY5HTT_cjs.SendButton; }
42956
43041
  });
42957
43042
  Object.defineProperty(exports, "generateAttachmentId", {
42958
43043
  enumerable: true,
42959
- get: function () { return chunkCB4JX5EJ_cjs.generateAttachmentId; }
43044
+ get: function () { return chunkMAMY5HTT_cjs.generateAttachmentId; }
42960
43045
  });
42961
43046
  Object.defineProperty(exports, "getFileType", {
42962
43047
  enumerable: true,
42963
- get: function () { return chunkCB4JX5EJ_cjs.getFileType; }
43048
+ get: function () { return chunkMAMY5HTT_cjs.getFileType; }
42964
43049
  });
42965
43050
  Object.defineProperty(exports, "sendButtonVariants", {
42966
43051
  enumerable: true,
42967
- get: function () { return chunkCB4JX5EJ_cjs.sendButtonVariants; }
43052
+ get: function () { return chunkMAMY5HTT_cjs.sendButtonVariants; }
42968
43053
  });
42969
43054
  Object.defineProperty(exports, "validateFile", {
42970
43055
  enumerable: true,
42971
- get: function () { return chunkCB4JX5EJ_cjs.validateFile; }
43056
+ get: function () { return chunkMAMY5HTT_cjs.validateFile; }
42972
43057
  });
42973
43058
  Object.defineProperty(exports, "Switch", {
42974
43059
  enumerable: true,
@@ -43036,15 +43121,15 @@ Object.defineProperty(exports, "recordButtonVariants", {
43036
43121
  });
43037
43122
  Object.defineProperty(exports, "RichTextEditor", {
43038
43123
  enumerable: true,
43039
- get: function () { return chunkGBRPZGSI_cjs.RichTextEditor; }
43124
+ get: function () { return chunkBLPCYP4D_cjs.RichTextEditor; }
43040
43125
  });
43041
43126
  Object.defineProperty(exports, "convertAngleBracketsToMustache", {
43042
43127
  enumerable: true,
43043
- get: function () { return chunkGBRPZGSI_cjs.convertAngleBracketsToMustache; }
43128
+ get: function () { return chunkBLPCYP4D_cjs.convertAngleBracketsToMustache; }
43044
43129
  });
43045
43130
  Object.defineProperty(exports, "processDictation", {
43046
43131
  enumerable: true,
43047
- get: function () { return chunkGBRPZGSI_cjs.processDictation; }
43132
+ get: function () { return chunkBLPCYP4D_cjs.processDictation; }
43048
43133
  });
43049
43134
  Object.defineProperty(exports, "Separator", {
43050
43135
  enumerable: true,
@@ -43136,23 +43221,23 @@ Object.defineProperty(exports, "FenceBlock", {
43136
43221
  });
43137
43222
  Object.defineProperty(exports, "FillerWordsModal", {
43138
43223
  enumerable: true,
43139
- get: function () { return chunk5INNPOZZ_cjs.FillerWordsModal; }
43224
+ get: function () { return chunkNAQ3ZALI_cjs.FillerWordsModal; }
43140
43225
  });
43141
43226
  Object.defineProperty(exports, "MediaEditor", {
43142
43227
  enumerable: true,
43143
- get: function () { return chunk5INNPOZZ_cjs.MediaEditor; }
43228
+ get: function () { return chunkNAQ3ZALI_cjs.MediaEditor; }
43144
43229
  });
43145
43230
  Object.defineProperty(exports, "SilenceSettingsModal", {
43146
43231
  enumerable: true,
43147
- get: function () { return chunk5INNPOZZ_cjs.SilenceSettingsModal; }
43232
+ get: function () { return chunkNAQ3ZALI_cjs.SilenceSettingsModal; }
43148
43233
  });
43149
43234
  Object.defineProperty(exports, "SpeedMarkerMenu", {
43150
43235
  enumerable: true,
43151
- get: function () { return chunk5INNPOZZ_cjs.SpeedMarkerMenu; }
43236
+ get: function () { return chunkNAQ3ZALI_cjs.SpeedMarkerMenu; }
43152
43237
  });
43153
43238
  Object.defineProperty(exports, "WordEditorModal", {
43154
43239
  enumerable: true,
43155
- get: function () { return chunk5INNPOZZ_cjs.WordEditorModal; }
43240
+ get: function () { return chunkNAQ3ZALI_cjs.WordEditorModal; }
43156
43241
  });
43157
43242
  Object.defineProperty(exports, "PLAYBACK_SPEEDS", {
43158
43243
  enumerable: true,
@@ -43232,39 +43317,39 @@ Object.defineProperty(exports, "CollapsibleTrigger", {
43232
43317
  });
43233
43318
  Object.defineProperty(exports, "CountryCodeDropdown", {
43234
43319
  enumerable: true,
43235
- get: function () { return chunk7BARESXI_cjs.CountryCodeDropdown; }
43320
+ get: function () { return chunkVPNURIAY_cjs.CountryCodeDropdown; }
43236
43321
  });
43237
43322
  Object.defineProperty(exports, "formatE164", {
43238
43323
  enumerable: true,
43239
- get: function () { return chunk7BARESXI_cjs.formatE164; }
43324
+ get: function () { return chunkVPNURIAY_cjs.formatE164; }
43240
43325
  });
43241
43326
  Object.defineProperty(exports, "validatePhoneNumber", {
43242
43327
  enumerable: true,
43243
- get: function () { return chunk7BARESXI_cjs.validatePhoneNumber; }
43328
+ get: function () { return chunkVPNURIAY_cjs.validatePhoneNumber; }
43244
43329
  });
43245
43330
  Object.defineProperty(exports, "Dropdown", {
43246
43331
  enumerable: true,
43247
- get: function () { return chunk2JQBPU3Y_cjs.Dropdown; }
43332
+ get: function () { return chunkMZPF2QGM_cjs.Dropdown; }
43248
43333
  });
43249
43334
  Object.defineProperty(exports, "DropdownContent", {
43250
43335
  enumerable: true,
43251
- get: function () { return chunk2JQBPU3Y_cjs.DropdownContent; }
43336
+ get: function () { return chunkMZPF2QGM_cjs.DropdownContent; }
43252
43337
  });
43253
43338
  Object.defineProperty(exports, "DropdownHeader", {
43254
43339
  enumerable: true,
43255
- get: function () { return chunk2JQBPU3Y_cjs.DropdownHeader; }
43340
+ get: function () { return chunkMZPF2QGM_cjs.DropdownHeader; }
43256
43341
  });
43257
43342
  Object.defineProperty(exports, "DropdownItem", {
43258
43343
  enumerable: true,
43259
- get: function () { return chunk2JQBPU3Y_cjs.DropdownItem; }
43344
+ get: function () { return chunkMZPF2QGM_cjs.DropdownItem; }
43260
43345
  });
43261
43346
  Object.defineProperty(exports, "DropdownLabel", {
43262
43347
  enumerable: true,
43263
- get: function () { return chunk2JQBPU3Y_cjs.DropdownLabel; }
43348
+ get: function () { return chunkMZPF2QGM_cjs.DropdownLabel; }
43264
43349
  });
43265
43350
  Object.defineProperty(exports, "DropdownSeparator", {
43266
43351
  enumerable: true,
43267
- get: function () { return chunk2JQBPU3Y_cjs.DropdownSeparator; }
43352
+ get: function () { return chunkMZPF2QGM_cjs.DropdownSeparator; }
43268
43353
  });
43269
43354
  Object.defineProperty(exports, "FloatingWindow", {
43270
43355
  enumerable: true,
@@ -43336,7 +43421,7 @@ Object.defineProperty(exports, "waveformContainerVariants", {
43336
43421
  });
43337
43422
  Object.defineProperty(exports, "Autocomplete", {
43338
43423
  enumerable: true,
43339
- get: function () { return chunkROXYP3BZ_cjs.Autocomplete; }
43424
+ get: function () { return chunkAES2BKEW_cjs.Autocomplete; }
43340
43425
  });
43341
43426
  Object.defineProperty(exports, "Avatar", {
43342
43427
  enumerable: true,
@@ -43388,67 +43473,67 @@ Object.defineProperty(exports, "isApplicable", {
43388
43473
  });
43389
43474
  Object.defineProperty(exports, "ALLERGY_TYPE_LABELS", {
43390
43475
  enumerable: true,
43391
- get: function () { return chunkQPOTSLY6_cjs.ALLERGY_TYPE_LABELS; }
43476
+ get: function () { return chunkJTBQNOSL_cjs.ALLERGY_TYPE_LABELS; }
43392
43477
  });
43393
43478
  Object.defineProperty(exports, "AllergyList", {
43394
43479
  enumerable: true,
43395
- get: function () { return chunkQPOTSLY6_cjs.AllergyList; }
43480
+ get: function () { return chunkJTBQNOSL_cjs.AllergyList; }
43396
43481
  });
43397
43482
  Object.defineProperty(exports, "AllergyManager", {
43398
43483
  enumerable: true,
43399
- get: function () { return chunkQPOTSLY6_cjs.AllergyManager; }
43484
+ get: function () { return chunkJTBQNOSL_cjs.AllergyManager; }
43400
43485
  });
43401
43486
  Object.defineProperty(exports, "CodeLookupProvider", {
43402
43487
  enumerable: true,
43403
- get: function () { return chunkQPOTSLY6_cjs.CodeLookupProvider; }
43488
+ get: function () { return chunkJTBQNOSL_cjs.CodeLookupProvider; }
43404
43489
  });
43405
43490
  Object.defineProperty(exports, "MEDICATION_STATUS_LABELS", {
43406
43491
  enumerable: true,
43407
- get: function () { return chunkQPOTSLY6_cjs.MEDICATION_STATUS_LABELS; }
43492
+ get: function () { return chunkJTBQNOSL_cjs.MEDICATION_STATUS_LABELS; }
43408
43493
  });
43409
43494
  Object.defineProperty(exports, "MedicationEditor", {
43410
43495
  enumerable: true,
43411
- get: function () { return chunkQPOTSLY6_cjs.MedicationEditor; }
43496
+ get: function () { return chunkJTBQNOSL_cjs.MedicationEditor; }
43412
43497
  });
43413
43498
  Object.defineProperty(exports, "MedicationList", {
43414
43499
  enumerable: true,
43415
- get: function () { return chunkQPOTSLY6_cjs.MedicationList; }
43500
+ get: function () { return chunkJTBQNOSL_cjs.MedicationList; }
43416
43501
  });
43417
43502
  Object.defineProperty(exports, "MedicationReconciliation", {
43418
43503
  enumerable: true,
43419
- get: function () { return chunkQPOTSLY6_cjs.MedicationReconciliation; }
43504
+ get: function () { return chunkJTBQNOSL_cjs.MedicationReconciliation; }
43420
43505
  });
43421
43506
  Object.defineProperty(exports, "RowActionToolbar", {
43422
43507
  enumerable: true,
43423
- get: function () { return chunkQPOTSLY6_cjs.RowActionToolbar; }
43508
+ get: function () { return chunkJTBQNOSL_cjs.RowActionToolbar; }
43424
43509
  });
43425
43510
  Object.defineProperty(exports, "RowIconButton", {
43426
43511
  enumerable: true,
43427
- get: function () { return chunkQPOTSLY6_cjs.RowIconButton; }
43512
+ get: function () { return chunkJTBQNOSL_cjs.RowIconButton; }
43428
43513
  });
43429
43514
  Object.defineProperty(exports, "labelToMedicationFields", {
43430
43515
  enumerable: true,
43431
- get: function () { return chunkQPOTSLY6_cjs.labelToMedicationFields; }
43516
+ get: function () { return chunkJTBQNOSL_cjs.labelToMedicationFields; }
43432
43517
  });
43433
43518
  Object.defineProperty(exports, "lookupToMedicationFields", {
43434
43519
  enumerable: true,
43435
- get: function () { return chunkQPOTSLY6_cjs.lookupToMedicationFields; }
43520
+ get: function () { return chunkJTBQNOSL_cjs.lookupToMedicationFields; }
43436
43521
  });
43437
43522
  Object.defineProperty(exports, "parseMedicationLabel", {
43438
43523
  enumerable: true,
43439
- get: function () { return chunkQPOTSLY6_cjs.parseMedicationLabel; }
43524
+ get: function () { return chunkJTBQNOSL_cjs.parseMedicationLabel; }
43440
43525
  });
43441
43526
  Object.defineProperty(exports, "parseSig", {
43442
43527
  enumerable: true,
43443
- get: function () { return chunkQPOTSLY6_cjs.parseSig; }
43528
+ get: function () { return chunkJTBQNOSL_cjs.parseSig; }
43444
43529
  });
43445
43530
  Object.defineProperty(exports, "toolbarKeyNav", {
43446
43531
  enumerable: true,
43447
- get: function () { return chunkQPOTSLY6_cjs.toolbarKeyNav; }
43532
+ get: function () { return chunkJTBQNOSL_cjs.toolbarKeyNav; }
43448
43533
  });
43449
43534
  Object.defineProperty(exports, "useCodeLookupConfig", {
43450
43535
  enumerable: true,
43451
- get: function () { return chunkQPOTSLY6_cjs.useCodeLookupConfig; }
43536
+ get: function () { return chunkJTBQNOSL_cjs.useCodeLookupConfig; }
43452
43537
  });
43453
43538
  Object.defineProperty(exports, "Textarea", {
43454
43539
  enumerable: true,
@@ -43484,11 +43569,11 @@ Object.defineProperty(exports, "labelVariants", {
43484
43569
  });
43485
43570
  Object.defineProperty(exports, "Select", {
43486
43571
  enumerable: true,
43487
- get: function () { return chunkYWHSQH7S_cjs.Select; }
43572
+ get: function () { return chunkDAPZPT5N_cjs.Select; }
43488
43573
  });
43489
43574
  Object.defineProperty(exports, "selectTriggerVariants", {
43490
43575
  enumerable: true,
43491
- get: function () { return chunkYWHSQH7S_cjs.selectTriggerVariants; }
43576
+ get: function () { return chunkDAPZPT5N_cjs.selectTriggerVariants; }
43492
43577
  });
43493
43578
  Object.defineProperty(exports, "Card", {
43494
43579
  enumerable: true,
@@ -43608,43 +43693,43 @@ Object.defineProperty(exports, "badgeVariants", {
43608
43693
  });
43609
43694
  Object.defineProperty(exports, "useCommandK", {
43610
43695
  enumerable: true,
43611
- get: function () { return chunkX7J45FU5_cjs.useCommandK; }
43696
+ get: function () { return chunk4GXECTPS_cjs.useCommandK; }
43612
43697
  });
43613
43698
  Object.defineProperty(exports, "useIsDesktop", {
43614
43699
  enumerable: true,
43615
- get: function () { return chunkX7J45FU5_cjs.useIsDesktop; }
43700
+ get: function () { return chunk4GXECTPS_cjs.useIsDesktop; }
43616
43701
  });
43617
43702
  Object.defineProperty(exports, "useIsLargeDesktop", {
43618
43703
  enumerable: true,
43619
- get: function () { return chunkX7J45FU5_cjs.useIsLargeDesktop; }
43704
+ get: function () { return chunk4GXECTPS_cjs.useIsLargeDesktop; }
43620
43705
  });
43621
43706
  Object.defineProperty(exports, "useIsMobile", {
43622
43707
  enumerable: true,
43623
- get: function () { return chunkX7J45FU5_cjs.useIsMobile; }
43708
+ get: function () { return chunk4GXECTPS_cjs.useIsMobile; }
43624
43709
  });
43625
43710
  Object.defineProperty(exports, "useIsMobileOrTablet", {
43626
43711
  enumerable: true,
43627
- get: function () { return chunkX7J45FU5_cjs.useIsMobileOrTablet; }
43712
+ get: function () { return chunk4GXECTPS_cjs.useIsMobileOrTablet; }
43628
43713
  });
43629
43714
  Object.defineProperty(exports, "useIsSmallTablet", {
43630
43715
  enumerable: true,
43631
- get: function () { return chunkX7J45FU5_cjs.useIsSmallTablet; }
43716
+ get: function () { return chunk4GXECTPS_cjs.useIsSmallTablet; }
43632
43717
  });
43633
43718
  Object.defineProperty(exports, "useIsTablet", {
43634
43719
  enumerable: true,
43635
- get: function () { return chunkX7J45FU5_cjs.useIsTablet; }
43720
+ get: function () { return chunk4GXECTPS_cjs.useIsTablet; }
43636
43721
  });
43637
43722
  Object.defineProperty(exports, "useKeyboardShortcut", {
43638
43723
  enumerable: true,
43639
- get: function () { return chunkX7J45FU5_cjs.useKeyboardShortcut; }
43724
+ get: function () { return chunk4GXECTPS_cjs.useKeyboardShortcut; }
43640
43725
  });
43641
43726
  Object.defineProperty(exports, "useMediaQuery", {
43642
43727
  enumerable: true,
43643
- get: function () { return chunkX7J45FU5_cjs.useMediaQuery; }
43728
+ get: function () { return chunk4GXECTPS_cjs.useMediaQuery; }
43644
43729
  });
43645
43730
  Object.defineProperty(exports, "useScrollSpy", {
43646
43731
  enumerable: true,
43647
- get: function () { return chunkX7J45FU5_cjs.useScrollSpy; }
43732
+ get: function () { return chunk4GXECTPS_cjs.useScrollSpy; }
43648
43733
  });
43649
43734
  Object.defineProperty(exports, "useTheme", {
43650
43735
  enumerable: true,
@@ -43686,10 +43771,6 @@ Object.defineProperty(exports, "useMediaTransport", {
43686
43771
  enumerable: true,
43687
43772
  get: function () { return chunkJYZW2PZS_cjs.useMediaTransport; }
43688
43773
  });
43689
- Object.defineProperty(exports, "useClickOutside", {
43690
- enumerable: true,
43691
- get: function () { return chunkIKMR2ADM_cjs.useClickOutside; }
43692
- });
43693
43774
  Object.defineProperty(exports, "dragIndicatorClasses", {
43694
43775
  enumerable: true,
43695
43776
  get: function () { return chunkYVPC65ZJ_cjs.dragIndicatorClasses; }
@@ -43718,6 +43799,14 @@ Object.defineProperty(exports, "useEscapeKey", {
43718
43799
  enumerable: true,
43719
43800
  get: function () { return chunkFHY3K6PL_cjs.useEscapeKey; }
43720
43801
  });
43802
+ Object.defineProperty(exports, "useClickOutside", {
43803
+ enumerable: true,
43804
+ get: function () { return chunkFSGEDDF2_cjs.useClickOutside; }
43805
+ });
43806
+ Object.defineProperty(exports, "useAnchoredPosition", {
43807
+ enumerable: true,
43808
+ get: function () { return chunkZDEYV373_cjs.useAnchoredPosition; }
43809
+ });
43721
43810
  Object.defineProperty(exports, "isHtmlEmpty", {
43722
43811
  enumerable: true,
43723
43812
  get: function () { return chunkC7RVKV25_cjs.isHtmlEmpty; }