@particle-academy/react-fancy 5.12.0 → 5.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (949) hide show
  1. package/dist/AudioViewer.types-VWhRx6XG.d.cts +22 -0
  2. package/dist/AudioViewer.types-VWhRx6XG.d.ts +22 -0
  3. package/dist/Card-BZ5F6-wd.d.cts +50 -0
  4. package/dist/Card-BZ5F6-wd.d.ts +50 -0
  5. package/dist/Carousel.context-Ba3gKZHQ.d.cts +61 -0
  6. package/dist/Carousel.context-Ba3gKZHQ.d.ts +61 -0
  7. package/dist/FieldMode.context-Bv_wuS8V.d.ts +74 -0
  8. package/dist/FieldMode.context-C28RH8GR.d.cts +74 -0
  9. package/dist/ImageViewer.types-BaqlDeuo.d.cts +55 -0
  10. package/dist/ImageViewer.types-BaqlDeuo.d.ts +55 -0
  11. package/dist/PdfViewer.types-_u6vboSl.d.cts +14 -0
  12. package/dist/PdfViewer.types-_u6vboSl.d.ts +14 -0
  13. package/dist/Timeline-7zHhIk3P.d.cts +73 -0
  14. package/dist/Timeline-Cvrd7N7-.d.ts +73 -0
  15. package/dist/VideoViewer.types-CTwS6PcM.d.cts +26 -0
  16. package/dist/VideoViewer.types-CTwS6PcM.d.ts +26 -0
  17. package/dist/accordion-panel.cjs +34 -0
  18. package/dist/accordion-panel.cjs.map +1 -0
  19. package/dist/accordion-panel.d.cts +186 -0
  20. package/dist/accordion-panel.d.ts +186 -0
  21. package/dist/accordion-panel.js +5 -0
  22. package/dist/accordion-panel.js.map +1 -0
  23. package/dist/accordion.cjs +17 -0
  24. package/dist/accordion.cjs.map +1 -0
  25. package/dist/accordion.d.cts +53 -0
  26. package/dist/accordion.d.ts +53 -0
  27. package/dist/accordion.js +4 -0
  28. package/dist/accordion.js.map +1 -0
  29. package/dist/audio-viewer.cjs +13 -0
  30. package/dist/audio-viewer.cjs.map +1 -0
  31. package/dist/audio-viewer.d.cts +14 -0
  32. package/dist/audio-viewer.d.ts +14 -0
  33. package/dist/audio-viewer.js +4 -0
  34. package/dist/audio-viewer.js.map +1 -0
  35. package/dist/autocomplete.cjs +20 -0
  36. package/dist/autocomplete.cjs.map +1 -0
  37. package/dist/autocomplete.d.cts +28 -0
  38. package/dist/autocomplete.d.ts +28 -0
  39. package/dist/autocomplete.js +11 -0
  40. package/dist/autocomplete.js.map +1 -0
  41. package/dist/avatar.cjs +13 -0
  42. package/dist/avatar.cjs.map +1 -0
  43. package/dist/avatar.d.cts +26 -0
  44. package/dist/avatar.d.ts +26 -0
  45. package/dist/avatar.js +4 -0
  46. package/dist/avatar.js.map +1 -0
  47. package/dist/badge.cjs +13 -0
  48. package/dist/badge.cjs.map +1 -0
  49. package/dist/badge.d.cts +18 -0
  50. package/dist/badge.d.ts +18 -0
  51. package/dist/badge.js +4 -0
  52. package/dist/badge.js.map +1 -0
  53. package/dist/brand.cjs +17 -0
  54. package/dist/brand.cjs.map +1 -0
  55. package/dist/brand.d.cts +43 -0
  56. package/dist/brand.d.ts +43 -0
  57. package/dist/brand.js +4 -0
  58. package/dist/brand.js.map +1 -0
  59. package/dist/breadcrumbs.cjs +15 -0
  60. package/dist/breadcrumbs.cjs.map +1 -0
  61. package/dist/breadcrumbs.d.cts +36 -0
  62. package/dist/breadcrumbs.d.ts +36 -0
  63. package/dist/breadcrumbs.js +6 -0
  64. package/dist/breadcrumbs.js.map +1 -0
  65. package/dist/button.cjs +20 -0
  66. package/dist/button.cjs.map +1 -0
  67. package/dist/button.d.cts +84 -0
  68. package/dist/button.d.ts +84 -0
  69. package/dist/button.js +7 -0
  70. package/dist/button.js.map +1 -0
  71. package/dist/calendar.cjs +13 -0
  72. package/dist/calendar.cjs.map +1 -0
  73. package/dist/calendar.d.cts +20 -0
  74. package/dist/calendar.d.ts +20 -0
  75. package/dist/calendar.js +4 -0
  76. package/dist/calendar.js.map +1 -0
  77. package/dist/callout.cjs +13 -0
  78. package/dist/callout.cjs.map +1 -0
  79. package/dist/callout.d.cts +16 -0
  80. package/dist/callout.d.ts +16 -0
  81. package/dist/callout.js +4 -0
  82. package/dist/callout.js.map +1 -0
  83. package/dist/card.cjs +29 -0
  84. package/dist/card.cjs.map +1 -0
  85. package/dist/card.d.cts +29 -0
  86. package/dist/card.d.ts +29 -0
  87. package/dist/card.js +4 -0
  88. package/dist/card.js.map +1 -0
  89. package/dist/carousel.cjs +34 -0
  90. package/dist/carousel.cjs.map +1 -0
  91. package/dist/carousel.d.cts +13 -0
  92. package/dist/carousel.d.ts +13 -0
  93. package/dist/carousel.js +5 -0
  94. package/dist/carousel.js.map +1 -0
  95. package/dist/chart.cjs +13 -0
  96. package/dist/chart.cjs.map +1 -0
  97. package/dist/chart.d.cts +140 -0
  98. package/dist/chart.d.ts +140 -0
  99. package/dist/chart.js +4 -0
  100. package/dist/chart.js.map +1 -0
  101. package/dist/chat-drawer.cjs +15 -0
  102. package/dist/chat-drawer.cjs.map +1 -0
  103. package/dist/chat-drawer.d.cts +63 -0
  104. package/dist/chat-drawer.d.ts +63 -0
  105. package/dist/chat-drawer.js +6 -0
  106. package/dist/chat-drawer.js.map +1 -0
  107. package/dist/checkbox-group.cjs +19 -0
  108. package/dist/checkbox-group.cjs.map +1 -0
  109. package/dist/checkbox-group.d.cts +18 -0
  110. package/dist/checkbox-group.d.ts +18 -0
  111. package/dist/checkbox-group.js +10 -0
  112. package/dist/checkbox-group.js.map +1 -0
  113. package/dist/checkbox.cjs +17 -0
  114. package/dist/checkbox.cjs.map +1 -0
  115. package/dist/checkbox.d.cts +16 -0
  116. package/dist/checkbox.d.ts +16 -0
  117. package/dist/checkbox.js +8 -0
  118. package/dist/checkbox.js.map +1 -0
  119. package/dist/chunk-2CNSZCVE.cjs +119 -0
  120. package/dist/chunk-2CNSZCVE.cjs.map +1 -0
  121. package/dist/chunk-2CYRAKWI.cjs +241 -0
  122. package/dist/chunk-2CYRAKWI.cjs.map +1 -0
  123. package/dist/chunk-2G3L4BLU.cjs +257 -0
  124. package/dist/chunk-2G3L4BLU.cjs.map +1 -0
  125. package/dist/chunk-2PELJ4VA.cjs +335 -0
  126. package/dist/chunk-2PELJ4VA.cjs.map +1 -0
  127. package/dist/chunk-2S7WRR5P.cjs +156 -0
  128. package/dist/chunk-2S7WRR5P.cjs.map +1 -0
  129. package/dist/chunk-32AJIHBZ.js +201 -0
  130. package/dist/chunk-32AJIHBZ.js.map +1 -0
  131. package/dist/chunk-3DJGPNUI.js +39 -0
  132. package/dist/chunk-3DJGPNUI.js.map +1 -0
  133. package/dist/chunk-3ETOEEVN.cjs +62 -0
  134. package/dist/chunk-3ETOEEVN.cjs.map +1 -0
  135. package/dist/chunk-3GRC5J2L.cjs +54 -0
  136. package/dist/chunk-3GRC5J2L.cjs.map +1 -0
  137. package/dist/chunk-3SQ34IQC.cjs +124 -0
  138. package/dist/chunk-3SQ34IQC.cjs.map +1 -0
  139. package/dist/chunk-3WGRVDQR.cjs +39 -0
  140. package/dist/chunk-3WGRVDQR.cjs.map +1 -0
  141. package/dist/chunk-3Z6ALUWP.cjs +13 -0
  142. package/dist/chunk-3Z6ALUWP.cjs.map +1 -0
  143. package/dist/chunk-45BBNJQD.js +2019 -0
  144. package/dist/chunk-45BBNJQD.js.map +1 -0
  145. package/dist/chunk-47TFRODY.cjs +107 -0
  146. package/dist/chunk-47TFRODY.cjs.map +1 -0
  147. package/dist/chunk-4DQ6HX27.cjs +187 -0
  148. package/dist/chunk-4DQ6HX27.cjs.map +1 -0
  149. package/dist/chunk-4UA45GB4.js +129 -0
  150. package/dist/chunk-4UA45GB4.js.map +1 -0
  151. package/dist/chunk-57FQGQJK.cjs +26 -0
  152. package/dist/chunk-57FQGQJK.cjs.map +1 -0
  153. package/dist/chunk-5FV6GMFP.cjs +4 -0
  154. package/dist/chunk-5FV6GMFP.cjs.map +1 -0
  155. package/dist/chunk-5HOQ2PHR.cjs +287 -0
  156. package/dist/chunk-5HOQ2PHR.cjs.map +1 -0
  157. package/dist/chunk-5I4PR2KV.cjs +131 -0
  158. package/dist/chunk-5I4PR2KV.cjs.map +1 -0
  159. package/dist/chunk-5OC6DUYT.js +139 -0
  160. package/dist/chunk-5OC6DUYT.js.map +1 -0
  161. package/dist/chunk-5QL7XT3N.js +80 -0
  162. package/dist/chunk-5QL7XT3N.js.map +1 -0
  163. package/dist/chunk-5U2DZ7AV.js +49 -0
  164. package/dist/chunk-5U2DZ7AV.js.map +1 -0
  165. package/dist/chunk-5UOQVGZC.cjs +930 -0
  166. package/dist/chunk-5UOQVGZC.cjs.map +1 -0
  167. package/dist/chunk-6BW5BQMN.cjs +57 -0
  168. package/dist/chunk-6BW5BQMN.cjs.map +1 -0
  169. package/dist/chunk-6FBFE66M.cjs +292 -0
  170. package/dist/chunk-6FBFE66M.cjs.map +1 -0
  171. package/dist/chunk-6FQGMVF2.js +25 -0
  172. package/dist/chunk-6FQGMVF2.js.map +1 -0
  173. package/dist/chunk-6GC5DMOK.cjs +141 -0
  174. package/dist/chunk-6GC5DMOK.cjs.map +1 -0
  175. package/dist/chunk-6H6OYLMJ.js +105 -0
  176. package/dist/chunk-6H6OYLMJ.js.map +1 -0
  177. package/dist/chunk-6L6LI2RL.cjs +37 -0
  178. package/dist/chunk-6L6LI2RL.cjs.map +1 -0
  179. package/dist/chunk-6MDZQIMZ.cjs +18 -0
  180. package/dist/chunk-6MDZQIMZ.cjs.map +1 -0
  181. package/dist/chunk-6OSHAP6L.cjs +110 -0
  182. package/dist/chunk-6OSHAP6L.cjs.map +1 -0
  183. package/dist/chunk-7AFEKDUS.js +202 -0
  184. package/dist/chunk-7AFEKDUS.js.map +1 -0
  185. package/dist/chunk-7C7VF4WY.cjs +155 -0
  186. package/dist/chunk-7C7VF4WY.cjs.map +1 -0
  187. package/dist/chunk-7NLKXBZ2.cjs +88 -0
  188. package/dist/chunk-7NLKXBZ2.cjs.map +1 -0
  189. package/dist/chunk-7XDKIZQE.js +382 -0
  190. package/dist/chunk-7XDKIZQE.js.map +1 -0
  191. package/dist/chunk-A22T6DKO.cjs +283 -0
  192. package/dist/chunk-A22T6DKO.cjs.map +1 -0
  193. package/dist/chunk-A3CNYKT3.js +197 -0
  194. package/dist/chunk-A3CNYKT3.js.map +1 -0
  195. package/dist/chunk-AC7M7JDO.cjs +199 -0
  196. package/dist/chunk-AC7M7JDO.cjs.map +1 -0
  197. package/dist/chunk-AGDW5ENV.js +37 -0
  198. package/dist/chunk-AGDW5ENV.js.map +1 -0
  199. package/dist/chunk-AIA5UNQ5.cjs +4 -0
  200. package/dist/chunk-AIA5UNQ5.cjs.map +1 -0
  201. package/dist/chunk-AKIUDPJU.js +119 -0
  202. package/dist/chunk-AKIUDPJU.js.map +1 -0
  203. package/dist/chunk-ANEX75DF.cjs +39 -0
  204. package/dist/chunk-ANEX75DF.cjs.map +1 -0
  205. package/dist/chunk-AOOBRPTE.cjs +142 -0
  206. package/dist/chunk-AOOBRPTE.cjs.map +1 -0
  207. package/dist/chunk-ARSQY4P7.cjs +101 -0
  208. package/dist/chunk-ARSQY4P7.cjs.map +1 -0
  209. package/dist/chunk-ATFXU6R6.js +122 -0
  210. package/dist/chunk-ATFXU6R6.js.map +1 -0
  211. package/dist/chunk-AUTW5O4W.js +3 -0
  212. package/dist/chunk-AUTW5O4W.js.map +1 -0
  213. package/dist/chunk-AVR5P4GA.cjs +832 -0
  214. package/dist/chunk-AVR5P4GA.cjs.map +1 -0
  215. package/dist/chunk-B3HVWXIQ.cjs +112 -0
  216. package/dist/chunk-B3HVWXIQ.cjs.map +1 -0
  217. package/dist/chunk-BEGDL2CD.js +81 -0
  218. package/dist/chunk-BEGDL2CD.js.map +1 -0
  219. package/dist/chunk-BFKCVSNK.cjs +80 -0
  220. package/dist/chunk-BFKCVSNK.cjs.map +1 -0
  221. package/dist/chunk-BPBI3WWQ.cjs +364 -0
  222. package/dist/chunk-BPBI3WWQ.cjs.map +1 -0
  223. package/dist/chunk-BYIY6BH2.js +927 -0
  224. package/dist/chunk-BYIY6BH2.js.map +1 -0
  225. package/dist/chunk-C4Z4S3CX.js +164 -0
  226. package/dist/chunk-C4Z4S3CX.js.map +1 -0
  227. package/dist/chunk-C5AZNBVB.js +153 -0
  228. package/dist/chunk-C5AZNBVB.js.map +1 -0
  229. package/dist/chunk-CFBK5RIZ.js +35 -0
  230. package/dist/chunk-CFBK5RIZ.js.map +1 -0
  231. package/dist/chunk-CHADHN6M.js +37 -0
  232. package/dist/chunk-CHADHN6M.js.map +1 -0
  233. package/dist/chunk-CPY7NHXM.js +88 -0
  234. package/dist/chunk-CPY7NHXM.js.map +1 -0
  235. package/dist/chunk-CS4GQXYY.js +131 -0
  236. package/dist/chunk-CS4GQXYY.js.map +1 -0
  237. package/dist/chunk-CTMJYV3O.js +99 -0
  238. package/dist/chunk-CTMJYV3O.js.map +1 -0
  239. package/dist/chunk-CZZH45GQ.cjs +122 -0
  240. package/dist/chunk-CZZH45GQ.cjs.map +1 -0
  241. package/dist/chunk-D4WM23Y4.js +109 -0
  242. package/dist/chunk-D4WM23Y4.js.map +1 -0
  243. package/dist/chunk-D7NAXQ2N.js +86 -0
  244. package/dist/chunk-D7NAXQ2N.js.map +1 -0
  245. package/dist/chunk-DJ3YM72H.cjs +353 -0
  246. package/dist/chunk-DJ3YM72H.cjs.map +1 -0
  247. package/dist/chunk-DOSSIU6S.cjs +162 -0
  248. package/dist/chunk-DOSSIU6S.cjs.map +1 -0
  249. package/dist/chunk-DSUHZO6T.js +11 -0
  250. package/dist/chunk-DSUHZO6T.js.map +1 -0
  251. package/dist/chunk-DTPGJNOI.js +204 -0
  252. package/dist/chunk-DTPGJNOI.js.map +1 -0
  253. package/dist/chunk-DV4IMAQW.js +100 -0
  254. package/dist/chunk-DV4IMAQW.js.map +1 -0
  255. package/dist/chunk-DWRMC2FN.cjs +95 -0
  256. package/dist/chunk-DWRMC2FN.cjs.map +1 -0
  257. package/dist/chunk-DZD2RJVD.js +47 -0
  258. package/dist/chunk-DZD2RJVD.js.map +1 -0
  259. package/dist/chunk-E4LFD44D.js +69 -0
  260. package/dist/chunk-E4LFD44D.js.map +1 -0
  261. package/dist/chunk-E7PHL3TD.cjs +144 -0
  262. package/dist/chunk-E7PHL3TD.cjs.map +1 -0
  263. package/dist/chunk-ECZ66DKF.js +522 -0
  264. package/dist/chunk-ECZ66DKF.js.map +1 -0
  265. package/dist/chunk-EERAEPQO.cjs +177 -0
  266. package/dist/chunk-EERAEPQO.cjs.map +1 -0
  267. package/dist/chunk-EIBW5YLS.js +52 -0
  268. package/dist/chunk-EIBW5YLS.js.map +1 -0
  269. package/dist/chunk-ESKVRRVA.js +56 -0
  270. package/dist/chunk-ESKVRRVA.js.map +1 -0
  271. package/dist/chunk-EVXDG2XN.js +108 -0
  272. package/dist/chunk-EVXDG2XN.js.map +1 -0
  273. package/dist/chunk-F6NEPU67.cjs +218 -0
  274. package/dist/chunk-F6NEPU67.cjs.map +1 -0
  275. package/dist/chunk-F6SCZCJE.js +176 -0
  276. package/dist/chunk-F6SCZCJE.js.map +1 -0
  277. package/dist/chunk-FA3D4GFC.cjs +323 -0
  278. package/dist/chunk-FA3D4GFC.cjs.map +1 -0
  279. package/dist/chunk-FCAV5IFW.js +63 -0
  280. package/dist/chunk-FCAV5IFW.js.map +1 -0
  281. package/dist/chunk-FVV76TRF.js +101 -0
  282. package/dist/chunk-FVV76TRF.js.map +1 -0
  283. package/dist/chunk-G2W7B3OG.js +420 -0
  284. package/dist/chunk-G2W7B3OG.js.map +1 -0
  285. package/dist/chunk-G34OBTU3.cjs +27 -0
  286. package/dist/chunk-G34OBTU3.cjs.map +1 -0
  287. package/dist/chunk-GFYSELJF.js +35 -0
  288. package/dist/chunk-GFYSELJF.js.map +1 -0
  289. package/dist/chunk-GIDW3SUE.cjs +59 -0
  290. package/dist/chunk-GIDW3SUE.cjs.map +1 -0
  291. package/dist/chunk-GKGL7F36.js +290 -0
  292. package/dist/chunk-GKGL7F36.js.map +1 -0
  293. package/dist/chunk-GKPCXPCD.js +262 -0
  294. package/dist/chunk-GKPCXPCD.js.map +1 -0
  295. package/dist/chunk-GZIUE4DE.js +117 -0
  296. package/dist/chunk-GZIUE4DE.js.map +1 -0
  297. package/dist/chunk-HAOYXGGJ.js +104 -0
  298. package/dist/chunk-HAOYXGGJ.js.map +1 -0
  299. package/dist/chunk-HBFVOHQC.cjs +102 -0
  300. package/dist/chunk-HBFVOHQC.cjs.map +1 -0
  301. package/dist/chunk-HG6XUJOT.js +328 -0
  302. package/dist/chunk-HG6XUJOT.js.map +1 -0
  303. package/dist/chunk-I6L7OP7G.cjs +203 -0
  304. package/dist/chunk-I6L7OP7G.cjs.map +1 -0
  305. package/dist/chunk-IE4CM2SN.js +122 -0
  306. package/dist/chunk-IE4CM2SN.js.map +1 -0
  307. package/dist/chunk-IF25CE6S.cjs +202 -0
  308. package/dist/chunk-IF25CE6S.cjs.map +1 -0
  309. package/dist/chunk-IF3T3ZCB.cjs +273 -0
  310. package/dist/chunk-IF3T3ZCB.cjs.map +1 -0
  311. package/dist/chunk-IF5LOWUL.js +273 -0
  312. package/dist/chunk-IF5LOWUL.js.map +1 -0
  313. package/dist/chunk-IGU5YXRV.cjs +138 -0
  314. package/dist/chunk-IGU5YXRV.cjs.map +1 -0
  315. package/dist/chunk-IGYIMS6J.js +174 -0
  316. package/dist/chunk-IGYIMS6J.js.map +1 -0
  317. package/dist/chunk-IJ4I55QQ.cjs +38 -0
  318. package/dist/chunk-IJ4I55QQ.cjs.map +1 -0
  319. package/dist/chunk-IXHZVFHX.cjs +44 -0
  320. package/dist/chunk-IXHZVFHX.cjs.map +1 -0
  321. package/dist/chunk-J2DI6RMR.cjs +115 -0
  322. package/dist/chunk-J2DI6RMR.cjs.map +1 -0
  323. package/dist/chunk-J3XS4HHX.js +230 -0
  324. package/dist/chunk-J3XS4HHX.js.map +1 -0
  325. package/dist/chunk-JCOBDDHF.js +118 -0
  326. package/dist/chunk-JCOBDDHF.js.map +1 -0
  327. package/dist/chunk-JHEM6IGT.cjs +49 -0
  328. package/dist/chunk-JHEM6IGT.cjs.map +1 -0
  329. package/dist/chunk-JIYP73OJ.js +169 -0
  330. package/dist/chunk-JIYP73OJ.js.map +1 -0
  331. package/dist/chunk-JKO2Y5SH.js +60 -0
  332. package/dist/chunk-JKO2Y5SH.js.map +1 -0
  333. package/dist/chunk-JPTWZ3RF.cjs +280 -0
  334. package/dist/chunk-JPTWZ3RF.cjs.map +1 -0
  335. package/dist/chunk-JXE5XID6.js +19 -0
  336. package/dist/chunk-JXE5XID6.js.map +1 -0
  337. package/dist/chunk-JXIBUIEY.cjs +144 -0
  338. package/dist/chunk-JXIBUIEY.cjs.map +1 -0
  339. package/dist/chunk-JYKZKSZJ.js +122 -0
  340. package/dist/chunk-JYKZKSZJ.js.map +1 -0
  341. package/dist/chunk-K2DZEYBF.js +321 -0
  342. package/dist/chunk-K2DZEYBF.js.map +1 -0
  343. package/dist/chunk-K7JGOQJG.js +55 -0
  344. package/dist/chunk-K7JGOQJG.js.map +1 -0
  345. package/dist/chunk-KC6QBKKB.cjs +173 -0
  346. package/dist/chunk-KC6QBKKB.cjs.map +1 -0
  347. package/dist/chunk-KE7KXY5C.cjs +233 -0
  348. package/dist/chunk-KE7KXY5C.cjs.map +1 -0
  349. package/dist/chunk-KICZTIZL.cjs +133 -0
  350. package/dist/chunk-KICZTIZL.cjs.map +1 -0
  351. package/dist/chunk-KJ22KE56.cjs +19 -0
  352. package/dist/chunk-KJ22KE56.cjs.map +1 -0
  353. package/dist/chunk-KUKYJZIU.cjs +179 -0
  354. package/dist/chunk-KUKYJZIU.cjs.map +1 -0
  355. package/dist/chunk-L3V3BYVS.cjs +15 -0
  356. package/dist/chunk-L3V3BYVS.cjs.map +1 -0
  357. package/dist/chunk-LNWO23PU.cjs +131 -0
  358. package/dist/chunk-LNWO23PU.cjs.map +1 -0
  359. package/dist/chunk-LPQVXTKV.js +36 -0
  360. package/dist/chunk-LPQVXTKV.js.map +1 -0
  361. package/dist/chunk-LZL2KD4P.cjs +207 -0
  362. package/dist/chunk-LZL2KD4P.cjs.map +1 -0
  363. package/dist/chunk-M24NCWBU.js +239 -0
  364. package/dist/chunk-M24NCWBU.js.map +1 -0
  365. package/dist/chunk-M7EEQPE7.js +137 -0
  366. package/dist/chunk-M7EEQPE7.js.map +1 -0
  367. package/dist/chunk-MDUSUJWY.cjs +31 -0
  368. package/dist/chunk-MDUSUJWY.cjs.map +1 -0
  369. package/dist/chunk-MGZE2QEM.cjs +51 -0
  370. package/dist/chunk-MGZE2QEM.cjs.map +1 -0
  371. package/dist/chunk-MILTPAF6.js +255 -0
  372. package/dist/chunk-MILTPAF6.js.map +1 -0
  373. package/dist/chunk-MQ6VGG62.js +113 -0
  374. package/dist/chunk-MQ6VGG62.js.map +1 -0
  375. package/dist/chunk-MYF2PDTU.js +137 -0
  376. package/dist/chunk-MYF2PDTU.js.map +1 -0
  377. package/dist/chunk-MZIU27UY.js +133 -0
  378. package/dist/chunk-MZIU27UY.js.map +1 -0
  379. package/dist/chunk-N7WQ53US.js +211 -0
  380. package/dist/chunk-N7WQ53US.js.map +1 -0
  381. package/dist/chunk-NBZC6LOB.cjs +43 -0
  382. package/dist/chunk-NBZC6LOB.cjs.map +1 -0
  383. package/dist/chunk-NH7NRRII.js +167 -0
  384. package/dist/chunk-NH7NRRII.js.map +1 -0
  385. package/dist/chunk-NLJGNPNN.js +284 -0
  386. package/dist/chunk-NLJGNPNN.js.map +1 -0
  387. package/dist/chunk-NNSNANNY.cjs +224 -0
  388. package/dist/chunk-NNSNANNY.cjs.map +1 -0
  389. package/dist/chunk-NPKE2IX6.js +154 -0
  390. package/dist/chunk-NPKE2IX6.js.map +1 -0
  391. package/dist/chunk-NRXK42LO.js +12 -0
  392. package/dist/chunk-NRXK42LO.js.map +1 -0
  393. package/dist/chunk-O432BDEO.js +160 -0
  394. package/dist/chunk-O432BDEO.js.map +1 -0
  395. package/dist/chunk-O4MKOSU2.js +29 -0
  396. package/dist/chunk-O4MKOSU2.js.map +1 -0
  397. package/dist/chunk-O5IO7TCO.cjs +4 -0
  398. package/dist/chunk-O5IO7TCO.cjs.map +1 -0
  399. package/dist/chunk-OL53XYHF.js +17 -0
  400. package/dist/chunk-OL53XYHF.js.map +1 -0
  401. package/dist/chunk-ORCXPDDG.js +3 -0
  402. package/dist/chunk-ORCXPDDG.js.map +1 -0
  403. package/dist/chunk-ORFHF6PT.cjs +172 -0
  404. package/dist/chunk-ORFHF6PT.cjs.map +1 -0
  405. package/dist/chunk-ORPYY2MO.cjs +124 -0
  406. package/dist/chunk-ORPYY2MO.cjs.map +1 -0
  407. package/dist/chunk-OUOEQZHY.cjs +27 -0
  408. package/dist/chunk-OUOEQZHY.cjs.map +1 -0
  409. package/dist/chunk-PBXYU4EV.cjs +121 -0
  410. package/dist/chunk-PBXYU4EV.cjs.map +1 -0
  411. package/dist/chunk-PH3WGR5P.cjs +82 -0
  412. package/dist/chunk-PH3WGR5P.cjs.map +1 -0
  413. package/dist/chunk-POZZY3D5.cjs +135 -0
  414. package/dist/chunk-POZZY3D5.cjs.map +1 -0
  415. package/dist/chunk-PPLR2DNC.cjs +41 -0
  416. package/dist/chunk-PPLR2DNC.cjs.map +1 -0
  417. package/dist/chunk-PQWQ5K6J.js +15 -0
  418. package/dist/chunk-PQWQ5K6J.js.map +1 -0
  419. package/dist/chunk-PRDWJ4AR.js +215 -0
  420. package/dist/chunk-PRDWJ4AR.js.map +1 -0
  421. package/dist/chunk-PRJSEZ5F.cjs +285 -0
  422. package/dist/chunk-PRJSEZ5F.cjs.map +1 -0
  423. package/dist/chunk-PVWPZYTR.js +830 -0
  424. package/dist/chunk-PVWPZYTR.js.map +1 -0
  425. package/dist/chunk-PYRMH34E.js +49 -0
  426. package/dist/chunk-PYRMH34E.js.map +1 -0
  427. package/dist/chunk-PZIAL4OP.cjs +524 -0
  428. package/dist/chunk-PZIAL4OP.cjs.map +1 -0
  429. package/dist/chunk-QFFC2DKK.js +56 -0
  430. package/dist/chunk-QFFC2DKK.js.map +1 -0
  431. package/dist/chunk-R55HE5C5.js +81 -0
  432. package/dist/chunk-R55HE5C5.js.map +1 -0
  433. package/dist/chunk-RA3P63XW.cjs +65 -0
  434. package/dist/chunk-RA3P63XW.cjs.map +1 -0
  435. package/dist/chunk-RES2GOQQ.js +139 -0
  436. package/dist/chunk-RES2GOQQ.js.map +1 -0
  437. package/dist/chunk-RGANGU7X.js +24 -0
  438. package/dist/chunk-RGANGU7X.js.map +1 -0
  439. package/dist/chunk-RID7CYGD.js +344 -0
  440. package/dist/chunk-RID7CYGD.js.map +1 -0
  441. package/dist/chunk-RM4QWJS3.js +200 -0
  442. package/dist/chunk-RM4QWJS3.js.map +1 -0
  443. package/dist/chunk-RNHIDZLE.cjs +103 -0
  444. package/dist/chunk-RNHIDZLE.cjs.map +1 -0
  445. package/dist/chunk-RNPFSVFN.js +24 -0
  446. package/dist/chunk-RNPFSVFN.js.map +1 -0
  447. package/dist/chunk-RR7BWUVP.cjs +58 -0
  448. package/dist/chunk-RR7BWUVP.cjs.map +1 -0
  449. package/dist/chunk-RXDRYWVD.cjs +21 -0
  450. package/dist/chunk-RXDRYWVD.cjs.map +1 -0
  451. package/dist/chunk-S3TRSECD.cjs +4 -0
  452. package/dist/chunk-S3TRSECD.cjs.map +1 -0
  453. package/dist/chunk-SCPHSBBU.cjs +83 -0
  454. package/dist/chunk-SCPHSBBU.cjs.map +1 -0
  455. package/dist/chunk-SKI33QNW.js +133 -0
  456. package/dist/chunk-SKI33QNW.js.map +1 -0
  457. package/dist/chunk-T6IXZZBQ.cjs +83 -0
  458. package/dist/chunk-T6IXZZBQ.cjs.map +1 -0
  459. package/dist/chunk-T6YELZPJ.cjs +90 -0
  460. package/dist/chunk-T6YELZPJ.cjs.map +1 -0
  461. package/dist/chunk-TECFGOV2.js +222 -0
  462. package/dist/chunk-TECFGOV2.js.map +1 -0
  463. package/dist/chunk-TJ66S5K6.js +3 -0
  464. package/dist/chunk-TJ66S5K6.js.map +1 -0
  465. package/dist/chunk-TVRCOKJQ.cjs +106 -0
  466. package/dist/chunk-TVRCOKJQ.cjs.map +1 -0
  467. package/dist/chunk-TXTRTTG7.cjs +51 -0
  468. package/dist/chunk-TXTRTTG7.cjs.map +1 -0
  469. package/dist/chunk-TZKZ2LUF.cjs +140 -0
  470. package/dist/chunk-TZKZ2LUF.cjs.map +1 -0
  471. package/dist/chunk-UCYAHLGM.js +142 -0
  472. package/dist/chunk-UCYAHLGM.js.map +1 -0
  473. package/dist/chunk-UH2YXQ2B.cjs +166 -0
  474. package/dist/chunk-UH2YXQ2B.cjs.map +1 -0
  475. package/dist/chunk-UWVVEB2N.js +55 -0
  476. package/dist/chunk-UWVVEB2N.js.map +1 -0
  477. package/dist/chunk-VBZZ4CMM.cjs +71 -0
  478. package/dist/chunk-VBZZ4CMM.cjs.map +1 -0
  479. package/dist/chunk-VE3EM4K2.cjs +57 -0
  480. package/dist/chunk-VE3EM4K2.cjs.map +1 -0
  481. package/dist/chunk-VNDOT3NK.cjs +426 -0
  482. package/dist/chunk-VNDOT3NK.cjs.map +1 -0
  483. package/dist/chunk-VXHFR5MV.js +3 -0
  484. package/dist/chunk-VXHFR5MV.js.map +1 -0
  485. package/dist/chunk-W2Q4OWHX.cjs +204 -0
  486. package/dist/chunk-W2Q4OWHX.cjs.map +1 -0
  487. package/dist/chunk-WEGL4S52.js +450 -0
  488. package/dist/chunk-WEGL4S52.js.map +1 -0
  489. package/dist/chunk-WHEXTDPV.js +41 -0
  490. package/dist/chunk-WHEXTDPV.js.map +1 -0
  491. package/dist/chunk-WT72KW5M.cjs +347 -0
  492. package/dist/chunk-WT72KW5M.cjs.map +1 -0
  493. package/dist/chunk-WVO2EKE6.cjs +101 -0
  494. package/dist/chunk-WVO2EKE6.cjs.map +1 -0
  495. package/dist/chunk-WXADO5TS.cjs +124 -0
  496. package/dist/chunk-WXADO5TS.cjs.map +1 -0
  497. package/dist/chunk-X36ZGYTF.js +281 -0
  498. package/dist/chunk-X36ZGYTF.js.map +1 -0
  499. package/dist/chunk-XBBEQLMY.cjs +214 -0
  500. package/dist/chunk-XBBEQLMY.cjs.map +1 -0
  501. package/dist/chunk-XCZZVRBY.cjs +2030 -0
  502. package/dist/chunk-XCZZVRBY.cjs.map +1 -0
  503. package/dist/chunk-XJXQG34J.js +77 -0
  504. package/dist/chunk-XJXQG34J.js.map +1 -0
  505. package/dist/chunk-XMBOZ73D.js +92 -0
  506. package/dist/chunk-XMBOZ73D.js.map +1 -0
  507. package/dist/chunk-XZYKPGSK.cjs +453 -0
  508. package/dist/chunk-XZYKPGSK.cjs.map +1 -0
  509. package/dist/chunk-YCZN4FWI.js +42 -0
  510. package/dist/chunk-YCZN4FWI.js.map +1 -0
  511. package/dist/chunk-YHXE274U.js +129 -0
  512. package/dist/chunk-YHXE274U.js.map +1 -0
  513. package/dist/chunk-YLGTDBB2.cjs +43 -0
  514. package/dist/chunk-YLGTDBB2.cjs.map +1 -0
  515. package/dist/chunk-YT42J4VQ.js +361 -0
  516. package/dist/chunk-YT42J4VQ.js.map +1 -0
  517. package/dist/chunk-YT6N44Z3.js +99 -0
  518. package/dist/chunk-YT6N44Z3.js.map +1 -0
  519. package/dist/chunk-YXC7QHNT.cjs +385 -0
  520. package/dist/chunk-YXC7QHNT.cjs.map +1 -0
  521. package/dist/chunk-ZFVSEO5Z.cjs +136 -0
  522. package/dist/chunk-ZFVSEO5Z.cjs.map +1 -0
  523. package/dist/chunk-ZLCVKYHY.js +344 -0
  524. package/dist/chunk-ZLCVKYHY.js.map +1 -0
  525. package/dist/chunk-ZNTEM7F2.js +184 -0
  526. package/dist/chunk-ZNTEM7F2.js.map +1 -0
  527. package/dist/chunk-ZT36VWIA.js +136 -0
  528. package/dist/chunk-ZT36VWIA.js.map +1 -0
  529. package/dist/chunk-ZWOEKDNI.js +281 -0
  530. package/dist/chunk-ZWOEKDNI.js.map +1 -0
  531. package/dist/code-view.cjs +13 -0
  532. package/dist/code-view.cjs.map +1 -0
  533. package/dist/code-view.d.cts +44 -0
  534. package/dist/code-view.d.ts +44 -0
  535. package/dist/code-view.js +4 -0
  536. package/dist/code-view.js.map +1 -0
  537. package/dist/color-picker.cjs +16 -0
  538. package/dist/color-picker.cjs.map +1 -0
  539. package/dist/color-picker.d.cts +20 -0
  540. package/dist/color-picker.d.ts +20 -0
  541. package/dist/color-picker.js +7 -0
  542. package/dist/color-picker.js.map +1 -0
  543. package/dist/command.cjs +21 -0
  544. package/dist/command.cjs.map +1 -0
  545. package/dist/command.d.cts +78 -0
  546. package/dist/command.d.ts +78 -0
  547. package/dist/command.js +8 -0
  548. package/dist/command.js.map +1 -0
  549. package/dist/composer.cjs +14 -0
  550. package/dist/composer.cjs.map +1 -0
  551. package/dist/composer.d.cts +17 -0
  552. package/dist/composer.d.ts +17 -0
  553. package/dist/composer.js +5 -0
  554. package/dist/composer.js.map +1 -0
  555. package/dist/content-renderer.cjs +23 -0
  556. package/dist/content-renderer.cjs.map +1 -0
  557. package/dist/content-renderer.d.cts +27 -0
  558. package/dist/content-renderer.d.ts +27 -0
  559. package/dist/content-renderer.js +6 -0
  560. package/dist/content-renderer.js.map +1 -0
  561. package/dist/context-menu.cjs +21 -0
  562. package/dist/context-menu.cjs.map +1 -0
  563. package/dist/context-menu.d.cts +91 -0
  564. package/dist/context-menu.d.ts +91 -0
  565. package/dist/context-menu.js +8 -0
  566. package/dist/context-menu.js.map +1 -0
  567. package/dist/date-picker.cjs +19 -0
  568. package/dist/date-picker.cjs.map +1 -0
  569. package/dist/date-picker.d.cts +26 -0
  570. package/dist/date-picker.d.ts +26 -0
  571. package/dist/date-picker.js +10 -0
  572. package/dist/date-picker.js.map +1 -0
  573. package/dist/drawer.cjs +21 -0
  574. package/dist/drawer.cjs.map +1 -0
  575. package/dist/drawer.d.cts +116 -0
  576. package/dist/drawer.d.ts +116 -0
  577. package/dist/drawer.js +8 -0
  578. package/dist/drawer.js.map +1 -0
  579. package/dist/dropdown.cjs +22 -0
  580. package/dist/dropdown.cjs.map +1 -0
  581. package/dist/dropdown.d.cts +67 -0
  582. package/dist/dropdown.d.ts +67 -0
  583. package/dist/dropdown.js +9 -0
  584. package/dist/dropdown.js.map +1 -0
  585. package/dist/editor.cjs +29 -0
  586. package/dist/editor.cjs.map +1 -0
  587. package/dist/editor.d.cts +153 -0
  588. package/dist/editor.d.ts +153 -0
  589. package/dist/editor.js +16 -0
  590. package/dist/editor.js.map +1 -0
  591. package/dist/emoji-select.cjs +15 -0
  592. package/dist/emoji-select.cjs.map +1 -0
  593. package/dist/emoji-select.d.cts +13 -0
  594. package/dist/emoji-select.d.ts +13 -0
  595. package/dist/emoji-select.js +6 -0
  596. package/dist/emoji-select.js.map +1 -0
  597. package/dist/emoji.cjs +14 -0
  598. package/dist/emoji.cjs.map +1 -0
  599. package/dist/emoji.d.cts +2 -0
  600. package/dist/emoji.d.ts +2 -0
  601. package/dist/emoji.js +5 -0
  602. package/dist/emoji.js.map +1 -0
  603. package/dist/extensions-6PVd3-vB.d.cts +38 -0
  604. package/dist/extensions-6PVd3-vB.d.ts +38 -0
  605. package/dist/eyebrow.cjs +13 -0
  606. package/dist/eyebrow.cjs.map +1 -0
  607. package/dist/eyebrow.d.cts +33 -0
  608. package/dist/eyebrow.d.ts +33 -0
  609. package/dist/eyebrow.js +4 -0
  610. package/dist/eyebrow.js.map +1 -0
  611. package/dist/faux-client.cjs +13 -0
  612. package/dist/faux-client.cjs.map +1 -0
  613. package/dist/faux-client.d.cts +39 -0
  614. package/dist/faux-client.d.ts +39 -0
  615. package/dist/faux-client.js +4 -0
  616. package/dist/faux-client.js.map +1 -0
  617. package/dist/field.cjs +14 -0
  618. package/dist/field.cjs.map +1 -0
  619. package/dist/field.d.cts +18 -0
  620. package/dist/field.d.ts +18 -0
  621. package/dist/field.js +5 -0
  622. package/dist/field.js.map +1 -0
  623. package/dist/file-browser.cjs +18 -0
  624. package/dist/file-browser.cjs.map +1 -0
  625. package/dist/file-browser.d.cts +269 -0
  626. package/dist/file-browser.d.ts +269 -0
  627. package/dist/file-browser.js +5 -0
  628. package/dist/file-browser.js.map +1 -0
  629. package/dist/file-upload.cjs +17 -0
  630. package/dist/file-upload.cjs.map +1 -0
  631. package/dist/file-upload.d.cts +48 -0
  632. package/dist/file-upload.d.ts +48 -0
  633. package/dist/file-upload.js +4 -0
  634. package/dist/file-upload.js.map +1 -0
  635. package/dist/heading.cjs +13 -0
  636. package/dist/heading.cjs.map +1 -0
  637. package/dist/heading.d.cts +25 -0
  638. package/dist/heading.d.ts +25 -0
  639. package/dist/heading.js +4 -0
  640. package/dist/heading.js.map +1 -0
  641. package/dist/icon.cjs +34 -0
  642. package/dist/icon.cjs.map +1 -0
  643. package/dist/icon.d.cts +51 -0
  644. package/dist/icon.d.ts +51 -0
  645. package/dist/icon.js +5 -0
  646. package/dist/icon.js.map +1 -0
  647. package/dist/image-viewer.cjs +14 -0
  648. package/dist/image-viewer.cjs.map +1 -0
  649. package/dist/image-viewer.d.cts +19 -0
  650. package/dist/image-viewer.d.ts +19 -0
  651. package/dist/image-viewer.js +5 -0
  652. package/dist/image-viewer.js.map +1 -0
  653. package/dist/index-B71wa9AW.d.cts +79 -0
  654. package/dist/index-BktWpyRH.d.cts +53 -0
  655. package/dist/index-BktWpyRH.d.ts +53 -0
  656. package/dist/index-bIntFOl5.d.ts +79 -0
  657. package/dist/index-list.cjs +13 -0
  658. package/dist/index-list.cjs.map +1 -0
  659. package/dist/index-list.d.cts +49 -0
  660. package/dist/index-list.d.ts +49 -0
  661. package/dist/index-list.js +4 -0
  662. package/dist/index-list.js.map +1 -0
  663. package/dist/index.cjs +666 -16826
  664. package/dist/index.cjs.map +1 -1
  665. package/dist/index.d.cts +93 -4078
  666. package/dist/index.d.ts +93 -4078
  667. package/dist/index.js +103 -16708
  668. package/dist/index.js.map +1 -1
  669. package/dist/input-tag.cjs +28 -0
  670. package/dist/input-tag.cjs.map +1 -0
  671. package/dist/input-tag.d.cts +134 -0
  672. package/dist/input-tag.d.ts +134 -0
  673. package/dist/input-tag.js +3 -0
  674. package/dist/input-tag.js.map +1 -0
  675. package/dist/input.cjs +20 -0
  676. package/dist/input.cjs.map +1 -0
  677. package/dist/input.d.cts +32 -0
  678. package/dist/input.d.ts +32 -0
  679. package/dist/input.js +11 -0
  680. package/dist/input.js.map +1 -0
  681. package/dist/inputs.cjs +100 -0
  682. package/dist/inputs.cjs.map +1 -0
  683. package/dist/inputs.d.cts +16 -0
  684. package/dist/inputs.d.ts +16 -0
  685. package/dist/inputs.js +27 -0
  686. package/dist/inputs.js.map +1 -0
  687. package/dist/inputs.types-CkWdvN-t.d.cts +44 -0
  688. package/dist/inputs.types-DERzxpe1.d.ts +44 -0
  689. package/dist/kanban.cjs +17 -0
  690. package/dist/kanban.cjs.map +1 -0
  691. package/dist/kanban.d.cts +136 -0
  692. package/dist/kanban.d.ts +136 -0
  693. package/dist/kanban.js +4 -0
  694. package/dist/kanban.js.map +1 -0
  695. package/dist/kbd.cjs +13 -0
  696. package/dist/kbd.cjs.map +1 -0
  697. package/dist/kbd.d.cts +30 -0
  698. package/dist/kbd.d.ts +30 -0
  699. package/dist/kbd.js +4 -0
  700. package/dist/kbd.js.map +1 -0
  701. package/dist/magic-wand.cjs +25 -0
  702. package/dist/magic-wand.cjs.map +1 -0
  703. package/dist/magic-wand.d.cts +62 -0
  704. package/dist/magic-wand.d.ts +62 -0
  705. package/dist/magic-wand.js +16 -0
  706. package/dist/magic-wand.js.map +1 -0
  707. package/dist/marquee.cjs +13 -0
  708. package/dist/marquee.cjs.map +1 -0
  709. package/dist/marquee.d.cts +48 -0
  710. package/dist/marquee.d.ts +48 -0
  711. package/dist/marquee.js +4 -0
  712. package/dist/marquee.js.map +1 -0
  713. package/dist/media-viewer.cjs +18 -0
  714. package/dist/media-viewer.cjs.map +1 -0
  715. package/dist/media-viewer.d.cts +6 -0
  716. package/dist/media-viewer.d.ts +6 -0
  717. package/dist/media-viewer.js +9 -0
  718. package/dist/media-viewer.js.map +1 -0
  719. package/dist/menu.cjs +17 -0
  720. package/dist/menu.cjs.map +1 -0
  721. package/dist/menu.d.cts +60 -0
  722. package/dist/menu.d.ts +60 -0
  723. package/dist/menu.js +4 -0
  724. package/dist/menu.js.map +1 -0
  725. package/dist/mobile-menu.cjs +26 -0
  726. package/dist/mobile-menu.cjs.map +1 -0
  727. package/dist/mobile-menu.d.cts +60 -0
  728. package/dist/mobile-menu.d.ts +60 -0
  729. package/dist/mobile-menu.js +13 -0
  730. package/dist/mobile-menu.js.map +1 -0
  731. package/dist/modal.cjs +21 -0
  732. package/dist/modal.cjs.map +1 -0
  733. package/dist/modal.d.cts +52 -0
  734. package/dist/modal.d.ts +52 -0
  735. package/dist/modal.js +8 -0
  736. package/dist/modal.js.map +1 -0
  737. package/dist/mode.cjs +37 -0
  738. package/dist/mode.cjs.map +1 -0
  739. package/dist/mode.d.cts +28 -0
  740. package/dist/mode.d.ts +28 -0
  741. package/dist/mode.js +8 -0
  742. package/dist/mode.js.map +1 -0
  743. package/dist/mood-meter.cjs +12 -0
  744. package/dist/mood-meter.cjs.map +1 -0
  745. package/dist/mood-meter.d.cts +67 -0
  746. package/dist/mood-meter.d.ts +67 -0
  747. package/dist/mood-meter.js +3 -0
  748. package/dist/mood-meter.js.map +1 -0
  749. package/dist/multi-switch.cjs +19 -0
  750. package/dist/multi-switch.cjs.map +1 -0
  751. package/dist/multi-switch.d.cts +18 -0
  752. package/dist/multi-switch.d.ts +18 -0
  753. package/dist/multi-switch.js +10 -0
  754. package/dist/multi-switch.js.map +1 -0
  755. package/dist/navbar.cjs +17 -0
  756. package/dist/navbar.cjs.map +1 -0
  757. package/dist/navbar.d.cts +60 -0
  758. package/dist/navbar.d.ts +60 -0
  759. package/dist/navbar.js +4 -0
  760. package/dist/navbar.js.map +1 -0
  761. package/dist/otp-input.cjs +16 -0
  762. package/dist/otp-input.cjs.map +1 -0
  763. package/dist/otp-input.d.cts +18 -0
  764. package/dist/otp-input.d.ts +18 -0
  765. package/dist/otp-input.js +7 -0
  766. package/dist/otp-input.js.map +1 -0
  767. package/dist/pagination.cjs +13 -0
  768. package/dist/pagination.cjs.map +1 -0
  769. package/dist/pagination.d.cts +16 -0
  770. package/dist/pagination.d.ts +16 -0
  771. package/dist/pagination.js +4 -0
  772. package/dist/pagination.js.map +1 -0
  773. package/dist/pdf-viewer.cjs +13 -0
  774. package/dist/pdf-viewer.cjs.map +1 -0
  775. package/dist/pdf-viewer.d.cts +16 -0
  776. package/dist/pdf-viewer.d.ts +16 -0
  777. package/dist/pdf-viewer.js +4 -0
  778. package/dist/pdf-viewer.js.map +1 -0
  779. package/dist/pillbox.cjs +14 -0
  780. package/dist/pillbox.cjs.map +1 -0
  781. package/dist/pillbox.d.cts +15 -0
  782. package/dist/pillbox.d.ts +15 -0
  783. package/dist/pillbox.js +5 -0
  784. package/dist/pillbox.js.map +1 -0
  785. package/dist/popover.cjs +21 -0
  786. package/dist/popover.cjs.map +1 -0
  787. package/dist/popover.d.cts +71 -0
  788. package/dist/popover.d.ts +71 -0
  789. package/dist/popover.js +8 -0
  790. package/dist/popover.js.map +1 -0
  791. package/dist/portal.cjs +12 -0
  792. package/dist/portal.cjs.map +1 -0
  793. package/dist/portal.d.cts +10 -0
  794. package/dist/portal.d.ts +10 -0
  795. package/dist/portal.js +3 -0
  796. package/dist/portal.js.map +1 -0
  797. package/dist/profile.cjs +14 -0
  798. package/dist/profile.cjs.map +1 -0
  799. package/dist/profile.d.cts +16 -0
  800. package/dist/profile.d.ts +16 -0
  801. package/dist/profile.js +5 -0
  802. package/dist/profile.js.map +1 -0
  803. package/dist/progress.cjs +13 -0
  804. package/dist/progress.cjs.map +1 -0
  805. package/dist/progress.d.cts +25 -0
  806. package/dist/progress.d.ts +25 -0
  807. package/dist/progress.js +4 -0
  808. package/dist/progress.js.map +1 -0
  809. package/dist/prompt-input.cjs +20 -0
  810. package/dist/prompt-input.cjs.map +1 -0
  811. package/dist/prompt-input.d.cts +76 -0
  812. package/dist/prompt-input.d.ts +76 -0
  813. package/dist/prompt-input.js +11 -0
  814. package/dist/prompt-input.js.map +1 -0
  815. package/dist/pull-quote.cjs +13 -0
  816. package/dist/pull-quote.cjs.map +1 -0
  817. package/dist/pull-quote.d.cts +33 -0
  818. package/dist/pull-quote.d.ts +33 -0
  819. package/dist/pull-quote.js +4 -0
  820. package/dist/pull-quote.js.map +1 -0
  821. package/dist/radio-group.cjs +19 -0
  822. package/dist/radio-group.cjs.map +1 -0
  823. package/dist/radio-group.d.cts +18 -0
  824. package/dist/radio-group.d.ts +18 -0
  825. package/dist/radio-group.js +10 -0
  826. package/dist/radio-group.js.map +1 -0
  827. package/dist/reason-tag.cjs +22 -0
  828. package/dist/reason-tag.cjs.map +1 -0
  829. package/dist/reason-tag.d.cts +57 -0
  830. package/dist/reason-tag.d.ts +57 -0
  831. package/dist/reason-tag.js +13 -0
  832. package/dist/reason-tag.js.map +1 -0
  833. package/dist/select.cjs +23 -0
  834. package/dist/select.cjs.map +1 -0
  835. package/dist/select.d.cts +41 -0
  836. package/dist/select.d.ts +41 -0
  837. package/dist/select.js +14 -0
  838. package/dist/select.js.map +1 -0
  839. package/dist/separator.cjs +13 -0
  840. package/dist/separator.cjs.map +1 -0
  841. package/dist/separator.d.cts +14 -0
  842. package/dist/separator.d.ts +14 -0
  843. package/dist/separator.js +4 -0
  844. package/dist/separator.js.map +1 -0
  845. package/dist/sidebar.cjs +25 -0
  846. package/dist/sidebar.cjs.map +1 -0
  847. package/dist/sidebar.d.cts +80 -0
  848. package/dist/sidebar.d.ts +80 -0
  849. package/dist/sidebar.js +12 -0
  850. package/dist/sidebar.js.map +1 -0
  851. package/dist/skeleton.cjs +13 -0
  852. package/dist/skeleton.cjs.map +1 -0
  853. package/dist/skeleton.d.cts +16 -0
  854. package/dist/skeleton.d.ts +16 -0
  855. package/dist/skeleton.js +4 -0
  856. package/dist/skeleton.js.map +1 -0
  857. package/dist/slider.cjs +19 -0
  858. package/dist/slider.cjs.map +1 -0
  859. package/dist/slider.d.cts +34 -0
  860. package/dist/slider.d.ts +34 -0
  861. package/dist/slider.js +10 -0
  862. package/dist/slider.js.map +1 -0
  863. package/dist/stat.cjs +17 -0
  864. package/dist/stat.cjs.map +1 -0
  865. package/dist/stat.d.cts +29 -0
  866. package/dist/stat.d.ts +29 -0
  867. package/dist/stat.js +4 -0
  868. package/dist/stat.js.map +1 -0
  869. package/dist/sticky-note.cjs +13 -0
  870. package/dist/sticky-note.cjs.map +1 -0
  871. package/dist/sticky-note.d.cts +53 -0
  872. package/dist/sticky-note.d.ts +53 -0
  873. package/dist/sticky-note.js +4 -0
  874. package/dist/sticky-note.js.map +1 -0
  875. package/dist/switch.cjs +17 -0
  876. package/dist/switch.cjs.map +1 -0
  877. package/dist/switch.d.cts +16 -0
  878. package/dist/switch.d.ts +16 -0
  879. package/dist/switch.js +8 -0
  880. package/dist/switch.js.map +1 -0
  881. package/dist/table.cjs +50 -0
  882. package/dist/table.cjs.map +1 -0
  883. package/dist/table.d.cts +89 -0
  884. package/dist/table.d.ts +89 -0
  885. package/dist/table.js +5 -0
  886. package/dist/table.js.map +1 -0
  887. package/dist/tabs.cjs +18 -0
  888. package/dist/tabs.cjs.map +1 -0
  889. package/dist/tabs.d.cts +68 -0
  890. package/dist/tabs.d.ts +68 -0
  891. package/dist/tabs.js +5 -0
  892. package/dist/tabs.js.map +1 -0
  893. package/dist/text.cjs +13 -0
  894. package/dist/text.cjs.map +1 -0
  895. package/dist/text.d.cts +17 -0
  896. package/dist/text.d.ts +17 -0
  897. package/dist/text.js +4 -0
  898. package/dist/text.js.map +1 -0
  899. package/dist/textarea.cjs +20 -0
  900. package/dist/textarea.cjs.map +1 -0
  901. package/dist/textarea.d.cts +15 -0
  902. package/dist/textarea.d.ts +15 -0
  903. package/dist/textarea.js +11 -0
  904. package/dist/textarea.js.map +1 -0
  905. package/dist/time-grid.cjs +13 -0
  906. package/dist/time-grid.cjs.map +1 -0
  907. package/dist/time-grid.d.cts +53 -0
  908. package/dist/time-grid.d.ts +53 -0
  909. package/dist/time-grid.js +4 -0
  910. package/dist/time-grid.js.map +1 -0
  911. package/dist/time-picker.cjs +16 -0
  912. package/dist/time-picker.cjs.map +1 -0
  913. package/dist/time-picker.d.cts +19 -0
  914. package/dist/time-picker.d.ts +19 -0
  915. package/dist/time-picker.js +7 -0
  916. package/dist/time-picker.js.map +1 -0
  917. package/dist/timeline.cjs +21 -0
  918. package/dist/timeline.cjs.map +1 -0
  919. package/dist/timeline.d.cts +10 -0
  920. package/dist/timeline.d.ts +10 -0
  921. package/dist/timeline.js +4 -0
  922. package/dist/timeline.js.map +1 -0
  923. package/dist/toast.cjs +18 -0
  924. package/dist/toast.cjs.map +1 -0
  925. package/dist/toast.d.cts +54 -0
  926. package/dist/toast.d.ts +54 -0
  927. package/dist/toast.js +5 -0
  928. package/dist/toast.js.map +1 -0
  929. package/dist/tooltip.cjs +15 -0
  930. package/dist/tooltip.cjs.map +1 -0
  931. package/dist/tooltip.d.cts +16 -0
  932. package/dist/tooltip.d.ts +16 -0
  933. package/dist/tooltip.js +6 -0
  934. package/dist/tooltip.js.map +1 -0
  935. package/dist/tree-nav.cjs +17 -0
  936. package/dist/tree-nav.cjs.map +1 -0
  937. package/dist/tree-nav.d.cts +114 -0
  938. package/dist/tree-nav.d.ts +114 -0
  939. package/dist/tree-nav.js +4 -0
  940. package/dist/tree-nav.js.map +1 -0
  941. package/dist/types-8Sv0rCjw.d.cts +58 -0
  942. package/dist/types-8Sv0rCjw.d.ts +58 -0
  943. package/dist/video-viewer.cjs +13 -0
  944. package/dist/video-viewer.cjs.map +1 -0
  945. package/dist/video-viewer.d.cts +14 -0
  946. package/dist/video-viewer.d.ts +14 -0
  947. package/dist/video-viewer.js +4 -0
  948. package/dist/video-viewer.js.map +1 -0
  949. package/package.json +845 -5
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/FileBrowser/FileBrowser.context.ts","../src/components/FileBrowser/FileBrowser.utils.ts","../src/components/FileBrowser/FileBrowserPathBar.tsx","../src/components/FileBrowser/FileBrowserToolbar.tsx","../src/components/FileBrowser/FileBrowserNode.tsx","../src/components/FileBrowser/FileBrowserTree.tsx","../src/components/FileBrowser/FileBrowser.tsx"],"names":["Fragment","jsxs","jsx","ChevronRight","useState"],"mappings":"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","file":"chunk-BYIY6BH2.js","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { FileBrowserContextValue } from \"./FileBrowser.types\";\n\nexport const FileBrowserContext = createContext<FileBrowserContextValue | null>(null);\n\nexport function useFileBrowser(): FileBrowserContextValue {\n const ctx = useContext(FileBrowserContext);\n if (!ctx) {\n throw new Error(\"useFileBrowser must be used within a <FileBrowser> component\");\n }\n return ctx;\n}\n","import type { FileEntry, FileSort } from \"./FileBrowser.types\";\n\n/**\n * Normalize free-typed path input: forward slashes, collapsed separators,\n * resolved `.` / `..` segments, no trailing slash. Absolute paths stay\n * absolute; relative paths stay relative (entry paths are identity and are\n * never rewritten — this is only for the editable path input).\n */\nexport function normalizePath(input: string): string {\n const raw = input.trim().replace(/\\\\/g, \"/\");\n if (raw === \"\") return \"/\";\n const absolute = raw.startsWith(\"/\");\n const out: string[] = [];\n for (const segment of raw.split(\"/\")) {\n if (segment === \"\" || segment === \".\") continue;\n if (segment === \"..\") {\n out.pop();\n continue;\n }\n out.push(segment);\n }\n if (out.length === 0) return \"/\";\n return (absolute ? \"/\" : \"\") + out.join(\"/\");\n}\n\n/** Parent of a path. Paths without a separator group under `\"/\"`. */\nexport function parentPath(path: string): string {\n const i = path.lastIndexOf(\"/\");\n if (i === -1) return \"/\";\n if (i === 0) return \"/\";\n return path.slice(0, i);\n}\n\nexport interface PathSegment {\n label: string;\n path: string;\n}\n\n/** Cumulative breadcrumb segments for a path (root anchor excluded). */\nexport function pathSegments(path: string): PathSegment[] {\n const absolute = path.startsWith(\"/\");\n const parts = path.split(\"/\").filter(Boolean);\n const segments: PathSegment[] = [];\n let acc = \"\";\n parts.forEach((part, i) => {\n acc = i === 0 && !absolute ? part : `${acc}/${part}`;\n segments.push({ label: part, path: acc });\n });\n return segments;\n}\n\n/**\n * Deterministic, numeric-aware name comparison. The locale is pinned to \"en\"\n * so server and client renders order identically (SSR safety).\n */\nfunction compareNames(a: string, b: string): number {\n const cmp = a.localeCompare(b, \"en\", { numeric: true, sensitivity: \"base\" });\n if (cmp !== 0) return cmp;\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/** Dirs-first, then the active sort field, with a stable ascending name tie-break. */\nexport function compareFileEntries(a: FileEntry, b: FileEntry, sort: FileSort): number {\n if (a.kind !== b.kind) return a.kind === \"dir\" ? -1 : 1;\n const direction = sort.direction === \"desc\" ? -1 : 1;\n let cmp: number;\n switch (sort.by) {\n case \"size\":\n cmp = (a.size ?? -1) - (b.size ?? -1);\n break;\n case \"mtime\": {\n const am = a.mtime ?? \"\";\n const bm = b.mtime ?? \"\";\n cmp = am < bm ? -1 : am > bm ? 1 : 0;\n break;\n }\n default:\n cmp = compareNames(a.name, b.name);\n }\n if (cmp !== 0) return direction * cmp;\n return compareNames(a.name, b.name);\n}\n\n/**\n * Whether a dir shows an expand affordance: known-empty dirs never do\n * (`hasChildren: false`, or a loaded/snapshot listing of zero entries);\n * unknown-depth dirs only do when a provider can load them.\n */\nexport function isEntryExpandable(\n entry: FileEntry,\n children: FileEntry[] | undefined,\n hasProvider: boolean,\n): boolean {\n if (entry.kind !== \"dir\" || entry.hasChildren === false) return false;\n if (children !== undefined) return children.length > 0;\n return hasProvider;\n}\n\n/**\n * Client-side name filter over loaded nodes only: an entry matches when its\n * name contains the query, or (for dirs) when any already-loaded descendant\n * matches. Never triggers loads.\n */\nexport function entryMatchesFilter(\n entry: FileEntry,\n query: string,\n entriesFor: (path: string) => FileEntry[] | undefined,\n visited: Set<string> = new Set(),\n): boolean {\n if (entry.name.toLowerCase().includes(query)) return true;\n if (entry.kind !== \"dir\" || visited.has(entry.path)) return false;\n visited.add(entry.path);\n const children = entriesFor(entry.path);\n return children?.some((child) => entryMatchesFilter(child, query, entriesFor, visited)) ?? false;\n}\n\n/** Compact, deterministic byte formatting (\"1.4 KB\", \"12 MB\"). */\nexport function formatFileSize(bytes: number): string {\n if (!Number.isFinite(bytes) || bytes < 0) return \"\";\n if (bytes < 1024) return `${bytes} B`;\n const units = [\"KB\", \"MB\", \"GB\", \"TB\"];\n let value = bytes;\n let unit = -1;\n do {\n value /= 1024;\n unit++;\n } while (value >= 1024 && unit < units.length - 1);\n const rounded = value >= 100 ? Math.round(value) : Math.round(value * 10) / 10;\n return `${rounded} ${units[unit]}`;\n}\n","import { Fragment, useState } from \"react\";\nimport { ChevronRight, Pencil } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { useFileBrowser } from \"./FileBrowser.context\";\nimport { normalizePath, pathSegments } from \"./FileBrowser.utils\";\nimport type { FileBrowserPathBarProps } from \"./FileBrowser.types\";\n\n// Segment styling mirrors Breadcrumbs.Item (the Breadcrumbs component itself\n// is href-only and collapses to a dropdown on mobile, so the path bar renders\n// its own always-visible, click-to-navigate trail).\nconst SEGMENT_CLASS =\n \"shrink-0 rounded text-[13px] text-zinc-500 transition-colors hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-300\";\nconst ACTIVE_SEGMENT_CLASS = \"shrink-0 truncate text-[13px] font-medium text-zinc-900 dark:text-white\";\n\n/**\n * Breadcrumb trail over the current directory plus an editable path input —\n * type a POSIX-style path and press Enter to navigate (lazy-loading it in\n * provider mode). Escape or blur cancels the edit.\n */\nexport function FileBrowserPathBar({\n editable = true,\n placeholder = \"/path/to/folder\",\n className,\n}: FileBrowserPathBarProps) {\n const { path, navigate } = useFileBrowser();\n const [editing, setEditing] = useState(false);\n const [draft, setDraft] = useState(\"\");\n\n const startEdit = () => {\n setDraft(path);\n setEditing(true);\n };\n\n const commit = () => {\n navigate(normalizePath(draft));\n setEditing(false);\n };\n\n const segments = pathSegments(path);\n const atRoot = segments.length === 0;\n\n return (\n <div\n data-react-fancy-file-browser-path=\"\"\n className={cn(\n \"flex items-center gap-1 border-b border-zinc-200 px-2 py-1.5 dark:border-zinc-700\",\n className,\n )}\n >\n {editing ? (\n <input\n data-react-fancy-file-browser-path-input=\"\"\n type=\"text\"\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n e.preventDefault();\n commit();\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n setEditing(false);\n }\n }}\n onBlur={() => setEditing(false)}\n autoFocus\n spellCheck={false}\n placeholder={placeholder}\n aria-label=\"Path\"\n className=\"min-w-0 flex-1 rounded-md border border-zinc-300 bg-transparent px-2 py-0.5 font-mono text-xs text-zinc-700 outline-none placeholder:text-zinc-400 focus:border-blue-400 dark:border-zinc-600 dark:text-zinc-300\"\n />\n ) : (\n <nav\n aria-label=\"Path\"\n onDoubleClick={editable ? startEdit : undefined}\n className=\"flex min-w-0 flex-1 items-center gap-1 overflow-x-auto\"\n >\n {atRoot ? (\n <span data-react-fancy-file-browser-path-segment=\"\" aria-current=\"location\" className={ACTIVE_SEGMENT_CLASS}>\n /\n </span>\n ) : (\n <button\n type=\"button\"\n data-react-fancy-file-browser-path-segment=\"\"\n onClick={() => navigate(\"/\")}\n className={SEGMENT_CLASS}\n >\n /\n </button>\n )}\n {segments.map((segment, i) => {\n const last = i === segments.length - 1;\n return (\n <Fragment key={segment.path}>\n {i > 0 && (\n <ChevronRight size={12} aria-hidden=\"true\" className=\"shrink-0 text-zinc-400\" />\n )}\n {last ? (\n <span\n data-react-fancy-file-browser-path-segment=\"\"\n aria-current=\"location\"\n className={ACTIVE_SEGMENT_CLASS}\n >\n {segment.label}\n </span>\n ) : (\n <button\n type=\"button\"\n data-react-fancy-file-browser-path-segment=\"\"\n onClick={() => navigate(segment.path)}\n className={SEGMENT_CLASS}\n >\n {segment.label}\n </button>\n )}\n </Fragment>\n );\n })}\n </nav>\n )}\n {editable && !editing && (\n <button\n type=\"button\"\n aria-label=\"Edit path\"\n onClick={startEdit}\n className=\"shrink-0 rounded-md p-1 text-zinc-400 transition-colors hover:bg-zinc-100 hover:text-zinc-600 dark:hover:bg-zinc-800 dark:hover:text-zinc-300\"\n >\n <Pencil size={13} />\n </button>\n )}\n </div>\n );\n}\n\nFileBrowserPathBar.displayName = \"FileBrowserPathBar\";\n","import { ArrowDown, ArrowUp, Search, X } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { useFileBrowser } from \"./FileBrowser.context\";\nimport type { FileBrowserToolbarProps, FileSortField } from \"./FileBrowser.types\";\n\nconst SORT_FIELDS: { field: FileSortField; label: string }[] = [\n { field: \"name\", label: \"Name\" },\n { field: \"size\", label: \"Size\" },\n { field: \"mtime\", label: \"Modified\" },\n];\n\n/**\n * Toolbar: client-side name filter (over loaded nodes only — never triggers\n * loads) plus a dirs-first sort control. Clicking the active sort field flips\n * its direction.\n */\nexport function FileBrowserToolbar({ filterPlaceholder = \"Filter\", className }: FileBrowserToolbarProps) {\n const { filter, setFilter, sort, setSort } = useFileBrowser();\n\n return (\n <div\n data-react-fancy-file-browser-toolbar=\"\"\n className={cn(\n \"flex items-center gap-2 border-b border-zinc-200 px-2 py-1.5 dark:border-zinc-700\",\n className,\n )}\n >\n <div\n data-react-fancy-file-browser-filter=\"\"\n className=\"flex min-w-0 flex-1 items-center gap-1.5 rounded-md border border-zinc-200 px-2 dark:border-zinc-700\"\n >\n <Search size={13} aria-hidden=\"true\" className=\"shrink-0 text-zinc-400\" />\n <input\n type=\"text\"\n value={filter}\n onChange={(e) => setFilter(e.target.value)}\n placeholder={filterPlaceholder}\n aria-label=\"Filter by name\"\n spellCheck={false}\n className=\"min-w-0 flex-1 bg-transparent py-1 text-xs text-zinc-700 outline-none placeholder:text-zinc-400 dark:text-zinc-300\"\n />\n {filter !== \"\" && (\n <button\n type=\"button\"\n aria-label=\"Clear filter\"\n onClick={() => setFilter(\"\")}\n className=\"shrink-0 text-zinc-400 transition-colors hover:text-zinc-600 dark:hover:text-zinc-300\"\n >\n <X size={12} />\n </button>\n )}\n </div>\n <div\n data-react-fancy-file-browser-sort=\"\"\n role=\"group\"\n aria-label=\"Sort\"\n className=\"flex shrink-0 items-center gap-0.5\"\n >\n {SORT_FIELDS.map(({ field, label }) => {\n const active = sort.by === field;\n return (\n <button\n key={field}\n type=\"button\"\n data-sort-field={field}\n aria-pressed={active}\n onClick={() =>\n setSort(\n active\n ? { by: field, direction: sort.direction === \"asc\" ? \"desc\" : \"asc\" }\n : { by: field, direction: \"asc\" },\n )\n }\n className={cn(\n \"flex items-center gap-0.5 rounded-md px-1.5 py-0.5 text-xs transition-colors\",\n active\n ? \"bg-zinc-100 font-medium text-zinc-900 dark:bg-zinc-800 dark:text-white\"\n : \"text-zinc-500 hover:text-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-300\",\n )}\n >\n {label}\n {active &&\n (sort.direction === \"asc\" ? (\n <ArrowUp size={11} aria-hidden=\"true\" />\n ) : (\n <ArrowDown size={11} aria-hidden=\"true\" />\n ))}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n\nFileBrowserToolbar.displayName = \"FileBrowserToolbar\";\n","import { ChevronRight, CircleAlert, Loader2, RotateCw } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { useFileBrowser } from \"./FileBrowser.context\";\nimport { formatFileSize, isEntryExpandable } from \"./FileBrowser.utils\";\nimport type { FileBrowserNodeProps } from \"./FileBrowser.types\";\n\n// ---------------------------------------------------------------------------\n// Icons — mirror TreeNav's file/folder icons so both tree surfaces look the\n// same (TreeNav keeps them internal; duplicating ~40 lines beats widening its\n// public API).\n// ---------------------------------------------------------------------------\n\nconst EXT_COLORS: Record<string, string> = {\n ts: \"#3178c6\",\n tsx: \"#3178c6\",\n js: \"#f7df1e\",\n jsx: \"#f7df1e\",\n php: \"#777bb4\",\n html: \"#e34c26\",\n htm: \"#e34c26\",\n css: \"#264de4\",\n json: \"#a1a1aa\",\n md: \"#71717a\",\n yaml: \"#cb171e\",\n yml: \"#cb171e\",\n};\n\nfunction FileIcon({ ext }: { ext?: string }) {\n const color = (ext && EXT_COLORS[ext.toLowerCase()]) || \"#71717a\";\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" className=\"shrink-0\">\n <path d=\"M4 1h5.5L13 4.5V14a1 1 0 01-1 1H4a1 1 0 01-1-1V2a1 1 0 011-1z\" stroke={color} strokeWidth=\"1.2\" />\n <path d=\"M9 1v4h4\" stroke={color} strokeWidth=\"1.2\" />\n </svg>\n );\n}\n\nfunction FolderIcon({ open }: { open: boolean }) {\n if (open) {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" className=\"shrink-0\">\n <path d=\"M1.5 3.5a1 1 0 011-1h3l1.5 1.5H13a1 1 0 011 1V5H2.5V3.5z\" fill=\"#fbbf24\" />\n <path d=\"M1 6h13l-1.5 7.5H2.5L1 6z\" fill=\"#fbbf24\" opacity=\"0.7\" />\n </svg>\n );\n }\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" className=\"shrink-0\">\n <path d=\"M1.5 3a1 1 0 011-1h3l1.5 1.5H13a1 1 0 011 1v8a1 1 0 01-1 1H2.5a1 1 0 01-1-1V3z\" fill=\"#fbbf24\" />\n </svg>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Status rows — loading / error / empty placeholders inside the tree. Not\n// treeitems (they never receive roving focus); the owning folder carries\n// `aria-busy` while its children load.\n// ---------------------------------------------------------------------------\n\nexport interface FileBrowserStatusRowProps {\n depth: number;\n kind: \"loading\" | \"error\" | \"empty\" | \"no-matches\" | \"unknown\";\n message?: string;\n onRetry?: () => void;\n}\n\nexport function FileBrowserStatusRow({ depth, kind, message, onRetry }: FileBrowserStatusRowProps) {\n const { indentSize } = useFileBrowser();\n const paddingLeft = depth * indentSize + 4 + 18;\n\n if (kind === \"error\") {\n return (\n <div\n role=\"none\"\n data-react-fancy-file-browser-status=\"error\"\n className=\"flex items-center gap-1.5 py-0.5 pr-2 text-xs text-red-600 dark:text-red-400\"\n style={{ paddingLeft }}\n >\n <CircleAlert size={12} className=\"shrink-0\" />\n <span className=\"min-w-0 flex-1 truncate\">{message || \"Failed to load\"}</span>\n {onRetry && (\n <button\n type=\"button\"\n onClick={onRetry}\n className=\"flex shrink-0 items-center gap-1 rounded-md px-1.5 py-0.5 text-[11px] text-zinc-500 transition-colors hover:bg-zinc-100 hover:text-zinc-700 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-200\"\n >\n <RotateCw size={11} />\n Retry\n </button>\n )}\n </div>\n );\n }\n\n return (\n <div\n role=\"none\"\n data-react-fancy-file-browser-status={kind}\n className=\"flex items-center gap-1.5 py-0.5 text-xs text-zinc-400 italic dark:text-zinc-500\"\n style={{ paddingLeft }}\n >\n {kind === \"loading\" && <Loader2 size={12} className=\"shrink-0 animate-spin\" aria-hidden=\"true\" />}\n <span className=\"truncate\">\n {kind === \"loading\" ? \"Loading…\" : kind === \"empty\" ? \"Empty\" : kind === \"no-matches\" ? \"No matches\" : \"No entries\"}\n </span>\n </div>\n );\n}\n\nFileBrowserStatusRow.displayName = \"FileBrowserStatusRow\";\n\n// ---------------------------------------------------------------------------\n// Node\n// ---------------------------------------------------------------------------\n\nexport function FileBrowserNode({ entry, depth }: FileBrowserNodeProps) {\n const {\n entriesFor, visibleChildrenFor, statusFor, errorFor, loadPath, hasProvider,\n expandedPaths, toggleExpanded, navigate,\n isSelected, isSelectable, selectEntry,\n tabFocusPath, setFocusedPath, focusRow, registerRow,\n indentSize, showIcons,\n } = useFileBrowser();\n\n const rawChildren = entriesFor(entry.path);\n const childrenKnown = rawChildren !== undefined;\n const expandable = isEntryExpandable(entry, rawChildren, hasProvider);\n const expanded = expandable && expandedPaths.includes(entry.path);\n const status = statusFor(entry.path);\n const selectable = isSelectable(entry);\n const selected = isSelected(entry.path);\n const loading = expanded && !childrenKnown && status === \"loading\";\n const paddingLeft = depth * indentSize + 4;\n const ext = entry.name.includes(\".\") ? entry.name.split(\".\").pop() : undefined;\n\n const handleClick = () => {\n if (entry.disabled) return;\n setFocusedPath(entry.path);\n focusRow(entry.path);\n if (selectable) selectEntry(entry);\n if (expandable) toggleExpanded(entry.path);\n };\n\n const handleDoubleClick = () => {\n if (entry.disabled || entry.kind !== \"dir\") return;\n navigate(entry.path);\n };\n\n const handleChevronClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (!entry.disabled && expandable) toggleExpanded(entry.path);\n };\n\n const visibleChildren = expanded && childrenKnown ? visibleChildrenFor(entry.path) : [];\n\n return (\n <div\n role=\"treeitem\"\n data-react-fancy-file-browser-node=\"\"\n data-path={entry.path}\n data-kind={entry.kind}\n aria-level={depth + 1}\n aria-expanded={expandable ? expanded : undefined}\n aria-selected={selectable ? selected : undefined}\n aria-disabled={entry.disabled || undefined}\n aria-busy={loading || undefined}\n tabIndex={tabFocusPath === entry.path ? 0 : -1}\n ref={(el) => registerRow(entry.path, el)}\n onFocus={(e) => {\n if (e.target === e.currentTarget) setFocusedPath(entry.path);\n }}\n className=\"group outline-none\"\n >\n <div\n data-react-fancy-file-browser-row=\"\"\n onClick={handleClick}\n onDoubleClick={handleDoubleClick}\n className={cn(\n \"flex w-full cursor-pointer items-center gap-1 rounded-md py-0.5 pr-2 text-left text-[13px] transition-colors select-none\",\n selected\n ? \"bg-blue-500/15 text-blue-600 dark:text-blue-400\"\n : \"text-zinc-700 hover:bg-zinc-100 dark:text-zinc-300 dark:hover:bg-zinc-800\",\n entry.disabled && \"pointer-events-none opacity-40\",\n \"group-focus-visible:ring-2 group-focus-visible:ring-blue-500/40 group-focus-visible:ring-inset\",\n )}\n style={{ paddingLeft }}\n >\n {expandable ? (\n loading ? (\n <Loader2 size={14} className=\"shrink-0 animate-spin text-zinc-400\" aria-hidden=\"true\" />\n ) : (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n onClick={handleChevronClick}\n className=\"flex shrink-0 items-center justify-center text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300\"\n >\n <ChevronRight\n size={14}\n className={cn(\"transition-transform duration-150\", expanded && \"rotate-90\")}\n />\n </button>\n )\n ) : (\n <span className=\"w-3.5 shrink-0\" />\n )}\n {showIcons &&\n (entry.kind === \"dir\" ? <FolderIcon open={expanded} /> : <FileIcon ext={ext} />)}\n <span className=\"min-w-0 flex-1 truncate\">{entry.name}</span>\n {entry.kind === \"file\" && entry.size !== undefined && (\n <span className=\"shrink-0 text-[11px] text-zinc-400 tabular-nums dark:text-zinc-500\">\n {formatFileSize(entry.size)}\n </span>\n )}\n </div>\n\n {expanded && (\n <div role=\"group\" data-react-fancy-file-browser-node-children=\"\">\n {/* An expanded-but-unknown folder is only reachable with a provider;\n \"idle\" means its lazy load is about to start, so render it as\n loading (keeps SSR output and the first client frame identical). */}\n {!childrenKnown && (status === \"loading\" || status === \"idle\") && (\n <FileBrowserStatusRow depth={depth + 1} kind=\"loading\" />\n )}\n {!childrenKnown && status === \"error\" && (\n <FileBrowserStatusRow\n depth={depth + 1}\n kind=\"error\"\n message={errorFor(entry.path)}\n onRetry={() => loadPath(entry.path, { reload: true })}\n />\n )}\n {childrenKnown &&\n (visibleChildren.length > 0 ? (\n visibleChildren.map((child) => (\n <FileBrowserNode key={child.path} entry={child} depth={depth + 1} />\n ))\n ) : (\n <FileBrowserStatusRow\n depth={depth + 1}\n kind={rawChildren!.length === 0 ? \"empty\" : \"no-matches\"}\n />\n ))}\n </div>\n )}\n </div>\n );\n}\n\nFileBrowserNode.displayName = \"FileBrowserNode\";\n","import { cn } from \"../../utils/cn\";\nimport { useFileBrowser } from \"./FileBrowser.context\";\nimport { FileBrowserNode, FileBrowserStatusRow } from \"./FileBrowserNode\";\nimport type { FileBrowserRow, FileBrowserTreeProps } from \"./FileBrowser.types\";\n\n/**\n * The tree pane: ARIA `tree` semantics, roving tabindex, and full keyboard\n * navigation (arrows / Enter / Space / Home / End) over the flattened row\n * order. Lazy loads fire on expand only.\n */\nexport function FileBrowserTree({ ariaLabel = \"Files\", className }: FileBrowserTreeProps) {\n const ctx = useFileBrowser();\n const {\n path, entriesFor, visibleChildrenFor, statusFor, errorFor, loadPath, hasProvider,\n visibleRows, tabFocusPath, setFocusedPath, focusRow,\n toggleExpanded, isSelectable, selectEntry, navigate, multiple,\n } = ctx;\n\n const rootEntries = entriesFor(path);\n const rootStatus = statusFor(path);\n const rootChildren = rootEntries !== undefined ? visibleChildrenFor(path) : [];\n\n const moveTo = (row: FileBrowserRow) => {\n setFocusedPath(row.entry.path);\n focusRow(row.entry.path);\n };\n\n const activate = (row: FileBrowserRow) => {\n if (row.entry.disabled) return;\n if (isSelectable(row.entry)) selectEntry(row.entry);\n if (row.expandable) toggleExpanded(row.entry.path);\n else if (row.entry.kind === \"dir\" && !isSelectable(row.entry)) navigate(row.entry.path);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n const rows = visibleRows;\n if (rows.length === 0) return;\n const index = rows.findIndex((row) => row.entry.path === tabFocusPath);\n const current = index >= 0 ? rows[index] : rows[0];\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n if (index < rows.length - 1) moveTo(rows[index + 1]);\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (index > 0) moveTo(rows[index - 1]);\n break;\n case \"Home\":\n e.preventDefault();\n moveTo(rows[0]);\n break;\n case \"End\":\n e.preventDefault();\n moveTo(rows[rows.length - 1]);\n break;\n case \"ArrowRight\":\n e.preventDefault();\n if (current.entry.disabled) break;\n if (current.expandable && !current.expanded) {\n toggleExpanded(current.entry.path);\n } else if (current.expanded) {\n const firstChild = rows[index + 1];\n if (firstChild && firstChild.parentPath === current.entry.path) moveTo(firstChild);\n }\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n if (current.expanded && !current.entry.disabled) {\n toggleExpanded(current.entry.path);\n } else if (current.parentPath) {\n const parent = rows.find((row) => row.entry.path === current.parentPath);\n if (parent) moveTo(parent);\n }\n break;\n case \"Enter\":\n e.preventDefault();\n activate(current);\n break;\n case \" \":\n e.preventDefault();\n if (!current.entry.disabled) selectEntry(current.entry);\n break;\n }\n };\n\n return (\n <div\n role=\"tree\"\n aria-label={ariaLabel}\n aria-multiselectable={multiple || undefined}\n data-react-fancy-file-browser-tree=\"\"\n className={cn(\"min-h-0 flex-1 overflow-auto p-1\", className)}\n onKeyDown={handleKeyDown}\n >\n {/* \"idle\" with a provider renders as loading too: loads fire in an\n effect, so this is what the server (and first client frame) shows\n right before the request starts — keeps SSR + hydration identical. */}\n {rootEntries === undefined && hasProvider && (rootStatus === \"loading\" || rootStatus === \"idle\") && (\n <FileBrowserStatusRow depth={0} kind=\"loading\" />\n )}\n {rootEntries === undefined && rootStatus === \"error\" && (\n <FileBrowserStatusRow\n depth={0}\n kind=\"error\"\n message={errorFor(path)}\n onRetry={() => loadPath(path, { reload: true })}\n />\n )}\n {rootEntries === undefined && rootStatus === \"idle\" && !hasProvider && (\n <FileBrowserStatusRow depth={0} kind=\"unknown\" />\n )}\n {rootEntries !== undefined &&\n (rootChildren.length > 0 ? (\n rootChildren.map((entry) => (\n <FileBrowserNode key={entry.path} entry={entry} depth={0} />\n ))\n ) : (\n <FileBrowserStatusRow depth={0} kind={rootEntries.length === 0 ? \"empty\" : \"no-matches\"} />\n ))}\n </div>\n );\n}\n\nFileBrowserTree.displayName = \"FileBrowserTree\";\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport { FileBrowserContext } from \"./FileBrowser.context\";\nimport { FileBrowserPathBar } from \"./FileBrowserPathBar\";\nimport { FileBrowserToolbar } from \"./FileBrowserToolbar\";\nimport { FileBrowserTree } from \"./FileBrowserTree\";\nimport { FileBrowserNode } from \"./FileBrowserNode\";\nimport {\n compareFileEntries,\n entryMatchesFilter,\n isEntryExpandable,\n parentPath,\n} from \"./FileBrowser.utils\";\nimport type {\n FileBrowserContextValue,\n FileBrowserProps,\n FileBrowserRow,\n FileEntry,\n FileLoadStatus,\n FileSnapshotNode,\n FileSort,\n} from \"./FileBrowser.types\";\n\nconst DEFAULT_SORT: FileSort = { by: \"name\", direction: \"asc\" };\n\nfunction snapshotNodeToEntry(node: FileSnapshotNode): FileEntry {\n const { children: _children, ...entry } = node;\n return entry;\n}\n\n/**\n * Index a snapshot tree into a `parent path -> children` map. Roots group\n * under their own parent path (usually `\"/\"`); any node with a materialized\n * `children` array defines that folder's listing. Dirs with `children`\n * undefined stay unknown — a provider fills them lazily in hybrid mode.\n */\nfunction buildSnapshotMap(snapshot: FileSnapshotNode[] | undefined): Map<string, FileEntry[]> {\n const map = new Map<string, FileEntry[]>();\n if (!snapshot || snapshot.length === 0) return map;\n\n for (const root of snapshot) {\n const parent = parentPath(root.path);\n const list = map.get(parent);\n if (list) list.push(snapshotNodeToEntry(root));\n else map.set(parent, [snapshotNodeToEntry(root)]);\n }\n\n const walk = (nodes: FileSnapshotNode[]) => {\n for (const node of nodes) {\n if (node.children) {\n map.set(node.path, node.children.map(snapshotNodeToEntry));\n walk(node.children);\n }\n }\n };\n walk(snapshot);\n\n return map;\n}\n\n/**\n * FileBrowser — remote-capable file/folder browser + directory picker.\n *\n * Browses any file tree the host can describe — local FS, HTTP, SSH, or a\n * remote machine streaming snapshots — via two feeding modes that may be\n * combined:\n *\n * - **Provider mode (lazy pull):** pass `provider.loadChildren(path)`. Folders\n * load on first expand with per-node loading + error states; the tree is\n * never walked eagerly.\n * - **Snapshot mode (streamed push):** pass a JSON-friendly `snapshot` tree\n * and replace/patch it as chunks arrive (relay / WebSocket / MCP). The\n * snapshot is the source of truth for every path it covers; with a provider\n * also present, unknown-depth folders stay lazily loadable (hybrid).\n *\n * Fully controlled per the Human+ component contract (`value`/`onChange`,\n * `path`/`onPathChange`, `expandedPaths`/`onExpandedChange`, plus\n * `sort`/`filter`), with uncontrolled `defaultX` fallbacks. Every row carries\n * a `data-path` attribute — paths are the stable handles agents target, never\n * indexes or generated ids.\n *\n * Agent bridge sketch (ships later in `@particle-academy/agent-integrations`):\n * `registerFilesBridge(server, { adapter })` will expose MCP tools over this\n * surface — `files_list(path)`, `files_expand(path)` / `files_collapse(path)`,\n * `files_select(paths)`, `files_navigate(path)`, and\n * `files_request_snapshot(path, depth)` — with each mutation emitting an\n * `AgentActivity` event so presence, undo, and coaching layers compose. The\n * adapter maps those tools onto the same controlled props\n * (`value`/`path`/`expandedPaths`) and provider/snapshot contract; no DOM\n * scraping required.\n *\n * Read-only in v1: no content preview (pair with fancy-code's `FileViewer`)\n * and no write operations — rename/delete/upload arrive later behind a\n * `pendingMode`-gated iteration.\n */\nfunction FileBrowserRoot({\n provider,\n snapshot,\n select = \"file\",\n multiple = false,\n value,\n defaultValue,\n onChange,\n path,\n defaultPath = \"/\",\n onPathChange,\n expandedPaths,\n defaultExpandedPaths,\n onExpandedChange,\n sort,\n defaultSort,\n onSortChange,\n filter,\n defaultFilter,\n onFilterChange,\n onError,\n indentSize = 16,\n showIcons = true,\n className,\n children,\n}: FileBrowserProps) {\n // ---------------------------------------------------------------------------\n // Controlled / uncontrolled state\n // ---------------------------------------------------------------------------\n\n const [currentPath, setCurrentPath] = useControllableState(path, defaultPath, onPathChange);\n const [expanded, setExpanded] = useControllableState(\n expandedPaths,\n defaultExpandedPaths ?? [],\n onExpandedChange,\n );\n const [sortState, setSortState] = useControllableState(sort, defaultSort ?? DEFAULT_SORT, onSortChange);\n const [filterState, setFilterState] = useControllableState(filter, defaultFilter ?? \"\", onFilterChange);\n\n // Selection is managed directly (not via useControllableState) because\n // onChange also receives the matching FileEntry objects.\n const [internalValue, setInternalValue] = useState<string | string[] | null>(\n () => defaultValue ?? (multiple ? [] : null),\n );\n const selection = value !== undefined ? value : internalValue;\n const selectedPaths = useMemo(\n () => (selection == null ? [] : Array.isArray(selection) ? selection : [selection]),\n [selection],\n );\n\n // ---------------------------------------------------------------------------\n // Data layer — snapshot map + lazy provider cache\n // ---------------------------------------------------------------------------\n\n const snapshotMap = useMemo(() => buildSnapshotMap(snapshot), [snapshot]);\n\n const [loadedChildren, setLoadedChildren] = useState<Record<string, FileEntry[]>>({});\n const [loadStatus, setLoadStatus] = useState<Record<string, FileLoadStatus>>({});\n const [loadErrors, setLoadErrors] = useState<Record<string, string>>({});\n\n const seqCounter = useRef(0);\n const requestSeq = useRef<Record<string, number>>({});\n\n // Latest-state refs so `loadPath` stays referentially stable.\n const stateRef = useRef({ snapshotMap, loadedChildren, loadStatus });\n stateRef.current = { snapshotMap, loadedChildren, loadStatus };\n const providerRef = useRef(provider);\n providerRef.current = provider;\n const onErrorRef = useRef(onError);\n onErrorRef.current = onError;\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n\n const loadPath = useCallback((targetPath: string, options?: { reload?: boolean }) => {\n const prov = providerRef.current;\n if (!prov) return;\n const { snapshotMap: snap, loadedChildren: loaded, loadStatus: statuses } = stateRef.current;\n const status = statuses[targetPath] ?? \"idle\";\n if (status === \"loading\") return;\n const known = snap.get(targetPath) ?? loaded[targetPath];\n if (!options?.reload && (known !== undefined || status === \"error\")) return;\n\n const requestId = ++seqCounter.current;\n requestSeq.current[targetPath] = requestId;\n setLoadStatus((prev) => ({ ...prev, [targetPath]: \"loading\" }));\n\n prov.loadChildren(targetPath).then(\n (entries) => {\n if (requestSeq.current[targetPath] !== requestId) return;\n setLoadedChildren((prev) => ({ ...prev, [targetPath]: entries }));\n setLoadStatus((prev) => ({ ...prev, [targetPath]: \"loaded\" }));\n setLoadErrors((prev) => {\n if (!(targetPath in prev)) return prev;\n const next = { ...prev };\n delete next[targetPath];\n return next;\n });\n },\n (error: unknown) => {\n if (requestSeq.current[targetPath] !== requestId) return;\n setLoadStatus((prev) => ({ ...prev, [targetPath]: \"error\" }));\n setLoadErrors((prev) => ({\n ...prev,\n [targetPath]: error instanceof Error ? error.message : String(error),\n }));\n onErrorRef.current?.(targetPath, error);\n },\n );\n }, []);\n\n const entriesFor = useCallback(\n (p: string) => snapshotMap.get(p) ?? loadedChildren[p],\n [snapshotMap, loadedChildren],\n );\n\n const statusFor = useCallback(\n (p: string): FileLoadStatus => {\n if (snapshotMap.has(p)) return \"loaded\";\n const status = loadStatus[p];\n if (status) return status;\n return loadedChildren[p] !== undefined ? \"loaded\" : \"idle\";\n },\n [snapshotMap, loadStatus, loadedChildren],\n );\n\n const errorFor = useCallback((p: string) => loadErrors[p], [loadErrors]);\n\n // Lazy loading — only the current directory and explicitly expanded folders\n // (including expansions driven from outside via the controlled\n // `expandedPaths` prop). Never an eager walk; errored paths wait for an\n // explicit retry.\n useEffect(() => {\n if (!provider) return;\n loadPath(currentPath);\n for (const p of expanded) loadPath(p);\n }, [provider, currentPath, expanded, snapshotMap, loadPath]);\n\n // ---------------------------------------------------------------------------\n // Filter + sort + flattened visible rows\n // ---------------------------------------------------------------------------\n\n const filterLower = filterState.trim().toLowerCase();\n\n const visibleChildrenFor = useCallback(\n (p: string): FileEntry[] => {\n const entries = entriesFor(p);\n if (!entries) return [];\n const filtered = filterLower\n ? entries.filter((entry) => entryMatchesFilter(entry, filterLower, entriesFor))\n : entries.slice();\n return filtered.sort((a, b) => compareFileEntries(a, b, sortState));\n },\n [entriesFor, filterLower, sortState],\n );\n\n const visibleRows = useMemo(() => {\n const rows: FileBrowserRow[] = [];\n const visited = new Set<string>([currentPath]);\n const walk = (p: string, depth: number, parent: string | null) => {\n for (const entry of visibleChildrenFor(p)) {\n const expandable = isEntryExpandable(entry, entriesFor(entry.path), !!provider);\n const isOpen = expandable && expanded.includes(entry.path);\n rows.push({ entry, depth, expandable, expanded: isOpen, parentPath: parent });\n if (isOpen && !visited.has(entry.path)) {\n visited.add(entry.path);\n walk(entry.path, depth + 1, entry.path);\n }\n }\n };\n walk(currentPath, 0, null);\n return rows;\n }, [visibleChildrenFor, entriesFor, provider, expanded, currentPath]);\n\n // ---------------------------------------------------------------------------\n // Selection\n // ---------------------------------------------------------------------------\n\n const entryIndex = useMemo(() => {\n const map = new Map<string, FileEntry>();\n for (const list of snapshotMap.values()) {\n for (const entry of list) map.set(entry.path, entry);\n }\n for (const list of Object.values(loadedChildren)) {\n for (const entry of list) {\n if (!map.has(entry.path)) map.set(entry.path, entry);\n }\n }\n return map;\n }, [snapshotMap, loadedChildren]);\n\n const isSelectable = useCallback(\n (entry: FileEntry) =>\n !entry.disabled &&\n (select === \"both\" || (select === \"file\" ? entry.kind === \"file\" : entry.kind === \"dir\")),\n [select],\n );\n\n const isSelected = useCallback((p: string) => selectedPaths.includes(p), [selectedPaths]);\n\n const commitSelection = useCallback(\n (paths: string[]) => {\n const nextValue = multiple ? paths : (paths[0] ?? null);\n if (value === undefined) setInternalValue(nextValue);\n onChangeRef.current?.(\n nextValue,\n paths\n .map((p) => entryIndex.get(p))\n .filter((entry): entry is FileEntry => entry !== undefined),\n );\n },\n [multiple, value, entryIndex],\n );\n\n const selectEntry = useCallback(\n (entry: FileEntry) => {\n if (!isSelectable(entry)) return;\n if (multiple) {\n commitSelection(\n selectedPaths.includes(entry.path)\n ? selectedPaths.filter((p) => p !== entry.path)\n : [...selectedPaths, entry.path],\n );\n } else {\n commitSelection([entry.path]);\n }\n },\n [isSelectable, multiple, selectedPaths, commitSelection],\n );\n\n // ---------------------------------------------------------------------------\n // Expansion, navigation, roving focus\n // ---------------------------------------------------------------------------\n\n const toggleExpanded = useCallback(\n (p: string) => {\n setExpanded((prev) => (prev.includes(p) ? prev.filter((x) => x !== p) : [...prev, p]));\n },\n [setExpanded],\n );\n\n const [focusedPath, setFocusedPath] = useState<string | null>(null);\n\n const navigate = useCallback(\n (p: string) => {\n setCurrentPath(p);\n setFilterState(\"\");\n setFocusedPath(null);\n },\n [setCurrentPath, setFilterState],\n );\n\n const rowRefs = useRef(new Map<string, HTMLElement>());\n\n const registerRow = useCallback((p: string, el: HTMLElement | null) => {\n if (el) rowRefs.current.set(p, el);\n else rowRefs.current.delete(p);\n }, []);\n\n const focusRow = useCallback((p: string) => {\n rowRefs.current.get(p)?.focus();\n }, []);\n\n const tabFocusPath = useMemo(() => {\n if (focusedPath && visibleRows.some((row) => row.entry.path === focusedPath)) {\n return focusedPath;\n }\n return visibleRows[0]?.entry.path ?? null;\n }, [focusedPath, visibleRows]);\n\n // ---------------------------------------------------------------------------\n // Context + render\n // ---------------------------------------------------------------------------\n\n const ctx = useMemo<FileBrowserContextValue>(\n () => ({\n entriesFor,\n visibleChildrenFor,\n statusFor,\n errorFor,\n loadPath,\n hasProvider: !!provider,\n path: currentPath,\n navigate,\n expandedPaths: expanded,\n toggleExpanded,\n select,\n multiple,\n selectedPaths,\n isSelected,\n isSelectable,\n selectEntry,\n sort: sortState,\n setSort: setSortState,\n filter: filterState,\n setFilter: setFilterState,\n visibleRows,\n focusedPath,\n setFocusedPath,\n tabFocusPath,\n focusRow,\n registerRow,\n indentSize,\n showIcons,\n }),\n [\n entriesFor, visibleChildrenFor, statusFor, errorFor, loadPath, provider,\n currentPath, navigate, expanded, toggleExpanded, select, multiple,\n selectedPaths, isSelected, isSelectable, selectEntry, sortState,\n setSortState, filterState, setFilterState, visibleRows, focusedPath,\n tabFocusPath, focusRow, registerRow, indentSize, showIcons,\n ],\n );\n\n return (\n <FileBrowserContext.Provider value={ctx}>\n <div\n data-react-fancy-file-browser=\"\"\n className={cn(\n \"flex flex-col overflow-hidden rounded-lg border border-zinc-200 bg-white text-sm dark:border-zinc-700 dark:bg-zinc-900\",\n className,\n )}\n >\n {children ?? (\n <>\n <FileBrowserPathBar />\n <FileBrowserToolbar />\n <FileBrowserTree />\n </>\n )}\n </div>\n </FileBrowserContext.Provider>\n );\n}\n\nFileBrowserRoot.displayName = \"FileBrowser\";\n\nexport const FileBrowser = Object.assign(FileBrowserRoot, {\n PathBar: FileBrowserPathBar,\n Toolbar: FileBrowserToolbar,\n Tree: FileBrowserTree,\n Node: FileBrowserNode,\n});\n"]}
@@ -0,0 +1,164 @@
1
+ import { dirtyRingClasses } from './chunk-GFYSELJF.js';
2
+ import { useInlineEdit } from './chunk-OL53XYHF.js';
3
+ import { useFieldMode } from './chunk-NRXK42LO.js';
4
+ import { useControllableState } from './chunk-6FQGMVF2.js';
5
+ import { cn } from './chunk-DSUHZO6T.js';
6
+ import { forwardRef, useId } from 'react';
7
+ import { jsxs, jsx } from 'react/jsx-runtime';
8
+
9
+ // src/components/inputs/Switch/Switch.colors.ts
10
+ var switchTrack = {
11
+ slate: "bg-slate-500",
12
+ gray: "bg-gray-500",
13
+ zinc: "bg-zinc-500",
14
+ neutral: "bg-neutral-500",
15
+ stone: "bg-stone-500",
16
+ red: "bg-red-500",
17
+ orange: "bg-orange-500",
18
+ amber: "bg-amber-500",
19
+ yellow: "bg-yellow-500",
20
+ lime: "bg-lime-500",
21
+ green: "bg-green-500",
22
+ emerald: "bg-emerald-500",
23
+ teal: "bg-teal-500",
24
+ cyan: "bg-cyan-500",
25
+ sky: "bg-sky-500",
26
+ blue: "bg-blue-500",
27
+ indigo: "bg-indigo-500",
28
+ violet: "bg-violet-500",
29
+ purple: "bg-purple-500",
30
+ fuchsia: "bg-fuchsia-500",
31
+ pink: "bg-pink-500",
32
+ rose: "bg-rose-500"
33
+ };
34
+ var Switch = forwardRef(
35
+ ({
36
+ size = "md",
37
+ dirty,
38
+ error,
39
+ label,
40
+ description,
41
+ required,
42
+ disabled,
43
+ className,
44
+ id,
45
+ name,
46
+ checked: controlledChecked,
47
+ defaultChecked = false,
48
+ onCheckedChange,
49
+ color = "blue",
50
+ mode,
51
+ ...rest
52
+ }, ref) => {
53
+ const autoId = useId();
54
+ const switchId = id ?? autoId;
55
+ const resolvedMode = useFieldMode(mode);
56
+ const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);
57
+ const [checked, setChecked] = useControllableState(
58
+ controlledChecked,
59
+ defaultChecked,
60
+ onCheckedChange
61
+ );
62
+ const trackSizes = {
63
+ xs: "h-3.5 w-6",
64
+ sm: "h-4 w-7",
65
+ md: "h-5 w-9",
66
+ lg: "h-6 w-11",
67
+ xl: "h-7 w-[52px]"
68
+ }[size];
69
+ const knobSizes = {
70
+ xs: "h-2.5 w-2.5",
71
+ sm: "h-3 w-3",
72
+ md: "h-4 w-4",
73
+ lg: "h-5 w-5",
74
+ xl: "h-6 w-6"
75
+ }[size];
76
+ const translateOn = {
77
+ xs: "translate-x-2.5",
78
+ sm: "translate-x-3",
79
+ md: "translate-x-4",
80
+ lg: "translate-x-5",
81
+ xl: "translate-x-6"
82
+ }[size];
83
+ return /* @__PURE__ */ jsxs("div", { ...rest, "data-react-fancy-switch": "", className: cn("flex items-start gap-2", className), children: [
84
+ !showControl ? /* @__PURE__ */ jsx(
85
+ "span",
86
+ {
87
+ "data-react-fancy-display": "",
88
+ "data-mode": "view",
89
+ role: interactive ? "button" : void 0,
90
+ tabIndex: interactive ? 0 : void 0,
91
+ title: interactive ? "Click to edit" : void 0,
92
+ onClick: interactive ? enterEdit : void 0,
93
+ onKeyDown: interactive ? (e) => {
94
+ if (e.key === "Enter" || e.key === " ") {
95
+ e.preventDefault();
96
+ enterEdit();
97
+ }
98
+ } : void 0,
99
+ className: cn(
100
+ "text-sm font-medium text-zinc-700 dark:text-zinc-200",
101
+ interactive && "cursor-pointer rounded-md outline-none transition-colors hover:text-zinc-900 focus-visible:ring-2 focus-visible:ring-blue-500/40 dark:hover:text-white"
102
+ ),
103
+ children: checked ? "On" : "Off"
104
+ }
105
+ ) : /* @__PURE__ */ jsx(
106
+ "button",
107
+ {
108
+ ref,
109
+ id: switchId,
110
+ type: "button",
111
+ role: "switch",
112
+ "aria-checked": checked,
113
+ disabled,
114
+ autoFocus: interactive,
115
+ onBlur: () => {
116
+ if (interactive) exitEdit();
117
+ },
118
+ onClick: () => setChecked(!checked),
119
+ className: cn(
120
+ "relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
121
+ trackSizes,
122
+ checked ? switchTrack[color] : "bg-zinc-200 dark:bg-zinc-600",
123
+ dirtyRingClasses(dirty),
124
+ error && "ring-2 ring-red-500/50"
125
+ ),
126
+ children: /* @__PURE__ */ jsx(
127
+ "span",
128
+ {
129
+ className: cn(
130
+ "pointer-events-none inline-block rounded-full bg-white shadow-sm transition-transform",
131
+ knobSizes,
132
+ checked ? translateOn : "translate-x-0"
133
+ )
134
+ }
135
+ )
136
+ }
137
+ ),
138
+ name && /* @__PURE__ */ jsx("input", { type: "hidden", name, value: checked ? "1" : "0" }),
139
+ (label || description) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
140
+ label && /* @__PURE__ */ jsxs(
141
+ "label",
142
+ {
143
+ htmlFor: switchId,
144
+ className: cn(
145
+ "cursor-pointer text-sm text-zinc-700 dark:text-zinc-100",
146
+ disabled && "cursor-not-allowed opacity-50"
147
+ ),
148
+ children: [
149
+ label,
150
+ required && /* @__PURE__ */ jsx("span", { className: "ml-0.5 text-red-500", children: "*" })
151
+ ]
152
+ }
153
+ ),
154
+ description && /* @__PURE__ */ jsx("span", { className: "text-xs text-zinc-500 dark:text-zinc-400", children: description }),
155
+ error && /* @__PURE__ */ jsx("span", { className: "text-xs text-red-500", children: error })
156
+ ] })
157
+ ] });
158
+ }
159
+ );
160
+ Switch.displayName = "Switch";
161
+
162
+ export { Switch };
163
+ //# sourceMappingURL=chunk-C4Z4S3CX.js.map
164
+ //# sourceMappingURL=chunk-C4Z4S3CX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/inputs/Switch/Switch.colors.ts","../src/components/inputs/Switch/Switch.tsx"],"names":[],"mappings":"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","file":"chunk-C4Z4S3CX.js","sourcesContent":["// AUTO-GENERATED by scripts/gen-switch-colors — do not edit by hand.\n// Literal Tailwind class strings for every color in the v4 palette so the\n// scanner can detect them in the published dist (template-built names are\n// invisible to Tailwind's JIT). Regenerate after changing the palette.\nimport type { Color } from \"../../../utils/types\";\n\nexport const switchTrack: Record<Color, string> = {\n slate: \"bg-slate-500\",\n gray: \"bg-gray-500\",\n zinc: \"bg-zinc-500\",\n neutral: \"bg-neutral-500\",\n stone: \"bg-stone-500\",\n red: \"bg-red-500\",\n orange: \"bg-orange-500\",\n amber: \"bg-amber-500\",\n yellow: \"bg-yellow-500\",\n lime: \"bg-lime-500\",\n green: \"bg-green-500\",\n emerald: \"bg-emerald-500\",\n teal: \"bg-teal-500\",\n cyan: \"bg-cyan-500\",\n sky: \"bg-sky-500\",\n blue: \"bg-blue-500\",\n indigo: \"bg-indigo-500\",\n violet: \"bg-violet-500\",\n purple: \"bg-purple-500\",\n fuchsia: \"bg-fuchsia-500\",\n pink: \"bg-pink-500\",\n rose: \"bg-rose-500\",\n};\n","import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { useFieldMode } from \"../mode/FieldMode.context\";\nimport { useInlineEdit } from \"../mode/useInlineEdit\";\nimport { dirtyRingClasses } from \"../inputs.utils\";\nimport type { SwitchProps } from \"./Switch.types\";\nimport { switchTrack } from \"./Switch.colors\";\n\nexport const Switch = forwardRef<HTMLButtonElement, SwitchProps>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n color = \"blue\",\n mode,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const switchId = id ?? autoId;\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n const [checked, setChecked] = useControllableState(\n controlledChecked,\n defaultChecked,\n onCheckedChange,\n );\n\n const trackSizes = {\n xs: \"h-3.5 w-6\",\n sm: \"h-4 w-7\",\n md: \"h-5 w-9\",\n lg: \"h-6 w-11\",\n xl: \"h-7 w-[52px]\",\n }[size];\n\n const knobSizes = {\n xs: \"h-2.5 w-2.5\",\n sm: \"h-3 w-3\",\n md: \"h-4 w-4\",\n lg: \"h-5 w-5\",\n xl: \"h-6 w-6\",\n }[size];\n\n const translateOn = {\n xs: \"translate-x-2.5\",\n sm: \"translate-x-3\",\n md: \"translate-x-4\",\n lg: \"translate-x-5\",\n xl: \"translate-x-6\",\n }[size];\n\n return (\n <div {...rest} data-react-fancy-switch=\"\" className={cn(\"flex items-start gap-2\", className)}>\n {!showControl ? (\n <span\n data-react-fancy-display=\"\"\n data-mode=\"view\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n title={interactive ? \"Click to edit\" : undefined}\n onClick={interactive ? enterEdit : undefined}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n enterEdit();\n }\n }\n : undefined\n }\n className={cn(\n \"text-sm font-medium text-zinc-700 dark:text-zinc-200\",\n interactive &&\n \"cursor-pointer rounded-md outline-none transition-colors hover:text-zinc-900 focus-visible:ring-2 focus-visible:ring-blue-500/40 dark:hover:text-white\",\n )}\n >\n {checked ? \"On\" : \"Off\"}\n </span>\n ) : (\n <button\n ref={ref}\n id={switchId}\n type=\"button\"\n role=\"switch\"\n aria-checked={checked}\n disabled={disabled}\n autoFocus={interactive}\n onBlur={() => {\n if (interactive) exitEdit();\n }}\n onClick={() => setChecked(!checked)}\n className={cn(\n \"relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n trackSizes,\n checked ? switchTrack[color] : \"bg-zinc-200 dark:bg-zinc-600\",\n dirtyRingClasses(dirty),\n error && \"ring-2 ring-red-500/50\",\n )}\n >\n <span\n className={cn(\n \"pointer-events-none inline-block rounded-full bg-white shadow-sm transition-transform\",\n knobSizes,\n checked ? translateOn : \"translate-x-0\",\n )}\n />\n </button>\n )}\n {name && (\n <input type=\"hidden\" name={name} value={checked ? \"1\" : \"0\"} />\n )}\n {(label || description) && (\n <div className=\"flex flex-col\">\n {label && (\n <label\n htmlFor={switchId}\n className={cn(\n \"cursor-pointer text-sm text-zinc-700 dark:text-zinc-100\",\n disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {label}\n {required && <span className=\"ml-0.5 text-red-500\">*</span>}\n </label>\n )}\n {description && (\n <span className=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {description}\n </span>\n )}\n {error && <span className=\"text-xs text-red-500\">{error}</span>}\n </div>\n )}\n </div>\n );\n },\n);\n\nSwitch.displayName = \"Switch\";\n"]}
@@ -0,0 +1,153 @@
1
+ import { InputWrapper } from './chunk-D7NAXQ2N.js';
2
+ import { DisplayValue } from './chunk-K7JGOQJG.js';
3
+ import { Field } from './chunk-3DJGPNUI.js';
4
+ import { inputBaseClasses, inputSizeClasses, dirtyClasses, errorClasses } from './chunk-GFYSELJF.js';
5
+ import { useInlineEdit } from './chunk-OL53XYHF.js';
6
+ import { useFieldMode } from './chunk-NRXK42LO.js';
7
+ import { useControllableState } from './chunk-6FQGMVF2.js';
8
+ import { cn } from './chunk-DSUHZO6T.js';
9
+ import { forwardRef, useId } from 'react';
10
+ import { jsx, jsxs } from 'react/jsx-runtime';
11
+
12
+ var Input = forwardRef(
13
+ ({
14
+ type = "text",
15
+ size = "md",
16
+ dirty,
17
+ error,
18
+ label,
19
+ description,
20
+ required,
21
+ disabled,
22
+ className,
23
+ id,
24
+ leading,
25
+ trailing,
26
+ prefix,
27
+ suffix,
28
+ prefixPosition,
29
+ suffixPosition,
30
+ mode,
31
+ onValueChange,
32
+ onChange,
33
+ reveal,
34
+ revealed,
35
+ onRevealedChange,
36
+ revealLabel = "Show password",
37
+ hideLabel = "Hide password",
38
+ ...props
39
+ }, ref) => {
40
+ const autoId = useId();
41
+ const inputId = id ?? autoId;
42
+ const resolvedMode = useFieldMode(mode);
43
+ const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);
44
+ const canReveal = reveal === true && type === "password";
45
+ const [isRevealed, setRevealed] = useControllableState(revealed, false, onRevealedChange);
46
+ const shown = canReveal && isRevealed;
47
+ const renderedType = shown ? "text" : type;
48
+ const input = !showControl ? /* @__PURE__ */ jsx(
49
+ DisplayValue,
50
+ {
51
+ size,
52
+ interactive,
53
+ onActivate: enterEdit,
54
+ leading: leading ?? prefix,
55
+ trailing: trailing ?? suffix,
56
+ children: type === "password" ? props.value ? "\u2022\u2022\u2022\u2022\u2022\u2022" : "" : props.value
57
+ }
58
+ ) : /* @__PURE__ */ jsx(
59
+ InputWrapper,
60
+ {
61
+ prefix,
62
+ suffix,
63
+ prefixPosition,
64
+ suffixPosition,
65
+ size,
66
+ children: /* @__PURE__ */ jsxs("div", { "data-react-fancy-input": "", className: "relative flex items-center", children: [
67
+ leading && /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute left-3 text-zinc-400 dark:text-zinc-500", children: leading }),
68
+ /* @__PURE__ */ jsx(
69
+ "input",
70
+ {
71
+ ref,
72
+ id: inputId,
73
+ type: renderedType,
74
+ disabled,
75
+ required,
76
+ className: cn(
77
+ inputBaseClasses,
78
+ inputSizeClasses[size],
79
+ dirtyClasses(dirty),
80
+ errorClasses(error),
81
+ "w-full",
82
+ leading && "pl-9",
83
+ (trailing || canReveal) && "pr-9",
84
+ className
85
+ ),
86
+ onChange: (e) => {
87
+ onChange?.(e);
88
+ onValueChange?.(e.target.value);
89
+ },
90
+ ...props,
91
+ autoFocus: interactive || props.autoFocus,
92
+ onBlur: (e) => {
93
+ props.onBlur?.(e);
94
+ if (interactive) exitEdit();
95
+ }
96
+ }
97
+ ),
98
+ canReveal ? /* @__PURE__ */ jsx(
99
+ "button",
100
+ {
101
+ type: "button",
102
+ id: `${inputId}-reveal`,
103
+ "data-react-fancy-reveal": "",
104
+ onClick: () => setRevealed((v) => !v),
105
+ disabled,
106
+ "aria-controls": inputId,
107
+ "aria-pressed": shown,
108
+ "aria-label": shown ? hideLabel : revealLabel,
109
+ title: shown ? hideLabel : revealLabel,
110
+ tabIndex: -1,
111
+ className: "absolute right-2 inline-flex items-center justify-center rounded p-1 text-zinc-400 transition-colors hover:text-zinc-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 disabled:cursor-not-allowed disabled:opacity-50 dark:text-zinc-500 dark:hover:text-zinc-300",
112
+ children: shown ? /* @__PURE__ */ jsx(EyeOffIcon, {}) : /* @__PURE__ */ jsx(EyeIcon, {})
113
+ }
114
+ ) : trailing && /* @__PURE__ */ jsx("span", { className: "pointer-events-none absolute right-3 text-zinc-400 dark:text-zinc-500", children: trailing })
115
+ ] })
116
+ }
117
+ );
118
+ if (label || error || description) {
119
+ return /* @__PURE__ */ jsx(
120
+ Field,
121
+ {
122
+ label,
123
+ description,
124
+ error,
125
+ required,
126
+ htmlFor: inputId,
127
+ size,
128
+ children: input
129
+ }
130
+ );
131
+ }
132
+ return input;
133
+ }
134
+ );
135
+ Input.displayName = "Input";
136
+ function EyeIcon() {
137
+ return /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
138
+ /* @__PURE__ */ jsx("path", { d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" }),
139
+ /* @__PURE__ */ jsx("circle", { cx: "12", cy: "12", r: "3" })
140
+ ] });
141
+ }
142
+ function EyeOffIcon() {
143
+ return /* @__PURE__ */ jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
144
+ /* @__PURE__ */ jsx("path", { d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" }),
145
+ /* @__PURE__ */ jsx("path", { d: "M14.084 14.158a3 3 0 0 1-4.242-4.242" }),
146
+ /* @__PURE__ */ jsx("path", { d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" }),
147
+ /* @__PURE__ */ jsx("path", { d: "m2 2 20 20" })
148
+ ] });
149
+ }
150
+
151
+ export { Input };
152
+ //# sourceMappingURL=chunk-C5AZNBVB.js.map
153
+ //# sourceMappingURL=chunk-C5AZNBVB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/inputs/Input/Input.tsx"],"names":[],"mappings":"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","file":"chunk-C5AZNBVB.js","sourcesContent":["import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { Field } from \"../Field\";\nimport { InputWrapper } from \"../InputWrapper\";\nimport {\n dirtyClasses,\n errorClasses,\n inputBaseClasses,\n inputSizeClasses,\n} from \"../inputs.utils\";\nimport { useFieldMode } from \"../mode/FieldMode.context\";\nimport { DisplayValue } from \"../mode/DisplayValue\";\nimport { useInlineEdit } from \"../mode/useInlineEdit\";\nimport type { InputProps } from \"./Input.types\";\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n type = \"text\",\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n leading,\n trailing,\n prefix,\n suffix,\n prefixPosition,\n suffixPosition,\n mode,\n onValueChange,\n onChange,\n reveal,\n revealed,\n onRevealedChange,\n revealLabel = \"Show password\",\n hideLabel = \"Hide password\",\n ...props\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n\n // Only meaningful on a password field: a reveal on an already-visible input\n // is a button that does nothing.\n const canReveal = reveal === true && type === \"password\";\n const [isRevealed, setRevealed] = useControllableState(revealed, false, onRevealedChange);\n const shown = canReveal && isRevealed;\n // The rendered type, NOT the declared one — `type` stays \"password\" so the\n // display-mode masking below and any caller reading props are unaffected.\n const renderedType = shown ? \"text\" : type;\n\n const input = !showControl ? (\n <DisplayValue\n size={size}\n interactive={interactive}\n onActivate={enterEdit}\n leading={leading ?? prefix}\n trailing={trailing ?? suffix}\n >\n {type === \"password\" ? (props.value ? \"••••••\" : \"\") : (props.value as string | undefined)}\n </DisplayValue>\n ) : (\n <InputWrapper\n prefix={prefix}\n suffix={suffix}\n prefixPosition={prefixPosition}\n suffixPosition={suffixPosition}\n size={size}\n >\n <div data-react-fancy-input=\"\" className=\"relative flex items-center\">\n {leading && (\n <span className=\"pointer-events-none absolute left-3 text-zinc-400 dark:text-zinc-500\">\n {leading}\n </span>\n )}\n <input\n ref={ref}\n id={inputId}\n type={renderedType}\n disabled={disabled}\n required={required}\n className={cn(\n inputBaseClasses,\n inputSizeClasses[size],\n dirtyClasses(dirty),\n errorClasses(error),\n \"w-full\",\n leading && \"pl-9\",\n (trailing || canReveal) && \"pr-9\",\n className,\n )}\n onChange={(e) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n }}\n {...props}\n // Inline click-to-edit: focus on entering edit, return to the display\n // (and run the host's onBlur) when focus leaves.\n autoFocus={interactive || props.autoFocus}\n onBlur={(e) => {\n props.onBlur?.(e);\n if (interactive) exitEdit();\n }}\n />\n {canReveal ? (\n <button\n type=\"button\"\n // type=\"button\" is load-bearing: the default is \"submit\", so a\n // reveal inside a login form would submit it on every click.\n id={`${inputId}-reveal`}\n data-react-fancy-reveal=\"\"\n onClick={() => setRevealed((v) => !v)}\n disabled={disabled}\n aria-controls={inputId}\n aria-pressed={shown}\n aria-label={shown ? hideLabel : revealLabel}\n title={shown ? hideLabel : revealLabel}\n // Not focusable by tab: the field and the submit button are the\n // path through a login form, and a reveal in between is a stop\n // most people do not want. Still reachable by click and by\n // screen readers.\n tabIndex={-1}\n className=\"absolute right-2 inline-flex items-center justify-center rounded p-1 text-zinc-400 transition-colors hover:text-zinc-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 disabled:cursor-not-allowed disabled:opacity-50 dark:text-zinc-500 dark:hover:text-zinc-300\"\n >\n {shown ? <EyeOffIcon /> : <EyeIcon />}\n </button>\n ) : (\n trailing && (\n <span className=\"pointer-events-none absolute right-3 text-zinc-400 dark:text-zinc-500\">\n {trailing}\n </span>\n )\n )}\n </div>\n </InputWrapper>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n htmlFor={inputId}\n size={size}\n >\n {input}\n </Field>\n );\n }\n\n return input;\n },\n);\n\nInput.displayName = \"Input\";\n\n/**\n * Inline SVGs rather than the Icon component: Input is the most-installed\n * primitive in the kit, and routing it through the icon registry would make\n * every consumer's password field depend on an icon set being configured.\n */\nfunction EyeIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n}\n\nfunction EyeOffIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\" />\n <path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\" />\n <path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\" />\n <path d=\"m2 2 20 20\" />\n </svg>\n );\n}\n"]}
@@ -0,0 +1,35 @@
1
+ import { cn } from './chunk-DSUHZO6T.js';
2
+ import { forwardRef } from 'react';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+
5
+ var IndexList = forwardRef(
6
+ ({ items, linkAs, className, ...props }, ref) => {
7
+ const Link = linkAs ?? "a";
8
+ return /* @__PURE__ */ jsx("ol", { ref, "data-react-fancy-index-list": "", className: cn("m-0 list-none p-0", className), ...props, children: items.map((item, i) => /* @__PURE__ */ jsxs(
9
+ "li",
10
+ {
11
+ "data-react-fancy-index-row": "",
12
+ className: "relative flex items-baseline gap-4 border-b border-zinc-200 py-3 last:border-b-0 dark:border-zinc-800",
13
+ children: [
14
+ item.num != null && /* @__PURE__ */ jsx("span", { "data-react-fancy-index-num": "", className: "shrink-0 font-mono text-xs tabular-nums text-zinc-400 dark:text-zinc-500", children: item.num }),
15
+ /* @__PURE__ */ jsx("span", { "data-react-fancy-index-title": "", className: "min-w-0 flex-1 truncate font-medium text-zinc-900 dark:text-zinc-100", children: item.href ? /* @__PURE__ */ jsx(
16
+ Link,
17
+ {
18
+ href: item.href,
19
+ className: "no-underline after:absolute after:inset-0 after:content-[''] hover:underline",
20
+ children: item.title
21
+ }
22
+ ) : item.title }),
23
+ item.meta != null && /* @__PURE__ */ jsx("span", { "data-react-fancy-index-meta": "", className: "shrink-0 truncate text-sm text-zinc-500 dark:text-zinc-400", children: item.meta }),
24
+ item.value != null && /* @__PURE__ */ jsx("span", { "data-react-fancy-index-value": "", className: "ml-auto shrink-0 font-mono text-xs tabular-nums text-zinc-500 dark:text-zinc-400", children: item.value })
25
+ ]
26
+ },
27
+ item.id ?? i
28
+ )) });
29
+ }
30
+ );
31
+ IndexList.displayName = "IndexList";
32
+
33
+ export { IndexList };
34
+ //# sourceMappingURL=chunk-CFBK5RIZ.js.map
35
+ //# sourceMappingURL=chunk-CFBK5RIZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/IndexList/IndexList.tsx"],"names":[],"mappings":";;;;AAuBO,IAAM,SAAA,GAAY,UAAA;AAAA,EACvB,CAAC,EAAE,KAAA,EAAO,MAAA,EAAQ,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AAC/C,IAAA,MAAM,OAAO,MAAA,IAAU,GAAA;AAEvB,IAAA,2BACG,IAAA,EAAA,EAAG,GAAA,EAAU,6BAAA,EAA4B,EAAA,EAAG,WAAW,EAAA,CAAG,mBAAA,EAAqB,SAAS,CAAA,EAAI,GAAG,KAAA,EAC7F,QAAA,EAAA,KAAA,CAAM,GAAA,CAAI,CAAC,MAAM,CAAA,qBAChB,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QAEC,4BAAA,EAA2B,EAAA;AAAA,QAC3B,SAAA,EAAU,uGAAA;AAAA,QAET,QAAA,EAAA;AAAA,UAAA,IAAA,CAAK,GAAA,IAAO,wBACX,GAAA,CAAC,MAAA,EAAA,EAAK,8BAA2B,EAAA,EAAG,SAAA,EAAU,0EAAA,EAC3C,QAAA,EAAA,IAAA,CAAK,GAAA,EACR,CAAA;AAAA,8BAGD,MAAA,EAAA,EAAK,8BAAA,EAA6B,IAAG,SAAA,EAAU,sEAAA,EAC7C,eAAK,IAAA,mBACJ,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,MAAM,IAAA,CAAK,IAAA;AAAA,cACX,SAAA,EAAU,8EAAA;AAAA,cAET,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,WACR,GAEA,KAAK,KAAA,EAET,CAAA;AAAA,UAEC,IAAA,CAAK,IAAA,IAAQ,IAAA,oBACZ,GAAA,CAAC,MAAA,EAAA,EAAK,+BAA4B,EAAA,EAAG,SAAA,EAAU,4DAAA,EAA8D,QAAA,EAAA,IAAA,CAAK,IAAA,EAAK,CAAA;AAAA,UAGxH,IAAA,CAAK,KAAA,IAAS,IAAA,oBACb,GAAA,CAAC,MAAA,EAAA,EAAK,gCAA6B,EAAA,EAAG,SAAA,EAAU,kFAAA,EAC7C,QAAA,EAAA,IAAA,CAAK,KAAA,EACR;AAAA;AAAA,OAAA;AAAA,MA9BG,KAAK,EAAA,IAAM;AAAA,KAiCnB,CAAA,EACH,CAAA;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA","file":"chunk-CFBK5RIZ.js","sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { IndexListProps } from \"./IndexList.types\";\n\n/**\n * A flush-left numbered index — `num · title · meta · trailing value`, each row\n * optionally a single clickable target.\n *\n * Thirteen gallery styles build this, and the sandbox uses a `stretched-link`\n * treatment in twenty-four places.\n *\n * ## Exactly one anchor per row, by construction\n *\n * The row is `relative` and the title's `<a>` carries `after:absolute\n * after:inset-0`, so the anchor's own pseudo-element covers the row. The\n * alternative — wrapping the row in an `<a>` and putting more links inside —\n * produces nested anchors, which is issue #418: the browser silently\n * restructures that DOM, so the server HTML and the client tree disagree and\n * hydration blows up. A test asserts one anchor per row for that reason.\n *\n * The link text stays the title rather than becoming an `aria-label` on an\n * invisible overlay, so the accessible name is the thing you would say out loud.\n */\nexport const IndexList = forwardRef<HTMLOListElement, IndexListProps>(\n ({ items, linkAs, className, ...props }, ref) => {\n const Link = linkAs ?? \"a\";\n\n return (\n <ol ref={ref} data-react-fancy-index-list=\"\" className={cn(\"m-0 list-none p-0\", className)} {...props}>\n {items.map((item, i) => (\n <li\n key={item.id ?? i}\n data-react-fancy-index-row=\"\"\n className=\"relative flex items-baseline gap-4 border-b border-zinc-200 py-3 last:border-b-0 dark:border-zinc-800\"\n >\n {item.num != null && (\n <span data-react-fancy-index-num=\"\" className=\"shrink-0 font-mono text-xs tabular-nums text-zinc-400 dark:text-zinc-500\">\n {item.num}\n </span>\n )}\n\n <span data-react-fancy-index-title=\"\" className=\"min-w-0 flex-1 truncate font-medium text-zinc-900 dark:text-zinc-100\">\n {item.href ? (\n <Link\n href={item.href}\n className=\"no-underline after:absolute after:inset-0 after:content-[''] hover:underline\"\n >\n {item.title}\n </Link>\n ) : (\n item.title\n )}\n </span>\n\n {item.meta != null && (\n <span data-react-fancy-index-meta=\"\" className=\"shrink-0 truncate text-sm text-zinc-500 dark:text-zinc-400\">{item.meta}</span>\n )}\n\n {item.value != null && (\n <span data-react-fancy-index-value=\"\" className=\"ml-auto shrink-0 font-mono text-xs tabular-nums text-zinc-500 dark:text-zinc-400\">\n {item.value}\n </span>\n )}\n </li>\n ))}\n </ol>\n );\n },\n);\n\nIndexList.displayName = \"IndexList\";\n"]}