@mieweb/ui 0.6.1 → 0.7.0-dev.178

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 (450) hide show
  1. package/README.md +90 -53
  2. package/dist/CsvBlock-2A5VEDD3.cjs +15 -0
  3. package/dist/CsvBlock-2A5VEDD3.cjs.map +1 -0
  4. package/dist/CsvBlock-D6PWAJ5X.js +6 -0
  5. package/dist/CsvBlock-D6PWAJ5X.js.map +1 -0
  6. package/dist/HtmlPreviewBlock-PEHTJ6C3.js +6 -0
  7. package/dist/HtmlPreviewBlock-PEHTJ6C3.js.map +1 -0
  8. package/dist/HtmlPreviewBlock-SYXCV5RH.cjs +15 -0
  9. package/dist/HtmlPreviewBlock-SYXCV5RH.cjs.map +1 -0
  10. package/dist/MedicationEditor-Bp4NLy7y.d.cts +352 -0
  11. package/dist/MedicationEditor-Bp4NLy7y.d.ts +352 -0
  12. package/dist/MermaidBlock-7NK3AVK2.js +6 -0
  13. package/dist/MermaidBlock-7NK3AVK2.js.map +1 -0
  14. package/dist/MermaidBlock-AFXNP5NK.cjs +15 -0
  15. package/dist/MermaidBlock-AFXNP5NK.cjs.map +1 -0
  16. package/dist/SurveyBlock-6KRNKFH5.cjs +15 -0
  17. package/dist/SurveyBlock-6KRNKFH5.cjs.map +1 -0
  18. package/dist/SurveyBlock-NNDGXGG4.js +6 -0
  19. package/dist/SurveyBlock-NNDGXGG4.js.map +1 -0
  20. package/dist/ag-grid.cjs +6 -6
  21. package/dist/ag-grid.cjs.map +1 -1
  22. package/dist/ag-grid.js +2 -2
  23. package/dist/ag-grid.js.map +1 -1
  24. package/dist/brands/index.cjs +17 -17
  25. package/dist/brands/index.js +4 -4
  26. package/dist/chunk-372IIHUA.cjs +2017 -0
  27. package/dist/chunk-372IIHUA.cjs.map +1 -0
  28. package/dist/{chunk-2DS3RJ2D.js → chunk-3TERETXH.js} +112 -3
  29. package/dist/chunk-3TERETXH.js.map +1 -0
  30. package/dist/chunk-44CK4CT2.cjs +336 -0
  31. package/dist/chunk-44CK4CT2.cjs.map +1 -0
  32. package/dist/{chunk-FSBFQBNE.cjs → chunk-4GXECTPS.cjs} +2 -2
  33. package/dist/{chunk-FSBFQBNE.cjs.map → chunk-4GXECTPS.cjs.map} +1 -1
  34. package/dist/chunk-4LVPQ44A.js +228 -0
  35. package/dist/chunk-4LVPQ44A.js.map +1 -0
  36. package/dist/{chunk-6555OYRU.js → chunk-5BQE6BEL.js} +2 -2
  37. package/dist/{chunk-6555OYRU.js.map → chunk-5BQE6BEL.js.map} +1 -1
  38. package/dist/chunk-62ZOA6PX.js +31 -0
  39. package/dist/chunk-62ZOA6PX.js.map +1 -0
  40. package/dist/chunk-63KVQHGQ.cjs +1802 -0
  41. package/dist/chunk-63KVQHGQ.cjs.map +1 -0
  42. package/dist/chunk-6AHYYWVB.js +78 -0
  43. package/dist/chunk-6AHYYWVB.js.map +1 -0
  44. package/dist/chunk-6I7IDZ4A.js +51 -0
  45. package/dist/chunk-6I7IDZ4A.js.map +1 -0
  46. package/dist/chunk-6ZYE6JUK.cjs +80 -0
  47. package/dist/chunk-6ZYE6JUK.cjs.map +1 -0
  48. package/dist/chunk-7QXG5BBB.cjs +164 -0
  49. package/dist/chunk-7QXG5BBB.cjs.map +1 -0
  50. package/dist/chunk-7WMSUXOQ.js +182 -0
  51. package/dist/chunk-7WMSUXOQ.js.map +1 -0
  52. package/dist/chunk-7XUN3OQT.js +3 -0
  53. package/dist/{chunk-V2DF2GUE.js.map → chunk-7XUN3OQT.js.map} +1 -1
  54. package/dist/chunk-7ZVTLTJF.js +109 -0
  55. package/dist/chunk-7ZVTLTJF.js.map +1 -0
  56. package/dist/chunk-AES2BKEW.cjs +229 -0
  57. package/dist/chunk-AES2BKEW.cjs.map +1 -0
  58. package/dist/chunk-AFKKJEV5.cjs +72 -0
  59. package/dist/chunk-AFKKJEV5.cjs.map +1 -0
  60. package/dist/chunk-AT732HC6.cjs +4 -0
  61. package/dist/{chunk-74K3RRU7.cjs.map → chunk-AT732HC6.cjs.map} +1 -1
  62. package/dist/chunk-BB4WQ4LV.cjs +137 -0
  63. package/dist/chunk-BB4WQ4LV.cjs.map +1 -0
  64. package/dist/chunk-BIT27PPD.js +49 -0
  65. package/dist/chunk-BIT27PPD.js.map +1 -0
  66. package/dist/chunk-BLPCYP4D.cjs +537 -0
  67. package/dist/chunk-BLPCYP4D.cjs.map +1 -0
  68. package/dist/chunk-BT3ZQJGT.cjs +130 -0
  69. package/dist/chunk-BT3ZQJGT.cjs.map +1 -0
  70. package/dist/chunk-BX6BTDTR.js +34 -0
  71. package/dist/chunk-BX6BTDTR.js.map +1 -0
  72. package/dist/chunk-C2544GKZ.js +313 -0
  73. package/dist/chunk-C2544GKZ.js.map +1 -0
  74. package/dist/chunk-C7RVKV25.cjs +25 -0
  75. package/dist/chunk-C7RVKV25.cjs.map +1 -0
  76. package/dist/chunk-CKD554XR.cjs +100 -0
  77. package/dist/chunk-CKD554XR.cjs.map +1 -0
  78. package/dist/chunk-CVC4NWFA.cjs +154 -0
  79. package/dist/chunk-CVC4NWFA.cjs.map +1 -0
  80. package/dist/{chunk-K3IVCUPP.js → chunk-CYMZ2QS5.js} +2 -2
  81. package/dist/{chunk-K3IVCUPP.js.map → chunk-CYMZ2QS5.js.map} +1 -1
  82. package/dist/{chunk-FRT6RQND.cjs → chunk-DAPZPT5N.cjs} +92 -56
  83. package/dist/chunk-DAPZPT5N.cjs.map +1 -0
  84. package/dist/chunk-DHKYGVP7.js +3 -0
  85. package/dist/{chunk-LEMY57MI.js.map → chunk-DHKYGVP7.js.map} +1 -1
  86. package/dist/chunk-DLNJLCNO.cjs +101 -0
  87. package/dist/chunk-DLNJLCNO.cjs.map +1 -0
  88. package/dist/chunk-DUPR6FEL.js +43 -0
  89. package/dist/chunk-DUPR6FEL.js.map +1 -0
  90. package/dist/{chunk-4FALCEJI.cjs → chunk-EL2RSQTJ.cjs} +2 -2
  91. package/dist/{chunk-4FALCEJI.cjs.map → chunk-EL2RSQTJ.cjs.map} +1 -1
  92. package/dist/chunk-ERLPVXOV.js +22 -0
  93. package/dist/chunk-ERLPVXOV.js.map +1 -0
  94. package/dist/chunk-FIWKHLWY.js +197 -0
  95. package/dist/chunk-FIWKHLWY.js.map +1 -0
  96. package/dist/chunk-FJH7P5WG.js +513 -0
  97. package/dist/chunk-FJH7P5WG.js.map +1 -0
  98. package/dist/chunk-FSGEDDF2.cjs +33 -0
  99. package/dist/chunk-FSGEDDF2.cjs.map +1 -0
  100. package/dist/chunk-GLXTVCHN.cjs +4 -0
  101. package/dist/{chunk-4ZU53GNR.cjs.map → chunk-GLXTVCHN.cjs.map} +1 -1
  102. package/dist/chunk-HRS6W74P.js +1568 -0
  103. package/dist/chunk-HRS6W74P.js.map +1 -0
  104. package/dist/chunk-I2W24RHW.js +196 -0
  105. package/dist/chunk-I2W24RHW.js.map +1 -0
  106. package/dist/chunk-I6CY5C6A.js +12 -0
  107. package/dist/chunk-I6CY5C6A.js.map +1 -0
  108. package/dist/chunk-IQ4KQJAO.js +3 -0
  109. package/dist/chunk-IQ4KQJAO.js.map +1 -0
  110. package/dist/chunk-IWDQPSJN.cjs +1452 -0
  111. package/dist/chunk-IWDQPSJN.cjs.map +1 -0
  112. package/dist/chunk-J7KWQJOB.js +14 -0
  113. package/dist/chunk-J7KWQJOB.js.map +1 -0
  114. package/dist/{chunk-R25H4N4Z.js → chunk-J7Z7467B.js} +92 -56
  115. package/dist/chunk-J7Z7467B.js.map +1 -0
  116. package/dist/{chunk-NINI4WVS.cjs → chunk-JC6Y3LGF.cjs} +297 -84
  117. package/dist/chunk-JC6Y3LGF.cjs.map +1 -0
  118. package/dist/chunk-JCNPVK74.cjs +347 -0
  119. package/dist/chunk-JCNPVK74.cjs.map +1 -0
  120. package/dist/chunk-JFLC7SHM.cjs +35 -0
  121. package/dist/chunk-JFLC7SHM.cjs.map +1 -0
  122. package/dist/chunk-JHYFHEHS.js +1967 -0
  123. package/dist/chunk-JHYFHEHS.js.map +1 -0
  124. package/dist/{chunk-IBZXDX4L.cjs → chunk-JQEY53SH.cjs} +112 -3
  125. package/dist/chunk-JQEY53SH.cjs.map +1 -0
  126. package/dist/chunk-JTBQNOSL.cjs +1605 -0
  127. package/dist/chunk-JTBQNOSL.cjs.map +1 -0
  128. package/dist/chunk-JYZW2PZS.cjs +166 -0
  129. package/dist/chunk-JYZW2PZS.cjs.map +1 -0
  130. package/dist/chunk-KBEKQMVY.cjs +198 -0
  131. package/dist/chunk-KBEKQMVY.cjs.map +1 -0
  132. package/dist/chunk-KJ5BSGEO.cjs +258 -0
  133. package/dist/chunk-KJ5BSGEO.cjs.map +1 -0
  134. package/dist/{chunk-DNPRRYPQ.js → chunk-KL2S36FM.js} +2 -2
  135. package/dist/chunk-KL2S36FM.js.map +1 -0
  136. package/dist/chunk-LIH3IZYK.js +689 -0
  137. package/dist/chunk-LIH3IZYK.js.map +1 -0
  138. package/dist/chunk-MAMY5HTT.cjs +1177 -0
  139. package/dist/chunk-MAMY5HTT.cjs.map +1 -0
  140. package/dist/{chunk-WFS6R2F5.js → chunk-MKWGKASO.js} +114 -101
  141. package/dist/chunk-MKWGKASO.js.map +1 -0
  142. package/dist/{chunk-CV4CVGLO.cjs → chunk-MZPF2QGM.cjs} +95 -74
  143. package/dist/chunk-MZPF2QGM.cjs.map +1 -0
  144. package/dist/chunk-NQME7MCK.js +1416 -0
  145. package/dist/chunk-NQME7MCK.js.map +1 -0
  146. package/dist/chunk-NTYGCBCL.js +543 -0
  147. package/dist/chunk-NTYGCBCL.js.map +1 -0
  148. package/dist/chunk-OF7NTZ2I.js +3 -0
  149. package/dist/chunk-OF7NTZ2I.js.map +1 -0
  150. package/dist/chunk-OXYFTCRW.cjs +57 -0
  151. package/dist/chunk-OXYFTCRW.cjs.map +1 -0
  152. package/dist/chunk-QA6ZDHFP.js +117 -0
  153. package/dist/chunk-QA6ZDHFP.js.map +1 -0
  154. package/dist/chunk-RHNPILZQ.cjs +4 -0
  155. package/dist/chunk-RHNPILZQ.cjs.map +1 -0
  156. package/dist/chunk-RHYIFIT5.js +98 -0
  157. package/dist/chunk-RHYIFIT5.js.map +1 -0
  158. package/dist/chunk-RI56YPED.cjs +201 -0
  159. package/dist/chunk-RI56YPED.cjs.map +1 -0
  160. package/dist/chunk-RISZWWEQ.js +3 -0
  161. package/dist/chunk-RISZWWEQ.js.map +1 -0
  162. package/dist/chunk-S6Z3KDEM.js +140 -0
  163. package/dist/chunk-S6Z3KDEM.js.map +1 -0
  164. package/dist/chunk-S7JQ3FV5.cjs +16 -0
  165. package/dist/chunk-S7JQ3FV5.cjs.map +1 -0
  166. package/dist/{chunk-OXGUG57G.cjs → chunk-SNEQXSC5.cjs} +2 -2
  167. package/dist/{chunk-OXGUG57G.cjs.map → chunk-SNEQXSC5.cjs.map} +1 -1
  168. package/dist/chunk-SQHMGT4W.js +164 -0
  169. package/dist/chunk-SQHMGT4W.js.map +1 -0
  170. package/dist/{chunk-JHPFOG2N.cjs → chunk-ST2RE5UB.cjs} +30 -18
  171. package/dist/chunk-ST2RE5UB.cjs.map +1 -0
  172. package/dist/{chunk-QVJBUWJQ.js → chunk-STPK44AU.js} +46 -12
  173. package/dist/chunk-STPK44AU.js.map +1 -0
  174. package/dist/chunk-T3C4RNJ4.js +106 -0
  175. package/dist/chunk-T3C4RNJ4.js.map +1 -0
  176. package/dist/chunk-T3RWXOCM.js +148 -0
  177. package/dist/chunk-T3RWXOCM.js.map +1 -0
  178. package/dist/{chunk-DCER2QQB.js → chunk-T42BCIUA.js} +2 -2
  179. package/dist/{chunk-DCER2QQB.js.map → chunk-T42BCIUA.js.map} +1 -1
  180. package/dist/{chunk-OYKS2JBB.cjs → chunk-TN33E2VN.cjs} +2 -2
  181. package/dist/chunk-TN33E2VN.cjs.map +1 -0
  182. package/dist/{chunk-K7IGBNZA.cjs → chunk-TR2OJKQ4.cjs} +46 -12
  183. package/dist/chunk-TR2OJKQ4.cjs.map +1 -0
  184. package/dist/chunk-UFYXU7KV.js +135 -0
  185. package/dist/chunk-UFYXU7KV.js.map +1 -0
  186. package/dist/chunk-UM6NA7HL.js +1145 -0
  187. package/dist/chunk-UM6NA7HL.js.map +1 -0
  188. package/dist/chunk-UO3KEUYK.cjs +220 -0
  189. package/dist/chunk-UO3KEUYK.cjs.map +1 -0
  190. package/dist/chunk-UOOH356R.cjs +66 -0
  191. package/dist/chunk-UOOH356R.cjs.map +1 -0
  192. package/dist/{chunk-4ZU53GNR.cjs → chunk-UTYUT5YY.cjs} +62 -2
  193. package/dist/chunk-UTYUT5YY.cjs.map +1 -0
  194. package/dist/chunk-UVSODK6V.cjs +53 -0
  195. package/dist/chunk-UVSODK6V.cjs.map +1 -0
  196. package/dist/chunk-V25Z5GR6.cjs +184 -0
  197. package/dist/chunk-V25Z5GR6.cjs.map +1 -0
  198. package/dist/chunk-VBWRH4UW.cjs +4 -0
  199. package/dist/chunk-VBWRH4UW.cjs.map +1 -0
  200. package/dist/chunk-VJOVJTFP.cjs +370 -0
  201. package/dist/chunk-VJOVJTFP.cjs.map +1 -0
  202. package/dist/{chunk-7BARESXI.cjs → chunk-VPNURIAY.cjs} +114 -101
  203. package/dist/chunk-VPNURIAY.cjs.map +1 -0
  204. package/dist/{chunk-I56VBDSC.js → chunk-XDFDVF2O.js} +30 -18
  205. package/dist/chunk-XDFDVF2O.js.map +1 -0
  206. package/dist/chunk-XL7TTKHP.js +327 -0
  207. package/dist/chunk-XL7TTKHP.js.map +1 -0
  208. package/dist/chunk-Y2S6QMKU.js +78 -0
  209. package/dist/chunk-Y2S6QMKU.js.map +1 -0
  210. package/dist/chunk-Y4ESBDQ5.cjs +552 -0
  211. package/dist/chunk-Y4ESBDQ5.cjs.map +1 -0
  212. package/dist/chunk-Y5KEFV5O.js +192 -0
  213. package/dist/chunk-Y5KEFV5O.js.map +1 -0
  214. package/dist/chunk-YBLIDESO.js +365 -0
  215. package/dist/chunk-YBLIDESO.js.map +1 -0
  216. package/dist/chunk-YVLP3ATI.js +1776 -0
  217. package/dist/chunk-YVLP3ATI.js.map +1 -0
  218. package/dist/chunk-YVPC65ZJ.cjs +134 -0
  219. package/dist/chunk-YVPC65ZJ.cjs.map +1 -0
  220. package/dist/{chunk-MPOWJVV4.js → chunk-YZT62IMX.js} +95 -74
  221. package/dist/chunk-YZT62IMX.js.map +1 -0
  222. package/dist/chunk-ZAIEQWRA.js +207 -0
  223. package/dist/chunk-ZAIEQWRA.js.map +1 -0
  224. package/dist/chunk-ZDEYV373.cjs +139 -0
  225. package/dist/chunk-ZDEYV373.cjs.map +1 -0
  226. package/dist/{chunk-Q7NBJFEB.js → chunk-ZGSC2CB2.js} +2 -2
  227. package/dist/{chunk-Q7NBJFEB.js.map → chunk-ZGSC2CB2.js.map} +1 -1
  228. package/dist/{chunk-3M4P2KMG.cjs → chunk-ZHBANUBI.cjs} +2 -2
  229. package/dist/{chunk-3M4P2KMG.cjs.map → chunk-ZHBANUBI.cjs.map} +1 -1
  230. package/dist/components/AlertDialog/index.cjs +18 -0
  231. package/dist/components/AlertDialog/index.cjs.map +1 -0
  232. package/dist/components/AlertDialog/index.d.cts +56 -0
  233. package/dist/components/AlertDialog/index.d.ts +56 -0
  234. package/dist/components/AlertDialog/index.js +9 -0
  235. package/dist/components/AlertDialog/index.js.map +1 -0
  236. package/dist/components/AudioRecorder/index.d.cts +1 -1
  237. package/dist/components/AudioRecorder/index.d.ts +1 -1
  238. package/dist/components/Autocomplete/index.cjs +16 -0
  239. package/dist/components/Autocomplete/index.cjs.map +1 -0
  240. package/dist/components/Autocomplete/index.d.cts +77 -0
  241. package/dist/components/Autocomplete/index.d.ts +77 -0
  242. package/dist/components/Autocomplete/index.js +7 -0
  243. package/dist/components/Autocomplete/index.js.map +1 -0
  244. package/dist/components/Badge/index.cjs +4 -3
  245. package/dist/components/Badge/index.js +2 -1
  246. package/dist/components/Card/index.cjs +16 -15
  247. package/dist/components/Card/index.js +2 -1
  248. package/dist/components/Collapsible/index.cjs +21 -0
  249. package/dist/components/Collapsible/index.cjs.map +1 -0
  250. package/dist/components/Collapsible/index.d.cts +33 -0
  251. package/dist/components/Collapsible/index.d.ts +33 -0
  252. package/dist/components/Collapsible/index.js +4 -0
  253. package/dist/components/Collapsible/index.js.map +1 -0
  254. package/dist/components/CountryCodeDropdown/index.cjs +6 -5
  255. package/dist/components/CountryCodeDropdown/index.js +3 -2
  256. package/dist/components/DateInput/index.cjs +2 -2
  257. package/dist/components/DateInput/index.d.cts +8 -2
  258. package/dist/components/DateInput/index.d.ts +8 -2
  259. package/dist/components/DateInput/index.js +1 -1
  260. package/dist/components/Dropdown/index.cjs +9 -8
  261. package/dist/components/Dropdown/index.d.cts +2 -1
  262. package/dist/components/Dropdown/index.d.ts +2 -1
  263. package/dist/components/Dropdown/index.js +3 -2
  264. package/dist/components/FloatingWindow/index.cjs +18 -0
  265. package/dist/components/FloatingWindow/index.cjs.map +1 -0
  266. package/dist/components/FloatingWindow/index.d.cts +64 -0
  267. package/dist/components/FloatingWindow/index.d.ts +64 -0
  268. package/dist/components/FloatingWindow/index.js +5 -0
  269. package/dist/components/FloatingWindow/index.js.map +1 -0
  270. package/dist/components/Label/index.cjs +17 -0
  271. package/dist/components/Label/index.cjs.map +1 -0
  272. package/dist/components/Label/index.d.cts +23 -0
  273. package/dist/components/Label/index.d.ts +23 -0
  274. package/dist/components/Label/index.js +4 -0
  275. package/dist/components/Label/index.js.map +1 -0
  276. package/dist/components/Markdown/index.cjs +51 -0
  277. package/dist/components/Markdown/index.cjs.map +1 -0
  278. package/dist/components/Markdown/index.css +331 -0
  279. package/dist/components/Markdown/index.css.map +1 -0
  280. package/dist/components/Markdown/index.d.cts +82 -0
  281. package/dist/components/Markdown/index.d.ts +82 -0
  282. package/dist/components/Markdown/index.js +10 -0
  283. package/dist/components/Markdown/index.js.map +1 -0
  284. package/dist/components/Markdown/styles.css +354 -0
  285. package/dist/components/MediaEditor/index.cjs +44 -0
  286. package/dist/components/MediaEditor/index.cjs.map +1 -0
  287. package/dist/components/MediaEditor/index.d.cts +151 -0
  288. package/dist/components/MediaEditor/index.d.ts +151 -0
  289. package/dist/components/MediaEditor/index.js +19 -0
  290. package/dist/components/MediaEditor/index.js.map +1 -0
  291. package/dist/components/MediaPlayer/index.cjs +24 -0
  292. package/dist/components/MediaPlayer/index.cjs.map +1 -0
  293. package/dist/components/MediaPlayer/index.d.cts +71 -0
  294. package/dist/components/MediaPlayer/index.d.ts +71 -0
  295. package/dist/components/MediaPlayer/index.js +7 -0
  296. package/dist/components/MediaPlayer/index.js.map +1 -0
  297. package/dist/components/RecordButton/index.cjs +4 -4
  298. package/dist/components/RecordButton/index.js +1 -1
  299. package/dist/components/RichTextEditor/index.cjs +33 -0
  300. package/dist/components/RichTextEditor/index.cjs.map +1 -0
  301. package/dist/components/RichTextEditor/index.d.cts +62 -0
  302. package/dist/components/RichTextEditor/index.d.ts +62 -0
  303. package/dist/components/RichTextEditor/index.js +12 -0
  304. package/dist/components/RichTextEditor/index.js.map +1 -0
  305. package/dist/components/ScrollArea/index.cjs +17 -0
  306. package/dist/components/ScrollArea/index.cjs.map +1 -0
  307. package/dist/components/ScrollArea/index.d.cts +22 -0
  308. package/dist/components/ScrollArea/index.d.ts +22 -0
  309. package/dist/components/ScrollArea/index.js +4 -0
  310. package/dist/components/ScrollArea/index.js.map +1 -0
  311. package/dist/components/Select/index.cjs +5 -3
  312. package/dist/components/Select/index.js +3 -1
  313. package/dist/components/Separator/index.cjs +17 -0
  314. package/dist/components/Separator/index.cjs.map +1 -0
  315. package/dist/components/Separator/index.d.cts +27 -0
  316. package/dist/components/Separator/index.d.ts +27 -0
  317. package/dist/components/Separator/index.js +4 -0
  318. package/dist/components/Separator/index.js.map +1 -0
  319. package/dist/components/Sheet/index.cjs +48 -0
  320. package/dist/components/Sheet/index.cjs.map +1 -0
  321. package/dist/components/Sheet/index.d.cts +62 -0
  322. package/dist/components/Sheet/index.d.ts +62 -0
  323. package/dist/components/Sheet/index.js +7 -0
  324. package/dist/components/Sheet/index.js.map +1 -0
  325. package/dist/components/SuperChat/index.cjs +1373 -0
  326. package/dist/components/SuperChat/index.cjs.map +1 -0
  327. package/dist/components/SuperChat/index.d.cts +189 -0
  328. package/dist/components/SuperChat/index.d.ts +189 -0
  329. package/dist/components/SuperChat/index.js +1336 -0
  330. package/dist/components/SuperChat/index.js.map +1 -0
  331. package/dist/components/SuperChat/plugins/index.cjs +1292 -0
  332. package/dist/components/SuperChat/plugins/index.cjs.map +1 -0
  333. package/dist/components/SuperChat/plugins/index.d.cts +233 -0
  334. package/dist/components/SuperChat/plugins/index.d.ts +233 -0
  335. package/dist/components/SuperChat/plugins/index.js +1252 -0
  336. package/dist/components/SuperChat/plugins/index.js.map +1 -0
  337. package/dist/components/Table/index.cjs +9 -9
  338. package/dist/components/Table/index.d.cts +4 -0
  339. package/dist/components/Table/index.d.ts +4 -0
  340. package/dist/components/Table/index.js +1 -1
  341. package/dist/components/ThemeProvider/index.cjs +7 -7
  342. package/dist/components/ThemeProvider/index.js +1 -1
  343. package/dist/components/Toggle/index.cjs +17 -0
  344. package/dist/components/Toggle/index.cjs.map +1 -0
  345. package/dist/components/Toggle/index.d.cts +28 -0
  346. package/dist/components/Toggle/index.d.ts +28 -0
  347. package/dist/components/Toggle/index.js +4 -0
  348. package/dist/components/Toggle/index.js.map +1 -0
  349. package/dist/components/TranscriptView/index.cjs +21 -0
  350. package/dist/components/TranscriptView/index.cjs.map +1 -0
  351. package/dist/components/TranscriptView/index.d.cts +55 -0
  352. package/dist/components/TranscriptView/index.d.ts +55 -0
  353. package/dist/components/TranscriptView/index.js +4 -0
  354. package/dist/components/TranscriptView/index.js.map +1 -0
  355. package/dist/datavis.cjs +268 -227
  356. package/dist/datavis.cjs.map +1 -1
  357. package/dist/datavis.d.cts +83 -9
  358. package/dist/datavis.d.ts +83 -9
  359. package/dist/datavis.js +235 -229
  360. package/dist/datavis.js.map +1 -1
  361. package/dist/esheet.cjs +184 -0
  362. package/dist/esheet.cjs.map +1 -1
  363. package/dist/esheet.d.cts +117 -0
  364. package/dist/esheet.d.ts +117 -0
  365. package/dist/esheet.js +163 -0
  366. package/dist/esheet.js.map +1 -1
  367. package/dist/hey-buddy-CLUVAY2X.cjs +1133 -0
  368. package/dist/hey-buddy-CLUVAY2X.cjs.map +1 -0
  369. package/dist/hey-buddy-NMSWZ4TN.js +1131 -0
  370. package/dist/hey-buddy-NMSWZ4TN.js.map +1 -0
  371. package/dist/hooks/index.cjs +76 -16
  372. package/dist/hooks/index.d.cts +151 -2
  373. package/dist/hooks/index.d.ts +151 -2
  374. package/dist/hooks/index.js +6 -2
  375. package/dist/html-MdxqSzjD.d.cts +13 -0
  376. package/dist/html-MdxqSzjD.d.ts +13 -0
  377. package/dist/index.cjs +10394 -6565
  378. package/dist/index.cjs.map +1 -1
  379. package/dist/index.css +331 -0
  380. package/dist/index.css.map +1 -0
  381. package/dist/index.d.cts +2020 -249
  382. package/dist/index.d.ts +2020 -249
  383. package/dist/index.js +9223 -5969
  384. package/dist/index.js.map +1 -1
  385. package/dist/kerebron.cjs +119 -0
  386. package/dist/kerebron.cjs.map +1 -0
  387. package/dist/kerebron.css +11 -0
  388. package/dist/kerebron.d.cts +23 -0
  389. package/dist/kerebron.d.ts +23 -0
  390. package/dist/kerebron.js +116 -0
  391. package/dist/kerebron.js.map +1 -0
  392. package/dist/nitroTableGrid-3J2GY6CK.cjs +47 -0
  393. package/dist/nitroTableGrid-3J2GY6CK.cjs.map +1 -0
  394. package/dist/nitroTableGrid-SIMT7635.js +25 -0
  395. package/dist/nitroTableGrid-SIMT7635.js.map +1 -0
  396. package/dist/orderRows-BUJYgSc7.d.cts +221 -0
  397. package/dist/orderRows-BUJYgSc7.d.ts +221 -0
  398. package/dist/speaker-verify-5GTWAN5Y.cjs +357 -0
  399. package/dist/speaker-verify-5GTWAN5Y.cjs.map +1 -0
  400. package/dist/speaker-verify-R67P433H.js +355 -0
  401. package/dist/speaker-verify-R67P433H.js.map +1 -0
  402. package/dist/styles/init.css +5 -0
  403. package/dist/styles.css +1 -1
  404. package/dist/tailwind-preset.cjs +4 -4
  405. package/dist/tailwind-preset.js +1 -1
  406. package/dist/transcript-oaWqY3yr.d.cts +81 -0
  407. package/dist/transcript-oaWqY3yr.d.ts +81 -0
  408. package/dist/types-BYnLjEFg.d.cts +248 -0
  409. package/dist/types-BYnLjEFg.d.ts +248 -0
  410. package/dist/types-CBh8Zlje.d.cts +240 -0
  411. package/dist/types-CyCwYBlr.d.ts +240 -0
  412. package/dist/useAnchoredPosition-nXdSFKHf.d.cts +65 -0
  413. package/dist/useAnchoredPosition-nXdSFKHf.d.ts +65 -0
  414. package/dist/useTranscriptEdits-BUylQFg0.d.cts +168 -0
  415. package/dist/useTranscriptEdits-CWYnjbGP.d.ts +168 -0
  416. package/dist/utils/index.cjs +27 -18
  417. package/dist/utils/index.d.cts +1 -0
  418. package/dist/utils/index.d.ts +1 -0
  419. package/dist/utils/index.js +3 -2
  420. package/package.json +180 -55
  421. package/dist/chunk-2DS3RJ2D.js.map +0 -1
  422. package/dist/chunk-74K3RRU7.cjs +0 -4
  423. package/dist/chunk-7BARESXI.cjs.map +0 -1
  424. package/dist/chunk-CV4CVGLO.cjs.map +0 -1
  425. package/dist/chunk-DNPRRYPQ.js.map +0 -1
  426. package/dist/chunk-FRT6RQND.cjs.map +0 -1
  427. package/dist/chunk-HYEJLKXI.js +0 -476
  428. package/dist/chunk-HYEJLKXI.js.map +0 -1
  429. package/dist/chunk-I56VBDSC.js.map +0 -1
  430. package/dist/chunk-IBZXDX4L.cjs.map +0 -1
  431. package/dist/chunk-IKMR2ADM.cjs +0 -25
  432. package/dist/chunk-IKMR2ADM.cjs.map +0 -1
  433. package/dist/chunk-JHPFOG2N.cjs.map +0 -1
  434. package/dist/chunk-K7IGBNZA.cjs.map +0 -1
  435. package/dist/chunk-LEMY57MI.js +0 -3
  436. package/dist/chunk-MPOWJVV4.js.map +0 -1
  437. package/dist/chunk-NINI4WVS.cjs.map +0 -1
  438. package/dist/chunk-OKBR6PX4.js +0 -23
  439. package/dist/chunk-OKBR6PX4.js.map +0 -1
  440. package/dist/chunk-OYKS2JBB.cjs.map +0 -1
  441. package/dist/chunk-QVJBUWJQ.js.map +0 -1
  442. package/dist/chunk-R25H4N4Z.js.map +0 -1
  443. package/dist/chunk-V2DF2GUE.js +0 -3
  444. package/dist/chunk-WFS6R2F5.js.map +0 -1
  445. package/dist/ozwell.cjs +0 -385
  446. package/dist/ozwell.cjs.map +0 -1
  447. package/dist/ozwell.d.cts +0 -15
  448. package/dist/ozwell.d.ts +0 -15
  449. package/dist/ozwell.js +0 -360
  450. package/dist/ozwell.js.map +0 -1
