@mieweb/ui 0.8.0 → 0.9.0-dev.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 (384) hide show
  1. package/README.md +162 -739
  2. package/agent/mieweb-ui.instructions.md +34 -16
  3. package/dist/Animated-Cs-naa2g.d.cts +175 -0
  4. package/dist/Animated-Cs-naa2g.d.ts +175 -0
  5. package/dist/CsvBlock-D7Z6ZCRP.js +6 -0
  6. package/dist/{CsvBlock-PUSTBQ5B.js.map → CsvBlock-D7Z6ZCRP.js.map} +1 -1
  7. package/dist/CsvBlock-QXXZ7ZUM.cjs +15 -0
  8. package/dist/{CsvBlock-OTFG3PYZ.cjs.map → CsvBlock-QXXZ7ZUM.cjs.map} +1 -1
  9. package/dist/HtmlPreviewBlock-AADG7MVB.cjs +15 -0
  10. package/dist/{HtmlPreviewBlock-QHLSIMWJ.cjs.map → HtmlPreviewBlock-AADG7MVB.cjs.map} +1 -1
  11. package/dist/HtmlPreviewBlock-F5VDM2EN.js +6 -0
  12. package/dist/{HtmlPreviewBlock-YF2YVKKX.js.map → HtmlPreviewBlock-F5VDM2EN.js.map} +1 -1
  13. package/dist/MermaidBlock-6PLITRBZ.js +6 -0
  14. package/dist/{MermaidBlock-H3TWNC4D.js.map → MermaidBlock-6PLITRBZ.js.map} +1 -1
  15. package/dist/MermaidBlock-TQ2O5CLV.cjs +15 -0
  16. package/dist/{MermaidBlock-ZLLBO3VY.cjs.map → MermaidBlock-TQ2O5CLV.cjs.map} +1 -1
  17. package/dist/SurveyBlock-OYL3VNU5.cjs +15 -0
  18. package/dist/{SurveyBlock-M2ZRTGVJ.cjs.map → SurveyBlock-OYL3VNU5.cjs.map} +1 -1
  19. package/dist/SurveyBlock-W5PSQ62F.js +6 -0
  20. package/dist/{SurveyBlock-JLHS3YQD.js.map → SurveyBlock-W5PSQ62F.js.map} +1 -1
  21. package/dist/ag-grid.cjs +5 -5
  22. package/dist/ag-grid.js +1 -1
  23. package/dist/brands/index.cjs +7 -7
  24. package/dist/brands/index.js +2 -2
  25. package/dist/{chunk-XS35KPBZ.cjs → chunk-2A2FLQJC.cjs} +1140 -14
  26. package/dist/chunk-2A2FLQJC.cjs.map +1 -0
  27. package/dist/{chunk-OTQ72WX3.js → chunk-2BPIVWAK.js} +3 -3
  28. package/dist/{chunk-OTQ72WX3.js.map → chunk-2BPIVWAK.js.map} +1 -1
  29. package/dist/{chunk-6EWJGRC3.js → chunk-3JWAABYI.js} +6 -6
  30. package/dist/chunk-3JWAABYI.js.map +1 -0
  31. package/dist/{chunk-5JZIDILK.cjs → chunk-3LHICE4I.cjs} +6 -6
  32. package/dist/chunk-3LHICE4I.cjs.map +1 -0
  33. package/dist/{chunk-JHZW3Y62.js → chunk-3RB35GYK.js} +5 -5
  34. package/dist/chunk-3RB35GYK.js.map +1 -0
  35. package/dist/{chunk-BOW7ZGI2.cjs → chunk-4SM3I7WE.cjs} +170 -10
  36. package/dist/chunk-4SM3I7WE.cjs.map +1 -0
  37. package/dist/{chunk-QHTDWIED.js → chunk-5H7SAEQO.js} +5 -5
  38. package/dist/{chunk-QHTDWIED.js.map → chunk-5H7SAEQO.js.map} +1 -1
  39. package/dist/chunk-5VXRKOPR.cjs +735 -0
  40. package/dist/chunk-5VXRKOPR.cjs.map +1 -0
  41. package/dist/{chunk-EMMYFHOT.js → chunk-5WOB4UBD.js} +3 -3
  42. package/dist/{chunk-EMMYFHOT.js.map → chunk-5WOB4UBD.js.map} +1 -1
  43. package/dist/{chunk-4CUFXCC5.cjs → chunk-5Z6UPVGC.cjs} +6 -6
  44. package/dist/{chunk-4CUFXCC5.cjs.map → chunk-5Z6UPVGC.cjs.map} +1 -1
  45. package/dist/{chunk-YIXTGWT4.cjs → chunk-6QKMMKRY.cjs} +5 -5
  46. package/dist/{chunk-YIXTGWT4.cjs.map → chunk-6QKMMKRY.cjs.map} +1 -1
  47. package/dist/{chunk-F57VRLKP.js → chunk-6SAYPXHX.js} +4 -4
  48. package/dist/{chunk-F57VRLKP.js.map → chunk-6SAYPXHX.js.map} +1 -1
  49. package/dist/{chunk-SK7H3Z67.cjs → chunk-6XDPJWSC.cjs} +99 -83
  50. package/dist/chunk-6XDPJWSC.cjs.map +1 -0
  51. package/dist/{chunk-4AE2L6AO.cjs → chunk-7FTBPLA6.cjs} +8 -8
  52. package/dist/chunk-7FTBPLA6.cjs.map +1 -0
  53. package/dist/{chunk-KVE7PQ5P.cjs → chunk-7KN6J7XV.cjs} +20 -20
  54. package/dist/{chunk-KVE7PQ5P.cjs.map → chunk-7KN6J7XV.cjs.map} +1 -1
  55. package/dist/{chunk-K4S4FAYX.cjs → chunk-AHINB2TP.cjs} +11 -11
  56. package/dist/{chunk-K4S4FAYX.cjs.map → chunk-AHINB2TP.cjs.map} +1 -1
  57. package/dist/{chunk-MYFZYUPR.cjs → chunk-AOHJILLU.cjs} +38 -3
  58. package/dist/chunk-AOHJILLU.cjs.map +1 -0
  59. package/dist/chunk-BKSPDTX4.js +3 -0
  60. package/dist/{chunk-3PXOIAF6.js.map → chunk-BKSPDTX4.js.map} +1 -1
  61. package/dist/chunk-BN75TLUN.cjs +163 -0
  62. package/dist/chunk-BN75TLUN.cjs.map +1 -0
  63. package/dist/{chunk-WWJIW2IH.cjs → chunk-BVMABVC4.cjs} +3 -3
  64. package/dist/{chunk-WWJIW2IH.cjs.map → chunk-BVMABVC4.cjs.map} +1 -1
  65. package/dist/{chunk-H7QSGFMZ.cjs → chunk-BZAGP5W6.cjs} +17 -10
  66. package/dist/chunk-BZAGP5W6.cjs.map +1 -0
  67. package/dist/{chunk-RS5VA6QU.cjs → chunk-C3DUS2VE.cjs} +3 -3
  68. package/dist/{chunk-RS5VA6QU.cjs.map → chunk-C3DUS2VE.cjs.map} +1 -1
  69. package/dist/{chunk-NLBT5O2X.js → chunk-CK3KLRNF.js} +3 -3
  70. package/dist/{chunk-NLBT5O2X.js.map → chunk-CK3KLRNF.js.map} +1 -1
  71. package/dist/{chunk-L6D4CKLV.cjs → chunk-CXDMZT45.cjs} +135 -4
  72. package/dist/chunk-CXDMZT45.cjs.map +1 -0
  73. package/dist/{chunk-TXRQQMG5.js → chunk-CYMZ2QS5.js} +2 -2
  74. package/dist/{chunk-TXRQQMG5.js.map → chunk-CYMZ2QS5.js.map} +1 -1
  75. package/dist/{chunk-DX64KLSN.js → chunk-D25WH7MH.js} +7 -7
  76. package/dist/{chunk-DX64KLSN.js.map → chunk-D25WH7MH.js.map} +1 -1
  77. package/dist/{chunk-XBKOZRDO.js → chunk-DFYMIRMW.js} +4 -4
  78. package/dist/{chunk-XBKOZRDO.js.map → chunk-DFYMIRMW.js.map} +1 -1
  79. package/dist/{chunk-AESFOMSH.js → chunk-DGRXAIWK.js} +135 -4
  80. package/dist/chunk-DGRXAIWK.js.map +1 -0
  81. package/dist/{chunk-UZ5NGGMI.js → chunk-EG7XFZ3W.js} +4 -4
  82. package/dist/{chunk-UZ5NGGMI.js.map → chunk-EG7XFZ3W.js.map} +1 -1
  83. package/dist/{chunk-LQHI44OZ.cjs → chunk-FUFBRKOG.cjs} +59 -59
  84. package/dist/{chunk-LQHI44OZ.cjs.map → chunk-FUFBRKOG.cjs.map} +1 -1
  85. package/dist/{chunk-DG7KE4YJ.cjs → chunk-FYAKUU2A.cjs} +38 -21
  86. package/dist/chunk-FYAKUU2A.cjs.map +1 -0
  87. package/dist/{chunk-7L7OPISJ.cjs → chunk-H4AVMUOC.cjs} +12 -6
  88. package/dist/chunk-H4AVMUOC.cjs.map +1 -0
  89. package/dist/{chunk-I2ECTLON.cjs → chunk-HXSA6QC5.cjs} +3 -3
  90. package/dist/{chunk-I2ECTLON.cjs.map → chunk-HXSA6QC5.cjs.map} +1 -1
  91. package/dist/{chunk-DCBMTFLE.js → chunk-HZ4MBUC3.js} +3 -3
  92. package/dist/{chunk-DCBMTFLE.js.map → chunk-HZ4MBUC3.js.map} +1 -1
  93. package/dist/{chunk-X5ZPYYMS.js → chunk-I3DQXUSC.js} +3 -3
  94. package/dist/{chunk-X5ZPYYMS.js.map → chunk-I3DQXUSC.js.map} +1 -1
  95. package/dist/{chunk-FN6VHMLM.cjs → chunk-IB54SKWB.cjs} +8 -8
  96. package/dist/{chunk-FN6VHMLM.cjs.map → chunk-IB54SKWB.cjs.map} +1 -1
  97. package/dist/chunk-IF3X2WZP.js +705 -0
  98. package/dist/chunk-IF3X2WZP.js.map +1 -0
  99. package/dist/{chunk-JP5SGIXA.cjs → chunk-IFDC4TXM.cjs} +4 -4
  100. package/dist/{chunk-JP5SGIXA.cjs.map → chunk-IFDC4TXM.cjs.map} +1 -1
  101. package/dist/{chunk-RDGRKYQ5.cjs → chunk-IINZWUGK.cjs} +58 -6
  102. package/dist/chunk-IINZWUGK.cjs.map +1 -0
  103. package/dist/{chunk-U3JU6BI5.cjs → chunk-JEIW7BSV.cjs} +3 -3
  104. package/dist/{chunk-U3JU6BI5.cjs.map → chunk-JEIW7BSV.cjs.map} +1 -1
  105. package/dist/{chunk-RZJXCI53.js → chunk-KATEJG2F.js} +1138 -14
  106. package/dist/chunk-KATEJG2F.js.map +1 -0
  107. package/dist/{chunk-D2GID3YK.js → chunk-KREUYVMZ.js} +58 -6
  108. package/dist/chunk-KREUYVMZ.js.map +1 -0
  109. package/dist/{chunk-Y6YSJPVC.js → chunk-KRU6IGV7.js} +11 -3
  110. package/dist/chunk-KRU6IGV7.js.map +1 -0
  111. package/dist/{chunk-LZU7YBXG.js → chunk-KU3XRHWA.js} +169 -10
  112. package/dist/chunk-KU3XRHWA.js.map +1 -0
  113. package/dist/{chunk-P2VTQ5AR.cjs → chunk-L52N6BEN.cjs} +39 -23
  114. package/dist/chunk-L52N6BEN.cjs.map +1 -0
  115. package/dist/{chunk-XWYKLEKG.js → chunk-L5W7TJQ5.js} +11 -5
  116. package/dist/chunk-L5W7TJQ5.js.map +1 -0
  117. package/dist/{chunk-PAM5UUBL.cjs → chunk-L7L5S2HO.cjs} +18 -2
  118. package/dist/{chunk-PAM5UUBL.cjs.map → chunk-L7L5S2HO.cjs.map} +1 -1
  119. package/dist/{chunk-SEPYBAML.js → chunk-LAEIVOIY.js} +38 -21
  120. package/dist/chunk-LAEIVOIY.js.map +1 -0
  121. package/dist/{chunk-Z5KFXHDP.cjs → chunk-MM7QKUE3.cjs} +5 -5
  122. package/dist/{chunk-Z5KFXHDP.cjs.map → chunk-MM7QKUE3.cjs.map} +1 -1
  123. package/dist/{chunk-FJ7YPVKV.js → chunk-MUIDWFYJ.js} +3 -3
  124. package/dist/{chunk-FJ7YPVKV.js.map → chunk-MUIDWFYJ.js.map} +1 -1
  125. package/dist/{chunk-YMHOF6WA.cjs → chunk-MYAU2ZUC.cjs} +3 -3
  126. package/dist/{chunk-YMHOF6WA.cjs.map → chunk-MYAU2ZUC.cjs.map} +1 -1
  127. package/dist/{chunk-5J5PEUUA.js → chunk-NHN6A3ZO.js} +6 -6
  128. package/dist/{chunk-5J5PEUUA.js.map → chunk-NHN6A3ZO.js.map} +1 -1
  129. package/dist/{chunk-EPQPUFS6.cjs → chunk-NYJIXR4Y.cjs} +6 -6
  130. package/dist/chunk-NYJIXR4Y.cjs.map +1 -0
  131. package/dist/{chunk-RYQ3S3KO.cjs → chunk-O425FKDI.cjs} +581 -70
  132. package/dist/chunk-O425FKDI.cjs.map +1 -0
  133. package/dist/{chunk-WIYQI35R.cjs → chunk-O7XHHTTP.cjs} +8 -8
  134. package/dist/{chunk-WIYQI35R.cjs.map → chunk-O7XHHTTP.cjs.map} +1 -1
  135. package/dist/{chunk-IILJGFI5.js → chunk-OAZUDUGX.js} +8 -6
  136. package/dist/chunk-OAZUDUGX.js.map +1 -0
  137. package/dist/{chunk-JHGMZX4I.cjs → chunk-OCV33S5Q.cjs} +6 -6
  138. package/dist/{chunk-JHGMZX4I.cjs.map → chunk-OCV33S5Q.cjs.map} +1 -1
  139. package/dist/{chunk-IYXCFIMP.js → chunk-ODYQYLO2.js} +33 -17
  140. package/dist/chunk-ODYQYLO2.js.map +1 -0
  141. package/dist/{chunk-FPVRQCCL.js → chunk-OHDIJOGG.js} +4 -4
  142. package/dist/{chunk-FPVRQCCL.js.map → chunk-OHDIJOGG.js.map} +1 -1
  143. package/dist/{chunk-GQVL2JKQ.cjs → chunk-OHKO5THF.cjs} +3 -3
  144. package/dist/{chunk-GQVL2JKQ.cjs.map → chunk-OHKO5THF.cjs.map} +1 -1
  145. package/dist/{chunk-LMBXJZLG.js → chunk-ON4JULCA.js} +3 -3
  146. package/dist/{chunk-LMBXJZLG.js.map → chunk-ON4JULCA.js.map} +1 -1
  147. package/dist/{chunk-A5YOIJKL.js → chunk-ONNY7UO4.js} +15 -15
  148. package/dist/{chunk-A5YOIJKL.js.map → chunk-ONNY7UO4.js.map} +1 -1
  149. package/dist/{chunk-DWCYEPTT.js → chunk-OSPTA4UR.js} +4 -4
  150. package/dist/{chunk-DWCYEPTT.js.map → chunk-OSPTA4UR.js.map} +1 -1
  151. package/dist/{chunk-FDUA6OGN.js → chunk-PFKRHNYV.js} +8 -8
  152. package/dist/chunk-PFKRHNYV.js.map +1 -0
  153. package/dist/{chunk-XMECP2MD.js → chunk-PHK4XBO5.js} +4 -4
  154. package/dist/{chunk-XMECP2MD.js.map → chunk-PHK4XBO5.js.map} +1 -1
  155. package/dist/{chunk-ZZJ4ZVYR.cjs → chunk-PJ6CC53R.cjs} +3 -3
  156. package/dist/{chunk-ZZJ4ZVYR.cjs.map → chunk-PJ6CC53R.cjs.map} +1 -1
  157. package/dist/{chunk-N3Y43KOB.js → chunk-PYHFVYVZ.js} +12 -5
  158. package/dist/chunk-PYHFVYVZ.js.map +1 -0
  159. package/dist/{chunk-XMCIXHGH.js → chunk-Q7G56ZIO.js} +39 -23
  160. package/dist/chunk-Q7G56ZIO.js.map +1 -0
  161. package/dist/{chunk-4PIW3Y5M.js → chunk-QAKASRE6.js} +34 -26
  162. package/dist/chunk-QAKASRE6.js.map +1 -0
  163. package/dist/{chunk-QGZC43L7.js → chunk-QAQOCS2J.js} +5 -5
  164. package/dist/{chunk-QGZC43L7.js.map → chunk-QAQOCS2J.js.map} +1 -1
  165. package/dist/{chunk-YVIH26FG.cjs → chunk-QKAYRHWP.cjs} +12 -12
  166. package/dist/{chunk-YVIH26FG.cjs.map → chunk-QKAYRHWP.cjs.map} +1 -1
  167. package/dist/{chunk-FDV7EQWH.js → chunk-RPG2ZP2T.js} +575 -68
  168. package/dist/chunk-RPG2ZP2T.js.map +1 -0
  169. package/dist/{chunk-P3JEMF6E.cjs → chunk-RSCA5AZW.cjs} +4 -4
  170. package/dist/{chunk-P3JEMF6E.cjs.map → chunk-RSCA5AZW.cjs.map} +1 -1
  171. package/dist/{chunk-5Y5FSR4N.js → chunk-SCXELRRZ.js} +3 -3
  172. package/dist/{chunk-5Y5FSR4N.js.map → chunk-SCXELRRZ.js.map} +1 -1
  173. package/dist/{chunk-JWTCEWQ4.cjs → chunk-SNEQXSC5.cjs} +2 -2
  174. package/dist/{chunk-JWTCEWQ4.cjs.map → chunk-SNEQXSC5.cjs.map} +1 -1
  175. package/dist/{chunk-U5TTXN45.cjs → chunk-SRA2L3SQ.cjs} +9 -7
  176. package/dist/chunk-SRA2L3SQ.cjs.map +1 -0
  177. package/dist/{chunk-5U6GETAW.js → chunk-TQDZLRIE.js} +3 -3
  178. package/dist/chunk-TQDZLRIE.js.map +1 -0
  179. package/dist/{chunk-HK3AMH3Q.cjs → chunk-VROIMIHB.cjs} +11 -3
  180. package/dist/chunk-VROIMIHB.cjs.map +1 -0
  181. package/dist/{chunk-3SHLOF4V.cjs → chunk-VTR2KGLY.cjs} +9 -9
  182. package/dist/{chunk-3SHLOF4V.cjs.map → chunk-VTR2KGLY.cjs.map} +1 -1
  183. package/dist/{chunk-XO3WLK65.js → chunk-VVDE4CHU.js} +3 -3
  184. package/dist/{chunk-XO3WLK65.js.map → chunk-VVDE4CHU.js.map} +1 -1
  185. package/dist/{chunk-BOOJDRJO.js → chunk-WSNMQQ4P.js} +38 -3
  186. package/dist/chunk-WSNMQQ4P.js.map +1 -0
  187. package/dist/chunk-WYMO3IIK.js +136 -0
  188. package/dist/chunk-WYMO3IIK.js.map +1 -0
  189. package/dist/{chunk-SPWVKDGC.cjs → chunk-X5QRRMGB.cjs} +35 -27
  190. package/dist/chunk-X5QRRMGB.cjs.map +1 -0
  191. package/dist/{chunk-SH6B4MG5.js → chunk-XBXDUAIM.js} +4 -4
  192. package/dist/{chunk-SH6B4MG5.js.map → chunk-XBXDUAIM.js.map} +1 -1
  193. package/dist/{chunk-56QJHQ5C.cjs → chunk-XEEVDZDK.cjs} +5 -5
  194. package/dist/{chunk-56QJHQ5C.cjs.map → chunk-XEEVDZDK.cjs.map} +1 -1
  195. package/dist/{chunk-GXODR6V4.js → chunk-XOIIUO6O.js} +3 -3
  196. package/dist/{chunk-GXODR6V4.js.map → chunk-XOIIUO6O.js.map} +1 -1
  197. package/dist/{chunk-ELYGV32O.cjs → chunk-XTHMC76F.cjs} +5 -5
  198. package/dist/{chunk-ELYGV32O.cjs.map → chunk-XTHMC76F.cjs.map} +1 -1
  199. package/dist/{chunk-FF235PKY.cjs → chunk-XWZEECEX.cjs} +3 -3
  200. package/dist/chunk-XWZEECEX.cjs.map +1 -0
  201. package/dist/{chunk-TVLZZI5Q.cjs → chunk-YJP6DUFO.cjs} +9 -9
  202. package/dist/{chunk-TVLZZI5Q.cjs.map → chunk-YJP6DUFO.cjs.map} +1 -1
  203. package/dist/{chunk-EHQ77LL5.js → chunk-ZB54MTMQ.js} +3 -3
  204. package/dist/{chunk-EHQ77LL5.js.map → chunk-ZB54MTMQ.js.map} +1 -1
  205. package/dist/components/Accordion/index.cjs +2 -2
  206. package/dist/components/Accordion/index.js +1 -1
  207. package/dist/components/Alert/index.cjs +5 -5
  208. package/dist/components/Alert/index.d.cts +1 -1
  209. package/dist/components/Alert/index.d.ts +1 -1
  210. package/dist/components/Alert/index.js +1 -1
  211. package/dist/components/AlertDialog/index.cjs +6 -5
  212. package/dist/components/AlertDialog/index.js +5 -4
  213. package/dist/components/AudioPlayer/index.cjs +6 -6
  214. package/dist/components/AudioPlayer/index.js +1 -1
  215. package/dist/components/Autocomplete/index.cjs +4 -4
  216. package/dist/components/Autocomplete/index.js +3 -3
  217. package/dist/components/Avatar/index.cjs +5 -5
  218. package/dist/components/Avatar/index.js +1 -1
  219. package/dist/components/Badge/index.d.cts +1 -1
  220. package/dist/components/Badge/index.d.ts +1 -1
  221. package/dist/components/Breadcrumb/index.cjs +3 -3
  222. package/dist/components/Breadcrumb/index.js +1 -1
  223. package/dist/components/Button/index.cjs +3 -3
  224. package/dist/components/Button/index.js +1 -1
  225. package/dist/components/Card/index.d.cts +2 -2
  226. package/dist/components/Card/index.d.ts +2 -2
  227. package/dist/components/CountryCodeDropdown/index.cjs +6 -6
  228. package/dist/components/CountryCodeDropdown/index.d.cts +11 -1
  229. package/dist/components/CountryCodeDropdown/index.d.ts +11 -1
  230. package/dist/components/CountryCodeDropdown/index.js +3 -3
  231. package/dist/components/CustomizableDashboard/index.cjs +11 -11
  232. package/dist/components/CustomizableDashboard/index.js +4 -4
  233. package/dist/components/DateInput/index.cjs +4 -4
  234. package/dist/components/DateInput/index.js +3 -3
  235. package/dist/components/Dropdown/index.cjs +13 -9
  236. package/dist/components/Dropdown/index.d.cts +38 -2
  237. package/dist/components/Dropdown/index.d.ts +38 -2
  238. package/dist/components/Dropdown/index.js +3 -3
  239. package/dist/components/FloatingWindow/index.cjs +4 -4
  240. package/dist/components/FloatingWindow/index.js +2 -2
  241. package/dist/components/GlossaryTooltip/index.cjs +4 -4
  242. package/dist/components/GlossaryTooltip/index.js +3 -3
  243. package/dist/components/KeyboardShortcutsOverlay/index.cjs +6 -5
  244. package/dist/components/KeyboardShortcutsOverlay/index.js +4 -3
  245. package/dist/components/Markdown/index.cjs +19 -19
  246. package/dist/components/Markdown/index.js +7 -7
  247. package/dist/components/MediaEditor/index.cjs +15 -14
  248. package/dist/components/MediaEditor/index.js +10 -9
  249. package/dist/components/MediaPlayer/index.cjs +6 -6
  250. package/dist/components/MediaPlayer/index.js +3 -3
  251. package/dist/components/Modal/index.cjs +11 -10
  252. package/dist/components/Modal/index.d.cts +1 -1
  253. package/dist/components/Modal/index.d.ts +1 -1
  254. package/dist/components/Modal/index.js +3 -2
  255. package/dist/components/Pagination/index.cjs +4 -4
  256. package/dist/components/Pagination/index.d.cts +1 -1
  257. package/dist/components/Pagination/index.d.ts +1 -1
  258. package/dist/components/Pagination/index.js +1 -1
  259. package/dist/components/PhoneInput/index.cjs +4 -4
  260. package/dist/components/PhoneInput/index.js +2 -2
  261. package/dist/components/Progress/index.d.cts +1 -1
  262. package/dist/components/Progress/index.d.ts +1 -1
  263. package/dist/components/QuickAction/index.cjs +6 -6
  264. package/dist/components/QuickAction/index.js +1 -1
  265. package/dist/components/RecordButton/index.d.cts +1 -1
  266. package/dist/components/RecordButton/index.d.ts +1 -1
  267. package/dist/components/RichTextEditor/index.cjs +9 -9
  268. package/dist/components/RichTextEditor/index.js +6 -6
  269. package/dist/components/SectionSpyNav/index.cjs +4 -4
  270. package/dist/components/SectionSpyNav/index.js +3 -3
  271. package/dist/components/Select/index.cjs +5 -5
  272. package/dist/components/Select/index.js +3 -3
  273. package/dist/components/Sheet/index.cjs +11 -11
  274. package/dist/components/Sheet/index.js +2 -2
  275. package/dist/components/Slider/index.cjs +5 -5
  276. package/dist/components/Slider/index.d.cts +2 -2
  277. package/dist/components/Slider/index.d.ts +2 -2
  278. package/dist/components/Slider/index.js +1 -1
  279. package/dist/components/SourceTip/index.cjs +4 -4
  280. package/dist/components/SourceTip/index.js +3 -3
  281. package/dist/components/SuperChat/index.cjs +292 -115
  282. package/dist/components/SuperChat/index.cjs.map +1 -1
  283. package/dist/components/SuperChat/index.d.cts +29 -8
  284. package/dist/components/SuperChat/index.d.ts +29 -8
  285. package/dist/components/SuperChat/index.js +284 -107
  286. package/dist/components/SuperChat/index.js.map +1 -1
  287. package/dist/components/SuperChat/plugins/index.cjs +7 -7
  288. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  289. package/dist/components/SuperChat/plugins/index.d.cts +2 -2
  290. package/dist/components/SuperChat/plugins/index.d.ts +2 -2
  291. package/dist/components/SuperChat/plugins/index.js +6 -6
  292. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  293. package/dist/components/Text/index.d.cts +1 -1
  294. package/dist/components/Text/index.d.ts +1 -1
  295. package/dist/components/ThemeProvider/index.cjs +9 -9
  296. package/dist/components/ThemeProvider/index.d.cts +1 -1
  297. package/dist/components/ThemeProvider/index.d.ts +1 -1
  298. package/dist/components/ThemeProvider/index.js +3 -3
  299. package/dist/components/Toggle/index.d.cts +1 -1
  300. package/dist/components/Toggle/index.d.ts +1 -1
  301. package/dist/components/Tooltip/index.cjs +3 -3
  302. package/dist/components/Tooltip/index.js +2 -2
  303. package/dist/components/TranscriptView/index.cjs +3 -3
  304. package/dist/components/TranscriptView/index.js +1 -1
  305. package/dist/datavis.cjs +2 -2
  306. package/dist/datavis.js +1 -1
  307. package/dist/esheet.cjs +15 -14
  308. package/dist/esheet.cjs.map +1 -1
  309. package/dist/esheet.js +12 -11
  310. package/dist/esheet.js.map +1 -1
  311. package/dist/hooks/index.cjs +3 -3
  312. package/dist/hooks/index.d.cts +1 -1
  313. package/dist/hooks/index.d.ts +1 -1
  314. package/dist/hooks/index.js +2 -2
  315. package/dist/index.cjs +2509 -2860
  316. package/dist/index.cjs.map +1 -1
  317. package/dist/index.d.cts +278 -43
  318. package/dist/index.d.ts +278 -43
  319. package/dist/index.js +1305 -1700
  320. package/dist/index.js.map +1 -1
  321. package/dist/motion.cjs +87 -0
  322. package/dist/motion.cjs.map +1 -0
  323. package/dist/motion.d.cts +52 -0
  324. package/dist/motion.d.ts +52 -0
  325. package/dist/motion.js +50 -0
  326. package/dist/motion.js.map +1 -0
  327. package/dist/styles/init.css +25 -0
  328. package/dist/styles.css +1 -1
  329. package/dist/tailwind-preset.cjs +4 -4
  330. package/dist/tailwind-preset.js +1 -1
  331. package/dist/{types-BoTeTPdH.d.ts → types-9vK_YdEb.d.ts} +12 -1
  332. package/dist/{types-DyIB9HYT.d.cts → types-DZDroUW8.d.cts} +12 -1
  333. package/dist/{useAnchoredPosition-C7PNglzD.d.ts → useAnchoredPosition-CKwLSQW8.d.cts} +10 -3
  334. package/dist/{useAnchoredPosition-C7PNglzD.d.cts → useAnchoredPosition-CKwLSQW8.d.ts} +10 -3
  335. package/package.json +21 -2
  336. package/dist/CsvBlock-OTFG3PYZ.cjs +0 -15
  337. package/dist/CsvBlock-PUSTBQ5B.js +0 -6
  338. package/dist/HtmlPreviewBlock-QHLSIMWJ.cjs +0 -15
  339. package/dist/HtmlPreviewBlock-YF2YVKKX.js +0 -6
  340. package/dist/MermaidBlock-H3TWNC4D.js +0 -6
  341. package/dist/MermaidBlock-ZLLBO3VY.cjs +0 -15
  342. package/dist/SurveyBlock-JLHS3YQD.js +0 -6
  343. package/dist/SurveyBlock-M2ZRTGVJ.cjs +0 -15
  344. package/dist/chunk-26DPQUSB.cjs +0 -1177
  345. package/dist/chunk-26DPQUSB.cjs.map +0 -1
  346. package/dist/chunk-3PXOIAF6.js +0 -3
  347. package/dist/chunk-4AE2L6AO.cjs.map +0 -1
  348. package/dist/chunk-4PIW3Y5M.js.map +0 -1
  349. package/dist/chunk-5JZIDILK.cjs.map +0 -1
  350. package/dist/chunk-5U6GETAW.js.map +0 -1
  351. package/dist/chunk-6EWJGRC3.js.map +0 -1
  352. package/dist/chunk-7L7OPISJ.cjs.map +0 -1
  353. package/dist/chunk-AESFOMSH.js.map +0 -1
  354. package/dist/chunk-BOOJDRJO.js.map +0 -1
  355. package/dist/chunk-BOW7ZGI2.cjs.map +0 -1
  356. package/dist/chunk-D2GID3YK.js.map +0 -1
  357. package/dist/chunk-DG7KE4YJ.cjs.map +0 -1
  358. package/dist/chunk-EKRT7K2K.js +0 -1145
  359. package/dist/chunk-EKRT7K2K.js.map +0 -1
  360. package/dist/chunk-EPQPUFS6.cjs.map +0 -1
  361. package/dist/chunk-FDUA6OGN.js.map +0 -1
  362. package/dist/chunk-FDV7EQWH.js.map +0 -1
  363. package/dist/chunk-FF235PKY.cjs.map +0 -1
  364. package/dist/chunk-H7QSGFMZ.cjs.map +0 -1
  365. package/dist/chunk-HK3AMH3Q.cjs.map +0 -1
  366. package/dist/chunk-IILJGFI5.js.map +0 -1
  367. package/dist/chunk-IYXCFIMP.js.map +0 -1
  368. package/dist/chunk-JHZW3Y62.js.map +0 -1
  369. package/dist/chunk-L6D4CKLV.cjs.map +0 -1
  370. package/dist/chunk-LZU7YBXG.js.map +0 -1
  371. package/dist/chunk-MYFZYUPR.cjs.map +0 -1
  372. package/dist/chunk-N3Y43KOB.js.map +0 -1
  373. package/dist/chunk-P2VTQ5AR.cjs.map +0 -1
  374. package/dist/chunk-RDGRKYQ5.cjs.map +0 -1
  375. package/dist/chunk-RYQ3S3KO.cjs.map +0 -1
  376. package/dist/chunk-RZJXCI53.js.map +0 -1
  377. package/dist/chunk-SEPYBAML.js.map +0 -1
  378. package/dist/chunk-SK7H3Z67.cjs.map +0 -1
  379. package/dist/chunk-SPWVKDGC.cjs.map +0 -1
  380. package/dist/chunk-U5TTXN45.cjs.map +0 -1
  381. package/dist/chunk-XMCIXHGH.js.map +0 -1
  382. package/dist/chunk-XS35KPBZ.cjs.map +0 -1
  383. package/dist/chunk-XWYKLEKG.js.map +0 -1
  384. package/dist/chunk-Y6YSJPVC.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Slider/Slider.tsx"],"names":["cva","React","jsxs","cn","jsx"],"mappings":"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","file":"chunk-YMHOF6WA.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Slider Variants\n// ============================================================================\n\nconst sliderTrackVariants = cva(\n [\n 'relative w-full overflow-hidden rounded-full',\n 'bg-neutral-200 dark:bg-neutral-700',\n 'cursor-pointer',\n 'group-data-[disabled=true]:cursor-not-allowed group-data-[disabled=true]:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'h-1',\n md: 'h-2',\n lg: 'h-3',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst sliderRangeVariants = cva(\n ['absolute h-full rounded-full transition-all duration-75 ease-out'],\n {\n variants: {\n variant: {\n default: 'bg-primary-800',\n success: 'bg-green-500',\n warning: 'bg-yellow-500',\n danger: 'bg-red-500',\n neutral: 'bg-neutral-500',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst sliderThumbVariants = cva(\n [\n 'absolute top-1/2 -translate-y-1/2 -translate-x-1/2',\n 'rounded-full border-2 bg-white',\n 'shadow-md transition-shadow duration-150',\n 'cursor-grab active:cursor-grabbing',\n 'hover:shadow-lg',\n 'active:shadow-xl active:scale-110',\n 'group-focus-visible:outline-none group-focus-visible:ring-2 group-focus-visible:ring-ring group-focus-visible:ring-offset-2',\n 'group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'h-3.5 w-3.5',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n },\n variant: {\n default: 'border-primary-500',\n success: 'border-green-500',\n warning: 'border-yellow-500',\n danger: 'border-red-500',\n neutral: 'border-neutral-500',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n }\n);\n\n// ============================================================================\n// Slider Component\n// ============================================================================\n\nexport interface SliderProps\n extends\n VariantProps<typeof sliderTrackVariants>,\n VariantProps<typeof sliderRangeVariants> {\n /** Current value (controlled) */\n value?: number;\n /** Default value (uncontrolled) */\n defaultValue?: number;\n /** Minimum value */\n min?: number;\n /** Maximum value */\n max?: number;\n /** Step increment */\n step?: number;\n /** Callback when value changes */\n onValueChange?: (value: number) => void;\n /** Callback when interaction ends (mouseup / touchend) */\n onValueCommit?: (value: number) => void;\n /** Whether the slider is disabled */\n disabled?: boolean;\n /** Label for the slider */\n label?: string;\n /** Show the current value */\n showValue?: boolean;\n /** Format the displayed value */\n formatValue?: (value: number) => string;\n /** Description text below the label */\n description?: string;\n /** Min label displayed below the track (left) */\n minLabel?: string;\n /** Max label displayed below the track (right) */\n maxLabel?: string;\n /** Additional class name for the root container */\n className?: string;\n /** Additional class name for the track */\n trackClassName?: string;\n /** ID for the underlying input */\n id?: string;\n /** Name for form submission */\n name?: string;\n /** Accessible label for the slider */\n 'aria-label'?: string;\n /** ID of the element that labels the slider */\n 'aria-labelledby'?: string;\n}\n\n/**\n * A fully branded, accessible slider/range input component.\n *\n * Uses brand design tokens for colors, border-radius, and sizing.\n * Supports controlled and uncontrolled usage, labels, descriptions,\n * min/max labels, value display, and multiple color variants.\n *\n * @example\n * ```tsx\n * <Slider label=\"Volume\" min={0} max={100} defaultValue={50} />\n * <Slider\n * label=\"Border Radius\"\n * min={0}\n * max={32}\n * value={radius}\n * onValueChange={setRadius}\n * showValue\n * formatValue={(v) => `${v}px`}\n * minLabel=\"Square\"\n * maxLabel=\"Rounded\"\n * />\n * ```\n */\nconst Slider = React.forwardRef<HTMLInputElement, SliderProps>(\n (\n {\n value: controlledValue,\n defaultValue = 0,\n min = 0,\n max = 100,\n step = 1,\n onValueChange,\n onValueCommit,\n disabled = false,\n label,\n showValue = false,\n formatValue,\n description,\n minLabel,\n maxLabel,\n variant,\n size,\n className,\n trackClassName,\n id,\n name,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledByProp,\n },\n ref\n ) => {\n const hasExplicitLabel = !!label;\n const labelId = React.useId();\n const descriptionId = React.useId();\n const ariaLabelledBy =\n ariaLabelledByProp ?? (hasExplicitLabel ? labelId : undefined);\n const ariaDescribedBy = description ? descriptionId : undefined;\n const ariaLabel =\n ariaLabelProp ??\n (!hasExplicitLabel && !ariaLabelledByProp ? 'Slider' : undefined);\n const [uncontrolledValue, setUncontrolledValue] =\n React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : uncontrolledValue;\n\n // Clamp value to min/max\n const clampedValue = Math.min(Math.max(currentValue, min), max);\n\n // Percentage for visual fill\n const percentage =\n max !== min ? ((clampedValue - min) / (max - min)) * 100 : 0;\n\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n\n const trackRef = React.useRef<HTMLDivElement>(null);\n const latestValueRef = React.useRef(clampedValue);\n latestValueRef.current = clampedValue;\n\n const safeStep = step > 0 ? step : 1;\n\n const computeValueFromPointer = React.useCallback(\n (clientX: number) => {\n const track = trackRef.current;\n if (!track) return clampedValue;\n const rect = track.getBoundingClientRect();\n const ratio = Math.min(\n Math.max((clientX - rect.left) / rect.width, 0),\n 1\n );\n const raw = min + ratio * (max - min);\n // Snap to step relative to min\n const stepped = min + Math.round((raw - min) / safeStep) * safeStep;\n return Math.min(Math.max(stepped, min), max);\n },\n [min, max, safeStep, clampedValue]\n );\n\n const setValue = React.useCallback(\n (newValue: number) => {\n latestValueRef.current = newValue;\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onValueChange?.(newValue);\n },\n [isControlled, onValueChange]\n );\n\n const handlePointerDown = React.useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n e.preventDefault();\n (e.currentTarget as HTMLElement).focus();\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n const newValue = computeValueFromPointer(e.clientX);\n setValue(newValue);\n },\n [disabled, computeValueFromPointer, setValue]\n );\n\n const handlePointerMove = React.useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n if (!(e.target as HTMLElement).hasPointerCapture(e.pointerId)) return;\n const newValue = computeValueFromPointer(e.clientX);\n setValue(newValue);\n },\n [disabled, computeValueFromPointer, setValue]\n );\n\n const handlePointerUp = React.useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n (e.target as HTMLElement).releasePointerCapture(e.pointerId);\n onValueCommit?.(latestValueRef.current);\n },\n [disabled, onValueCommit]\n );\n\n const handleLostPointerCapture = React.useCallback(() => {\n onValueCommit?.(latestValueRef.current);\n }, [onValueCommit]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = parseFloat(e.target.value);\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onValueChange?.(newValue);\n };\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n let newValue: number | null = null;\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n newValue = Math.min(clampedValue + safeStep, max);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n newValue = Math.max(clampedValue - safeStep, min);\n break;\n case 'Home':\n newValue = min;\n break;\n case 'End':\n newValue = max;\n break;\n default:\n return;\n }\n e.preventDefault();\n setValue(newValue);\n onValueCommit?.(newValue);\n },\n [disabled, clampedValue, safeStep, min, max, setValue, onValueCommit]\n );\n\n const displayValue = formatValue\n ? formatValue(clampedValue)\n : String(clampedValue);\n\n return (\n <div\n data-slot=\"slider\"\n className={cn('relative w-full', className)}\n data-disabled={disabled || undefined}\n >\n {/* Label row */}\n {(label || showValue) && (\n <div\n data-slot=\"slider-label-row\"\n className=\"mb-1.5 flex items-baseline justify-between\"\n >\n {label && (\n <label\n id={labelId}\n htmlFor={inputId}\n data-slot=\"slider-label\"\n className={cn(\n 'text-foreground text-sm font-medium',\n disabled && 'opacity-50'\n )}\n >\n {label}\n {showValue && (\n <span\n data-slot=\"slider-value\"\n className=\"text-muted-foreground ml-1\"\n >\n {displayValue}\n </span>\n )}\n </label>\n )}\n {!label && showValue && (\n <span\n data-slot=\"slider-value\"\n className=\"text-muted-foreground text-sm\"\n >\n {displayValue}\n </span>\n )}\n </div>\n )}\n\n {/* Description */}\n {description && (\n <p\n id={descriptionId}\n data-slot=\"slider-description\"\n className={cn(\n 'text-muted-foreground mb-2 text-xs',\n disabled && 'opacity-50'\n )}\n >\n {description}\n </p>\n )}\n\n {/* Track + Thumb */}\n <div\n ref={trackRef}\n data-slot=\"slider-track-wrapper\"\n className=\"group focus-visible:ring-ring relative rounded py-2 outline-none focus-visible:ring-2 focus-visible:ring-offset-2\"\n style={{ touchAction: disabled ? 'auto' : 'none' }}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={clampedValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled || undefined}\n data-disabled={disabled || undefined}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onLostPointerCapture={handleLostPointerCapture}\n onKeyDown={handleKeyDown}\n >\n {/* Visual track background */}\n <div\n data-slot=\"slider-track\"\n className={cn(sliderTrackVariants({ size }), trackClassName)}\n >\n {/* Filled range */}\n <div\n data-slot=\"slider-range\"\n className={sliderRangeVariants({ variant })}\n style={{ width: `${percentage}%` }}\n />\n </div>\n\n {/* Thumb indicator */}\n <div\n data-slot=\"slider-thumb\"\n className={sliderThumbVariants({ size, variant })}\n style={{ left: `${percentage}%` }}\n aria-hidden=\"true\"\n />\n </div>\n\n {/* Native range input — for form submission only, rendered outside role=\"slider\" to avoid nested-interactive */}\n <input\n ref={ref}\n type=\"range\"\n className=\"pointer-events-none absolute inset-0 h-full w-full opacity-0\"\n tabIndex={-1}\n aria-hidden=\"true\"\n id={inputId}\n name={name}\n min={min}\n max={max}\n step={step}\n value={clampedValue}\n onChange={handleChange}\n disabled={disabled}\n />\n\n {/* Min / Max labels */}\n {(minLabel || maxLabel) && (\n <div\n data-slot=\"slider-minmax\"\n className={cn(\n 'text-muted-foreground mt-1 flex justify-between text-xs',\n disabled && 'opacity-50'\n )}\n >\n <span>{minLabel}</span>\n <span>{maxLabel}</span>\n </div>\n )}\n </div>\n );\n }\n);\n\nSlider.displayName = 'Slider';\n\nexport {\n Slider,\n sliderTrackVariants,\n sliderRangeVariants,\n sliderThumbVariants,\n};\n"]}
