@particle-academy/react-fancy 6.8.0 → 6.9.0

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 (571) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/{Card-CuRZivBz.d.cts → Card-D0sp2T1V.d.cts} +6 -1
  3. package/dist/{Card-CuRZivBz.d.ts → Card-D0sp2T1V.d.ts} +6 -1
  4. package/dist/accordion-panel.cjs +7 -7
  5. package/dist/accordion-panel.js +1 -1
  6. package/dist/accordion.cjs +3 -3
  7. package/dist/accordion.js +1 -1
  8. package/dist/autocomplete.cjs +4 -3
  9. package/dist/autocomplete.js +3 -2
  10. package/dist/avatar.cjs +2 -2
  11. package/dist/avatar.js +1 -1
  12. package/dist/breadcrumbs.cjs +2 -2
  13. package/dist/breadcrumbs.js +1 -1
  14. package/dist/button.cjs +3 -3
  15. package/dist/button.d.cts +1 -1
  16. package/dist/button.d.ts +1 -1
  17. package/dist/button.js +1 -1
  18. package/dist/calendar.cjs +2 -2
  19. package/dist/calendar.js +1 -1
  20. package/dist/callout.cjs +2 -2
  21. package/dist/callout.js +1 -1
  22. package/dist/card.cjs +7 -7
  23. package/dist/card.d.cts +2 -2
  24. package/dist/card.d.ts +2 -2
  25. package/dist/card.js +1 -1
  26. package/dist/carousel.cjs +7 -7
  27. package/dist/carousel.js +1 -1
  28. package/dist/chart.cjs +2 -2
  29. package/dist/chart.js +1 -1
  30. package/dist/chat-drawer.cjs +2 -2
  31. package/dist/chat-drawer.js +1 -1
  32. package/dist/chat-thread.cjs +7 -7
  33. package/dist/chat-thread.js +5 -5
  34. package/dist/checkbox-group.cjs +5 -5
  35. package/dist/checkbox-group.js +4 -4
  36. package/dist/checkbox.cjs +3 -3
  37. package/dist/checkbox.js +2 -2
  38. package/dist/{chunk-B4YV2V7G.cjs → chunk-2DX3PNXU.cjs} +3 -3
  39. package/dist/{chunk-B4YV2V7G.cjs.map → chunk-2DX3PNXU.cjs.map} +1 -1
  40. package/dist/{chunk-KPRSRWNM.js → chunk-2I7VNCBZ.js} +3 -3
  41. package/dist/{chunk-KPRSRWNM.js.map → chunk-2I7VNCBZ.js.map} +1 -1
  42. package/dist/{chunk-WMANILKC.cjs → chunk-2UYQ34RJ.cjs} +7 -7
  43. package/dist/chunk-2UYQ34RJ.cjs.map +1 -0
  44. package/dist/chunk-36IC3NDN.cjs +21 -0
  45. package/dist/chunk-36IC3NDN.cjs.map +1 -0
  46. package/dist/{chunk-LFC2DL6H.cjs → chunk-3BBEVHSP.cjs} +14 -9
  47. package/dist/chunk-3BBEVHSP.cjs.map +1 -0
  48. package/dist/{chunk-2O5UXH5R.cjs → chunk-3EZ6UPXS.cjs} +10 -10
  49. package/dist/chunk-3EZ6UPXS.cjs.map +1 -0
  50. package/dist/{chunk-XBFTO64U.cjs → chunk-3KJN3GTB.cjs} +4 -4
  51. package/dist/{chunk-XBFTO64U.cjs.map → chunk-3KJN3GTB.cjs.map} +1 -1
  52. package/dist/{chunk-37D5PYEF.js → chunk-3O3ZWWLG.js} +17 -4
  53. package/dist/chunk-3O3ZWWLG.js.map +1 -0
  54. package/dist/{chunk-5PHPJL7Z.js → chunk-4EQ336PQ.js} +4 -4
  55. package/dist/{chunk-5PHPJL7Z.js.map → chunk-4EQ336PQ.js.map} +1 -1
  56. package/dist/{chunk-EENHSMV2.js → chunk-4L3MGQAR.js} +6 -6
  57. package/dist/{chunk-EENHSMV2.js.map → chunk-4L3MGQAR.js.map} +1 -1
  58. package/dist/{chunk-QGY5FPVM.js → chunk-54NB3T3Q.js} +6 -4
  59. package/dist/chunk-54NB3T3Q.js.map +1 -0
  60. package/dist/{chunk-FRWOWDGX.js → chunk-5FA6V7JF.js} +3 -3
  61. package/dist/{chunk-FRWOWDGX.js.map → chunk-5FA6V7JF.js.map} +1 -1
  62. package/dist/{chunk-UUEAFG6V.js → chunk-5NJF7SQX.js} +6 -6
  63. package/dist/{chunk-UUEAFG6V.js.map → chunk-5NJF7SQX.js.map} +1 -1
  64. package/dist/{chunk-ZGDOWJKL.cjs → chunk-5NTFXQ4K.cjs} +6 -6
  65. package/dist/{chunk-ZGDOWJKL.cjs.map → chunk-5NTFXQ4K.cjs.map} +1 -1
  66. package/dist/{chunk-CQ7QXZLR.cjs → chunk-5SVZX6WF.cjs} +4 -4
  67. package/dist/chunk-5SVZX6WF.cjs.map +1 -0
  68. package/dist/{chunk-JY7HPFOE.cjs → chunk-6B2GMKE4.cjs} +5 -5
  69. package/dist/{chunk-JY7HPFOE.cjs.map → chunk-6B2GMKE4.cjs.map} +1 -1
  70. package/dist/{chunk-GSMD5NK5.js → chunk-6BCXGP2T.js} +7 -7
  71. package/dist/{chunk-GSMD5NK5.js.map → chunk-6BCXGP2T.js.map} +1 -1
  72. package/dist/{chunk-CVDL6C2O.cjs → chunk-6EPM5JG7.cjs} +3 -3
  73. package/dist/{chunk-CVDL6C2O.cjs.map → chunk-6EPM5JG7.cjs.map} +1 -1
  74. package/dist/{chunk-FVQO75KY.cjs → chunk-6GOPFKGC.cjs} +10 -4
  75. package/dist/chunk-6GOPFKGC.cjs.map +1 -0
  76. package/dist/{chunk-QTS4Q2NK.js → chunk-6RXEWM3V.js} +4 -3
  77. package/dist/chunk-6RXEWM3V.js.map +1 -0
  78. package/dist/{chunk-TLRFXSPA.cjs → chunk-73REG7KM.cjs} +13 -13
  79. package/dist/{chunk-TLRFXSPA.cjs.map → chunk-73REG7KM.cjs.map} +1 -1
  80. package/dist/{chunk-MI57NAKF.js → chunk-7B3Z4NVM.js} +6 -5
  81. package/dist/chunk-7B3Z4NVM.js.map +1 -0
  82. package/dist/{chunk-J2BWXCES.js → chunk-7GRIO5AZ.js} +3 -3
  83. package/dist/{chunk-J2BWXCES.js.map → chunk-7GRIO5AZ.js.map} +1 -1
  84. package/dist/{chunk-V5JTTLJP.cjs → chunk-7K2C744H.cjs} +3 -3
  85. package/dist/{chunk-V5JTTLJP.cjs.map → chunk-7K2C744H.cjs.map} +1 -1
  86. package/dist/{chunk-AJPYGRLA.cjs → chunk-7NRG77U5.cjs} +12 -4
  87. package/dist/chunk-7NRG77U5.cjs.map +1 -0
  88. package/dist/{chunk-GDF6XTHC.js → chunk-7OUBFO4D.js} +7 -5
  89. package/dist/chunk-7OUBFO4D.js.map +1 -0
  90. package/dist/{chunk-6H7ZN23X.cjs → chunk-7PK3OUKR.cjs} +6 -6
  91. package/dist/{chunk-6H7ZN23X.cjs.map → chunk-7PK3OUKR.cjs.map} +1 -1
  92. package/dist/{chunk-EUVWYDFN.js → chunk-AE6ICNJR.js} +14 -9
  93. package/dist/chunk-AE6ICNJR.js.map +1 -0
  94. package/dist/{chunk-YJXP6AOL.cjs → chunk-AF33UCTN.cjs} +4 -4
  95. package/dist/{chunk-YJXP6AOL.cjs.map → chunk-AF33UCTN.cjs.map} +1 -1
  96. package/dist/{chunk-PM5I5ZHK.cjs → chunk-AFFR7HHZ.cjs} +8 -7
  97. package/dist/chunk-AFFR7HHZ.cjs.map +1 -0
  98. package/dist/{chunk-F4OYQ2XZ.js → chunk-AR5DLM4K.js} +9 -6
  99. package/dist/chunk-AR5DLM4K.js.map +1 -0
  100. package/dist/{chunk-DJB3N4G3.cjs → chunk-AVGZ4PPC.cjs} +9 -9
  101. package/dist/{chunk-DJB3N4G3.cjs.map → chunk-AVGZ4PPC.cjs.map} +1 -1
  102. package/dist/{chunk-RANTYGKW.js → chunk-AXW55PQG.js} +3 -3
  103. package/dist/chunk-AXW55PQG.js.map +1 -0
  104. package/dist/{chunk-OASSZI6M.cjs → chunk-AZ5DWOQY.cjs} +5 -4
  105. package/dist/chunk-AZ5DWOQY.cjs.map +1 -0
  106. package/dist/{chunk-NSJBVV7R.js → chunk-BPTCMI3E.js} +21 -10
  107. package/dist/chunk-BPTCMI3E.js.map +1 -0
  108. package/dist/{chunk-PDVU2PXR.js → chunk-BQENLOEV.js} +10 -10
  109. package/dist/chunk-BQENLOEV.js.map +1 -0
  110. package/dist/{chunk-25HRO7HQ.cjs → chunk-BYMOPR7P.cjs} +7 -7
  111. package/dist/chunk-BYMOPR7P.cjs.map +1 -0
  112. package/dist/{chunk-FKZB27OM.cjs → chunk-C6EVRWXZ.cjs} +11 -8
  113. package/dist/chunk-C6EVRWXZ.cjs.map +1 -0
  114. package/dist/{chunk-GTS3QA7M.js → chunk-CO2NEUFK.js} +5 -5
  115. package/dist/chunk-CO2NEUFK.js.map +1 -0
  116. package/dist/{chunk-ESCIXKFT.js → chunk-D6NISIKV.js} +17 -7
  117. package/dist/chunk-D6NISIKV.js.map +1 -0
  118. package/dist/{chunk-MRZXTL46.cjs → chunk-DFROB5TW.cjs} +20 -20
  119. package/dist/{chunk-MRZXTL46.cjs.map → chunk-DFROB5TW.cjs.map} +1 -1
  120. package/dist/{chunk-KFA7B6WP.cjs → chunk-DPPDZOMY.cjs} +17 -7
  121. package/dist/chunk-DPPDZOMY.cjs.map +1 -0
  122. package/dist/{chunk-BXPLERIJ.js → chunk-DW2PHLOA.js} +5 -4
  123. package/dist/chunk-DW2PHLOA.js.map +1 -0
  124. package/dist/{chunk-BYO5RUDE.cjs → chunk-DXLPBLNC.cjs} +6 -5
  125. package/dist/chunk-DXLPBLNC.cjs.map +1 -0
  126. package/dist/{chunk-5WQ6FPSP.js → chunk-E2AEU5SP.js} +4 -4
  127. package/dist/{chunk-5WQ6FPSP.js.map → chunk-E2AEU5SP.js.map} +1 -1
  128. package/dist/{chunk-3QCAOD2W.cjs → chunk-EC4ZYZNK.cjs} +3 -3
  129. package/dist/{chunk-3QCAOD2W.cjs.map → chunk-EC4ZYZNK.cjs.map} +1 -1
  130. package/dist/{chunk-KXYMMNNV.js → chunk-EDIX6EXQ.js} +20 -20
  131. package/dist/{chunk-KXYMMNNV.js.map → chunk-EDIX6EXQ.js.map} +1 -1
  132. package/dist/{chunk-KOAMRCSC.cjs → chunk-ETUDUDSL.cjs} +14 -11
  133. package/dist/chunk-ETUDUDSL.cjs.map +1 -0
  134. package/dist/{chunk-LY3RQB3H.js → chunk-F3U4AVGF.js} +3 -3
  135. package/dist/{chunk-LY3RQB3H.js.map → chunk-F3U4AVGF.js.map} +1 -1
  136. package/dist/{chunk-CNWTYRZC.cjs → chunk-FF5G3E76.cjs} +4 -4
  137. package/dist/{chunk-CNWTYRZC.cjs.map → chunk-FF5G3E76.cjs.map} +1 -1
  138. package/dist/{chunk-WNWEC5OU.cjs → chunk-FKHYJ5IC.cjs} +3 -3
  139. package/dist/{chunk-WNWEC5OU.cjs.map → chunk-FKHYJ5IC.cjs.map} +1 -1
  140. package/dist/{chunk-QP6VNKLW.cjs → chunk-FNPII6TF.cjs} +9 -5
  141. package/dist/chunk-FNPII6TF.cjs.map +1 -0
  142. package/dist/{chunk-JY2RC6I4.js → chunk-FQCLJZZS.js} +13 -10
  143. package/dist/chunk-FQCLJZZS.js.map +1 -0
  144. package/dist/{chunk-EQ7G5F6K.js → chunk-FRUHEDZN.js} +3 -3
  145. package/dist/{chunk-EQ7G5F6K.js.map → chunk-FRUHEDZN.js.map} +1 -1
  146. package/dist/{chunk-BJL3VDRK.cjs → chunk-FY2WDVKF.cjs} +3 -3
  147. package/dist/{chunk-BJL3VDRK.cjs.map → chunk-FY2WDVKF.cjs.map} +1 -1
  148. package/dist/{chunk-SKMORSBO.cjs → chunk-FZQWFDUV.cjs} +5 -5
  149. package/dist/chunk-FZQWFDUV.cjs.map +1 -0
  150. package/dist/{chunk-HNJXBMHI.cjs → chunk-G5MDMQVQ.cjs} +40 -39
  151. package/dist/chunk-G5MDMQVQ.cjs.map +1 -0
  152. package/dist/{chunk-4DL2U23D.cjs → chunk-GE2ZGE3A.cjs} +21 -13
  153. package/dist/chunk-GE2ZGE3A.cjs.map +1 -0
  154. package/dist/{chunk-THMFLRDW.cjs → chunk-GE6TSA3M.cjs} +17 -17
  155. package/dist/{chunk-THMFLRDW.cjs.map → chunk-GE6TSA3M.cjs.map} +1 -1
  156. package/dist/{chunk-MQ6VGG62.js → chunk-GJWNZMJT.js} +14 -11
  157. package/dist/chunk-GJWNZMJT.js.map +1 -0
  158. package/dist/{chunk-5TP642UT.js → chunk-GODJVIIO.js} +12 -11
  159. package/dist/chunk-GODJVIIO.js.map +1 -0
  160. package/dist/{chunk-PIG3UTHU.js → chunk-GZSRKBYI.js} +3 -3
  161. package/dist/{chunk-PIG3UTHU.js.map → chunk-GZSRKBYI.js.map} +1 -1
  162. package/dist/{chunk-FR4RHVPR.js → chunk-H7IQVCTX.js} +6 -4
  163. package/dist/chunk-H7IQVCTX.js.map +1 -0
  164. package/dist/{chunk-KOTUFZJ6.cjs → chunk-H7OTLGRD.cjs} +14 -11
  165. package/dist/chunk-H7OTLGRD.cjs.map +1 -0
  166. package/dist/{chunk-K5MQZTDW.cjs → chunk-HKLBCA5X.cjs} +4 -4
  167. package/dist/{chunk-K5MQZTDW.cjs.map → chunk-HKLBCA5X.cjs.map} +1 -1
  168. package/dist/{chunk-5QKQXM5V.cjs → chunk-HYU46SOE.cjs} +5 -5
  169. package/dist/{chunk-5QKQXM5V.cjs.map → chunk-HYU46SOE.cjs.map} +1 -1
  170. package/dist/{chunk-X2A3NAJW.js → chunk-I65KXHYL.js} +4 -4
  171. package/dist/chunk-I65KXHYL.js.map +1 -0
  172. package/dist/{chunk-USWQAMI3.js → chunk-IF6EITB5.js} +3 -3
  173. package/dist/{chunk-USWQAMI3.js.map → chunk-IF6EITB5.js.map} +1 -1
  174. package/dist/{chunk-DXZCKDYS.js → chunk-IG2UDCBA.js} +9 -9
  175. package/dist/chunk-IG2UDCBA.js.map +1 -0
  176. package/dist/{chunk-YQZB5Z7C.cjs → chunk-INC35VEE.cjs} +3 -2
  177. package/dist/chunk-INC35VEE.cjs.map +1 -0
  178. package/dist/{chunk-AQ4DZT4Y.cjs → chunk-ISAHWGMD.cjs} +6 -6
  179. package/dist/{chunk-AQ4DZT4Y.cjs.map → chunk-ISAHWGMD.cjs.map} +1 -1
  180. package/dist/{chunk-PJNUGSKI.js → chunk-IYG436ZY.js} +26 -25
  181. package/dist/chunk-IYG436ZY.js.map +1 -0
  182. package/dist/{chunk-Z4UXLQSK.cjs → chunk-JDFJK5GO.cjs} +16 -16
  183. package/dist/chunk-JDFJK5GO.cjs.map +1 -0
  184. package/dist/{chunk-MAZEX4EZ.cjs → chunk-JQIFCWNZ.cjs} +13 -13
  185. package/dist/{chunk-MAZEX4EZ.cjs.map → chunk-JQIFCWNZ.cjs.map} +1 -1
  186. package/dist/{chunk-MKGWHSNV.cjs → chunk-JV2HEOCB.cjs} +5 -4
  187. package/dist/chunk-JV2HEOCB.cjs.map +1 -0
  188. package/dist/{chunk-GDH43QH6.js → chunk-KAKKZDCE.js} +6 -6
  189. package/dist/{chunk-GDH43QH6.js.map → chunk-KAKKZDCE.js.map} +1 -1
  190. package/dist/{chunk-DJYG7DXS.js → chunk-KDRBUF5S.js} +4 -4
  191. package/dist/chunk-KDRBUF5S.js.map +1 -0
  192. package/dist/{chunk-ZVDW2VX5.cjs → chunk-KGSL6SVX.cjs} +3 -3
  193. package/dist/chunk-KGSL6SVX.cjs.map +1 -0
  194. package/dist/{chunk-YAPGHVBZ.js → chunk-KRECSPD3.js} +4 -4
  195. package/dist/{chunk-YAPGHVBZ.js.map → chunk-KRECSPD3.js.map} +1 -1
  196. package/dist/{chunk-NPSKZ7ZB.cjs → chunk-L5NDZEL6.cjs} +12 -12
  197. package/dist/{chunk-NPSKZ7ZB.cjs.map → chunk-L5NDZEL6.cjs.map} +1 -1
  198. package/dist/{chunk-UE3QO7R3.js → chunk-LAQT5FFV.js} +3 -3
  199. package/dist/{chunk-UE3QO7R3.js.map → chunk-LAQT5FFV.js.map} +1 -1
  200. package/dist/{chunk-YH75G6SP.cjs → chunk-LHHELLMT.cjs} +3 -3
  201. package/dist/{chunk-YH75G6SP.cjs.map → chunk-LHHELLMT.cjs.map} +1 -1
  202. package/dist/{chunk-UK6BGM74.cjs → chunk-LREJ7AV2.cjs} +17 -4
  203. package/dist/chunk-LREJ7AV2.cjs.map +1 -0
  204. package/dist/{chunk-Y3QAEF2P.cjs → chunk-LVNCNMKD.cjs} +9 -7
  205. package/dist/chunk-LVNCNMKD.cjs.map +1 -0
  206. package/dist/{chunk-UZCR7DK5.js → chunk-LXEOBSEZ.js} +3 -3
  207. package/dist/{chunk-UZCR7DK5.js.map → chunk-LXEOBSEZ.js.map} +1 -1
  208. package/dist/{chunk-HLI6RB5V.cjs → chunk-M5ER3Y5I.cjs} +32 -31
  209. package/dist/chunk-M5ER3Y5I.cjs.map +1 -0
  210. package/dist/{chunk-CEFK54WP.cjs → chunk-MDAI54AG.cjs} +7 -5
  211. package/dist/chunk-MDAI54AG.cjs.map +1 -0
  212. package/dist/{chunk-WE5WGVVX.js → chunk-MKDTXMCE.js} +3 -3
  213. package/dist/{chunk-WE5WGVVX.js.map → chunk-MKDTXMCE.js.map} +1 -1
  214. package/dist/{chunk-SXXDTW7S.js → chunk-NETUI353.js} +10 -4
  215. package/dist/chunk-NETUI353.js.map +1 -0
  216. package/dist/{chunk-XHUV3VSM.cjs → chunk-NIFHAFKK.cjs} +3 -3
  217. package/dist/{chunk-XHUV3VSM.cjs.map → chunk-NIFHAFKK.cjs.map} +1 -1
  218. package/dist/{chunk-LKN7FYW6.js → chunk-NW2LQRUP.js} +4 -4
  219. package/dist/chunk-NW2LQRUP.js.map +1 -0
  220. package/dist/{chunk-ONHT2PDW.cjs → chunk-NWP5EGSR.cjs} +3 -3
  221. package/dist/{chunk-ONHT2PDW.cjs.map → chunk-NWP5EGSR.cjs.map} +1 -1
  222. package/dist/{chunk-RSLZL6VP.js → chunk-OBA2LR4I.js} +3 -3
  223. package/dist/chunk-OBA2LR4I.js.map +1 -0
  224. package/dist/{chunk-VSTUGU7W.js → chunk-PIYQPXLT.js} +8 -8
  225. package/dist/{chunk-VSTUGU7W.js.map → chunk-PIYQPXLT.js.map} +1 -1
  226. package/dist/{chunk-WX5XYDVN.js → chunk-PZTFGPQJ.js} +3 -3
  227. package/dist/{chunk-WX5XYDVN.js.map → chunk-PZTFGPQJ.js.map} +1 -1
  228. package/dist/{chunk-4GPH7HOR.js → chunk-Q4CNEHVN.js} +3 -3
  229. package/dist/{chunk-4GPH7HOR.js.map → chunk-Q4CNEHVN.js.map} +1 -1
  230. package/dist/{chunk-I2VAGZXY.cjs → chunk-Q62RDKRA.cjs} +11 -11
  231. package/dist/{chunk-I2VAGZXY.cjs.map → chunk-Q62RDKRA.cjs.map} +1 -1
  232. package/dist/{chunk-QF7CD4JH.cjs → chunk-Q7XL37T3.cjs} +5 -5
  233. package/dist/{chunk-QF7CD4JH.cjs.map → chunk-Q7XL37T3.cjs.map} +1 -1
  234. package/dist/{chunk-XZOBGKZL.cjs → chunk-QAM6N3VG.cjs} +6 -5
  235. package/dist/chunk-QAM6N3VG.cjs.map +1 -0
  236. package/dist/{chunk-BLOX7MRO.js → chunk-QE7KXMUZ.js} +3 -3
  237. package/dist/{chunk-BLOX7MRO.js.map → chunk-QE7KXMUZ.js.map} +1 -1
  238. package/dist/{chunk-ZPBKRJMH.js → chunk-QEJBMXRQ.js} +7 -7
  239. package/dist/chunk-QEJBMXRQ.js.map +1 -0
  240. package/dist/{chunk-PCNJJVTF.cjs → chunk-QMZK7SRS.cjs} +3 -3
  241. package/dist/chunk-QMZK7SRS.cjs.map +1 -0
  242. package/dist/{chunk-TFX4LL7V.js → chunk-QSRYTWQN.js} +3 -2
  243. package/dist/chunk-QSRYTWQN.js.map +1 -0
  244. package/dist/{chunk-Z7SQMQTF.cjs → chunk-QU6HZH6V.cjs} +21 -10
  245. package/dist/chunk-QU6HZH6V.cjs.map +1 -0
  246. package/dist/{chunk-GR2WKBER.js → chunk-QUZOGRZS.js} +4 -3
  247. package/dist/chunk-QUZOGRZS.js.map +1 -0
  248. package/dist/{chunk-WGRLNXNB.js → chunk-R3PCZSBQ.js} +3 -3
  249. package/dist/{chunk-WGRLNXNB.js.map → chunk-R3PCZSBQ.js.map} +1 -1
  250. package/dist/{chunk-EZZKHMR4.js → chunk-R6O6SLXK.js} +3 -3
  251. package/dist/{chunk-EZZKHMR4.js.map → chunk-R6O6SLXK.js.map} +1 -1
  252. package/dist/{chunk-5EW47IH7.js → chunk-RCTPN5QK.js} +9 -7
  253. package/dist/chunk-RCTPN5QK.js.map +1 -0
  254. package/dist/{chunk-JSD6IEBW.js → chunk-RFTDMQ56.js} +3 -3
  255. package/dist/{chunk-JSD6IEBW.js.map → chunk-RFTDMQ56.js.map} +1 -1
  256. package/dist/{chunk-6PRXG7L6.js → chunk-RSB2P3JK.js} +4 -4
  257. package/dist/{chunk-6PRXG7L6.js.map → chunk-RSB2P3JK.js.map} +1 -1
  258. package/dist/{chunk-2G6TIX5Q.cjs → chunk-RVBA4LEB.cjs} +13 -13
  259. package/dist/{chunk-2G6TIX5Q.cjs.map → chunk-RVBA4LEB.cjs.map} +1 -1
  260. package/dist/{chunk-UVUBV4VZ.js → chunk-S2ID4NNQ.js} +6 -6
  261. package/dist/{chunk-UVUBV4VZ.js.map → chunk-S2ID4NNQ.js.map} +1 -1
  262. package/dist/{chunk-TMQF2CRN.js → chunk-S4JQPOBR.js} +7 -7
  263. package/dist/chunk-S4JQPOBR.js.map +1 -0
  264. package/dist/{chunk-ETNQ4AEQ.cjs → chunk-S6TVSQDT.cjs} +5 -5
  265. package/dist/{chunk-ETNQ4AEQ.cjs.map → chunk-S6TVSQDT.cjs.map} +1 -1
  266. package/dist/{chunk-SSCW67KA.cjs → chunk-SD6YAMDH.cjs} +4 -4
  267. package/dist/chunk-SD6YAMDH.cjs.map +1 -0
  268. package/dist/{chunk-MLZGGAXQ.js → chunk-SOIGBPK6.js} +21 -13
  269. package/dist/chunk-SOIGBPK6.js.map +1 -0
  270. package/dist/{chunk-7QENPLOP.cjs → chunk-TQDZZIOW.cjs} +5 -5
  271. package/dist/{chunk-7QENPLOP.cjs.map → chunk-TQDZZIOW.cjs.map} +1 -1
  272. package/dist/{chunk-MPCZUZ4O.cjs → chunk-U4KUW3RK.cjs} +19 -15
  273. package/dist/chunk-U4KUW3RK.cjs.map +1 -0
  274. package/dist/{chunk-AZQXPI5S.js → chunk-UBLMYH6C.js} +3 -3
  275. package/dist/{chunk-AZQXPI5S.js.map → chunk-UBLMYH6C.js.map} +1 -1
  276. package/dist/{chunk-P53432AK.cjs → chunk-UIBAIWUR.cjs} +4 -4
  277. package/dist/{chunk-P53432AK.cjs.map → chunk-UIBAIWUR.cjs.map} +1 -1
  278. package/dist/{chunk-KKYILQTG.cjs → chunk-UORN3Z7R.cjs} +7 -7
  279. package/dist/{chunk-KKYILQTG.cjs.map → chunk-UORN3Z7R.cjs.map} +1 -1
  280. package/dist/{chunk-UXYFM2XT.cjs → chunk-UQABXIQV.cjs} +6 -4
  281. package/dist/chunk-UQABXIQV.cjs.map +1 -0
  282. package/dist/chunk-US5R36TQ.js +17 -0
  283. package/dist/chunk-US5R36TQ.js.map +1 -0
  284. package/dist/{chunk-CS2ZYMYP.js → chunk-UZZJJ3HJ.js} +3 -3
  285. package/dist/{chunk-CS2ZYMYP.js.map → chunk-UZZJJ3HJ.js.map} +1 -1
  286. package/dist/{chunk-Y7RGUUTS.cjs → chunk-V3EKI3VV.cjs} +3 -3
  287. package/dist/{chunk-Y7RGUUTS.cjs.map → chunk-V3EKI3VV.cjs.map} +1 -1
  288. package/dist/{chunk-U4Y7ZXME.js → chunk-V64XIPYG.js} +6 -6
  289. package/dist/{chunk-U4Y7ZXME.js.map → chunk-V64XIPYG.js.map} +1 -1
  290. package/dist/{chunk-RWU2MFUL.js → chunk-VGUAIFGE.js} +5 -4
  291. package/dist/chunk-VGUAIFGE.js.map +1 -0
  292. package/dist/{chunk-LIVC3WUU.cjs → chunk-VH34IZ7R.cjs} +3 -3
  293. package/dist/{chunk-LIVC3WUU.cjs.map → chunk-VH34IZ7R.cjs.map} +1 -1
  294. package/dist/{chunk-WNUAGRQN.cjs → chunk-VOAC5OKY.cjs} +4 -4
  295. package/dist/chunk-VOAC5OKY.cjs.map +1 -0
  296. package/dist/{chunk-H7ELUIF6.cjs → chunk-W53SZTPX.cjs} +10 -10
  297. package/dist/{chunk-H7ELUIF6.cjs.map → chunk-W53SZTPX.cjs.map} +1 -1
  298. package/dist/{chunk-4FH2JHUY.js → chunk-WAEOIEDI.js} +5 -5
  299. package/dist/{chunk-4FH2JHUY.js.map → chunk-WAEOIEDI.js.map} +1 -1
  300. package/dist/{chunk-ICMLLZKZ.js → chunk-WJE7UX2G.js} +4 -4
  301. package/dist/{chunk-ICMLLZKZ.js.map → chunk-WJE7UX2G.js.map} +1 -1
  302. package/dist/{chunk-DTOIO42M.js → chunk-WLRKE4HC.js} +9 -5
  303. package/dist/chunk-WLRKE4HC.js.map +1 -0
  304. package/dist/{chunk-7ZCNZUZK.cjs → chunk-WOURDD4U.cjs} +4 -4
  305. package/dist/{chunk-7ZCNZUZK.cjs.map → chunk-WOURDD4U.cjs.map} +1 -1
  306. package/dist/{chunk-OTM7RL2L.js → chunk-WSU36HJM.js} +4 -4
  307. package/dist/{chunk-OTM7RL2L.js.map → chunk-WSU36HJM.js.map} +1 -1
  308. package/dist/{chunk-TAYJSIOP.js → chunk-X4NXS42J.js} +5 -5
  309. package/dist/{chunk-TAYJSIOP.js.map → chunk-X4NXS42J.js.map} +1 -1
  310. package/dist/{chunk-2UTN3EFK.js → chunk-XALAQZCD.js} +5 -5
  311. package/dist/{chunk-2UTN3EFK.js.map → chunk-XALAQZCD.js.map} +1 -1
  312. package/dist/{chunk-RZUYCZ5D.cjs → chunk-XCFBMHQD.cjs} +6 -4
  313. package/dist/chunk-XCFBMHQD.cjs.map +1 -0
  314. package/dist/{chunk-NZHVDWOM.cjs → chunk-XEI5JG7C.cjs} +3 -3
  315. package/dist/{chunk-NZHVDWOM.cjs.map → chunk-XEI5JG7C.cjs.map} +1 -1
  316. package/dist/{chunk-O3F6DYWR.cjs → chunk-XG6J5MOK.cjs} +3 -3
  317. package/dist/{chunk-O3F6DYWR.cjs.map → chunk-XG6J5MOK.cjs.map} +1 -1
  318. package/dist/{chunk-J2DI6RMR.cjs → chunk-XGGAAG74.cjs} +14 -11
  319. package/dist/chunk-XGGAAG74.cjs.map +1 -0
  320. package/dist/{chunk-GVMWJ4NI.js → chunk-XH24BGEK.js} +6 -6
  321. package/dist/{chunk-GVMWJ4NI.js.map → chunk-XH24BGEK.js.map} +1 -1
  322. package/dist/{chunk-3S5ED522.js → chunk-XO4GHRA2.js} +11 -8
  323. package/dist/chunk-XO4GHRA2.js.map +1 -0
  324. package/dist/{chunk-O5ORO2RX.cjs → chunk-XQF4HCOV.cjs} +13 -11
  325. package/dist/chunk-XQF4HCOV.cjs.map +1 -0
  326. package/dist/{chunk-VZTXUYPM.cjs → chunk-XT4WBBCD.cjs} +20 -20
  327. package/dist/chunk-XT4WBBCD.cjs.map +1 -0
  328. package/dist/{chunk-Z44A7NPD.cjs → chunk-YBBBX5H2.cjs} +40 -39
  329. package/dist/chunk-YBBBX5H2.cjs.map +1 -0
  330. package/dist/{chunk-IUCYRQ4J.js → chunk-YPYZZLZ5.js} +5 -5
  331. package/dist/{chunk-IUCYRQ4J.js.map → chunk-YPYZZLZ5.js.map} +1 -1
  332. package/dist/{chunk-NVXTHTJI.js → chunk-YTWMIVRI.js} +10 -10
  333. package/dist/chunk-YTWMIVRI.js.map +1 -0
  334. package/dist/{chunk-WZAKEJDL.js → chunk-YZW7HQXH.js} +13 -11
  335. package/dist/chunk-YZW7HQXH.js.map +1 -0
  336. package/dist/{chunk-AYBKPAI2.cjs → chunk-Z5MNYYUJ.cjs} +3 -3
  337. package/dist/{chunk-AYBKPAI2.cjs.map → chunk-Z5MNYYUJ.cjs.map} +1 -1
  338. package/dist/{chunk-GOE36IXL.js → chunk-Z6M3UELD.js} +3 -3
  339. package/dist/{chunk-GOE36IXL.js.map → chunk-Z6M3UELD.js.map} +1 -1
  340. package/dist/{chunk-PXZRYL5I.js → chunk-ZBXJDQXN.js} +12 -4
  341. package/dist/chunk-ZBXJDQXN.js.map +1 -0
  342. package/dist/{chunk-M5SEYDSS.cjs → chunk-ZDHLEHYR.cjs} +6 -6
  343. package/dist/{chunk-M5SEYDSS.cjs.map → chunk-ZDHLEHYR.cjs.map} +1 -1
  344. package/dist/{chunk-SCGTO3PX.js → chunk-ZHTK4IPQ.js} +3 -3
  345. package/dist/{chunk-SCGTO3PX.js.map → chunk-ZHTK4IPQ.js.map} +1 -1
  346. package/dist/{chunk-QF2FODTG.js → chunk-ZL5QVNKG.js} +10 -6
  347. package/dist/chunk-ZL5QVNKG.js.map +1 -0
  348. package/dist/{chunk-6GVOW3UL.js → chunk-ZUJVGHFW.js} +12 -11
  349. package/dist/chunk-ZUJVGHFW.js.map +1 -0
  350. package/dist/code-block.cjs +4 -4
  351. package/dist/code-block.js +3 -3
  352. package/dist/code-view.cjs +2 -2
  353. package/dist/code-view.js +1 -1
  354. package/dist/command.cjs +3 -3
  355. package/dist/command.js +1 -1
  356. package/dist/composer.cjs +7 -6
  357. package/dist/composer.js +5 -4
  358. package/dist/content-renderer.cjs +6 -6
  359. package/dist/content-renderer.js +3 -3
  360. package/dist/context-menu.cjs +4 -3
  361. package/dist/context-menu.d.cts +2 -0
  362. package/dist/context-menu.d.ts +2 -0
  363. package/dist/context-menu.js +2 -1
  364. package/dist/date-picker.cjs +5 -5
  365. package/dist/date-picker.js +4 -4
  366. package/dist/drawer.cjs +3 -3
  367. package/dist/drawer.d.cts +10 -4
  368. package/dist/drawer.d.ts +10 -4
  369. package/dist/drawer.js +1 -1
  370. package/dist/dropdown.cjs +5 -4
  371. package/dist/dropdown.js +3 -2
  372. package/dist/editor.cjs +9 -8
  373. package/dist/editor.js +7 -6
  374. package/dist/emoji-select.cjs +2 -2
  375. package/dist/emoji-select.js +1 -1
  376. package/dist/eyebrow.cjs +2 -2
  377. package/dist/eyebrow.js +1 -1
  378. package/dist/faux-client.cjs +2 -2
  379. package/dist/faux-client.js +1 -1
  380. package/dist/field.cjs +3 -3
  381. package/dist/field.js +2 -2
  382. package/dist/file-browser.cjs +6 -5
  383. package/dist/file-browser.js +2 -1
  384. package/dist/file-upload.cjs +3 -3
  385. package/dist/file-upload.js +1 -1
  386. package/dist/image-viewer.cjs +3 -3
  387. package/dist/image-viewer.js +2 -2
  388. package/dist/index-list.cjs +2 -2
  389. package/dist/index-list.js +1 -1
  390. package/dist/index.cjs +213 -212
  391. package/dist/index.cjs.map +1 -1
  392. package/dist/index.d.cts +19 -1
  393. package/dist/index.d.ts +19 -1
  394. package/dist/index.js +78 -77
  395. package/dist/index.js.map +1 -1
  396. package/dist/input-tag.cjs +7 -6
  397. package/dist/input-tag.d.cts +6 -2
  398. package/dist/input-tag.d.ts +6 -2
  399. package/dist/input-tag.js +2 -1
  400. package/dist/input.cjs +10 -9
  401. package/dist/input.js +9 -8
  402. package/dist/inputs.cjs +32 -31
  403. package/dist/inputs.js +19 -18
  404. package/dist/json-editor.cjs +27 -26
  405. package/dist/json-editor.js +16 -15
  406. package/dist/magic-wand.cjs +8 -8
  407. package/dist/magic-wand.js +7 -7
  408. package/dist/marquee.cjs +2 -2
  409. package/dist/marquee.js +1 -1
  410. package/dist/media-viewer.cjs +5 -5
  411. package/dist/media-viewer.js +4 -4
  412. package/dist/menu.cjs +3 -3
  413. package/dist/menu.js +1 -1
  414. package/dist/mobile-menu.cjs +5 -4
  415. package/dist/mobile-menu.d.cts +2 -1
  416. package/dist/mobile-menu.d.ts +2 -1
  417. package/dist/mobile-menu.js +3 -2
  418. package/dist/mode.cjs +3 -3
  419. package/dist/mode.js +2 -2
  420. package/dist/multi-switch.cjs +6 -5
  421. package/dist/multi-switch.js +5 -4
  422. package/dist/number-field.cjs +11 -10
  423. package/dist/number-field.js +10 -9
  424. package/dist/otp-input.cjs +3 -2
  425. package/dist/otp-input.js +2 -1
  426. package/dist/pagination.cjs +2 -2
  427. package/dist/pagination.js +1 -1
  428. package/dist/paste-pills.cjs +17 -16
  429. package/dist/paste-pills.js +4 -3
  430. package/dist/pdf-viewer.cjs +3 -3
  431. package/dist/pdf-viewer.js +2 -2
  432. package/dist/popover.cjs +5 -4
  433. package/dist/popover.js +3 -2
  434. package/dist/profile.cjs +3 -3
  435. package/dist/profile.js +2 -2
  436. package/dist/progress.cjs +2 -2
  437. package/dist/progress.js +1 -1
  438. package/dist/prompt-input.cjs +10 -9
  439. package/dist/prompt-input.js +7 -6
  440. package/dist/qr-code.cjs +8 -8
  441. package/dist/qr-code.js +2 -2
  442. package/dist/radio-group.cjs +5 -5
  443. package/dist/radio-group.js +4 -4
  444. package/dist/reason-tag.cjs +6 -5
  445. package/dist/reason-tag.js +5 -4
  446. package/dist/reorderable-grid.cjs +4 -3
  447. package/dist/reorderable-grid.js +2 -1
  448. package/dist/resizable-panels.cjs +3 -2
  449. package/dist/resizable-panels.js +2 -1
  450. package/dist/select.cjs +8 -7
  451. package/dist/select.js +7 -6
  452. package/dist/separator.cjs +2 -2
  453. package/dist/separator.js +1 -1
  454. package/dist/sidebar.cjs +6 -5
  455. package/dist/sidebar.js +4 -3
  456. package/dist/slider.cjs +5 -5
  457. package/dist/slider.js +4 -4
  458. package/dist/stat-list.cjs +2 -2
  459. package/dist/stat-list.d.cts +5 -2
  460. package/dist/stat-list.d.ts +5 -2
  461. package/dist/stat-list.js +1 -1
  462. package/dist/stepper.cjs +3 -2
  463. package/dist/stepper.js +2 -1
  464. package/dist/styles.css +24 -0
  465. package/dist/styles.css.map +1 -1
  466. package/dist/switch.cjs +3 -3
  467. package/dist/switch.js +2 -2
  468. package/dist/table.cjs +11 -11
  469. package/dist/table.js +1 -1
  470. package/dist/tabs.cjs +4 -3
  471. package/dist/tabs.js +2 -1
  472. package/dist/textarea.cjs +6 -6
  473. package/dist/textarea.js +5 -5
  474. package/dist/time-grid.cjs +3 -2
  475. package/dist/time-grid.js +2 -1
  476. package/dist/time-picker.cjs +2 -2
  477. package/dist/time-picker.js +1 -1
  478. package/dist/timeline.cjs +4 -4
  479. package/dist/timeline.js +1 -1
  480. package/dist/toast.cjs +4 -3
  481. package/dist/toast.d.cts +6 -2
  482. package/dist/toast.d.ts +6 -2
  483. package/dist/toast.js +2 -1
  484. package/dist/tooltip.cjs +4 -3
  485. package/dist/tooltip.js +3 -2
  486. package/dist/tree-nav.cjs +3 -3
  487. package/dist/tree-nav.js +1 -1
  488. package/docs/Dropdown.md +1 -1
  489. package/docs/InputTag.md +1 -1
  490. package/docs/MobileMenu.md +2 -2
  491. package/docs/Popover.md +1 -1
  492. package/docs/ReorderableGrid.md +2 -0
  493. package/docs/ResizablePanels.md +2 -0
  494. package/docs/Toast.md +2 -2
  495. package/package.json +1 -1
  496. package/dist/chunk-25HRO7HQ.cjs.map +0 -1
  497. package/dist/chunk-2O5UXH5R.cjs.map +0 -1
  498. package/dist/chunk-37D5PYEF.js.map +0 -1
  499. package/dist/chunk-3S5ED522.js.map +0 -1
  500. package/dist/chunk-4DL2U23D.cjs.map +0 -1
  501. package/dist/chunk-5EW47IH7.js.map +0 -1
  502. package/dist/chunk-5TP642UT.js.map +0 -1
  503. package/dist/chunk-6GVOW3UL.js.map +0 -1
  504. package/dist/chunk-AJPYGRLA.cjs.map +0 -1
  505. package/dist/chunk-BXPLERIJ.js.map +0 -1
  506. package/dist/chunk-BYO5RUDE.cjs.map +0 -1
  507. package/dist/chunk-CEFK54WP.cjs.map +0 -1
  508. package/dist/chunk-CQ7QXZLR.cjs.map +0 -1
  509. package/dist/chunk-DJYG7DXS.js.map +0 -1
  510. package/dist/chunk-DTOIO42M.js.map +0 -1
  511. package/dist/chunk-DXZCKDYS.js.map +0 -1
  512. package/dist/chunk-ESCIXKFT.js.map +0 -1
  513. package/dist/chunk-EUVWYDFN.js.map +0 -1
  514. package/dist/chunk-F4OYQ2XZ.js.map +0 -1
  515. package/dist/chunk-FKZB27OM.cjs.map +0 -1
  516. package/dist/chunk-FR4RHVPR.js.map +0 -1
  517. package/dist/chunk-FVQO75KY.cjs.map +0 -1
  518. package/dist/chunk-GDF6XTHC.js.map +0 -1
  519. package/dist/chunk-GR2WKBER.js.map +0 -1
  520. package/dist/chunk-GTS3QA7M.js.map +0 -1
  521. package/dist/chunk-HLI6RB5V.cjs.map +0 -1
  522. package/dist/chunk-HNJXBMHI.cjs.map +0 -1
  523. package/dist/chunk-J2DI6RMR.cjs.map +0 -1
  524. package/dist/chunk-JY2RC6I4.js.map +0 -1
  525. package/dist/chunk-KFA7B6WP.cjs.map +0 -1
  526. package/dist/chunk-KOAMRCSC.cjs.map +0 -1
  527. package/dist/chunk-KOTUFZJ6.cjs.map +0 -1
  528. package/dist/chunk-LFC2DL6H.cjs.map +0 -1
  529. package/dist/chunk-LKN7FYW6.js.map +0 -1
  530. package/dist/chunk-MI57NAKF.js.map +0 -1
  531. package/dist/chunk-MKGWHSNV.cjs.map +0 -1
  532. package/dist/chunk-MLZGGAXQ.js.map +0 -1
  533. package/dist/chunk-MPCZUZ4O.cjs.map +0 -1
  534. package/dist/chunk-MQ6VGG62.js.map +0 -1
  535. package/dist/chunk-NSJBVV7R.js.map +0 -1
  536. package/dist/chunk-NVXTHTJI.js.map +0 -1
  537. package/dist/chunk-O5ORO2RX.cjs.map +0 -1
  538. package/dist/chunk-OASSZI6M.cjs.map +0 -1
  539. package/dist/chunk-PCNJJVTF.cjs.map +0 -1
  540. package/dist/chunk-PDVU2PXR.js.map +0 -1
  541. package/dist/chunk-PJNUGSKI.js.map +0 -1
  542. package/dist/chunk-PM5I5ZHK.cjs.map +0 -1
  543. package/dist/chunk-PXZRYL5I.js.map +0 -1
  544. package/dist/chunk-QF2FODTG.js.map +0 -1
  545. package/dist/chunk-QGY5FPVM.js.map +0 -1
  546. package/dist/chunk-QP6VNKLW.cjs.map +0 -1
  547. package/dist/chunk-QTS4Q2NK.js.map +0 -1
  548. package/dist/chunk-RANTYGKW.js.map +0 -1
  549. package/dist/chunk-RSLZL6VP.js.map +0 -1
  550. package/dist/chunk-RWU2MFUL.js.map +0 -1
  551. package/dist/chunk-RZUYCZ5D.cjs.map +0 -1
  552. package/dist/chunk-SKMORSBO.cjs.map +0 -1
  553. package/dist/chunk-SSCW67KA.cjs.map +0 -1
  554. package/dist/chunk-SXXDTW7S.js.map +0 -1
  555. package/dist/chunk-TFX4LL7V.js.map +0 -1
  556. package/dist/chunk-TMQF2CRN.js.map +0 -1
  557. package/dist/chunk-UK6BGM74.cjs.map +0 -1
  558. package/dist/chunk-UXYFM2XT.cjs.map +0 -1
  559. package/dist/chunk-VZTXUYPM.cjs.map +0 -1
  560. package/dist/chunk-WMANILKC.cjs.map +0 -1
  561. package/dist/chunk-WNUAGRQN.cjs.map +0 -1
  562. package/dist/chunk-WZAKEJDL.js.map +0 -1
  563. package/dist/chunk-X2A3NAJW.js.map +0 -1
  564. package/dist/chunk-XZOBGKZL.cjs.map +0 -1
  565. package/dist/chunk-Y3QAEF2P.cjs.map +0 -1
  566. package/dist/chunk-YQZB5Z7C.cjs.map +0 -1
  567. package/dist/chunk-Z44A7NPD.cjs.map +0 -1
  568. package/dist/chunk-Z4UXLQSK.cjs.map +0 -1
  569. package/dist/chunk-Z7SQMQTF.cjs.map +0 -1
  570. package/dist/chunk-ZPBKRJMH.js.map +0 -1
  571. package/dist/chunk-ZVDW2VX5.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Stepper/Stepper.tsx"],"names":["Children","isValidElement","jsx","cn","Check","forwardRef","useControllableState","isRtl","jsxs","Fragment"],"mappings":"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","file":"chunk-LVNCNMKD.cjs","sourcesContent":["import {\n Children,\n forwardRef,\n isValidElement,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { isRtl } from \"../../utils/direction\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport type {\n StepperProps,\n StepperStep as StepperStepData,\n StepperStepProps,\n StepperStepState,\n} from \"./Stepper.types\";\n\nconst DEFAULT_STATE_LABELS: Record<StepperStepState, string> = {\n upcoming: \"Not started\",\n current: \"Current\",\n complete: \"Completed\",\n error: \"Error\",\n};\n\n/**\n * Declarative step. Renders nothing itself: `Stepper` reads its props as data\n * and renders it through the same path as an entry in `steps`, so the two forms\n * cannot drift apart in markup, states or handles. Its children are the step's\n * content. It must be a DIRECT child of `Stepper` (not wrapped in another\n * component) for the same reason `Breadcrumbs.Item` must.\n */\nfunction StepperStep(_props: StepperStepProps): null {\n return null;\n}\nStepperStep.displayName = \"StepperStep\";\n\nfunction stepsFromChildren(children: ReactNode): StepperStepData[] {\n const out: StepperStepData[] = [];\n for (const child of Children.toArray(children)) {\n if (!isValidElement<StepperStepProps>(child) || child.type !== StepperStep) continue;\n const { children: content, ...rest } = child.props;\n out.push({ ...rest, content });\n }\n return out;\n}\n\nconst indicatorClass: Record<StepperStepState, string> = {\n complete:\n \"border-transparent bg-zinc-900 text-white dark:bg-white dark:text-zinc-900\",\n current:\n \"border-2 border-zinc-900 bg-[color:var(--fancy-surface,var(--color-white))] text-zinc-900 ring-4 ring-zinc-900/10 dark:border-white dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:text-white dark:ring-white/15\",\n upcoming:\n \"border-[color:var(--fancy-border,var(--color-zinc-200))] bg-[color:var(--fancy-surface,var(--color-white))] text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\",\n error: \"border-transparent bg-red-600 text-white dark:bg-red-500\",\n};\n\nconst titleClass: Record<StepperStepState, string> = {\n complete: \"font-medium text-zinc-900 dark:text-white\",\n current: \"font-semibold text-zinc-900 dark:text-white\",\n upcoming:\n \"font-medium text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\",\n error: \"font-semibold text-red-700 dark:text-red-400\",\n};\n\n/** The glyph differs per state, so state reads without colour: number, tick, \"!\". */\nfunction Indicator({ state, index }: { state: StepperStepState; index: number }) {\n return (\n <span\n aria-hidden=\"true\"\n data-react-fancy-stepper-indicator=\"\"\n className={cn(\n \"relative z-10 flex h-8 w-8 shrink-0 items-center justify-center rounded-full border text-sm font-semibold\",\n indicatorClass[state],\n )}\n >\n {state === \"complete\" ? <Check size={16} strokeWidth={3} /> : state === \"error\" ? \"!\" : index + 1}\n </span>\n );\n}\n\nconst StepperRoot = forwardRef<HTMLOListElement, StepperProps>(\n (\n {\n steps: stepsProp,\n children,\n current: currentProp,\n defaultCurrent = 0,\n onChange,\n orientation = \"vertical\",\n clickable = false,\n showContent = \"all\",\n stateLabels,\n className,\n onKeyDown,\n ...rest\n },\n ref,\n ) => {\n const [current, setCurrent] = useControllableState(currentProp, defaultCurrent, onChange);\n const steps = stepsProp ?? stepsFromChildren(children);\n const labels = { ...DEFAULT_STATE_LABELS, ...stateLabels };\n const horizontal = orientation === \"horizontal\";\n\n // Arrow keys move focus between step buttons; Enter / Space activate them\n // natively. Focus only -- the current step changes on activation, never on\n // arrowing past it. DOM is read in the handler, never during render.\n const handleKeyDown = (e: KeyboardEvent<HTMLOListElement>) => {\n onKeyDown?.(e);\n if (!clickable || e.defaultPrevented) return;\n\n // Horizontal steps run right-to-left in RTL, so the arrows swap there.\n const rtl = horizontal && isRtl(e.currentTarget);\n const prevKey = horizontal ? (rtl ? \"ArrowRight\" : \"ArrowLeft\") : \"ArrowUp\";\n const nextKey = horizontal ? (rtl ? \"ArrowLeft\" : \"ArrowRight\") : \"ArrowDown\";\n if (![prevKey, nextKey, \"Home\", \"End\"].includes(e.key)) return;\n\n const list = e.currentTarget;\n const target = (e.target as HTMLElement).closest<HTMLButtonElement>(\"[data-react-fancy-stepper-trigger]\");\n if (!target || target.closest(\"[data-react-fancy-stepper]\") !== list) return;\n\n // Only this stepper's own buttons: a stepper nested in step content is\n // its own list.\n const buttons = Array.from(\n list.querySelectorAll<HTMLButtonElement>(\"[data-react-fancy-stepper-trigger]\"),\n ).filter((b) => b.closest(\"[data-react-fancy-stepper]\") === list && !b.disabled);\n const at = buttons.indexOf(target);\n\n let next: HTMLButtonElement | undefined;\n if (e.key === \"Home\") next = buttons[0];\n else if (e.key === \"End\") next = buttons[buttons.length - 1];\n else if (e.key === nextKey) next = buttons[at + 1] ?? target;\n else next = at > 0 ? buttons[at - 1] : target;\n\n e.preventDefault();\n next?.focus();\n };\n\n return (\n <ol\n ref={ref}\n data-react-fancy-stepper=\"\"\n data-orientation={orientation}\n data-current={current}\n className={cn(horizontal ? \"flex items-start\" : \"flex flex-col\", className)}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {steps.map((step, index) => {\n const derived: StepperStepState =\n index < current ? \"complete\" : index === current ? \"current\" : \"upcoming\";\n const state = step.state ?? derived;\n const isCurrent = index === current;\n const isLast = index === steps.length - 1;\n const showBody = step.content != null && (showContent === \"all\" || isCurrent);\n\n const headerInner = (\n <>\n <Indicator state={state} index={index} />\n {/* State in words, before the title so it is read first. A\n sibling of the title, so the title handle reads the title. */}\n <span className=\"sr-only\" data-react-fancy-stepper-state=\"\">\n {labels[state]}:{\" \"}\n </span>\n <span data-react-fancy-stepper-title=\"\" className={cn(\"text-sm\", titleClass[state])}>\n {step.title}\n </span>\n </>\n );\n\n const headerClass = horizontal\n ? \"flex flex-col items-center gap-2 text-center\"\n : \"flex items-center gap-x-4 text-start\";\n\n const header = clickable ? (\n <button\n type=\"button\"\n data-react-fancy-stepper-trigger=\"\"\n disabled={step.disabled}\n onClick={() => {\n if (index !== current) setCurrent(index);\n }}\n className={cn(\n headerClass,\n \"cursor-pointer rounded-md border-0 bg-transparent p-0\",\n \"focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n \"focus-visible:ring-[color:var(--fancy-focus,var(--color-blue-500))] focus-visible:ring-offset-[color:var(--fancy-surface,var(--color-white))]\",\n \"dark:focus-visible:ring-[color:var(--fancy-focus-dark,var(--color-blue-400))] dark:focus-visible:ring-offset-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n >\n {headerInner}\n </button>\n ) : (\n <div className={headerClass}>{headerInner}</div>\n );\n\n return (\n <li\n key={step.id ?? index}\n data-react-fancy-stepper-step=\"\"\n data-state={state}\n data-index={index}\n data-step-id={step.id}\n data-disabled={step.disabled ? \"true\" : undefined}\n aria-current={isCurrent ? \"step\" : undefined}\n className={cn(\"relative\", horizontal ? \"min-w-0 flex-1\" : !isLast && \"pb-8\")}\n >\n {!isLast && (\n <span\n aria-hidden=\"true\"\n data-react-fancy-stepper-connector=\"\"\n className={cn(\n \"absolute\",\n horizontal\n ? \"top-4 start-[calc(50%+1.5rem)] h-px w-[calc(100%-3rem)]\"\n : \"top-10 bottom-2 start-4 w-px -translate-x-1/2 rtl:translate-x-1/2\",\n index < current\n ? \"bg-zinc-900 dark:bg-white\"\n : \"bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))]\",\n )}\n />\n )}\n {header}\n {(step.description != null || showBody) && (\n <div className={horizontal ? \"mt-1 px-2 text-center\" : \"ps-12\"}>\n {step.description != null && (\n <div\n data-react-fancy-stepper-description=\"\"\n className=\"text-sm text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\"\n >\n {step.description}\n </div>\n )}\n {showBody && (\n <div\n data-react-fancy-stepper-content=\"\"\n className=\"mt-2 text-sm text-[color:var(--fancy-text-subtle,var(--color-zinc-600))] dark:text-[color:var(--fancy-text-subtle-dark,var(--color-zinc-400))]\"\n >\n {step.content}\n </div>\n )}\n </div>\n )}\n </li>\n );\n })}\n </ol>\n );\n },\n);\n\nStepperRoot.displayName = \"Stepper\";\n\nexport const Stepper = Object.assign(StepperRoot, { Step: StepperStep });\n"]}