@@ -1,10 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var chunkMSRU3XBH_cjs = require('./chunk-MSRU3XBH.cjs');
4
- var chunkIKMR2ADM_cjs = require('./chunk-IKMR2ADM.cjs');
5
4
  var chunkFHY3K6PL_cjs = require('./chunk-FHY3K6PL.cjs');
5
+ var chunkFSGEDDF2_cjs = require('./chunk-FSGEDDF2.cjs');
6
+ var chunkZDEYV373_cjs = require('./chunk-ZDEYV373.cjs');
6
7
  var chunkOR5DRJCW_cjs = require('./chunk-OR5DRJCW.cjs');
7
8
  var React = require('react');
9
+ var reactDom = require('react-dom');
8
10
  var jsxRuntime = require('react/jsx-runtime');
9
11
 
10
12
  function _interopNamespace(e) {
@@ -27,11 +29,7 @@ function _interopNamespace(e) {
27
29
 
28
30
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
31
 
30
- var placementStyles = {
31
- "bottom-start": "top-full left-0 mt-2",
32
- "bottom-end": "top-full right-0 mt-2",
33
- bottom: "top-full left-1/2 -translate-x-1/2 mt-2"
34
- };
32
+ var placementOffset = 8;
35
33
  var DropdownContext = React__namespace.createContext(null);
36
34
  function getNodeText(node) {
37
35
  if (typeof node === "string" || typeof node === "number") {
@@ -256,8 +254,18 @@ function Dropdown({
256
254
  }),
257
255
  [multiSelect, selectedValues, toggleSelectedValue]
258
256
  );
259
- chunkIKMR2ADM_cjs.useClickOutside(containerRef, handleClose, isOpen);
260
257
  chunkFHY3K6PL_cjs.useEscapeKey(handleClose, isOpen);
258
+ const { anchorRef, floatingRef, style } = chunkZDEYV373_cjs.useAnchoredPosition({
259
+ open: isOpen,
260
+ placement,
261
+ offset: placementOffset,
262
+ matchMinWidth: width === "trigger"
263
+ });
264
+ const outsideRefs = React__namespace.useMemo(
265
+ () => [containerRef, floatingRef],
266
+ [floatingRef]
267
+ );
268
+ chunkFSGEDDF2_cjs.useClickOutside(outsideRefs, handleClose, isOpen);
261
269
  React__namespace.useEffect(() => {
262
270
  if (!isOpen) {
263
271
  setSearchQuery("");
@@ -274,7 +282,7 @@ function Dropdown({
274
282
  "aria-controls": isOpen ? menuId : void 0,
275
283
  disabled: disabled || trigger.props.disabled
276
284
  });
277
- const widthStyle = typeof width === "number" ? { width: `${width}px` } : width === "trigger" ? { minWidth: "100%" } : {};
285
+ const widthStyle = typeof width === "number" ? { width: `${width}px` } : {};
278
286
  const filteredChildren = React__namespace.useMemo(
279
287
  () => filterDropdownChildren(children, searchQuery),
280
288
  [children, searchQuery]
@@ -306,74 +314,87 @@ function Dropdown({
306
314
  setSelectedValues,
307
315
  visibleSelectableValues
308
316
  ]);
309
- return /* @__PURE__ */ jsxRuntime.jsx(DropdownContext.Provider, { value: dropdownContext, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: "relative inline-flex", children: [
310
- triggerElement,
311
- isOpen && /* @__PURE__ */ jsxRuntime.jsxs(
312
- "div",
313
- {
314
- style: widthStyle,
315
- "data-slot": "dropdown-menu",
316
- className: chunkOR5DRJCW_cjs.cn(
317
- "absolute z-50 min-w-[12rem]",
318
- "rounded-xl border border-neutral-200 bg-white shadow-lg",
319
- "dark:border-neutral-700 dark:bg-neutral-800",
320
- "animate-in fade-in zoom-in-95 duration-100",
321
- placementStyles[placement],
322
- className
323
- ),
324
- children: [
325
- searchable && /* @__PURE__ */ jsxRuntime.jsx(
317
+ return /* @__PURE__ */ jsxRuntime.jsx(DropdownContext.Provider, { value: dropdownContext, children: /* @__PURE__ */ jsxRuntime.jsxs(
318
+ "div",
319
+ {
320
+ ref: (node) => {
321
+ containerRef.current = node;
322
+ anchorRef.current = node;
323
+ },
324
+ className: "relative inline-flex",
325
+ children: [
326
+ triggerElement,
327
+ isOpen && reactDom.createPortal(
328
+ /* @__PURE__ */ jsxRuntime.jsxs(
326
329
  "div",
327
330
  {
328
- className: "border-b border-neutral-200 p-2 dark:border-neutral-700",
329
- "data-slot": "dropdown-search",
330
- children: /* @__PURE__ */ jsxRuntime.jsx(
331
- "input",
332
- {
333
- ref: searchInputRef,
334
- type: "search",
335
- value: searchQuery,
336
- onChange: (event) => setSearchQuery(event.target.value),
337
- placeholder: searchPlaceholder,
338
- "aria-label": searchAriaLabel,
339
- "aria-controls": menuId,
340
- "aria-autocomplete": "list",
341
- "data-slot": "dropdown-search-input",
342
- className: chunkOR5DRJCW_cjs.cn(
343
- chunkMSRU3XBH_cjs.inputVariants({ size: "sm" }),
344
- "text-sm",
345
- "dark:border-neutral-600 dark:bg-neutral-700 dark:text-neutral-100"
346
- )
347
- }
348
- )
331
+ ref: floatingRef,
332
+ style: { ...style, ...widthStyle },
333
+ "data-slot": "dropdown-menu",
334
+ className: chunkOR5DRJCW_cjs.cn(
335
+ "flex min-w-[12rem] flex-col overflow-hidden",
336
+ "rounded-xl border border-neutral-200 bg-white shadow-lg",
337
+ "dark:border-neutral-700 dark:bg-neutral-800",
338
+ "animate-in fade-in zoom-in-95 duration-100",
339
+ className
340
+ ),
341
+ children: [
342
+ searchable && /* @__PURE__ */ jsxRuntime.jsx(
343
+ "div",
344
+ {
345
+ className: "shrink-0 border-b border-neutral-200 p-2 dark:border-neutral-700",
346
+ "data-slot": "dropdown-search",
347
+ children: /* @__PURE__ */ jsxRuntime.jsx(
348
+ "input",
349
+ {
350
+ ref: searchInputRef,
351
+ type: "search",
352
+ value: searchQuery,
353
+ onChange: (event) => setSearchQuery(event.target.value),
354
+ placeholder: searchPlaceholder,
355
+ "aria-label": searchAriaLabel,
356
+ "aria-controls": menuId,
357
+ "aria-autocomplete": "list",
358
+ "data-slot": "dropdown-search-input",
359
+ className: chunkOR5DRJCW_cjs.cn(
360
+ chunkMSRU3XBH_cjs.inputVariants({ size: "sm" }),
361
+ "text-sm",
362
+ "dark:border-neutral-600 dark:bg-neutral-700 dark:text-neutral-100"
363
+ )
364
+ }
365
+ )
366
+ }
367
+ ),
368
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { id: menuId, role: "menu", className: "min-h-0 overflow-y-auto", children: [
369
+ multiSelect && showSelectAll && visibleSelectableValues.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
370
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-2", "data-slot": "dropdown-select-all", children: /* @__PURE__ */ jsxRuntime.jsx(
371
+ DropdownItem,
372
+ {
373
+ checked: allVisibleSelected,
374
+ indeterminate: !allVisibleSelected && someVisibleSelected,
375
+ onClick: handleSelectAll,
376
+ children: selectAllLabel
377
+ }
378
+ ) }),
379
+ /* @__PURE__ */ jsxRuntime.jsx(DropdownSeparator, {})
380
+ ] }),
381
+ searchable ? hasSearchResults ? filteredChildren : /* @__PURE__ */ jsxRuntime.jsx(
382
+ "div",
383
+ {
384
+ className: "text-muted-foreground px-3 py-4 text-center text-sm",
385
+ "data-slot": "dropdown-empty",
386
+ children: searchEmptyState
387
+ }
388
+ ) : children
389
+ ] })
390
+ ]
349
391
  }
350
392
  ),
351
- /* @__PURE__ */ jsxRuntime.jsxs("div", { id: menuId, role: "menu", children: [
352
- multiSelect && showSelectAll && visibleSelectableValues.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
353
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-2", "data-slot": "dropdown-select-all", children: /* @__PURE__ */ jsxRuntime.jsx(
354
- DropdownItem,
355
- {
356
- checked: allVisibleSelected,
357
- indeterminate: !allVisibleSelected && someVisibleSelected,
358
- onClick: handleSelectAll,
359
- children: selectAllLabel
360
- }
361
- ) }),
362
- /* @__PURE__ */ jsxRuntime.jsx(DropdownSeparator, {})
363
- ] }),
364
- searchable ? hasSearchResults ? filteredChildren : /* @__PURE__ */ jsxRuntime.jsx(
365
- "div",
366
- {
367
- className: "text-muted-foreground px-3 py-4 text-center text-sm",
368
- "data-slot": "dropdown-empty",
369
- children: searchEmptyState
370
- }
371
- ) : children
372
- ] })
373
- ]
374
- }
375
- )
376
- ] }) });
393
+ document.body
394
+ )
395
+ ]
396
+ }
397
+ ) });
377
398
  }
