formanitor 0.1.11 → 0.2.1

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 (289) hide show
  1. package/dist/AddInvestigationWidget-7UGZQYI5.mjs +30 -0
  2. package/dist/AddInvestigationWidget-7UGZQYI5.mjs.map +1 -0
  3. package/dist/AddInvestigationWidget-RY62UCPM.cjs +32 -0
  4. package/dist/AddInvestigationWidget-RY62UCPM.cjs.map +1 -0
  5. package/dist/AddMedicationWidget-UG26VMUX.mjs +30 -0
  6. package/dist/AddMedicationWidget-UG26VMUX.mjs.map +1 -0
  7. package/dist/AddMedicationWidget-WPI32WAP.cjs +32 -0
  8. package/dist/AddMedicationWidget-WPI32WAP.cjs.map +1 -0
  9. package/dist/AddProcedureWidget-SF6MTRBV.cjs +278 -0
  10. package/dist/AddProcedureWidget-SF6MTRBV.cjs.map +1 -0
  11. package/dist/AddProcedureWidget-SQJUKKMK.mjs +276 -0
  12. package/dist/AddProcedureWidget-SQJUKKMK.mjs.map +1 -0
  13. package/dist/BiometryIolWorkupWidget-I5AJOYB2.cjs +300 -0
  14. package/dist/BiometryIolWorkupWidget-I5AJOYB2.cjs.map +1 -0
  15. package/dist/BiometryIolWorkupWidget-NL2M7ZAA.mjs +298 -0
  16. package/dist/BiometryIolWorkupWidget-NL2M7ZAA.mjs.map +1 -0
  17. package/dist/DateTimeWidget-DIDVF2EB.cjs +61 -0
  18. package/dist/DateTimeWidget-DIDVF2EB.cjs.map +1 -0
  19. package/dist/DateTimeWidget-LFBB6HOP.mjs +59 -0
  20. package/dist/DateTimeWidget-LFBB6HOP.mjs.map +1 -0
  21. package/dist/DateWidget-4ND5TKP2.mjs +72 -0
  22. package/dist/DateWidget-4ND5TKP2.mjs.map +1 -0
  23. package/dist/DateWidget-BCVR5GDK.cjs +74 -0
  24. package/dist/DateWidget-BCVR5GDK.cjs.map +1 -0
  25. package/dist/DiagnosisTextareaWidget-E7OQRUMX.cjs +190 -0
  26. package/dist/DiagnosisTextareaWidget-E7OQRUMX.cjs.map +1 -0
  27. package/dist/DiagnosisTextareaWidget-MAOXCXEZ.mjs +184 -0
  28. package/dist/DiagnosisTextareaWidget-MAOXCXEZ.mjs.map +1 -0
  29. package/dist/DifferentialDiagnosisWidget-ANALLNKL.cjs +17 -0
  30. package/dist/DifferentialDiagnosisWidget-ANALLNKL.cjs.map +1 -0
  31. package/dist/DifferentialDiagnosisWidget-LCY2SA2I.mjs +15 -0
  32. package/dist/DifferentialDiagnosisWidget-LCY2SA2I.mjs.map +1 -0
  33. package/dist/DischargeMedicationOrdersWidget-GYT35W7J.mjs +161 -0
  34. package/dist/DischargeMedicationOrdersWidget-GYT35W7J.mjs.map +1 -0
  35. package/dist/DischargeMedicationOrdersWidget-ILWNZ7VM.cjs +163 -0
  36. package/dist/DischargeMedicationOrdersWidget-ILWNZ7VM.cjs.map +1 -0
  37. package/dist/EditableTable-TGCVUBLO.mjs +279 -0
  38. package/dist/EditableTable-TGCVUBLO.mjs.map +1 -0
  39. package/dist/EditableTable-VCUNJZEX.cjs +281 -0
  40. package/dist/EditableTable-VCUNJZEX.cjs.map +1 -0
  41. package/dist/FollowupWidget-F6FRZO4T.mjs +283 -0
  42. package/dist/FollowupWidget-F6FRZO4T.mjs.map +1 -0
  43. package/dist/FollowupWidget-NBTOV2ML.cjs +285 -0
  44. package/dist/FollowupWidget-NBTOV2ML.cjs.map +1 -0
  45. package/dist/FunctionalImpairmentScoreWidget-5V5SNLTF.cjs +93 -0
  46. package/dist/FunctionalImpairmentScoreWidget-5V5SNLTF.cjs.map +1 -0
  47. package/dist/FunctionalImpairmentScoreWidget-QKIZE7KT.mjs +91 -0
  48. package/dist/FunctionalImpairmentScoreWidget-QKIZE7KT.mjs.map +1 -0
  49. package/dist/GsExaminationWidget-57SL4BCI.cjs +528 -0
  50. package/dist/GsExaminationWidget-57SL4BCI.cjs.map +1 -0
  51. package/dist/GsExaminationWidget-J4VABGY6.mjs +526 -0
  52. package/dist/GsExaminationWidget-J4VABGY6.mjs.map +1 -0
  53. package/dist/GsGradingWidget-3WTLIP33.mjs +90 -0
  54. package/dist/GsGradingWidget-3WTLIP33.mjs.map +1 -0
  55. package/dist/GsGradingWidget-CIXE36HF.cjs +92 -0
  56. package/dist/GsGradingWidget-CIXE36HF.cjs.map +1 -0
  57. package/dist/GsSmartHistoryWidget-6Q2IIGDG.cjs +398 -0
  58. package/dist/GsSmartHistoryWidget-6Q2IIGDG.cjs.map +1 -0
  59. package/dist/GsSmartHistoryWidget-IOGZ6GNS.mjs +396 -0
  60. package/dist/GsSmartHistoryWidget-IOGZ6GNS.mjs.map +1 -0
  61. package/dist/HiddenVitalsWidget-HBK7PBPR.cjs +55 -0
  62. package/dist/HiddenVitalsWidget-HBK7PBPR.cjs.map +1 -0
  63. package/dist/HiddenVitalsWidget-JH3NRZLM.mjs +53 -0
  64. package/dist/HiddenVitalsWidget-JH3NRZLM.mjs.map +1 -0
  65. package/dist/LensAssessmentWidget-7WMULFS2.mjs +232 -0
  66. package/dist/LensAssessmentWidget-7WMULFS2.mjs.map +1 -0
  67. package/dist/LensAssessmentWidget-GSOOD7BX.cjs +234 -0
  68. package/dist/LensAssessmentWidget-GSOOD7BX.cjs.map +1 -0
  69. package/dist/MarMedicationOrdersWidget-3E6GFOR6.cjs +76 -0
  70. package/dist/MarMedicationOrdersWidget-3E6GFOR6.cjs.map +1 -0
  71. package/dist/MarMedicationOrdersWidget-QZUVSEB5.mjs +74 -0
  72. package/dist/MarMedicationOrdersWidget-QZUVSEB5.mjs.map +1 -0
  73. package/dist/OBGExaminationWidget-F2ZNSP2M.cjs +215 -0
  74. package/dist/OBGExaminationWidget-F2ZNSP2M.cjs.map +1 -0
  75. package/dist/OBGExaminationWidget-POVLALMA.mjs +213 -0
  76. package/dist/OBGExaminationWidget-POVLALMA.mjs.map +1 -0
  77. package/dist/OBGPathwayWidget-CGT7Q4T2.mjs +517 -0
  78. package/dist/OBGPathwayWidget-CGT7Q4T2.mjs.map +1 -0
  79. package/dist/OBGPathwayWidget-WCIQENMO.cjs +519 -0
  80. package/dist/OBGPathwayWidget-WCIQENMO.cjs.map +1 -0
  81. package/dist/ObstetricHistoryWidget-EGVLL4X2.mjs +1113 -0
  82. package/dist/ObstetricHistoryWidget-EGVLL4X2.mjs.map +1 -0
  83. package/dist/ObstetricHistoryWidget-XU6R7IPP.cjs +1115 -0
  84. package/dist/ObstetricHistoryWidget-XU6R7IPP.cjs.map +1 -0
  85. package/dist/OphthalDiagnosisWidget-G5RCC2QZ.mjs +89 -0
  86. package/dist/OphthalDiagnosisWidget-G5RCC2QZ.mjs.map +1 -0
  87. package/dist/OphthalDiagnosisWidget-OQPTHJ7E.cjs +91 -0
  88. package/dist/OphthalDiagnosisWidget-OQPTHJ7E.cjs.map +1 -0
  89. package/dist/OphthalmologyWidget-I3BKWOI2.cjs +1331 -0
  90. package/dist/OphthalmologyWidget-I3BKWOI2.cjs.map +1 -0
  91. package/dist/OphthalmologyWidget-RG2AI6WA.mjs +1329 -0
  92. package/dist/OphthalmologyWidget-RG2AI6WA.mjs.map +1 -0
  93. package/dist/OrthopedicExamWidget-BBZP6NVT.mjs +366 -0
  94. package/dist/OrthopedicExamWidget-BBZP6NVT.mjs.map +1 -0
  95. package/dist/OrthopedicExamWidget-M4KKU5RC.cjs +368 -0
  96. package/dist/OrthopedicExamWidget-M4KKU5RC.cjs.map +1 -0
  97. package/dist/PainScaleFlagsWidget-E576R6QB.mjs +151 -0
  98. package/dist/PainScaleFlagsWidget-E576R6QB.mjs.map +1 -0
  99. package/dist/PainScaleFlagsWidget-QHGESXNE.cjs +153 -0
  100. package/dist/PainScaleFlagsWidget-QHGESXNE.cjs.map +1 -0
  101. package/dist/ReadOnlyTable-4Y2XW4MX.mjs +6 -0
  102. package/dist/ReadOnlyTable-4Y2XW4MX.mjs.map +1 -0
  103. package/dist/ReadOnlyTable-L7G6GWEJ.cjs +15 -0
  104. package/dist/ReadOnlyTable-L7G6GWEJ.cjs.map +1 -0
  105. package/dist/ReferralWidget-J2PWYFDT.cjs +171 -0
  106. package/dist/ReferralWidget-J2PWYFDT.cjs.map +1 -0
  107. package/dist/ReferralWidget-UPYWEO5R.mjs +169 -0
  108. package/dist/ReferralWidget-UPYWEO5R.mjs.map +1 -0
  109. package/dist/RichTextWidget-BBCNJPMH.mjs +11 -0
  110. package/dist/RichTextWidget-BBCNJPMH.mjs.map +1 -0
  111. package/dist/RichTextWidget-CRQHNVJR.cjs +24 -0
  112. package/dist/RichTextWidget-CRQHNVJR.cjs.map +1 -0
  113. package/dist/SmartTextarea-DKWV4R6H.cjs +19 -0
  114. package/dist/SmartTextarea-DKWV4R6H.cjs.map +1 -0
  115. package/dist/SmartTextarea-ZTQIW6O2.mjs +10 -0
  116. package/dist/SmartTextarea-ZTQIW6O2.mjs.map +1 -0
  117. package/dist/SuggestionTextareaWidget-22NR3JWM.mjs +215 -0
  118. package/dist/SuggestionTextareaWidget-22NR3JWM.mjs.map +1 -0
  119. package/dist/SuggestionTextareaWidget-WCTPWW2E.cjs +226 -0
  120. package/dist/SuggestionTextareaWidget-WCTPWW2E.cjs.map +1 -0
  121. package/dist/SurgicalRiskFlagsWidget-Q5FTWB3M.cjs +146 -0
  122. package/dist/SurgicalRiskFlagsWidget-Q5FTWB3M.cjs.map +1 -0
  123. package/dist/SurgicalRiskFlagsWidget-WCAHZKKG.mjs +144 -0
  124. package/dist/SurgicalRiskFlagsWidget-WCAHZKKG.mjs.map +1 -0
  125. package/dist/UrologyExaminationWidget-JYUGZ5CG.cjs +273 -0
  126. package/dist/UrologyExaminationWidget-JYUGZ5CG.cjs.map +1 -0
  127. package/dist/UrologyExaminationWidget-QDTD3FJX.mjs +271 -0
  128. package/dist/UrologyExaminationWidget-QDTD3FJX.mjs.map +1 -0
  129. package/dist/UrologyPathwayWidget-QTFKUIM7.mjs +153 -0
  130. package/dist/UrologyPathwayWidget-QTFKUIM7.mjs.map +1 -0
  131. package/dist/UrologyPathwayWidget-TXZQNGP4.cjs +155 -0
  132. package/dist/UrologyPathwayWidget-TXZQNGP4.cjs.map +1 -0
  133. package/dist/UrologySmartHistoryWidget-53NATEO3.cjs +471 -0
  134. package/dist/UrologySmartHistoryWidget-53NATEO3.cjs.map +1 -0
  135. package/dist/UrologySmartHistoryWidget-PBU4QXQJ.mjs +469 -0
  136. package/dist/UrologySmartHistoryWidget-PBU4QXQJ.mjs.map +1 -0
  137. package/dist/VitalsWidget-BRFUKGNO.mjs +187 -0
  138. package/dist/VitalsWidget-BRFUKGNO.mjs.map +1 -0
  139. package/dist/VitalsWidget-PDCYXNBM.cjs +208 -0
  140. package/dist/VitalsWidget-PDCYXNBM.cjs.map +1 -0
  141. package/dist/chunk-3KRDT7TX.mjs +137 -0
  142. package/dist/chunk-3KRDT7TX.mjs.map +1 -0
  143. package/dist/chunk-4BAKQIPJ.mjs +27 -0
  144. package/dist/chunk-4BAKQIPJ.mjs.map +1 -0
  145. package/dist/chunk-4KSZUIJE.cjs +143 -0
  146. package/dist/chunk-4KSZUIJE.cjs.map +1 -0
  147. package/dist/chunk-4PMNVBJD.mjs +121 -0
  148. package/dist/chunk-4PMNVBJD.mjs.map +1 -0
  149. package/dist/chunk-5E3APMY6.cjs +54 -0
  150. package/dist/chunk-5E3APMY6.cjs.map +1 -0
  151. package/dist/chunk-5I2RC47Y.mjs +75 -0
  152. package/dist/chunk-5I2RC47Y.mjs.map +1 -0
  153. package/dist/chunk-6YX37XBM.cjs +32 -0
  154. package/dist/chunk-6YX37XBM.cjs.map +1 -0
  155. package/dist/chunk-7L2JOWGA.mjs +30 -0
  156. package/dist/chunk-7L2JOWGA.mjs.map +1 -0
  157. package/dist/chunk-AIZ3XYEZ.cjs +551 -0
  158. package/dist/chunk-AIZ3XYEZ.cjs.map +1 -0
  159. package/dist/chunk-AZHTIUOL.mjs +116 -0
  160. package/dist/chunk-AZHTIUOL.mjs.map +1 -0
  161. package/dist/chunk-AZSAPO2V.cjs +174 -0
  162. package/dist/chunk-AZSAPO2V.cjs.map +1 -0
  163. package/dist/chunk-B3GBIAHZ.mjs +285 -0
  164. package/dist/chunk-B3GBIAHZ.mjs.map +1 -0
  165. package/dist/chunk-BMNY7F6H.mjs +148 -0
  166. package/dist/chunk-BMNY7F6H.mjs.map +1 -0
  167. package/dist/chunk-BOBX45NY.cjs +77 -0
  168. package/dist/chunk-BOBX45NY.cjs.map +1 -0
  169. package/dist/chunk-BU4ZEAAP.mjs +102 -0
  170. package/dist/chunk-BU4ZEAAP.mjs.map +1 -0
  171. package/dist/chunk-DZYV47QC.mjs +54 -0
  172. package/dist/chunk-DZYV47QC.mjs.map +1 -0
  173. package/dist/chunk-E7WUDHSA.cjs +127 -0
  174. package/dist/chunk-E7WUDHSA.cjs.map +1 -0
  175. package/dist/chunk-FHHISVCH.cjs +13 -0
  176. package/dist/chunk-FHHISVCH.cjs.map +1 -0
  177. package/dist/chunk-GNZWSVTB.mjs +29 -0
  178. package/dist/chunk-GNZWSVTB.mjs.map +1 -0
  179. package/dist/chunk-GPU5P3FB.cjs +236 -0
  180. package/dist/chunk-GPU5P3FB.cjs.map +1 -0
  181. package/dist/chunk-GXXWMHAA.mjs +49 -0
  182. package/dist/chunk-GXXWMHAA.mjs.map +1 -0
  183. package/dist/chunk-GZPCYSJK.mjs +104 -0
  184. package/dist/chunk-GZPCYSJK.mjs.map +1 -0
  185. package/dist/chunk-HEFZA2AH.mjs +22 -0
  186. package/dist/chunk-HEFZA2AH.mjs.map +1 -0
  187. package/dist/chunk-I4AV6BQF.mjs +10 -0
  188. package/dist/chunk-I4AV6BQF.mjs.map +1 -0
  189. package/dist/chunk-I7TJVWYV.cjs +73 -0
  190. package/dist/chunk-I7TJVWYV.cjs.map +1 -0
  191. package/dist/chunk-IFMQKLNW.mjs +39 -0
  192. package/dist/chunk-IFMQKLNW.mjs.map +1 -0
  193. package/dist/chunk-IFSKLIS2.cjs +12 -0
  194. package/dist/chunk-IFSKLIS2.cjs.map +1 -0
  195. package/dist/chunk-IKAKE7TR.mjs +527 -0
  196. package/dist/chunk-IKAKE7TR.mjs.map +1 -0
  197. package/dist/chunk-JE6VXRWW.cjs +86 -0
  198. package/dist/chunk-JE6VXRWW.cjs.map +1 -0
  199. package/dist/chunk-JMGUUFOJ.cjs +45 -0
  200. package/dist/chunk-JMGUUFOJ.cjs.map +1 -0
  201. package/dist/chunk-KJA5BLGX.cjs +31 -0
  202. package/dist/chunk-KJA5BLGX.cjs.map +1 -0
  203. package/dist/chunk-KMJOTMUQ.cjs +109 -0
  204. package/dist/chunk-KMJOTMUQ.cjs.map +1 -0
  205. package/dist/chunk-L4CIIT4U.cjs +388 -0
  206. package/dist/chunk-L4CIIT4U.cjs.map +1 -0
  207. package/dist/chunk-LBWB7MYU.cjs +287 -0
  208. package/dist/chunk-LBWB7MYU.cjs.map +1 -0
  209. package/dist/chunk-LGGOBIEA.mjs +61 -0
  210. package/dist/chunk-LGGOBIEA.mjs.map +1 -0
  211. package/dist/chunk-LQYWMYEC.mjs +28 -0
  212. package/dist/chunk-LQYWMYEC.mjs.map +1 -0
  213. package/dist/chunk-MQ2JV7HL.cjs +140 -0
  214. package/dist/chunk-MQ2JV7HL.cjs.map +1 -0
  215. package/dist/chunk-N4L76SHJ.cjs +65 -0
  216. package/dist/chunk-N4L76SHJ.cjs.map +1 -0
  217. package/dist/chunk-O3VQBPEW.cjs +72 -0
  218. package/dist/chunk-O3VQBPEW.cjs.map +1 -0
  219. package/dist/chunk-P62377LB.cjs +27 -0
  220. package/dist/chunk-P62377LB.cjs.map +1 -0
  221. package/dist/chunk-PHADAQSH.cjs +49 -0
  222. package/dist/chunk-PHADAQSH.cjs.map +1 -0
  223. package/dist/chunk-PZBJYPWW.cjs +52 -0
  224. package/dist/chunk-PZBJYPWW.cjs.map +1 -0
  225. package/dist/chunk-QKJ7BQSR.cjs +538 -0
  226. package/dist/chunk-QKJ7BQSR.cjs.map +1 -0
  227. package/dist/chunk-QS6WG2XJ.cjs +56 -0
  228. package/dist/chunk-QS6WG2XJ.cjs.map +1 -0
  229. package/dist/chunk-S7EMPE2D.cjs +104 -0
  230. package/dist/chunk-S7EMPE2D.cjs.map +1 -0
  231. package/dist/chunk-SCMXLRX5.mjs +42 -0
  232. package/dist/chunk-SCMXLRX5.mjs.map +1 -0
  233. package/dist/chunk-SHQHDSA4.cjs +1959 -0
  234. package/dist/chunk-SHQHDSA4.cjs.map +1 -0
  235. package/dist/chunk-TJHG5WHX.cjs +47 -0
  236. package/dist/chunk-TJHG5WHX.cjs.map +1 -0
  237. package/dist/chunk-UGGUIXUS.cjs +41 -0
  238. package/dist/chunk-UGGUIXUS.cjs.map +1 -0
  239. package/dist/chunk-ULMK3TUI.mjs +69 -0
  240. package/dist/chunk-ULMK3TUI.mjs.map +1 -0
  241. package/dist/chunk-UULLSS4O.mjs +82 -0
  242. package/dist/chunk-UULLSS4O.mjs.map +1 -0
  243. package/dist/chunk-VNFBUAZD.mjs +25 -0
  244. package/dist/chunk-VNFBUAZD.mjs.map +1 -0
  245. package/dist/chunk-VPU66PI6.mjs +11 -0
  246. package/dist/chunk-VPU66PI6.mjs.map +1 -0
  247. package/dist/chunk-VZT5YNCD.mjs +228 -0
  248. package/dist/chunk-VZT5YNCD.mjs.map +1 -0
  249. package/dist/chunk-WYVXXEZI.mjs +46 -0
  250. package/dist/chunk-WYVXXEZI.mjs.map +1 -0
  251. package/dist/chunk-XDUVO3IZ.mjs +547 -0
  252. package/dist/chunk-XDUVO3IZ.mjs.map +1 -0
  253. package/dist/chunk-Y7TIWH4I.mjs +25 -0
  254. package/dist/chunk-Y7TIWH4I.mjs.map +1 -0
  255. package/dist/chunk-YEFM2ERQ.cjs +143 -0
  256. package/dist/chunk-YEFM2ERQ.cjs.map +1 -0
  257. package/dist/chunk-YHNI5NIX.mjs +361 -0
  258. package/dist/chunk-YHNI5NIX.mjs.map +1 -0
  259. package/dist/chunk-ZTT5XJR7.mjs +1921 -0
  260. package/dist/chunk-ZTT5XJR7.mjs.map +1 -0
  261. package/dist/index.cjs +2091 -14564
  262. package/dist/index.cjs.map +1 -1
  263. package/dist/index.d.cts +62 -767
  264. package/dist/index.d.ts +62 -767
  265. package/dist/index.mjs +1873 -14394
  266. package/dist/index.mjs.map +1 -1
  267. package/dist/read-only-table.cjs +15 -0
  268. package/dist/read-only-table.cjs.map +1 -0
  269. package/dist/read-only-table.d.cts +10 -0
  270. package/dist/read-only-table.d.ts +10 -0
  271. package/dist/read-only-table.mjs +6 -0
  272. package/dist/read-only-table.mjs.map +1 -0
  273. package/dist/rich-text.cjs +24 -0
  274. package/dist/rich-text.cjs.map +1 -0
  275. package/dist/rich-text.d.cts +8 -0
  276. package/dist/rich-text.d.ts +8 -0
  277. package/dist/rich-text.mjs +11 -0
  278. package/dist/rich-text.mjs.map +1 -0
  279. package/dist/richTextClassName--8wkuHkW.d.cts +10 -0
  280. package/dist/richTextClassName--8wkuHkW.d.ts +10 -0
  281. package/dist/smart.cjs +23 -0
  282. package/dist/smart.cjs.map +1 -0
  283. package/dist/smart.d.cts +23 -0
  284. package/dist/smart.d.ts +23 -0
  285. package/dist/smart.mjs +10 -0
  286. package/dist/smart.mjs.map +1 -0
  287. package/dist/types-CYtJk8H9.d.cts +782 -0
  288. package/dist/types-CYtJk8H9.d.ts +782 -0
  289. package/package.json +20 -2
