@particle-academy/react-fancy 5.12.0 → 5.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (959) 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-3F66SAE7.js +40 -0
  136. package/dist/chunk-3F66SAE7.js.map +1 -0
  137. package/dist/chunk-3GRC5J2L.cjs +54 -0
  138. package/dist/chunk-3GRC5J2L.cjs.map +1 -0
  139. package/dist/chunk-3SQ34IQC.cjs +124 -0
  140. package/dist/chunk-3SQ34IQC.cjs.map +1 -0
  141. package/dist/chunk-3WGRVDQR.cjs +39 -0
  142. package/dist/chunk-3WGRVDQR.cjs.map +1 -0
  143. package/dist/chunk-3Z6ALUWP.cjs +13 -0
  144. package/dist/chunk-3Z6ALUWP.cjs.map +1 -0
  145. package/dist/chunk-45BBNJQD.js +2019 -0
  146. package/dist/chunk-45BBNJQD.js.map +1 -0
  147. package/dist/chunk-47TFRODY.cjs +107 -0
  148. package/dist/chunk-47TFRODY.cjs.map +1 -0
  149. package/dist/chunk-4DQ6HX27.cjs +187 -0
  150. package/dist/chunk-4DQ6HX27.cjs.map +1 -0
  151. package/dist/chunk-4UA45GB4.js +129 -0
  152. package/dist/chunk-4UA45GB4.js.map +1 -0
  153. package/dist/chunk-57FQGQJK.cjs +26 -0
  154. package/dist/chunk-57FQGQJK.cjs.map +1 -0
  155. package/dist/chunk-5FV6GMFP.cjs +4 -0
  156. package/dist/chunk-5FV6GMFP.cjs.map +1 -0
  157. package/dist/chunk-5HOQ2PHR.cjs +287 -0
  158. package/dist/chunk-5HOQ2PHR.cjs.map +1 -0
  159. package/dist/chunk-5I4PR2KV.cjs +131 -0
  160. package/dist/chunk-5I4PR2KV.cjs.map +1 -0
  161. package/dist/chunk-5LHG7HEY.cjs +42 -0
  162. package/dist/chunk-5LHG7HEY.cjs.map +1 -0
  163. package/dist/chunk-5OC6DUYT.js +139 -0
  164. package/dist/chunk-5OC6DUYT.js.map +1 -0
  165. package/dist/chunk-5QL7XT3N.js +80 -0
  166. package/dist/chunk-5QL7XT3N.js.map +1 -0
  167. package/dist/chunk-5U2DZ7AV.js +49 -0
  168. package/dist/chunk-5U2DZ7AV.js.map +1 -0
  169. package/dist/chunk-5UOQVGZC.cjs +930 -0
  170. package/dist/chunk-5UOQVGZC.cjs.map +1 -0
  171. package/dist/chunk-6BW5BQMN.cjs +57 -0
  172. package/dist/chunk-6BW5BQMN.cjs.map +1 -0
  173. package/dist/chunk-6FBFE66M.cjs +292 -0
  174. package/dist/chunk-6FBFE66M.cjs.map +1 -0
  175. package/dist/chunk-6FQGMVF2.js +25 -0
  176. package/dist/chunk-6FQGMVF2.js.map +1 -0
  177. package/dist/chunk-6GC5DMOK.cjs +141 -0
  178. package/dist/chunk-6GC5DMOK.cjs.map +1 -0
  179. package/dist/chunk-6H6OYLMJ.js +105 -0
  180. package/dist/chunk-6H6OYLMJ.js.map +1 -0
  181. package/dist/chunk-6L6LI2RL.cjs +37 -0
  182. package/dist/chunk-6L6LI2RL.cjs.map +1 -0
  183. package/dist/chunk-6MDZQIMZ.cjs +18 -0
  184. package/dist/chunk-6MDZQIMZ.cjs.map +1 -0
  185. package/dist/chunk-6OSHAP6L.cjs +110 -0
  186. package/dist/chunk-6OSHAP6L.cjs.map +1 -0
  187. package/dist/chunk-7AFEKDUS.js +202 -0
  188. package/dist/chunk-7AFEKDUS.js.map +1 -0
  189. package/dist/chunk-7C7VF4WY.cjs +155 -0
  190. package/dist/chunk-7C7VF4WY.cjs.map +1 -0
  191. package/dist/chunk-7NLKXBZ2.cjs +88 -0
  192. package/dist/chunk-7NLKXBZ2.cjs.map +1 -0
  193. package/dist/chunk-7XDKIZQE.js +382 -0
  194. package/dist/chunk-7XDKIZQE.js.map +1 -0
  195. package/dist/chunk-A22T6DKO.cjs +283 -0
  196. package/dist/chunk-A22T6DKO.cjs.map +1 -0
  197. package/dist/chunk-A3CNYKT3.js +197 -0
  198. package/dist/chunk-A3CNYKT3.js.map +1 -0
  199. package/dist/chunk-AC7M7JDO.cjs +199 -0
  200. package/dist/chunk-AC7M7JDO.cjs.map +1 -0
  201. package/dist/chunk-AGDW5ENV.js +37 -0
  202. package/dist/chunk-AGDW5ENV.js.map +1 -0
  203. package/dist/chunk-AIA5UNQ5.cjs +4 -0
  204. package/dist/chunk-AIA5UNQ5.cjs.map +1 -0
  205. package/dist/chunk-AKIUDPJU.js +119 -0
  206. package/dist/chunk-AKIUDPJU.js.map +1 -0
  207. package/dist/chunk-ANEX75DF.cjs +39 -0
  208. package/dist/chunk-ANEX75DF.cjs.map +1 -0
  209. package/dist/chunk-AOOBRPTE.cjs +142 -0
  210. package/dist/chunk-AOOBRPTE.cjs.map +1 -0
  211. package/dist/chunk-ARSQY4P7.cjs +101 -0
  212. package/dist/chunk-ARSQY4P7.cjs.map +1 -0
  213. package/dist/chunk-ATFXU6R6.js +122 -0
  214. package/dist/chunk-ATFXU6R6.js.map +1 -0
  215. package/dist/chunk-AUTW5O4W.js +3 -0
  216. package/dist/chunk-AUTW5O4W.js.map +1 -0
  217. package/dist/chunk-AVR5P4GA.cjs +832 -0
  218. package/dist/chunk-AVR5P4GA.cjs.map +1 -0
  219. package/dist/chunk-B3HVWXIQ.cjs +112 -0
  220. package/dist/chunk-B3HVWXIQ.cjs.map +1 -0
  221. package/dist/chunk-BEGDL2CD.js +81 -0
  222. package/dist/chunk-BEGDL2CD.js.map +1 -0
  223. package/dist/chunk-BFKCVSNK.cjs +80 -0
  224. package/dist/chunk-BFKCVSNK.cjs.map +1 -0
  225. package/dist/chunk-BPBI3WWQ.cjs +364 -0
  226. package/dist/chunk-BPBI3WWQ.cjs.map +1 -0
  227. package/dist/chunk-BYIY6BH2.js +927 -0
  228. package/dist/chunk-BYIY6BH2.js.map +1 -0
  229. package/dist/chunk-C4Z4S3CX.js +164 -0
  230. package/dist/chunk-C4Z4S3CX.js.map +1 -0
  231. package/dist/chunk-C5AZNBVB.js +153 -0
  232. package/dist/chunk-C5AZNBVB.js.map +1 -0
  233. package/dist/chunk-CFBK5RIZ.js +35 -0
  234. package/dist/chunk-CFBK5RIZ.js.map +1 -0
  235. package/dist/chunk-CHADHN6M.js +37 -0
  236. package/dist/chunk-CHADHN6M.js.map +1 -0
  237. package/dist/chunk-CPY7NHXM.js +88 -0
  238. package/dist/chunk-CPY7NHXM.js.map +1 -0
  239. package/dist/chunk-CS4GQXYY.js +131 -0
  240. package/dist/chunk-CS4GQXYY.js.map +1 -0
  241. package/dist/chunk-CTMJYV3O.js +99 -0
  242. package/dist/chunk-CTMJYV3O.js.map +1 -0
  243. package/dist/chunk-CZZH45GQ.cjs +122 -0
  244. package/dist/chunk-CZZH45GQ.cjs.map +1 -0
  245. package/dist/chunk-D4WM23Y4.js +109 -0
  246. package/dist/chunk-D4WM23Y4.js.map +1 -0
  247. package/dist/chunk-D7NAXQ2N.js +86 -0
  248. package/dist/chunk-D7NAXQ2N.js.map +1 -0
  249. package/dist/chunk-DJ3YM72H.cjs +353 -0
  250. package/dist/chunk-DJ3YM72H.cjs.map +1 -0
  251. package/dist/chunk-DOSSIU6S.cjs +162 -0
  252. package/dist/chunk-DOSSIU6S.cjs.map +1 -0
  253. package/dist/chunk-DSUHZO6T.js +11 -0
  254. package/dist/chunk-DSUHZO6T.js.map +1 -0
  255. package/dist/chunk-DTPGJNOI.js +204 -0
  256. package/dist/chunk-DTPGJNOI.js.map +1 -0
  257. package/dist/chunk-DV4IMAQW.js +100 -0
  258. package/dist/chunk-DV4IMAQW.js.map +1 -0
  259. package/dist/chunk-DWRMC2FN.cjs +95 -0
  260. package/dist/chunk-DWRMC2FN.cjs.map +1 -0
  261. package/dist/chunk-DZD2RJVD.js +47 -0
  262. package/dist/chunk-DZD2RJVD.js.map +1 -0
  263. package/dist/chunk-E4LFD44D.js +69 -0
  264. package/dist/chunk-E4LFD44D.js.map +1 -0
  265. package/dist/chunk-E7PHL3TD.cjs +144 -0
  266. package/dist/chunk-E7PHL3TD.cjs.map +1 -0
  267. package/dist/chunk-ECZ66DKF.js +522 -0
  268. package/dist/chunk-ECZ66DKF.js.map +1 -0
  269. package/dist/chunk-EERAEPQO.cjs +177 -0
  270. package/dist/chunk-EERAEPQO.cjs.map +1 -0
  271. package/dist/chunk-EIBW5YLS.js +52 -0
  272. package/dist/chunk-EIBW5YLS.js.map +1 -0
  273. package/dist/chunk-ESKVRRVA.js +56 -0
  274. package/dist/chunk-ESKVRRVA.js.map +1 -0
  275. package/dist/chunk-EVXDG2XN.js +108 -0
  276. package/dist/chunk-EVXDG2XN.js.map +1 -0
  277. package/dist/chunk-F6NEPU67.cjs +218 -0
  278. package/dist/chunk-F6NEPU67.cjs.map +1 -0
  279. package/dist/chunk-F6SCZCJE.js +176 -0
  280. package/dist/chunk-F6SCZCJE.js.map +1 -0
  281. package/dist/chunk-FA3D4GFC.cjs +323 -0
  282. package/dist/chunk-FA3D4GFC.cjs.map +1 -0
  283. package/dist/chunk-FCAV5IFW.js +63 -0
  284. package/dist/chunk-FCAV5IFW.js.map +1 -0
  285. package/dist/chunk-FVV76TRF.js +101 -0
  286. package/dist/chunk-FVV76TRF.js.map +1 -0
  287. package/dist/chunk-G2W7B3OG.js +420 -0
  288. package/dist/chunk-G2W7B3OG.js.map +1 -0
  289. package/dist/chunk-G34OBTU3.cjs +27 -0
  290. package/dist/chunk-G34OBTU3.cjs.map +1 -0
  291. package/dist/chunk-GFYSELJF.js +35 -0
  292. package/dist/chunk-GFYSELJF.js.map +1 -0
  293. package/dist/chunk-GIDW3SUE.cjs +59 -0
  294. package/dist/chunk-GIDW3SUE.cjs.map +1 -0
  295. package/dist/chunk-GKGL7F36.js +290 -0
  296. package/dist/chunk-GKGL7F36.js.map +1 -0
  297. package/dist/chunk-GKPCXPCD.js +262 -0
  298. package/dist/chunk-GKPCXPCD.js.map +1 -0
  299. package/dist/chunk-GZIUE4DE.js +117 -0
  300. package/dist/chunk-GZIUE4DE.js.map +1 -0
  301. package/dist/chunk-HAOYXGGJ.js +104 -0
  302. package/dist/chunk-HAOYXGGJ.js.map +1 -0
  303. package/dist/chunk-HBFVOHQC.cjs +102 -0
  304. package/dist/chunk-HBFVOHQC.cjs.map +1 -0
  305. package/dist/chunk-HG6XUJOT.js +328 -0
  306. package/dist/chunk-HG6XUJOT.js.map +1 -0
  307. package/dist/chunk-I6L7OP7G.cjs +203 -0
  308. package/dist/chunk-I6L7OP7G.cjs.map +1 -0
  309. package/dist/chunk-IE4CM2SN.js +122 -0
  310. package/dist/chunk-IE4CM2SN.js.map +1 -0
  311. package/dist/chunk-IF25CE6S.cjs +202 -0
  312. package/dist/chunk-IF25CE6S.cjs.map +1 -0
  313. package/dist/chunk-IF3T3ZCB.cjs +273 -0
  314. package/dist/chunk-IF3T3ZCB.cjs.map +1 -0
  315. package/dist/chunk-IF5LOWUL.js +273 -0
  316. package/dist/chunk-IF5LOWUL.js.map +1 -0
  317. package/dist/chunk-IGU5YXRV.cjs +138 -0
  318. package/dist/chunk-IGU5YXRV.cjs.map +1 -0
  319. package/dist/chunk-IGYIMS6J.js +174 -0
  320. package/dist/chunk-IGYIMS6J.js.map +1 -0
  321. package/dist/chunk-IJ4I55QQ.cjs +38 -0
  322. package/dist/chunk-IJ4I55QQ.cjs.map +1 -0
  323. package/dist/chunk-IXHZVFHX.cjs +44 -0
  324. package/dist/chunk-IXHZVFHX.cjs.map +1 -0
  325. package/dist/chunk-J2DI6RMR.cjs +115 -0
  326. package/dist/chunk-J2DI6RMR.cjs.map +1 -0
  327. package/dist/chunk-J3XS4HHX.js +230 -0
  328. package/dist/chunk-J3XS4HHX.js.map +1 -0
  329. package/dist/chunk-JCOBDDHF.js +118 -0
  330. package/dist/chunk-JCOBDDHF.js.map +1 -0
  331. package/dist/chunk-JHEM6IGT.cjs +49 -0
  332. package/dist/chunk-JHEM6IGT.cjs.map +1 -0
  333. package/dist/chunk-JIYP73OJ.js +169 -0
  334. package/dist/chunk-JIYP73OJ.js.map +1 -0
  335. package/dist/chunk-JKO2Y5SH.js +60 -0
  336. package/dist/chunk-JKO2Y5SH.js.map +1 -0
  337. package/dist/chunk-JPTWZ3RF.cjs +280 -0
  338. package/dist/chunk-JPTWZ3RF.cjs.map +1 -0
  339. package/dist/chunk-JXE5XID6.js +19 -0
  340. package/dist/chunk-JXE5XID6.js.map +1 -0
  341. package/dist/chunk-JXIBUIEY.cjs +144 -0
  342. package/dist/chunk-JXIBUIEY.cjs.map +1 -0
  343. package/dist/chunk-JYKZKSZJ.js +122 -0
  344. package/dist/chunk-JYKZKSZJ.js.map +1 -0
  345. package/dist/chunk-K2DZEYBF.js +321 -0
  346. package/dist/chunk-K2DZEYBF.js.map +1 -0
  347. package/dist/chunk-K7JGOQJG.js +55 -0
  348. package/dist/chunk-K7JGOQJG.js.map +1 -0
  349. package/dist/chunk-KC6QBKKB.cjs +173 -0
  350. package/dist/chunk-KC6QBKKB.cjs.map +1 -0
  351. package/dist/chunk-KE7KXY5C.cjs +233 -0
  352. package/dist/chunk-KE7KXY5C.cjs.map +1 -0
  353. package/dist/chunk-KICZTIZL.cjs +133 -0
  354. package/dist/chunk-KICZTIZL.cjs.map +1 -0
  355. package/dist/chunk-KJ22KE56.cjs +19 -0
  356. package/dist/chunk-KJ22KE56.cjs.map +1 -0
  357. package/dist/chunk-KUKYJZIU.cjs +179 -0
  358. package/dist/chunk-KUKYJZIU.cjs.map +1 -0
  359. package/dist/chunk-L3V3BYVS.cjs +15 -0
  360. package/dist/chunk-L3V3BYVS.cjs.map +1 -0
  361. package/dist/chunk-LNWO23PU.cjs +131 -0
  362. package/dist/chunk-LNWO23PU.cjs.map +1 -0
  363. package/dist/chunk-LPQVXTKV.js +36 -0
  364. package/dist/chunk-LPQVXTKV.js.map +1 -0
  365. package/dist/chunk-LZL2KD4P.cjs +207 -0
  366. package/dist/chunk-LZL2KD4P.cjs.map +1 -0
  367. package/dist/chunk-M24NCWBU.js +239 -0
  368. package/dist/chunk-M24NCWBU.js.map +1 -0
  369. package/dist/chunk-M7EEQPE7.js +137 -0
  370. package/dist/chunk-M7EEQPE7.js.map +1 -0
  371. package/dist/chunk-MDUSUJWY.cjs +31 -0
  372. package/dist/chunk-MDUSUJWY.cjs.map +1 -0
  373. package/dist/chunk-MGZE2QEM.cjs +51 -0
  374. package/dist/chunk-MGZE2QEM.cjs.map +1 -0
  375. package/dist/chunk-MILTPAF6.js +255 -0
  376. package/dist/chunk-MILTPAF6.js.map +1 -0
  377. package/dist/chunk-MQ6VGG62.js +113 -0
  378. package/dist/chunk-MQ6VGG62.js.map +1 -0
  379. package/dist/chunk-MYF2PDTU.js +137 -0
  380. package/dist/chunk-MYF2PDTU.js.map +1 -0
  381. package/dist/chunk-MZIU27UY.js +133 -0
  382. package/dist/chunk-MZIU27UY.js.map +1 -0
  383. package/dist/chunk-N7WQ53US.js +211 -0
  384. package/dist/chunk-N7WQ53US.js.map +1 -0
  385. package/dist/chunk-NBZC6LOB.cjs +43 -0
  386. package/dist/chunk-NBZC6LOB.cjs.map +1 -0
  387. package/dist/chunk-NH7NRRII.js +167 -0
  388. package/dist/chunk-NH7NRRII.js.map +1 -0
  389. package/dist/chunk-NLJGNPNN.js +284 -0
  390. package/dist/chunk-NLJGNPNN.js.map +1 -0
  391. package/dist/chunk-NNSNANNY.cjs +224 -0
  392. package/dist/chunk-NNSNANNY.cjs.map +1 -0
  393. package/dist/chunk-NPKE2IX6.js +154 -0
  394. package/dist/chunk-NPKE2IX6.js.map +1 -0
  395. package/dist/chunk-NRXK42LO.js +12 -0
  396. package/dist/chunk-NRXK42LO.js.map +1 -0
  397. package/dist/chunk-O432BDEO.js +160 -0
  398. package/dist/chunk-O432BDEO.js.map +1 -0
  399. package/dist/chunk-O4MKOSU2.js +29 -0
  400. package/dist/chunk-O4MKOSU2.js.map +1 -0
  401. package/dist/chunk-O5IO7TCO.cjs +4 -0
  402. package/dist/chunk-O5IO7TCO.cjs.map +1 -0
  403. package/dist/chunk-OL53XYHF.js +17 -0
  404. package/dist/chunk-OL53XYHF.js.map +1 -0
  405. package/dist/chunk-ORCXPDDG.js +3 -0
  406. package/dist/chunk-ORCXPDDG.js.map +1 -0
  407. package/dist/chunk-ORFHF6PT.cjs +172 -0
  408. package/dist/chunk-ORFHF6PT.cjs.map +1 -0
  409. package/dist/chunk-ORPYY2MO.cjs +124 -0
  410. package/dist/chunk-ORPYY2MO.cjs.map +1 -0
  411. package/dist/chunk-OUOEQZHY.cjs +27 -0
  412. package/dist/chunk-OUOEQZHY.cjs.map +1 -0
  413. package/dist/chunk-PBXYU4EV.cjs +121 -0
  414. package/dist/chunk-PBXYU4EV.cjs.map +1 -0
  415. package/dist/chunk-PH3WGR5P.cjs +82 -0
  416. package/dist/chunk-PH3WGR5P.cjs.map +1 -0
  417. package/dist/chunk-POZZY3D5.cjs +135 -0
  418. package/dist/chunk-POZZY3D5.cjs.map +1 -0
  419. package/dist/chunk-PPLR2DNC.cjs +41 -0
  420. package/dist/chunk-PPLR2DNC.cjs.map +1 -0
  421. package/dist/chunk-PQWQ5K6J.js +15 -0
  422. package/dist/chunk-PQWQ5K6J.js.map +1 -0
  423. package/dist/chunk-PRDWJ4AR.js +215 -0
  424. package/dist/chunk-PRDWJ4AR.js.map +1 -0
  425. package/dist/chunk-PRJSEZ5F.cjs +285 -0
  426. package/dist/chunk-PRJSEZ5F.cjs.map +1 -0
  427. package/dist/chunk-PVWPZYTR.js +830 -0
  428. package/dist/chunk-PVWPZYTR.js.map +1 -0
  429. package/dist/chunk-PYRMH34E.js +49 -0
  430. package/dist/chunk-PYRMH34E.js.map +1 -0
  431. package/dist/chunk-PZIAL4OP.cjs +524 -0
  432. package/dist/chunk-PZIAL4OP.cjs.map +1 -0
  433. package/dist/chunk-QFFC2DKK.js +56 -0
  434. package/dist/chunk-QFFC2DKK.js.map +1 -0
  435. package/dist/chunk-R55HE5C5.js +81 -0
  436. package/dist/chunk-R55HE5C5.js.map +1 -0
  437. package/dist/chunk-RA3P63XW.cjs +65 -0
  438. package/dist/chunk-RA3P63XW.cjs.map +1 -0
  439. package/dist/chunk-RES2GOQQ.js +139 -0
  440. package/dist/chunk-RES2GOQQ.js.map +1 -0
  441. package/dist/chunk-RGANGU7X.js +24 -0
  442. package/dist/chunk-RGANGU7X.js.map +1 -0
  443. package/dist/chunk-RID7CYGD.js +344 -0
  444. package/dist/chunk-RID7CYGD.js.map +1 -0
  445. package/dist/chunk-RM4QWJS3.js +200 -0
  446. package/dist/chunk-RM4QWJS3.js.map +1 -0
  447. package/dist/chunk-RNHIDZLE.cjs +103 -0
  448. package/dist/chunk-RNHIDZLE.cjs.map +1 -0
  449. package/dist/chunk-RNPFSVFN.js +24 -0
  450. package/dist/chunk-RNPFSVFN.js.map +1 -0
  451. package/dist/chunk-RR7BWUVP.cjs +58 -0
  452. package/dist/chunk-RR7BWUVP.cjs.map +1 -0
  453. package/dist/chunk-RXDRYWVD.cjs +21 -0
  454. package/dist/chunk-RXDRYWVD.cjs.map +1 -0
  455. package/dist/chunk-S3TRSECD.cjs +4 -0
  456. package/dist/chunk-S3TRSECD.cjs.map +1 -0
  457. package/dist/chunk-SCPHSBBU.cjs +83 -0
  458. package/dist/chunk-SCPHSBBU.cjs.map +1 -0
  459. package/dist/chunk-SKI33QNW.js +133 -0
  460. package/dist/chunk-SKI33QNW.js.map +1 -0
  461. package/dist/chunk-T6IXZZBQ.cjs +83 -0
  462. package/dist/chunk-T6IXZZBQ.cjs.map +1 -0
  463. package/dist/chunk-T6YELZPJ.cjs +90 -0
  464. package/dist/chunk-T6YELZPJ.cjs.map +1 -0
  465. package/dist/chunk-TECFGOV2.js +222 -0
  466. package/dist/chunk-TECFGOV2.js.map +1 -0
  467. package/dist/chunk-TJ66S5K6.js +3 -0
  468. package/dist/chunk-TJ66S5K6.js.map +1 -0
  469. package/dist/chunk-TVRCOKJQ.cjs +106 -0
  470. package/dist/chunk-TVRCOKJQ.cjs.map +1 -0
  471. package/dist/chunk-TXTRTTG7.cjs +51 -0
  472. package/dist/chunk-TXTRTTG7.cjs.map +1 -0
  473. package/dist/chunk-TZKZ2LUF.cjs +140 -0
  474. package/dist/chunk-TZKZ2LUF.cjs.map +1 -0
  475. package/dist/chunk-UCYAHLGM.js +142 -0
  476. package/dist/chunk-UCYAHLGM.js.map +1 -0
  477. package/dist/chunk-UH2YXQ2B.cjs +166 -0
  478. package/dist/chunk-UH2YXQ2B.cjs.map +1 -0
  479. package/dist/chunk-UWVVEB2N.js +55 -0
  480. package/dist/chunk-UWVVEB2N.js.map +1 -0
  481. package/dist/chunk-VBZZ4CMM.cjs +71 -0
  482. package/dist/chunk-VBZZ4CMM.cjs.map +1 -0
  483. package/dist/chunk-VE3EM4K2.cjs +57 -0
  484. package/dist/chunk-VE3EM4K2.cjs.map +1 -0
  485. package/dist/chunk-VNDOT3NK.cjs +426 -0
  486. package/dist/chunk-VNDOT3NK.cjs.map +1 -0
  487. package/dist/chunk-VXHFR5MV.js +3 -0
  488. package/dist/chunk-VXHFR5MV.js.map +1 -0
  489. package/dist/chunk-W2Q4OWHX.cjs +204 -0
  490. package/dist/chunk-W2Q4OWHX.cjs.map +1 -0
  491. package/dist/chunk-WEGL4S52.js +450 -0
  492. package/dist/chunk-WEGL4S52.js.map +1 -0
  493. package/dist/chunk-WHEXTDPV.js +41 -0
  494. package/dist/chunk-WHEXTDPV.js.map +1 -0
  495. package/dist/chunk-WT72KW5M.cjs +347 -0
  496. package/dist/chunk-WT72KW5M.cjs.map +1 -0
  497. package/dist/chunk-WVO2EKE6.cjs +101 -0
  498. package/dist/chunk-WVO2EKE6.cjs.map +1 -0
  499. package/dist/chunk-WXADO5TS.cjs +124 -0
  500. package/dist/chunk-WXADO5TS.cjs.map +1 -0
  501. package/dist/chunk-X36ZGYTF.js +281 -0
  502. package/dist/chunk-X36ZGYTF.js.map +1 -0
  503. package/dist/chunk-XBBEQLMY.cjs +214 -0
  504. package/dist/chunk-XBBEQLMY.cjs.map +1 -0
  505. package/dist/chunk-XCZZVRBY.cjs +2030 -0
  506. package/dist/chunk-XCZZVRBY.cjs.map +1 -0
  507. package/dist/chunk-XJXQG34J.js +77 -0
  508. package/dist/chunk-XJXQG34J.js.map +1 -0
  509. package/dist/chunk-XMBOZ73D.js +92 -0
  510. package/dist/chunk-XMBOZ73D.js.map +1 -0
  511. package/dist/chunk-XZYKPGSK.cjs +453 -0
  512. package/dist/chunk-XZYKPGSK.cjs.map +1 -0
  513. package/dist/chunk-YCZN4FWI.js +42 -0
  514. package/dist/chunk-YCZN4FWI.js.map +1 -0
  515. package/dist/chunk-YHXE274U.js +129 -0
  516. package/dist/chunk-YHXE274U.js.map +1 -0
  517. package/dist/chunk-YLGTDBB2.cjs +43 -0
  518. package/dist/chunk-YLGTDBB2.cjs.map +1 -0
  519. package/dist/chunk-YT42J4VQ.js +361 -0
  520. package/dist/chunk-YT42J4VQ.js.map +1 -0
  521. package/dist/chunk-YT6N44Z3.js +99 -0
  522. package/dist/chunk-YT6N44Z3.js.map +1 -0
  523. package/dist/chunk-YXC7QHNT.cjs +385 -0
  524. package/dist/chunk-YXC7QHNT.cjs.map +1 -0
  525. package/dist/chunk-ZFVSEO5Z.cjs +136 -0
  526. package/dist/chunk-ZFVSEO5Z.cjs.map +1 -0
  527. package/dist/chunk-ZLCVKYHY.js +344 -0
  528. package/dist/chunk-ZLCVKYHY.js.map +1 -0
  529. package/dist/chunk-ZNTEM7F2.js +184 -0
  530. package/dist/chunk-ZNTEM7F2.js.map +1 -0
  531. package/dist/chunk-ZT36VWIA.js +136 -0
  532. package/dist/chunk-ZT36VWIA.js.map +1 -0
  533. package/dist/chunk-ZWOEKDNI.js +281 -0
  534. package/dist/chunk-ZWOEKDNI.js.map +1 -0
  535. package/dist/code-view.cjs +13 -0
  536. package/dist/code-view.cjs.map +1 -0
  537. package/dist/code-view.d.cts +44 -0
  538. package/dist/code-view.d.ts +44 -0
  539. package/dist/code-view.js +4 -0
  540. package/dist/code-view.js.map +1 -0
  541. package/dist/color-picker.cjs +16 -0
  542. package/dist/color-picker.cjs.map +1 -0
  543. package/dist/color-picker.d.cts +20 -0
  544. package/dist/color-picker.d.ts +20 -0
  545. package/dist/color-picker.js +7 -0
  546. package/dist/color-picker.js.map +1 -0
  547. package/dist/command.cjs +21 -0
  548. package/dist/command.cjs.map +1 -0
  549. package/dist/command.d.cts +78 -0
  550. package/dist/command.d.ts +78 -0
  551. package/dist/command.js +8 -0
  552. package/dist/command.js.map +1 -0
  553. package/dist/composer.cjs +14 -0
  554. package/dist/composer.cjs.map +1 -0
  555. package/dist/composer.d.cts +17 -0
  556. package/dist/composer.d.ts +17 -0
  557. package/dist/composer.js +5 -0
  558. package/dist/composer.js.map +1 -0
  559. package/dist/content-renderer.cjs +23 -0
  560. package/dist/content-renderer.cjs.map +1 -0
  561. package/dist/content-renderer.d.cts +27 -0
  562. package/dist/content-renderer.d.ts +27 -0
  563. package/dist/content-renderer.js +6 -0
  564. package/dist/content-renderer.js.map +1 -0
  565. package/dist/context-menu.cjs +21 -0
  566. package/dist/context-menu.cjs.map +1 -0
  567. package/dist/context-menu.d.cts +91 -0
  568. package/dist/context-menu.d.ts +91 -0
  569. package/dist/context-menu.js +8 -0
  570. package/dist/context-menu.js.map +1 -0
  571. package/dist/date-picker.cjs +19 -0
  572. package/dist/date-picker.cjs.map +1 -0
  573. package/dist/date-picker.d.cts +26 -0
  574. package/dist/date-picker.d.ts +26 -0
  575. package/dist/date-picker.js +10 -0
  576. package/dist/date-picker.js.map +1 -0
  577. package/dist/drawer.cjs +21 -0
  578. package/dist/drawer.cjs.map +1 -0
  579. package/dist/drawer.d.cts +116 -0
  580. package/dist/drawer.d.ts +116 -0
  581. package/dist/drawer.js +8 -0
  582. package/dist/drawer.js.map +1 -0
  583. package/dist/dropdown.cjs +22 -0
  584. package/dist/dropdown.cjs.map +1 -0
  585. package/dist/dropdown.d.cts +67 -0
  586. package/dist/dropdown.d.ts +67 -0
  587. package/dist/dropdown.js +9 -0
  588. package/dist/dropdown.js.map +1 -0
  589. package/dist/editor.cjs +29 -0
  590. package/dist/editor.cjs.map +1 -0
  591. package/dist/editor.d.cts +153 -0
  592. package/dist/editor.d.ts +153 -0
  593. package/dist/editor.js +16 -0
  594. package/dist/editor.js.map +1 -0
  595. package/dist/emoji-select.cjs +15 -0
  596. package/dist/emoji-select.cjs.map +1 -0
  597. package/dist/emoji-select.d.cts +13 -0
  598. package/dist/emoji-select.d.ts +13 -0
  599. package/dist/emoji-select.js +6 -0
  600. package/dist/emoji-select.js.map +1 -0
  601. package/dist/emoji.cjs +14 -0
  602. package/dist/emoji.cjs.map +1 -0
  603. package/dist/emoji.d.cts +2 -0
  604. package/dist/emoji.d.ts +2 -0
  605. package/dist/emoji.js +5 -0
  606. package/dist/emoji.js.map +1 -0
  607. package/dist/extensions-6PVd3-vB.d.cts +38 -0
  608. package/dist/extensions-6PVd3-vB.d.ts +38 -0
  609. package/dist/eyebrow.cjs +13 -0
  610. package/dist/eyebrow.cjs.map +1 -0
  611. package/dist/eyebrow.d.cts +33 -0
  612. package/dist/eyebrow.d.ts +33 -0
  613. package/dist/eyebrow.js +4 -0
  614. package/dist/eyebrow.js.map +1 -0
  615. package/dist/faux-client.cjs +13 -0
  616. package/dist/faux-client.cjs.map +1 -0
  617. package/dist/faux-client.d.cts +39 -0
  618. package/dist/faux-client.d.ts +39 -0
  619. package/dist/faux-client.js +4 -0
  620. package/dist/faux-client.js.map +1 -0
  621. package/dist/field.cjs +14 -0
  622. package/dist/field.cjs.map +1 -0
  623. package/dist/field.d.cts +18 -0
  624. package/dist/field.d.ts +18 -0
  625. package/dist/field.js +5 -0
  626. package/dist/field.js.map +1 -0
  627. package/dist/file-browser.cjs +18 -0
  628. package/dist/file-browser.cjs.map +1 -0
  629. package/dist/file-browser.d.cts +269 -0
  630. package/dist/file-browser.d.ts +269 -0
  631. package/dist/file-browser.js +5 -0
  632. package/dist/file-browser.js.map +1 -0
  633. package/dist/file-upload.cjs +17 -0
  634. package/dist/file-upload.cjs.map +1 -0
  635. package/dist/file-upload.d.cts +48 -0
  636. package/dist/file-upload.d.ts +48 -0
  637. package/dist/file-upload.js +4 -0
  638. package/dist/file-upload.js.map +1 -0
  639. package/dist/heading.cjs +13 -0
  640. package/dist/heading.cjs.map +1 -0
  641. package/dist/heading.d.cts +25 -0
  642. package/dist/heading.d.ts +25 -0
  643. package/dist/heading.js +4 -0
  644. package/dist/heading.js.map +1 -0
  645. package/dist/icon.cjs +34 -0
  646. package/dist/icon.cjs.map +1 -0
  647. package/dist/icon.d.cts +51 -0
  648. package/dist/icon.d.ts +51 -0
  649. package/dist/icon.js +5 -0
  650. package/dist/icon.js.map +1 -0
  651. package/dist/image-viewer.cjs +14 -0
  652. package/dist/image-viewer.cjs.map +1 -0
  653. package/dist/image-viewer.d.cts +19 -0
  654. package/dist/image-viewer.d.ts +19 -0
  655. package/dist/image-viewer.js +5 -0
  656. package/dist/image-viewer.js.map +1 -0
  657. package/dist/index-B71wa9AW.d.cts +79 -0
  658. package/dist/index-BktWpyRH.d.cts +53 -0
  659. package/dist/index-BktWpyRH.d.ts +53 -0
  660. package/dist/index-bIntFOl5.d.ts +79 -0
  661. package/dist/index-list.cjs +13 -0
  662. package/dist/index-list.cjs.map +1 -0
  663. package/dist/index-list.d.cts +49 -0
  664. package/dist/index-list.d.ts +49 -0
  665. package/dist/index-list.js +4 -0
  666. package/dist/index-list.js.map +1 -0
  667. package/dist/index.cjs +671 -16826
  668. package/dist/index.cjs.map +1 -1
  669. package/dist/index.d.cts +94 -4078
  670. package/dist/index.d.ts +94 -4078
  671. package/dist/index.js +104 -16708
  672. package/dist/index.js.map +1 -1
  673. package/dist/input-tag.cjs +28 -0
  674. package/dist/input-tag.cjs.map +1 -0
  675. package/dist/input-tag.d.cts +134 -0
  676. package/dist/input-tag.d.ts +134 -0
  677. package/dist/input-tag.js +3 -0
  678. package/dist/input-tag.js.map +1 -0
  679. package/dist/input.cjs +20 -0
  680. package/dist/input.cjs.map +1 -0
  681. package/dist/input.d.cts +32 -0
  682. package/dist/input.d.ts +32 -0
  683. package/dist/input.js +11 -0
  684. package/dist/input.js.map +1 -0
  685. package/dist/inputs.cjs +100 -0
  686. package/dist/inputs.cjs.map +1 -0
  687. package/dist/inputs.d.cts +16 -0
  688. package/dist/inputs.d.ts +16 -0
  689. package/dist/inputs.js +27 -0
  690. package/dist/inputs.js.map +1 -0
  691. package/dist/inputs.types-CkWdvN-t.d.cts +44 -0
  692. package/dist/inputs.types-DERzxpe1.d.ts +44 -0
  693. package/dist/kanban.cjs +17 -0
  694. package/dist/kanban.cjs.map +1 -0
  695. package/dist/kanban.d.cts +136 -0
  696. package/dist/kanban.d.ts +136 -0
  697. package/dist/kanban.js +4 -0
  698. package/dist/kanban.js.map +1 -0
  699. package/dist/kbd.cjs +13 -0
  700. package/dist/kbd.cjs.map +1 -0
  701. package/dist/kbd.d.cts +30 -0
  702. package/dist/kbd.d.ts +30 -0
  703. package/dist/kbd.js +4 -0
  704. package/dist/kbd.js.map +1 -0
  705. package/dist/magic-wand.cjs +25 -0
  706. package/dist/magic-wand.cjs.map +1 -0
  707. package/dist/magic-wand.d.cts +62 -0
  708. package/dist/magic-wand.d.ts +62 -0
  709. package/dist/magic-wand.js +16 -0
  710. package/dist/magic-wand.js.map +1 -0
  711. package/dist/marquee.cjs +13 -0
  712. package/dist/marquee.cjs.map +1 -0
  713. package/dist/marquee.d.cts +48 -0
  714. package/dist/marquee.d.ts +48 -0
  715. package/dist/marquee.js +4 -0
  716. package/dist/marquee.js.map +1 -0
  717. package/dist/media-viewer.cjs +18 -0
  718. package/dist/media-viewer.cjs.map +1 -0
  719. package/dist/media-viewer.d.cts +6 -0
  720. package/dist/media-viewer.d.ts +6 -0
  721. package/dist/media-viewer.js +9 -0
  722. package/dist/media-viewer.js.map +1 -0
  723. package/dist/menu.cjs +17 -0
  724. package/dist/menu.cjs.map +1 -0
  725. package/dist/menu.d.cts +60 -0
  726. package/dist/menu.d.ts +60 -0
  727. package/dist/menu.js +4 -0
  728. package/dist/menu.js.map +1 -0
  729. package/dist/mobile-menu.cjs +26 -0
  730. package/dist/mobile-menu.cjs.map +1 -0
  731. package/dist/mobile-menu.d.cts +60 -0
  732. package/dist/mobile-menu.d.ts +60 -0
  733. package/dist/mobile-menu.js +13 -0
  734. package/dist/mobile-menu.js.map +1 -0
  735. package/dist/modal.cjs +21 -0
  736. package/dist/modal.cjs.map +1 -0
  737. package/dist/modal.d.cts +52 -0
  738. package/dist/modal.d.ts +52 -0
  739. package/dist/modal.js +8 -0
  740. package/dist/modal.js.map +1 -0
  741. package/dist/mode.cjs +37 -0
  742. package/dist/mode.cjs.map +1 -0
  743. package/dist/mode.d.cts +28 -0
  744. package/dist/mode.d.ts +28 -0
  745. package/dist/mode.js +8 -0
  746. package/dist/mode.js.map +1 -0
  747. package/dist/mood-meter.cjs +12 -0
  748. package/dist/mood-meter.cjs.map +1 -0
  749. package/dist/mood-meter.d.cts +67 -0
  750. package/dist/mood-meter.d.ts +67 -0
  751. package/dist/mood-meter.js +3 -0
  752. package/dist/mood-meter.js.map +1 -0
  753. package/dist/multi-switch.cjs +19 -0
  754. package/dist/multi-switch.cjs.map +1 -0
  755. package/dist/multi-switch.d.cts +18 -0
  756. package/dist/multi-switch.d.ts +18 -0
  757. package/dist/multi-switch.js +10 -0
  758. package/dist/multi-switch.js.map +1 -0
  759. package/dist/navbar.cjs +17 -0
  760. package/dist/navbar.cjs.map +1 -0
  761. package/dist/navbar.d.cts +60 -0
  762. package/dist/navbar.d.ts +60 -0
  763. package/dist/navbar.js +4 -0
  764. package/dist/navbar.js.map +1 -0
  765. package/dist/otp-input.cjs +16 -0
  766. package/dist/otp-input.cjs.map +1 -0
  767. package/dist/otp-input.d.cts +18 -0
  768. package/dist/otp-input.d.ts +18 -0
  769. package/dist/otp-input.js +7 -0
  770. package/dist/otp-input.js.map +1 -0
  771. package/dist/pagination.cjs +13 -0
  772. package/dist/pagination.cjs.map +1 -0
  773. package/dist/pagination.d.cts +16 -0
  774. package/dist/pagination.d.ts +16 -0
  775. package/dist/pagination.js +4 -0
  776. package/dist/pagination.js.map +1 -0
  777. package/dist/pdf-viewer.cjs +13 -0
  778. package/dist/pdf-viewer.cjs.map +1 -0
  779. package/dist/pdf-viewer.d.cts +16 -0
  780. package/dist/pdf-viewer.d.ts +16 -0
  781. package/dist/pdf-viewer.js +4 -0
  782. package/dist/pdf-viewer.js.map +1 -0
  783. package/dist/pillbox.cjs +14 -0
  784. package/dist/pillbox.cjs.map +1 -0
  785. package/dist/pillbox.d.cts +15 -0
  786. package/dist/pillbox.d.ts +15 -0
  787. package/dist/pillbox.js +5 -0
  788. package/dist/pillbox.js.map +1 -0
  789. package/dist/popover.cjs +21 -0
  790. package/dist/popover.cjs.map +1 -0
  791. package/dist/popover.d.cts +71 -0
  792. package/dist/popover.d.ts +71 -0
  793. package/dist/popover.js +8 -0
  794. package/dist/popover.js.map +1 -0
  795. package/dist/portal.cjs +12 -0
  796. package/dist/portal.cjs.map +1 -0
  797. package/dist/portal.d.cts +10 -0
  798. package/dist/portal.d.ts +10 -0
  799. package/dist/portal.js +3 -0
  800. package/dist/portal.js.map +1 -0
  801. package/dist/profile.cjs +14 -0
  802. package/dist/profile.cjs.map +1 -0
  803. package/dist/profile.d.cts +16 -0
  804. package/dist/profile.d.ts +16 -0
  805. package/dist/profile.js +5 -0
  806. package/dist/profile.js.map +1 -0
  807. package/dist/progress.cjs +13 -0
  808. package/dist/progress.cjs.map +1 -0
  809. package/dist/progress.d.cts +25 -0
  810. package/dist/progress.d.ts +25 -0
  811. package/dist/progress.js +4 -0
  812. package/dist/progress.js.map +1 -0
  813. package/dist/prompt-input.cjs +20 -0
  814. package/dist/prompt-input.cjs.map +1 -0
  815. package/dist/prompt-input.d.cts +76 -0
  816. package/dist/prompt-input.d.ts +76 -0
  817. package/dist/prompt-input.js +11 -0
  818. package/dist/prompt-input.js.map +1 -0
  819. package/dist/pull-quote.cjs +13 -0
  820. package/dist/pull-quote.cjs.map +1 -0
  821. package/dist/pull-quote.d.cts +33 -0
  822. package/dist/pull-quote.d.ts +33 -0
  823. package/dist/pull-quote.js +4 -0
  824. package/dist/pull-quote.js.map +1 -0
  825. package/dist/radio-group.cjs +19 -0
  826. package/dist/radio-group.cjs.map +1 -0
  827. package/dist/radio-group.d.cts +18 -0
  828. package/dist/radio-group.d.ts +18 -0
  829. package/dist/radio-group.js +10 -0
  830. package/dist/radio-group.js.map +1 -0
  831. package/dist/reason-tag.cjs +22 -0
  832. package/dist/reason-tag.cjs.map +1 -0
  833. package/dist/reason-tag.d.cts +57 -0
  834. package/dist/reason-tag.d.ts +57 -0
  835. package/dist/reason-tag.js +13 -0
  836. package/dist/reason-tag.js.map +1 -0
  837. package/dist/select.cjs +23 -0
  838. package/dist/select.cjs.map +1 -0
  839. package/dist/select.d.cts +41 -0
  840. package/dist/select.d.ts +41 -0
  841. package/dist/select.js +14 -0
  842. package/dist/select.js.map +1 -0
  843. package/dist/separator.cjs +13 -0
  844. package/dist/separator.cjs.map +1 -0
  845. package/dist/separator.d.cts +14 -0
  846. package/dist/separator.d.ts +14 -0
  847. package/dist/separator.js +4 -0
  848. package/dist/separator.js.map +1 -0
  849. package/dist/sidebar.cjs +25 -0
  850. package/dist/sidebar.cjs.map +1 -0
  851. package/dist/sidebar.d.cts +80 -0
  852. package/dist/sidebar.d.ts +80 -0
  853. package/dist/sidebar.js +12 -0
  854. package/dist/sidebar.js.map +1 -0
  855. package/dist/skeleton.cjs +13 -0
  856. package/dist/skeleton.cjs.map +1 -0
  857. package/dist/skeleton.d.cts +16 -0
  858. package/dist/skeleton.d.ts +16 -0
  859. package/dist/skeleton.js +4 -0
  860. package/dist/skeleton.js.map +1 -0
  861. package/dist/slider.cjs +19 -0
  862. package/dist/slider.cjs.map +1 -0
  863. package/dist/slider.d.cts +34 -0
  864. package/dist/slider.d.ts +34 -0
  865. package/dist/slider.js +10 -0
  866. package/dist/slider.js.map +1 -0
  867. package/dist/stat-list.cjs +13 -0
  868. package/dist/stat-list.cjs.map +1 -0
  869. package/dist/stat-list.d.cts +43 -0
  870. package/dist/stat-list.d.ts +43 -0
  871. package/dist/stat-list.js +4 -0
  872. package/dist/stat-list.js.map +1 -0
  873. package/dist/stat.cjs +17 -0
  874. package/dist/stat.cjs.map +1 -0
  875. package/dist/stat.d.cts +29 -0
  876. package/dist/stat.d.ts +29 -0
  877. package/dist/stat.js +4 -0
  878. package/dist/stat.js.map +1 -0
  879. package/dist/sticky-note.cjs +13 -0
  880. package/dist/sticky-note.cjs.map +1 -0
  881. package/dist/sticky-note.d.cts +53 -0
  882. package/dist/sticky-note.d.ts +53 -0
  883. package/dist/sticky-note.js +4 -0
  884. package/dist/sticky-note.js.map +1 -0
  885. package/dist/switch.cjs +17 -0
  886. package/dist/switch.cjs.map +1 -0
  887. package/dist/switch.d.cts +16 -0
  888. package/dist/switch.d.ts +16 -0
  889. package/dist/switch.js +8 -0
  890. package/dist/switch.js.map +1 -0
  891. package/dist/table.cjs +50 -0
  892. package/dist/table.cjs.map +1 -0
  893. package/dist/table.d.cts +89 -0
  894. package/dist/table.d.ts +89 -0
  895. package/dist/table.js +5 -0
  896. package/dist/table.js.map +1 -0
  897. package/dist/tabs.cjs +18 -0
  898. package/dist/tabs.cjs.map +1 -0
  899. package/dist/tabs.d.cts +68 -0
  900. package/dist/tabs.d.ts +68 -0
  901. package/dist/tabs.js +5 -0
  902. package/dist/tabs.js.map +1 -0
  903. package/dist/text.cjs +13 -0
  904. package/dist/text.cjs.map +1 -0
  905. package/dist/text.d.cts +17 -0
  906. package/dist/text.d.ts +17 -0
  907. package/dist/text.js +4 -0
  908. package/dist/text.js.map +1 -0
  909. package/dist/textarea.cjs +20 -0
  910. package/dist/textarea.cjs.map +1 -0
  911. package/dist/textarea.d.cts +15 -0
  912. package/dist/textarea.d.ts +15 -0
  913. package/dist/textarea.js +11 -0
  914. package/dist/textarea.js.map +1 -0
  915. package/dist/time-grid.cjs +13 -0
  916. package/dist/time-grid.cjs.map +1 -0
  917. package/dist/time-grid.d.cts +53 -0
  918. package/dist/time-grid.d.ts +53 -0
  919. package/dist/time-grid.js +4 -0
  920. package/dist/time-grid.js.map +1 -0
  921. package/dist/time-picker.cjs +16 -0
  922. package/dist/time-picker.cjs.map +1 -0
  923. package/dist/time-picker.d.cts +19 -0
  924. package/dist/time-picker.d.ts +19 -0
  925. package/dist/time-picker.js +7 -0
  926. package/dist/time-picker.js.map +1 -0
  927. package/dist/timeline.cjs +21 -0
  928. package/dist/timeline.cjs.map +1 -0
  929. package/dist/timeline.d.cts +10 -0
  930. package/dist/timeline.d.ts +10 -0
  931. package/dist/timeline.js +4 -0
  932. package/dist/timeline.js.map +1 -0
  933. package/dist/toast.cjs +18 -0
  934. package/dist/toast.cjs.map +1 -0
  935. package/dist/toast.d.cts +54 -0
  936. package/dist/toast.d.ts +54 -0
  937. package/dist/toast.js +5 -0
  938. package/dist/toast.js.map +1 -0
  939. package/dist/tooltip.cjs +15 -0
  940. package/dist/tooltip.cjs.map +1 -0
  941. package/dist/tooltip.d.cts +16 -0
  942. package/dist/tooltip.d.ts +16 -0
  943. package/dist/tooltip.js +6 -0
  944. package/dist/tooltip.js.map +1 -0
  945. package/dist/tree-nav.cjs +17 -0
  946. package/dist/tree-nav.cjs.map +1 -0
  947. package/dist/tree-nav.d.cts +114 -0
  948. package/dist/tree-nav.d.ts +114 -0
  949. package/dist/tree-nav.js +4 -0
  950. package/dist/tree-nav.js.map +1 -0
  951. package/dist/types-8Sv0rCjw.d.cts +58 -0
  952. package/dist/types-8Sv0rCjw.d.ts +58 -0
  953. package/dist/video-viewer.cjs +13 -0
  954. package/dist/video-viewer.cjs.map +1 -0
  955. package/dist/video-viewer.d.cts +14 -0
  956. package/dist/video-viewer.d.ts +14 -0
  957. package/dist/video-viewer.js +4 -0
  958. package/dist/video-viewer.js.map +1 -0
  959. package/package.json +855 -5