@@ -90,7 +90,7 @@ var Avatar = forwardRef(
90
90
  "span",
91
91
  {
92
92
  className: cn(
93
- "absolute bottom-0 right-0 rounded-full ring-2 ring-[color:var(--fancy-surface,var(--color-white))] dark:ring-[color:var(--fancy-surface-dark,var(--color-zinc-900))]",
93
+ "absolute bottom-0 end-0 rounded-full ring-2 ring-[color:var(--fancy-surface,var(--color-white))] dark:ring-[color:var(--fancy-surface-dark,var(--color-zinc-900))]",
94
94
  statusSizeClasses[size],
95
95
  statusColorClasses[status]
96
96
  )
@@ -104,5 +104,5 @@ var Avatar = forwardRef(
104
104
  Avatar.displayName = "Avatar";
105
105
 
106
106
  export { Avatar };
107
- //# sourceMappingURL=chunk-UZCR7DK5.js.map
108
- //# sourceMappingURL=chunk-UZCR7DK5.js.map
107
+ //# sourceMappingURL=chunk-LXEOBSEZ.js.map
108
+ //# sourceMappingURL=chunk-LXEOBSEZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":";;;;AAIA,IAAM,UAAA,GAAa;AAAA,EACjB,EAAA,EAAI,SAAA;AAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA;AAAA,EACJ,WAAA,EAAa;AAAA;AACf,CAAA;AAKA,IAAM,oBAAA,GAAmD;AAAA,EACvD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,gBAAA,GAA+C;AAAA,EACnD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,iBAAA,GAAgD;AAAA,EACpD,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,kBAAA,GAAmD;AAAA,EACvD,MAAA,EAAQ,cAAA;AAAA,EACR,OAAA,EAAS,aAAA;AAAA,EACT,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEO,IAAM,MAAA,GAAS,UAAA;AAAA,EACpB,CACE;AAAA,IACE,GAAA;AAAA,IACA,GAAA,GAAM,EAAA;AAAA,IACN,QAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,MAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,KAEF,GAAA,KACG;AACH,IAAA,MAAM,OAAA,GAAU,IAAA,KAAS,IAAA,GAAO,IAAA,GAAO,IAAA,IAAQ,IAAA;AAC/C,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,yBAAA,EAAwB,EAAA;AAAA,QACxB,SAAA,EAAW,EAAA;AAAA,UACT,+DAAA;AAAA,UACA,qBAAqB,IAAI,CAAA;AAAA,UACzB,CAAC,GAAA,IAAO,qHAAA;AAAA,UACR;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,OAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAW,IAAA;AAAA,cACX,8BAAA,EAA8B,OAAA;AAAA,cAC9B,SAAA,EAAU,mBAAA;AAAA,cACV,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,CAAW,OAAO,CAAA;AAAE;AAAA,WAC/C;AAAA,UAED,GAAA,mBACC,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,GAAA;AAAA,cACA,SAAA,EAAU;AAAA;AAAA,WACZ,mBAEA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,0DAAA;AAAA,gBACA,iBAAiB,IAAI;AAAA,eACvB;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,MAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,sKAAA;AAAA,gBACA,kBAAkB,IAAI,CAAA;AAAA,gBACtB,mBAAmB,MAAM;AAAA;AAC3B;AAAA;AACF;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-UZCR7DK5.js","sourcesContent":["import { forwardRef, type CSSProperties } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { AvatarProps } from \"./Avatar.types\";\n\nconst glowColors = {\n on: \"#a855f7\", // violet — neutral\n xp: \"#22c55e\", // green\n achievement: \"#f59e0b\", // amber\n} as const;\n\ntype AvatarSize = NonNullable<AvatarProps[\"size\"]>;\ntype AvatarStatus = NonNullable<AvatarProps[\"status\"]>;\n\nconst containerSizeClasses: Record<AvatarSize, string> = {\n xs: \"h-6 w-6\",\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-12 w-12\",\n xl: \"h-16 w-16\",\n};\n\nconst fallbackTextSize: Record<AvatarSize, string> = {\n xs: \"text-xs\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n xl: \"text-lg\",\n};\n\nconst statusSizeClasses: Record<AvatarSize, string> = {\n xs: \"h-1.5 w-1.5\",\n sm: \"h-2 w-2\",\n md: \"h-2.5 w-2.5\",\n lg: \"h-3 w-3\",\n xl: \"h-4 w-4\",\n};\n\nconst statusColorClasses: Record<AvatarStatus, string> = {\n online: \"bg-green-500\",\n offline: \"bg-zinc-400\",\n busy: \"bg-red-500\",\n away: \"bg-amber-500\",\n};\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n src,\n alt = \"\",\n fallback,\n size = \"md\",\n status,\n glow,\n className,\n },\n ref,\n ) => {\n const glowKey = glow === true ? \"on\" : glow || null;\n return (\n <div\n ref={ref}\n data-react-fancy-avatar=\"\"\n className={cn(\n \"relative inline-flex items-center justify-center rounded-full\",\n containerSizeClasses[size],\n !src && \"bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))]\",\n className,\n )}\n >\n {glowKey && (\n <span\n aria-hidden\n data-react-fancy-avatar-glow={glowKey}\n className=\"fancy-avatar-glow\"\n style={{ \"--fancy-glow\": glowColors[glowKey] } as CSSProperties}\n />\n )}\n {src ? (\n <img\n src={src}\n alt={alt}\n className=\"h-full w-full rounded-full object-cover\"\n />\n ) : (\n <span\n className={cn(\n \"font-medium text-zinc-600 dark:text-zinc-300 select-none\",\n fallbackTextSize[size],\n )}\n >\n {fallback}\n </span>\n )}\n {status && (\n <span\n className={cn(\n \"absolute bottom-0 right-0 rounded-full ring-2 ring-[color:var(--fancy-surface,var(--color-white))] dark:ring-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\",\n statusSizeClasses[size],\n statusColorClasses[status],\n )}\n />\n )}\n </div>\n );\n },\n);\n\nAvatar.displayName = \"Avatar\";\n"]}
1
+ {"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":";;;;AAIA,IAAM,UAAA,GAAa;AAAA,EACjB,EAAA,EAAI,SAAA;AAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA;AAAA,EACJ,WAAA,EAAa;AAAA;AACf,CAAA;AAKA,IAAM,oBAAA,GAAmD;AAAA,EACvD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,gBAAA,GAA+C;AAAA,EACnD,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,iBAAA,GAAgD;AAAA,EACpD,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,aAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEA,IAAM,kBAAA,GAAmD;AAAA,EACvD,MAAA,EAAQ,cAAA;AAAA,EACR,OAAA,EAAS,aAAA;AAAA,EACT,IAAA,EAAM,YAAA;AAAA,EACN,IAAA,EAAM;AACR,CAAA;AAEO,IAAM,MAAA,GAAS,UAAA;AAAA,EACpB,CACE;AAAA,IACE,GAAA;AAAA,IACA,GAAA,GAAM,EAAA;AAAA,IACN,QAAA;AAAA,IACA,IAAA,GAAO,IAAA;AAAA,IACP,MAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,KAEF,GAAA,KACG;AACH,IAAA,MAAM,OAAA,GAAU,IAAA,KAAS,IAAA,GAAO,IAAA,GAAO,IAAA,IAAQ,IAAA;AAC/C,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,yBAAA,EAAwB,EAAA;AAAA,QACxB,SAAA,EAAW,EAAA;AAAA,UACT,+DAAA;AAAA,UACA,qBAAqB,IAAI,CAAA;AAAA,UACzB,CAAC,GAAA,IAAO,qHAAA;AAAA,UACR;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,OAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAW,IAAA;AAAA,cACX,8BAAA,EAA8B,OAAA;AAAA,cAC9B,SAAA,EAAU,mBAAA;AAAA,cACV,KAAA,EAAO,EAAE,cAAA,EAAgB,UAAA,CAAW,OAAO,CAAA;AAAE;AAAA,WAC/C;AAAA,UAED,GAAA,mBACC,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,GAAA;AAAA,cACA,SAAA,EAAU;AAAA;AAAA,WACZ,mBAEA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,0DAAA;AAAA,gBACA,iBAAiB,IAAI;AAAA,eACvB;AAAA,cAEC,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,MAAA,oBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,oKAAA;AAAA,gBACA,kBAAkB,IAAI,CAAA;AAAA,gBACtB,mBAAmB,MAAM;AAAA;AAC3B;AAAA;AACF;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"chunk-LXEOBSEZ.js","sourcesContent":["import { forwardRef, type CSSProperties } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { AvatarProps } from \"./Avatar.types\";\n\nconst glowColors = {\n on: \"#a855f7\", // violet — neutral\n xp: \"#22c55e\", // green\n achievement: \"#f59e0b\", // amber\n} as const;\n\ntype AvatarSize = NonNullable<AvatarProps[\"size\"]>;\ntype AvatarStatus = NonNullable<AvatarProps[\"status\"]>;\n\nconst containerSizeClasses: Record<AvatarSize, string> = {\n xs: \"h-6 w-6\",\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-12 w-12\",\n xl: \"h-16 w-16\",\n};\n\nconst fallbackTextSize: Record<AvatarSize, string> = {\n xs: \"text-xs\",\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n xl: \"text-lg\",\n};\n\nconst statusSizeClasses: Record<AvatarSize, string> = {\n xs: \"h-1.5 w-1.5\",\n sm: \"h-2 w-2\",\n md: \"h-2.5 w-2.5\",\n lg: \"h-3 w-3\",\n xl: \"h-4 w-4\",\n};\n\nconst statusColorClasses: Record<AvatarStatus, string> = {\n online: \"bg-green-500\",\n offline: \"bg-zinc-400\",\n busy: \"bg-red-500\",\n away: \"bg-amber-500\",\n};\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n src,\n alt = \"\",\n fallback,\n size = \"md\",\n status,\n glow,\n className,\n },\n ref,\n ) => {\n const glowKey = glow === true ? \"on\" : glow || null;\n return (\n <div\n ref={ref}\n data-react-fancy-avatar=\"\"\n className={cn(\n \"relative inline-flex items-center justify-center rounded-full\",\n containerSizeClasses[size],\n !src && \"bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))]\",\n className,\n )}\n >\n {glowKey && (\n <span\n aria-hidden\n data-react-fancy-avatar-glow={glowKey}\n className=\"fancy-avatar-glow\"\n style={{ \"--fancy-glow\": glowColors[glowKey] } as CSSProperties}\n />\n )}\n {src ? (\n <img\n src={src}\n alt={alt}\n className=\"h-full w-full rounded-full object-cover\"\n />\n ) : (\n <span\n className={cn(\n \"font-medium text-zinc-600 dark:text-zinc-300 select-none\",\n fallbackTextSize[size],\n )}\n >\n {fallback}\n </span>\n )}\n {status && (\n <span\n className={cn(\n \"absolute bottom-0 end-0 rounded-full ring-2 ring-[color:var(--fancy-surface,var(--color-white))] dark:ring-[color:var(--fancy-surface-dark,var(--color-zinc-900))]\",\n statusSizeClasses[size],\n statusColorClasses[status],\n )}\n />\n )}\n </div>\n );\n },\n);\n\nAvatar.displayName = \"Avatar\";\n"]}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkMRZXTL46_cjs = require('./chunk-MRZXTL46.cjs');
4
- var chunkP53432AK_cjs = require('./chunk-P53432AK.cjs');
5
- var chunkQF7CD4JH_cjs = require('./chunk-QF7CD4JH.cjs');
6
- var chunkO3F6DYWR_cjs = require('./chunk-O3F6DYWR.cjs');
3
+ var chunkDFROB5TW_cjs = require('./chunk-DFROB5TW.cjs');
4
+ var chunkUIBAIWUR_cjs = require('./chunk-UIBAIWUR.cjs');
5
+ var chunkQ7XL37T3_cjs = require('./chunk-Q7XL37T3.cjs');
6
+ var chunkXG6J5MOK_cjs = require('./chunk-XG6J5MOK.cjs');
7
7
  var chunk6V44RRSB_cjs = require('./chunk-6V44RRSB.cjs');
8
- var chunkJ2DI6RMR_cjs = require('./chunk-J2DI6RMR.cjs');
8
+ var chunkXGGAAG74_cjs = require('./chunk-XGGAAG74.cjs');
9
9
  var chunkTI7D4QDM_cjs = require('./chunk-TI7D4QDM.cjs');
10
10
  var chunkKJ22KE56_cjs = require('./chunk-KJ22KE56.cjs');
11
11
  var chunkL3V3BYVS_cjs = require('./chunk-L3V3BYVS.cjs');
@@ -30,7 +30,7 @@ function flattenOptions(list) {
30
30
  return flat;
31
31
  }
32
32
  function renderNativeOption(option, index) {
33
- const resolved = chunkO3F6DYWR_cjs.resolveOption(option);
33
+ const resolved = chunkXG6J5MOK_cjs.resolveOption(option);
34
34
  return /* @__PURE__ */ jsxRuntime.jsx(
35
35
  "option",
36
36
  {
@@ -72,9 +72,9 @@ var NativeSelect = react.forwardRef(
72
72
  const { showControl, interactive, enterEdit, exitEdit } = chunkKJ22KE56_cjs.useInlineEdit(resolvedMode, disabled);
73
73
  if (!showControl) {
74
74
  const current = value ?? defaultValue;
75
- const opt = flattenOptions(list).map((o) => chunkO3F6DYWR_cjs.resolveOption(o)).find((o) => o.value === current);
75
+ const opt = flattenOptions(list).map((o) => chunkXG6J5MOK_cjs.resolveOption(o)).find((o) => o.value === current);
76
76
  const display = /* @__PURE__ */ jsxRuntime.jsx(
77
- chunkP53432AK_cjs.DisplayValue,
77
+ chunkUIBAIWUR_cjs.DisplayValue,
78
78
  {
79
79
  size,
80
80
  leading: prefix,
@@ -86,7 +86,7 @@ var NativeSelect = react.forwardRef(
86
86
  );
87
87
  if (label || error || description) {
88
88
  return /* @__PURE__ */ jsxRuntime.jsx(
89
- chunkQF7CD4JH_cjs.Field,
89
+ chunkQ7XL37T3_cjs.Field,
90
90
  {
91
91
  label,
92
92
  labelHidden,
@@ -104,7 +104,7 @@ var NativeSelect = react.forwardRef(
104
104
  const isControlled = value !== void 0;
105
105
  const resolvedDefault = !isControlled && defaultValue === void 0 && placeholder ? "" : defaultValue;
106
106
  const select = /* @__PURE__ */ jsxRuntime.jsx(
107
- chunkMRZXTL46_cjs.InputWrapper,
107
+ chunkDFROB5TW_cjs.InputWrapper,
108
108
  {
109
109
  prefix,
110
110
  suffix,
@@ -120,13 +120,13 @@ var NativeSelect = react.forwardRef(
120
120
  disabled,
121
121
  required,
122
122
  className: chunkZU5Q77OT_cjs.cn(
123
- chunkO3F6DYWR_cjs.inputBaseClasses,
124
- chunkO3F6DYWR_cjs.inputSizeClasses[size],
125
- chunkO3F6DYWR_cjs.dirtyClasses(dirty),
126
- chunkO3F6DYWR_cjs.errorClasses(error),
123
+ chunkXG6J5MOK_cjs.inputBaseClasses,
124
+ chunkXG6J5MOK_cjs.inputSizeClasses[size],
125
+ chunkXG6J5MOK_cjs.dirtyClasses(dirty),
126
+ chunkXG6J5MOK_cjs.errorClasses(error),
127
127
  "w-full appearance-none bg-no-repeat bg-[length:16px] bg-[right_8px_center]",
128
128
  "bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22%236b7280%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M5.23%207.21a.75.75%200%20011.06.02L10%2011.168l3.71-3.938a.75.75%200%20111.08%201.04l-4.25%204.5a.75.75%200%2001-1.08%200l-4.25-4.5a.75.75%200%2001.02-1.06z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')]",
129
- "pr-8",
129
+ "pe-8",
130
130
  className
131
131
  ),
132
132
  onChange: (e) => {
@@ -154,7 +154,7 @@ var NativeSelect = react.forwardRef(
154
154
  );
155
155
  if (label || error || description) {
156
156
  return /* @__PURE__ */ jsxRuntime.jsx(
157
- chunkQF7CD4JH_cjs.Field,
157
+ chunkQ7XL37T3_cjs.Field,
158
158
  {
159
159
  label,
160
160
  labelHidden,
@@ -226,7 +226,7 @@ var ListboxSelect = react.forwardRef(
226
226
  const anchorRef = react.useRef(null);
227
227
  const listRef = react.useRef(null);
228
228
  const searchRef = react.useRef(null);
229
- const position = chunkJ2DI6RMR_cjs.useFloatingPosition(anchorRef, listRef, {
229
+ const position = chunkXGGAAG74_cjs.useFloatingPosition(anchorRef, listRef, {
230
230
  placement: "bottom-start",
231
231
  offset: 4,
232
232
  enabled: open
@@ -244,8 +244,8 @@ var ListboxSelect = react.forwardRef(
244
244
  }
245
245
  }, [open, textInputEnabled]);
246
246
  const resolvedOptions = react.useMemo(() => {
247
- const base = flattenOptions(list).map(chunkO3F6DYWR_cjs.resolveOption);
248
- const created = createdOptions.map(chunkO3F6DYWR_cjs.resolveOption);
247
+ const base = flattenOptions(list).map(chunkXG6J5MOK_cjs.resolveOption);
248
+ const created = createdOptions.map(chunkXG6J5MOK_cjs.resolveOption);
249
249
  return [...base, ...created];
250
250
  }, [list, createdOptions]);
251
251
  const filtered = search ? resolvedOptions.filter(
@@ -335,10 +335,10 @@ var ListboxSelect = react.forwardRef(
335
335
  const labels = multiple ? currentMulti.map(
336
336
  (v) => resolvedOptions.find((o) => o.value === v)?.label ?? v
337
337
  ) : currentSingle ? [resolvedOptions.find((o) => o.value === currentSingle)?.label ?? currentSingle] : [];
338
- const display = /* @__PURE__ */ jsxRuntime.jsx(chunkP53432AK_cjs.DisplayValue, { size, interactive, onActivate: enterEdit, children: labels.join(", ") });
338
+ const display = /* @__PURE__ */ jsxRuntime.jsx(chunkUIBAIWUR_cjs.DisplayValue, { size, interactive, onActivate: enterEdit, children: labels.join(", ") });
339
339
  if (label || error || description) {
340
340
  return /* @__PURE__ */ jsxRuntime.jsx(
341
- chunkQF7CD4JH_cjs.Field,
341
+ chunkQ7XL37T3_cjs.Field,
342
342
  {
343
343
  label,
344
344
  labelHidden,
@@ -369,11 +369,11 @@ var ListboxSelect = react.forwardRef(
369
369
  "data-react-fancy-select": "",
370
370
  "data-variant": "listbox",
371
371
  className: chunkZU5Q77OT_cjs.cn(
372
- chunkO3F6DYWR_cjs.inputBaseClasses,
373
- chunkO3F6DYWR_cjs.inputSizeClasses[size],
374
- chunkO3F6DYWR_cjs.dirtyClasses(dirty),
375
- chunkO3F6DYWR_cjs.errorClasses(error),
376
- "flex w-full cursor-pointer items-center justify-between gap-2 text-left",
372
+ chunkXG6J5MOK_cjs.inputBaseClasses,
373
+ chunkXG6J5MOK_cjs.inputSizeClasses[size],
374
+ chunkXG6J5MOK_cjs.dirtyClasses(dirty),
375
+ chunkXG6J5MOK_cjs.errorClasses(error),
376
+ "flex w-full cursor-pointer items-center justify-between gap-2 text-start",
377
377
  !hasValue && "text-[color:var(--fancy-text-faint,var(--color-zinc-400))] dark:text-[color:var(--fancy-text-faint-dark,var(--color-zinc-500))]",
378
378
  className
379
379
  ),
@@ -404,6 +404,7 @@ var ListboxSelect = react.forwardRef(
404
404
  ref: listRef,
405
405
  role: "listbox",
406
406
  "aria-multiselectable": multiple || void 0,
407
+ dir: position.dir,
407
408
  className: "fixed z-50 max-h-60 min-w-[8rem] overflow-y-auto rounded-xl border border-[color:var(--fancy-border,var(--color-zinc-200))] bg-[color:var(--fancy-surface,var(--color-white))] p-1 shadow-lg dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:shadow-zinc-950/50 fancy-scale-in",
408
409
  style: {
409
410
  left: position.x,
@@ -431,7 +432,7 @@ var ListboxSelect = react.forwardRef(
431
432
  {
432
433
  type: "button",
433
434
  onClick: handleCreate,
434
- className: "flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-sm text-blue-600 hover:bg-blue-50 dark:text-blue-400 dark:hover:bg-blue-500/10",
435
+ className: "flex w-full items-center gap-2 rounded-lg px-3 py-2 text-start text-sm text-blue-600 hover:bg-blue-50 dark:text-blue-400 dark:hover:bg-blue-500/10",
435
436
  children: [
436
437
  /* @__PURE__ */ jsxRuntime.jsx("svg", { className: "h-4 w-4 shrink-0", viewBox: "0 0 20 20", fill: "currentColor", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", d: "M10 3a.75.75 0 01.75.75v5.5h5.5a.75.75 0 010 1.5h-5.5v5.5a.75.75 0 01-1.5 0v-5.5h-5.5a.75.75 0 010-1.5h5.5v-5.5A.75.75 0 0110 3z", clipRule: "evenodd" }) }),
437
438
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "truncate", children: [
@@ -454,7 +455,7 @@ var ListboxSelect = react.forwardRef(
454
455
  disabled: option.disabled,
455
456
  onClick: () => toggleOption(option.value),
456
457
  className: chunkZU5Q77OT_cjs.cn(
457
- "flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-sm transition-colors",
458
+ "flex w-full items-center gap-2 rounded-lg px-3 py-2 text-start text-sm transition-colors",
458
459
  i === activeIndex ? "bg-[color:var(--fancy-surface-muted,var(--color-zinc-100))] dark:bg-[color:var(--fancy-surface-muted-dark,var(--color-zinc-800))]" : "hover:bg-[color:var(--fancy-surface-hover,var(--color-zinc-50))] dark:hover:bg-[color:var(--fancy-surface-hover-dark,color-mix(in_oklab,var(--color-zinc-800)_50%,transparent))]",
459
460
  selected ? "text-[color:var(--fancy-text,var(--color-zinc-900))] dark:text-[color:var(--fancy-text-dark,var(--color-zinc-100))]" : "text-[color:var(--fancy-text-soft,var(--color-zinc-700))] dark:text-[color:var(--fancy-text-soft-dark,var(--color-zinc-300))]",
460
461
  option.disabled && "cursor-not-allowed opacity-50"
@@ -499,7 +500,7 @@ var ListboxSelect = react.forwardRef(
499
500
  );
500
501
  if (label || error || description) {
501
502
  return /* @__PURE__ */ jsxRuntime.jsx(
502
- chunkQF7CD4JH_cjs.Field,
503
+ chunkQ7XL37T3_cjs.Field,
503
504
  {
504
505
  label,
505
506
  labelHidden,
@@ -528,5 +529,5 @@ var Select = react.forwardRef(
528
529
  Select.displayName = "Select";
529
530
 
530
531
  exports.Select = Select;
531
- //# sourceMappingURL=chunk-HLI6RB5V.cjs.map
532
- //# sourceMappingURL=chunk-HLI6RB5V.cjs.map
532
+ //# sourceMappingURL=chunk-M5ER3Y5I.cjs.map
533
+ //# sourceMappingURL=chunk-M5ER3Y5I.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/inputs/Select/Select.tsx"],"names":["resolveOption","jsx","forwardRef","useId","useFieldMode","useInlineEdit","DisplayValue","Field","InputWrapper","jsxs","cn","inputBaseClasses","inputSizeClasses","dirtyClasses","errorClasses","useState","useEffect","useRef","useFloatingPosition","useCallback","useOutsideClick","useEscapeKey","useMemo","label","opt","isImeComposing","Portal"],"mappings":"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","file":"chunk-M5ER3Y5I.cjs","sourcesContent":["import { forwardRef, useCallback, useEffect, useId, useMemo, useRef, useState } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { isImeComposing } from \"../../../utils/ime\";\nimport { Field } from \"../Field\";\nimport { InputWrapper } from \"../InputWrapper\";\nimport { Portal } from \"../../Portal\";\nimport { useFloatingPosition } from \"../../../hooks/use-floating-position\";\nimport { useOutsideClick } from \"../../../hooks/use-outside-click\";\nimport { useEscapeKey } from \"../../../hooks/use-escape-key\";\nimport {\n dirtyClasses,\n errorClasses,\n inputBaseClasses,\n inputSizeClasses,\n resolveOption,\n} from \"../inputs.utils\";\nimport { useFieldMode } from \"../mode/FieldMode.context\";\nimport { DisplayValue } from \"../mode/DisplayValue\";\nimport { useInlineEdit } from \"../mode/useInlineEdit\";\nimport type { InputOption, InputOptionGroup } from \"../inputs.types\";\nimport type { SelectProps } from \"./Select.types\";\n\nfunction isOptionGroup(\n item: InputOption | InputOptionGroup,\n): item is InputOptionGroup {\n return typeof item === \"object\" && \"options\" in item;\n}\n\nfunction flattenOptions(list: (InputOption | InputOptionGroup)[]): InputOption[] {\n const flat: InputOption[] = [];\n for (const item of list) {\n if (isOptionGroup(item)) {\n flat.push(...item.options);\n } else {\n flat.push(item);\n }\n }\n return flat;\n}\n\nfunction renderNativeOption(option: InputOption, index: number) {\n const resolved = resolveOption(option);\n return (\n <option\n key={`${resolved.value}-${index}`}\n value={resolved.value as string}\n disabled={resolved.disabled}\n >\n {resolved.label}\n </option>\n );\n}\n\n// ── Native variant ──────────────────────────────────────────────────────\n\nconst NativeSelect = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n labelHidden,\n description,\n required,\n disabled,\n className,\n id,\n list,\n placeholder,\n prefix,\n suffix,\n prefixPosition,\n suffixPosition,\n mode,\n onValueChange,\n onChange,\n value,\n defaultValue,\n ...props\n },\n ref,\n ) => {\n const autoId = useId();\n const selectId = id ?? autoId;\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n\n if (!showControl) {\n const current = (value ?? defaultValue) as string | undefined;\n const opt = flattenOptions(list)\n .map((o) => resolveOption(o))\n .find((o) => o.value === current);\n const display = (\n <DisplayValue\n size={size}\n leading={prefix}\n trailing={suffix}\n interactive={interactive}\n onActivate={enterEdit}\n >\n {opt?.label ?? current}\n </DisplayValue>\n );\n if (label || error || description) {\n return (\n <Field\n label={label}\n labelHidden={labelHidden}\n description={description}\n error={error}\n required={required}\n htmlFor={selectId}\n size={size}\n >\n {display}\n </Field>\n );\n }\n return display;\n }\n\n // When a placeholder is provided but no value/defaultValue, default to \"\"\n // so the disabled placeholder <option> is the initial selection instead of\n // the browser auto-picking the first real option.\n const isControlled = value !== undefined;\n const resolvedDefault =\n !isControlled && defaultValue === undefined && placeholder ? \"\" : defaultValue;\n\n const select = (\n <InputWrapper\n prefix={prefix}\n suffix={suffix}\n prefixPosition={prefixPosition}\n suffixPosition={suffixPosition}\n size={size}\n >\n <select\n data-react-fancy-select=\"\"\n ref={ref}\n id={selectId}\n disabled={disabled}\n required={required}\n className={cn(\n inputBaseClasses,\n inputSizeClasses[size],\n dirtyClasses(dirty),\n errorClasses(error),\n \"w-full appearance-none bg-no-repeat bg-[length:16px] bg-[right_8px_center]\",\n \"bg-[url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22%236b7280%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M5.23%207.21a.75.75%200%20011.06.02L10%2011.168l3.71-3.938a.75.75%200%20111.08%201.04l-4.25%204.5a.75.75%200%2001-1.08%200l-4.25-4.5a.75.75%200%2001.02-1.06z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E')]\",\n \"pe-8\",\n className,\n )}\n onChange={(e) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n }}\n {...props}\n {...(isControlled ? { value } : { defaultValue: resolvedDefault })}\n autoFocus={interactive || props.autoFocus}\n onBlur={(e) => {\n props.onBlur?.(e);\n if (interactive) exitEdit();\n }}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {list.map((item, index) =>\n isOptionGroup(item) ? (\n <optgroup key={`group-${index}`} label={item.label}>\n {item.options.map((opt, optIndex) =>\n renderNativeOption(opt, optIndex),\n )}\n </optgroup>\n ) : (\n renderNativeOption(item, index)\n ),\n )}\n </select>\n </InputWrapper>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n labelHidden={labelHidden}\n description={description}\n error={error}\n required={required}\n htmlFor={selectId}\n size={size}\n >\n {select}\n </Field>\n );\n }\n\n return select;\n },\n);\n\nNativeSelect.displayName = \"NativeSelect\";\n\n// ── Listbox variant ─────────────────────────────────────────────────────\n\nconst ListboxSelect = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n labelHidden,\n description,\n required,\n disabled,\n className,\n id,\n list,\n placeholder = \"Select...\",\n multiple = false,\n values: controlledValues,\n defaultValues,\n onValueChange,\n onValuesChange,\n searchable = false,\n creatable = false,\n onCreate,\n createLabel = \"Create\",\n selectedSuffix = \"selected\",\n indicator = \"check\",\n mode,\n value: controlledSingleValue,\n defaultValue: defaultSingleValue,\n },\n _ref,\n ) => {\n const autoId = useId();\n const selectId = id ?? autoId;\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n\n // Creatable implies a text input, which is also the search input.\n const textInputEnabled = searchable || creatable;\n\n // ── State ──────────────────────────────────────────────\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const [activeIndex, setActiveIndex] = useState(-1);\n const [createdOptions, setCreatedOptions] = useState<InputOption[]>([]);\n\n // Single-select state\n const [singleValue, setSingleValue] = useState<string>(\n (controlledSingleValue as string) ?? (defaultSingleValue as string) ?? \"\",\n );\n const currentSingle = (controlledSingleValue as string) ?? singleValue;\n\n // Multi-select state\n const [multiValues, setMultiValues] = useState<string[]>(\n controlledValues ?? defaultValues ?? [],\n );\n const currentMulti = controlledValues ?? multiValues;\n\n // Sync controlled values\n useEffect(() => {\n if (controlledValues) setMultiValues(controlledValues);\n }, [controlledValues]);\n useEffect(() => {\n if (controlledSingleValue !== undefined) setSingleValue(controlledSingleValue as string);\n }, [controlledSingleValue]);\n\n // ── Refs ───────────────────────────────────────────────\n const anchorRef = useRef<HTMLButtonElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n\n const position = useFloatingPosition(anchorRef, listRef, {\n placement: \"bottom-start\",\n offset: 4,\n enabled: open,\n });\n\n const close = useCallback(() => {\n setOpen(false);\n setSearch(\"\");\n setActiveIndex(-1);\n }, []);\n\n // Outside-click guards the dropdown (in a Portal) against its own clicks,\n // with the trigger button ignored since it toggles open/closed itself.\n useOutsideClick(listRef, close, open, anchorRef);\n useEscapeKey(close, open);\n\n // Focus text input on open\n useEffect(() => {\n if (open && textInputEnabled) {\n requestAnimationFrame(() => searchRef.current?.focus());\n }\n }, [open, textInputEnabled]);\n\n // ── Options ────────────────────────────────────────────\n const resolvedOptions = useMemo(() => {\n const base = flattenOptions(list).map(resolveOption);\n const created = createdOptions.map(resolveOption);\n return [...base, ...created];\n }, [list, createdOptions]);\n\n const filtered = search\n ? resolvedOptions.filter((o) =>\n o.label.toLowerCase().includes(search.toLowerCase()),\n )\n : resolvedOptions;\n\n // Exact-match check to decide whether to show the \"Create X\" row\n const canCreate =\n creatable &&\n search.trim().length > 0 &&\n !resolvedOptions.some(\n (o) =>\n o.label.toLowerCase() === search.trim().toLowerCase() ||\n o.value === search.trim(),\n );\n\n // ── Selection ──────────────────────────────────────────\n const isSelected = (value: string): boolean => {\n if (multiple) return currentMulti.includes(value);\n return currentSingle === value;\n };\n\n const toggleOption = useCallback(\n (value: string) => {\n if (multiple) {\n const next = currentMulti.includes(value)\n ? currentMulti.filter((v) => v !== value)\n : [...currentMulti, value];\n setMultiValues(next);\n onValuesChange?.(next);\n } else {\n setSingleValue(value);\n onValueChange?.(value);\n close();\n }\n },\n [multiple, currentMulti, onValuesChange, onValueChange, close],\n );\n\n const handleCreate = useCallback(() => {\n const label = search.trim();\n if (!label) return;\n const value = label;\n const newOption: InputOption = { value, label };\n setCreatedOptions((prev) => [...prev, newOption]);\n onCreate?.(label);\n setSearch(\"\");\n if (multiple) {\n const next = [...currentMulti, value];\n setMultiValues(next);\n onValuesChange?.(next);\n // Keep dropdown open for multi-select; refocus input\n requestAnimationFrame(() => searchRef.current?.focus());\n } else {\n setSingleValue(value);\n onValueChange?.(value);\n close();\n }\n }, [search, multiple, currentMulti, onCreate, onValuesChange, onValueChange, close]);\n\n // ── Display text ───────────────────────────────────────\n const getDisplayText = (): string => {\n if (multiple) {\n if (currentMulti.length === 0) return placeholder;\n if (currentMulti.length === 1) {\n const opt = resolvedOptions.find((o) => o.value === currentMulti[0]);\n return opt?.label ?? currentMulti[0];\n }\n return `${currentMulti.length} ${selectedSuffix}`;\n }\n if (!currentSingle) return placeholder;\n const opt = resolvedOptions.find((o) => o.value === currentSingle);\n return opt?.label ?? currentSingle;\n };\n\n const hasValue = multiple ? currentMulti.length > 0 : !!currentSingle;\n\n // ── Keyboard ───────────────────────────────────────────\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (!open) {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setOpen(true);\n }\n return;\n }\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setActiveIndex((i) => Math.min(i + 1, filtered.length - 1));\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActiveIndex((i) => Math.max(i - 1, 0));\n } else if (e.key === \"Enter\") {\n // Confirming an IME composition in the search box is not a pick.\n if (isImeComposing(e)) return;\n if (activeIndex >= 0) {\n e.preventDefault();\n const item = filtered[activeIndex];\n if (item && !item.disabled) toggleOption(item.value as string);\n } else if (canCreate) {\n e.preventDefault();\n handleCreate();\n }\n }\n };\n\n // ── View mode ──────────────────────────────────────────\n if (!showControl) {\n const labels = multiple\n ? currentMulti.map(\n (v) => resolvedOptions.find((o) => o.value === v)?.label ?? v,\n )\n : currentSingle\n ? [resolvedOptions.find((o) => o.value === currentSingle)?.label ?? currentSingle]\n : [];\n const display = (\n <DisplayValue size={size} interactive={interactive} onActivate={enterEdit}>\n {labels.join(\", \")}\n </DisplayValue>\n );\n if (label || error || description) {\n return (\n <Field\n label={label}\n labelHidden={labelHidden}\n description={description}\n error={error}\n required={required}\n htmlFor={selectId}\n size={size}\n >\n {display}\n </Field>\n );\n }\n return display;\n }\n\n // ── Render ─────────────────────────────────────────────\n const trigger = (\n <button\n ref={anchorRef}\n type=\"button\"\n id={selectId}\n disabled={disabled}\n autoFocus={interactive}\n onClick={() => setOpen((o) => !o)}\n onKeyDown={handleKeyDown}\n role=\"combobox\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n data-react-fancy-select=\"\"\n data-variant=\"listbox\"\n className={cn(\n inputBaseClasses,\n inputSizeClasses[size],\n dirtyClasses(dirty),\n errorClasses(error),\n \"flex w-full cursor-pointer items-center justify-between gap-2 text-start\",\n !hasValue && \"text-[color:var(--fancy-text-faint,var(--color-zinc-400))] dark:text-[color:var(--fancy-text-faint-dark,var(--color-zinc-500))]\",\n className,\n )}\n >\n <span className=\"truncate\">{getDisplayText()}</span>\n <svg\n className={cn(\"h-4 w-4 shrink-0 text-zinc-400 transition-transform\", open && \"rotate-180\")}\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </button>\n );\n\n const dropdown = open && (\n <Portal>\n <div\n ref={listRef}\n role=\"listbox\"\n aria-multiselectable={multiple || undefined}\n dir={position.dir}\n className=\"fixed z-50 max-h-60 min-w-[8rem] overflow-y-auto rounded-xl border border-[color:var(--fancy-border,var(--color-zinc-200))] bg-[color:var(--fancy-surface,var(--color-white))] p-1 shadow-lg dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:bg-[color:var(--fancy-surface-dark,var(--color-zinc-900))] dark:shadow-zinc-950/50 fancy-scale-in\"\n style={{\n left: position.x,\n top: position.y,\n width: anchorRef.current?.offsetWidth,\n }}\n >\n {textInputEnabled && (\n <div className=\"px-2 pb-1 pt-1\">\n <input\n ref={searchRef}\n type=\"text\"\n value={search}\n onChange={(e) => {\n setSearch(e.target.value);\n setActiveIndex(-1);\n }}\n onKeyDown={handleKeyDown}\n placeholder={creatable && !searchable ? \"Type to add…\" : \"Search…\"}\n className=\"w-full rounded-md border-0 bg-[color:var(--fancy-surface-muted,var(--color-zinc-100))] px-2.5 py-1.5 text-sm text-[color:var(--fancy-text,var(--color-zinc-900))] placeholder:text-[color:var(--fancy-text-faint,var(--color-zinc-400))] outline-none dark:bg-[color:var(--fancy-surface-muted-dark,var(--color-zinc-800))] dark:text-[color:var(--fancy-text-dark,var(--color-zinc-100))] dark:placeholder:text-[color:var(--fancy-text-faint-dark,var(--color-zinc-500))]\"\n />\n </div>\n )}\n\n {canCreate && (\n <button\n type=\"button\"\n onClick={handleCreate}\n className=\"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-start text-sm text-blue-600 hover:bg-blue-50 dark:text-blue-400 dark:hover:bg-blue-500/10\"\n >\n <svg className=\"h-4 w-4 shrink-0\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" d=\"M10 3a.75.75 0 01.75.75v5.5h5.5a.75.75 0 010 1.5h-5.5v5.5a.75.75 0 01-1.5 0v-5.5h-5.5a.75.75 0 010-1.5h5.5v-5.5A.75.75 0 0110 3z\" clipRule=\"evenodd\" />\n </svg>\n <span className=\"truncate\">{createLabel} &quot;{search.trim()}&quot;</span>\n </button>\n )}\n\n {filtered.length === 0 && !canCreate ? (\n <div className=\"px-3 py-2 text-sm text-zinc-400\">No results found</div>\n ) : filtered.length === 0 ? null : (\n filtered.map((option, i) => {\n const selected = isSelected(option.value as string);\n return (\n <button\n key={option.value as string}\n type=\"button\"\n role=\"option\"\n aria-selected={selected}\n disabled={option.disabled}\n onClick={() => toggleOption(option.value as string)}\n className={cn(\n \"flex w-full items-center gap-2 rounded-lg px-3 py-2 text-start text-sm transition-colors\",\n i === activeIndex\n ? \"bg-[color:var(--fancy-surface-muted,var(--color-zinc-100))] dark:bg-[color:var(--fancy-surface-muted-dark,var(--color-zinc-800))]\"\n : \"hover:bg-[color:var(--fancy-surface-hover,var(--color-zinc-50))] dark:hover:bg-[color:var(--fancy-surface-hover-dark,color-mix(in_oklab,var(--color-zinc-800)_50%,transparent))]\",\n selected\n ? \"text-[color:var(--fancy-text,var(--color-zinc-900))] dark:text-[color:var(--fancy-text-dark,var(--color-zinc-100))]\"\n : \"text-[color:var(--fancy-text-soft,var(--color-zinc-700))] dark:text-[color:var(--fancy-text-soft-dark,var(--color-zinc-300))]\",\n option.disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {/* Indicator */}\n {indicator === \"checkbox\" ? (\n <span\n className={cn(\n \"flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-colors\",\n selected\n ? \"border-blue-500 bg-blue-500 text-white dark:border-blue-400 dark:bg-blue-400\"\n : \"border-zinc-300 dark:border-zinc-600\",\n )}\n >\n {selected && (\n <svg className=\"h-3 w-3\" viewBox=\"0 0 12 12\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points=\"2.5 6 5 8.5 9.5 3.5\" />\n </svg>\n )}\n </span>\n ) : (\n <span className=\"flex h-4 w-4 shrink-0 items-center justify-center\">\n {selected && (\n <svg className=\"h-4 w-4 text-blue-500 dark:text-blue-400\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path fillRule=\"evenodd\" d=\"M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z\" clipRule=\"evenodd\" />\n </svg>\n )}\n </span>\n )}\n\n {/* Label + description */}\n <span className=\"min-w-0 flex-1\">\n <span className=\"block truncate\">{option.label}</span>\n {option.description && (\n <span className=\"block truncate text-xs text-[color:var(--fancy-text-faint,var(--color-zinc-400))] dark:text-[color:var(--fancy-text-faint-dark,var(--color-zinc-500))]\">{option.description}</span>\n )}\n </span>\n </button>\n );\n })\n )}\n </div>\n </Portal>\n );\n\n const content = (\n <div\n className=\"relative\"\n onBlur={(e) => {\n // The popover is portaled (focus moves out of this wrapper), so only\n // exit edit when the dropdown is closed and focus has truly left.\n if (interactive && !open && !e.currentTarget.contains(e.relatedTarget as Node)) {\n exitEdit();\n }\n }}\n >\n {trigger}\n {dropdown}\n </div>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n labelHidden={labelHidden}\n description={description}\n error={error}\n required={required}\n htmlFor={selectId}\n size={size}\n >\n {content}\n </Field>\n );\n }\n\n return content;\n },\n);\n\nListboxSelect.displayName = \"ListboxSelect\";\n\n// ── Public component ────────────────────────────────────────────────────\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (props, ref) => {\n const variant = props.variant ?? (props.multiple ? \"listbox\" : \"native\");\n\n if (variant === \"listbox\") {\n return <ListboxSelect {...props} ref={ref} />;\n }\n return <NativeSelect {...props} ref={ref} />;\n },\n);\n\nSelect.displayName = \"Select\";\n"]}
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
 
3
+ var chunk36IC3NDN_cjs = require('./chunk-36IC3NDN.cjs');
3
4
  var chunkZU5Q77OT_cjs = require('./chunk-ZU5Q77OT.cjs');
4
5
  var react = require('react');
5
6
  var jsxRuntime = require('react/jsx-runtime');
@@ -60,8 +61,9 @@ var ResizablePanels = react.forwardRef(
60
61
  const keyChanged = react.useRef(false);
61
62
  const onKeyDown = (e) => {
62
63
  if (disabled) return;
63
- const dec = horizontal ? "ArrowLeft" : "ArrowUp";
64
- const inc = horizontal ? "ArrowRight" : "ArrowDown";
64
+ const rtl = horizontal && chunk36IC3NDN_cjs.isRtl(e.currentTarget);
65
+ const dec = horizontal ? rtl ? "ArrowRight" : "ArrowLeft" : "ArrowUp";
66
+ const inc = horizontal ? rtl ? "ArrowLeft" : "ArrowRight" : "ArrowDown";
65
67
  const by = e.shiftKey ? largeStep : step;
66
68
  let next;
67
69
  if (e.key === dec) next = latest.current - by;
@@ -86,7 +88,7 @@ var ResizablePanels = react.forwardRef(
86
88
  if (!rect) return null;
87
89
  const size = horizontal ? rect.width : rect.height;
88
90
  if (!size) return null;
89
- const offset = horizontal ? clientX - rect.left : clientY - rect.top;
91
+ const offset = horizontal ? chunk36IC3NDN_cjs.isRtl(rootRef.current) ? rect.right - clientX : clientX - rect.left : clientY - rect.top;
90
92
  return offset / size * 100;
91
93
  };
92
94
  const onPointerDown = (e) => {
@@ -182,5 +184,5 @@ var ResizablePanels = react.forwardRef(
182
184
  ResizablePanels.displayName = "ResizablePanels";
183
185
 
184
186
  exports.ResizablePanels = ResizablePanels;
185
- //# sourceMappingURL=chunk-CEFK54WP.cjs.map
186
- //# sourceMappingURL=chunk-CEFK54WP.cjs.map
187
+ //# sourceMappingURL=chunk-MDAI54AG.cjs.map
188
+ //# sourceMappingURL=chunk-MDAI54AG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ResizablePanels/ResizablePanels.tsx"],"names":["forwardRef","useState","useRef","useCallback","useId","isRtl","Children","jsxs","cn","jsx"],"mappings":"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","file":"chunk-MDAI54AG.cjs","sourcesContent":["import { Children, forwardRef, useCallback, useId, useRef, useState } from \"react\";\nimport type { KeyboardEvent, PointerEvent } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { isRtl } from \"../../utils/direction\";\nimport type { ResizablePanelsProps } from \"./ResizablePanels.types\";\n\nfunction clamp(n: number, lo: number, hi: number): number {\n return Math.min(hi, Math.max(lo, n));\n}\n\n/** Two decimals: precise enough for a pixel on a 4K row, tidy in JSON. */\nfunction tidy(n: number): number {\n return Math.round(n * 100) / 100;\n}\n\nconst SEPARATOR_BASE =\n \"relative shrink-0 touch-none select-none outline-none transition-colors \" +\n \"bg-[color:var(--fancy-border,var(--color-zinc-200))] dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))] \" +\n \"focus-visible:bg-[color:var(--fancy-focus,var(--color-blue-500))] dark:focus-visible:bg-[color:var(--fancy-focus-dark,var(--color-blue-400))] \" +\n \"focus-visible:ring-2 focus-visible:ring-[color:var(--fancy-focus,var(--color-blue-500))]/40 dark:focus-visible:ring-[color:var(--fancy-focus-dark,var(--color-blue-400))]/40\";\n\nconst SEPARATOR_ACTIVE =\n \"hover:bg-[color:var(--fancy-focus,var(--color-blue-500))] dark:hover:bg-[color:var(--fancy-focus-dark,var(--color-blue-400))]\";\n\n/**\n * Two panels and a draggable, keyboard-operable separator between them — the\n * W3C window-splitter pattern\n * (https://www.w3.org/WAI/ARIA/apg/patterns/windowsplitter/).\n *\n * `value` is the PRIMARY (first) panel's share of the container, as a\n * percentage. The separator is `role=\"separator\"` with `aria-valuenow/min/max`,\n * `aria-controls` pointing at the primary panel, and a tab stop. Arrow keys\n * along the drag axis move it by `step`, Shift + Arrow by `largeStep`, Home /\n * End jump to `min` / `max`. Pointer and touch drags use pointer capture, so a\n * fast drag that leaves the bar keeps resizing.\n *\n * `onValueChange` fires continuously; `onValueCommit` fires once per gesture\n * (pointer release, key release) so a host can persist a per-user size without\n * writing on every frame. The host owns persistence.\n */\nexport const ResizablePanels = forwardRef<HTMLDivElement, ResizablePanelsProps>(\n (\n {\n children,\n value,\n defaultValue = 50,\n onValueChange,\n onValueCommit,\n min = 10,\n max = 90,\n orientation = \"horizontal\",\n step = 5,\n largeStep = 20,\n label = \"Resize panels\",\n disabled = false,\n className,\n ...props\n },\n forwardedRef,\n ) => {\n // Never past the container, whatever min/max say.\n const lo = clamp(min, 0, 100);\n const hi = Math.max(lo, clamp(max, 0, 100));\n\n const [internal, setInternal] = useState(defaultValue);\n const controlled = value !== undefined;\n const current = tidy(clamp(controlled ? value : internal, lo, hi));\n\n /*\n * The value most recently ASKED FOR, re-synced to what is rendered on every\n * render. Several key repeats can land before React re-renders; reading the\n * render-time value would make each of them compute from the same start.\n */\n const latest = useRef(current);\n latest.current = current;\n\n const rootRef = useRef<HTMLDivElement | null>(null);\n const setRefs = useCallback(\n (node: HTMLDivElement | null) => {\n rootRef.current = node;\n if (typeof forwardedRef === \"function\") forwardedRef(node);\n else if (forwardedRef) forwardedRef.current = node;\n },\n [forwardedRef],\n );\n\n const firstId = useId();\n const horizontal = orientation === \"horizontal\";\n\n const request = useCallback(\n (next: number) => {\n const v = tidy(clamp(next, lo, hi));\n if (v === latest.current) return;\n latest.current = v;\n if (!controlled) setInternal(v);\n onValueChange?.(v);\n },\n [controlled, hi, lo, onValueChange],\n );\n\n // --- keyboard -----------------------------------------------------------\n\n const keyChanged = useRef(false);\n\n const onKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return;\n // Side by side, the first panel sits at the inline START: the right in\n // RTL. The separator moves the way the arrow points, so ArrowLeft GROWS\n // the first panel there.\n const rtl = horizontal && isRtl(e.currentTarget);\n const dec = horizontal ? (rtl ? \"ArrowRight\" : \"ArrowLeft\") : \"ArrowUp\";\n const inc = horizontal ? (rtl ? \"ArrowLeft\" : \"ArrowRight\") : \"ArrowDown\";\n const by = e.shiftKey ? largeStep : step;\n let next: number;\n if (e.key === dec) next = latest.current - by;\n else if (e.key === inc) next = latest.current + by;\n else if (e.key === \"Home\") next = lo;\n else if (e.key === \"End\") next = hi;\n else return;\n e.preventDefault();\n const before = latest.current;\n request(next);\n if (latest.current !== before) keyChanged.current = true;\n };\n\n const onKeyUp = () => {\n if (!keyChanged.current) return;\n keyChanged.current = false;\n onValueCommit?.(latest.current);\n };\n\n // --- pointer ------------------------------------------------------------\n\n const drag = useRef<{ pointerId: number; start: number } | null>(null);\n const [dragging, setDragging] = useState(false);\n\n const valueAt = (clientX: number, clientY: number): number | null => {\n const rect = rootRef.current?.getBoundingClientRect();\n if (!rect) return null;\n const size = horizontal ? rect.width : rect.height;\n if (!size) return null;\n // Measured from the inline start, which is the right edge in RTL.\n const offset = horizontal\n ? isRtl(rootRef.current) ? rect.right - clientX : clientX - rect.left\n : clientY - rect.top;\n return (offset / size) * 100;\n };\n\n const onPointerDown = (e: PointerEvent<HTMLDivElement>) => {\n if (disabled || e.button !== 0) return;\n e.preventDefault();\n e.currentTarget.setPointerCapture?.(e.pointerId);\n drag.current = { pointerId: e.pointerId, start: latest.current };\n setDragging(true);\n };\n\n const onPointerMove = (e: PointerEvent<HTMLDivElement>) => {\n if (!drag.current || drag.current.pointerId !== e.pointerId) return;\n const v = valueAt(e.clientX, e.clientY);\n if (v !== null) request(v);\n };\n\n const endDrag = (e: PointerEvent<HTMLDivElement>) => {\n const d = drag.current;\n if (!d || d.pointerId !== e.pointerId) return;\n drag.current = null;\n setDragging(false);\n if (e.currentTarget.hasPointerCapture?.(e.pointerId)) {\n e.currentTarget.releasePointerCapture?.(e.pointerId);\n }\n if (latest.current !== d.start) onValueCommit?.(latest.current);\n };\n\n const items = Children.toArray(children);\n\n return (\n <div\n ref={setRefs}\n {...props}\n data-react-fancy-resizable-panels=\"\"\n data-orientation={orientation}\n data-dragging={dragging ? \"\" : undefined}\n data-disabled={disabled ? \"\" : undefined}\n className={cn(\n \"flex h-full w-full min-h-0 min-w-0 overflow-hidden\",\n horizontal ? \"flex-row\" : \"flex-col\",\n dragging && (horizontal ? \"cursor-col-resize select-none\" : \"cursor-row-resize select-none\"),\n className,\n )}\n >\n <div\n id={firstId}\n data-react-fancy-resizable-panels-panel=\"first\"\n className=\"min-h-0 min-w-0 overflow-auto\"\n style={{ flexBasis: `${current}%`, flexGrow: 0, flexShrink: 0 }}\n >\n {items[0]}\n </div>\n <div\n role=\"separator\"\n data-react-fancy-resizable-panels-separator=\"\"\n aria-orientation={horizontal ? \"vertical\" : \"horizontal\"}\n aria-valuenow={current}\n aria-valuemin={lo}\n aria-valuemax={hi}\n aria-controls={firstId}\n aria-label={label}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : 0}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n onPointerDown={onPointerDown}\n onPointerMove={onPointerMove}\n onPointerUp={endDrag}\n onPointerCancel={endDrag}\n onLostPointerCapture={endDrag}\n className={cn(\n SEPARATOR_BASE,\n // A 1px line with a 12px hit area, so it is easy to grab by touch.\n horizontal\n ? \"w-px before:absolute before:inset-y-0 before:-left-1.5 before:-right-1.5\"\n : \"h-px before:absolute before:inset-x-0 before:-top-1.5 before:-bottom-1.5\",\n disabled\n ? \"cursor-default opacity-50\"\n : cn(SEPARATOR_ACTIVE, horizontal ? \"cursor-col-resize\" : \"cursor-row-resize\"),\n )}\n />\n <div\n data-react-fancy-resizable-panels-panel=\"second\"\n className=\"min-h-0 min-w-0 flex-1 overflow-auto\"\n >\n {items[1]}\n </div>\n </div>\n );\n },\n);\n\nResizablePanels.displayName = \"ResizablePanels\";\n"]}
@@ -54,7 +54,7 @@ function ChatDrawer({
54
54
  onClick: handleToggle,
55
55
  "aria-label": open ? "Collapse drawer" : "Expand drawer",
56
56
  "aria-expanded": open,
57
- className: "ml-auto inline-flex h-6 w-6 items-center justify-center rounded-full text-zinc-400 transition hover:bg-[color:var(--fancy-surface-muted,var(--color-zinc-100))] hover:text-zinc-700 dark:hover:bg-[color:var(--fancy-surface-muted-dark,var(--color-zinc-800))] dark:hover:text-zinc-200",
57
+ className: "ms-auto inline-flex h-6 w-6 items-center justify-center rounded-full text-zinc-400 transition hover:bg-[color:var(--fancy-surface-muted,var(--color-zinc-100))] hover:text-zinc-700 dark:hover:bg-[color:var(--fancy-surface-muted-dark,var(--color-zinc-800))] dark:hover:text-zinc-200",
58
58
  children: /* @__PURE__ */ jsx(
59
59
  Icon,
60
60
  {
@@ -77,5 +77,5 @@ function ChatDrawer({
77
77
  }
78
78
 
79
79
  export { ChatDrawer };
80
- //# sourceMappingURL=chunk-WE5WGVVX.js.map
81
- //# sourceMappingURL=chunk-WE5WGVVX.js.map
80
+ //# sourceMappingURL=chunk-MKDTXMCE.js.map
81
+ //# sourceMappingURL=chunk-MKDTXMCE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ChatDrawer/ChatDrawer.tsx"],"names":[],"mappings":";;;;AA+DO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB,GAAA;AAAA,EAChB;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,YAAA,GAAe,YAAY,MAAM;AACrC,IAAA,QAAA,GAAW,CAAC,IAAI,CAAA;AAAA,EAClB,CAAA,EAAG,CAAC,QAAA,EAAU,IAAI,CAAC,CAAA;AAEnB,EAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EACH,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uCAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,qCAAA,EACZ,eAAK,GAAA,CAAI,CAAC,KAAK,CAAA,KAAM;AACpB,QAAA,MAAM,MAAA,GAAS,IAAI,EAAA,KAAO,WAAA;AAC1B,QAAA,MAAM,SAAS,GAAA,CAAI,MAAA,KAAW,OAAO,IAAA,GAAO,GAAA,CAAI,UAAU,CAAA,GAAI,CAAA;AAC9D,QAAA,uBACE,IAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,MAAM,WAAA,CAAY,GAAA,CAAI,EAAE,CAAA;AAAA,YACjC,SAAA,EAAW;AAAA,cACT,2GAAA;AAAA,cACA,SACI,4CAAA,GACA;AAAA,aACN,CAAE,KAAK,GAAG,CAAA;AAAA,YACV,cAAA,EAAc,MAAA;AAAA,YAEb,QAAA,EAAA;AAAA,cAAA,MAAA,KAAW,IAAA,oBACV,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW;AAAA,oBACT,wFAAA;AAAA,oBACA,SACI,wBAAA,GACA;AAAA,mBACN,CAAE,KAAK,GAAG,CAAA;AAAA,kBAET,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,8BAEF,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAA0B,cAAI,KAAA,EAAM;AAAA;AAAA,WAAA;AAAA,UAvB/C,GAAA,CAAI;AAAA,SAwBX;AAAA,MAEJ,CAAC,CAAA,EACH,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,YAAA;AAAA,UACT,YAAA,EAAY,OAAO,iBAAA,GAAoB,eAAA;AAAA,UACvC,eAAA,EAAe,IAAA;AAAA,UACf,SAAA,EAAU,0RAAA;AAAA,UAEV,QAAA,kBAAA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAM,OAAO,cAAA,GAAiB,YAAA;AAAA,cAC9B,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AACF,KAAA,EACF,CAAA;AAAA,IAEC,IAAA,oBACC,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,eAAA;AAAA,QACV,KAAA,EAAO,EAAE,SAAA,EAAW,aAAA,EAAc;AAAA,QAEjC;AAAA;AAAA;AACH,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-WE5WGVVX.js","sourcesContent":["import { type ReactNode, useCallback } from \"react\";\nimport { Icon } from \"../Icon\";\n\n/**\n * ChatDrawer — tabbed, collapsible panel that sits *above* a `PromptInput`\n * (via the input's `aboveInput` slot) so the drawer and composer share one\n * rounded shell. Each tab gets a numbered chip and a content panel; only\n * one panel renders at a time.\n *\n * <PromptInput\n * aboveInput={\n * <ChatDrawer\n * tabs={[\n * { id: \"files\", label: \"Files\" },\n * { id: \"tools\", label: \"Chat Tools\" },\n * { id: \"prompts\", label: \"Chat Prompts\" },\n * { id: \"deal\", label: \"IBM Analytics Platform\" },\n * ]}\n * activeTabId={tab}\n * onTabChange={setTab}\n * open={open}\n * onToggle={setOpen}\n * >\n * {tab === \"tools\" && <ToolsGrid />}\n * {tab === \"deal\" && <DealCard />}\n * </ChatDrawer>\n * }\n * budgetTokens={200_000}\n * onSubmit={(text) => send(text)}\n * />\n *\n * The drawer is purely presentational and slot-driven — you decide what\n * each tab shows. Tab order in the numbered chips is the order you pass.\n */\n\nexport type ChatDrawerTab = {\n /** Stable id — used as the React key and as `activeTabId`. */\n id: string;\n /** Human label rendered on the chip. */\n label: string;\n /**\n * Optional override for the numbered prefix (defaults to position +1).\n * Set to `null` to hide the number entirely (e.g. for a context-specific\n * tab like the deal one in the screenshots).\n */\n number?: number | null;\n};\n\nexport interface ChatDrawerProps {\n tabs: ChatDrawerTab[];\n activeTabId: string;\n onTabChange: (id: string) => void;\n /** Body open/closed. Default true. */\n open?: boolean;\n /** Called when the chevron is clicked. */\n onToggle?: (open: boolean) => void;\n /** Body content for the active tab. */\n children?: ReactNode;\n /** Min height of the body when open, in px. Default 140. */\n minBodyHeight?: number;\n className?: string;\n}\n\nexport function ChatDrawer({\n tabs,\n activeTabId,\n onTabChange,\n open = true,\n onToggle,\n children,\n minBodyHeight = 140,\n className,\n}: ChatDrawerProps) {\n const handleToggle = useCallback(() => {\n onToggle?.(!open);\n }, [onToggle, open]);\n\n return (\n <div className={className}>\n <div className=\"flex items-center gap-1.5 px-2.5 py-2\">\n <div className=\"flex flex-wrap items-center gap-1.5\">\n {tabs.map((tab, i) => {\n const active = tab.id === activeTabId;\n const number = tab.number === null ? null : tab.number ?? i + 1;\n return (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => onTabChange(tab.id)}\n className={[\n \"group inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-[12px] font-medium transition\",\n active\n ? \"border-violet-500 bg-violet-500 text-white\"\n : \"border-[color:var(--fancy-border,var(--color-zinc-200))] bg-transparent text-[color:var(--fancy-text-soft,var(--color-zinc-700))] hover:border-zinc-300 hover:bg-zinc-50 dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:text-[color:var(--fancy-text-soft-dark,var(--color-zinc-300))] dark:hover:border-zinc-600 dark:hover:bg-zinc-800\",\n ].join(\" \")}\n aria-pressed={active}\n >\n {number !== null && (\n <span\n className={[\n \"inline-flex h-4 w-4 items-center justify-center rounded-full text-[10px] font-semibold\",\n active\n ? \"bg-white/20 text-white\"\n : \"bg-[color:var(--fancy-border,var(--color-zinc-200))] text-zinc-600 group-hover:bg-zinc-300 dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:text-zinc-300\",\n ].join(\" \")}\n >\n {number}\n </span>\n )}\n <span className=\"truncate max-w-[180px]\">{tab.label}</span>\n </button>\n );\n })}\n </div>\n <button\n type=\"button\"\n onClick={handleToggle}\n aria-label={open ? \"Collapse drawer\" : \"Expand drawer\"}\n aria-expanded={open}\n className=\"ml-auto inline-flex h-6 w-6 items-center justify-center rounded-full text-zinc-400 transition hover:bg-[color:var(--fancy-surface-muted,var(--color-zinc-100))] hover:text-zinc-700 dark:hover:bg-[color:var(--fancy-surface-muted-dark,var(--color-zinc-800))] dark:hover:text-zinc-200\"\n >\n <Icon\n name={open ? \"chevron-down\" : \"chevron-up\"}\n className=\"h-3.5 w-3.5\"\n />\n </button>\n </div>\n\n {open && (\n <div\n className=\"px-2.5 pb-2.5\"\n style={{ minHeight: minBodyHeight }}\n >\n {children}\n </div>\n )}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/ChatDrawer/ChatDrawer.tsx"],"names":[],"mappings":";;;;AA+DO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB,GAAA;AAAA,EAChB;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,YAAA,GAAe,YAAY,MAAM;AACrC,IAAA,QAAA,GAAW,CAAC,IAAI,CAAA;AAAA,EAClB,CAAA,EAAG,CAAC,QAAA,EAAU,IAAI,CAAC,CAAA;AAEnB,EAAA,uBACE,IAAA,CAAC,SAAI,SAAA,EACH,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uCAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,qCAAA,EACZ,eAAK,GAAA,CAAI,CAAC,KAAK,CAAA,KAAM;AACpB,QAAA,MAAM,MAAA,GAAS,IAAI,EAAA,KAAO,WAAA;AAC1B,QAAA,MAAM,SAAS,GAAA,CAAI,MAAA,KAAW,OAAO,IAAA,GAAO,GAAA,CAAI,UAAU,CAAA,GAAI,CAAA;AAC9D,QAAA,uBACE,IAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,MAAM,WAAA,CAAY,GAAA,CAAI,EAAE,CAAA;AAAA,YACjC,SAAA,EAAW;AAAA,cACT,2GAAA;AAAA,cACA,SACI,4CAAA,GACA;AAAA,aACN,CAAE,KAAK,GAAG,CAAA;AAAA,YACV,cAAA,EAAc,MAAA;AAAA,YAEb,QAAA,EAAA;AAAA,cAAA,MAAA,KAAW,IAAA,oBACV,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW;AAAA,oBACT,wFAAA;AAAA,oBACA,SACI,wBAAA,GACA;AAAA,mBACN,CAAE,KAAK,GAAG,CAAA;AAAA,kBAET,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,8BAEF,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAA0B,cAAI,KAAA,EAAM;AAAA;AAAA,WAAA;AAAA,UAvB/C,GAAA,CAAI;AAAA,SAwBX;AAAA,MAEJ,CAAC,CAAA,EACH,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,YAAA;AAAA,UACT,YAAA,EAAY,OAAO,iBAAA,GAAoB,eAAA;AAAA,UACvC,eAAA,EAAe,IAAA;AAAA,UACf,SAAA,EAAU,0RAAA;AAAA,UAEV,QAAA,kBAAA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAM,OAAO,cAAA,GAAiB,YAAA;AAAA,cAC9B,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AACF,KAAA,EACF,CAAA;AAAA,IAEC,IAAA,oBACC,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,eAAA;AAAA,QACV,KAAA,EAAO,EAAE,SAAA,EAAW,aAAA,EAAc;AAAA,QAEjC;AAAA;AAAA;AACH,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-MKDTXMCE.js","sourcesContent":["import { type ReactNode, useCallback } from \"react\";\nimport { Icon } from \"../Icon\";\n\n/**\n * ChatDrawer — tabbed, collapsible panel that sits *above* a `PromptInput`\n * (via the input's `aboveInput` slot) so the drawer and composer share one\n * rounded shell. Each tab gets a numbered chip and a content panel; only\n * one panel renders at a time.\n *\n * <PromptInput\n * aboveInput={\n * <ChatDrawer\n * tabs={[\n * { id: \"files\", label: \"Files\" },\n * { id: \"tools\", label: \"Chat Tools\" },\n * { id: \"prompts\", label: \"Chat Prompts\" },\n * { id: \"deal\", label: \"IBM Analytics Platform\" },\n * ]}\n * activeTabId={tab}\n * onTabChange={setTab}\n * open={open}\n * onToggle={setOpen}\n * >\n * {tab === \"tools\" && <ToolsGrid />}\n * {tab === \"deal\" && <DealCard />}\n * </ChatDrawer>\n * }\n * budgetTokens={200_000}\n * onSubmit={(text) => send(text)}\n * />\n *\n * The drawer is purely presentational and slot-driven — you decide what\n * each tab shows. Tab order in the numbered chips is the order you pass.\n */\n\nexport type ChatDrawerTab = {\n /** Stable id — used as the React key and as `activeTabId`. */\n id: string;\n /** Human label rendered on the chip. */\n label: string;\n /**\n * Optional override for the numbered prefix (defaults to position +1).\n * Set to `null` to hide the number entirely (e.g. for a context-specific\n * tab like the deal one in the screenshots).\n */\n number?: number | null;\n};\n\nexport interface ChatDrawerProps {\n tabs: ChatDrawerTab[];\n activeTabId: string;\n onTabChange: (id: string) => void;\n /** Body open/closed. Default true. */\n open?: boolean;\n /** Called when the chevron is clicked. */\n onToggle?: (open: boolean) => void;\n /** Body content for the active tab. */\n children?: ReactNode;\n /** Min height of the body when open, in px. Default 140. */\n minBodyHeight?: number;\n className?: string;\n}\n\nexport function ChatDrawer({\n tabs,\n activeTabId,\n onTabChange,\n open = true,\n onToggle,\n children,\n minBodyHeight = 140,\n className,\n}: ChatDrawerProps) {\n const handleToggle = useCallback(() => {\n onToggle?.(!open);\n }, [onToggle, open]);\n\n return (\n <div className={className}>\n <div className=\"flex items-center gap-1.5 px-2.5 py-2\">\n <div className=\"flex flex-wrap items-center gap-1.5\">\n {tabs.map((tab, i) => {\n const active = tab.id === activeTabId;\n const number = tab.number === null ? null : tab.number ?? i + 1;\n return (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => onTabChange(tab.id)}\n className={[\n \"group inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-[12px] font-medium transition\",\n active\n ? \"border-violet-500 bg-violet-500 text-white\"\n : \"border-[color:var(--fancy-border,var(--color-zinc-200))] bg-transparent text-[color:var(--fancy-text-soft,var(--color-zinc-700))] hover:border-zinc-300 hover:bg-zinc-50 dark:border-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:text-[color:var(--fancy-text-soft-dark,var(--color-zinc-300))] dark:hover:border-zinc-600 dark:hover:bg-zinc-800\",\n ].join(\" \")}\n aria-pressed={active}\n >\n {number !== null && (\n <span\n className={[\n \"inline-flex h-4 w-4 items-center justify-center rounded-full text-[10px] font-semibold\",\n active\n ? \"bg-white/20 text-white\"\n : \"bg-[color:var(--fancy-border,var(--color-zinc-200))] text-zinc-600 group-hover:bg-zinc-300 dark:bg-[color:var(--fancy-border-dark,var(--color-zinc-700))] dark:text-zinc-300\",\n ].join(\" \")}\n >\n {number}\n </span>\n )}\n <span className=\"truncate max-w-[180px]\">{tab.label}</span>\n </button>\n );\n })}\n </div>\n <button\n type=\"button\"\n onClick={handleToggle}\n aria-label={open ? \"Collapse drawer\" : \"Expand drawer\"}\n aria-expanded={open}\n className=\"ms-auto inline-flex h-6 w-6 items-center justify-center rounded-full text-zinc-400 transition hover:bg-[color:var(--fancy-surface-muted,var(--color-zinc-100))] hover:text-zinc-700 dark:hover:bg-[color:var(--fancy-surface-muted-dark,var(--color-zinc-800))] dark:hover:text-zinc-200\"\n >\n <Icon\n name={open ? \"chevron-down\" : \"chevron-up\"}\n className=\"h-3.5 w-3.5\"\n />\n </button>\n </div>\n\n {open && (\n <div\n className=\"px-2.5 pb-2.5\"\n style={{ minHeight: minBodyHeight }}\n >\n {children}\n </div>\n )}\n </div>\n );\n}\n"]}
@@ -3,7 +3,7 @@ import { forwardRef } from 'react';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
4
 
5
5
  var StatList = forwardRef(
6
- ({ items, align = "right", className, ...props }, ref) => {
6
+ ({ items, align = "end", className, ...props }, ref) => {
7
7
  if (items.length === 0) return null;
8
8
  return /* @__PURE__ */ jsx(
9
9
  "div",
@@ -14,7 +14,13 @@ var StatList = forwardRef(
14
14
  "data-align": align,
15
15
  className: cn(
16
16
  "flex flex-col gap-0.5 font-mono text-[11.5px] text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]",
17
- align === "right" ? "items-end text-right" : "items-start text-left",
17
+ {
18
+ start: "items-start text-start",
19
+ end: "items-end text-end",
20
+ // Physical: flex alignment is logical, so RTL swaps it back.
21
+ left: "items-start rtl:items-end text-left",
22
+ right: "items-end rtl:items-start text-right"
23
+ }[align],
18
24
  className
19
25
  ),
20
26
  children: items.map((item, i) => /* @__PURE__ */ jsxs(
@@ -36,5 +42,5 @@ var StatList = forwardRef(
36
42
  StatList.displayName = "StatList";
37
43
 
38
44
  export { StatList };
39
- //# sourceMappingURL=chunk-SXXDTW7S.js.map
40
- //# sourceMappingURL=chunk-SXXDTW7S.js.map
45
+ //# sourceMappingURL=chunk-NETUI353.js.map
46
+ //# sourceMappingURL=chunk-NETUI353.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/StatList/StatList.tsx"],"names":[],"mappings":";;;;AAoBO,IAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CAAC,EAAE,KAAA,EAAO,KAAA,GAAQ,OAAO,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACtD,IAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG,OAAO,IAAA;AAE/B,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACC,GAAG,KAAA;AAAA,QACJ,4BAAA,EAA2B,EAAA;AAAA,QAC3B,YAAA,EAAY,KAAA;AAAA,QACZ,SAAA,EAAW,EAAA;AAAA,UACT,+KAAA;AAAA,UACA;AAAA,YACE,KAAA,EAAO,wBAAA;AAAA,YACP,GAAA,EAAK,oBAAA;AAAA;AAAA,YAEL,IAAA,EAAM,qCAAA;AAAA,YACN,KAAA,EAAO;AAAA,YACP,KAAK,CAAA;AAAA,UACP;AAAA,SACF;AAAA,QAEC,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,CAAA,qBAChB,IAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YAEC,WAAA,EAAW,KAAK,GAAA,KAAQ,OAAO,KAAK,KAAA,KAAU,QAAA,GAAW,KAAK,KAAA,GAAQ,MAAA,CAAA;AAAA,YAEtE,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,iIAAA,EAAmI,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,cAAK,GAAA;AAAA,cAC/J,IAAA,CAAK;AAAA;AAAA,WAAA;AAAA,UAJD,KAAK,GAAA,KAAQ,OAAO,KAAK,KAAA,KAAU,QAAA,GAAW,KAAK,KAAA,GAAQ,CAAA;AAAA,SAMnE;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-NETUI353.js","sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { StatListProps } from \"./StatList.types\";\n\n/**\n * The mono figure stack — `70 packages / 261 components / MIT licensed`.\n *\n * The Inspiration index and `/packages` each hand-rolled this from tokens, which\n * is the gallery working as intended: it stress-tests the kit, and what it\n * hand-rolls is the gap list. The list only pays off when the gap comes back\n * here, otherwise every surface keeps a copy and they drift apart.\n *\n * Takes `items` as DATA rather than children. What those surfaces repeat is a\n * shape, not a layout, so there is nothing to assemble at the call site — and a\n * data prop is what an agent can emit, which children are not.\n *\n * The value is a `<b>` rather than a colour, because in most of these stacks the\n * figure is the only part that is not muted, and expressing that structurally\n * keeps it meaningful when a design replaces the styling wholesale.\n */\nexport const StatList = forwardRef<HTMLDivElement, StatListProps>(\n ({ items, align = \"end\", className, ...props }, ref) => {\n if (items.length === 0) return null;\n\n return (\n <div\n ref={ref}\n {...props}\n data-react-fancy-stat-list=\"\"\n data-align={align}\n className={cn(\n \"flex flex-col gap-0.5 font-mono text-[11.5px] text-[color:var(--fancy-text-muted,var(--color-zinc-500))] dark:text-[color:var(--fancy-text-muted-dark,var(--color-zinc-400))]\",\n {\n start: \"items-start text-start\",\n end: \"items-end text-end\",\n // Physical: flex alignment is logical, so RTL swaps it back.\n left: \"items-start rtl:items-end text-left\",\n right: \"items-end rtl:items-start text-right\",\n }[align],\n className,\n )}\n >\n {items.map((item, i) => (\n <span\n key={item.key ?? (typeof item.label === \"string\" ? item.label : i)}\n data-stat={item.key ?? (typeof item.label === \"string\" ? item.label : undefined)}\n >\n <b className=\"font-medium text-[color:var(--fancy-text,var(--color-zinc-900))] dark:text-[color:var(--fancy-text-dark,var(--color-zinc-100))]\">{item.value}</b>{\" \"}\n {item.label}\n </span>\n ))}\n </div>\n );\n },\n);\n\nStatList.displayName = \"StatList\";\n"]}
@@ -151,7 +151,7 @@ function ThumbnailItem({ file, index, onRemove }) {
151
151
  {
152
152
  type: "button",
153
153
  onClick: () => onRemove(index),
154
- className: "absolute top-1 right-1 flex h-5 w-5 items-center justify-center rounded-full bg-black/60 text-white opacity-0 transition-opacity hover:bg-black/80 group-hover:opacity-100",
154
+ className: "absolute top-1 end-1 flex h-5 w-5 items-center justify-center rounded-full bg-black/60 text-white opacity-0 transition-opacity hover:bg-black/80 group-hover:opacity-100",
155
155
  "aria-label": `Remove ${file.name}`,
156
156
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { size: 10 })
157
157
  }
@@ -276,5 +276,5 @@ var FileUpload = Object.assign(FileUploadRoot, {
276
276
 
277
277
  exports.FileUpload = FileUpload;
278
278
  exports.useFileUpload = useFileUpload;
279
- //# sourceMappingURL=chunk-XHUV3VSM.cjs.map
280
- //# sourceMappingURL=chunk-XHUV3VSM.cjs.map
279
+ //# sourceMappingURL=chunk-NIFHAFKK.cjs.map
280
+ //# sourceMappingURL=chunk-NIFHAFKK.cjs.map