378
399
  Dropdown.displayName = "Dropdown";
379
400
  var DropdownHeader = React__namespace.forwardRef(
@@ -613,5 +634,5 @@ exports.DropdownHeader = DropdownHeader;
613
634
  exports.DropdownItem = DropdownItem;
614
635
  exports.DropdownLabel = DropdownLabel;
615
636
  exports.DropdownSeparator = DropdownSeparator;
616
- //# sourceMappingURL=chunk-CV4CVGLO.cjs.map
617
- //# sourceMappingURL=chunk-CV4CVGLO.cjs.map
637
+ //# sourceMappingURL=chunk-MZPF2QGM.cjs.map
638
+ //# sourceMappingURL=chunk-MZPF2QGM.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Dropdown/Dropdown.tsx"],"names":["React","useEscapeKey","useAnchoredPosition","useClickOutside","jsx","jsxs","createPortal","cn","inputVariants","Fragment"],"mappings":"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","file":"chunk-MZPF2QGM.cjs","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { cn } from '../../utils/cn';\nimport { useClickOutside } from '../../hooks/useClickOutside';\nimport { useEscapeKey } from '../../hooks/useEscapeKey';\nimport {\n useAnchoredPosition,\n type AnchoredPlacement,\n} from '../../hooks/useAnchoredPosition';\nimport { inputVariants } from '../Input';\n\nexport type DropdownPlacement = AnchoredPlacement;\n\nexport interface DropdownProps {\n /** The trigger element (usually a button) */\n trigger: React.ReactElement<{\n onClick?: () => void;\n disabled?: boolean;\n 'aria-haspopup'?: string;\n 'aria-expanded'?: boolean;\n 'aria-controls'?: string;\n }>;\n /** Dropdown content */\n children: React.ReactNode;\n /** Controlled open state */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Placement of the dropdown */\n placement?: DropdownPlacement;\n /** Additional class name for the dropdown menu */\n className?: string;\n /** Width of the dropdown menu */\n width?: 'auto' | 'trigger' | number;\n /** Whether the dropdown is disabled */\n disabled?: boolean;\n /** Whether to render a search field at the top of the dropdown */\n searchable?: boolean;\n /** Placeholder text for the search input */\n searchPlaceholder?: string;\n /** Accessible label for the search input */\n searchAriaLabel?: string;\n /** Content to render when no items match the search query */\n searchEmptyState?: React.ReactNode;\n /** Whether dropdown items support multi-select checkboxes */\n multiSelect?: boolean;\n /** Selected item values for controlled multi-select dropdowns */\n selectedValues?: string[];\n /** Initial selected item values for uncontrolled multi-select dropdowns */\n defaultSelectedValues?: string[];\n /** Callback fired when selected values change in multi-select mode */\n onSelectedValuesChange?: (values: string[]) => void;\n /** Whether to render a select-all control for multi-select dropdowns */\n showSelectAll?: boolean;\n /** Label for the select-all control */\n selectAllLabel?: React.ReactNode;\n}\n\nconst placementOffset = 8; // matches the previous mt-2/mb-2 gap\n\ninterface DropdownContextValue {\n multiSelect: boolean;\n selectedValues: string[];\n toggleSelectedValue: (value: string) => void;\n}\n\nconst DropdownContext = React.createContext<DropdownContextValue | null>(null);\n\nfunction getNodeText(node: React.ReactNode): string {\n if (typeof node === 'string' || typeof node === 'number') {\n return String(node);\n }\n\n if (Array.isArray(node)) {\n return node.map(getNodeText).join(' ');\n }\n\n if (React.isValidElement<{ children?: React.ReactNode }>(node)) {\n return getNodeText(node.props.children);\n }\n\n return '';\n}\n\nfunction isDropdownElement<P>(\n node: React.ReactNode,\n component: React.JSXElementConstructor<P>\n): node is React.ReactElement<P> {\n return React.isValidElement(node) && node.type === component;\n}\n\nfunction hasVisibleDropdownContent(node: React.ReactNode): boolean {\n if (node == null || typeof node === 'boolean') {\n return false;\n }\n\n if (Array.isArray(node)) {\n return node.some(hasVisibleDropdownContent);\n }\n\n if (!React.isValidElement<{ children?: React.ReactNode }>(node)) {\n if (typeof node === 'string') {\n return node.trim().length > 0;\n }\n\n return true;\n }\n\n if (node.type === React.Fragment) {\n return React.Children.toArray(node.props.children).some(\n hasVisibleDropdownContent\n );\n }\n\n if (\n node.type === DropdownSeparator ||\n node.type === DropdownLabel ||\n node.type === DropdownHeader\n ) {\n return false;\n }\n\n if (node.type === DropdownContent) {\n return React.Children.toArray(node.props.children).some(\n hasVisibleDropdownContent\n );\n }\n\n return true;\n}\n\nfunction normalizeDropdownSiblings(\n children: React.ReactNode[]\n): React.ReactNode[] {\n const hasContentBefore = (index: number) => {\n for (let current = index - 1; current >= 0; current -= 1) {\n const child = children[current];\n\n if (isDropdownElement(child, DropdownSeparator)) {\n return false;\n }\n\n if (hasVisibleDropdownContent(child)) {\n return true;\n }\n }\n\n return false;\n };\n\n const hasContentAfter = (index: number) => {\n for (let current = index + 1; current < children.length; current += 1) {\n const child = children[current];\n\n if (isDropdownElement(child, DropdownSeparator)) {\n return false;\n }\n\n if (hasVisibleDropdownContent(child)) {\n return true;\n }\n }\n\n return false;\n };\n\n return children.filter((child, index) => {\n if (isDropdownElement(child, DropdownSeparator)) {\n return hasContentBefore(index) && hasContentAfter(index);\n }\n\n if (isDropdownElement(child, DropdownLabel)) {\n return hasContentAfter(index);\n }\n\n return true;\n });\n}\n\nfunction filterDropdownChildren(\n children: React.ReactNode,\n query: string\n): React.ReactNode[] {\n const normalizedQuery = query.trim().toLowerCase();\n\n if (!normalizedQuery) {\n return React.Children.toArray(children);\n }\n\n const filteredChildren = React.Children.toArray(children)\n .map((child) => {\n if (!React.isValidElement<{ children?: React.ReactNode }>(child)) {\n if (typeof child === 'string' || typeof child === 'number') {\n return String(child).toLowerCase().includes(normalizedQuery)\n ? child\n : null;\n }\n\n return null;\n }\n\n if (child.type === React.Fragment) {\n const fragmentChildren = filterDropdownChildren(\n child.props.children,\n normalizedQuery\n );\n\n return fragmentChildren.length > 0\n ? React.cloneElement(child, undefined, fragmentChildren)\n : null;\n }\n\n if (isDropdownElement(child, DropdownHeader)) {\n return child;\n }\n\n if (isDropdownElement(child, DropdownItem)) {\n const searchText = [\n getNodeText(child.props.children),\n child.props.searchText,\n ]\n .filter(Boolean)\n .join(' ')\n .toLowerCase();\n\n return searchText.includes(normalizedQuery) ? child : null;\n }\n\n if (isDropdownElement(child, DropdownContent)) {\n const contentChildren = filterDropdownChildren(\n child.props.children,\n normalizedQuery\n );\n\n return hasVisibleDropdownContent(contentChildren)\n ? React.cloneElement(child, undefined, contentChildren)\n : null;\n }\n\n if (isDropdownElement(child, DropdownSeparator)) {\n return child;\n }\n\n if (isDropdownElement(child, DropdownLabel)) {\n return child;\n }\n\n const nestedChildren = child.props.children;\n\n if (nestedChildren === undefined) {\n return child;\n }\n\n const filteredNestedChildren = filterDropdownChildren(\n nestedChildren,\n normalizedQuery\n );\n\n return filteredNestedChildren.length > 0\n ? React.cloneElement(child, undefined, filteredNestedChildren)\n : null;\n })\n .filter((child) => child !== null);\n\n return normalizeDropdownSiblings(filteredChildren);\n}\n\nfunction getSelectableValues(children: React.ReactNode): string[] {\n return React.Children.toArray(children).flatMap((child) => {\n if (\n !React.isValidElement<{ children?: React.ReactNode; value?: unknown }>(\n child\n )\n ) {\n return [];\n }\n\n if (child.type === React.Fragment || child.type === DropdownContent) {\n return getSelectableValues(child.props.children);\n }\n\n if (isDropdownElement(child, DropdownItem)) {\n return typeof child.props.value === 'string' ? [child.props.value] : [];\n }\n\n return child.props.children !== undefined\n ? getSelectableValues(child.props.children)\n : [];\n });\n}\n\n/**\n * An accessible dropdown menu component.\n *\n * @example\n * ```tsx\n * <Dropdown\n * trigger={<Button>Options</Button>}\n * >\n * <DropdownItem onClick={() => console.log('Edit')}>Edit</DropdownItem>\n * <DropdownItem onClick={() => console.log('Delete')} variant=\"danger\">Delete</DropdownItem>\n * </Dropdown>\n * ```\n */\nfunction Dropdown({\n trigger,\n children,\n open: controlledOpen,\n onOpenChange,\n placement = 'bottom-start',\n className,\n width = 'auto',\n disabled = false,\n searchable = false,\n searchPlaceholder = 'Search...',\n searchAriaLabel = 'Search dropdown items',\n searchEmptyState = 'No results found',\n multiSelect = false,\n selectedValues: controlledSelectedValues,\n defaultSelectedValues = [],\n onSelectedValuesChange,\n showSelectAll = false,\n selectAllLabel = 'Select all',\n}: DropdownProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);\n const [uncontrolledSelectedValues, setUncontrolledSelectedValues] =\n React.useState(defaultSelectedValues);\n const [searchQuery, setSearchQuery] = React.useState('');\n const containerRef = React.useRef<HTMLDivElement>(null);\n const searchInputRef = React.useRef<HTMLInputElement>(null);\n const menuId = React.useId();\n\n const isControlled = controlledOpen !== undefined;\n const isSelectedValuesControlled = controlledSelectedValues !== undefined;\n const isOpen = isControlled ? controlledOpen : uncontrolledOpen;\n const selectedValues = isSelectedValuesControlled\n ? controlledSelectedValues\n : uncontrolledSelectedValues;\n\n const setOpen = React.useCallback(\n (value: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(value);\n }\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange]\n );\n\n const handleToggle = React.useCallback(() => {\n if (!disabled) {\n setOpen(!isOpen);\n }\n }, [disabled, isOpen, setOpen]);\n\n const handleClose = React.useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n const setSelectedValues = React.useCallback(\n (values: string[]) => {\n if (!isSelectedValuesControlled) {\n setUncontrolledSelectedValues(values);\n }\n onSelectedValuesChange?.(values);\n },\n [isSelectedValuesControlled, onSelectedValuesChange]\n );\n\n const toggleSelectedValue = React.useCallback(\n (value: string) => {\n if (!multiSelect) {\n return;\n }\n\n setSelectedValues(\n selectedValues.includes(value)\n ? selectedValues.filter((selectedValue) => selectedValue !== value)\n : [...selectedValues, value]\n );\n },\n [multiSelect, selectedValues, setSelectedValues]\n );\n\n const dropdownContext = React.useMemo<DropdownContextValue>(\n () => ({\n multiSelect,\n selectedValues,\n toggleSelectedValue,\n }),\n [multiSelect, selectedValues, toggleSelectedValue]\n );\n\n useEscapeKey(handleClose, isOpen);\n\n // Portal + fixed positioning so the menu escapes overflow-hidden ancestors.\n const { anchorRef, floatingRef, style } = useAnchoredPosition<\n HTMLDivElement,\n HTMLDivElement\n >({\n open: isOpen,\n placement,\n offset: placementOffset,\n matchMinWidth: width === 'trigger',\n });\n\n const outsideRefs = React.useMemo(\n () => [containerRef, floatingRef],\n [floatingRef]\n );\n useClickOutside(outsideRefs, handleClose, isOpen);\n\n React.useEffect(() => {\n if (!isOpen) {\n setSearchQuery('');\n return;\n }\n\n if (searchable) {\n requestAnimationFrame(() => searchInputRef.current?.focus());\n }\n }, [isOpen, searchable]);\n\n // Clone trigger to add event handlers\n const triggerElement = React.cloneElement(trigger, {\n onClick: handleToggle,\n 'aria-haspopup': 'menu',\n 'aria-expanded': isOpen,\n 'aria-controls': isOpen ? menuId : undefined,\n disabled: disabled || trigger.props.disabled,\n });\n\n const widthStyle = typeof width === 'number' ? { width: `${width}px` } : {};\n\n const filteredChildren = React.useMemo(\n () => filterDropdownChildren(children, searchQuery),\n [children, searchQuery]\n );\n const visibleSelectableValues = React.useMemo(\n () => getSelectableValues(searchable ? filteredChildren : children),\n [children, filteredChildren, searchable]\n );\n const hasSearchResults = React.useMemo(\n () => hasVisibleDropdownContent(filteredChildren),\n [filteredChildren]\n );\n const allVisibleSelected =\n visibleSelectableValues.length > 0 &&\n visibleSelectableValues.every((value) => selectedValues.includes(value));\n const someVisibleSelected = visibleSelectableValues.some((value) =>\n selectedValues.includes(value)\n );\n\n const handleSelectAll = React.useCallback(() => {\n if (!multiSelect || visibleSelectableValues.length === 0) {\n return;\n }\n\n const visibleValueSet = new Set(visibleSelectableValues);\n\n setSelectedValues(\n allVisibleSelected\n ? selectedValues.filter((value) => !visibleValueSet.has(value))\n : Array.from(new Set([...selectedValues, ...visibleSelectableValues]))\n );\n }, [\n allVisibleSelected,\n multiSelect,\n selectedValues,\n setSelectedValues,\n visibleSelectableValues,\n ]);\n\n return (\n <DropdownContext.Provider value={dropdownContext}>\n <div\n ref={(node) => {\n containerRef.current = node;\n anchorRef.current = node;\n }}\n className=\"relative inline-flex\"\n >\n {triggerElement}\n {isOpen &&\n createPortal(\n <div\n ref={floatingRef}\n style={{ ...style, ...widthStyle }}\n data-slot=\"dropdown-menu\"\n className={cn(\n 'flex min-w-[12rem] flex-col overflow-hidden',\n 'rounded-xl border border-neutral-200 bg-white shadow-lg',\n 'dark:border-neutral-700 dark:bg-neutral-800',\n 'animate-in fade-in zoom-in-95 duration-100',\n className\n )}\n >\n {searchable && (\n <div\n className=\"shrink-0 border-b border-neutral-200 p-2 dark:border-neutral-700\"\n data-slot=\"dropdown-search\"\n >\n <input\n ref={searchInputRef}\n type=\"search\"\n value={searchQuery}\n onChange={(event) => setSearchQuery(event.target.value)}\n placeholder={searchPlaceholder}\n aria-label={searchAriaLabel}\n aria-controls={menuId}\n aria-autocomplete=\"list\"\n data-slot=\"dropdown-search-input\"\n className={cn(\n inputVariants({ size: 'sm' }),\n 'text-sm',\n 'dark:border-neutral-600 dark:bg-neutral-700 dark:text-neutral-100'\n )}\n />\n </div>\n )}\n <div id={menuId} role=\"menu\" className=\"min-h-0 overflow-y-auto\">\n {multiSelect &&\n showSelectAll &&\n visibleSelectableValues.length > 0 && (\n <>\n <div className=\"p-2\" data-slot=\"dropdown-select-all\">\n <DropdownItem\n checked={allVisibleSelected}\n indeterminate={\n !allVisibleSelected && someVisibleSelected\n }\n onClick={handleSelectAll}\n >\n {selectAllLabel}\n </DropdownItem>\n </div>\n <DropdownSeparator />\n </>\n )}\n {searchable ? (\n hasSearchResults ? (\n filteredChildren\n ) : (\n <div\n className=\"text-muted-foreground px-3 py-4 text-center text-sm\"\n data-slot=\"dropdown-empty\"\n >\n {searchEmptyState}\n </div>\n )\n ) : (\n children\n )}\n </div>\n </div>,\n document.body\n )}\n </div>\n </DropdownContext.Provider>\n );\n}\n\nDropdown.displayName = 'Dropdown';\n\n// ============================================================================\n// Dropdown Header Component\n// ============================================================================\n\nexport interface DropdownHeaderProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n 'title'\n> {\n /** Avatar element or image */\n avatar?: React.ReactNode;\n /** Primary text (e.g., user name) */\n title: React.ReactNode;\n /** Secondary text (e.g., email) */\n subtitle?: React.ReactNode;\n}\n\n/**\n * A header section for dropdown menus, typically used for user info.\n *\n * @example\n * ```tsx\n * <DropdownHeader\n * avatar={<Avatar name=\"John Doe\" />}\n * title=\"John Doe\"\n * subtitle=\"john@example.com\"\n * />\n * ```\n */\nconst DropdownHeader = React.forwardRef<HTMLDivElement, DropdownHeaderProps>(\n ({ className, avatar, title, subtitle, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"dropdown-header\"\n className={cn(\n 'border-b border-neutral-200 p-4 dark:border-neutral-700',\n className\n )}\n {...props}\n >\n <div\n className=\"flex items-center gap-3\"\n data-slot=\"dropdown-header-row\"\n >\n {avatar}\n <div className=\"min-w-0 flex-1\">\n <p\n className=\"truncate text-sm font-semibold text-neutral-900 dark:text-white\"\n data-slot=\"dropdown-header-title\"\n >\n {title}\n </p>\n {subtitle && (\n <p\n className=\"text-muted-foreground truncate text-xs\"\n data-slot=\"dropdown-header-subtitle\"\n >\n {subtitle}\n </p>\n )}\n </div>\n </div>\n {children}\n </div>\n );\n }\n);\n\nDropdownHeader.displayName = 'DropdownHeader';\n\n// ============================================================================\n// Dropdown Content Component\n// ============================================================================\n\nexport type DropdownContentProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * A container for dropdown menu items with proper padding.\n */\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownContentProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-slot=\"dropdown-content\"\n className={cn('p-2', className)}\n {...props}\n />\n );\n }\n);\n\nDropdownContent.displayName = 'DropdownContent';\n\n// ============================================================================\n// Dropdown Item Component\n// ============================================================================\n\nexport interface DropdownItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Icon to display before the label */\n icon?: React.ReactNode;\n /** Danger variant for destructive actions */\n variant?: 'default' | 'danger';\n /** Optional text used when filtering searchable dropdown items */\n searchText?: string;\n /** Checked state for multi-select items */\n checked?: boolean;\n /** Indeterminate state for multi-select items */\n indeterminate?: boolean;\n /** Callback fired when a multi-select item changes */\n onCheckedChange?: (checked: boolean) => void;\n}\n\nfunction DropdownItemCheckbox({\n checked,\n indeterminate = false,\n}: {\n checked: boolean;\n indeterminate?: boolean;\n}) {\n return (\n <span\n aria-hidden=\"true\"\n data-slot=\"dropdown-checkbox\"\n className={cn(\n 'flex h-4 w-4 shrink-0 items-center justify-center rounded border-2 transition-colors duration-150',\n checked || indeterminate\n ? 'border-primary-500 bg-primary-800 text-white'\n : 'border-input bg-background text-transparent'\n )}\n >\n {indeterminate ? (\n <svg\n aria-hidden=\"true\"\n className=\"h-3 w-3\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M4 8h8\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n ) : (\n <svg\n aria-hidden=\"true\"\n className=\"h-3 w-3\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path\n d=\"M3.5 8.5 6.5 11.5 12.5 4.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </span>\n );\n}\n\n/**\n * An item within a Dropdown menu.\n */\nconst DropdownItem = React.forwardRef<HTMLButtonElement, DropdownItemProps>(\n (\n {\n className,\n icon,\n variant = 'default',\n children,\n searchText,\n checked,\n indeterminate = false,\n onCheckedChange,\n onClick,\n value,\n disabled,\n ...props\n },\n ref\n ) => {\n const dropdownContext = React.useContext(DropdownContext);\n const itemValue = typeof value === 'string' ? value : undefined;\n const contextSelectedValues = dropdownContext?.selectedValues ?? [];\n const isMultiSelectItem =\n (dropdownContext?.multiSelect === true && itemValue !== undefined) ||\n checked !== undefined ||\n indeterminate;\n const isChecked =\n checked ??\n (isMultiSelectItem\n ? itemValue !== undefined && contextSelectedValues.includes(itemValue)\n : false);\n\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n if (\n dropdownContext &&\n isMultiSelectItem &&\n itemValue !== undefined &&\n !disabled\n ) {\n dropdownContext.toggleSelectedValue(itemValue);\n onCheckedChange?.(!isChecked);\n }\n\n onClick?.(event);\n },\n [\n disabled,\n dropdownContext,\n isChecked,\n isMultiSelectItem,\n itemValue,\n onCheckedChange,\n onClick,\n ]\n );\n\n return (\n <button\n ref={ref}\n type=\"button\"\n role={isMultiSelectItem ? 'menuitemcheckbox' : 'menuitem'}\n aria-checked={\n isMultiSelectItem ? (indeterminate ? 'mixed' : isChecked) : undefined\n }\n disabled={disabled}\n data-slot=\"dropdown-item\"\n className={cn(\n 'flex w-full items-center gap-3 rounded-lg px-3 py-2 text-left text-sm',\n 'transition-colors duration-150',\n 'focus:outline-none',\n variant === 'default' && [\n 'text-neutral-700 dark:text-neutral-300',\n 'hover:bg-neutral-100 dark:hover:bg-neutral-700',\n 'focus:bg-neutral-100 dark:focus:bg-neutral-700',\n ],\n variant === 'danger' && [\n 'text-red-600 dark:text-red-400',\n 'hover:bg-red-50 dark:hover:bg-red-900/20',\n 'focus:bg-red-50 dark:focus:bg-red-900/20',\n ],\n className\n )}\n data-search-text={searchText}\n onClick={handleClick}\n value={value}\n {...props}\n >\n {isMultiSelectItem && (\n <DropdownItemCheckbox\n checked={isChecked}\n indeterminate={indeterminate}\n />\n )}\n {icon && (\n <span className=\"h-4 w-4 shrink-0\" data-slot=\"dropdown-item-icon\">\n {icon}\n </span>\n )}\n <span className=\"font-medium\" data-slot=\"dropdown-item-label\">\n {children}\n </span>\n </button>\n );\n }\n);\n\nDropdownItem.displayName = 'DropdownItem';\n\n// ============================================================================\n// Dropdown Separator Component\n// ============================================================================\n\n/**\n * A separator between dropdown items.\n */\nfunction DropdownSeparator({ className }: { className?: string }) {\n return (\n <hr\n data-slot=\"dropdown-separator\"\n className={cn(\n 'border-t border-neutral-200 dark:border-neutral-700',\n className\n )}\n />\n );\n}\n\nDropdownSeparator.displayName = 'DropdownSeparator';\n\n// ============================================================================\n// Dropdown Label Component\n// ============================================================================\n\n/**\n * A label/header for a group of dropdown items.\n */\nfunction DropdownLabel({\n className,\n children,\n}: {\n className?: string;\n children: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"dropdown-label\"\n className={cn(\n 'px-3 py-1.5 text-xs font-semibold tracking-wider uppercase',\n 'text-muted-foreground',\n className\n )}\n >\n {children}\n </div>\n );\n}\n\nDropdownLabel.displayName = 'DropdownLabel';\n\nexport {\n Dropdown,\n DropdownHeader,\n DropdownContent,\n DropdownItem,\n DropdownSeparator,\n DropdownLabel,\n};\n"]}