@@ -0,0 +1,138 @@
1
+ 'use strict';
2
+
3
+ var chunk6BW5BQMN_cjs = require('./chunk-6BW5BQMN.cjs');
4
+ var chunkPPLR2DNC_cjs = require('./chunk-PPLR2DNC.cjs');
5
+ var chunkYLGTDBB2_cjs = require('./chunk-YLGTDBB2.cjs');
6
+ var chunkKJ22KE56_cjs = require('./chunk-KJ22KE56.cjs');
7
+ var chunkL3V3BYVS_cjs = require('./chunk-L3V3BYVS.cjs');
8
+ var chunkOUOEQZHY_cjs = require('./chunk-OUOEQZHY.cjs');
9
+ var chunk3Z6ALUWP_cjs = require('./chunk-3Z6ALUWP.cjs');
10
+ var react = require('react');
11
+ var jsxRuntime = require('react/jsx-runtime');
12
+
13
+ var sizeClasses = {
14
+ xs: "px-2 py-1 text-xs",
15
+ sm: "px-2.5 py-1.5 text-sm",
16
+ md: "px-3 py-2 text-sm",
17
+ lg: "px-4 py-2.5 text-base",
18
+ xl: "px-5 py-3 text-lg"
19
+ };
20
+ function MultiSwitch({
21
+ size = "md",
22
+ dirty,
23
+ error,
24
+ label,
25
+ description,
26
+ required,
27
+ disabled,
28
+ className,
29
+ id,
30
+ name,
31
+ list,
32
+ value: controlledValue,
33
+ defaultValue,
34
+ onValueChange,
35
+ linear,
36
+ mode,
37
+ ...rest
38
+ }) {
39
+ const resolvedOptions = list.map(chunkYLGTDBB2_cjs.resolveOption);
40
+ const fallback = defaultValue ?? resolvedOptions[0]?.value;
41
+ const resolvedMode = chunkL3V3BYVS_cjs.useFieldMode(mode);
42
+ const { showControl, interactive, enterEdit, exitEdit } = chunkKJ22KE56_cjs.useInlineEdit(resolvedMode, disabled);
43
+ const [value, setValue] = chunkOUOEQZHY_cjs.useControllableState(controlledValue, fallback, onValueChange);
44
+ const containerRef = react.useRef(null);
45
+ const itemRefs = react.useRef([]);
46
+ const [indicator, setIndicator] = react.useState(null);
47
+ const selectedIndex = resolvedOptions.findIndex(
48
+ (o) => o.value === value
49
+ );
50
+ const updateIndicator = react.useCallback(() => {
51
+ const container = containerRef.current;
52
+ const activeItem = itemRefs.current[selectedIndex];
53
+ if (!container || !activeItem) {
54
+ setIndicator(null);
55
+ return;
56
+ }
57
+ const containerRect = container.getBoundingClientRect();
58
+ const itemRect = activeItem.getBoundingClientRect();
59
+ setIndicator({
60
+ left: itemRect.left - containerRect.left,
61
+ width: itemRect.width
62
+ });
63
+ }, [selectedIndex]);
64
+ react.useEffect(() => {
65
+ updateIndicator();
66
+ }, [updateIndicator]);
67
+ const control = !showControl ? /* @__PURE__ */ jsxRuntime.jsx(chunk6BW5BQMN_cjs.DisplayValue, { size, interactive, onActivate: enterEdit, children: resolvedOptions.find((o) => o.value === value)?.label }) : /* @__PURE__ */ jsxRuntime.jsxs(
68
+ "div",
69
+ {
70
+ ref: containerRef,
71
+ ...rest,
72
+ "data-react-fancy-multi-switch": "",
73
+ role: "radiogroup",
74
+ id,
75
+ onBlur: (e) => {
76
+ if (interactive && !e.currentTarget.contains(e.relatedTarget)) exitEdit();
77
+ },
78
+ className: chunk3Z6ALUWP_cjs.cn(
79
+ "relative inline-flex rounded-lg border border-zinc-300 bg-zinc-100 dark:border-zinc-700 dark:bg-zinc-800",
80
+ dirty && "ring-2 ring-amber-400/50",
81
+ error && "ring-2 ring-red-500/50",
82
+ disabled && "opacity-50 cursor-not-allowed",
83
+ className
84
+ ),
85
+ children: [
86
+ indicator && /* @__PURE__ */ jsxRuntime.jsx(
87
+ "span",
88
+ {
89
+ className: "absolute top-0 bottom-0 rounded-lg bg-blue-600 transition-all duration-200 ease-out",
90
+ style: { left: indicator.left, width: indicator.width }
91
+ }
92
+ ),
93
+ resolvedOptions.map((option, index) => {
94
+ const isSelected = option.value === value;
95
+ return /* @__PURE__ */ jsxRuntime.jsx(
96
+ "button",
97
+ {
98
+ ref: (el) => {
99
+ itemRefs.current[index] = el;
100
+ },
101
+ type: "button",
102
+ role: "radio",
103
+ "aria-checked": isSelected,
104
+ disabled: disabled || option.disabled,
105
+ autoFocus: interactive && (selectedIndex === -1 ? index === 0 : isSelected),
106
+ onClick: () => {
107
+ if (linear) {
108
+ const nextIndex = (selectedIndex + 1) % resolvedOptions.length;
109
+ setValue(resolvedOptions[nextIndex].value);
110
+ } else {
111
+ setValue(option.value);
112
+ }
113
+ },
114
+ className: chunk3Z6ALUWP_cjs.cn(
115
+ "relative z-10 font-medium transition-colors duration-200",
116
+ sizeClasses[size],
117
+ isSelected ? "text-white" : "text-zinc-600 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-100",
118
+ (disabled || option.disabled) && "cursor-not-allowed"
119
+ ),
120
+ children: option.label
121
+ },
122
+ String(option.value)
123
+ );
124
+ }),
125
+ name && /* @__PURE__ */ jsxRuntime.jsx("input", { type: "hidden", name, value: String(value) })
126
+ ]
127
+ }
128
+ );
129
+ if (label || error || description) {
130
+ return /* @__PURE__ */ jsxRuntime.jsx(chunkPPLR2DNC_cjs.Field, { label, description, error, required, htmlFor: id, size, children: control });
131
+ }
132
+ return control;
133
+ }
134
+ MultiSwitch.displayName = "MultiSwitch";
135
+
136
+ exports.MultiSwitch = MultiSwitch;
137
+ //# sourceMappingURL=chunk-IGU5YXRV.cjs.map
138
+ //# sourceMappingURL=chunk-IGU5YXRV.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/inputs/MultiSwitch/MultiSwitch.tsx"],"names":["resolveOption","useFieldMode","useInlineEdit","useControllableState","useRef","useState","useCallback","useEffect","DisplayValue","jsxs","cn","jsx","Field"],"mappings":";;;;;;;;;;;;AAWA,IAAM,WAAA,GAAoC;AAAA,EACxC,EAAA,EAAI,mBAAA;AAAA,EACJ,EAAA,EAAI,uBAAA;AAAA,EACJ,EAAA,EAAI,mBAAA;AAAA,EACJ,EAAA,EAAI,uBAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAEO,SAAS,WAAA,CAAwB;AAAA,EACtC,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,EAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA,EAAO,eAAA;AAAA,EACP,YAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,GAAA,CAAIA,+BAAa,CAAA;AAC9C,EAAA,MAAM,QAAA,GAAW,YAAA,IAAgB,eAAA,CAAgB,CAAC,CAAA,EAAG,KAAA;AACrD,EAAA,MAAM,YAAA,GAAeC,+BAAa,IAAI,CAAA;AACtC,EAAA,MAAM,EAAE,aAAa,WAAA,EAAa,SAAA,EAAW,UAAS,GAAIC,+BAAA,CAAc,cAAc,QAAQ,CAAA;AAC9F,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,IAAIC,sCAAA,CAAqB,eAAA,EAAiB,UAAe,aAAa,CAAA;AAE5F,EAAA,MAAM,YAAA,GAAeC,aAAuB,IAAI,CAAA;AAChD,EAAA,MAAM,QAAA,GAAWA,YAAA,CAAqC,EAAE,CAAA;AACxD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIC,eAAiD,IAAI,CAAA;AAEvF,EAAA,MAAM,gBAAgB,eAAA,CAAgB,SAAA;AAAA,IACpC,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,KAAU;AAAA,GACrB;AAEA,EAAA,MAAM,eAAA,GAAkBC,kBAAY,MAAM;AACxC,IAAA,MAAM,YAAY,YAAA,CAAa,OAAA;AAC/B,IAAA,MAAM,UAAA,GAAa,QAAA,CAAS,OAAA,CAAQ,aAAa,CAAA;AACjD,IAAA,IAAI,CAAC,SAAA,IAAa,CAAC,UAAA,EAAY;AAC7B,MAAA,YAAA,CAAa,IAAI,CAAA;AACjB,MAAA;AAAA,IACF;AACA,IAAA,MAAM,aAAA,GAAgB,UAAU,qBAAA,EAAsB;AACtD,IAAA,MAAM,QAAA,GAAW,WAAW,qBAAA,EAAsB;AAClD,IAAA,YAAA,CAAa;AAAA,MACX,IAAA,EAAM,QAAA,CAAS,IAAA,GAAO,aAAA,CAAc,IAAA;AAAA,MACpC,OAAO,QAAA,CAAS;AAAA,KACjB,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,eAAA,EAAgB;AAAA,EAClB,CAAA,EAAG,CAAC,eAAe,CAAC,CAAA;AAEpB,EAAA,MAAM,UAAU,CAAC,WAAA,kCACdC,8BAAA,EAAA,EAAa,IAAA,EAAY,aAA0B,UAAA,EAAY,SAAA,EAC7D,QAAA,EAAA,eAAA,CAAgB,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,UAAU,KAAK,CAAA,EAAG,OACnD,CAAA,mBAEAC,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,YAAA;AAAA,MACJ,GAAG,IAAA;AAAA,MACJ,+BAAA,EAA8B,EAAA;AAAA,MAC9B,IAAA,EAAK,YAAA;AAAA,MACL,EAAA;AAAA,MACA,MAAA,EAAQ,CAAC,CAAA,KAAM;AACb,QAAA,IAAI,WAAA,IAAe,CAAC,CAAA,CAAE,aAAA,CAAc,SAAS,CAAA,CAAE,aAAqB,GAAG,QAAA,EAAS;AAAA,MAClF,CAAA;AAAA,MACA,SAAA,EAAWC,oBAAA;AAAA,QACT,0GAAA;AAAA,QACA,KAAA,IAAS,0BAAA;AAAA,QACT,KAAA,IAAS,wBAAA;AAAA,QACT,QAAA,IAAY,+BAAA;AAAA,QACZ;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,SAAA,oBACCC,cAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,qFAAA;AAAA,YACV,OAAO,EAAE,IAAA,EAAM,UAAU,IAAA,EAAM,KAAA,EAAO,UAAU,KAAA;AAAM;AAAA,SACxD;AAAA,QAED,eAAA,CAAgB,GAAA,CAAI,CAAC,MAAA,EAAQ,KAAA,KAAU;AACtC,UAAA,MAAM,UAAA,GAAa,OAAO,KAAA,KAAU,KAAA;AACpC,UAAA,uBACEA,cAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cAEC,GAAA,EAAK,CAAC,EAAA,KAAO;AAAE,gBAAA,QAAA,CAAS,OAAA,CAAQ,KAAK,CAAA,GAAI,EAAA;AAAA,cAAI,CAAA;AAAA,cAC7C,IAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,OAAA;AAAA,cACL,cAAA,EAAc,UAAA;AAAA,cACd,QAAA,EAAU,YAAY,MAAA,CAAO,QAAA;AAAA,cAC7B,SAAA,EAAW,WAAA,KAAgB,aAAA,KAAkB,EAAA,GAAK,UAAU,CAAA,GAAI,UAAA,CAAA;AAAA,cAChE,SAAS,MAAM;AACb,gBAAA,IAAI,MAAA,EAAQ;AACV,kBAAA,MAAM,SAAA,GAAA,CAAa,aAAA,GAAgB,CAAA,IAAK,eAAA,CAAgB,MAAA;AACxD,kBAAA,QAAA,CAAS,eAAA,CAAgB,SAAS,CAAA,CAAE,KAAU,CAAA;AAAA,gBAChD,CAAA,MAAO;AACL,kBAAA,QAAA,CAAS,OAAO,KAAU,CAAA;AAAA,gBAC5B;AAAA,cACF,CAAA;AAAA,cACA,SAAA,EAAWD,oBAAA;AAAA,gBACT,0DAAA;AAAA,gBACA,YAAY,IAAI,CAAA;AAAA,gBAChB,aACI,YAAA,GACA,+EAAA;AAAA,gBAAA,CACH,QAAA,IAAY,OAAO,QAAA,KAAa;AAAA,eACnC;AAAA,cAEC,QAAA,EAAA,MAAA,CAAO;AAAA,aAAA;AAAA,YAxBH,MAAA,CAAO,OAAO,KAAK;AAAA,WAyB1B;AAAA,QAEJ,CAAC,CAAA;AAAA,QACA,IAAA,mCAAS,OAAA,EAAA,EAAM,IAAA,EAAK,UAAS,IAAA,EAAY,KAAA,EAAO,MAAA,CAAO,KAAK,CAAA,EAAG;AAAA;AAAA;AAAA,GAClE;AAGF,EAAA,IAAI,KAAA,IAAS,SAAS,WAAA,EAAa;AACjC,IAAA,uBACEC,cAAA,CAACC,2BAAM,KAAA,EAAc,WAAA,EAA0B,OAAc,QAAA,EAAoB,OAAA,EAAS,EAAA,EAAI,IAAA,EAC3F,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,EAEJ;AAEA,EAAA,OAAO,OAAA;AACT;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-IGU5YXRV.cjs","sourcesContent":["import { useRef, useState, useEffect, useCallback } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { Field } from \"../Field\";\nimport { useFieldMode } from \"../mode/FieldMode.context\";\nimport { DisplayValue } from \"../mode/DisplayValue\";\nimport { useInlineEdit } from \"../mode/useInlineEdit\";\nimport { resolveOption } from \"../inputs.utils\";\nimport type { Size } from \"../../../utils/types\";\nimport type { MultiSwitchProps } from \"./MultiSwitch.types\";\n\nconst sizeClasses: Record<Size, string> = {\n xs: \"px-2 py-1 text-xs\",\n sm: \"px-2.5 py-1.5 text-sm\",\n md: \"px-3 py-2 text-sm\",\n lg: \"px-4 py-2.5 text-base\",\n xl: \"px-5 py-3 text-lg\",\n};\n\nexport function MultiSwitch<V = string>({\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n list,\n value: controlledValue,\n defaultValue,\n onValueChange,\n linear,\n mode,\n ...rest\n}: MultiSwitchProps<V>) {\n const resolvedOptions = list.map(resolveOption);\n const fallback = defaultValue ?? resolvedOptions[0]?.value;\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n const [value, setValue] = useControllableState(controlledValue, fallback as V, onValueChange);\n\n const containerRef = useRef<HTMLDivElement>(null);\n const itemRefs = useRef<(HTMLButtonElement | null)[]>([]);\n const [indicator, setIndicator] = useState<{ left: number; width: number } | null>(null);\n\n const selectedIndex = resolvedOptions.findIndex(\n (o) => o.value === value,\n );\n\n const updateIndicator = useCallback(() => {\n const container = containerRef.current;\n const activeItem = itemRefs.current[selectedIndex];\n if (!container || !activeItem) {\n setIndicator(null);\n return;\n }\n const containerRect = container.getBoundingClientRect();\n const itemRect = activeItem.getBoundingClientRect();\n setIndicator({\n left: itemRect.left - containerRect.left,\n width: itemRect.width,\n });\n }, [selectedIndex]);\n\n useEffect(() => {\n updateIndicator();\n }, [updateIndicator]);\n\n const control = !showControl ? (\n <DisplayValue size={size} interactive={interactive} onActivate={enterEdit}>\n {resolvedOptions.find((o) => o.value === value)?.label}\n </DisplayValue>\n ) : (\n <div\n ref={containerRef}\n {...rest}\n data-react-fancy-multi-switch=\"\"\n role=\"radiogroup\"\n id={id}\n onBlur={(e) => {\n if (interactive && !e.currentTarget.contains(e.relatedTarget as Node)) exitEdit();\n }}\n className={cn(\n \"relative inline-flex rounded-lg border border-zinc-300 bg-zinc-100 dark:border-zinc-700 dark:bg-zinc-800\",\n dirty && \"ring-2 ring-amber-400/50\",\n error && \"ring-2 ring-red-500/50\",\n disabled && \"opacity-50 cursor-not-allowed\",\n className,\n )}\n >\n {indicator && (\n <span\n className=\"absolute top-0 bottom-0 rounded-lg bg-blue-600 transition-all duration-200 ease-out\"\n style={{ left: indicator.left, width: indicator.width }}\n />\n )}\n {resolvedOptions.map((option, index) => {\n const isSelected = option.value === value;\n return (\n <button\n key={String(option.value)}\n ref={(el) => { itemRefs.current[index] = el; }}\n type=\"button\"\n role=\"radio\"\n aria-checked={isSelected}\n disabled={disabled || option.disabled}\n autoFocus={interactive && (selectedIndex === -1 ? index === 0 : isSelected)}\n onClick={() => {\n if (linear) {\n const nextIndex = (selectedIndex + 1) % resolvedOptions.length;\n setValue(resolvedOptions[nextIndex].value as V);\n } else {\n setValue(option.value as V);\n }\n }}\n className={cn(\n \"relative z-10 font-medium transition-colors duration-200\",\n sizeClasses[size],\n isSelected\n ? \"text-white\"\n : \"text-zinc-600 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-100\",\n (disabled || option.disabled) && \"cursor-not-allowed\",\n )}\n >\n {option.label}\n </button>\n );\n })}\n {name && <input type=\"hidden\" name={name} value={String(value)} />}\n </div>\n );\n\n if (label || error || description) {\n return (\n <Field label={label} description={description} error={error} required={required} htmlFor={id} size={size}>\n {control}\n </Field>\n );\n }\n\n return control;\n}\n\nMultiSwitch.displayName = \"MultiSwitch\";\n"]}
@@ -0,0 +1,174 @@
1
+ import { cn } from './chunk-DSUHZO6T.js';
2
+ import { createContext, useState, useContext } from 'react';
3
+ import { jsx, jsxs } from 'react/jsx-runtime';
4
+ import { ChevronDown } from 'lucide-react';
5
+
6
+ var MenuContext = createContext(null);
7
+ function useMenu() {
8
+ const ctx = useContext(MenuContext);
9
+ if (!ctx) {
10
+ throw new Error("useMenu must be used within a <Menu> component");
11
+ }
12
+ return ctx;
13
+ }
14
+ function MenuItem({
15
+ children,
16
+ href,
17
+ as: As,
18
+ icon,
19
+ active = false,
20
+ disabled = false,
21
+ badge,
22
+ onClick,
23
+ className,
24
+ ...rest
25
+ }) {
26
+ const { orientation } = useMenu();
27
+ const isVertical = orientation === "vertical";
28
+ const isLink = Boolean(href || As);
29
+ const Tag = isLink ? As ?? "a" : "button";
30
+ const tagProps = isLink ? { ...href ? { href } : {}, onClick } : { type: "button", onClick };
31
+ return /* @__PURE__ */ jsxs(
32
+ Tag,
33
+ {
34
+ ...tagProps,
35
+ ...rest,
36
+ "data-react-fancy-menu-item": "",
37
+ "data-active": active || void 0,
38
+ "aria-current": active ? "page" : void 0,
39
+ "aria-disabled": disabled || void 0,
40
+ className: cn(
41
+ "flex items-center gap-2 rounded-md text-sm font-medium transition-colors",
42
+ "outline-none focus-visible:ring-2 focus-visible:ring-blue-500",
43
+ isVertical ? "w-full px-3 py-2" : "px-3 py-2",
44
+ active ? "bg-zinc-100 text-zinc-900 dark:bg-zinc-800 dark:text-zinc-100" : "text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-100",
45
+ disabled && "pointer-events-none opacity-50",
46
+ className
47
+ ),
48
+ children: [
49
+ icon && /* @__PURE__ */ jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: icon }),
50
+ /* @__PURE__ */ jsx("span", { className: "flex-1 truncate text-left", children }),
51
+ badge && /* @__PURE__ */ jsx("span", { className: "shrink-0", children: badge })
52
+ ]
53
+ }
54
+ );
55
+ }
56
+ MenuItem.displayName = "MenuItem";
57
+ function MenuSubmenu({
58
+ children,
59
+ label,
60
+ icon,
61
+ defaultOpen = false,
62
+ className
63
+ }) {
64
+ const [open, setOpen] = useState(defaultOpen);
65
+ const { orientation } = useMenu();
66
+ const isVertical = orientation === "vertical";
67
+ if (!isVertical) {
68
+ return /* @__PURE__ */ jsxs(
69
+ "div",
70
+ {
71
+ "data-react-fancy-menu-submenu": "",
72
+ className: cn("group relative", className),
73
+ children: [
74
+ /* @__PURE__ */ jsxs(
75
+ "button",
76
+ {
77
+ type: "button",
78
+ className: cn(
79
+ "flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition-colors",
80
+ "text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900",
81
+ "dark:text-zinc-400 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-100"
82
+ ),
83
+ children: [
84
+ icon && /* @__PURE__ */ jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: icon }),
85
+ /* @__PURE__ */ jsx("span", { children: label }),
86
+ /* @__PURE__ */ jsx(ChevronDown, { className: "h-3.5 w-3.5 opacity-60" })
87
+ ]
88
+ }
89
+ ),
90
+ /* @__PURE__ */ jsx(
91
+ "div",
92
+ {
93
+ className: cn(
94
+ "invisible absolute left-0 top-full z-50 min-w-[180px] pt-1 opacity-0 transition-all",
95
+ "group-hover:visible group-hover:opacity-100"
96
+ ),
97
+ children: /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-zinc-200 bg-white py-1 shadow-lg dark:border-zinc-700 dark:bg-zinc-900", children })
98
+ }
99
+ )
100
+ ]
101
+ }
102
+ );
103
+ }
104
+ return /* @__PURE__ */ jsxs("div", { "data-react-fancy-menu-submenu": "", className, children: [
105
+ /* @__PURE__ */ jsxs(
106
+ "button",
107
+ {
108
+ type: "button",
109
+ onClick: () => setOpen((v) => !v),
110
+ className: cn(
111
+ "flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition-colors",
112
+ "text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900",
113
+ "dark:text-zinc-400 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-100"
114
+ ),
115
+ children: [
116
+ icon && /* @__PURE__ */ jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center", children: icon }),
117
+ /* @__PURE__ */ jsx("span", { className: "flex-1 text-left", children: label }),
118
+ /* @__PURE__ */ jsx(
119
+ ChevronDown,
120
+ {
121
+ className: cn(
122
+ "h-3.5 w-3.5 opacity-60 transition-transform duration-200",
123
+ open && "rotate-180"
124
+ )
125
+ }
126
+ )
127
+ ]
128
+ }
129
+ ),
130
+ /* @__PURE__ */ jsx(
131
+ "div",
132
+ {
133
+ className: cn(
134
+ "grid transition-[grid-template-rows] duration-200",
135
+ open ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
136
+ ),
137
+ children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "ml-4 border-l border-zinc-200 pl-2 pt-1 dark:border-zinc-700", children }) })
138
+ }
139
+ )
140
+ ] });
141
+ }
142
+ MenuSubmenu.displayName = "MenuSubmenu";
143
+ function MenuGroup({ children, label, className }) {
144
+ return /* @__PURE__ */ jsxs("div", { "data-react-fancy-menu-group": "", className: cn("py-1", className), children: [
145
+ label && /* @__PURE__ */ jsx("p", { className: "mb-1 px-3 text-xs font-semibold uppercase tracking-wider text-zinc-400 dark:text-zinc-500", children: label }),
146
+ children
147
+ ] });
148
+ }
149
+ MenuGroup.displayName = "MenuGroup";
150
+ function MenuRoot({ children, orientation = "vertical", className }) {
151
+ const isVertical = orientation === "vertical";
152
+ return /* @__PURE__ */ jsx(MenuContext.Provider, { value: { orientation }, children: /* @__PURE__ */ jsx(
153
+ "nav",
154
+ {
155
+ "data-react-fancy-menu": "",
156
+ "data-orientation": orientation,
157
+ className: cn(
158
+ "flex gap-0.5",
159
+ isVertical ? "flex-col" : "flex-row items-center",
160
+ className
161
+ ),
162
+ children
163
+ }
164
+ ) });
165
+ }
166
+ var Menu = Object.assign(MenuRoot, {
167
+ Item: MenuItem,
168
+ Submenu: MenuSubmenu,
169
+ Group: MenuGroup
170
+ });
171
+
172
+ export { Menu, useMenu };
173
+ //# sourceMappingURL=chunk-IGYIMS6J.js.map
174
+ //# sourceMappingURL=chunk-IGYIMS6J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Menu/Menu.context.ts","../src/components/Menu/MenuItem.tsx","../src/components/Menu/MenuSubmenu.tsx","../src/components/Menu/MenuGroup.tsx","../src/components/Menu/Menu.tsx"],"names":["jsxs","jsx"],"mappings":";;;;;AAGO,IAAM,WAAA,GAAc,cAAuC,IAAI,CAAA;AAE/D,SAAS,OAAA,GAA4B;AAC1C,EAAA,MAAM,GAAA,GAAM,WAAW,WAAW,CAAA;AAClC,EAAA,IAAI,CAAC,GAAA,EAAK;AACR,IAAA,MAAM,IAAI,MAAM,gDAAgD,CAAA;AAAA,EAClE;AACA,EAAA,OAAO,GAAA;AACT;ACNO,SAAS,QAAA,CAAS;AAAA,EACvB,QAAA;AAAA,EACA,IAAA;AAAA,EACA,EAAA,EAAI,EAAA;AAAA,EACJ,IAAA;AAAA,EACA,MAAA,GAAS,KAAA;AAAA,EACT,QAAA,GAAW,KAAA;AAAA,EACX,KAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,OAAA,EAAQ;AAChC,EAAA,MAAM,aAAa,WAAA,KAAgB,UAAA;AAInC,EAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,IAAA,IAAQ,EAAE,CAAA;AACjC,EAAA,MAAM,GAAA,GAAM,MAAA,GAAW,EAAA,IAAM,GAAA,GAAuB,QAAA;AACpD,EAAA,MAAM,QAAA,GAAW,MAAA,GACb,EAAE,GAAI,OAAO,EAAE,IAAA,EAAK,GAAI,IAAK,OAAA,EAAQ,GACrC,EAAE,IAAA,EAAM,UAAmB,OAAA,EAAQ;AAEvC,EAAA,uBACE,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACE,GAAG,QAAA;AAAA,MACH,GAAG,IAAA;AAAA,MACJ,4BAAA,EAA2B,EAAA;AAAA,MAC3B,eAAa,MAAA,IAAU,MAAA;AAAA,MACvB,cAAA,EAAc,SAAS,MAAA,GAAS,MAAA;AAAA,MAChC,iBAAe,QAAA,IAAY,MAAA;AAAA,MAC3B,SAAA,EAAW,EAAA;AAAA,QACT,0EAAA;AAAA,QACA,+DAAA;AAAA,QACA,aAAa,kBAAA,GAAqB,WAAA;AAAA,QAClC,SACI,+DAAA,GACA,0HAAA;AAAA,QACJ,QAAA,IAAY,gCAAA;AAAA,QACZ;AAAA,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,IAAA,oBAAQ,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mDAAA,EAAqD,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,wBACnF,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,2BAAA,EAA6B,QAAA,EAAS,CAAA;AAAA,QACrD,KAAA,oBAAS,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,YAAY,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA;AAAA,GAC9C;AAEJ;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA;AChDhB,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd;AACF,CAAA,EAAqB;AACnB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAS,WAAW,CAAA;AAC5C,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,OAAA,EAAQ;AAChC,EAAA,MAAM,aAAa,WAAA,KAAgB,UAAA;AAEnC,EAAA,IAAI,CAAC,UAAA,EAAY;AAEf,IAAA,uBACEA,IAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,+BAAA,EAA8B,EAAA;AAAA,QAC9B,SAAA,EAAW,EAAA,CAAG,gBAAA,EAAkB,SAAS,CAAA;AAAA,QAEzC,QAAA,EAAA;AAAA,0BAAAA,IAAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,SAAA,EAAW,EAAA;AAAA,gBACT,oFAAA;AAAA,gBACA,oDAAA;AAAA,gBACA;AAAA,eACF;AAAA,cAEC,QAAA,EAAA;AAAA,gBAAA,IAAA,oBAAQC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qDAAqD,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,gCACnFA,GAAAA,CAAC,MAAA,EAAA,EAAM,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,gCACbA,GAAAA,CAAC,WAAA,EAAA,EAAY,SAAA,EAAU,wBAAA,EAAyB;AAAA;AAAA;AAAA,WAClD;AAAA,0BACAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,qFAAA;AAAA,gBACA;AAAA,eACF;AAAA,cAEA,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mGACZ,QAAA,EACH;AAAA;AAAA;AACF;AAAA;AAAA,KACF;AAAA,EAEJ;AAGA,EAAA,uBACED,IAAAA,CAAC,KAAA,EAAA,EAAI,+BAAA,EAA8B,IAAG,SAAA,EACpC,QAAA,EAAA;AAAA,oBAAAA,IAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,SAAS,MAAM,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,QAChC,SAAA,EAAW,EAAA;AAAA,UACT,2FAAA;AAAA,UACA,oDAAA;AAAA,UACA;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,IAAA,oBAAQC,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,qDAAqD,QAAA,EAAA,IAAA,EAAK,CAAA;AAAA,0BACnFA,GAAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oBAAoB,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,0BAC1CA,GAAAA;AAAA,YAAC,WAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,0DAAA;AAAA,gBACA,IAAA,IAAQ;AAAA;AACV;AAAA;AACF;AAAA;AAAA,KACF;AAAA,oBACAA,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA;AAAA,UACT,mDAAA;AAAA,UACA,OAAO,iBAAA,GAAoB;AAAA,SAC7B;AAAA,QAEA,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,kBAAAA,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8DAAA,EACZ,QAAA,EACH,CAAA,EACF;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA;ACpFnB,SAAS,SAAA,CAAU,EAAE,QAAA,EAAU,KAAA,EAAO,WAAU,EAAmB;AACxE,EAAA,uBACED,KAAC,KAAA,EAAA,EAAI,6BAAA,EAA4B,IAAG,SAAA,EAAW,EAAA,CAAG,MAAA,EAAQ,SAAS,CAAA,EAChE,QAAA,EAAA;AAAA,IAAA,KAAA,oBACCC,GAAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,6FACV,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,IAED;AAAA,GAAA,EACH,CAAA;AAEJ;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA;ACTxB,SAAS,SAAS,EAAE,QAAA,EAAU,WAAA,GAAc,UAAA,EAAY,WAAU,EAAc;AAC9E,EAAA,MAAM,aAAa,WAAA,KAAgB,UAAA;AAEnC,EAAA,uBACEA,IAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAE,WAAA,EAAY,EACzC,QAAA,kBAAAA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,uBAAA,EAAsB,EAAA;AAAA,MACtB,kBAAA,EAAkB,WAAA;AAAA,MAClB,SAAA,EAAW,EAAA;AAAA,QACT,cAAA;AAAA,QACA,aAAa,UAAA,GAAa,uBAAA;AAAA,QAC1B;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH,EACF,CAAA;AAEJ;AAEO,IAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,QAAA,EAAU;AAAA,EAC1C,IAAA,EAAM,QAAA;AAAA,EACN,OAAA,EAAS,WAAA;AAAA,EACT,KAAA,EAAO;AACT,CAAC","file":"chunk-IGYIMS6J.js","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { MenuContextValue } from \"./Menu.types\";\n\nexport const MenuContext = createContext<MenuContextValue | null>(null);\n\nexport function useMenu(): MenuContextValue {\n const ctx = useContext(MenuContext);\n if (!ctx) {\n throw new Error(\"useMenu must be used within a <Menu> component\");\n }\n return ctx;\n}\n","import type { ElementType } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useMenu } from \"./Menu.context\";\nimport type { MenuItemProps } from \"./Menu.types\";\n\nexport function MenuItem({\n children,\n href,\n as: As,\n icon,\n active = false,\n disabled = false,\n badge,\n onClick,\n className,\n ...rest\n}: MenuItemProps) {\n const { orientation } = useMenu();\n const isVertical = orientation === \"vertical\";\n\n // See NavigableProps: link mode engages on `href` OR `as`, and `onClick`\n // survives into it rather than being dropped.\n const isLink = Boolean(href || As);\n const Tag = isLink ? ((As ?? \"a\") as ElementType) : \"button\";\n const tagProps = isLink\n ? { ...(href ? { href } : {}), onClick }\n : { type: \"button\" as const, onClick };\n\n return (\n <Tag\n {...tagProps}\n {...rest}\n data-react-fancy-menu-item=\"\"\n data-active={active || undefined}\n aria-current={active ? \"page\" : undefined}\n aria-disabled={disabled || undefined}\n className={cn(\n \"flex items-center gap-2 rounded-md text-sm font-medium transition-colors\",\n \"outline-none focus-visible:ring-2 focus-visible:ring-blue-500\",\n isVertical ? \"w-full px-3 py-2\" : \"px-3 py-2\",\n active\n ? \"bg-zinc-100 text-zinc-900 dark:bg-zinc-800 dark:text-zinc-100\"\n : \"text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-100\",\n disabled && \"pointer-events-none opacity-50\",\n className,\n )}\n >\n {icon && <span className=\"flex h-5 w-5 shrink-0 items-center justify-center\">{icon}</span>}\n <span className=\"flex-1 truncate text-left\">{children}</span>\n {badge && <span className=\"shrink-0\">{badge}</span>}\n </Tag>\n );\n}\n\nMenuItem.displayName = \"MenuItem\";\n","import { useState } from \"react\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { useMenu } from \"./Menu.context\";\nimport type { MenuSubmenuProps } from \"./Menu.types\";\n\nexport function MenuSubmenu({\n children,\n label,\n icon,\n defaultOpen = false,\n className,\n}: MenuSubmenuProps) {\n const [open, setOpen] = useState(defaultOpen);\n const { orientation } = useMenu();\n const isVertical = orientation === \"vertical\";\n\n if (!isVertical) {\n // Horizontal submenus use a hover-based dropdown\n return (\n <div\n data-react-fancy-menu-submenu=\"\"\n className={cn(\"group relative\", className)}\n >\n <button\n type=\"button\"\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition-colors\",\n \"text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900\",\n \"dark:text-zinc-400 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-100\",\n )}\n >\n {icon && <span className=\"flex h-5 w-5 shrink-0 items-center justify-center\">{icon}</span>}\n <span>{label}</span>\n <ChevronDown className=\"h-3.5 w-3.5 opacity-60\" />\n </button>\n <div\n className={cn(\n \"invisible absolute left-0 top-full z-50 min-w-[180px] pt-1 opacity-0 transition-all\",\n \"group-hover:visible group-hover:opacity-100\",\n )}\n >\n <div className=\"rounded-lg border border-zinc-200 bg-white py-1 shadow-lg dark:border-zinc-700 dark:bg-zinc-900\">\n {children}\n </div>\n </div>\n </div>\n );\n }\n\n // Vertical submenus use accordion-style expand/collapse\n return (\n <div data-react-fancy-menu-submenu=\"\" className={className}>\n <button\n type=\"button\"\n onClick={() => setOpen((v) => !v)}\n className={cn(\n \"flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm font-medium transition-colors\",\n \"text-zinc-600 hover:bg-zinc-50 hover:text-zinc-900\",\n \"dark:text-zinc-400 dark:hover:bg-zinc-800/50 dark:hover:text-zinc-100\",\n )}\n >\n {icon && <span className=\"flex h-5 w-5 shrink-0 items-center justify-center\">{icon}</span>}\n <span className=\"flex-1 text-left\">{label}</span>\n <ChevronDown\n className={cn(\n \"h-3.5 w-3.5 opacity-60 transition-transform duration-200\",\n open && \"rotate-180\",\n )}\n />\n </button>\n <div\n className={cn(\n \"grid transition-[grid-template-rows] duration-200\",\n open ? \"grid-rows-[1fr]\" : \"grid-rows-[0fr]\",\n )}\n >\n <div className=\"overflow-hidden\">\n <div className=\"ml-4 border-l border-zinc-200 pl-2 pt-1 dark:border-zinc-700\">\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nMenuSubmenu.displayName = \"MenuSubmenu\";\n","import { cn } from \"../../utils/cn\";\nimport type { MenuGroupProps } from \"./Menu.types\";\n\nexport function MenuGroup({ children, label, className }: MenuGroupProps) {\n return (\n <div data-react-fancy-menu-group=\"\" className={cn(\"py-1\", className)}>\n {label && (\n <p className=\"mb-1 px-3 text-xs font-semibold uppercase tracking-wider text-zinc-400 dark:text-zinc-500\">\n {label}\n </p>\n )}\n {children}\n </div>\n );\n}\n\nMenuGroup.displayName = \"MenuGroup\";\n","import { cn } from \"../../utils/cn\";\nimport { MenuContext } from \"./Menu.context\";\nimport { MenuItem } from \"./MenuItem\";\nimport { MenuSubmenu } from \"./MenuSubmenu\";\nimport { MenuGroup } from \"./MenuGroup\";\nimport type { MenuProps } from \"./Menu.types\";\n\nfunction MenuRoot({ children, orientation = \"vertical\", className }: MenuProps) {\n const isVertical = orientation === \"vertical\";\n\n return (\n <MenuContext.Provider value={{ orientation }}>\n <nav\n data-react-fancy-menu=\"\"\n data-orientation={orientation}\n className={cn(\n \"flex gap-0.5\",\n isVertical ? \"flex-col\" : \"flex-row items-center\",\n className,\n )}\n >\n {children}\n </nav>\n </MenuContext.Provider>\n );\n}\n\nexport const Menu = Object.assign(MenuRoot, {\n Item: MenuItem,\n Submenu: MenuSubmenu,\n Group: MenuGroup,\n});\n"]}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var chunk3Z6ALUWP_cjs = require('./chunk-3Z6ALUWP.cjs');
4
+ var react = require('react');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ var Eyebrow = react.forwardRef(
8
+ ({ num, label, aside, rule = false, className, children, ...props }, ref) => {
9
+ return /* @__PURE__ */ jsxRuntime.jsxs(
10
+ "div",
11
+ {
12
+ ref,
13
+ "data-react-fancy-eyebrow": "",
14
+ className: chunk3Z6ALUWP_cjs.cn(
15
+ "flex items-baseline gap-3 font-mono text-[11.5px] uppercase tracking-wider text-zinc-500 dark:text-zinc-400",
16
+ rule && "border-b border-zinc-200 pb-2 dark:border-zinc-800",
17
+ className
18
+ ),
19
+ ...props,
20
+ children: [
21
+ children ?? /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
22
+ num != null && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
23
+ /* @__PURE__ */ jsxRuntime.jsx("b", { className: "font-medium text-zinc-900 dark:text-zinc-100", children: num }),
24
+ label != null && " \u2014 "
25
+ ] }),
26
+ label
27
+ ] }),
28
+ aside != null && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto", children: aside })
29
+ ]
30
+ }
31
+ );
32
+ }
33
+ );
34
+ Eyebrow.displayName = "Eyebrow";
35
+
36
+ exports.Eyebrow = Eyebrow;
37
+ //# sourceMappingURL=chunk-IJ4I55QQ.cjs.map
38
+ //# sourceMappingURL=chunk-IJ4I55QQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Eyebrow/Eyebrow.tsx"],"names":["forwardRef","jsxs","cn","Fragment","jsx"],"mappings":";;;;;;AAkBO,IAAM,OAAA,GAAUA,gBAAA;AAAA,EACrB,CAAC,EAAE,GAAA,EAAK,KAAA,EAAO,KAAA,EAAO,IAAA,GAAO,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAC3E,IAAA,uBACEC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,0BAAA,EAAyB,EAAA;AAAA,QACzB,SAAA,EAAWC,oBAAA;AAAA,UACT,6GAAA;AAAA,UACA,IAAA,IAAQ,oDAAA;AAAA,UACR;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,QAAA,oCACE,MAAA,EAAA,EACE,QAAA,EAAA;AAAA,YAAA,GAAA,IAAO,wBACND,eAAA,CAAAE,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,8CAAA,EAAgD,QAAA,EAAA,GAAA,EAAI,CAAA;AAAA,cAChE,SAAS,IAAA,IAAQ;AAAA,aAAA,EACpB,CAAA;AAAA,YAED;AAAA,WAAA,EACH,CAAA;AAAA,UAKD,SAAS,IAAA,oBAAQA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAW,QAAA,EAAA,KAAA,EAAM;AAAA;AAAA;AAAA,KACrD;AAAA,EAEJ;AACF;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-IJ4I55QQ.cjs","sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { EyebrowProps } from \"./Eyebrow.types\";\n\n/**\n * The mono running head that opens a section — `01 — SELECTED WORK`, optionally\n * over a hairline rule, with a second item pushed to the far end.\n *\n * Thirty-six surfaces in the Inspiration Gallery carry some version of this. It\n * is a small component for a reason: what they share is the STRUCTURE (a\n * numbered marker, a label, an optional trailing aside, an optional rule) while\n * every one of them restyles the type. So this owns the arrangement and the\n * uppercase mono default, and gets out of the way of `className`.\n *\n * `num` is emphasised rather than styled a fixed colour, because in half the\n * designs it is the only part of the line that is not muted — and expressing\n * that with a `<b>` keeps it meaningful when the styling is replaced wholesale.\n */\nexport const Eyebrow = forwardRef<HTMLDivElement, EyebrowProps>(\n ({ num, label, aside, rule = false, className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-react-fancy-eyebrow=\"\"\n className={cn(\n \"flex items-baseline gap-3 font-mono text-[11.5px] uppercase tracking-wider text-zinc-500 dark:text-zinc-400\",\n rule && \"border-b border-zinc-200 pb-2 dark:border-zinc-800\",\n className,\n )}\n {...props}\n >\n {children ?? (\n <span>\n {num != null && (\n <>\n <b className=\"font-medium text-zinc-900 dark:text-zinc-100\">{num}</b>\n {label != null && \" — \"}\n </>\n )}\n {label}\n </span>\n )}\n\n {/* `ml-auto` rather than `justify-between`, so a single-item eyebrow\n still sits flush left instead of being centred by the gap. */}\n {aside != null && <span className=\"ml-auto\">{aside}</span>}\n </div>\n );\n },\n);\n\nEyebrow.displayName = \"Eyebrow\";\n"]}
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var chunk3Z6ALUWP_cjs = require('./chunk-3Z6ALUWP.cjs');
4
+ var react = require('react');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ var PullQuote = react.forwardRef(
8
+ ({ attribution, source, citeUrl, rule = false, className, children, ...props }, ref) => {
9
+ return /* @__PURE__ */ jsxRuntime.jsxs(
10
+ "blockquote",
11
+ {
12
+ ref,
13
+ cite: citeUrl,
14
+ "data-react-fancy-pull-quote": "",
15
+ className: chunk3Z6ALUWP_cjs.cn(
16
+ "m-0 text-2xl font-medium leading-snug tracking-tight text-zinc-900 dark:text-zinc-100",
17
+ rule && "border-y border-zinc-200 py-6 dark:border-zinc-800",
18
+ className
19
+ ),
20
+ ...props,
21
+ children: [
22
+ /* @__PURE__ */ jsxRuntime.jsx("p", { "data-react-fancy-pull-quote-text": "", className: "m-0", children }),
23
+ (attribution != null || source != null) && /* @__PURE__ */ jsxRuntime.jsxs(
24
+ "footer",
25
+ {
26
+ "data-react-fancy-pull-quote-attribution": "",
27
+ className: "mt-3 text-sm font-normal tracking-normal text-zinc-500 dark:text-zinc-400",
28
+ children: [
29
+ attribution != null && /* @__PURE__ */ jsxRuntime.jsx("cite", { className: "not-italic", children: attribution }),
30
+ attribution != null && source != null && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, children: " \xB7 " }),
31
+ source
32
+ ]
33
+ }
34
+ )
35
+ ]
36
+ }
37
+ );
38
+ }
39
+ );
40
+ PullQuote.displayName = "PullQuote";
41
+
42
+ exports.PullQuote = PullQuote;
43
+ //# sourceMappingURL=chunk-IXHZVFHX.cjs.map
44
+ //# sourceMappingURL=chunk-IXHZVFHX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/PullQuote/PullQuote.tsx"],"names":["forwardRef","jsxs","cn","jsx"],"mappings":";;;;;;AAmBO,IAAM,SAAA,GAAYA,gBAAA;AAAA,EACvB,CAAC,EAAE,WAAA,EAAa,MAAA,EAAQ,OAAA,EAAS,IAAA,GAAO,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AACtF,IAAA,uBACEC,eAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,IAAA,EAAM,OAAA;AAAA,QACN,6BAAA,EAA4B,EAAA;AAAA,QAC5B,SAAA,EAAWC,oBAAA;AAAA,UACT,uFAAA;AAAA,UACA,IAAA,IAAQ,oDAAA;AAAA,UACR;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAAC,GAAA,EAAA,EAAE,kCAAA,EAAiC,EAAA,EAAG,SAAA,EAAU,OAC9C,QAAA,EACH,CAAA;AAAA,UAAA,CAEE,WAAA,IAAe,IAAA,IAAQ,MAAA,IAAU,IAAA,qBACjCF,eAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,yCAAA,EAAwC,EAAA;AAAA,cACxC,SAAA,EAAU,2EAAA;AAAA,cAET,QAAA,EAAA;AAAA,gBAAA,WAAA,IAAe,IAAA,oBAAQE,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAc,QAAA,EAAA,WAAA,EAAY,CAAA;AAAA,gBACjE,WAAA,IAAe,QAAQ,MAAA,IAAU,IAAA,mCAAS,MAAA,EAAA,EAAK,aAAA,EAAW,MAAC,QAAA,EAAA,QAAA,EAAG,CAAA;AAAA,gBAC9D;AAAA;AAAA;AAAA;AACH;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA","file":"chunk-IXHZVFHX.cjs","sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { PullQuoteProps } from \"./PullQuote.types\";\n\n/**\n * A pull quote — the oversized line lifted out of body copy, with optional\n * attribution and a rule-bracketed treatment.\n *\n * Twelve gallery styles build one. The reason this is a component rather than a\n * class is the same reason `<Kbd>` renders a real `<kbd>`: of the eight quote\n * elements in those styles, **one** was a `<blockquote>` — five were `<p>` and\n * two were `<div>` — and **none** used `<cite>` for the attribution. They all\n * look right and none of them says what it is.\n *\n * `citeUrl` maps to `<blockquote cite>`, which is the attribute's actual job\n * (the source URL) and is routinely confused with the visible `<cite>` element\n * (the work's title). Keeping them as separate props stops the two collapsing\n * into one another.\n */\nexport const PullQuote = forwardRef<HTMLQuoteElement, PullQuoteProps>(\n ({ attribution, source, citeUrl, rule = false, className, children, ...props }, ref) => {\n return (\n <blockquote\n ref={ref}\n cite={citeUrl}\n data-react-fancy-pull-quote=\"\"\n className={cn(\n \"m-0 text-2xl font-medium leading-snug tracking-tight text-zinc-900 dark:text-zinc-100\",\n rule && \"border-y border-zinc-200 py-6 dark:border-zinc-800\",\n className,\n )}\n {...props}\n >\n <p data-react-fancy-pull-quote-text=\"\" className=\"m-0\">\n {children}\n </p>\n\n {(attribution != null || source != null) && (\n <footer\n data-react-fancy-pull-quote-attribution=\"\"\n className=\"mt-3 text-sm font-normal tracking-normal text-zinc-500 dark:text-zinc-400\"\n >\n {attribution != null && <cite className=\"not-italic\">{attribution}</cite>}\n {attribution != null && source != null && <span aria-hidden> · </span>}\n {source}\n </footer>\n )}\n </blockquote>\n );\n },\n);\n\nPullQuote.displayName = \"PullQuote\";\n"]}
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+
5
+ // src/hooks/use-floating-position.ts
6
+ function getPosition(anchor, floating, placement, offset) {
7
+ let x = 0;
8
+ let y = 0;
9
+ const base = placement.split("-")[0];
10
+ const align = placement.split("-")[1];
11
+ switch (base) {
12
+ case "top":
13
+ x = anchor.left + anchor.width / 2 - floating.width / 2;
14
+ y = anchor.top - floating.height - offset;
15
+ break;
16
+ case "bottom":
17
+ x = anchor.left + anchor.width / 2 - floating.width / 2;
18
+ y = anchor.bottom + offset;
19
+ break;
20
+ case "left":
21
+ x = anchor.left - floating.width - offset;
22
+ y = anchor.top + anchor.height / 2 - floating.height / 2;
23
+ break;
24
+ case "right":
25
+ x = anchor.right + offset;
26
+ y = anchor.top + anchor.height / 2 - floating.height / 2;
27
+ break;
28
+ }
29
+ if (base === "top" || base === "bottom") {
30
+ if (align === "start") x = anchor.left;
31
+ else if (align === "end") x = anchor.right - floating.width;
32
+ }
33
+ if (base === "left" || base === "right") {
34
+ if (align === "start") y = anchor.top;
35
+ else if (align === "end") y = anchor.bottom - floating.height;
36
+ }
37
+ let finalPlacement = placement;
38
+ const vw = window.innerWidth;
39
+ const vh = window.innerHeight;
40
+ if (base === "bottom" && y + floating.height > vh) {
41
+ y = anchor.top - floating.height - offset;
42
+ finalPlacement = placement.replace("bottom", "top");
43
+ } else if (base === "top" && y < 0) {
44
+ y = anchor.bottom + offset;
45
+ finalPlacement = placement.replace("top", "bottom");
46
+ }
47
+ x = Math.max(4, Math.min(x, vw - floating.width - 4));
48
+ y = Math.max(4, Math.min(y, vh - floating.height - 4));
49
+ return { x, y, placement: finalPlacement };
50
+ }
51
+ function useFloatingPosition(anchorRef, floatingRef, options = {}) {
52
+ const { placement = "bottom", offset = 8, enabled = true } = options;
53
+ const [position, setPosition] = react.useState({
54
+ x: -9999,
55
+ y: -9999,
56
+ placement
57
+ });
58
+ const update = react.useCallback(() => {
59
+ const anchor = anchorRef.current;
60
+ const floating = floatingRef.current;
61
+ if (!anchor || !floating) return;
62
+ const anchorRect = anchor.getBoundingClientRect();
63
+ const floatingRect = floating.getBoundingClientRect();
64
+ const next = getPosition(anchorRect, floatingRect, placement, offset);
65
+ setPosition(
66
+ (prev) => prev.x === next.x && prev.y === next.y && prev.placement === next.placement ? prev : next
67
+ );
68
+ }, [anchorRef, floatingRef, placement, offset]);
69
+ react.useEffect(() => {
70
+ if (enabled) update();
71
+ });
72
+ react.useEffect(() => {
73
+ if (!enabled) return;
74
+ let raf = 0;
75
+ let ro = null;
76
+ const tick = () => {
77
+ const el = floatingRef.current;
78
+ if (el) {
79
+ update();
80
+ if (typeof ResizeObserver !== "undefined") {
81
+ ro = new ResizeObserver(() => update());
82
+ ro.observe(el);
83
+ }
84
+ } else {
85
+ raf = requestAnimationFrame(tick);
86
+ }
87
+ };
88
+ raf = requestAnimationFrame(tick);
89
+ return () => {
90
+ cancelAnimationFrame(raf);
91
+ ro?.disconnect();
92
+ };
93
+ }, [enabled, update, floatingRef]);
94
+ react.useEffect(() => {
95
+ if (!enabled) {
96
+ setPosition(
97
+ (prev) => prev.x === -9999 ? prev : { x: -9999, y: -9999, placement }
98
+ );
99
+ }
100
+ }, [enabled, placement]);
101
+ react.useEffect(() => {
102
+ if (!enabled) return;
103
+ window.addEventListener("scroll", update, true);
104
+ window.addEventListener("resize", update);
105
+ return () => {
106
+ window.removeEventListener("scroll", update, true);
107
+ window.removeEventListener("resize", update);
108
+ };
109
+ }, [update, enabled]);
110
+ return position;
111
+ }
112
+
113
+ exports.useFloatingPosition = useFloatingPosition;
114
+ //# sourceMappingURL=chunk-J2DI6RMR.cjs.map
115
+ //# sourceMappingURL=chunk-J2DI6RMR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/use-floating-position.ts"],"names":["useState","useCallback","useEffect"],"mappings":"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","file":"chunk-J2DI6RMR.cjs","sourcesContent":["import { useCallback, useEffect, useState, type RefObject } from \"react\";\nimport type { Placement } from \"../utils/types\";\n\ninterface FloatingPosition {\n x: number;\n y: number;\n placement: Placement;\n}\n\ninterface UseFloatingPositionOptions {\n placement?: Placement;\n offset?: number;\n enabled?: boolean;\n}\n\nfunction getPosition(\n anchor: DOMRect,\n floating: DOMRect,\n placement: Placement,\n offset: number,\n): FloatingPosition {\n let x = 0;\n let y = 0;\n const base = placement.split(\"-\")[0] as \"top\" | \"bottom\" | \"left\" | \"right\";\n const align = placement.split(\"-\")[1] as \"start\" | \"end\" | undefined;\n\n switch (base) {\n case \"top\":\n x = anchor.left + anchor.width / 2 - floating.width / 2;\n y = anchor.top - floating.height - offset;\n break;\n case \"bottom\":\n x = anchor.left + anchor.width / 2 - floating.width / 2;\n y = anchor.bottom + offset;\n break;\n case \"left\":\n x = anchor.left - floating.width - offset;\n y = anchor.top + anchor.height / 2 - floating.height / 2;\n break;\n case \"right\":\n x = anchor.right + offset;\n y = anchor.top + anchor.height / 2 - floating.height / 2;\n break;\n }\n\n if (base === \"top\" || base === \"bottom\") {\n if (align === \"start\") x = anchor.left;\n else if (align === \"end\") x = anchor.right - floating.width;\n }\n\n if (base === \"left\" || base === \"right\") {\n if (align === \"start\") y = anchor.top;\n else if (align === \"end\") y = anchor.bottom - floating.height;\n }\n\n // Viewport clamping\n let finalPlacement = placement;\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n\n if (base === \"bottom\" && y + floating.height > vh) {\n y = anchor.top - floating.height - offset;\n finalPlacement = placement.replace(\"bottom\", \"top\") as Placement;\n } else if (base === \"top\" && y < 0) {\n y = anchor.bottom + offset;\n finalPlacement = placement.replace(\"top\", \"bottom\") as Placement;\n }\n\n x = Math.max(4, Math.min(x, vw - floating.width - 4));\n y = Math.max(4, Math.min(y, vh - floating.height - 4));\n\n return { x, y, placement: finalPlacement };\n}\n\nexport function useFloatingPosition(\n anchorRef: RefObject<HTMLElement | null>,\n floatingRef: RefObject<HTMLElement | null>,\n options: UseFloatingPositionOptions = {},\n): FloatingPosition {\n const { placement = \"bottom\", offset = 8, enabled = true } = options;\n const [position, setPosition] = useState<FloatingPosition>({\n x: -9999,\n y: -9999,\n placement,\n });\n\n const update = useCallback(() => {\n const anchor = anchorRef.current;\n const floating = floatingRef.current;\n if (!anchor || !floating) return;\n\n const anchorRect = anchor.getBoundingClientRect();\n const floatingRect = floating.getBoundingClientRect();\n const next = getPosition(anchorRect, floatingRect, placement, offset);\n // Bail out when nothing changed so this can run after every commit\n // (below) without causing an infinite render loop.\n setPosition((prev) =>\n prev.x === next.x && prev.y === next.y && prev.placement === next.placement\n ? prev\n : next,\n );\n }, [anchorRef, floatingRef, placement, offset]);\n\n // Re-measure after every commit while open.\n //\n // The floating element mounts a frame or two AFTER `enabled` flips — its\n // render is gated behind a state flip (e.g. useAnimation's `mounted`), so at\n // the moment `enabled` turns true the floating ref is still null and a single\n // measurement no-ops, leaving the popover parked at its off-screen sentinel.\n //\n // A passive effect with no deps runs after *every* commit — including the one\n // that finally mounts the floating element — and, crucially, keeps running in\n // hidden/background tabs where `requestAnimationFrame` is paused. The bail-out\n // in `update` makes the steady-state calls free, so this both fixes the\n // late-mount race and survives tab-visibility throttling.\n useEffect(() => {\n if (enabled) update();\n });\n\n // …but the per-commit effect ISN'T enough when the floating element mounts\n // through a <Portal> whose own mount gate (SSR-safe; renders nothing until its\n // useEffect runs) attaches the node WITHOUT re-rendering this hook's component.\n // Then no commit happens here, the measurement never runs, and the popover\n // stays parked at its off-screen sentinel until an unrelated scroll/resize\n // fires `update()` — the \"menu only appears after I scroll\" bug. Poll with rAF\n // until the node is actually in the DOM, measure it, then keep it observed for\n // size changes (async content / lazily-loaded icons).\n useEffect(() => {\n if (!enabled) return;\n let raf = 0;\n let ro: ResizeObserver | null = null;\n const tick = () => {\n const el = floatingRef.current;\n if (el) {\n update();\n if (typeof ResizeObserver !== \"undefined\") {\n ro = new ResizeObserver(() => update());\n ro.observe(el);\n }\n } else {\n raf = requestAnimationFrame(tick);\n }\n };\n raf = requestAnimationFrame(tick);\n return () => {\n cancelAnimationFrame(raf);\n ro?.disconnect();\n };\n }, [enabled, update, floatingRef]);\n\n // Park off-screen when closed so the next open re-measures from scratch.\n useEffect(() => {\n if (!enabled) {\n setPosition((prev) =>\n prev.x === -9999 ? prev : { x: -9999, y: -9999, placement },\n );\n }\n }, [enabled, placement]);\n\n // Reposition on scroll/resize while open.\n useEffect(() => {\n if (!enabled) return;\n\n window.addEventListener(\"scroll\", update, true);\n window.addEventListener(\"resize\", update);\n\n return () => {\n window.removeEventListener(\"scroll\", update, true);\n window.removeEventListener(\"resize\", update);\n };\n }, [update, enabled]);\n\n return position;\n}\n"]}