1
+ {"version":3,"sources":["../src/components/Slider/Slider.tsx"],"names":["cva","React","jsxs","cn","jsx"],"mappings":"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","file":"chunk-MYAU2ZUC.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Slider Variants\n// ============================================================================\n\nconst sliderTrackVariants = cva(\n [\n 'relative w-full overflow-hidden rounded-full',\n 'bg-neutral-200 dark:bg-neutral-700',\n 'cursor-pointer',\n 'group-data-[disabled=true]:cursor-not-allowed group-data-[disabled=true]:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'h-1',\n md: 'h-2',\n lg: 'h-3',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nconst sliderRangeVariants = cva(\n ['absolute h-full rounded-full transition-all duration-75 ease-out'],\n {\n variants: {\n variant: {\n default: 'bg-primary-800',\n success: 'bg-green-500',\n warning: 'bg-yellow-500',\n danger: 'bg-red-500',\n neutral: 'bg-neutral-500',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nconst sliderThumbVariants = cva(\n [\n 'absolute top-1/2 -translate-y-1/2 -translate-x-1/2',\n 'rounded-full border-2 bg-white',\n 'shadow-md transition-shadow duration-150',\n 'cursor-grab active:cursor-grabbing',\n 'hover:shadow-lg',\n 'active:shadow-xl active:scale-110',\n 'group-focus-visible:outline-none group-focus-visible:ring-2 group-focus-visible:ring-ring group-focus-visible:ring-offset-2',\n 'group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50',\n ],\n {\n variants: {\n size: {\n sm: 'h-3.5 w-3.5',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n },\n variant: {\n default: 'border-primary-500',\n success: 'border-green-500',\n warning: 'border-yellow-500',\n danger: 'border-red-500',\n neutral: 'border-neutral-500',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n }\n);\n\n// ============================================================================\n// Slider Component\n// ============================================================================\n\nexport interface SliderProps\n extends\n VariantProps<typeof sliderTrackVariants>,\n VariantProps<typeof sliderRangeVariants> {\n /** Current value (controlled) */\n value?: number;\n /** Default value (uncontrolled) */\n defaultValue?: number;\n /** Minimum value */\n min?: number;\n /** Maximum value */\n max?: number;\n /** Step increment */\n step?: number;\n /** Callback when value changes */\n onValueChange?: (value: number) => void;\n /** Callback when interaction ends (mouseup / touchend) */\n onValueCommit?: (value: number) => void;\n /** Whether the slider is disabled */\n disabled?: boolean;\n /** Label for the slider */\n label?: string;\n /** Show the current value */\n showValue?: boolean;\n /** Format the displayed value */\n formatValue?: (value: number) => string;\n /** Description text below the label */\n description?: string;\n /** Min label displayed below the track (left) */\n minLabel?: string;\n /** Max label displayed below the track (right) */\n maxLabel?: string;\n /** Additional class name for the root container */\n className?: string;\n /** Additional class name for the track */\n trackClassName?: string;\n /** ID for the underlying input */\n id?: string;\n /** Name for form submission */\n name?: string;\n /** Accessible label for the slider */\n 'aria-label'?: string;\n /** ID of the element that labels the slider */\n 'aria-labelledby'?: string;\n}\n\n/**\n * A fully branded, accessible slider/range input component.\n *\n * Uses brand design tokens for colors, border-radius, and sizing.\n * Supports controlled and uncontrolled usage, labels, descriptions,\n * min/max labels, value display, and multiple color variants.\n *\n * @example\n * ```tsx\n * <Slider label=\"Volume\" min={0} max={100} defaultValue={50} />\n * <Slider\n * label=\"Border Radius\"\n * min={0}\n * max={32}\n * value={radius}\n * onValueChange={setRadius}\n * showValue\n * formatValue={(v) => `${v}px`}\n * minLabel=\"Square\"\n * maxLabel=\"Rounded\"\n * />\n * ```\n */\nconst Slider = React.forwardRef<HTMLInputElement, SliderProps>(\n (\n {\n value: controlledValue,\n defaultValue = 0,\n min = 0,\n max = 100,\n step = 1,\n onValueChange,\n onValueCommit,\n disabled = false,\n label,\n showValue = false,\n formatValue,\n description,\n minLabel,\n maxLabel,\n variant,\n size,\n className,\n trackClassName,\n id,\n name,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledByProp,\n },\n ref\n ) => {\n const hasExplicitLabel = !!label;\n const labelId = React.useId();\n const descriptionId = React.useId();\n const ariaLabelledBy =\n ariaLabelledByProp ?? (hasExplicitLabel ? labelId : undefined);\n const ariaDescribedBy = description ? descriptionId : undefined;\n const ariaLabel =\n ariaLabelProp ??\n (!hasExplicitLabel && !ariaLabelledByProp ? 'Slider' : undefined);\n const [uncontrolledValue, setUncontrolledValue] =\n React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : uncontrolledValue;\n\n // Clamp value to min/max\n const clampedValue = Math.min(Math.max(currentValue, min), max);\n\n // Percentage for visual fill\n const percentage =\n max !== min ? ((clampedValue - min) / (max - min)) * 100 : 0;\n\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n\n const trackRef = React.useRef<HTMLDivElement>(null);\n const latestValueRef = React.useRef(clampedValue);\n latestValueRef.current = clampedValue;\n\n const safeStep = step > 0 ? step : 1;\n\n const computeValueFromPointer = React.useCallback(\n (clientX: number) => {\n const track = trackRef.current;\n if (!track) return clampedValue;\n const rect = track.getBoundingClientRect();\n const ratio = Math.min(\n Math.max((clientX - rect.left) / rect.width, 0),\n 1\n );\n const raw = min + ratio * (max - min);\n // Snap to step relative to min\n const stepped = min + Math.round((raw - min) / safeStep) * safeStep;\n return Math.min(Math.max(stepped, min), max);\n },\n [min, max, safeStep, clampedValue]\n );\n\n const setValue = React.useCallback(\n (newValue: number) => {\n latestValueRef.current = newValue;\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onValueChange?.(newValue);\n },\n [isControlled, onValueChange]\n );\n\n const handlePointerDown = React.useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n e.preventDefault();\n (e.currentTarget as HTMLElement).focus();\n (e.target as HTMLElement).setPointerCapture(e.pointerId);\n const newValue = computeValueFromPointer(e.clientX);\n setValue(newValue);\n },\n [disabled, computeValueFromPointer, setValue]\n );\n\n const handlePointerMove = React.useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n if (!(e.target as HTMLElement).hasPointerCapture(e.pointerId)) return;\n const newValue = computeValueFromPointer(e.clientX);\n setValue(newValue);\n },\n [disabled, computeValueFromPointer, setValue]\n );\n\n const handlePointerUp = React.useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n (e.target as HTMLElement).releasePointerCapture(e.pointerId);\n onValueCommit?.(latestValueRef.current);\n },\n [disabled, onValueCommit]\n );\n\n const handleLostPointerCapture = React.useCallback(() => {\n onValueCommit?.(latestValueRef.current);\n }, [onValueCommit]);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = parseFloat(e.target.value);\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onValueChange?.(newValue);\n };\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n let newValue: number | null = null;\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n newValue = Math.min(clampedValue + safeStep, max);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n newValue = Math.max(clampedValue - safeStep, min);\n break;\n case 'Home':\n newValue = min;\n break;\n case 'End':\n newValue = max;\n break;\n default:\n return;\n }\n e.preventDefault();\n setValue(newValue);\n onValueCommit?.(newValue);\n },\n [disabled, clampedValue, safeStep, min, max, setValue, onValueCommit]\n );\n\n const displayValue = formatValue\n ? formatValue(clampedValue)\n : String(clampedValue);\n\n return (\n <div\n data-slot=\"slider\"\n className={cn('relative w-full', className)}\n data-disabled={disabled || undefined}\n >\n {/* Label row */}\n {(label || showValue) && (\n <div\n data-slot=\"slider-label-row\"\n className=\"mb-1.5 flex items-baseline justify-between\"\n >\n {label && (\n <label\n id={labelId}\n htmlFor={inputId}\n data-slot=\"slider-label\"\n className={cn(\n 'text-foreground text-sm font-medium',\n disabled && 'opacity-50'\n )}\n >\n {label}\n {showValue && (\n <span\n data-slot=\"slider-value\"\n className=\"text-muted-foreground ms-1\"\n >\n {displayValue}\n </span>\n )}\n </label>\n )}\n {!label && showValue && (\n <span\n data-slot=\"slider-value\"\n className=\"text-muted-foreground text-sm\"\n >\n {displayValue}\n </span>\n )}\n </div>\n )}\n\n {/* Description */}\n {description && (\n <p\n id={descriptionId}\n data-slot=\"slider-description\"\n className={cn(\n 'text-muted-foreground mb-2 text-xs',\n disabled && 'opacity-50'\n )}\n >\n {description}\n </p>\n )}\n\n {/* Track + Thumb */}\n <div\n ref={trackRef}\n data-slot=\"slider-track-wrapper\"\n className=\"group focus-visible:ring-ring relative rounded py-2 outline-none focus-visible:ring-2 focus-visible:ring-offset-2\"\n style={{ touchAction: disabled ? 'auto' : 'none' }}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={clampedValue}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled || undefined}\n data-disabled={disabled || undefined}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onLostPointerCapture={handleLostPointerCapture}\n onKeyDown={handleKeyDown}\n >\n {/* Visual track background */}\n <div\n data-slot=\"slider-track\"\n className={cn(sliderTrackVariants({ size }), trackClassName)}\n >\n {/* Filled range */}\n <div\n data-slot=\"slider-range\"\n className={sliderRangeVariants({ variant })}\n style={{ width: `${percentage}%` }}\n />\n </div>\n\n {/* Thumb indicator */}\n <div\n data-slot=\"slider-thumb\"\n className={sliderThumbVariants({ size, variant })}\n style={{ left: `${percentage}%` }}\n aria-hidden=\"true\"\n />\n </div>\n\n {/* Native range input — for form submission only, rendered outside role=\"slider\" to avoid nested-interactive */}\n <input\n ref={ref}\n type=\"range\"\n className=\"pointer-events-none absolute inset-0 h-full w-full opacity-0\"\n tabIndex={-1}\n aria-hidden=\"true\"\n id={inputId}\n name={name}\n min={min}\n max={max}\n step={step}\n value={clampedValue}\n onChange={handleChange}\n disabled={disabled}\n />\n\n {/* Min / Max labels */}\n {(minLabel || maxLabel) && (\n <div\n data-slot=\"slider-minmax\"\n className={cn(\n 'text-muted-foreground mt-1 flex justify-between text-xs',\n disabled && 'opacity-50'\n )}\n >\n <span>{minLabel}</span>\n <span>{maxLabel}</span>\n </div>\n )}\n </div>\n );\n }\n);\n\nSlider.displayName = 'Slider';\n\nexport {\n Slider,\n sliderTrackVariants,\n sliderRangeVariants,\n sliderThumbVariants,\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { FenceBlock } from './chunk-NLBT5O2X.js';
2
- import { Button } from './chunk-D2GID3YK.js';
1
+ import { FenceBlock } from './chunk-CK3KLRNF.js';
2
+ import { Button } from './chunk-KREUYVMZ.js';
3
3
  import { Download } from 'lucide-react';
4
4
  import { useState, useEffect, useMemo, useCallback } from 'react';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -141,13 +141,13 @@ var CsvBlock = ({ code, id }) => {
141
141
  {
142
142
  scope: "col",
143
143
  "aria-sort": ariaSort,
144
- className: "px-3 py-2 text-left text-xs font-medium whitespace-nowrap text-neutral-600 dark:text-neutral-400",
144
+ className: "px-3 py-2 text-start text-xs font-medium whitespace-nowrap text-neutral-600 dark:text-neutral-400",
145
145
  children: /* @__PURE__ */ jsxs(
146
146
  "button",
147
147
  {
148
148
  type: "button",
149
149
  onClick: () => handleSort(header),
150
- className: "flex w-full cursor-pointer items-center gap-1 text-left font-medium select-none hover:text-neutral-900 dark:hover:text-neutral-200",
150
+ className: "flex w-full cursor-pointer items-center gap-1 text-start font-medium select-none hover:text-neutral-900 dark:hover:text-neutral-200",
151
151
  children: [
152
152
  header,
153
153
  isSorted && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: sortConfig.direction === "asc" ? "\u2191" : "\u2193" })
@@ -178,5 +178,5 @@ var CsvBlock = ({ code, id }) => {
178
178
  };
179
179
 
180
180
  export { CsvBlock };
181
- //# sourceMappingURL=chunk-5J5PEUUA.js.map
182
- //# sourceMappingURL=chunk-5J5PEUUA.js.map
181
+ //# sourceMappingURL=chunk-NHN6A3ZO.js.map
182
+ //# sourceMappingURL=chunk-NHN6A3ZO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Markdown/CsvBlock.tsx"],"names":[],"mappings":"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","file":"chunk-5J5PEUUA.js","sourcesContent":["/** CSV data rendered as a sortable table. Requires `papaparse`. */\nimport { Download } from 'lucide-react';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Button } from '../Button';\nimport { FenceBlock } from './FenceBlock';\n\ninterface CsvBlockProps {\n code: string;\n id: string;\n}\n\ninterface SortConfig {\n column: string;\n direction: 'asc' | 'desc';\n}\n\ntype CsvRow = Record<string, unknown>;\n// Minimal surface of papaparse we actually use, avoiding overload conflicts.\ninterface PapaApi {\n parse(\n input: string,\n config?: Record<string, unknown>\n ): {\n meta: { fields?: string[] };\n data: CsvRow[];\n errors: Array<{ message: string }>;\n };\n unparse(data: unknown): string;\n}\n\nlet papaPromise: Promise<PapaApi> | null = null;\nfunction loadPapa() {\n if (!papaPromise) {\n papaPromise = import(/* @vite-ignore */ 'papaparse')\n .then((mod: { default?: PapaApi } & Partial<PapaApi>) => {\n const api: PapaApi = (mod.default ?? mod) as PapaApi;\n if (!api?.parse) throw new Error('papaparse export not found');\n return api;\n })\n .catch((err) => {\n papaPromise = null;\n throw err as Error;\n });\n }\n return papaPromise;\n}\n\ninterface ParsedCsv {\n headers: string[];\n rows: CsvRow[];\n error: string | null;\n}\n\nexport const CsvBlock: React.FC<CsvBlockProps> = ({ code, id }) => {\n const [sortConfig, setSortConfig] = useState<SortConfig | null>(null);\n const [papa, setPapa] = useState<PapaApi | null>(null);\n const [loadError, setLoadError] = useState<string | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n loadPapa()\n .then((api) => {\n if (!cancelled) setPapa(api);\n })\n .catch(() => {\n if (!cancelled)\n setLoadError(\n 'CSV preview requires the `papaparse` package. Install it with `npm install papaparse`.'\n );\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n const parsed = useMemo<ParsedCsv>(() => {\n if (!papa) return { headers: [], rows: [], error: null };\n try {\n const result = papa.parse(code, {\n header: true,\n dynamicTyping: true,\n skipEmptyLines: 'greedy',\n });\n if (result.errors?.length) {\n return {\n headers: result.meta.fields ?? [],\n rows: result.data,\n error: result.errors.map((e) => e.message).join('; '),\n };\n }\n return {\n headers: result.meta.fields ?? [],\n rows: result.data,\n error: null,\n };\n } catch (err) {\n return { headers: [], rows: [], error: (err as Error).message };\n }\n }, [code, papa]);\n\n const sortedRows = useMemo(() => {\n if (!sortConfig || parsed.error) return parsed.rows;\n return [...parsed.rows].sort((a, b) => {\n const aVal = a[sortConfig.column];\n const bVal = b[sortConfig.column];\n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n const cmp =\n typeof aVal === 'number' && typeof bVal === 'number'\n ? aVal - bVal\n : String(aVal).localeCompare(String(bVal));\n return sortConfig.direction === 'asc' ? cmp : -cmp;\n });\n }, [parsed.rows, sortConfig, parsed.error]);\n\n const handleSort = useCallback((column: string) => {\n setSortConfig((prev) => {\n if (prev?.column === column) {\n return prev.direction === 'asc' ? { column, direction: 'desc' } : null;\n }\n return { column, direction: 'asc' };\n });\n }, []);\n\n const handleExportCsv = useCallback(() => {\n if (!papa) return;\n const csvContent = papa.unparse(sortedRows);\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = `data-${id}.csv`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n setTimeout(() => URL.revokeObjectURL(url), 100);\n }, [sortedRows, id, papa]);\n\n if (loadError) {\n return (\n <FenceBlock code={code} language=\"csv\" error={loadError}>\n <div />\n </FenceBlock>\n );\n }\n\n if (!papa) {\n return (\n <FenceBlock code={code} language=\"csv\" supportsRawView>\n <div className=\"flex items-center justify-center p-6 text-sm text-neutral-500\">\n Loading CSV parser…\n </div>\n </FenceBlock>\n );\n }\n\n if (parsed.error) {\n return (\n <FenceBlock code={code} language=\"csv\" error={parsed.error}>\n <div />\n </FenceBlock>\n );\n }\n\n return (\n <FenceBlock code={code} language=\"csv\" supportsRawView>\n <div className=\"relative\">\n <div className=\"flex items-center justify-between border-b border-neutral-200 px-3 py-1.5 dark:border-neutral-700\">\n <span className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {sortedRows.length} row{sortedRows.length !== 1 ? 's' : ''} ×{' '}\n {parsed.headers.length} column\n {parsed.headers.length !== 1 ? 's' : ''}\n </span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleExportCsv}\n aria-label=\"Export CSV\"\n className=\"h-7 gap-1 px-2 text-xs\"\n >\n <Download className=\"h-3 w-3\" />\n Export\n </Button>\n </div>\n\n <div className=\"max-h-96 overflow-auto\">\n <table className=\"min-w-full text-sm\">\n <thead className=\"sticky top-0 bg-neutral-100 dark:bg-neutral-800\">\n <tr>\n {parsed.headers.map((header) => {\n const isSorted = sortConfig?.column === header;\n const ariaSort = isSorted\n ? sortConfig.direction === 'asc'\n ? 'ascending'\n : 'descending'\n : 'none';\n return (\n <th\n key={header}\n scope=\"col\"\n aria-sort={ariaSort}\n className=\"px-3 py-2 text-left text-xs font-medium whitespace-nowrap text-neutral-600 dark:text-neutral-400\"\n >\n <button\n type=\"button\"\n onClick={() => handleSort(header)}\n className=\"flex w-full cursor-pointer items-center gap-1 text-left font-medium select-none hover:text-neutral-900 dark:hover:text-neutral-200\"\n >\n {header}\n {isSorted && (\n <span aria-hidden=\"true\">\n {sortConfig.direction === 'asc' ? '↑' : '↓'}\n </span>\n )}\n </button>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody className=\"divide-y divide-neutral-200 dark:divide-neutral-700\">\n {sortedRows.map((row, i) => (\n <tr\n key={i}\n className=\"hover:bg-neutral-50 dark:hover:bg-neutral-800/50\"\n >\n {parsed.headers.map((header) => (\n <td\n key={header}\n className=\"px-3 py-1.5 whitespace-nowrap text-neutral-700 dark:text-neutral-300\"\n >\n {row[header] != null ? String(row[header]) : ''}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n </FenceBlock>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/Markdown/CsvBlock.tsx"],"names":[],"mappings":"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","file":"chunk-NHN6A3ZO.js","sourcesContent":["/** CSV data rendered as a sortable table. Requires `papaparse`. */\nimport { Download } from 'lucide-react';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { Button } from '../Button';\nimport { FenceBlock } from './FenceBlock';\n\ninterface CsvBlockProps {\n code: string;\n id: string;\n}\n\ninterface SortConfig {\n column: string;\n direction: 'asc' | 'desc';\n}\n\ntype CsvRow = Record<string, unknown>;\n// Minimal surface of papaparse we actually use, avoiding overload conflicts.\ninterface PapaApi {\n parse(\n input: string,\n config?: Record<string, unknown>\n ): {\n meta: { fields?: string[] };\n data: CsvRow[];\n errors: Array<{ message: string }>;\n };\n unparse(data: unknown): string;\n}\n\nlet papaPromise: Promise<PapaApi> | null = null;\nfunction loadPapa() {\n if (!papaPromise) {\n papaPromise = import(/* @vite-ignore */ 'papaparse')\n .then((mod: { default?: PapaApi } & Partial<PapaApi>) => {\n const api: PapaApi = (mod.default ?? mod) as PapaApi;\n if (!api?.parse) throw new Error('papaparse export not found');\n return api;\n })\n .catch((err) => {\n papaPromise = null;\n throw err as Error;\n });\n }\n return papaPromise;\n}\n\ninterface ParsedCsv {\n headers: string[];\n rows: CsvRow[];\n error: string | null;\n}\n\nexport const CsvBlock: React.FC<CsvBlockProps> = ({ code, id }) => {\n const [sortConfig, setSortConfig] = useState<SortConfig | null>(null);\n const [papa, setPapa] = useState<PapaApi | null>(null);\n const [loadError, setLoadError] = useState<string | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n loadPapa()\n .then((api) => {\n if (!cancelled) setPapa(api);\n })\n .catch(() => {\n if (!cancelled)\n setLoadError(\n 'CSV preview requires the `papaparse` package. Install it with `npm install papaparse`.'\n );\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n const parsed = useMemo<ParsedCsv>(() => {\n if (!papa) return { headers: [], rows: [], error: null };\n try {\n const result = papa.parse(code, {\n header: true,\n dynamicTyping: true,\n skipEmptyLines: 'greedy',\n });\n if (result.errors?.length) {\n return {\n headers: result.meta.fields ?? [],\n rows: result.data,\n error: result.errors.map((e) => e.message).join('; '),\n };\n }\n return {\n headers: result.meta.fields ?? [],\n rows: result.data,\n error: null,\n };\n } catch (err) {\n return { headers: [], rows: [], error: (err as Error).message };\n }\n }, [code, papa]);\n\n const sortedRows = useMemo(() => {\n if (!sortConfig || parsed.error) return parsed.rows;\n return [...parsed.rows].sort((a, b) => {\n const aVal = a[sortConfig.column];\n const bVal = b[sortConfig.column];\n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n const cmp =\n typeof aVal === 'number' && typeof bVal === 'number'\n ? aVal - bVal\n : String(aVal).localeCompare(String(bVal));\n return sortConfig.direction === 'asc' ? cmp : -cmp;\n });\n }, [parsed.rows, sortConfig, parsed.error]);\n\n const handleSort = useCallback((column: string) => {\n setSortConfig((prev) => {\n if (prev?.column === column) {\n return prev.direction === 'asc' ? { column, direction: 'desc' } : null;\n }\n return { column, direction: 'asc' };\n });\n }, []);\n\n const handleExportCsv = useCallback(() => {\n if (!papa) return;\n const csvContent = papa.unparse(sortedRows);\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = `data-${id}.csv`;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n setTimeout(() => URL.revokeObjectURL(url), 100);\n }, [sortedRows, id, papa]);\n\n if (loadError) {\n return (\n <FenceBlock code={code} language=\"csv\" error={loadError}>\n <div />\n </FenceBlock>\n );\n }\n\n if (!papa) {\n return (\n <FenceBlock code={code} language=\"csv\" supportsRawView>\n <div className=\"flex items-center justify-center p-6 text-sm text-neutral-500\">\n Loading CSV parser…\n </div>\n </FenceBlock>\n );\n }\n\n if (parsed.error) {\n return (\n <FenceBlock code={code} language=\"csv\" error={parsed.error}>\n <div />\n </FenceBlock>\n );\n }\n\n return (\n <FenceBlock code={code} language=\"csv\" supportsRawView>\n <div className=\"relative\">\n <div className=\"flex items-center justify-between border-b border-neutral-200 px-3 py-1.5 dark:border-neutral-700\">\n <span className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {sortedRows.length} row{sortedRows.length !== 1 ? 's' : ''} ×{' '}\n {parsed.headers.length} column\n {parsed.headers.length !== 1 ? 's' : ''}\n </span>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleExportCsv}\n aria-label=\"Export CSV\"\n className=\"h-7 gap-1 px-2 text-xs\"\n >\n <Download className=\"h-3 w-3\" />\n Export\n </Button>\n </div>\n\n <div className=\"max-h-96 overflow-auto\">\n <table className=\"min-w-full text-sm\">\n <thead className=\"sticky top-0 bg-neutral-100 dark:bg-neutral-800\">\n <tr>\n {parsed.headers.map((header) => {\n const isSorted = sortConfig?.column === header;\n const ariaSort = isSorted\n ? sortConfig.direction === 'asc'\n ? 'ascending'\n : 'descending'\n : 'none';\n return (\n <th\n key={header}\n scope=\"col\"\n aria-sort={ariaSort}\n className=\"px-3 py-2 text-start text-xs font-medium whitespace-nowrap text-neutral-600 dark:text-neutral-400\"\n >\n <button\n type=\"button\"\n onClick={() => handleSort(header)}\n className=\"flex w-full cursor-pointer items-center gap-1 text-start font-medium select-none hover:text-neutral-900 dark:hover:text-neutral-200\"\n >\n {header}\n {isSorted && (\n <span aria-hidden=\"true\">\n {sortConfig.direction === 'asc' ? '↑' : '↓'}\n </span>\n )}\n </button>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody className=\"divide-y divide-neutral-200 dark:divide-neutral-700\">\n {sortedRows.map((row, i) => (\n <tr\n key={i}\n className=\"hover:bg-neutral-50 dark:hover:bg-neutral-800/50\"\n >\n {parsed.headers.map((header) => (\n <td\n key={header}\n className=\"px-3 py-1.5 whitespace-nowrap text-neutral-700 dark:text-neutral-300\"\n >\n {row[header] != null ? String(row[header]) : ''}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n </FenceBlock>\n );\n};\n"]}
@@ -29,7 +29,7 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
29
  var alertVariants = classVarianceAuthority.cva(
30
30
  [
31
31
  "relative w-full rounded-lg border p-4",
32
- "[&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-current",
32
+ "[&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-current",
33
33
  "[&>svg+div]:translate-y-[-3px]"
34
34
  ],
35
35
  {
@@ -66,8 +66,8 @@ var Alert = React__namespace.forwardRef(
66
66
  "data-slot": "alert",
67
67
  className: chunkS5RVSXDV_cjs.cn(
68
68
  alertVariants({ variant }),
69
- React__namespace.isValidElement(icon) && "pl-11",
70
- dismissible && "pr-10",
69
+ React__namespace.isValidElement(icon) && "ps-11",
70
+ dismissible && "pe-10",
71
71
  className
72
72
  ),
73
73
  ...props,
@@ -81,7 +81,7 @@ var Alert = React__namespace.forwardRef(
81
81
  "data-slot": "alert-dismiss",
82
82
  onClick: onDismiss,
83
83
  className: chunkS5RVSXDV_cjs.cn(
84
- "absolute top-2 right-2 rounded-md p-1",
84
+ "absolute end-2 top-2 rounded-md p-1",
85
85
  "opacity-70 hover:opacity-100",
86
86
  "focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
87
87
  "transition-opacity"
@@ -122,5 +122,5 @@ exports.Alert = Alert;
122
122
  exports.AlertDescription = AlertDescription;
123
123
  exports.AlertTitle = AlertTitle;
124
124
  exports.alertVariants = alertVariants;
125
- //# sourceMappingURL=chunk-EPQPUFS6.cjs.map
126
- //# sourceMappingURL=chunk-EPQPUFS6.cjs.map
125
+ //# sourceMappingURL=chunk-NYJIXR4Y.cjs.map
126
+ //# sourceMappingURL=chunk-NYJIXR4Y.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Alert/Alert.tsx"],"names":["cva","React","jsxs","cn","jsx","X"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAM,aAAA,GAAgBA,0BAAA;AAAA,EACpB;AAAA,IACE,uCAAA;AAAA,IACA,qEAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,6CAAA;AAAA,QACT,IAAA,EAAM,qHAAA;AAAA,QACN,OAAA,EACE,yGAAA;AAAA,QACF,OAAA,EACE,+GAAA;AAAA,QACF,MAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AA2BA,IAAM,KAAA,GAAcC,gBAAA,CAAA,UAAA;AAAA,EAClB,CACE;AAAA,IACE,SAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA,GAAe,eAAA;AAAA,IACf,QAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,uBACEC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAK,OAAA;AAAA,QACL,WAAA,EAAU,OAAA;AAAA,QACV,SAAA,EAAWC,oBAAA;AAAA,UACT,aAAA,CAAc,EAAE,OAAA,EAAS,CAAA;AAAA,UACnBF,gBAAA,CAAA,cAAA,CAAe,IAAI,CAAA,IAAK,OAAA;AAAA,UAC9B,WAAA,IAAe,OAAA;AAAA,UACf;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAMA,gBAAA,CAAA,cAAA,CAAe,IAAI,CAAA,IAAK,IAAA;AAAA,0BAC/BG,cAAA,CAAC,SAAK,QAAA,EAAS,CAAA;AAAA,UACd,WAAA,oBACCA,cAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,WAAA,EAAU,eAAA;AAAA,cACV,OAAA,EAAS,SAAA;AAAA,cACT,SAAA,EAAWD,oBAAA;AAAA,gBACT,qCAAA;AAAA,gBACA,8BAAA;AAAA,gBACA,qGAAA;AAAA,gBACA;AAAA,eACF;AAAA,cACA,YAAA,EAAY,YAAA;AAAA,cAEZ,QAAA,kBAAAC,cAAA,CAACC,aAAA,EAAA,EAAE,IAAA,EAAM,EAAA,EAAI,eAAY,MAAA,EAAO;AAAA;AAAA;AAClC;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAKpB,IAAM,UAAA,GAAmBJ,4BAGvB,CAAC,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,qBACpCG,cAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,WAAA,EAAU,aAAA;AAAA,IACV,SAAA,EAAWD,oBAAA,CAAG,gDAAA,EAAkD,SAAS,CAAA;AAAA,IACxE,GAAG,KAAA;AAAA,IAEH;AAAA;AACH,CACD;AAED,UAAA,CAAW,WAAA,GAAc,YAAA;AAKzB,IAAM,gBAAA,GAAyBF,4BAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BG,cAAA;AAAA,EAAC,GAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,WAAA,EAAU,mBAAA;AAAA,IACV,SAAA,EAAWD,oBAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AAED,gBAAA,CAAiB,WAAA,GAAc,kBAAA","file":"chunk-NYJIXR4Y.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils/cn';\n\nconst alertVariants = cva(\n [\n 'relative w-full rounded-lg border p-4',\n '[&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-current',\n '[&>svg+div]:translate-y-[-3px]',\n ],\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground border-border',\n info: 'bg-primary-50 text-primary-900 border-primary-200 dark:bg-primary-950 dark:text-primary-100 dark:border-primary-800',\n success:\n 'bg-green-50 text-green-900 border-green-200 dark:bg-green-950 dark:text-green-100 dark:border-green-800',\n warning:\n 'bg-yellow-50 text-yellow-900 border-yellow-200 dark:bg-yellow-950 dark:text-yellow-100 dark:border-yellow-800',\n danger:\n 'bg-red-50 text-red-900 border-red-200 dark:bg-red-950 dark:text-red-100 dark:border-red-800',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface AlertProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n /** Icon to display in the alert */\n icon?: React.ReactElement | null;\n /** Whether the alert can be dismissed */\n dismissible?: boolean;\n /** Callback when the alert is dismissed */\n onDismiss?: () => void;\n /** Accessible label for the dismiss button */\n dismissLabel?: string;\n}\n\n/**\n * An alert component for displaying important messages.\n *\n * @example\n * ```tsx\n * <Alert variant=\"success\">\n * <AlertTitle>Success!</AlertTitle>\n * <AlertDescription>Your changes have been saved.</AlertDescription>\n * </Alert>\n * ```\n */\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n className,\n variant,\n icon,\n dismissible,\n onDismiss,\n dismissLabel = 'Dismiss alert',\n children,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n role=\"alert\"\n data-slot=\"alert\"\n className={cn(\n alertVariants({ variant }),\n React.isValidElement(icon) && 'ps-11',\n dismissible && 'pe-10',\n className\n )}\n {...props}\n >\n {React.isValidElement(icon) && icon}\n <div>{children}</div>\n {dismissible && (\n <button\n type=\"button\"\n data-slot=\"alert-dismiss\"\n onClick={onDismiss}\n className={cn(\n 'absolute end-2 top-2 rounded-md p-1',\n 'opacity-70 hover:opacity-100',\n 'focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none',\n 'transition-opacity'\n )}\n aria-label={dismissLabel}\n >\n <X size={16} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n );\n }\n);\n\nAlert.displayName = 'Alert';\n\n/**\n * Title for an Alert component.\n */\nconst AlertTitle = React.forwardRef<\n globalThis.HTMLHeadingElement,\n React.HTMLAttributes<globalThis.HTMLHeadingElement>\n>(({ className, children, ...props }, ref) => (\n <h5\n ref={ref}\n data-slot=\"alert-title\"\n className={cn('mb-1 leading-none font-semibold tracking-tight', className)}\n {...props}\n >\n {children}\n </h5>\n));\n\nAlertTitle.displayName = 'AlertTitle';\n\n/**\n * Description text for an Alert component.\n */\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n data-slot=\"alert-description\"\n className={cn('text-sm [&_p]:leading-relaxed', className)}\n {...props}\n />\n));\n\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n"]}