@@ -0,0 +1,116 @@
1
+ import { cn } from './chunk-VPU66PI6.mjs';
2
+ import * as React from 'react';
3
+ import * as SelectPrimitive from '@radix-ui/react-select';
4
+ import { ChevronDown, ChevronUp, Check } from 'lucide-react';
5
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
+
7
+ var Select = SelectPrimitive.Root;
8
+ var SelectValue = SelectPrimitive.Value;
9
+ var SelectTrigger = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
10
+ SelectPrimitive.Trigger,
11
+ {
12
+ ref,
13
+ className: cn(
14
+ "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
15
+ className
16
+ ),
17
+ ...props,
18
+ children: [
19
+ children,
20
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 opacity-50" }) })
21
+ ]
22
+ }
23
+ ));
24
+ SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
25
+ var SelectScrollUpButton = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
26
+ SelectPrimitive.ScrollUpButton,
27
+ {
28
+ ref,
29
+ className: cn(
30
+ "flex cursor-default items-center justify-center py-1",
31
+ className
32
+ ),
33
+ ...props,
34
+ children: /* @__PURE__ */ jsx(ChevronUp, { className: "h-4 w-4" })
35
+ }
36
+ ));
37
+ SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
38
+ var SelectScrollDownButton = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
39
+ SelectPrimitive.ScrollDownButton,
40
+ {
41
+ ref,
42
+ className: cn(
43
+ "flex cursor-default items-center justify-center py-1",
44
+ className
45
+ ),
46
+ ...props,
47
+ children: /* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4" })
48
+ }
49
+ ));
50
+ SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
51
+ var SelectContent = React.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
52
+ SelectPrimitive.Content,
53
+ {
54
+ ref,
55
+ className: cn(
56
+ "relative z-50 max-h-52 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
57
+ position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
58
+ className
59
+ ),
60
+ position,
61
+ ...props,
62
+ children: [
63
+ /* @__PURE__ */ jsx(SelectScrollUpButton, {}),
64
+ /* @__PURE__ */ jsx(
65
+ SelectPrimitive.Viewport,
66
+ {
67
+ className: cn(
68
+ "p-1",
69
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
70
+ ),
71
+ children
72
+ }
73
+ ),
74
+ /* @__PURE__ */ jsx(SelectScrollDownButton, {})
75
+ ]
76
+ }
77
+ ) }));
78
+ SelectContent.displayName = SelectPrimitive.Content.displayName;
79
+ var SelectLabel = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
80
+ SelectPrimitive.Label,
81
+ {
82
+ ref,
83
+ className: cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className),
84
+ ...props
85
+ }
86
+ ));
87
+ SelectLabel.displayName = SelectPrimitive.Label.displayName;
88
+ var SelectItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
89
+ SelectPrimitive.Item,
90
+ {
91
+ ref,
92
+ className: cn(
93
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
94
+ className
95
+ ),
96
+ ...props,
97
+ children: [
98
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
99
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
100
+ ]
101
+ }
102
+ ));
103
+ SelectItem.displayName = SelectPrimitive.Item.displayName;
104
+ var SelectSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
105
+ SelectPrimitive.Separator,
106
+ {
107
+ ref,
108
+ className: cn("-mx-1 my-1 h-px bg-muted", className),
109
+ ...props
110
+ }
111
+ ));
112
+ SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
113
+
114
+ export { Select, SelectContent, SelectItem, SelectTrigger, SelectValue };
115
+ //# sourceMappingURL=chunk-AZHTIUOL.mjs.map
116
+ //# sourceMappingURL=chunk-AZHTIUOL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/shadcn/select.tsx"],"names":[],"mappings":"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","file":"chunk-AZHTIUOL.mjs","sourcesContent":["import * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\n\nimport { cn } from \"../../core/utils\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-52 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n"]}
@@ -0,0 +1,174 @@
1
+ 'use strict';
2
+
3
+ var chunk4KSZUIJE_cjs = require('./chunk-4KSZUIJE.cjs');
4
+ var chunkO3VQBPEW_cjs = require('./chunk-O3VQBPEW.cjs');
5
+ var chunkFHHISVCH_cjs = require('./chunk-FHHISVCH.cjs');
6
+ var React2 = require('react');
7
+ var lucideReact = require('lucide-react');
8
+ var reactDayPicker = require('react-day-picker');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+ var PopoverPrimitive = require('@radix-ui/react-popover');
11
+
12
+ function _interopNamespace(e) {
13
+ if (e && e.__esModule) return e;
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
31
+ var PopoverPrimitive__namespace = /*#__PURE__*/_interopNamespace(PopoverPrimitive);
32
+
33
+ function CalendarDropdown(props) {
34
+ const { options, value, onChange } = props;
35
+ const handleValueChange = (newValue) => {
36
+ if (!onChange) return;
37
+ const syntheticEvent = {
38
+ target: { value: newValue }
39
+ };
40
+ onChange(syntheticEvent);
41
+ };
42
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunk4KSZUIJE_cjs.Select, { value: value?.toString(), onValueChange: handleValueChange, children: [
43
+ /* @__PURE__ */ jsxRuntime.jsx(chunk4KSZUIJE_cjs.SelectTrigger, { className: "h-7 px-2 text-sm", "aria-label": props["aria-label"], children: /* @__PURE__ */ jsxRuntime.jsx(chunk4KSZUIJE_cjs.SelectValue, {}) }),
44
+ /* @__PURE__ */ jsxRuntime.jsx(chunk4KSZUIJE_cjs.SelectContent, { children: options?.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
45
+ chunk4KSZUIJE_cjs.SelectItem,
46
+ {
47
+ value: option.value.toString(),
48
+ disabled: option.disabled,
49
+ children: option.label
50
+ },
51
+ option.value.toString()
52
+ )) })
53
+ ] });
54
+ }
55
+ function Calendar({
56
+ className,
57
+ classNames,
58
+ showOutsideDays = true,
59
+ ...props
60
+ }) {
61
+ const captionLayout = props.captionLayout ?? "dropdown";
62
+ const isDropdownCaption = captionLayout === "dropdown" || captionLayout === "dropdown-months" || captionLayout === "dropdown-years";
63
+ const startMonth = props.startMonth ?? (isDropdownCaption ? new Date(1900, 0) : void 0);
64
+ const endMonth = props.endMonth ?? (isDropdownCaption ? new Date(2100, 11) : void 0);
65
+ return /* @__PURE__ */ jsxRuntime.jsx(
66
+ reactDayPicker.DayPicker,
67
+ {
68
+ showOutsideDays,
69
+ captionLayout,
70
+ hideNavigation: props.hideNavigation ?? isDropdownCaption,
71
+ navLayout: props.navLayout ?? (isDropdownCaption ? "around" : void 0),
72
+ startMonth,
73
+ endMonth,
74
+ className: chunkFHHISVCH_cjs.cn("p-3 relative", className),
75
+ classNames: {
76
+ months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
77
+ month: "space-y-4",
78
+ caption: "flex justify-center pt-1 relative items-center",
79
+ caption_label: chunkFHHISVCH_cjs.cn(
80
+ "text-sm font-medium",
81
+ isDropdownCaption && "sr-only"
82
+ ),
83
+ dropdowns: "flex items-center gap-2",
84
+ months_dropdown: "h-7 rounded-md border border-input bg-background px-2 text-sm",
85
+ years_dropdown: "h-7 rounded-md border border-input bg-background px-2 text-sm",
86
+ nav: "space-x-1 flex items-center",
87
+ nav_button: chunkFHHISVCH_cjs.cn(
88
+ chunkO3VQBPEW_cjs.buttonVariants({ variant: "outline" }),
89
+ "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
90
+ ),
91
+ nav_button_previous: isDropdownCaption ? "" : "absolute left-1",
92
+ nav_button_next: isDropdownCaption ? "" : "absolute right-1",
93
+ table: "w-full border-collapse space-y-1",
94
+ head_row: "flex",
95
+ head_cell: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
96
+ row: "flex w-full mt-2",
97
+ cell: "h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20",
98
+ day: chunkFHHISVCH_cjs.cn(
99
+ chunkO3VQBPEW_cjs.buttonVariants({ variant: "ghost" }),
100
+ "h-9 w-9 p-0 font-normal aria-selected:opacity-100"
101
+ ),
102
+ day_range_end: "day-range-end",
103
+ day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
104
+ day_today: "bg-accent text-accent-foreground",
105
+ day_outside: "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
106
+ day_disabled: "text-muted-foreground opacity-50",
107
+ day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
108
+ day_hidden: "invisible",
109
+ // v9 keys with explicit positioning relative to the NEW container
110
+ button_previous: chunkFHHISVCH_cjs.cn(
111
+ chunkO3VQBPEW_cjs.buttonVariants({ variant: "outline" }),
112
+ "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100",
113
+ isDropdownCaption ? "" : "absolute left-1 top-3"
114
+ ),
115
+ button_next: chunkFHHISVCH_cjs.cn(
116
+ chunkO3VQBPEW_cjs.buttonVariants({ variant: "outline" }),
117
+ "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100",
118
+ isDropdownCaption ? "" : "absolute right-1 top-3"
119
+ ),
120
+ month_grid: "w-full border-collapse space-y-1",
121
+ weekdays: "flex",
122
+ weekday: "text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]",
123
+ week: "flex w-full mt-2",
124
+ day_button: chunkFHHISVCH_cjs.cn(
125
+ chunkO3VQBPEW_cjs.buttonVariants({ variant: "ghost" }),
126
+ "h-9 w-9 p-0 font-normal aria-selected:opacity-100"
127
+ ),
128
+ range_end: "day-range-end",
129
+ selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
130
+ today: "bg-accent text-accent-foreground",
131
+ outside: "day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30",
132
+ disabled: "text-muted-foreground opacity-50",
133
+ range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
134
+ hidden: "invisible",
135
+ ...classNames
136
+ },
137
+ components: {
138
+ IconLeft: () => /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4" }),
139
+ IconRight: () => /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" }),
140
+ // @ts-expect-error react-day-picker v9 component typing differences
141
+ Dropdown: CalendarDropdown,
142
+ Chevron: ({ orientation }) => {
143
+ const Icon = orientation === "left" ? lucideReact.ChevronLeft : lucideReact.ChevronRight;
144
+ return /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-4 w-4" });
145
+ }
146
+ },
147
+ ...props
148
+ }
149
+ );
150
+ }
151
+ Calendar.displayName = "Calendar";
152
+ var Popover = PopoverPrimitive__namespace.Root;
153
+ var PopoverTrigger = PopoverPrimitive__namespace.Trigger;
154
+ var PopoverContent = React2__namespace.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
155
+ PopoverPrimitive__namespace.Content,
156
+ {
157
+ ref,
158
+ align,
159
+ sideOffset,
160
+ className: chunkFHHISVCH_cjs.cn(
161
+ "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
162
+ className
163
+ ),
164
+ ...props
165
+ }
166
+ ) }));
167
+ PopoverContent.displayName = PopoverPrimitive__namespace.Content.displayName;
168
+
169
+ exports.Calendar = Calendar;
170
+ exports.Popover = Popover;
171
+ exports.PopoverContent = PopoverContent;
172
+ exports.PopoverTrigger = PopoverTrigger;
173
+ //# sourceMappingURL=chunk-AZSAPO2V.cjs.map
174
+ //# sourceMappingURL=chunk-AZSAPO2V.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ui/shadcn/calendar.tsx","../src/ui/shadcn/popover.tsx"],"names":["Select","jsx","SelectTrigger","SelectValue","SelectContent","SelectItem","DayPicker","cn","buttonVariants","ChevronLeft","ChevronRight","PopoverPrimitive","React2"],"mappings":"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","file":"chunk-AZSAPO2V.cjs","sourcesContent":["import * as React from \"react\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\nimport { DayPicker } from \"react-day-picker\"\n\nimport { cn } from \"../../core/utils\"\nimport { buttonVariants } from \"./button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"./select\"\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>\n\ntype RdpDropdownOption = {\n value: string | number\n label: string\n disabled?: boolean\n}\n\ntype RdpDropdownProps = {\n options?: RdpDropdownOption[]\n value?: string | number\n onChange?: React.ChangeEventHandler<HTMLSelectElement>\n \"aria-label\"?: string\n}\n\nfunction CalendarDropdown(props: RdpDropdownProps) {\n const { options, value, onChange } = props\n\n const handleValueChange = (newValue: string) => {\n if (!onChange) return\n const syntheticEvent = {\n target: { value: newValue },\n } as unknown as React.ChangeEvent<HTMLSelectElement>\n onChange(syntheticEvent)\n }\n\n return (\n <Select value={value?.toString()} onValueChange={handleValueChange}>\n <SelectTrigger className=\"h-7 px-2 text-sm\" aria-label={props[\"aria-label\"]}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {options?.map((option) => (\n <SelectItem\n key={option.value.toString()}\n value={option.value.toString()}\n disabled={option.disabled}\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )\n}\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: CalendarProps) {\n const captionLayout = props.captionLayout ?? \"dropdown\"\n const isDropdownCaption =\n captionLayout === \"dropdown\" ||\n captionLayout === \"dropdown-months\" ||\n captionLayout === \"dropdown-years\"\n\n // Provide a broad default year range for dropdown captions.\n // Callers can override by passing `startMonth` / `endMonth`.\n const startMonth =\n props.startMonth ?? (isDropdownCaption ? new Date(1900, 0) : undefined)\n const endMonth =\n props.endMonth ?? (isDropdownCaption ? new Date(2100, 11) : undefined)\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n captionLayout={captionLayout}\n hideNavigation={props.hideNavigation ?? isDropdownCaption}\n navLayout={props.navLayout ?? (isDropdownCaption ? \"around\" : undefined)}\n startMonth={startMonth}\n endMonth={endMonth}\n className={cn(\"p-3 relative\", className)}\n classNames={{\n months: \"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0\",\n month: \"space-y-4\",\n caption: \"flex justify-center pt-1 relative items-center\",\n caption_label: cn(\n \"text-sm font-medium\",\n isDropdownCaption && \"sr-only\"\n ),\n dropdowns: \"flex items-center gap-2\",\n months_dropdown:\n \"h-7 rounded-md border border-input bg-background px-2 text-sm\",\n years_dropdown:\n \"h-7 rounded-md border border-input bg-background px-2 text-sm\",\n nav: \"space-x-1 flex items-center\",\n nav_button: cn(\n buttonVariants({ variant: \"outline\" }),\n \"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\"\n ),\n nav_button_previous: isDropdownCaption ? \"\" : \"absolute left-1\",\n nav_button_next: isDropdownCaption ? \"\" : \"absolute right-1\",\n table: \"w-full border-collapse space-y-1\",\n head_row: \"flex\",\n head_cell:\n \"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]\",\n row: \"flex w-full mt-2\",\n cell: \"h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20\",\n day: cn(\n buttonVariants({ variant: \"ghost\" }),\n \"h-9 w-9 p-0 font-normal aria-selected:opacity-100\"\n ),\n day_range_end: \"day-range-end\",\n day_selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n day_today: \"bg-accent text-accent-foreground\",\n day_outside:\n \"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30\",\n day_disabled: \"text-muted-foreground opacity-50\",\n day_range_middle:\n \"aria-selected:bg-accent aria-selected:text-accent-foreground\",\n day_hidden: \"invisible\",\n\n // v9 keys with explicit positioning relative to the NEW container\n button_previous: cn(\n buttonVariants({ variant: \"outline\" }),\n \"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\n isDropdownCaption ? \"\" : \"absolute left-1 top-3\"\n ),\n button_next: cn(\n buttonVariants({ variant: \"outline\" }),\n \"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\n isDropdownCaption ? \"\" : \"absolute right-1 top-3\"\n ),\n month_grid: \"w-full border-collapse space-y-1\",\n weekdays: \"flex\",\n weekday: \"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]\",\n week: \"flex w-full mt-2\",\n day_button: cn(\n buttonVariants({ variant: \"ghost\" }),\n \"h-9 w-9 p-0 font-normal aria-selected:opacity-100\"\n ),\n range_end: \"day-range-end\",\n selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n today: \"bg-accent text-accent-foreground\",\n outside: \"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30\",\n disabled: \"text-muted-foreground opacity-50\",\n range_middle: \"aria-selected:bg-accent aria-selected:text-accent-foreground\",\n hidden: \"invisible\",\n \n ...classNames,\n }}\n components={{\n IconLeft: () => <ChevronLeft className=\"h-4 w-4\" />,\n IconRight: () => <ChevronRight className=\"h-4 w-4\" />,\n // @ts-expect-error react-day-picker v9 component typing differences\n Dropdown: CalendarDropdown,\n Chevron: ({ orientation }) => {\n const Icon = orientation === 'left' ? ChevronLeft : ChevronRight\n return <Icon className=\"h-4 w-4\" />\n }\n }}\n {...props}\n />\n )\n}\nCalendar.displayName = \"Calendar\"\n\nexport { Calendar }\n","import * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"../../core/utils\"\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent }\n\n"]}
@@ -0,0 +1,285 @@
1
+ import { AddEntityDialog } from './chunk-GZPCYSJK.mjs';
2
+ import { Input } from './chunk-VNFBUAZD.mjs';
3
+ import { cn } from './chunk-VPU66PI6.mjs';
4
+ import { useState, useRef, useEffect } from 'react';
5
+ import { X, Check } from 'lucide-react';
6
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
7
+
8
+ var ADD_FEEDBACK_MS = 320;
9
+ function mapToInvestigation(result) {
10
+ return {
11
+ ...result,
12
+ label: result.name,
13
+ is_custom: false,
14
+ fromAI: false
15
+ };
16
+ }
17
+ var AddInvestigationField = ({
18
+ label = "Investigations",
19
+ value,
20
+ onChange,
21
+ onSearch,
22
+ recentlyUsed = [],
23
+ frequentItems = [],
24
+ packages = []
25
+ }) => {
26
+ const [open, setOpen] = useState(false);
27
+ const [query, setQuery] = useState("");
28
+ const [results, setResults] = useState([]);
29
+ const [loading, setLoading] = useState(false);
30
+ const [addingId, setAddingId] = useState(null);
31
+ const [addingFrequentId, setAddingFrequentId] = useState(null);
32
+ const debounceRef = useRef(null);
33
+ const valueRef = useRef([]);
34
+ const searchInputRef = useRef(null);
35
+ const addedByPackage = useRef(/* @__PURE__ */ new Map());
36
+ const [selectedPackageIds, setSelectedPackageIds] = useState(/* @__PURE__ */ new Set());
37
+ const safeValue = Array.isArray(value) ? value : [];
38
+ valueRef.current = safeValue;
39
+ const addedIds = new Set(safeValue.map((inv) => inv.id));
40
+ useEffect(() => {
41
+ if (!open) {
42
+ setQuery("");
43
+ setResults([]);
44
+ setAddingId(null);
45
+ setAddingFrequentId(null);
46
+ }
47
+ }, [open]);
48
+ function handleQueryChange(q) {
49
+ setQuery(q);
50
+ if (debounceRef.current) clearTimeout(debounceRef.current);
51
+ if (!q.trim()) {
52
+ setResults([]);
53
+ return;
54
+ }
55
+ debounceRef.current = setTimeout(async () => {
56
+ setLoading(true);
57
+ try {
58
+ const res = await onSearch(q);
59
+ setResults(res);
60
+ } finally {
61
+ setLoading(false);
62
+ }
63
+ }, 500);
64
+ }
65
+ function addInvestigation(result) {
66
+ if (!addedIds.has(result.id)) {
67
+ onChange([...valueRef.current, mapToInvestigation(result)]);
68
+ }
69
+ setQuery("");
70
+ setResults([]);
71
+ }
72
+ function handleResultClick(result) {
73
+ if (addedIds.has(result.id)) return;
74
+ setAddingId(result.id);
75
+ setTimeout(() => {
76
+ addInvestigation(result);
77
+ setAddingId(null);
78
+ setTimeout(() => searchInputRef.current?.focus(), 0);
79
+ }, ADD_FEEDBACK_MS);
80
+ }
81
+ function removeInvestigation(id) {
82
+ onChange(safeValue.filter((inv) => inv.id !== id));
83
+ }
84
+ function handleRecentlyUsedToggle(result) {
85
+ if (addedIds.has(result.id)) {
86
+ removeInvestigation(result.id);
87
+ } else {
88
+ addInvestigation(result);
89
+ }
90
+ }
91
+ async function handleFrequentItemToggle(item) {
92
+ const id = String(item.id);
93
+ const addedById = addedIds.has(id);
94
+ const addedByName = safeValue.some((inv) => inv.name === item.name);
95
+ if (addedById || addedByName) {
96
+ if (addedById) removeInvestigation(id);
97
+ else onChange(safeValue.filter((inv) => inv.name !== item.name));
98
+ return;
99
+ }
100
+ setAddingFrequentId(id);
101
+ try {
102
+ const searchResults = await onSearch(item.name);
103
+ const first = searchResults?.[0];
104
+ if (first && !valueRef.current.some((inv) => inv.id === first.id)) {
105
+ onChange([...valueRef.current, mapToInvestigation(first)]);
106
+ }
107
+ } finally {
108
+ setAddingFrequentId(null);
109
+ }
110
+ }
111
+ function handlePackageToggle(pkg) {
112
+ const alreadyAdded = addedByPackage.current.has(pkg.id);
113
+ if (alreadyAdded) {
114
+ const idsToRemove = new Set(addedByPackage.current.get(pkg.id) ?? []);
115
+ onChange(valueRef.current.filter((inv) => !idsToRemove.has(inv.id)));
116
+ addedByPackage.current.delete(pkg.id);
117
+ setSelectedPackageIds((prev) => {
118
+ const next = new Set(prev);
119
+ next.delete(pkg.id);
120
+ return next;
121
+ });
122
+ } else {
123
+ const currentIds = new Set(valueRef.current.map((inv) => inv.id));
124
+ const newTests = pkg.tests.filter((t) => !currentIds.has(t.id)).map((t) => mapToInvestigation(t));
125
+ if (newTests.length > 0) {
126
+ onChange([...valueRef.current, ...newTests]);
127
+ }
128
+ addedByPackage.current.set(pkg.id, newTests.map((t) => t.id));
129
+ setSelectedPackageIds((prev) => new Set(prev).add(pkg.id));
130
+ }
131
+ }
132
+ const recentlyUsedChips = recentlyUsed.map((r) => {
133
+ const isAdded = addedIds.has(r.id);
134
+ return /* @__PURE__ */ jsxs(
135
+ "button",
136
+ {
137
+ type: "button",
138
+ onClick: () => handleRecentlyUsedToggle(r),
139
+ className: cn(
140
+ "rounded-full border text-xs px-3 py-1 transition-colors",
141
+ isAdded ? "border-green-300 bg-green-50 text-green-700" : "border-border bg-white hover:bg-gray-50"
142
+ ),
143
+ children: [
144
+ isAdded && /* @__PURE__ */ jsx("span", { className: "mr-1", children: "\u2713" }),
145
+ r.name
146
+ ]
147
+ },
148
+ r.id
149
+ );
150
+ });
151
+ const limitedFrequentItems = frequentItems.slice(0, 25);
152
+ const frequentItemChips = limitedFrequentItems.length > 0 ? limitedFrequentItems.map((item) => {
153
+ const id = String(item.id);
154
+ const isAdded = safeValue.some((inv) => inv.id === id) || safeValue.some((inv) => inv.name === item.name);
155
+ const isAdding = addingFrequentId === id;
156
+ return /* @__PURE__ */ jsxs(
157
+ "button",
158
+ {
159
+ type: "button",
160
+ disabled: isAdding,
161
+ onClick: () => handleFrequentItemToggle(item),
162
+ className: cn(
163
+ "rounded-full border text-xs px-3 py-1 transition-colors",
164
+ isAdded ? "border-green-300 bg-green-50 text-green-700" : "border-border bg-white hover:bg-gray-50",
165
+ isAdding && "opacity-70 pointer-events-none"
166
+ ),
167
+ children: [
168
+ isAdded && /* @__PURE__ */ jsx("span", { className: "mr-1", children: "\u2713" }),
169
+ isAdding ? "\u2026" : item.name
170
+ ]
171
+ },
172
+ item.id
173
+ );
174
+ }) : [];
175
+ const packageChips = packages.map((pkg) => {
176
+ const isAdded = selectedPackageIds.has(pkg.id);
177
+ return /* @__PURE__ */ jsxs(
178
+ "button",
179
+ {
180
+ type: "button",
181
+ onClick: () => handlePackageToggle(pkg),
182
+ className: cn(
183
+ "rounded-full border text-xs px-4 py-1.5 transition-colors flex items-center gap-2",
184
+ isAdded ? "border-green-300 bg-green-50 text-green-700" : "border-border bg-white hover:bg-gray-50"
185
+ ),
186
+ children: [
187
+ isAdded && /* @__PURE__ */ jsx("span", { children: "\u2713" }),
188
+ /* @__PURE__ */ jsx("span", { className: "font-semibold", children: pkg.name }),
189
+ /* @__PURE__ */ jsx("span", { className: cn(
190
+ "rounded-full px-1.5 py-0.5 text-[10px] font-medium",
191
+ isAdded ? "bg-green-100 text-green-600" : "bg-purple-100 text-purple-600"
192
+ ), children: pkg.tests.length })
193
+ ]
194
+ },
195
+ pkg.id
196
+ );
197
+ });
198
+ const chipSections = [];
199
+ if (frequentItemChips.length > 0) {
200
+ chipSections.push({ label: "Frequently used", content: /* @__PURE__ */ jsx(Fragment, { children: frequentItemChips }) });
201
+ } else if (recentlyUsedChips.length > 0) {
202
+ chipSections.push({ label: "Recently Used", content: /* @__PURE__ */ jsx(Fragment, { children: recentlyUsedChips }) });
203
+ }
204
+ if (packageChips.length > 0) {
205
+ chipSections.push({ label: "Packages", content: /* @__PURE__ */ jsx(Fragment, { children: packageChips }) });
206
+ }
207
+ return /* @__PURE__ */ jsxs("div", { className: "rounded-md overflow-hidden flex flex-col bg-white border border-[#D0D0D0] space-y-3 p-3 h-fit", children: [
208
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-3", children: [
209
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-semibold", children: label }),
210
+ /* @__PURE__ */ jsx(
211
+ "button",
212
+ {
213
+ type: "button",
214
+ onClick: () => setOpen(true),
215
+ className: "text-sm font-semibold text-purple-600 hover:text-purple-800 cursor-pointer",
216
+ children: "ADD"
217
+ }
218
+ )
219
+ ] }),
220
+ safeValue.length > 0 && /* @__PURE__ */ jsx("div", { className: "divide-y divide-border rounded-lg border border-border overflow-hidden", children: safeValue.map((inv) => /* @__PURE__ */ jsxs(
221
+ "div",
222
+ {
223
+ className: "flex items-center justify-between px-3 py-2 bg-white hover:bg-gray-50",
224
+ children: [
225
+ /* @__PURE__ */ jsx("span", { className: "text-sm", children: inv.name }),
226
+ /* @__PURE__ */ jsx(
227
+ "button",
228
+ {
229
+ type: "button",
230
+ onClick: () => removeInvestigation(inv.id),
231
+ className: "text-muted-foreground hover:text-red-500 transition-colors cursor-pointer",
232
+ children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
233
+ }
234
+ )
235
+ ]
236
+ },
237
+ inv.id
238
+ )) }),
239
+ /* @__PURE__ */ jsx(
240
+ AddEntityDialog,
241
+ {
242
+ open,
243
+ onClose: () => setOpen(false),
244
+ title: "Add Investigation",
245
+ chipSections: chipSections.length > 0 ? chipSections : void 0,
246
+ children: /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
247
+ /* @__PURE__ */ jsx(
248
+ Input,
249
+ {
250
+ ref: searchInputRef,
251
+ value: query,
252
+ onChange: (e) => handleQueryChange(e.target.value),
253
+ placeholder: "Search for an investigation...",
254
+ className: "border border-border rounded-md focus-visible:ring-0"
255
+ }
256
+ ),
257
+ loading && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground py-1", children: "Searching\u2026" }),
258
+ !loading && results.length > 0 && /* @__PURE__ */ jsx("div", { className: "border border-border rounded-md overflow-hidden", children: results.map((r) => {
259
+ const isAdding = addingId === r.id;
260
+ return /* @__PURE__ */ jsxs(
261
+ "button",
262
+ {
263
+ type: "button",
264
+ onClick: () => handleResultClick(r),
265
+ className: cn(
266
+ "w-full text-left px-3 py-2 text-sm transition-all duration-300 ease-out border-b border-border last:border-b-0 cursor-pointer flex items-center justify-between gap-2",
267
+ isAdding ? "bg-green-50 border-green-200" : "hover:bg-gray-50"
268
+ ),
269
+ children: [
270
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: r.name }),
271
+ isAdding && /* @__PURE__ */ jsx(Check, { className: "h-4 w-4 shrink-0 text-green-600" })
272
+ ]
273
+ },
274
+ r.id
275
+ );
276
+ }) })
277
+ ] })
278
+ }
279
+ )
280
+ ] });
281
+ };
282
+
283
+ export { AddInvestigationField };
284
+ //# sourceMappingURL=chunk-B3GBIAHZ.mjs.map
285
+ //# sourceMappingURL=chunk-B3GBIAHZ.mjs.map