silver-ui 0.3.1 → 0.4.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 (495) hide show
  1. package/dist/{chunk-QGHFUOUB.cjs → chunk-2A3V6OR7.cjs} +7 -7
  2. package/dist/{chunk-QGHFUOUB.cjs.map → chunk-2A3V6OR7.cjs.map} +1 -1
  3. package/dist/{chunk-RVENUWRD.js → chunk-2LABTS4P.js} +7 -7
  4. package/dist/{chunk-RVENUWRD.js.map → chunk-2LABTS4P.js.map} +1 -1
  5. package/dist/{chunk-DIIE44GO.js → chunk-2N6FOSNM.js} +5 -5
  6. package/dist/{chunk-DIIE44GO.js.map → chunk-2N6FOSNM.js.map} +1 -1
  7. package/dist/{chunk-LUBVZVY3.js → chunk-2RKMG2TC.js} +7 -7
  8. package/dist/{chunk-LUBVZVY3.js.map → chunk-2RKMG2TC.js.map} +1 -1
  9. package/dist/{chunk-EMHLPPQZ.js → chunk-3CJC4QE6.js} +4 -4
  10. package/dist/chunk-3CJC4QE6.js.map +1 -0
  11. package/dist/{chunk-P3SMNZCT.js → chunk-3JPUXC5U.js} +3 -3
  12. package/dist/{chunk-P3SMNZCT.js.map → chunk-3JPUXC5U.js.map} +1 -1
  13. package/dist/{chunk-F3ZNRO6W.js → chunk-3OIUA2NY.js} +5 -5
  14. package/dist/{chunk-F3ZNRO6W.js.map → chunk-3OIUA2NY.js.map} +1 -1
  15. package/dist/{chunk-PZ63ZCEO.cjs → chunk-3ZV3EGGK.cjs} +17 -17
  16. package/dist/{chunk-PZ63ZCEO.cjs.map → chunk-3ZV3EGGK.cjs.map} +1 -1
  17. package/dist/{chunk-O5A47TA2.js → chunk-4H7X5FGX.js} +5 -5
  18. package/dist/{chunk-O5A47TA2.js.map → chunk-4H7X5FGX.js.map} +1 -1
  19. package/dist/{chunk-Q3OA23V5.js → chunk-52WQDDWQ.js} +7 -7
  20. package/dist/{chunk-Q3OA23V5.js.map → chunk-52WQDDWQ.js.map} +1 -1
  21. package/dist/{chunk-ZLATP3P5.cjs → chunk-5D2OR64D.cjs} +6 -6
  22. package/dist/{chunk-ZLATP3P5.cjs.map → chunk-5D2OR64D.cjs.map} +1 -1
  23. package/dist/{chunk-YAIEA2YE.cjs → chunk-5PX76QOL.cjs} +3 -3
  24. package/dist/{chunk-YAIEA2YE.cjs.map → chunk-5PX76QOL.cjs.map} +1 -1
  25. package/dist/{chunk-HM7IEGQ2.cjs → chunk-5YS43PSQ.cjs} +7 -7
  26. package/dist/chunk-5YS43PSQ.cjs.map +1 -0
  27. package/dist/{chunk-D2DOHX4W.js → chunk-6ONAGCCZ.js} +13 -6
  28. package/dist/chunk-6ONAGCCZ.js.map +1 -0
  29. package/dist/{chunk-DSB4Q3AS.js → chunk-6ULCJ3XZ.js} +4 -4
  30. package/dist/{chunk-DSB4Q3AS.js.map → chunk-6ULCJ3XZ.js.map} +1 -1
  31. package/dist/{chunk-GXRH5XQY.js → chunk-6XWXBXYE.js} +5 -5
  32. package/dist/{chunk-GXRH5XQY.js.map → chunk-6XWXBXYE.js.map} +1 -1
  33. package/dist/{chunk-EXYBQVZT.js → chunk-7BSFKG7N.js} +3 -3
  34. package/dist/{chunk-EXYBQVZT.js.map → chunk-7BSFKG7N.js.map} +1 -1
  35. package/dist/{chunk-7GN6YTSS.cjs → chunk-7CCXHH6Y.cjs} +7 -7
  36. package/dist/chunk-7CCXHH6Y.cjs.map +1 -0
  37. package/dist/{chunk-PJMV2HTO.cjs → chunk-7U7JMRVF.cjs} +18 -18
  38. package/dist/{chunk-PJMV2HTO.cjs.map → chunk-7U7JMRVF.cjs.map} +1 -1
  39. package/dist/{chunk-M3IKL2VG.js → chunk-AFI4V7LI.js} +6 -6
  40. package/dist/{chunk-M3IKL2VG.js.map → chunk-AFI4V7LI.js.map} +1 -1
  41. package/dist/{chunk-OSBVDRVD.cjs → chunk-AHVHLNHU.cjs} +8 -8
  42. package/dist/{chunk-OSBVDRVD.cjs.map → chunk-AHVHLNHU.cjs.map} +1 -1
  43. package/dist/{chunk-6USJ4LJJ.js → chunk-AJ6X62AI.js} +4 -4
  44. package/dist/{chunk-6USJ4LJJ.js.map → chunk-AJ6X62AI.js.map} +1 -1
  45. package/dist/{chunk-UKDGDMWN.js → chunk-AP7BDTTF.js} +4 -4
  46. package/dist/{chunk-UKDGDMWN.js.map → chunk-AP7BDTTF.js.map} +1 -1
  47. package/dist/{chunk-7U7RP6N2.cjs → chunk-AWDIKDX5.cjs} +10 -10
  48. package/dist/{chunk-7U7RP6N2.cjs.map → chunk-AWDIKDX5.cjs.map} +1 -1
  49. package/dist/{chunk-5AYGQJOW.js → chunk-BCCPNGUV.js} +4 -4
  50. package/dist/{chunk-5AYGQJOW.js.map → chunk-BCCPNGUV.js.map} +1 -1
  51. package/dist/{chunk-QRKRVCA3.cjs → chunk-BLRWA445.cjs} +25 -25
  52. package/dist/{chunk-QRKRVCA3.cjs.map → chunk-BLRWA445.cjs.map} +1 -1
  53. package/dist/{chunk-BA4A7C7U.js → chunk-BSAZRW6T.js} +8 -8
  54. package/dist/{chunk-BA4A7C7U.js.map → chunk-BSAZRW6T.js.map} +1 -1
  55. package/dist/{chunk-5TT4PGZO.cjs → chunk-BUESV4DR.cjs} +9 -9
  56. package/dist/{chunk-5TT4PGZO.cjs.map → chunk-BUESV4DR.cjs.map} +1 -1
  57. package/dist/{chunk-HPVXP3DG.cjs → chunk-BULJWVPU.cjs} +16 -16
  58. package/dist/{chunk-HPVXP3DG.cjs.map → chunk-BULJWVPU.cjs.map} +1 -1
  59. package/dist/{chunk-L7BOLGF2.cjs → chunk-C6EYCIKJ.cjs} +3 -3
  60. package/dist/{chunk-L7BOLGF2.cjs.map → chunk-C6EYCIKJ.cjs.map} +1 -1
  61. package/dist/{chunk-4H35H54I.cjs → chunk-C732WXKS.cjs} +12 -12
  62. package/dist/{chunk-4H35H54I.cjs.map → chunk-C732WXKS.cjs.map} +1 -1
  63. package/dist/{chunk-S4B2D427.js → chunk-CGYZ6QWY.js} +4 -4
  64. package/dist/{chunk-S4B2D427.js.map → chunk-CGYZ6QWY.js.map} +1 -1
  65. package/dist/{chunk-QCT4BPB6.cjs → chunk-CKTXDIH4.cjs} +39 -40
  66. package/dist/chunk-CKTXDIH4.cjs.map +1 -0
  67. package/dist/{chunk-PYW5UO2Z.js → chunk-D3LZQ5QS.js} +4 -4
  68. package/dist/chunk-D3LZQ5QS.js.map +1 -0
  69. package/dist/{chunk-D3SSMY73.cjs → chunk-DIRVAHOF.cjs} +6 -6
  70. package/dist/{chunk-D3SSMY73.cjs.map → chunk-DIRVAHOF.cjs.map} +1 -1
  71. package/dist/{chunk-ZD3NPHZ7.cjs → chunk-DP7VC4FW.cjs} +4 -4
  72. package/dist/{chunk-ZD3NPHZ7.cjs.map → chunk-DP7VC4FW.cjs.map} +1 -1
  73. package/dist/{chunk-NYQPIBOD.cjs → chunk-DVGLYE3G.cjs} +10 -10
  74. package/dist/{chunk-NYQPIBOD.cjs.map → chunk-DVGLYE3G.cjs.map} +1 -1
  75. package/dist/{chunk-ZWULWVN3.js → chunk-DWUEPOYH.js} +7 -7
  76. package/dist/{chunk-ZWULWVN3.js.map → chunk-DWUEPOYH.js.map} +1 -1
  77. package/dist/{chunk-UN35QV25.js → chunk-DXPQRAGI.js} +4 -4
  78. package/dist/{chunk-UN35QV25.js.map → chunk-DXPQRAGI.js.map} +1 -1
  79. package/dist/{chunk-3XDUR3IG.cjs → chunk-E2A3GJSN.cjs} +5 -5
  80. package/dist/{chunk-3XDUR3IG.cjs.map → chunk-E2A3GJSN.cjs.map} +1 -1
  81. package/dist/{chunk-OULO3YDQ.cjs → chunk-EALKX3ST.cjs} +7 -7
  82. package/dist/{chunk-OULO3YDQ.cjs.map → chunk-EALKX3ST.cjs.map} +1 -1
  83. package/dist/{chunk-VAK4JQYL.js → chunk-EBDODJ5X.js} +6 -6
  84. package/dist/{chunk-VAK4JQYL.js.map → chunk-EBDODJ5X.js.map} +1 -1
  85. package/dist/{chunk-U5GTHA44.cjs → chunk-FB245S6T.cjs} +11 -11
  86. package/dist/{chunk-U5GTHA44.cjs.map → chunk-FB245S6T.cjs.map} +1 -1
  87. package/dist/{chunk-RNB4BDEG.js → chunk-FDUO2HVX.js} +3 -3
  88. package/dist/{chunk-RNB4BDEG.js.map → chunk-FDUO2HVX.js.map} +1 -1
  89. package/dist/{chunk-6W3L6IJB.cjs → chunk-FDZQPWFZ.cjs} +11 -11
  90. package/dist/{chunk-6W3L6IJB.cjs.map → chunk-FDZQPWFZ.cjs.map} +1 -1
  91. package/dist/{chunk-3L6KAW7G.js → chunk-FMLIYHDP.js} +5 -5
  92. package/dist/{chunk-3L6KAW7G.js.map → chunk-FMLIYHDP.js.map} +1 -1
  93. package/dist/{chunk-XADTIY7J.cjs → chunk-FNOUX5T2.cjs} +5 -5
  94. package/dist/{chunk-XADTIY7J.cjs.map → chunk-FNOUX5T2.cjs.map} +1 -1
  95. package/dist/{chunk-LFRTNC7M.cjs → chunk-FNZOICR4.cjs} +7 -7
  96. package/dist/{chunk-LFRTNC7M.cjs.map → chunk-FNZOICR4.cjs.map} +1 -1
  97. package/dist/{chunk-IRSJHEYI.js → chunk-FP5E5BUM.js} +3 -3
  98. package/dist/{chunk-IRSJHEYI.js.map → chunk-FP5E5BUM.js.map} +1 -1
  99. package/dist/{chunk-ZVH3BLYO.js → chunk-G2U2W422.js} +6 -6
  100. package/dist/{chunk-ZVH3BLYO.js.map → chunk-G2U2W422.js.map} +1 -1
  101. package/dist/{chunk-W3KMDQKP.cjs → chunk-G2WW52GO.cjs} +12 -12
  102. package/dist/{chunk-W3KMDQKP.cjs.map → chunk-G2WW52GO.cjs.map} +1 -1
  103. package/dist/{chunk-U2U4FMFM.cjs → chunk-G3KKLGZU.cjs} +9 -9
  104. package/dist/{chunk-U2U4FMFM.cjs.map → chunk-G3KKLGZU.cjs.map} +1 -1
  105. package/dist/{chunk-IKF6VHA4.cjs → chunk-GC5VUTUR.cjs} +4 -4
  106. package/dist/{chunk-IKF6VHA4.cjs.map → chunk-GC5VUTUR.cjs.map} +1 -1
  107. package/dist/{chunk-QL3YSC3H.cjs → chunk-GL7PSN7H.cjs} +15 -15
  108. package/dist/{chunk-QL3YSC3H.cjs.map → chunk-GL7PSN7H.cjs.map} +1 -1
  109. package/dist/{chunk-WMXIUOOU.cjs → chunk-GYVWTH3U.cjs} +3 -3
  110. package/dist/{chunk-WMXIUOOU.cjs.map → chunk-GYVWTH3U.cjs.map} +1 -1
  111. package/dist/{chunk-UXDXE7Z6.cjs → chunk-H2CZ6IE5.cjs} +38 -36
  112. package/dist/chunk-H2CZ6IE5.cjs.map +1 -0
  113. package/dist/{chunk-MGVEX3RS.js → chunk-H7HQYBPH.js} +25 -26
  114. package/dist/chunk-H7HQYBPH.js.map +1 -0
  115. package/dist/{chunk-ZNUOFLCQ.js → chunk-HINS4GY6.js} +3 -3
  116. package/dist/chunk-HINS4GY6.js.map +1 -0
  117. package/dist/{chunk-EC2ALHNJ.js → chunk-HNZWPIJE.js} +8 -8
  118. package/dist/{chunk-EC2ALHNJ.js.map → chunk-HNZWPIJE.js.map} +1 -1
  119. package/dist/{chunk-3ZFEBOXD.cjs → chunk-IA5GII7N.cjs} +16 -16
  120. package/dist/chunk-IA5GII7N.cjs.map +1 -0
  121. package/dist/{chunk-EHCAF6D3.js → chunk-IAVZKGZS.js} +14 -3
  122. package/dist/chunk-IAVZKGZS.js.map +1 -0
  123. package/dist/{chunk-AJTJD5C6.js → chunk-ILEKDNP7.js} +6 -6
  124. package/dist/{chunk-AJTJD5C6.js.map → chunk-ILEKDNP7.js.map} +1 -1
  125. package/dist/{chunk-XSQOHNIF.js → chunk-J3DNWPXJ.js} +3 -3
  126. package/dist/{chunk-XSQOHNIF.js.map → chunk-J3DNWPXJ.js.map} +1 -1
  127. package/dist/{chunk-M3BF3BBJ.cjs → chunk-J4OEETYQ.cjs} +10 -10
  128. package/dist/{chunk-M3BF3BBJ.cjs.map → chunk-J4OEETYQ.cjs.map} +1 -1
  129. package/dist/{chunk-YSTESYUB.js → chunk-J5IRFGUP.js} +8 -8
  130. package/dist/chunk-J5IRFGUP.js.map +1 -0
  131. package/dist/{chunk-5D4LRSIV.js → chunk-JDAJ2HJQ.js} +6 -6
  132. package/dist/{chunk-5D4LRSIV.js.map → chunk-JDAJ2HJQ.js.map} +1 -1
  133. package/dist/{chunk-3DJ46WN4.js → chunk-JIVYPJKO.js} +6 -6
  134. package/dist/{chunk-3DJ46WN4.js.map → chunk-JIVYPJKO.js.map} +1 -1
  135. package/dist/{chunk-U2WVHZ24.cjs → chunk-JJ324PSZ.cjs} +6 -6
  136. package/dist/chunk-JJ324PSZ.cjs.map +1 -0
  137. package/dist/{chunk-EE2O457Z.cjs → chunk-JSINCF2R.cjs} +10 -10
  138. package/dist/{chunk-EE2O457Z.cjs.map → chunk-JSINCF2R.cjs.map} +1 -1
  139. package/dist/{chunk-X2GRBPCJ.cjs → chunk-JTFNNEWR.cjs} +7 -7
  140. package/dist/{chunk-X2GRBPCJ.cjs.map → chunk-JTFNNEWR.cjs.map} +1 -1
  141. package/dist/{chunk-YAYINZT2.cjs → chunk-JYVYCU22.cjs} +3 -3
  142. package/dist/{chunk-YAYINZT2.cjs.map → chunk-JYVYCU22.cjs.map} +1 -1
  143. package/dist/{chunk-PQRIV5XU.js → chunk-K3XHXWBW.js} +9 -9
  144. package/dist/{chunk-PQRIV5XU.js.map → chunk-K3XHXWBW.js.map} +1 -1
  145. package/dist/{chunk-65QAZWOG.cjs → chunk-K4ZJNQTX.cjs} +4 -4
  146. package/dist/{chunk-65QAZWOG.cjs.map → chunk-K4ZJNQTX.cjs.map} +1 -1
  147. package/dist/{chunk-CZM5FAWL.cjs → chunk-KDR5DCYL.cjs} +9 -9
  148. package/dist/{chunk-CZM5FAWL.cjs.map → chunk-KDR5DCYL.cjs.map} +1 -1
  149. package/dist/{chunk-GLJWAY4A.cjs → chunk-KXIILLQD.cjs} +10 -10
  150. package/dist/{chunk-GLJWAY4A.cjs.map → chunk-KXIILLQD.cjs.map} +1 -1
  151. package/dist/{chunk-Y4FH67QZ.js → chunk-L6VSBBPP.js} +7 -7
  152. package/dist/{chunk-Y4FH67QZ.js.map → chunk-L6VSBBPP.js.map} +1 -1
  153. package/dist/{chunk-O4RTJESR.js → chunk-LNT2IFOA.js} +4 -4
  154. package/dist/{chunk-O4RTJESR.js.map → chunk-LNT2IFOA.js.map} +1 -1
  155. package/dist/{chunk-MUUPZEZ5.cjs → chunk-LO5NZY7N.cjs} +5 -5
  156. package/dist/{chunk-MUUPZEZ5.cjs.map → chunk-LO5NZY7N.cjs.map} +1 -1
  157. package/dist/{chunk-CN2HJ7CP.js → chunk-LQIZSE3O.js} +8 -8
  158. package/dist/{chunk-CN2HJ7CP.js.map → chunk-LQIZSE3O.js.map} +1 -1
  159. package/dist/{chunk-5GNYP3PH.cjs → chunk-LUQVSNQL.cjs} +16 -9
  160. package/dist/chunk-LUQVSNQL.cjs.map +1 -0
  161. package/dist/{chunk-TF7IWMV2.js → chunk-LY6Z6A54.js} +8 -8
  162. package/dist/{chunk-TF7IWMV2.js.map → chunk-LY6Z6A54.js.map} +1 -1
  163. package/dist/{chunk-QEFE4QBL.cjs → chunk-M26XECB2.cjs} +14 -14
  164. package/dist/{chunk-QEFE4QBL.cjs.map → chunk-M26XECB2.cjs.map} +1 -1
  165. package/dist/{chunk-VVO7GIHG.cjs → chunk-M2MC3E27.cjs} +7 -7
  166. package/dist/{chunk-VVO7GIHG.cjs.map → chunk-M2MC3E27.cjs.map} +1 -1
  167. package/dist/{chunk-HVUYVPQL.cjs → chunk-MAYQGKKW.cjs} +4 -4
  168. package/dist/{chunk-HVUYVPQL.cjs.map → chunk-MAYQGKKW.cjs.map} +1 -1
  169. package/dist/{chunk-2IKWX66Q.js → chunk-MI5QU37D.js} +5 -5
  170. package/dist/{chunk-2IKWX66Q.js.map → chunk-MI5QU37D.js.map} +1 -1
  171. package/dist/{chunk-XUJZTD4E.js → chunk-NFABMGNH.js} +54 -45
  172. package/dist/chunk-NFABMGNH.js.map +1 -0
  173. package/dist/{chunk-4MRORQNN.js → chunk-NI55JEYL.js} +4 -4
  174. package/dist/{chunk-4MRORQNN.js.map → chunk-NI55JEYL.js.map} +1 -1
  175. package/dist/{chunk-6MOJEGDU.cjs → chunk-O2WICOUK.cjs} +5 -5
  176. package/dist/{chunk-6MOJEGDU.cjs.map → chunk-O2WICOUK.cjs.map} +1 -1
  177. package/dist/{chunk-LX64ENLC.cjs → chunk-OBWWRRL6.cjs} +43 -43
  178. package/dist/chunk-OBWWRRL6.cjs.map +1 -0
  179. package/dist/{chunk-NH7KH7QP.js → chunk-PIOMR4X2.js} +5 -5
  180. package/dist/{chunk-NH7KH7QP.js.map → chunk-PIOMR4X2.js.map} +1 -1
  181. package/dist/{chunk-75CPTIET.js → chunk-PIZMCOKL.js} +3 -3
  182. package/dist/{chunk-75CPTIET.js.map → chunk-PIZMCOKL.js.map} +1 -1
  183. package/dist/{chunk-L5YTMHDI.cjs → chunk-PQEFVHJZ.cjs} +10 -10
  184. package/dist/{chunk-L5YTMHDI.cjs.map → chunk-PQEFVHJZ.cjs.map} +1 -1
  185. package/dist/{chunk-I7KILUVL.cjs → chunk-QATCDVZ6.cjs} +12 -12
  186. package/dist/{chunk-I7KILUVL.cjs.map → chunk-QATCDVZ6.cjs.map} +1 -1
  187. package/dist/{chunk-BRB52QFV.cjs → chunk-QOKEU3DC.cjs} +15 -15
  188. package/dist/{chunk-BRB52QFV.cjs.map → chunk-QOKEU3DC.cjs.map} +1 -1
  189. package/dist/{chunk-76B2VLID.js → chunk-QRFDPG34.js} +5 -5
  190. package/dist/{chunk-76B2VLID.js.map → chunk-QRFDPG34.js.map} +1 -1
  191. package/dist/{chunk-3IBY374V.cjs → chunk-QVNDZZS6.cjs} +10 -10
  192. package/dist/{chunk-3IBY374V.cjs.map → chunk-QVNDZZS6.cjs.map} +1 -1
  193. package/dist/{chunk-EBQ3A4XO.js → chunk-QY6OMQW6.js} +5 -5
  194. package/dist/{chunk-EBQ3A4XO.js.map → chunk-QY6OMQW6.js.map} +1 -1
  195. package/dist/{chunk-XIFLSMGW.js → chunk-R6CMJMIJ.js} +3 -3
  196. package/dist/{chunk-XIFLSMGW.js.map → chunk-R6CMJMIJ.js.map} +1 -1
  197. package/dist/{chunk-ASJ5CBCR.js → chunk-RLOGQBFD.js} +6 -6
  198. package/dist/{chunk-ASJ5CBCR.js.map → chunk-RLOGQBFD.js.map} +1 -1
  199. package/dist/{chunk-S4LVSSJI.js → chunk-S7INL5NI.js} +6 -6
  200. package/dist/{chunk-S4LVSSJI.js.map → chunk-S7INL5NI.js.map} +1 -1
  201. package/dist/{chunk-HNROO7CR.js → chunk-SBOXHIES.js} +13 -13
  202. package/dist/{chunk-HNROO7CR.js.map → chunk-SBOXHIES.js.map} +1 -1
  203. package/dist/{chunk-KFDHP4WP.cjs → chunk-SBS7U7CN.cjs} +6 -6
  204. package/dist/{chunk-KFDHP4WP.cjs.map → chunk-SBS7U7CN.cjs.map} +1 -1
  205. package/dist/{chunk-WYE3VOFK.cjs → chunk-SCGXGVNN.cjs} +16 -16
  206. package/dist/{chunk-WYE3VOFK.cjs.map → chunk-SCGXGVNN.cjs.map} +1 -1
  207. package/dist/{chunk-54J6FRPG.js → chunk-SOCSUNIM.js} +9 -9
  208. package/dist/{chunk-54J6FRPG.js.map → chunk-SOCSUNIM.js.map} +1 -1
  209. package/dist/{chunk-BS55BG2U.cjs → chunk-SR5VVJ5Y.cjs} +7 -7
  210. package/dist/{chunk-BS55BG2U.cjs.map → chunk-SR5VVJ5Y.cjs.map} +1 -1
  211. package/dist/{chunk-YLGAJD6Q.js → chunk-SSAYBCAD.js} +4 -4
  212. package/dist/{chunk-YLGAJD6Q.js.map → chunk-SSAYBCAD.js.map} +1 -1
  213. package/dist/{chunk-24J3BUKL.js → chunk-SUH62Z64.js} +3 -3
  214. package/dist/{chunk-24J3BUKL.js.map → chunk-SUH62Z64.js.map} +1 -1
  215. package/dist/{chunk-PL6J55JB.cjs → chunk-TBOQTPRO.cjs} +9 -9
  216. package/dist/{chunk-PL6J55JB.cjs.map → chunk-TBOQTPRO.cjs.map} +1 -1
  217. package/dist/{chunk-YNTPHZFJ.js → chunk-TCTPR7YQ.js} +3 -3
  218. package/dist/{chunk-YNTPHZFJ.js.map → chunk-TCTPR7YQ.js.map} +1 -1
  219. package/dist/{chunk-M3RNFDA2.cjs → chunk-TF7XVTSP.cjs} +59 -50
  220. package/dist/chunk-TF7XVTSP.cjs.map +1 -0
  221. package/dist/{chunk-CRQXHA7N.js → chunk-TKTLWX2V.js} +7 -7
  222. package/dist/{chunk-CRQXHA7N.js.map → chunk-TKTLWX2V.js.map} +1 -1
  223. package/dist/{chunk-F3NATTQG.cjs → chunk-TPB53MHV.cjs} +14 -14
  224. package/dist/{chunk-F3NATTQG.cjs.map → chunk-TPB53MHV.cjs.map} +1 -1
  225. package/dist/{chunk-MSNRGNVY.cjs → chunk-TQA3BI7M.cjs} +7 -7
  226. package/dist/{chunk-MSNRGNVY.cjs.map → chunk-TQA3BI7M.cjs.map} +1 -1
  227. package/dist/{chunk-WO6FS4DV.js → chunk-U6NH54YD.js} +5 -5
  228. package/dist/{chunk-WO6FS4DV.js.map → chunk-U6NH54YD.js.map} +1 -1
  229. package/dist/{chunk-NUTB2K4G.js → chunk-U7ALNPFJ.js} +3 -3
  230. package/dist/{chunk-NUTB2K4G.js.map → chunk-U7ALNPFJ.js.map} +1 -1
  231. package/dist/{chunk-RINP34ZG.js → chunk-UKW2C5RN.js} +4 -4
  232. package/dist/{chunk-RINP34ZG.js.map → chunk-UKW2C5RN.js.map} +1 -1
  233. package/dist/{chunk-AMFFE5UJ.js → chunk-UUVLEOSD.js} +4 -4
  234. package/dist/{chunk-AMFFE5UJ.js.map → chunk-UUVLEOSD.js.map} +1 -1
  235. package/dist/{chunk-6NTDPZWP.js → chunk-VFGSNR35.js} +4 -4
  236. package/dist/{chunk-6NTDPZWP.js.map → chunk-VFGSNR35.js.map} +1 -1
  237. package/dist/{chunk-KRZ57O2J.cjs → chunk-VGHNBMEJ.cjs} +6 -6
  238. package/dist/{chunk-KRZ57O2J.cjs.map → chunk-VGHNBMEJ.cjs.map} +1 -1
  239. package/dist/{chunk-5BCLEOFF.cjs → chunk-VHKA25IV.cjs} +15 -15
  240. package/dist/{chunk-5BCLEOFF.cjs.map → chunk-VHKA25IV.cjs.map} +1 -1
  241. package/dist/{chunk-23NN5WRP.cjs → chunk-VK4O6W2K.cjs} +6 -6
  242. package/dist/{chunk-23NN5WRP.cjs.map → chunk-VK4O6W2K.cjs.map} +1 -1
  243. package/dist/{chunk-2VOB6LEI.js → chunk-VQ7U3ASC.js} +4 -4
  244. package/dist/{chunk-2VOB6LEI.js.map → chunk-VQ7U3ASC.js.map} +1 -1
  245. package/dist/{chunk-7MN4JDP7.js → chunk-VUCMGGU5.js} +14 -14
  246. package/dist/chunk-VUCMGGU5.js.map +1 -0
  247. package/dist/{chunk-IHM2M74J.js → chunk-W2Q4PQ6I.js} +3 -3
  248. package/dist/{chunk-IHM2M74J.js.map → chunk-W2Q4PQ6I.js.map} +1 -1
  249. package/dist/{chunk-UPQHFW47.js → chunk-W3C6QQF7.js} +5 -5
  250. package/dist/{chunk-UPQHFW47.js.map → chunk-W3C6QQF7.js.map} +1 -1
  251. package/dist/{chunk-P6RAOXJA.js → chunk-WBGFFP3G.js} +6 -6
  252. package/dist/{chunk-P6RAOXJA.js.map → chunk-WBGFFP3G.js.map} +1 -1
  253. package/dist/{chunk-CZC2K5GJ.js → chunk-WBQNPBXR.js} +5 -5
  254. package/dist/{chunk-CZC2K5GJ.js.map → chunk-WBQNPBXR.js.map} +1 -1
  255. package/dist/{chunk-3TXVDCF2.js → chunk-WY5BOT7O.js} +4 -4
  256. package/dist/{chunk-3TXVDCF2.js.map → chunk-WY5BOT7O.js.map} +1 -1
  257. package/dist/{chunk-CEU7BIL6.cjs → chunk-X574M2JB.cjs} +13 -13
  258. package/dist/{chunk-CEU7BIL6.cjs.map → chunk-X574M2JB.cjs.map} +1 -1
  259. package/dist/{chunk-7PNLMDAR.cjs → chunk-XLKXFJMU.cjs} +8 -8
  260. package/dist/{chunk-7PNLMDAR.cjs.map → chunk-XLKXFJMU.cjs.map} +1 -1
  261. package/dist/{chunk-W5G7ZDQ6.cjs → chunk-XLNRO3S6.cjs} +4 -4
  262. package/dist/{chunk-W5G7ZDQ6.cjs.map → chunk-XLNRO3S6.cjs.map} +1 -1
  263. package/dist/{chunk-A66NIFJE.cjs → chunk-XXBA3KSH.cjs} +5 -5
  264. package/dist/{chunk-A66NIFJE.cjs.map → chunk-XXBA3KSH.cjs.map} +1 -1
  265. package/dist/{chunk-OWBNRALR.js → chunk-YAWVGZRC.js} +6 -6
  266. package/dist/{chunk-OWBNRALR.js.map → chunk-YAWVGZRC.js.map} +1 -1
  267. package/dist/{chunk-JEIQ5GDK.cjs → chunk-YHBYVERE.cjs} +18 -18
  268. package/dist/{chunk-JEIQ5GDK.cjs.map → chunk-YHBYVERE.cjs.map} +1 -1
  269. package/dist/{chunk-CPOYENSZ.cjs → chunk-YO3MBGBP.cjs} +4 -4
  270. package/dist/{chunk-CPOYENSZ.cjs.map → chunk-YO3MBGBP.cjs.map} +1 -1
  271. package/dist/{chunk-EVKFA5FA.cjs → chunk-YVHWOKR7.cjs} +23 -23
  272. package/dist/{chunk-EVKFA5FA.cjs.map → chunk-YVHWOKR7.cjs.map} +1 -1
  273. package/dist/{chunk-66LRFIYK.cjs → chunk-YWGYN6YV.cjs} +9 -9
  274. package/dist/{chunk-66LRFIYK.cjs.map → chunk-YWGYN6YV.cjs.map} +1 -1
  275. package/dist/{chunk-BAPCHFNX.cjs → chunk-YY6KJO5Z.cjs} +12 -12
  276. package/dist/{chunk-BAPCHFNX.cjs.map → chunk-YY6KJO5Z.cjs.map} +1 -1
  277. package/dist/{chunk-UYBGXFYX.js → chunk-YYNWZRXZ.js} +20 -18
  278. package/dist/chunk-YYNWZRXZ.js.map +1 -0
  279. package/dist/{chunk-5QPM5LUS.cjs → chunk-Z6RT3WPE.cjs} +15 -4
  280. package/dist/chunk-Z6RT3WPE.cjs.map +1 -0
  281. package/dist/{chunk-VEUZ5DZR.js → chunk-ZAX2UJBC.js} +6 -6
  282. package/dist/{chunk-VEUZ5DZR.js.map → chunk-ZAX2UJBC.js.map} +1 -1
  283. package/dist/{chunk-LHP47U6H.js → chunk-ZEA2VYX4.js} +3 -3
  284. package/dist/{chunk-LHP47U6H.js.map → chunk-ZEA2VYX4.js.map} +1 -1
  285. package/dist/{chunk-QEX7V7TI.cjs → chunk-ZFBQ4R7M.cjs} +10 -10
  286. package/dist/{chunk-QEX7V7TI.cjs.map → chunk-ZFBQ4R7M.cjs.map} +1 -1
  287. package/dist/{chunk-AX6HC2YY.cjs → chunk-ZN7CULIL.cjs} +3 -3
  288. package/dist/{chunk-AX6HC2YY.cjs.map → chunk-ZN7CULIL.cjs.map} +1 -1
  289. package/dist/{chunk-FZCBTFHY.js → chunk-ZQUPAIBS.js} +4 -4
  290. package/dist/{chunk-FZCBTFHY.js.map → chunk-ZQUPAIBS.js.map} +1 -1
  291. package/dist/{chunk-VJBBMBRT.cjs → chunk-ZTWBG2XY.cjs} +7 -7
  292. package/dist/{chunk-VJBBMBRT.cjs.map → chunk-ZTWBG2XY.cjs.map} +1 -1
  293. package/dist/components/Accordion/index.cjs +6 -7
  294. package/dist/components/Accordion/index.js +3 -4
  295. package/dist/components/Alert/index.cjs +12 -13
  296. package/dist/components/Alert/index.js +11 -12
  297. package/dist/components/AlertDialog/index.cjs +15 -16
  298. package/dist/components/AlertDialog/index.js +13 -14
  299. package/dist/components/AppShell/index.cjs +20 -21
  300. package/dist/components/AppShell/index.js +17 -18
  301. package/dist/components/AspectRatio/index.cjs +3 -3
  302. package/dist/components/AspectRatio/index.js +2 -2
  303. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts +3 -1
  304. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
  305. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts +3 -1
  306. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
  307. package/dist/components/AutocompleteInput/index.cjs +20 -21
  308. package/dist/components/AutocompleteInput/index.d.ts +1 -1
  309. package/dist/components/AutocompleteInput/index.d.ts.map +1 -1
  310. package/dist/components/AutocompleteInput/index.js +15 -16
  311. package/dist/components/AutocompleteInput/types.d.ts +3 -3
  312. package/dist/components/AutocompleteInput/types.d.ts.map +1 -1
  313. package/dist/components/Avatar/index.cjs +6 -7
  314. package/dist/components/Avatar/index.js +3 -4
  315. package/dist/components/AvatarGroup/index.cjs +6 -7
  316. package/dist/components/AvatarGroup/index.js +4 -5
  317. package/dist/components/Badge/index.cjs +1 -1
  318. package/dist/components/Badge/index.js +1 -1
  319. package/dist/components/Blockquote/index.cjs +4 -5
  320. package/dist/components/Blockquote/index.js +3 -4
  321. package/dist/components/Breadcrumbs/index.cjs +10 -11
  322. package/dist/components/Breadcrumbs/index.js +7 -8
  323. package/dist/components/Button/index.cjs +11 -12
  324. package/dist/components/Button/index.js +10 -11
  325. package/dist/components/ButtonGroup/index.cjs +1 -1
  326. package/dist/components/ButtonGroup/index.js +1 -1
  327. package/dist/components/Calendar/index.cjs +12 -13
  328. package/dist/components/Calendar/index.js +11 -12
  329. package/dist/components/Card/index.cjs +1 -1
  330. package/dist/components/Card/index.js +1 -1
  331. package/dist/components/Center/index.cjs +1 -1
  332. package/dist/components/Center/index.js +1 -1
  333. package/dist/components/CheckboxInput/index.cjs +12 -13
  334. package/dist/components/CheckboxInput/index.js +11 -12
  335. package/dist/components/CodeBlock/index.cjs +13 -14
  336. package/dist/components/CodeBlock/index.js +12 -13
  337. package/dist/components/ContextMenu/index.cjs +17 -18
  338. package/dist/components/ContextMenu/index.js +15 -16
  339. package/dist/components/DateInput/index.cjs +16 -17
  340. package/dist/components/DateInput/index.js +15 -16
  341. package/dist/components/DateRangeInput/index.cjs +16 -17
  342. package/dist/components/DateRangeInput/index.js +15 -16
  343. package/dist/components/DateTimeInput/index.cjs +18 -19
  344. package/dist/components/DateTimeInput/index.js +17 -18
  345. package/dist/components/Dialog/index.cjs +5 -6
  346. package/dist/components/Dialog/index.js +3 -4
  347. package/dist/components/Divider/index.cjs +4 -5
  348. package/dist/components/Divider/index.js +3 -4
  349. package/dist/components/Drawer/index.cjs +4 -4
  350. package/dist/components/Drawer/index.js +2 -2
  351. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  352. package/dist/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  353. package/dist/components/DropdownMenu/DropdownMenuItem.recipe.d.ts +36 -0
  354. package/dist/components/DropdownMenu/DropdownMenuItem.recipe.d.ts.map +1 -0
  355. package/dist/components/DropdownMenu/index.cjs +18 -19
  356. package/dist/components/DropdownMenu/index.js +14 -15
  357. package/dist/components/EmptyState/index.cjs +7 -8
  358. package/dist/components/EmptyState/index.js +6 -7
  359. package/dist/components/Field/index.cjs +10 -11
  360. package/dist/components/Field/index.js +8 -9
  361. package/dist/components/FileInput/index.cjs +14 -15
  362. package/dist/components/FileInput/index.js +13 -14
  363. package/dist/components/HoverCard/index.cjs +5 -5
  364. package/dist/components/HoverCard/index.js +3 -3
  365. package/dist/components/HoverCard/useHoverCard.d.ts.map +1 -1
  366. package/dist/components/Icon/index.cjs +1 -1
  367. package/dist/components/Icon/index.js +1 -1
  368. package/dist/components/InputGroup/index.cjs +13 -14
  369. package/dist/components/InputGroup/index.js +9 -10
  370. package/dist/components/Item/index.cjs +8 -9
  371. package/dist/components/Item/index.js +7 -8
  372. package/dist/components/Kbd/index.cjs +4 -5
  373. package/dist/components/Kbd/index.js +3 -4
  374. package/dist/components/Layout/index.cjs +16 -17
  375. package/dist/components/Layout/index.js +11 -12
  376. package/dist/components/Lightbox/index.cjs +13 -14
  377. package/dist/components/Lightbox/index.js +11 -12
  378. package/dist/components/Link/index.cjs +8 -9
  379. package/dist/components/Link/index.js +5 -6
  380. package/dist/components/List/index.cjs +11 -12
  381. package/dist/components/List/index.js +9 -10
  382. package/dist/components/MetadataList/index.cjs +7 -8
  383. package/dist/components/MetadataList/index.js +5 -6
  384. package/dist/components/MultiSelect/index.cjs +15 -16
  385. package/dist/components/MultiSelect/index.js +14 -15
  386. package/dist/components/NavIcon/index.cjs +3 -3
  387. package/dist/components/NavIcon/index.js +2 -2
  388. package/dist/components/NumberInput/index.cjs +15 -16
  389. package/dist/components/NumberInput/index.js +14 -15
  390. package/dist/components/Pagination/index.cjs +12 -13
  391. package/dist/components/Pagination/index.js +11 -12
  392. package/dist/components/PasswordInput/index.cjs +16 -17
  393. package/dist/components/PasswordInput/index.js +15 -16
  394. package/dist/components/Popover/Popover.d.ts.map +1 -1
  395. package/dist/components/Popover/index.cjs +13 -14
  396. package/dist/components/Popover/index.js +11 -12
  397. package/dist/components/Progress/index.cjs +5 -6
  398. package/dist/components/Progress/index.js +4 -5
  399. package/dist/components/RadioGroup/index.cjs +13 -14
  400. package/dist/components/RadioGroup/index.js +11 -12
  401. package/dist/components/Rating/index.cjs +5 -6
  402. package/dist/components/Rating/index.js +4 -5
  403. package/dist/components/Schedule/ListView.d.ts.map +1 -1
  404. package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
  405. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  406. package/dist/components/Schedule/index.cjs +26 -27
  407. package/dist/components/Schedule/index.js +15 -16
  408. package/dist/components/Schedule/shared.d.ts.map +1 -1
  409. package/dist/components/SearchFilterInput/index.cjs +33 -34
  410. package/dist/components/SearchFilterInput/index.js +25 -26
  411. package/dist/components/SegmentedControl/index.cjs +5 -5
  412. package/dist/components/SegmentedControl/index.js +3 -3
  413. package/dist/components/Select/index.cjs +17 -18
  414. package/dist/components/Select/index.js +15 -16
  415. package/dist/components/SideNav/index.cjs +19 -20
  416. package/dist/components/SideNav/index.js +13 -14
  417. package/dist/components/Skeleton/index.cjs +1 -1
  418. package/dist/components/Skeleton/index.js +1 -1
  419. package/dist/components/Slider/index.cjs +10 -11
  420. package/dist/components/Slider/index.js +9 -10
  421. package/dist/components/Spinner/index.cjs +7 -8
  422. package/dist/components/Spinner/index.js +6 -7
  423. package/dist/components/SplitButton/index.cjs +16 -17
  424. package/dist/components/SplitButton/index.js +15 -16
  425. package/dist/components/Stack/index.cjs +1 -1
  426. package/dist/components/Stack/index.js +1 -1
  427. package/dist/components/Stepper/index.cjs +8 -9
  428. package/dist/components/Stepper/index.js +5 -6
  429. package/dist/components/Switch/index.cjs +9 -10
  430. package/dist/components/Switch/index.js +8 -9
  431. package/dist/components/Table/index.cjs +57 -58
  432. package/dist/components/Table/index.js +29 -30
  433. package/dist/components/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
  434. package/dist/components/Tabs/index.cjs +17 -18
  435. package/dist/components/Tabs/index.js +12 -13
  436. package/dist/components/Tag/index.cjs +8 -9
  437. package/dist/components/Tag/index.js +7 -8
  438. package/dist/components/TagsInput/TagsInput.d.ts +3 -1
  439. package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
  440. package/dist/components/TagsInput/index.cjs +17 -18
  441. package/dist/components/TagsInput/index.js +16 -17
  442. package/dist/components/Text/index.cjs +6 -6
  443. package/dist/components/Text/index.js +4 -4
  444. package/dist/components/TextArea/index.cjs +11 -12
  445. package/dist/components/TextArea/index.js +10 -11
  446. package/dist/components/TextInput/index.cjs +15 -16
  447. package/dist/components/TextInput/index.js +14 -15
  448. package/dist/components/Thumbnail/index.cjs +12 -13
  449. package/dist/components/Thumbnail/index.js +11 -12
  450. package/dist/components/TimeInput/index.cjs +14 -15
  451. package/dist/components/TimeInput/index.js +13 -14
  452. package/dist/components/Toast/index.cjs +14 -15
  453. package/dist/components/Toast/index.js +11 -12
  454. package/dist/components/ToggleButton/index.cjs +10 -11
  455. package/dist/components/ToggleButton/index.js +8 -9
  456. package/dist/components/Tooltip/index.cjs +5 -5
  457. package/dist/components/Tooltip/index.js +3 -3
  458. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
  459. package/dist/components/TopNav/index.cjs +19 -20
  460. package/dist/components/TopNav/index.js +13 -14
  461. package/dist/components/TreeView/index.cjs +3 -3
  462. package/dist/components/TreeView/index.js +2 -2
  463. package/dist/index.cjs +243 -244
  464. package/dist/index.cjs.map +1 -1
  465. package/dist/index.d.ts +1 -1
  466. package/dist/index.d.ts.map +1 -1
  467. package/dist/index.js +74 -75
  468. package/dist/index.js.map +1 -1
  469. package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
  470. package/dist/internal/useLayer.d.ts.map +1 -1
  471. package/package.json +1 -1
  472. package/dist/chunk-3ZFEBOXD.cjs.map +0 -1
  473. package/dist/chunk-5GNYP3PH.cjs.map +0 -1
  474. package/dist/chunk-5QPM5LUS.cjs.map +0 -1
  475. package/dist/chunk-6BK4LUK4.cjs +0 -17
  476. package/dist/chunk-6BK4LUK4.cjs.map +0 -1
  477. package/dist/chunk-7GN6YTSS.cjs.map +0 -1
  478. package/dist/chunk-7MN4JDP7.js.map +0 -1
  479. package/dist/chunk-D2DOHX4W.js.map +0 -1
  480. package/dist/chunk-EHCAF6D3.js.map +0 -1
  481. package/dist/chunk-EMHLPPQZ.js.map +0 -1
  482. package/dist/chunk-GUKZNXTB.js +0 -15
  483. package/dist/chunk-GUKZNXTB.js.map +0 -1
  484. package/dist/chunk-HM7IEGQ2.cjs.map +0 -1
  485. package/dist/chunk-LX64ENLC.cjs.map +0 -1
  486. package/dist/chunk-M3RNFDA2.cjs.map +0 -1
  487. package/dist/chunk-MGVEX3RS.js.map +0 -1
  488. package/dist/chunk-PYW5UO2Z.js.map +0 -1
  489. package/dist/chunk-QCT4BPB6.cjs.map +0 -1
  490. package/dist/chunk-U2WVHZ24.cjs.map +0 -1
  491. package/dist/chunk-UXDXE7Z6.cjs.map +0 -1
  492. package/dist/chunk-UYBGXFYX.js.map +0 -1
  493. package/dist/chunk-XUJZTD4E.js.map +0 -1
  494. package/dist/chunk-YSTESYUB.js.map +0 -1
  495. package/dist/chunk-ZNUOFLCQ.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/internal/useGridFocus.ts","../src/components/Calendar/Calendar.recipe.ts","../src/components/Calendar/Calendar.tsx"],"names":["useCallback","MonthGrid","DayCell"],"mappings":"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","file":"chunk-D2DOHX4W.js","sourcesContent":["import {useCallback, useRef} from 'react';\n\nexport interface UseGridFocusOptions {\n cellSelector?: string;\n columns: number;\n onNavigateAfter?: (column: number, offset: number) => void;\n onNavigateBefore?: (column: number, offset: number) => void;\n onPageDown?: () => void;\n onPageUp?: () => void;\n}\n\nexport interface UseGridFocusReturn<T extends HTMLElement = HTMLElement> {\n focusCell: (index: number) => void;\n focusFirst: () => void;\n focusLast: () => void;\n gridRef: React.RefObject<T | null>;\n handleKeyDown: (event: React.KeyboardEvent) => void;\n}\n\nexport function useGridFocus<T extends HTMLElement = HTMLElement>({\n columns,\n cellSelector = 'button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n onNavigateAfter,\n onNavigateBefore,\n onPageDown,\n onPageUp,\n}: UseGridFocusOptions): UseGridFocusReturn<T> {\n const gridRef = useRef<T>(null);\n\n const getCells = useCallback(() => {\n return gridRef.current == null\n ? []\n : Array.from(gridRef.current.querySelectorAll<HTMLElement>(cellSelector));\n }, [cellSelector]);\n\n const focusCell = useCallback(\n (index: number) => {\n const cells = getCells();\n const clampedIndex = Math.max(0, Math.min(index, cells.length - 1));\n cells[clampedIndex]?.focus();\n },\n [getCells],\n );\n\n const focusFirst = useCallback(() => focusCell(0), [focusCell]);\n\n const focusLast = useCallback(() => {\n const cells = getCells();\n cells.at(-1)?.focus();\n }, [getCells]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const cells = getCells();\n const currentIndex = cells.findIndex(\n cell => cell === document.activeElement,\n );\n if (currentIndex === -1) {\n return;\n }\n\n const currentRow = Math.floor(currentIndex / columns);\n const currentColumn = currentIndex % columns;\n const totalRows = Math.ceil(cells.length / columns);\n let nextIndex: number | null = null;\n\n switch (event.key) {\n case 'ArrowRight':\n nextIndex = currentIndex + 1;\n break;\n case 'ArrowLeft':\n nextIndex = currentIndex - 1;\n break;\n case 'ArrowDown':\n if (currentRow >= totalRows - 1) {\n onNavigateAfter?.(currentColumn, columns);\n } else {\n nextIndex = currentIndex + columns;\n }\n break;\n case 'ArrowUp':\n if (currentRow <= 0) {\n onNavigateBefore?.(currentColumn, columns);\n } else {\n nextIndex = currentIndex - columns;\n }\n break;\n case 'Home':\n nextIndex = event.ctrlKey || event.metaKey ? 0 : currentRow * columns;\n break;\n case 'End':\n nextIndex =\n event.ctrlKey || event.metaKey\n ? cells.length - 1\n : Math.min((currentRow + 1) * columns - 1, cells.length - 1);\n break;\n case 'PageUp':\n onPageUp?.();\n break;\n case 'PageDown':\n onPageDown?.();\n break;\n default:\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (nextIndex == null) {\n return;\n }\n\n if (nextIndex < 0) {\n onNavigateBefore?.(currentColumn, 1);\n return;\n }\n\n if (nextIndex >= cells.length) {\n onNavigateAfter?.(currentColumn, 1);\n return;\n }\n\n cells[nextIndex]?.focus();\n },\n [\n columns,\n getCells,\n onNavigateAfter,\n onNavigateBefore,\n onPageDown,\n onPageUp,\n ],\n );\n\n return {gridRef, handleKeyDown, focusCell, focusFirst, focusLast};\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const calendarRecipe = sva({\n slots: [\n 'root',\n 'header',\n 'monthYear',\n 'months',\n 'monthGrid',\n 'weekHeader',\n 'dayName',\n 'daysGrid',\n 'weekRow',\n 'weekNumber',\n 'cell',\n 'rangeBackground',\n 'day',\n ],\n base: {\n root: {\n display: 'inline-block',\n minW: '220px',\n color: 'fg',\n fontFamily: 'body',\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '2',\n mb: '2',\n },\n monthYear: {\n flex: 1,\n textAlign: 'center',\n fontSize: 'sm',\n fontWeight: 'semibold',\n },\n months: {\n display: 'flex',\n gap: '4',\n },\n monthGrid: {\n flex: '1 1 0',\n },\n weekHeader: {\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n mb: '1',\n },\n dayName: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'component.md',\n h: 'component.md',\n color: 'fg.muted',\n fontSize: 'sm',\n },\n daysGrid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(7, 1fr)',\n },\n weekRow: {\n display: 'contents',\n },\n weekNumber: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'component.md',\n h: 'component.md',\n color: 'fg.muted',\n fontSize: 'sm',\n },\n cell: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n h: 'component.md',\n isolation: 'isolate',\n },\n rangeBackground: {\n position: 'absolute',\n insetBlock: '2px',\n insetInline: 0,\n },\n day: {\n position: 'relative',\n zIndex: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'component.sm',\n h: 'component.sm',\n p: 0,\n borderWidth: 0,\n borderStyle: 'none',\n borderRadius: 'full',\n bg: 'transparent',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'inherit',\n fontSize: 'md',\n transitionProperty: 'background-color, color',\n transitionDuration: 'fast',\n _hover: {\n bg: 'bg.subtle',\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n },\n variants: {\n // Reserve a leading column for ISO week numbers in the header and grid.\n hasWeekNumbers: {\n true: {\n weekHeader: {gridTemplateColumns: 'auto repeat(7, 1fr)'},\n daysGrid: {gridTemplateColumns: 'auto repeat(7, 1fr)'},\n },\n false: {},\n },\n isOutside: {\n true: {day: {color: 'fg.muted', opacity: 0.55}},\n false: {},\n },\n // Marker variant; the today ring is suppressed for selected/in-range days,\n // so the real styling lives in compoundVariants below.\n isToday: {\n true: {},\n false: {},\n },\n isSelected: {\n true: {\n day: {\n bg: 'primary',\n color: 'fg.onPrimary',\n _hover: {bg: 'primary'},\n },\n },\n false: {},\n },\n // Marker variant; only used to suppress the today ring on range middles.\n isInRange: {\n true: {},\n false: {},\n },\n // Declared after isOutside so the disabled opacity wins when both apply.\n // Outside days are `aria-disabled` but intentionally not natively\n // `disabled` (that would drop them from useGridFocus's dense-grid index\n // math), so the not-allowed cursor is driven from this variant rather than\n // the native `:disabled` pseudo.\n isDisabled: {\n true: {day: {opacity: 0.35, cursor: 'not-allowed'}},\n false: {},\n },\n rangeTone: {\n range: {rangeBackground: {bg: 'bg.selected'}},\n preview: {rangeBackground: {bg: 'bg.subtle'}},\n },\n roundedStart: {\n true: {\n rangeBackground: {\n left: '2px',\n borderTopLeftRadius: 'full',\n borderBottomLeftRadius: 'full',\n },\n },\n false: {},\n },\n roundedEnd: {\n true: {\n rangeBackground: {\n right: '2px',\n borderTopRightRadius: 'full',\n borderBottomRightRadius: 'full',\n },\n },\n false: {},\n },\n },\n compoundVariants: [\n {\n isToday: true,\n isSelected: false,\n isInRange: false,\n css: {\n day: {boxShadow: 'inset 0 0 0 1px token(colors.border.emphasized)'},\n },\n },\n ],\n defaultVariants: {\n hasWeekNumbers: false,\n isOutside: false,\n isToday: false,\n isSelected: false,\n isInRange: false,\n isDisabled: false,\n rangeTone: 'range',\n roundedStart: false,\n roundedEnd: false,\n },\n});\n\nexport type CalendarVariants = RecipeVariantProps<typeof calendarRecipe>;\n","import {Temporal} from '@js-temporal/polyfill';\nimport {ChevronLeft, ChevronRight} from 'lucide-react';\nimport {\n memo,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {cx} from '../../internal/cx';\nimport type {DateRange, DayOfWeek} from '../../internal/dateTypes';\nimport {\n DATE_FORMAT_MONTH_YEAR,\n DATE_FORMAT_WITH_WEEKDAY,\n getDaysInMonth,\n plainDateCreate,\n plainDateDayOfWeek,\n plainDateFormat,\n plainDateGetWeekNumber,\n plainDateIsAfter,\n plainDateIsBefore,\n plainDateIsEqual,\n plainDateIsInRange,\n plainDateToday,\n type PlainDate,\n} from '../../internal/plainDate';\nimport {getBrowserTimezoneID} from '../../internal/time';\nimport {useGridFocus} from '../../internal/useGridFocus';\nimport {Button} from '../Button';\nimport {calendarRecipe} from './Calendar.recipe';\n\nexport type {DateRange, DayOfWeek} from '../../internal/dateTypes';\n\nexport interface CalendarHandle {\n navigateTo: (date: PlainDate) => void;\n}\n\ninterface CalendarBaseProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Whether to show outside-month days.\n * @default true\n */\n hasOutsideDays?: boolean;\n /**\n * Whether month grids use only needed rows rather than a fixed six rows.\n * @default false\n */\n hasVariableRowCount?: boolean;\n /**\n * Whether to show ISO week numbers.\n * @default false\n */\n hasWeekNumbers?: boolean;\n /**\n * Maximum selectable date.\n */\n max?: PlainDate;\n /**\n * Minimum selectable date.\n */\n min?: PlainDate;\n /**\n * Number of months displayed.\n * @default 1\n */\n numberOfMonths?: 1 | 2;\n /**\n * Called when the visible month changes.\n */\n onViewDateChange?: (viewDate: PlainDate) => void;\n /**\n * Ref exposing imperative calendar navigation.\n */\n ref?: Ref<CalendarHandle>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Timezone used to determine today's date.\n * @default browser timezone\n */\n timezoneID?: string;\n /**\n * Controlled visible month.\n */\n viewDate?: PlainDate;\n /**\n * First day of week, where 0 is Sunday.\n * @default 0\n */\n weekStartsOn?: DayOfWeek;\n}\n\ninterface CalendarSingleProps extends CalendarBaseProps {\n /**\n * Default selected date for uncontrolled usage.\n */\n defaultValue?: PlainDate;\n /**\n * Selection mode. Defaults to 'single'.\n */\n mode?: 'single';\n /**\n * Called when the selected date changes.\n */\n onChange: (value: PlainDate) => void;\n /**\n * Controlled selected date.\n */\n value?: PlainDate;\n}\n\ninterface CalendarRangeProps extends CalendarBaseProps {\n /**\n * Default selected range for uncontrolled usage.\n */\n defaultValue?: DateRange;\n /**\n * Selection mode set to 'range'.\n */\n mode: 'range';\n /**\n * Called when the selected date range changes.\n */\n onChange: (value: DateRange) => void;\n /**\n * Controlled selected date range.\n */\n value?: DateRange;\n}\n\nexport type CalendarProps = CalendarSingleProps | CalendarRangeProps;\n\ninterface CalendarDay {\n date: PlainDate;\n dayNumber: number;\n isOutside: boolean;\n}\n\nfunction generateCalendarDays({\n year,\n month,\n weekStartsOn,\n hasVariableRowCount,\n}: {\n hasVariableRowCount: boolean;\n month: number;\n weekStartsOn: DayOfWeek;\n year: number;\n}): {dayNames: string[]; weeks: CalendarDay[][]} {\n const names = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n const dayNames = Array.from({length: 7}, (_, index) => {\n return names[(index + weekStartsOn) % 7];\n });\n const daysInMonth = getDaysInMonth(year, month);\n const firstOfMonth = plainDateCreate(year, month, 1);\n let startOffset = plainDateDayOfWeek(firstOfMonth) - weekStartsOn;\n if (startOffset < 0) {\n startOffset += 7;\n }\n\n const totalDays = daysInMonth + startOffset;\n const totalRows = hasVariableRowCount ? Math.ceil(totalDays / 7) : 6;\n const days = Array.from({length: totalRows * 7}, (_, index) => {\n const dayOffset = index - startOffset + 1;\n const isOutside = dayOffset < 1 || dayOffset > daysInMonth;\n const date = isOutside\n ? firstOfMonth.add({days: dayOffset - 1})\n : plainDateCreate(year, month, dayOffset);\n\n return {\n date,\n dayNumber: date.day,\n isOutside,\n };\n });\n\n const weeks: CalendarDay[][] = [];\n for (let index = 0; index < days.length; index += 7) {\n weeks.push(days.slice(index, index + 7));\n }\n\n return {dayNames, weeks};\n}\n\nfunction checkDateDisabled(\n date: PlainDate,\n options: {\n getIsDateDisabled?: (date: PlainDate) => boolean;\n max?: PlainDate;\n min?: PlainDate;\n },\n): boolean {\n if (options.min != null && plainDateIsBefore(date, options.min)) {\n return true;\n }\n\n if (options.max != null && plainDateIsAfter(date, options.max)) {\n return true;\n }\n\n return options.getIsDateDisabled?.(date) ?? false;\n}\n\nfunction getSelectedTabDate({\n days,\n getIsDisabled,\n month,\n selectedDate,\n today,\n year,\n}: {\n days: CalendarDay[];\n getIsDisabled: (date: PlainDate) => boolean;\n month: number;\n selectedDate: PlainDate | null;\n today: PlainDate;\n year: number;\n}): PlainDate | null {\n if (\n selectedDate?.year === year &&\n selectedDate.month === month &&\n !getIsDisabled(selectedDate)\n ) {\n return selectedDate;\n }\n\n if (today.year === year && today.month === month && !getIsDisabled(today)) {\n return today;\n }\n\n return (\n days.find(day => !day.isOutside && !getIsDisabled(day.date))?.date ?? null\n );\n}\n\n/**\n * A date picker calendar supporting single date and date range selection.\n */\nexport function Calendar({\n className,\n 'data-testid': dataTestId,\n defaultValue,\n getIsDateDisabled: getIsDateDisabledProp,\n hasOutsideDays = true,\n hasVariableRowCount = false,\n hasWeekNumbers = false,\n max,\n min,\n mode = 'single',\n numberOfMonths = 1,\n onChange,\n onViewDateChange,\n ref,\n style,\n timezoneID,\n value,\n viewDate: viewDateFromProps,\n weekStartsOn = 0,\n}: CalendarProps): React.JSX.Element {\n const effectiveTimezoneID = timezoneID ?? getBrowserTimezoneID();\n const today = useMemo(\n () => plainDateToday(effectiveTimezoneID),\n [effectiveTimezoneID],\n );\n const [internalValue, setInternalValue] = useState<\n DateRange | PlainDate | undefined\n >(defaultValue);\n const [rangeSelectionStart, setRangeSelectionStart] =\n useState<PlainDate | null>(null);\n const [hoveredDate, setHoveredDate] = useState<PlainDate | null>(null);\n const [pendingFocus, setPendingFocus] = useState<PlainDate | null>(null);\n const effectiveValue = value ?? internalValue;\n const isViewDateControlled =\n viewDateFromProps != null && onViewDateChange != null;\n const [internalViewDate, setInternalViewDate] = useState(() => {\n if (viewDateFromProps != null) {\n return viewDateFromProps;\n }\n\n if (effectiveValue != null && 'year' in effectiveValue) {\n return effectiveValue;\n }\n\n if (effectiveValue != null && 'start' in effectiveValue) {\n return effectiveValue.start;\n }\n\n return today;\n });\n const viewDate = isViewDateControlled ? viewDateFromProps : internalViewDate;\n const baseMonth = useMemo(() => viewDate.with({day: 1}), [viewDate]);\n const visibleMonths = useMemo(\n () =>\n Array.from({length: numberOfMonths}, (_, index) =>\n baseMonth.add({months: index}),\n ),\n [baseMonth, numberOfMonths],\n );\n const monthYearLabel = useMemo(\n () =>\n visibleMonths\n .map(month => plainDateFormat(month, DATE_FORMAT_MONTH_YEAR))\n .join(' - '),\n [visibleMonths],\n );\n\n const canNavigatePrevious =\n min == null || plainDateIsBefore(min.with({day: 1}), baseMonth);\n const lastVisibleMonth = visibleMonths.at(-1) ?? baseMonth;\n const canNavigateNext =\n max == null || plainDateIsAfter(max.with({day: 1}), lastVisibleMonth);\n\n const navigateMonth = useCallback(\n (delta: number, nextFocus?: PlainDate) => {\n const nextMonth = baseMonth.add({months: delta});\n\n if (nextFocus != null) {\n setPendingFocus(nextFocus);\n }\n\n onViewDateChange?.(nextMonth);\n if (!isViewDateControlled) {\n setInternalViewDate(nextMonth);\n }\n },\n [baseMonth, isViewDateControlled, onViewDateChange],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n navigateTo: date => {\n onViewDateChange?.(date);\n if (!isViewDateControlled) {\n setInternalViewDate(date);\n }\n },\n }),\n [isViewDateControlled, onViewDateChange],\n );\n\n const handleDayClick = useCallback(\n (date: PlainDate) => {\n if (mode === 'single') {\n setInternalValue(date);\n (onChange as CalendarSingleProps['onChange'])(date);\n return;\n }\n\n if (rangeSelectionStart == null) {\n setRangeSelectionStart(date);\n return;\n }\n\n const range = plainDateIsBefore(date, rangeSelectionStart)\n ? {start: date, end: rangeSelectionStart}\n : {start: rangeSelectionStart, end: date};\n setInternalValue(range);\n setRangeSelectionStart(null);\n (onChange as CalendarRangeProps['onChange'])(range);\n },\n [mode, onChange, rangeSelectionStart],\n );\n\n const handleNavigateNext = useCallback(\n (nextFocus: PlainDate) => navigateMonth(1, nextFocus),\n [navigateMonth],\n );\n\n const handleNavigatePrevious = useCallback(\n (nextFocus: PlainDate) => navigateMonth(-1, nextFocus),\n [navigateMonth],\n );\n\n const handlePendingFocusHandled = useCallback(\n () => setPendingFocus(null),\n [],\n );\n\n const styles = calendarRecipe();\n\n return (\n // eslint-disable-next-line jsx-a11y-x/no-static-element-interactions\n <div\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n onKeyDown={event => {\n if (\n mode === 'range' &&\n rangeSelectionStart != null &&\n event.key === 'Escape'\n ) {\n setRangeSelectionStart(null);\n event.preventDefault();\n event.stopPropagation();\n }\n }}\n style={style}>\n <div className={styles.header}>\n <Button\n icon={ChevronLeft}\n isDisabled={!canNavigatePrevious}\n isIconOnly\n label=\"Previous month\"\n onClick={() => navigateMonth(-1)}\n size=\"sm\"\n variant=\"ghost\"\n />\n <span className={styles.monthYear}>{monthYearLabel}</span>\n <Button\n icon={ChevronRight}\n isDisabled={!canNavigateNext}\n isIconOnly\n label=\"Next month\"\n onClick={() => navigateMonth(1)}\n size=\"sm\"\n variant=\"ghost\"\n />\n </div>\n <div className={styles.months}>\n {visibleMonths.map(month => (\n <MonthGrid\n getIsDateDisabled={getIsDateDisabledProp}\n hasOutsideDays={hasOutsideDays}\n hasVariableRowCount={hasVariableRowCount}\n hasWeekNumbers={hasWeekNumbers}\n hoveredDate={hoveredDate}\n key={month.toString()}\n max={max}\n min={min}\n mode={mode}\n month={month}\n onDayClick={handleDayClick}\n onDayHover={setHoveredDate}\n onNavigateNext={handleNavigateNext}\n onNavigatePrevious={handleNavigatePrevious}\n onPendingFocusHandled={handlePendingFocusHandled}\n pendingFocus={pendingFocus}\n rangeSelectionStart={rangeSelectionStart}\n today={today}\n value={effectiveValue}\n weekStartsOn={weekStartsOn}\n />\n ))}\n </div>\n </div>\n );\n}\n\ninterface MonthGridProps {\n getIsDateDisabled?: (date: PlainDate) => boolean;\n hasOutsideDays: boolean;\n hasVariableRowCount: boolean;\n hasWeekNumbers: boolean;\n hoveredDate: PlainDate | null;\n max?: PlainDate;\n min?: PlainDate;\n mode: 'single' | 'range';\n month: PlainDate;\n onDayClick: (date: PlainDate) => void;\n onDayHover: (date: PlainDate | null) => void;\n onNavigateNext: (nextFocus: PlainDate) => void;\n onNavigatePrevious: (nextFocus: PlainDate) => void;\n onPendingFocusHandled: () => void;\n pendingFocus: PlainDate | null;\n rangeSelectionStart: PlainDate | null;\n today: PlainDate;\n value: DateRange | PlainDate | undefined;\n weekStartsOn: DayOfWeek;\n}\n\nconst MonthGrid = memo(function MonthGrid({\n month,\n value,\n mode,\n rangeSelectionStart,\n hoveredDate,\n min,\n max,\n getIsDateDisabled: getIsDateDisabledProp,\n hasOutsideDays,\n hasWeekNumbers,\n hasVariableRowCount,\n weekStartsOn,\n onDayClick,\n onDayHover,\n today,\n onNavigatePrevious,\n onNavigateNext,\n pendingFocus,\n onPendingFocusHandled,\n}: MonthGridProps): React.JSX.Element {\n const {dayNames, weeks} = useMemo(\n () =>\n generateCalendarDays({\n year: month.year,\n month: month.month,\n weekStartsOn,\n hasVariableRowCount,\n }),\n [hasVariableRowCount, month.month, month.year, weekStartsOn],\n );\n const days = weeks.flat();\n const isDisabled = useCallback(\n (date: PlainDate) =>\n checkDateDisabled(date, {\n min,\n max,\n getIsDateDisabled: getIsDateDisabledProp,\n }),\n [getIsDateDisabledProp, max, min],\n );\n const selectedDate =\n mode === 'single' && value != null && 'year' in value ? value : null;\n const tabbableDate = getSelectedTabDate({\n days,\n getIsDisabled: isDisabled,\n month: month.month,\n selectedDate,\n today,\n year: month.year,\n });\n\n const getFocusedDate = useCallback((): PlainDate | null => {\n const activeElement = document.activeElement as HTMLElement | null;\n const date = activeElement?.dataset.date;\n return date == null ? null : Temporal.PlainDate.from(date);\n }, []);\n\n const {gridRef, handleKeyDown} = useGridFocus<HTMLDivElement>({\n columns: 7,\n cellSelector: 'button:not([disabled])',\n onNavigateBefore: (_column, offset) => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigatePrevious(focusedDate.subtract({days: offset}));\n }\n },\n onNavigateAfter: (_column, offset) => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigateNext(focusedDate.add({days: offset}));\n }\n },\n // Page keys move a whole month, keeping the same day. Temporal's default\n // `constrain` overflow clamps to the month's last day (e.g. Jan 31 -> Feb 28).\n onPageUp: () => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigatePrevious(focusedDate.subtract({months: 1}));\n }\n },\n onPageDown: () => {\n const focusedDate = getFocusedDate();\n if (focusedDate != null) {\n onNavigateNext(focusedDate.add({months: 1}));\n }\n },\n });\n\n useEffect(() => {\n if (pendingFocus == null || gridRef.current == null) {\n return;\n }\n\n const button = gridRef.current.querySelector<HTMLButtonElement>(\n `button[data-date=\"${pendingFocus.toString()}\"]`,\n );\n button?.focus();\n onPendingFocusHandled();\n }, [gridRef, onPendingFocusHandled, pendingFocus]);\n\n let rangeStart: PlainDate | null = null;\n let rangeEnd: PlainDate | null = null;\n if (mode === 'range' && value != null && 'start' in value) {\n rangeStart = value.start;\n rangeEnd = value.end;\n }\n if (rangeSelectionStart != null) {\n rangeStart = rangeSelectionStart;\n rangeEnd = rangeSelectionStart;\n }\n\n let previewStart: PlainDate | null = null;\n let previewEnd: PlainDate | null = null;\n if (mode === 'range' && rangeSelectionStart != null && hoveredDate != null) {\n if (!plainDateIsEqual(rangeSelectionStart, hoveredDate)) {\n previewStart = plainDateIsBefore(hoveredDate, rangeSelectionStart)\n ? hoveredDate\n : rangeSelectionStart;\n previewEnd = plainDateIsBefore(hoveredDate, rangeSelectionStart)\n ? rangeSelectionStart\n : hoveredDate;\n }\n }\n\n const styles = calendarRecipe({hasWeekNumbers});\n\n return (\n <div className={styles.monthGrid}>\n <div className={styles.weekHeader}>\n {hasWeekNumbers ? <div className={styles.dayName} /> : null}\n {dayNames.map(dayName => (\n <div className={styles.dayName} key={dayName} role=\"columnheader\">\n {dayName}\n </div>\n ))}\n </div>\n <div\n aria-label={plainDateFormat(month, DATE_FORMAT_MONTH_YEAR)}\n className={styles.daysGrid}\n onKeyDown={handleKeyDown}\n ref={gridRef}\n role=\"grid\"\n tabIndex={-1}>\n {weeks.map(week => {\n const weekDate =\n week.find(day => !day.isOutside)?.date ?? week[0].date;\n return (\n <div\n className={styles.weekRow}\n key={week[0].date.toString()}\n role=\"row\">\n {hasWeekNumbers ? (\n <div className={styles.weekNumber}>\n {plainDateGetWeekNumber(weekDate)}\n </div>\n ) : null}\n {week.map((day, dayIndex) => (\n <DayCell\n day={day}\n dayIndex={dayIndex}\n hasOutsideDays={hasOutsideDays}\n isDisabled={isDisabled(day.date)}\n isTabbable={\n tabbableDate != null &&\n plainDateIsEqual(tabbableDate, day.date)\n }\n key={day.date.toString()}\n mode={mode}\n onDayClick={onDayClick}\n onDayHover={onDayHover}\n previewEnd={previewEnd}\n previewStart={previewStart}\n rangeEnd={rangeEnd}\n rangeStart={rangeStart}\n selectedDate={selectedDate}\n today={today}\n />\n ))}\n </div>\n );\n })}\n </div>\n </div>\n );\n});\n\ninterface DayCellProps {\n day: CalendarDay;\n dayIndex: number;\n hasOutsideDays: boolean;\n isDisabled: boolean;\n isTabbable: boolean;\n mode: 'single' | 'range';\n onDayClick: (date: PlainDate) => void;\n onDayHover: (date: PlainDate | null) => void;\n previewEnd: PlainDate | null;\n previewStart: PlainDate | null;\n rangeEnd: PlainDate | null;\n rangeStart: PlainDate | null;\n selectedDate: PlainDate | null;\n today: PlainDate;\n}\n\nconst DayCell = memo(function DayCell({\n day,\n dayIndex,\n mode,\n selectedDate,\n rangeStart,\n rangeEnd,\n previewStart,\n previewEnd,\n today,\n hasOutsideDays,\n isDisabled,\n isTabbable,\n onDayClick,\n onDayHover,\n}: DayCellProps): React.JSX.Element {\n if (day.isOutside && !hasOutsideDays) {\n return <div className={calendarRecipe().cell} />;\n }\n\n const effectivelyDisabled = isDisabled || day.isOutside;\n const isToday = plainDateIsEqual(day.date, today);\n const isSelected =\n mode === 'single' &&\n selectedDate != null &&\n plainDateIsEqual(day.date, selectedDate);\n const isInRange =\n mode === 'range' &&\n rangeStart != null &&\n rangeEnd != null &&\n plainDateIsInRange(day.date, [rangeStart, rangeEnd]);\n const isRangeStart =\n mode === 'range' &&\n rangeStart != null &&\n plainDateIsEqual(day.date, rangeStart);\n const isRangeEnd =\n mode === 'range' &&\n rangeEnd != null &&\n plainDateIsEqual(day.date, rangeEnd);\n const isInPreview =\n previewStart != null &&\n previewEnd != null &&\n plainDateIsInRange(day.date, [previewStart, previewEnd]);\n const isPreviewStart =\n previewStart != null && plainDateIsEqual(day.date, previewStart);\n const isPreviewEnd =\n previewEnd != null && plainDateIsEqual(day.date, previewEnd);\n const isFirstColumn = dayIndex === 0;\n const isLastColumn = dayIndex === 6;\n\n const styles = calendarRecipe({\n isOutside: day.isOutside,\n isToday,\n isSelected: isSelected || isRangeStart || isRangeEnd,\n isInRange,\n isDisabled: effectivelyDisabled,\n });\n const rangeBackgroundClass = calendarRecipe({\n rangeTone: 'range',\n roundedStart: isRangeStart || isFirstColumn,\n roundedEnd: isRangeEnd || isLastColumn,\n }).rangeBackground;\n const previewBackgroundClass = calendarRecipe({\n rangeTone: 'preview',\n roundedStart: isPreviewStart || isFirstColumn,\n roundedEnd: isPreviewEnd || isLastColumn,\n }).rangeBackground;\n\n return (\n <div className={styles.cell}>\n {isInRange ? <div className={rangeBackgroundClass} /> : null}\n {isInPreview ? <div className={previewBackgroundClass} /> : null}\n <button\n aria-disabled={effectivelyDisabled || undefined}\n aria-label={plainDateFormat(day.date, DATE_FORMAT_WITH_WEEKDAY)}\n aria-selected={isSelected || isInRange || undefined}\n className={styles.day}\n data-date={day.date.toString()}\n disabled={isDisabled}\n onClick={() => {\n if (!effectivelyDisabled) {\n onDayClick(day.date);\n }\n }}\n onMouseEnter={() => {\n if (!effectivelyDisabled) {\n onDayHover(day.date);\n }\n }}\n onMouseLeave={() => onDayHover(null)}\n role=\"gridcell\"\n tabIndex={isTabbable ? 0 : -1}\n type=\"button\">\n {day.dayNumber}\n </button>\n </div>\n );\n});\n\nCalendar.displayName = 'Calendar';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../styled-system/css/sva.js"],"names":["variants"],"mappings":";;;;;AAIO,SAAS,IAAI,MAAA,EAAQ;AAC1B,EAAA,MAAM,QAAQ,MAAA,CAAO,OAAA,CAAQ,eAAe,MAAM,CAAC,EAAE,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,OAAO,CAAA,KAAM,CAAC,MAAM,GAAA,CAAI,OAAO,CAAC,CAAC,CAAA;AAClG,EAAA,MAAM,eAAA,GAAkB,MAAA,CAAO,eAAA,IAAmB,EAAC;AAEnD,EAAA,MAAM,YAAA,GAAe,MAAM,MAAA,CAAO,CAAC,KAAK,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM;AACxD,IAAA,IAAI,OAAO,SAAA,EAAW,GAAA,CAAI,IAAI,CAAA,GAAI,MAAM,MAAA,CAAO,SAAA;AAC/C,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,SAAS,MAAM,KAAA,EAAO;AACpB,IAAA,MAAM,SAAS,KAAA,CAAM,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM,CAAC,IAAA,EAAM,EAAA,CAAG,MAAM,KAAK,CAAA,EAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAA;AACxF,IAAA,OAAO,MAAA,CAAO,YAAY,MAAM,CAAA;AAAA,EAClC;AAEA,EAAA,SAAS,IAAI,KAAA,EAAO;AAClB,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM,CAAC,IAAA,EAAM,KAAA,CAAM,GAAA,CAAI,KAAK,CAAC,CAAC,CAAA;AACpE,IAAA,OAAO,MAAA,CAAO,YAAY,MAAM,CAAA;AAAA,EAClC;AAEA,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,QAAA,IAAY,EAAC;AACrC,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA;AAExC,EAAA,SAAS,kBAAkB,KAAA,EAAO;AAChC,IAAA,OAAO,UAAA,CAAW,OAAO,WAAW,CAAA;AAAA,EACtC;AACA,EAAA,MAAM,eAAA,GAAkB,CAACA,SAAAA,MAAc,EAAE,GAAG,eAAA,EAAiB,GAAG,OAAA,CAAQA,SAAQ,CAAA,EAAE,CAAA;AAElF,EAAA,MAAM,aAAa,MAAA,CAAO,WAAA;AAAA,IACxB,OAAO,OAAA,CAAQ,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM,CAAC,GAAA,EAAK,MAAA,CAAO,IAAA,CAAK,KAAK,CAAC,CAAC;AAAA,GAC1E;AAEA,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,EAAG;AAAA,IAChC,OAAA,EAAS,KAAA;AAAA,IACT,GAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACD,CAAA;AACH","file":"chunk-EHCAF6D3.js","sourcesContent":["import { compact, getSlotRecipes, memo, splitProps } from '../helpers.js';\nimport { cva } from './cva.js';\nimport { cx } from './cx.js';\n\nexport function sva(config) {\n const slots = Object.entries(getSlotRecipes(config)).map(([slot, slotCva]) => [slot, cva(slotCva)])\n const defaultVariants = config.defaultVariants ?? {}\n\n const classNameMap = slots.reduce((acc, [slot, cvaFn]) => {\n if (config.className) acc[slot] = cvaFn.config.className\n return acc\n }, {})\n\n function svaFn(props) {\n const result = slots.map(([slot, cvaFn]) => [slot, cx(cvaFn(props), classNameMap[slot])])\n return Object.fromEntries(result)\n }\n\n function raw(props) {\n const result = slots.map(([slot, cvaFn]) => [slot, cvaFn.raw(props)])\n return Object.fromEntries(result)\n }\n\n const variants = config.variants ?? {};\n const variantKeys = Object.keys(variants);\n\n function splitVariantProps(props) {\n return splitProps(props, variantKeys);\n }\n const getVariantProps = (variants) => ({ ...defaultVariants, ...compact(variants) })\n\n const variantMap = Object.fromEntries(\n Object.entries(variants).map(([key, value]) => [key, Object.keys(value)])\n );\n\n return Object.assign(memo(svaFn), {\n __cva__: false,\n raw,\n config,\n variantMap,\n variantKeys,\n classNameMap,\n splitVariantProps,\n getVariantProps,\n })\n}"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/Tooltip/useTooltip.tsx","../src/components/Tooltip/Tooltip.tsx"],"names":["jsx"],"mappings":"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","file":"chunk-EMHLPPQZ.js","sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type RefCallback,\n} from 'react';\nimport {css, cx} from 'styled-system/css';\nimport {\n useHoverLayer,\n type HoverLayerFocusTrigger,\n} from '../../internal/useHoverLayer';\nimport type {\n ContextRenderProps,\n LayerAlignment,\n LayerPlacement,\n} from '../../internal/useLayer';\n\nexport type TooltipFocusTrigger = HoverLayerFocusTrigger;\n\nexport interface UseTooltipOptions {\n alignment?: LayerAlignment;\n delay?: number;\n focusTrigger?: TooltipFocusTrigger;\n hideDelay?: number;\n isEnabled?: boolean;\n onHide?: () => void;\n onShow?: () => void;\n placement?: LayerPlacement;\n}\n\nexport interface TooltipRenderProps extends ContextRenderProps {\n contentStyle?: CSSProperties;\n}\n\nexport interface UseTooltipReturn {\n /**\n * ID of the anchor element, used for CSS anchor positioning.\n */\n anchorId: string;\n /**\n * ID of the tooltip element. Pass to `aria-describedby` on the trigger.\n */\n describedBy: string;\n /**\n * Attaches hover/focus/keyboard listeners only.\n * Use when another element handles positioning (e.g., a wrapper provides the anchor).\n */\n interactionRef: RefCallback<HTMLElement>;\n /**\n * Attaches CSS anchor positioning only.\n * Use when another element handles interaction listeners.\n */\n positionRef: RefCallback<HTMLElement>;\n /**\n * Combined ref that attaches both positioning and interaction.\n * Use this for the common case where one element is both the anchor and trigger.\n * Do not combine with `interactionRef` or `positionRef` — use one or the other.\n */\n ref: RefCallback<HTMLElement>;\n /**\n * Renders the tooltip content into the layer.\n */\n renderTooltip: (children: ReactNode, props?: TooltipRenderProps) => ReactNode;\n}\n\nconst styles = {\n tooltipContainer: css({\n bg: 'fg',\n color: 'bg',\n borderRadius: 'md',\n fontFamily: 'body',\n fontSize: 'sm',\n lineHeight: 'normal',\n boxShadow: 'md',\n '--silver-text-color': 'currentColor',\n '--silver-text-color-muted':\n 'color-mix(in srgb, currentColor 70%, transparent)',\n }),\n tooltipContent: css({\n px: '2',\n py: '1',\n maxW: 'xs',\n wordBreak: 'break-word',\n }),\n marginByPlacement: {\n above: css({mb: '1'}),\n below: css({mt: '1'}),\n start: css({mr: '1'}),\n end: css({ml: '1'}),\n },\n} as const;\n\nexport function useTooltip(options: UseTooltipOptions = {}): UseTooltipReturn {\n const {\n placement = 'above',\n alignment = 'center',\n delay = 200,\n hideDelay = 0,\n focusTrigger = 'auto',\n isEnabled = true,\n onShow,\n onHide,\n } = options;\n\n const hoverLayer = useHoverLayer({\n delay,\n focusTrigger,\n hideDelay,\n isEnabled,\n onFocusIn: event => {\n const target = event.target as HTMLElement;\n return target.matches(':focus-visible');\n },\n onHide,\n onShow,\n });\n\n const {interactionRef, layer, ref} = hoverLayer;\n\n useEffect(() => {\n if (!layer.isOpen) {\n return;\n }\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n layer.hide();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => document.removeEventListener('keydown', handleEscape);\n }, [layer, layer.isOpen]);\n\n const renderTooltip = useCallback(\n (children: ReactNode, props?: TooltipRenderProps): ReactNode => {\n const renderPlacement = props?.placement ?? placement;\n return layer.render(\n <div className={styles.tooltipContent} style={props?.contentStyle}>\n {children}\n </div>,\n {\n placement: renderPlacement,\n alignment: props?.alignment ?? alignment,\n className: cx(\n styles.tooltipContainer,\n styles.marginByPlacement[renderPlacement],\n props?.className,\n ),\n role: 'tooltip',\n style: props?.style,\n },\n );\n },\n [alignment, layer, placement],\n );\n\n return useMemo(\n () => ({\n ref,\n positionRef: layer.ref,\n interactionRef,\n anchorId: layer.anchorId,\n describedBy: layer.id,\n renderTooltip,\n }),\n [ref, layer.ref, interactionRef, layer.anchorId, layer.id, renderTooltip],\n );\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {HoverLayerTrigger} from '../../internal/HoverLayerTrigger';\nimport type {LayerAlignment, LayerPlacement} from '../../internal/useLayer';\nimport {useTooltip, type TooltipFocusTrigger} from './useTooltip';\n\nexport type {TooltipFocusTrigger} from './useTooltip';\n\nexport interface TooltipProps {\n /**\n * Cross-axis alignment of the tooltip relative to the anchor.\n * @default 'center'\n */\n alignment?: LayerAlignment;\n /**\n * Element(s) that the tooltip is anchored to.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the wrapper.\n */\n className?: string;\n /**\n * Content rendered inside the tooltip popup.\n */\n content: ReactNode;\n /**\n * Inline styles applied to the tooltip content area.\n */\n contentStyle?: CSSProperties;\n /**\n * Test ID applied to the wrapper.\n */\n 'data-testid'?: string;\n /**\n * Delay in milliseconds before the tooltip appears.\n * @default 200\n */\n delay?: number;\n /**\n * How focus interactions trigger the tooltip.\n * @default 'auto'\n */\n focusTrigger?: TooltipFocusTrigger;\n /**\n * Whether to show a dashed underline on text-only children.\n * @default 'auto'\n */\n hasHoverIndication?: 'auto' | boolean;\n /**\n * Delay in milliseconds before the tooltip hides after leaving.\n * @default 0\n */\n hideDelay?: number;\n /**\n * Whether the tooltip can be shown.\n * @default true\n */\n isEnabled?: boolean;\n /**\n * Preferred placement of the tooltip relative to the anchor.\n * @default 'above'\n */\n placement?: LayerPlacement;\n /**\n * Ref forwarded to the wrapper element.\n */\n ref?: Ref<HTMLDivElement | HTMLSpanElement>;\n /**\n * Inline styles applied to the wrapper.\n */\n style?: CSSProperties;\n}\n\n/**\n * Displays contextual information in a popup anchored to a trigger element.\n *\n * For attaching a tooltip to an external ref (without wrapping children),\n * use the `useTooltip` hook directly.\n */\nexport function Tooltip({\n children,\n content,\n contentStyle,\n placement = 'above',\n alignment = 'center',\n delay = 200,\n hideDelay = 0,\n focusTrigger = 'auto',\n isEnabled = true,\n hasHoverIndication = 'auto',\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TooltipProps): React.JSX.Element {\n const tooltip = useTooltip({\n placement,\n alignment,\n delay,\n hideDelay,\n focusTrigger,\n isEnabled,\n });\n\n return (\n <HoverLayerTrigger\n className={className}\n data-testid={dataTestId}\n describedBy={tooltip.describedBy}\n hasHoverIndication={hasHoverIndication}\n layer={tooltip.renderTooltip(content, {contentStyle})}\n nonTextWrapperElement=\"div\"\n style={style}\n triggerRef={tooltip.ref}\n wrapperRef={ref}>\n {children}\n </HoverLayerTrigger>\n );\n}\n\nTooltip.displayName = 'Tooltip';\n"]}
@@ -1,15 +0,0 @@
1
- // styled-system/css/cx.js
2
- function cx() {
3
- let str = "", i = 0, arg;
4
- for (; i < arguments.length; ) {
5
- if ((arg = arguments[i++]) && typeof arg === "string") {
6
- str && (str += " ");
7
- str += arg;
8
- }
9
- }
10
- return str;
11
- }
12
-
13
- export { cx };
14
- //# sourceMappingURL=chunk-GUKZNXTB.js.map
15
- //# sourceMappingURL=chunk-GUKZNXTB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../styled-system/css/cx.js"],"names":[],"mappings":";AAAA,SAAS,EAAA,GAAK;AACZ,EAAA,IAAI,GAAA,GAAM,EAAA,EACR,CAAA,GAAI,CAAA,EACJ,GAAA;AAEF,EAAA,OAAO,CAAA,GAAI,UAAU,MAAA,IAAU;AAC7B,IAAA,IAAA,CAAK,MAAM,SAAA,CAAU,CAAA,EAAG,CAAA,KAAM,OAAO,QAAQ,QAAA,EAAU;AACrD,MAAA,GAAA,KAAQ,GAAA,IAAO,GAAA,CAAA;AACf,MAAA,GAAA,IAAO,GAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT","file":"chunk-GUKZNXTB.js","sourcesContent":["function cx() {\n let str = '',\n i = 0,\n arg\n\n for (; i < arguments.length; ) {\n if ((arg = arguments[i++]) && typeof arg === 'string') {\n str && (str += ' ')\n str += arg\n }\n }\n return str\n}\n\nexport { cx }"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/HoverCard/useHoverCard.tsx","../src/components/HoverCard/HoverCard.tsx"],"names":["css","useRef","useHoverLayer","useCallback","jsx","cx","useMemo","HoverLayerTrigger"],"mappings":";;;;;;;;AA8CA,IAAM,MAAA,GAAS;AAAA,EACb,WAAWA,qBAAA,CAAI;AAAA,IACb,EAAA,EAAI,IAAA;AAAA,IACJ,YAAA,EAAc,IAAA;AAAA,IACd,SAAA,EAAW,IAAA;AAAA,IACX,WAAA,EAAa,SAAA;AAAA,IACb,WAAA,EAAa,OAAA;AAAA,IACb,WAAA,EAAa;AAAA,GACd,CAAA;AAAA,EACD,SAASA,qBAAA,CAAI;AAAA,IACX,CAAA,EAAG;AAAA,GACJ,CAAA;AAAA,EACD,MAAA,EAAQ;AAAA,IACN,KAAA,EAAOA,qBAAA,CAAI,EAAC,EAAA,EAAI,KAAI,CAAA;AAAA,IACpB,KAAA,EAAOA,qBAAA,CAAI,EAAC,EAAA,EAAI,KAAI,CAAA;AAAA,IACpB,KAAA,EAAOA,qBAAA,CAAI,EAAC,EAAA,EAAI,KAAI,CAAA;AAAA,IACpB,GAAA,EAAKA,qBAAA,CAAI,EAAC,EAAA,EAAI,KAAI;AAAA;AAEtB,CAAA;AAEO,SAAS,YAAA,CAAa;AAAA,EAC3B,SAAA,GAAY,OAAA;AAAA,EACZ,SAAA,GAAY,QAAA;AAAA,EACZ,KAAA,GAAQ,GAAA;AAAA,EACR,SAAA,GAAY,GAAA;AAAA,EACZ,YAAA,GAAe,MAAA;AAAA,EACf,SAAA,GAAY,IAAA;AAAA,EACZ,MAAA;AAAA,EACA;AACF,CAAA,GAAyB,EAAC,EAAuB;AAC/C,EAAA,MAAM,oBAAA,GAAuBC,aAAO,KAAK,CAAA;AACzC,EAAA,MAAM,qBAAA,GAAwBA,aAAO,KAAK,CAAA;AAE1C,EAAA,MAAM,aAAaC,+BAAA,CAAc;AAAA,IAC/B,KAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAW,MAAM;AACf,MAAA,IAAI,sBAAsB,OAAA,EAAS;AACjC,QAAA,qBAAA,CAAsB,OAAA,GAAU,KAAA;AAChC,QAAA,OAAO,KAAA;AAAA,MACT;AAEA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,YAAY,CAAA,KAAA,KAAS;AACnB,MAAA,MAAM,gBAAgB,KAAA,CAAM,aAAA;AAC5B,MAAA,MAAM,cAAA,GAAiB,QAAA,CAAS,cAAA,CAAe,UAAA,CAAW,WAAW,CAAA;AAErE,MAAA,OAAO,CAAC,cAAA,EAAgB,QAAA,CAAS,aAAa,CAAA;AAAA,IAChD,CAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,iBAAiB,CAAA,KAAA,KAAS;AACxB,MAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,MAAA,UAAA,CAAW,aAAA,EAAc;AACzB,MAAA,UAAA,CAAW,IAAA,EAAK;AAAA,IAClB,CAAA;AAAA,IACA,UAAA,EAAY,MAAM,CAAC,oBAAA,CAAqB;AAAA,GACzC,CAAA;AAED,EAAA,MAAM,EAAC,aAAA,EAAe,cAAA,EAAgB,OAAO,GAAA,EAAK,YAAA,EAAc,YAAU,GACxE,UAAA;AAEF,EAAA,MAAM,iBAAA,GAAoBC,iBAAA;AAAA,IACxB,CAAC,KAAA,KAAwC;AACvC,MAAA,MAAM,gBAAgB,KAAA,CAAM,aAAA;AAC5B,MAAA,IACE,KAAA,CAAM,cAAc,QAAA,CAAS,aAAa,KAC1C,UAAA,CAAW,OAAA,EAAS,QAAA,CAAS,aAAa,CAAA,EAC1C;AACA,QAAA;AAAA,MACF;AAEA,MAAA,YAAA,EAAa;AAAA,IACf,CAAA;AAAA,IACA,CAAC,cAAc,UAAU;AAAA,GAC3B;AAEA,EAAA,MAAM,eAAA,GAAkBA,iBAAA;AAAA,IACtB,CAAC,UAAqB,KAAA,KAA0C;AAC9D,MAAA,MAAM,eAAA,GAAkB,OAAO,SAAA,IAAa,SAAA;AAE5C,MAAA,OAAO,KAAA,CAAM,MAAA;AAAA;AAAA,wBAEXC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,WAAW,MAAA,CAAO,OAAA;AAAA,YAClB,MAAA,EAAQ,iBAAA;AAAA,YACR,WAAW,CAAA,KAAA,KAAS;AAClB,cAAA,IAAI,KAAA,CAAM,QAAQ,QAAA,EAAU;AAC1B,gBAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,gBAAA,qBAAA,CAAsB,OAAA,GAAU,IAAA;AAChC,gBAAA,aAAA,EAAc;AACd,gBAAA,UAAA,CAAW,IAAA,EAAK;AAChB,gBAAA,UAAA,CAAW,SAAS,KAAA,EAAM;AAAA,cAC5B;AAAA,YACF,CAAA;AAAA,YACA,cAAc,MAAM;AAClB,cAAA,oBAAA,CAAqB,OAAA,GAAU,IAAA;AAC/B,cAAA,aAAA,EAAc;AAAA,YAChB,CAAA;AAAA,YACA,cAAc,MAAM;AAClB,cAAA,oBAAA,CAAqB,OAAA,GAAU,KAAA;AAC/B,cAAA,YAAA,EAAa;AAAA,YACf,CAAA;AAAA,YACC;AAAA;AAAA,SACH;AAAA,QACA;AAAA,UACE,SAAA,EAAW,eAAA;AAAA,UACX,SAAA,EAAW,OAAO,SAAA,IAAa,SAAA;AAAA,UAC/B,SAAA,EAAWC,oBAAA;AAAA,YACT,MAAA,CAAO,SAAA;AAAA,YACP,MAAA,CAAO,OAAO,eAAe,CAAA;AAAA,YAC7B,KAAA,EAAO;AAAA,WACT;AAAA,UACA,MAAM,KAAA,EAAO,IAAA;AAAA,UACb,OAAO,KAAA,EAAO;AAAA;AAChB,OACF;AAAA,IACF,CAAA;AAAA,IACA;AAAA,MACE,SAAA;AAAA,MACA,aAAA;AAAA,MACA,iBAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,OAAOC,aAAA;AAAA,IACL,OAAO;AAAA,MACL,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,aAAa,KAAA,CAAM,EAAA;AAAA,MACnB,MAAM,UAAA,CAAW,IAAA;AAAA,MACjB,cAAA;AAAA,MACA,aAAa,KAAA,CAAM,GAAA;AAAA,MACnB,GAAA;AAAA,MACA,eAAA;AAAA,MACA,MAAM,UAAA,CAAW;AAAA,KACnB,CAAA;AAAA,IACA;AAAA,MACE,UAAA,CAAW,IAAA;AAAA,MACX,UAAA,CAAW,IAAA;AAAA,MACX,cAAA;AAAA,MACA,KAAA,CAAM,QAAA;AAAA,MACN,KAAA,CAAM,EAAA;AAAA,MACN,KAAA,CAAM,GAAA;AAAA,MACN,GAAA;AAAA,MACA;AAAA;AACF,GACF;AACF;ACjIO,SAAS,SAAA,CAAU;AAAA,EACxB,QAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA,GAAY,OAAA;AAAA,EACZ,SAAA,GAAY,QAAA;AAAA,EACZ,KAAA,GAAQ,GAAA;AAAA,EACR,SAAA,GAAY,GAAA;AAAA,EACZ,YAAA,GAAe,MAAA;AAAA,EACf,SAAA,GAAY,IAAA;AAAA,EACZ,kBAAA,GAAqB,MAAA;AAAA,EACrB,SAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA,aAAA,EAAe;AACjB,CAAA,EAAsC;AACpC,EAAA,MAAM,YAAY,YAAA,CAAa;AAAA,IAC7B,SAAA;AAAA,IACA,KAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,uBACEF,cAAAA;AAAA,IAACG,mCAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,aAAa,SAAA,CAAU,WAAA;AAAA,MACvB,kBAAA;AAAA,MACA,KAAA,EAAO,SAAA,CAAU,eAAA,CAAgB,OAAO,CAAA;AAAA,MACxC,gCAAA,EAAkC,KAAA;AAAA,MAClC,KAAA;AAAA,MACA,YAAY,SAAA,CAAU,GAAA;AAAA,MACtB,UAAA,EAAY,GAAA;AAAA,MACX;AAAA;AAAA,GACH;AAEJ;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA","file":"chunk-HM7IEGQ2.cjs","sourcesContent":["import {\n useCallback,\n useMemo,\n useRef,\n type FocusEvent as ReactFocusEvent,\n type ReactNode,\n type RefCallback,\n} from 'react';\nimport {css, cx} from 'styled-system/css';\nimport {\n useHoverLayer,\n type HoverLayerFocusTrigger,\n} from '../../internal/useHoverLayer';\nimport type {\n ContextRenderProps,\n LayerAlignment,\n LayerPlacement,\n} from '../../internal/useLayer';\n\nexport type HoverCardFocusTrigger = HoverLayerFocusTrigger;\n\nexport interface UseHoverCardOptions {\n alignment?: LayerAlignment;\n delay?: number;\n focusTrigger?: HoverCardFocusTrigger;\n hideDelay?: number;\n isEnabled?: boolean;\n onHide?: () => void;\n onShow?: () => void;\n placement?: LayerPlacement;\n}\n\nexport interface UseHoverCardReturn {\n anchorId: string;\n describedBy: string;\n hide: () => void;\n interactionRef: RefCallback<HTMLElement>;\n positionRef: RefCallback<HTMLElement>;\n ref: RefCallback<HTMLElement>;\n renderHoverCard: (\n children: ReactNode,\n props?: ContextRenderProps,\n ) => ReactNode;\n show: () => void;\n}\n\nconst styles = {\n container: css({\n bg: 'bg',\n borderRadius: 'md',\n boxShadow: 'lg',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border',\n }),\n content: css({\n p: '3',\n }),\n margin: {\n above: css({mb: '1'}),\n below: css({mt: '1'}),\n start: css({mr: '1'}),\n end: css({ml: '1'}),\n },\n} as const;\n\nexport function useHoverCard({\n placement = 'above',\n alignment = 'center',\n delay = 300,\n hideDelay = 200,\n focusTrigger = 'auto',\n isEnabled = true,\n onShow,\n onHide,\n}: UseHoverCardOptions = {}): UseHoverCardReturn {\n const isHoveringContentRef = useRef(false);\n const isEscapeDismissingRef = useRef(false);\n\n const hoverLayer = useHoverLayer({\n delay,\n focusTrigger,\n hideDelay,\n isEnabled,\n onFocusIn: () => {\n if (isEscapeDismissingRef.current) {\n isEscapeDismissingRef.current = false;\n return false;\n }\n\n return true;\n },\n onFocusOut: event => {\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n const popoverElement = document.getElementById(hoverLayer.describedBy);\n\n return !popoverElement?.contains(relatedTarget);\n },\n onHide,\n onShow,\n onTriggerEscape: event => {\n event.stopPropagation();\n hoverLayer.clearTimeouts();\n hoverLayer.hide();\n },\n shouldHide: () => !isHoveringContentRef.current,\n });\n\n const {clearTimeouts, interactionRef, layer, ref, scheduleHide, triggerRef} =\n hoverLayer;\n\n const handleContentBlur = useCallback(\n (event: ReactFocusEvent<HTMLElement>) => {\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n if (\n event.currentTarget.contains(relatedTarget) ||\n triggerRef.current?.contains(relatedTarget)\n ) {\n return;\n }\n\n scheduleHide();\n },\n [scheduleHide, triggerRef],\n );\n\n const renderHoverCard = useCallback(\n (children: ReactNode, props?: ContextRenderProps): ReactNode => {\n const renderPlacement = props?.placement ?? placement;\n\n return layer.render(\n // eslint-disable-next-line jsx-a11y-x/no-static-element-interactions\n <div\n className={styles.content}\n onBlur={handleContentBlur}\n onKeyDown={event => {\n if (event.key === 'Escape') {\n event.stopPropagation();\n isEscapeDismissingRef.current = true;\n clearTimeouts();\n hoverLayer.hide();\n triggerRef.current?.focus();\n }\n }}\n onMouseEnter={() => {\n isHoveringContentRef.current = true;\n clearTimeouts();\n }}\n onMouseLeave={() => {\n isHoveringContentRef.current = false;\n scheduleHide();\n }}>\n {children}\n </div>,\n {\n placement: renderPlacement,\n alignment: props?.alignment ?? alignment,\n className: cx(\n styles.container,\n styles.margin[renderPlacement],\n props?.className,\n ),\n role: props?.role,\n style: props?.style,\n },\n );\n },\n [\n alignment,\n clearTimeouts,\n handleContentBlur,\n hoverLayer,\n layer,\n placement,\n scheduleHide,\n triggerRef,\n ],\n );\n\n return useMemo(\n () => ({\n anchorId: layer.anchorId,\n describedBy: layer.id,\n hide: hoverLayer.hide,\n interactionRef,\n positionRef: layer.ref,\n ref,\n renderHoverCard,\n show: hoverLayer.show,\n }),\n [\n hoverLayer.hide,\n hoverLayer.show,\n interactionRef,\n layer.anchorId,\n layer.id,\n layer.ref,\n ref,\n renderHoverCard,\n ],\n );\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {HoverLayerTrigger} from '../../internal/HoverLayerTrigger';\nimport type {LayerAlignment, LayerPlacement} from '../../internal/useLayer';\nimport {useHoverCard, type HoverCardFocusTrigger} from './useHoverCard';\n\nexport type {HoverCardFocusTrigger} from './useHoverCard';\n\nexport interface HoverCardProps {\n /**\n * Alignment along the placement axis.\n * @default 'center'\n */\n alignment?: LayerAlignment;\n /**\n * Trigger content.\n */\n children: ReactNode;\n /**\n * Additional class names applied to the trigger wrapper for text triggers.\n */\n className?: string;\n /**\n * Content shown in the floating hover card.\n */\n content: ReactNode;\n /**\n * Test ID applied to the trigger wrapper for text triggers.\n */\n 'data-testid'?: string;\n /**\n * Delay before opening on hover, in milliseconds.\n * @default 300\n */\n delay?: number;\n /**\n * Controls focus-trigger behavior.\n * @default 'auto'\n */\n focusTrigger?: HoverCardFocusTrigger;\n /**\n * Whether to visually underline text triggers.\n * @default 'auto'\n */\n hasHoverIndication?: 'auto' | boolean;\n /**\n * Delay before closing after hover/focus leaves, in milliseconds.\n * @default 200\n */\n hideDelay?: number;\n /**\n * Whether hover/focus interactions are enabled.\n * @default true\n */\n isEnabled?: boolean;\n /**\n * Position relative to the trigger.\n * @default 'above'\n */\n placement?: LayerPlacement;\n /**\n * Ref forwarded to the text trigger wrapper.\n */\n ref?: Ref<HTMLSpanElement>;\n /**\n * Inline styles applied to the text trigger wrapper.\n */\n style?: CSSProperties;\n}\n\n/**\n * A floating card that appears on hover or focus of a trigger element.\n */\nexport function HoverCard({\n children,\n content,\n placement = 'above',\n alignment = 'center',\n delay = 300,\n hideDelay = 200,\n focusTrigger = 'auto',\n isEnabled = true,\n hasHoverIndication = 'auto',\n className,\n style,\n ref,\n 'data-testid': dataTestId,\n}: HoverCardProps): React.JSX.Element {\n const hoverCard = useHoverCard({\n alignment,\n delay,\n focusTrigger,\n hideDelay,\n isEnabled,\n placement,\n });\n\n return (\n <HoverLayerTrigger\n className={className}\n data-testid={dataTestId}\n describedBy={hoverCard.describedBy}\n hasHoverIndication={hasHoverIndication}\n layer={hoverCard.renderHoverCard(content)}\n shouldForwardNonTextWrapperProps={false}\n style={style}\n triggerRef={hoverCard.ref}\n wrapperRef={ref}>\n {children}\n </HoverLayerTrigger>\n );\n}\n\nHoverCard.displayName = 'HoverCard';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/SearchFilterInput/SearchFilterInputValueEditor.tsx","../src/components/SearchFilterInput/SearchFilterInputEditPopover.tsx","../src/components/SearchFilterInput/formatFilterValue.ts","../src/components/SearchFilterInput/internalConfig.ts","../src/components/SearchFilterInput/useSearchFilterInputSource.ts","../src/components/SearchFilterInput/SearchFilterInput.tsx","../src/components/SearchFilterInput/SearchFilterInputFilterEditor.tsx","../src/components/SearchFilterInput/SearchFilterInputTag.tsx","../src/components/SearchFilterInput/useSearchFilterInputConfig.ts"],"names":["jsx","AutocompleteInput","TextInput","useMemo","TagsInput","NumberInput","TimeInput","Temporal","DateInput","plainDateToUnixSeconds","plainDateFromUnixSeconds","Select","useCallback","jsxs","Fragment","createStaticSource","items","getBrowserTimezoneID","css","Button","X","useState","VStack","useRef","useEffect","HStack","styles","useImperativeHandle","Tag","AutocompleteInputItem","Search","Text","Popover","nowEpochMilliseconds"],"mappings":"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","file":"chunk-LX64ENLC.cjs","sourcesContent":["/* eslint-disable silver-ui/require-component-props */\n\nimport {Temporal} from '@js-temporal/polyfill';\nimport {useCallback, useMemo} from 'react';\nimport {\n plainDateFromUnixSeconds,\n plainDateToUnixSeconds,\n type PlainDate,\n} from '../../internal/plainDate';\nimport {getBrowserTimezoneID} from '../../internal/time';\nimport {\n AutocompleteInput,\n createStaticSource,\n type SearchableItem,\n type SearchSource,\n} from '../AutocompleteInput';\nimport {DateInput} from '../DateInput';\nimport {NumberInput} from '../NumberInput';\nimport {Select} from '../Select';\nimport {TagsInput} from '../TagsInput';\nimport {TextInput} from '../TextInput';\nimport {TimeInput} from '../TimeInput';\nimport type {InternalSearchFilterInputConfig} from './internalConfig';\nimport type {\n EnumItem,\n FilterValue,\n OperatorValue,\n SearchFilterInputEntity,\n} from './types';\n\nexport interface SearchFilterInputValueEditorProps {\n config: InternalSearchFilterInputConfig;\n filterValue: FilterValue | undefined;\n isDisabled?: boolean;\n onChange: (value: FilterValue, shouldSave?: boolean) => void;\n onEnter?: () => void;\n operatorValue: OperatorValue;\n timezoneID?: string;\n}\n\nfunction enumItemsToSearchableItems(\n values: ReadonlyArray<EnumItem>,\n): SearchableItem[] {\n return values.map(item => ({id: item.value, label: item.label}));\n}\n\nfunction emptySource(): SearchSource<SearchableItem> {\n return {bootstrap: () => [], search: () => []};\n}\n\nfunction StringEditor({\n operatorValue,\n filterValue,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue, shouldSave?: boolean) => void;\n operatorValue: OperatorValue & {type: 'string'};\n}): React.JSX.Element {\n const currentValue = filterValue?.type === 'string' ? filterValue.value : '';\n\n if (operatorValue.searchSource != null) {\n const selectedItem: SearchableItem | null =\n currentValue === '' ? null : {id: currentValue, label: currentValue};\n return (\n <AutocompleteInput\n debounceMs={150}\n isLabelHidden\n label=\"Value\"\n onChange={item => {\n onChange({type: 'string', value: item?.label ?? ''}, item != null);\n }}\n placeholder=\"Search...\"\n searchSource={operatorValue.searchSource}\n value={selectedItem}\n />\n );\n }\n\n return (\n <TextInput\n isLabelHidden\n label=\"Value\"\n onChange={value => onChange({type: 'string', value})}\n placeholder=\"Enter value...\"\n value={currentValue}\n />\n );\n}\n\nfunction StringListEditor({\n operatorValue,\n filterValue,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue) => void;\n operatorValue: OperatorValue & {type: 'string_list'};\n}): React.JSX.Element {\n const currentValue = useMemo<SearchableItem[]>(() => {\n if (filterValue?.type !== 'string_list') {\n return [];\n }\n return filterValue.value.map(value => ({id: value, label: value}));\n }, [filterValue]);\n const source = operatorValue.searchSource ?? emptySource();\n const hasCreate =\n operatorValue.isArbitraryStringAllowed === true ||\n operatorValue.searchSource == null;\n\n return (\n <TagsInput\n debounceMs={operatorValue.searchSource == null ? 0 : 150}\n hasCreate={hasCreate}\n isLabelHidden\n label=\"Values\"\n onChange={items => {\n onChange({\n type: 'string_list',\n value: items.map(item => item.label),\n });\n }}\n placeholder=\"Add values...\"\n searchSource={source}\n value={currentValue}\n />\n );\n}\n\nfunction IntegerEditor({\n operatorValue,\n filterValue,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue) => void;\n operatorValue: OperatorValue & {type: 'integer'};\n}): React.JSX.Element {\n return (\n <NumberInput\n isIntegerOnly\n isLabelHidden\n label=\"Value\"\n max={operatorValue.maxValue}\n min={operatorValue.minValue}\n onChange={value => onChange({type: 'integer', value})}\n placeholder=\"Enter number...\"\n units={operatorValue.units}\n value={filterValue?.type === 'integer' ? filterValue.value : null}\n />\n );\n}\n\nfunction FloatEditor({\n operatorValue,\n filterValue,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue) => void;\n operatorValue: OperatorValue & {type: 'float'};\n}): React.JSX.Element {\n return (\n <NumberInput\n isLabelHidden\n label=\"Value\"\n max={operatorValue.maxValue}\n min={operatorValue.minValue}\n onChange={value => onChange({type: 'float', value})}\n placeholder=\"Enter number...\"\n units={operatorValue.units}\n value={filterValue?.type === 'float' ? filterValue.value : null}\n />\n );\n}\n\nfunction TimeEditor({\n operatorValue,\n filterValue,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue) => void;\n operatorValue: OperatorValue & {type: 'time'};\n}): React.JSX.Element {\n return (\n <TimeInput\n isLabelHidden\n label=\"Time\"\n max={\n typeof operatorValue.maxValue === 'string'\n ? Temporal.PlainTime.from(operatorValue.maxValue)\n : undefined\n }\n min={\n typeof operatorValue.minValue === 'string'\n ? Temporal.PlainTime.from(operatorValue.minValue)\n : undefined\n }\n onChange={value => {\n if (value != null) {\n onChange({type: 'time', value: value.toString()});\n }\n }}\n value={\n filterValue?.type === 'time'\n ? Temporal.PlainTime.from(filterValue.value)\n : undefined\n }\n />\n );\n}\n\nfunction DateAbsoluteEditor({\n filterValue,\n onChange,\n timezoneID,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue) => void;\n timezoneID: string;\n}): React.JSX.Element {\n return (\n <DateInput\n isLabelHidden\n label=\"Date\"\n onChange={value => {\n if (value != null) {\n onChange({\n type: 'date_absolute',\n unixSeconds: plainDateToUnixSeconds(value, timezoneID),\n });\n }\n }}\n value={\n filterValue?.type === 'date_absolute'\n ? plainDateFromUnixSeconds(filterValue.unixSeconds, timezoneID)\n : undefined\n }\n />\n );\n}\n\nfunction DateRelativeEditor({\n operatorValue,\n filterValue,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue, shouldSave?: boolean) => void;\n operatorValue: OperatorValue & {type: 'date_relative'};\n}): React.JSX.Element {\n const options = useMemo(() => {\n const result: {label: string; value: string}[] = [];\n const units = [\n {plural: 'days', unit: 'day'},\n {plural: 'weeks', unit: 'week'},\n {plural: 'months', unit: 'month'},\n ];\n for (const {plural, unit} of units) {\n const amounts =\n unit === 'day'\n ? [1, 3, 7, 14, 30]\n : unit === 'week'\n ? [1, 2, 4]\n : [1, 3, 6, 12];\n for (const amount of amounts) {\n if (operatorValue.isPastAllowed !== false) {\n result.push({\n label: `${amount} ${amount === 1 ? unit : plural} ago`,\n value: `${amount}${unit[0]}_ago`,\n });\n }\n if (operatorValue.isFutureAllowed !== false) {\n result.push({\n label: `${amount} ${amount === 1 ? unit : plural} from now`,\n value: `${amount}${unit[0]}_from_now`,\n });\n }\n }\n }\n return result;\n }, [operatorValue.isFutureAllowed, operatorValue.isPastAllowed]);\n\n return (\n <Select\n isLabelHidden\n label=\"Relative date\"\n onChange={value => {\n if (value != null) {\n onChange({type: 'date_relative', value}, true);\n }\n }}\n options={options}\n value={filterValue?.type === 'date_relative' ? filterValue.value : null}\n />\n );\n}\n\nfunction DateRangeEditor({\n filterValue,\n onChange,\n timezoneID,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue) => void;\n timezoneID: string;\n}): React.JSX.Element {\n const startValue =\n filterValue?.type === 'date_range' &&\n filterValue.value.start.type === 'ABSOLUTE'\n ? plainDateFromUnixSeconds(\n filterValue.value.start.unixSeconds,\n timezoneID,\n )\n : undefined;\n const endValue =\n filterValue?.type === 'date_range' &&\n filterValue.value.end.type === 'ABSOLUTE'\n ? plainDateFromUnixSeconds(filterValue.value.end.unixSeconds, timezoneID)\n : undefined;\n const handleStartChange = useCallback(\n (value: PlainDate | undefined) => {\n const existingEnd =\n filterValue?.type === 'date_range'\n ? filterValue.value.end\n : {type: 'NOW' as const};\n onChange({\n type: 'date_range',\n value: {\n end: existingEnd,\n start: {\n type: 'ABSOLUTE',\n unixSeconds:\n value == null ? 0 : plainDateToUnixSeconds(value, timezoneID),\n },\n },\n });\n },\n [filterValue, onChange, timezoneID],\n );\n const handleEndChange = useCallback(\n (value: PlainDate | undefined) => {\n const existingStart =\n filterValue?.type === 'date_range'\n ? filterValue.value.start\n : {type: 'NOW' as const};\n onChange({\n type: 'date_range',\n value: {\n end: {\n type: 'ABSOLUTE',\n unixSeconds:\n value == null ? 0 : plainDateToUnixSeconds(value, timezoneID),\n },\n start: existingStart,\n },\n });\n },\n [filterValue, onChange, timezoneID],\n );\n return (\n <>\n <DateInput\n isLabelHidden\n label=\"Start date\"\n onChange={handleStartChange}\n value={startValue}\n />\n <DateInput\n isLabelHidden\n label=\"End date\"\n onChange={handleEndChange}\n value={endValue}\n />\n </>\n );\n}\n\nfunction EnumEditor({\n operatorValue,\n filterValue,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue, shouldSave?: boolean) => void;\n operatorValue: OperatorValue & {type: 'enum'};\n}): React.JSX.Element {\n return (\n <Select\n isLabelHidden\n label=\"Value\"\n onChange={value => {\n if (value != null) {\n onChange({type: 'enum', value}, true);\n }\n }}\n options={operatorValue.values.map(item => ({\n icon: item.icon,\n label: item.label,\n value: item.value,\n }))}\n value={filterValue?.type === 'enum' ? filterValue.value : null}\n />\n );\n}\n\nfunction EnumListEditor({\n operatorValue,\n filterValue,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue) => void;\n operatorValue: OperatorValue & {type: 'enum_list'};\n}): React.JSX.Element {\n const items = useMemo(\n () => enumItemsToSearchableItems(operatorValue.values),\n [operatorValue.values],\n );\n const source = useMemo(() => createStaticSource(items), [items]);\n const currentValue = useMemo<SearchableItem[]>(() => {\n if (filterValue?.type !== 'enum_list') {\n return [];\n }\n return filterValue.value.map(value => ({\n id: value,\n label:\n operatorValue.values.find(item => item.value === value)?.label ?? value,\n }));\n }, [filterValue, operatorValue.values]);\n\n return (\n <TagsInput\n debounceMs={0}\n hasEntriesOnFocus\n isLabelHidden\n label=\"Values\"\n onChange={items => {\n onChange({type: 'enum_list', value: items.map(item => item.id)});\n }}\n placeholder=\"Select values...\"\n searchSource={source}\n value={currentValue}\n />\n );\n}\n\nfunction EntityListEditor({\n operatorValue,\n filterValue,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n onChange: (value: FilterValue) => void;\n operatorValue: OperatorValue & {type: 'entity_list'};\n}): React.JSX.Element {\n const source = operatorValue.searchSource ?? emptySource();\n const currentValue = useMemo<SearchableItem[]>(() => {\n if (filterValue?.type !== 'entity_list') {\n return [];\n }\n return filterValue.value.map((entity: SearchFilterInputEntity) => ({\n auxiliaryData: entity.photo == null ? undefined : {photo: entity.photo},\n id: entity.id,\n label: entity.label,\n }));\n }, [filterValue]);\n\n return (\n <TagsInput\n debounceMs={operatorValue.searchSource == null ? 0 : 150}\n isLabelHidden\n label=\"Entities\"\n onChange={items => {\n onChange({\n type: 'entity_list',\n value: items.map(item => ({\n id: item.id,\n label: item.label,\n ...(typeof item.auxiliaryData === 'object' &&\n item.auxiliaryData != null &&\n 'photo' in item.auxiliaryData\n ? {photo: String(item.auxiliaryData.photo)}\n : {}),\n })),\n });\n }}\n placeholder=\"Search...\"\n renderItem={operatorValue.renderItem}\n searchSource={source}\n value={currentValue}\n />\n );\n}\n\nfunction CustomEditor({\n operatorValue,\n filterValue,\n isDisabled,\n onChange,\n}: {\n filterValue: FilterValue | undefined;\n isDisabled?: boolean;\n onChange: (value: FilterValue) => void;\n operatorValue: OperatorValue & {type: 'custom'};\n}): React.JSX.Element {\n const EditorComponent = operatorValue.Editor;\n return (\n <EditorComponent\n isDisabled={isDisabled}\n onChange={value => {\n if (value != null) {\n onChange({type: 'custom', value});\n }\n }}\n placeholder=\"Enter value...\"\n value={filterValue?.type === 'custom' ? filterValue.value : null}\n />\n );\n}\n\nexport function SearchFilterInputValueEditor({\n filterValue,\n isDisabled,\n onChange,\n onEnter,\n operatorValue,\n timezoneID,\n}: SearchFilterInputValueEditorProps): React.JSX.Element | null {\n const effectiveTimezoneID = timezoneID ?? getBrowserTimezoneID();\n\n switch (operatorValue.type) {\n case 'empty':\n case 'nested':\n return null;\n case 'string':\n return (\n <StringEditor\n filterValue={filterValue}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n case 'string_list':\n return (\n <StringListEditor\n filterValue={filterValue}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n case 'integer':\n return (\n <IntegerEditor\n filterValue={filterValue}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n case 'float':\n return (\n <FloatEditor\n filterValue={filterValue}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n case 'time':\n return (\n <TimeEditor\n filterValue={filterValue}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n case 'date_absolute':\n return (\n <DateAbsoluteEditor\n filterValue={filterValue}\n onChange={onChange}\n timezoneID={effectiveTimezoneID}\n />\n );\n case 'date_relative':\n return (\n <DateRelativeEditor\n filterValue={filterValue}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n case 'date_range':\n return (\n <DateRangeEditor\n filterValue={filterValue}\n onChange={onChange}\n timezoneID={effectiveTimezoneID}\n />\n );\n case 'enum':\n return (\n <EnumEditor\n filterValue={filterValue}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n case 'enum_list':\n return (\n <EnumListEditor\n filterValue={filterValue}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n case 'entity_list':\n return (\n <EntityListEditor\n filterValue={filterValue}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n case 'custom':\n return (\n <CustomEditor\n filterValue={filterValue}\n isDisabled={isDisabled}\n onChange={onChange}\n operatorValue={operatorValue}\n />\n );\n }\n void onEnter;\n}\n","/* eslint-disable silver-ui/require-component-props, jsx-a11y-x/no-static-element-interactions, @eslint-react/no-array-index-key */\n\nimport {X} from 'lucide-react';\nimport {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport {css} from 'styled-system/css';\nimport {Button} from '../Button';\nimport {Select} from '../Select';\nimport {HStack, VStack} from '../Stack';\nimport {SearchFilterInputValueEditor} from './SearchFilterInputValueEditor';\nimport type {InternalSearchFilterInputConfig} from './internalConfig';\nimport type {\n FilterValue,\n OperatorValue,\n PartialFilter,\n SearchFilterInputFilter,\n} from './types';\n\nexport interface SearchFilterInputEditPopoverProps {\n /**\n * Internal config lookup helpers.\n */\n config: InternalSearchFilterInputConfig;\n /**\n * Partial filter being created or edited.\n */\n filter: PartialFilter;\n /**\n * Whether controls are read-only.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Maximum number of items shown in the operator dropdown menu.\n */\n maxOperatorMenuItems?: number;\n /**\n * Editor mode.\n */\n mode: 'create' | 'edit';\n /**\n * Called when editing is cancelled.\n */\n onCancel: () => void;\n /**\n * Called with a completed filter, or null to delete.\n */\n onSave: (filter: SearchFilterInputFilter | null) => void;\n /**\n * Save button label.\n * @default 'Apply'\n */\n saveButtonLabel?: string;\n}\n\ninterface EditablePartialFilter {\n _subFilters?: EditablePartialFilter[];\n field: string;\n operator?: string;\n value?: FilterValue;\n}\n\nconst styles = {\n root: css({\n overflow: 'hidden',\n minW: '100',\n }),\n content: css({\n p: '4',\n }),\n footer: css({\n px: '3',\n pb: '3',\n }),\n fieldSelector: css({\n flexShrink: 0,\n }),\n operatorSelector: css({\n flex: '1 0 auto',\n }),\n valueEditor: css({\n flex: '2 1 0',\n minW: 0,\n }),\n nestedList: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '2',\n w: 'full',\n listStyleType: 'none',\n m: 0,\n p: 0,\n }),\n nestedNode: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '2',\n ps: '3',\n borderInlineStartWidth: 'default',\n borderInlineStartStyle: 'solid',\n borderColor: 'border',\n }),\n nestedRow: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n w: 'full',\n }),\n nestedCell: css({\n minW: 0,\n }),\n nestedField: css({\n flex: '0 0 200px',\n }),\n nestedOperator: css({\n flex: '0 0 180px',\n }),\n nestedValue: css({\n flex: '2 1 0',\n }),\n} as const;\n\nfunction initEditableFilter(\n config: InternalSearchFilterInputConfig,\n filter: SearchFilterInputFilter,\n): EditablePartialFilter {\n const operator = config.getOperator(filter.field, filter.operator);\n if (operator?.value.type === 'nested' && filter.value.type === 'nested') {\n return {\n _subFilters: filter.value.value.map(subFilter =>\n initEditableFilter(config, subFilter),\n ),\n field: filter.field,\n operator: filter.operator,\n value: filter.value,\n };\n }\n return {\n field: filter.field,\n operator: filter.operator,\n value: filter.value,\n };\n}\n\nfunction isEditableFilterComplete(\n config: InternalSearchFilterInputConfig,\n filter: EditablePartialFilter,\n): boolean {\n if (filter.operator == null) {\n return false;\n }\n const operator = config.getOperator(filter.field, filter.operator);\n if (operator?.value.type === 'nested') {\n const subFilters = filter._subFilters ?? [];\n return (\n subFilters.length > 0 &&\n subFilters.every(subFilter => isEditableFilterComplete(config, subFilter))\n );\n }\n return filter.value != null;\n}\n\nfunction editableToCompleteFilter(\n config: InternalSearchFilterInputConfig,\n filter: EditablePartialFilter,\n): SearchFilterInputFilter | null {\n if (filter.operator == null) {\n return null;\n }\n const operator = config.getOperator(filter.field, filter.operator);\n if (operator?.value.type === 'nested') {\n return {\n field: filter.field,\n operator: filter.operator,\n value: {\n type: 'nested',\n value: (filter._subFilters ?? [])\n .map(subFilter => editableToCompleteFilter(config, subFilter))\n .filter(\n (subFilter): subFilter is SearchFilterInputFilter =>\n subFilter != null,\n ),\n },\n };\n }\n if (filter.value == null) {\n return null;\n }\n return {field: filter.field, operator: filter.operator, value: filter.value};\n}\n\nfunction NestedSubFilterRow({\n config,\n isReadOnly,\n onChange,\n onRemove,\n subFilter,\n}: {\n config: InternalSearchFilterInputConfig;\n isReadOnly: boolean;\n onChange: (subFilter: EditablePartialFilter) => void;\n onRemove: () => void;\n subFilter: EditablePartialFilter;\n}): React.JSX.Element {\n const fieldOptions = useMemo(\n () =>\n config\n .getVisibleFields()\n .map(field => ({label: field.label, value: field.key})),\n [config],\n );\n const operatorOptions = useMemo(\n () =>\n config\n .getVisibleOperators(subFilter.field)\n .map(operator => ({label: operator.label, value: operator.key})),\n [config, subFilter.field],\n );\n const currentOperator =\n subFilter.operator == null\n ? undefined\n : config.getOperator(subFilter.field, subFilter.operator);\n const operatorValue: OperatorValue | undefined = currentOperator?.value;\n const isNested = operatorValue?.type === 'nested';\n const isEmpty = operatorValue?.type === 'empty';\n\n return (\n <div className={styles.nestedRow}>\n <div className={`${styles.nestedCell} ${styles.nestedField}`}>\n <Select\n isDisabled={isReadOnly}\n isLabelHidden\n label=\"Field\"\n onChange={fieldKey => {\n if (fieldKey == null) {\n return;\n }\n const defaultOperator = config.getDefaultOperator(fieldKey);\n const nextOperator =\n defaultOperator == null\n ? undefined\n : config.getOperator(fieldKey, defaultOperator.key);\n onChange({\n _subFilters:\n nextOperator?.value.type === 'nested' ? [] : undefined,\n field: fieldKey,\n operator: defaultOperator?.key,\n value: undefined,\n });\n }}\n options={fieldOptions}\n value={subFilter.field}\n />\n </div>\n {operatorOptions.length > 0 ? (\n <div className={`${styles.nestedCell} ${styles.nestedOperator}`}>\n <Select\n isDisabled={isReadOnly}\n isLabelHidden\n label=\"Operator\"\n onChange={operatorKey => {\n if (operatorKey == null) {\n return;\n }\n const nextOperator = config.getOperator(\n subFilter.field,\n operatorKey,\n );\n const keepValue =\n nextOperator != null &&\n nextOperator.value.type === currentOperator?.value.type;\n onChange({\n ...subFilter,\n _subFilters:\n nextOperator?.value.type === 'nested'\n ? (subFilter._subFilters ?? [])\n : undefined,\n operator: operatorKey,\n value: keepValue ? subFilter.value : undefined,\n });\n }}\n options={operatorOptions}\n value={subFilter.operator ?? null}\n />\n </div>\n ) : null}\n {operatorValue != null && !isEmpty && !isNested ? (\n <div className={`${styles.nestedCell} ${styles.nestedValue}`}>\n <SearchFilterInputValueEditor\n config={config}\n filterValue={subFilter.value}\n isDisabled={isReadOnly}\n onChange={value => onChange({...subFilter, value})}\n operatorValue={operatorValue}\n />\n </div>\n ) : null}\n {!isReadOnly ? (\n <Button\n icon={X}\n isIconOnly\n label=\"Remove filter\"\n onClick={onRemove}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n </div>\n );\n}\n\nfunction NestedEditor({\n config,\n isReadOnly,\n onPartialFilterChange,\n onOperatorChange,\n operatorOptions,\n partialFilter,\n}: {\n config: InternalSearchFilterInputConfig;\n isReadOnly: boolean;\n onOperatorChange: (operatorKey: string) => void;\n onPartialFilterChange: (filter: PartialFilter) => void;\n operatorOptions: {label: string; value: string}[];\n partialFilter: PartialFilter;\n}): React.JSX.Element {\n const [subFilters, setSubFilters] = useState<EditablePartialFilter[]>(() => {\n if (partialFilter.value?.type === 'nested') {\n return partialFilter.value.value.map(filter =>\n initEditableFilter(config, filter),\n );\n }\n return [];\n });\n\n const syncToParent = useCallback(\n (nextSubFilters: EditablePartialFilter[]) => {\n if (\n nextSubFilters.length > 0 &&\n nextSubFilters.every(filter => isEditableFilterComplete(config, filter))\n ) {\n onPartialFilterChange({\n ...partialFilter,\n value: {\n type: 'nested',\n value: nextSubFilters\n .map(filter => editableToCompleteFilter(config, filter))\n .filter(\n (filter): filter is SearchFilterInputFilter => filter != null,\n ),\n },\n });\n } else {\n onPartialFilterChange({...partialFilter, value: undefined});\n }\n },\n [config, onPartialFilterChange, partialFilter],\n );\n\n const addSubFilter = () => {\n const fields = config.getVisibleFields();\n if (fields.length === 0) {\n return;\n }\n const field = fields[0];\n const operator = config.getDefaultOperator(field.key);\n const next: EditablePartialFilter = {\n field: field.key,\n operator: operator?.key,\n value: undefined,\n _subFilters: operator?.value.type === 'nested' ? [] : undefined,\n };\n setSubFilters(previous => {\n const updated = [...previous, next];\n syncToParent(updated);\n return updated;\n });\n };\n\n const updateSubFilter = (\n index: number,\n nextSubFilter: EditablePartialFilter,\n ) => {\n setSubFilters(previous => {\n const updated = [...previous];\n updated[index] = nextSubFilter;\n syncToParent(updated);\n return updated;\n });\n };\n\n const removeSubFilter = (index: number) => {\n setSubFilters(previous => {\n const updated = previous.filter((_, i) => i !== index);\n syncToParent(updated);\n return updated;\n });\n };\n\n return (\n <VStack gap={2}>\n {operatorOptions.length > 1 ? (\n <Select\n isDisabled={isReadOnly}\n isLabelHidden\n label=\"Group operator\"\n onChange={operatorKey => {\n if (operatorKey != null) {\n onOperatorChange(operatorKey);\n }\n }}\n options={operatorOptions}\n value={partialFilter.operator ?? null}\n />\n ) : null}\n <ul className={styles.nestedList} role=\"group\">\n {subFilters.map((subFilter, index) => (\n <li className={styles.nestedNode} key={`${subFilter.field}-${index}`}>\n <NestedSubFilterRow\n config={config}\n isReadOnly={isReadOnly}\n onChange={nextSubFilter => updateSubFilter(index, nextSubFilter)}\n onRemove={() => removeSubFilter(index)}\n subFilter={subFilter}\n />\n </li>\n ))}\n </ul>\n {!isReadOnly ? (\n <Button\n label=\"+ Add filter\"\n onClick={addSubFilter}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n </VStack>\n );\n}\n\nexport function SearchFilterInputEditPopover({\n config,\n filter: initialFilter,\n isReadOnly = false,\n maxOperatorMenuItems,\n mode,\n onCancel,\n onSave,\n saveButtonLabel = 'Apply',\n}: SearchFilterInputEditPopoverProps): React.JSX.Element {\n const [partialFilter, setPartialFilter] =\n useState<PartialFilter>(initialFilter);\n const valueEditorRef = useRef<HTMLDivElement>(null);\n const currentOperator =\n partialFilter.operator == null\n ? undefined\n : config.getOperator(partialFilter.field, partialFilter.operator);\n const operatorValue = currentOperator?.value;\n const isEmptyType = operatorValue?.type === 'empty';\n const isNestedType = operatorValue?.type === 'nested';\n\n useEffect(() => {\n let innerFrame: number | undefined;\n const frame = requestAnimationFrame(() => {\n innerFrame = requestAnimationFrame(() => {\n valueEditorRef.current\n ?.querySelector<HTMLElement>(\n 'input:not([disabled]), button:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])',\n )\n ?.focus();\n });\n });\n return () => {\n cancelAnimationFrame(frame);\n if (innerFrame != null) {\n cancelAnimationFrame(innerFrame);\n }\n };\n }, []);\n\n useEffect(() => {\n if (isEmptyType && partialFilter.operator != null) {\n onSave({\n field: partialFilter.field,\n operator: partialFilter.operator,\n value: {type: 'empty'},\n });\n }\n }, [isEmptyType, onSave, partialFilter.field, partialFilter.operator]);\n\n const fieldOptions = useMemo(\n () =>\n config\n .getVisibleFields()\n .map(field => ({label: field.label, value: field.key})),\n [config],\n );\n const operatorOptions = useMemo(() => {\n const allOptions = config\n .getVisibleOperators(partialFilter.field)\n .map(operator => ({label: operator.label, value: operator.key}));\n return maxOperatorMenuItems != null\n ? allOptions.slice(0, maxOperatorMenuItems)\n : allOptions;\n }, [config, maxOperatorMenuItems, partialFilter.field]);\n const isSaveDisabled =\n partialFilter.operator == null || partialFilter.value == null;\n\n const handleSave = () => {\n if (partialFilter.operator != null && partialFilter.value != null) {\n onSave({\n field: partialFilter.field,\n operator: partialFilter.operator,\n value: partialFilter.value,\n });\n }\n };\n\n const handleFieldChange = (fieldKey: string | null) => {\n if (fieldKey == null) {\n return;\n }\n const defaultOperator = config.getDefaultOperator(fieldKey);\n setPartialFilter({\n field: fieldKey,\n operator: defaultOperator?.key,\n value: undefined,\n });\n };\n\n const handleOperatorChange = (operatorKey: string | null) => {\n if (operatorKey == null) {\n return;\n }\n const nextOperator = config.getOperator(partialFilter.field, operatorKey);\n const keepValue =\n nextOperator != null &&\n nextOperator.value.type === currentOperator?.value.type;\n setPartialFilter(previous => ({\n ...previous,\n operator: operatorKey,\n value: keepValue ? previous.value : undefined,\n }));\n };\n\n const footer = !isEmptyType ? (\n <div className={styles.footer}>\n <HStack gap={2} hAlign=\"between\">\n {!isReadOnly && mode === 'edit' ? (\n <Button\n label=\"Delete\"\n onClick={() => onSave(null)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : (\n <div />\n )}\n <HStack gap={2}>\n <Button label=\"Cancel\" onClick={onCancel} size=\"sm\" variant=\"ghost\" />\n <Button\n isDisabled={isSaveDisabled}\n label={saveButtonLabel}\n onClick={handleSave}\n size=\"sm\"\n variant=\"primary\"\n />\n </HStack>\n </HStack>\n </div>\n ) : null;\n\n return (\n <div\n className={styles.root}\n onKeyDown={event => {\n if (event.key === 'Enter' && !isSaveDisabled) {\n const target = event.target as HTMLElement;\n const isInsideSelect =\n target.closest('[role=\"listbox\"]') != null ||\n target.closest('[role=\"option\"]') != null ||\n target.getAttribute('aria-expanded') === 'true';\n if (!isInsideSelect) {\n event.preventDefault();\n handleSave();\n }\n } else if (event.key === 'Escape' && !event.defaultPrevented) {\n event.preventDefault();\n onCancel();\n }\n }}>\n <div className={styles.content}>\n <VStack gap={2}>\n <HStack gap={2}>\n <div className={styles.fieldSelector}>\n <Select\n isDisabled={isReadOnly}\n isLabelHidden\n label=\"Field\"\n onChange={handleFieldChange}\n options={fieldOptions}\n value={partialFilter.field}\n />\n </div>\n {!isNestedType && operatorOptions.length > 0 ? (\n <div className={styles.operatorSelector}>\n <Select\n isDisabled={isReadOnly}\n isLabelHidden\n label=\"Operator\"\n onChange={handleOperatorChange}\n options={operatorOptions}\n value={partialFilter.operator ?? null}\n />\n </div>\n ) : null}\n {operatorValue != null && !isEmptyType && !isNestedType ? (\n <div className={styles.valueEditor} ref={valueEditorRef}>\n <SearchFilterInputValueEditor\n config={config}\n filterValue={partialFilter.value}\n isDisabled={isReadOnly}\n onChange={(value, shouldSave) => {\n const updated = {...partialFilter, value};\n setPartialFilter(updated);\n if (shouldSave === true && updated.operator != null) {\n onSave({\n field: updated.field,\n operator: updated.operator,\n value: updated.value,\n });\n }\n }}\n onEnter={handleSave}\n operatorValue={operatorValue}\n />\n </div>\n ) : null}\n </HStack>\n {isNestedType ? (\n <NestedEditor\n config={config}\n isReadOnly={isReadOnly}\n onOperatorChange={operatorKey =>\n setPartialFilter(previous => ({\n ...previous,\n operator: operatorKey,\n }))\n }\n onPartialFilterChange={setPartialFilter}\n operatorOptions={operatorOptions}\n partialFilter={partialFilter}\n />\n ) : null}\n </VStack>\n </div>\n {footer}\n </div>\n );\n}\n\nSearchFilterInputEditPopover.displayName = 'SearchFilterInputEditPopover';\n","import type {InternalSearchFilterInputConfig} from './internalConfig';\nimport type {EnumItem, FilterValue, OperatorValue} from './types';\n\nfunction truncate(value: string, maxLength: number): string {\n return value.length > maxLength\n ? `${value.slice(0, maxLength - 1)}...`\n : value;\n}\n\nfunction enumLabel(value: string, values: ReadonlyArray<EnumItem>): string {\n return values.find(item => item.value === value)?.label ?? value;\n}\n\nfunction numberValue(value: number, units?: string): string {\n const formatted = new Intl.NumberFormat().format(value);\n return units == null ? formatted : `${formatted} ${units}`;\n}\n\nexport function formatFilterValue(\n _config: InternalSearchFilterInputConfig,\n operatorValue: OperatorValue,\n filterValue: FilterValue,\n maxLength: number,\n timezoneID?: string,\n): string {\n switch (filterValue.type) {\n case 'empty':\n return '';\n case 'string':\n return truncate(filterValue.value, maxLength);\n case 'string_list': {\n const joined = filterValue.value.join(', ');\n return joined.length <= maxLength\n ? joined\n : `${filterValue.value.length} items`;\n }\n case 'integer':\n return numberValue(\n filterValue.value,\n operatorValue.type === 'integer' ? operatorValue.units : undefined,\n );\n case 'float':\n return numberValue(\n filterValue.value,\n operatorValue.type === 'float' ? operatorValue.units : undefined,\n );\n case 'time':\n return filterValue.value;\n case 'date_absolute':\n return truncate(\n new Intl.DateTimeFormat(undefined, {\n day: 'numeric',\n hour: 'numeric',\n minute: '2-digit',\n month: 'short',\n timeZone: timezoneID,\n year: 'numeric',\n }).format(filterValue.unixSeconds * 1000),\n maxLength,\n );\n case 'date_relative':\n return filterValue.value;\n case 'date_range':\n return 'date range';\n case 'enum':\n return truncate(\n operatorValue.type === 'enum'\n ? enumLabel(filterValue.value, operatorValue.values)\n : filterValue.value,\n maxLength,\n );\n case 'enum_list': {\n const labels =\n operatorValue.type === 'enum_list'\n ? filterValue.value.map(value =>\n enumLabel(value, operatorValue.values),\n )\n : filterValue.value;\n const joined = labels.join(', ');\n return joined.length <= maxLength ? joined : `${labels.length} items`;\n }\n case 'entity_list': {\n const joined = filterValue.value.map(entity => entity.label).join(', ');\n return joined.length <= maxLength\n ? joined\n : `${filterValue.value.length} entities`;\n }\n case 'custom':\n return truncate(\n operatorValue.type === 'custom'\n ? operatorValue.getString(filterValue.value)\n : filterValue.value,\n maxLength,\n );\n case 'nested':\n return filterValue.value.length === 1\n ? '1 filter'\n : `${filterValue.value.length} filters`;\n }\n}\n","import {useMemo} from 'react';\nimport type {\n SearchFilterInputConfig,\n SearchFilterInputField,\n SearchFilterInputOperator,\n} from './types';\n\nexport interface InternalSearchFilterInputConfig {\n readonly config: SearchFilterInputConfig;\n getDefaultOperator(fieldKey: string): SearchFilterInputOperator | undefined;\n getField(key: string): SearchFilterInputField | undefined;\n getOperator(\n fieldKey: string,\n operatorKey: string,\n ): SearchFilterInputOperator | undefined;\n getVisibleFields(): ReadonlyArray<SearchFilterInputField>;\n getVisibleOperators(\n fieldKey: string,\n ): ReadonlyArray<SearchFilterInputOperator>;\n}\n\nexport function useInternalSearchFilterInputConfig(\n config: SearchFilterInputConfig,\n): InternalSearchFilterInputConfig {\n return useMemo(() => {\n const fieldMap = new Map<string, SearchFilterInputField>();\n const operatorMap = new Map<\n string,\n Map<string, SearchFilterInputOperator>\n >();\n for (const field of config.fields) {\n fieldMap.set(field.key, field);\n operatorMap.set(\n field.key,\n new Map(field.operators.map(operator => [operator.key, operator])),\n );\n }\n return {\n config,\n getDefaultOperator(fieldKey) {\n const field = fieldMap.get(fieldKey);\n if (field == null) {\n return undefined;\n }\n if (field.defaultOperator != null) {\n return operatorMap.get(fieldKey)?.get(field.defaultOperator);\n }\n return field.operators[0];\n },\n getField: key => fieldMap.get(key),\n getOperator: (fieldKey, operatorKey) =>\n operatorMap.get(fieldKey)?.get(operatorKey),\n getVisibleFields: () => config.fields,\n getVisibleOperators(fieldKey) {\n return fieldMap.get(fieldKey)?.operators ?? [];\n },\n };\n }, [config]);\n}\n","import {useMemo} from 'react';\nimport type {SearchSource} from '../AutocompleteInput';\nimport type {InternalSearchFilterInputConfig} from './internalConfig';\nimport type {\n FilterValue,\n SearchFilterInputItem,\n SearchFilterInputOperator,\n} from './types';\n\nexport function useSearchFilterInputSource(\n config: InternalSearchFilterInputConfig,\n): SearchSource<SearchFilterInputItem> {\n return useMemo(() => {\n const allItems = buildFieldItems(config);\n\n return {\n bootstrap: () => allItems,\n search(query: string): SearchFilterInputItem[] {\n const lower = query.toLowerCase().trim();\n if (lower === '') {\n return allItems;\n }\n\n const results: SearchFilterInputItem[] = [];\n const seen = new Set<string>();\n\n for (const field of config.getVisibleFields()) {\n if (\n field.comboboxMinQueryLength != null &&\n lower.length < field.comboboxMinQueryLength\n ) {\n continue;\n }\n\n const fieldMatches =\n field.label.toLowerCase().includes(lower) ||\n field.comboboxAliases?.some(alias =>\n alias.toLowerCase().includes(lower),\n ) === true;\n\n if (fieldMatches) {\n const defaultOperator = config.getDefaultOperator(field.key);\n if (!seen.has(field.key)) {\n seen.add(field.key);\n results.push({\n auxiliaryData: {\n fieldKey: field.key,\n operatorKey: defaultOperator?.key,\n },\n id: field.key,\n label: field.label,\n });\n }\n }\n\n for (const operator of field.operators) {\n const combinedLabel =\n `${field.label} ${operator.label}`.toLowerCase();\n if (combinedLabel.includes(lower)) {\n const id = `${field.key}:${operator.key}`;\n if (!seen.has(id)) {\n seen.add(id);\n results.push({\n auxiliaryData: {\n fieldKey: field.key,\n operatorKey: operator.key,\n },\n id,\n label: `${field.label} ${operator.label}`,\n });\n }\n }\n }\n }\n\n for (const field of config.getVisibleFields()) {\n if (field.isValueMatchAllowed === false) {\n continue;\n }\n\n const fieldLabel = field.label.toLowerCase();\n let hasExactOperatorMatch = false;\n\n for (const operator of field.operators) {\n const prefix = `${fieldLabel} ${operator.label.toLowerCase()} `;\n if (lower.startsWith(prefix) && lower.length > prefix.length) {\n const rawValue = query.slice(prefix.length);\n const matches = resolveValueMatches(operator, rawValue);\n if (matches.length > 0) {\n hasExactOperatorMatch = true;\n }\n for (const match of matches) {\n const id = `${field.key}:${operator.key}:value:${match.displayValue}`;\n if (!seen.has(id)) {\n seen.add(id);\n results.push({\n auxiliaryData: {\n fieldKey: field.key,\n filterValue: match.filterValue,\n operatorKey: operator.key,\n },\n id,\n label: `${field.label} ${operator.label} ${\n match.quoted\n ? `\"${match.displayValue}\"`\n : match.displayValue\n }`,\n });\n }\n }\n }\n }\n\n const fieldPrefix = `${fieldLabel} `;\n if (\n !hasExactOperatorMatch &&\n lower.startsWith(fieldPrefix) &&\n lower.length > fieldPrefix.length\n ) {\n const remainder = lower.slice(fieldPrefix.length);\n const isOperatorPrefix = field.operators.some(operator =>\n operator.label.toLowerCase().startsWith(remainder),\n );\n if (!isOperatorPrefix) {\n const rawValue = query.slice(fieldPrefix.length);\n for (const operator of field.operators) {\n const matches = resolveValueMatches(operator, rawValue);\n for (const match of matches) {\n const id = `${field.key}:${operator.key}:value:${match.displayValue}`;\n if (!seen.has(id)) {\n seen.add(id);\n results.push({\n auxiliaryData: {\n fieldKey: field.key,\n filterValue: match.filterValue,\n operatorKey: operator.key,\n },\n id,\n label: `${field.label} ${operator.label} ${\n match.quoted\n ? `\"${match.displayValue}\"`\n : match.displayValue\n }`,\n });\n }\n }\n }\n }\n }\n }\n\n const contentFieldKey = config.config.contentSearchFieldKey;\n const hasExactMatch = config\n .getVisibleFields()\n .some(\n field =>\n field.label.toLowerCase() === lower ||\n field.operators.some(\n operator =>\n `${field.label} ${operator.label}`.toLowerCase() === lower,\n ),\n );\n if (contentFieldKey != null && !hasExactMatch) {\n const contentField = config.getField(contentFieldKey);\n const contentOperator = config.getDefaultOperator(contentFieldKey);\n if (contentField != null && contentOperator != null) {\n results.unshift({\n auxiliaryData: {\n fieldKey: contentFieldKey,\n filterValue: {type: 'string', value: query},\n operatorKey: contentOperator.key,\n },\n id: `__content_search__:${query}`,\n label: `\"${query}\"`,\n });\n }\n }\n\n return results;\n },\n };\n }, [config]);\n}\n\ninterface ValueMatch {\n displayValue: string;\n filterValue: FilterValue;\n quoted: boolean;\n}\n\nfunction resolveValueMatches(\n operator: SearchFilterInputOperator,\n rawValue: string,\n): ValueMatch[] {\n if (operator.value.type === 'string') {\n return [\n {\n displayValue: rawValue,\n filterValue: {type: 'string', value: rawValue},\n quoted: true,\n },\n ];\n }\n\n if (operator.value.type === 'string_list') {\n return [\n {\n displayValue: rawValue,\n filterValue: {type: 'string_list', value: [rawValue]},\n quoted: true,\n },\n ];\n }\n\n if (operator.value.type === 'enum') {\n const lower = rawValue.toLowerCase();\n return operator.value.values\n .filter(item => item.label.toLowerCase().includes(lower))\n .map(item => ({\n displayValue: item.label,\n filterValue: {type: 'enum', value: item.value},\n quoted: false,\n }));\n }\n\n if (operator.value.type === 'enum_list') {\n const lower = rawValue.toLowerCase();\n return operator.value.values\n .filter(item => item.label.toLowerCase().includes(lower))\n .map(item => ({\n displayValue: item.label,\n filterValue: {type: 'enum_list', value: [item.value]},\n quoted: false,\n }));\n }\n\n return [];\n}\n\nfunction buildFieldItems(\n config: InternalSearchFilterInputConfig,\n): SearchFilterInputItem[] {\n return config.getVisibleFields().map(field => {\n const defaultOperator = config.getDefaultOperator(field.key);\n return {\n auxiliaryData: {\n fieldKey: field.key,\n operatorKey: defaultOperator?.key,\n },\n id: field.key,\n label: field.label,\n };\n });\n}\n","import {Search} from 'lucide-react';\nimport {\n useCallback,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {AutocompleteInputItem} from '../AutocompleteInput';\nimport type {InputStatus} from '../Field';\nimport type {IconComponent} from '../Icon';\nimport {Popover} from '../Popover';\nimport {Tag} from '../Tag';\nimport {\n TagsInput,\n type TagsInputChange,\n type TagsInputHandle,\n type TagsInputOverflowBehavior,\n} from '../TagsInput';\nimport {Text} from '../Text';\nimport {SearchFilterInputEditPopover} from './SearchFilterInputEditPopover';\nimport {formatFilterValue} from './formatFilterValue';\nimport {useInternalSearchFilterInputConfig} from './internalConfig';\nimport type {\n PartialFilter,\n SearchFilterInputChangeType,\n SearchFilterInputComponents,\n SearchFilterInputConfig,\n SearchFilterInputFilter,\n SearchFilterInputHandle,\n SearchFilterInputItem,\n} from './types';\nimport {useSearchFilterInputSource} from './useSearchFilterInputSource';\n\nexport type SearchFilterInputSize = 'sm' | 'md' | 'lg';\n\nexport interface SearchFilterInputProps {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Per-value-type component overrides.\n */\n components?: SearchFilterInputComponents;\n /**\n * SearchFilterInput field/operator configuration.\n */\n config: SearchFilterInputConfig;\n /**\n * Test ID applied to the input wrapper.\n */\n 'data-testid'?: string;\n /**\n * Content displayed at the end of the input row.\n */\n endContent?: ReactNode;\n /**\n * Current filters.\n */\n filters: ReadonlyArray<SearchFilterInputFilter>;\n /**\n * Imperative focus/blur handle.\n */\n handleRef?: Ref<SearchFilterInputHandle>;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a clear button.\n * @default true\n */\n hasClear?: boolean;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default true\n */\n isLabelHidden?: boolean;\n /**\n * Whether filters are read-only.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Accessible label.\n * @default 'Search'\n */\n label?: string;\n /**\n * Maximum number of items shown in the operator dropdown menu.\n * When set, only the first N operators are displayed.\n */\n maxOperatorMenuItems?: number;\n /**\n * Maximum displayed tag value length.\n * @default 40\n */\n maxTagLength?: number;\n /**\n * Called when focus leaves the control.\n */\n onBlur?: (event: FocusEvent<HTMLDivElement>) => void;\n /**\n * Called when filters change.\n */\n onChange: (\n filters: ReadonlyArray<SearchFilterInputFilter>,\n changeType: SearchFilterInputChangeType,\n index: number,\n ) => void;\n /**\n * Called when focus enters the control.\n */\n onFocus?: (event: FocusEvent<HTMLDivElement>) => void;\n /**\n * Placeholder text.\n * @default 'Search...'\n */\n placeholder?: string;\n /**\n * Save button label in the edit popover.\n * @default 'Apply'\n */\n popoverSaveButtonLabel?: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Result count displayed at end of row.\n */\n resultCount?: number | string;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: SearchFilterInputSize;\n /**\n * Icon shown before the input.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Controls how tags overflow when the container is too narrow.\n * - `'none'`: Tags wrap to multiple lines (default).\n * - `'unfocusedInline'`: Single line with \"+ N more\" when unfocused; expands inline on focus.\n * - `'unfocusedLayer'`: Single line with \"+ N more\" when unfocused; expands as overlay on focus.\n * @default 'none'\n */\n tagOverflowBehavior?: TagsInputOverflowBehavior;\n /**\n * Timezone ID for date formatting.\n */\n timezoneID?: string;\n}\n\ntype PopoverState =\n | {type: 'idle'}\n | {partialFilter: PartialFilter; type: 'adding'}\n | {filterIndex: number; partialFilter: PartialFilter; type: 'editing'};\n\nconst styles = {\n entityPhoto: css({\n width: '16px',\n height: '16px',\n borderRadius: 'full',\n objectFit: 'cover',\n flexShrink: 0,\n }),\n root: css({\n w: 'full',\n }),\n popover: css({\n minW: '400px',\n }),\n resultCount: css({\n whiteSpace: 'nowrap',\n }),\n value: css({\n fontWeight: 'bold',\n }),\n} as const;\n\n/**\n * Structured search control where each tag represents a field/operator/value filter.\n */\nexport function SearchFilterInput({\n className,\n components,\n config: configFromProps,\n 'data-testid': dataTestId,\n endContent,\n filters,\n handleRef,\n hasAutoFocus = false,\n hasClear = true,\n isDisabled = false,\n isLabelHidden = true,\n isReadOnly = false,\n label = 'Search',\n maxOperatorMenuItems,\n maxTagLength = 40,\n onBlur,\n onChange,\n onFocus,\n placeholder = 'Search...',\n popoverSaveButtonLabel = 'Apply',\n ref,\n resultCount,\n size = 'md',\n startIcon,\n status,\n style,\n tagOverflowBehavior,\n timezoneID,\n}: SearchFilterInputProps): React.JSX.Element {\n const config = useInternalSearchFilterInputConfig(configFromProps);\n const searchSource = useSearchFilterInputSource(config);\n const tagsInputRef = useRef<TagsInputHandle>(null);\n const rootRef = useRef<HTMLDivElement>(null);\n const wasInputFocusedRef = useRef(false);\n const [popoverState, setPopoverState] = useState<PopoverState>({\n type: 'idle',\n });\n\n useImperativeHandle(handleRef, () => ({\n blurInput: () => tagsInputRef.current?.blur(),\n focusInput: () => tagsInputRef.current?.focus(),\n }));\n\n const tagsInputValue = useMemo<SearchFilterInputItem[]>(\n () =>\n filters.map((filter, index) => {\n const field = config.getField(filter.field);\n const operator = config.getOperator(filter.field, filter.operator);\n const operatorLabel = operator?.label ? ` ${operator.label}` : '';\n const value =\n operator == null\n ? ''\n : formatFilterValue(\n config,\n operator.value,\n filter.value,\n maxTagLength,\n timezoneID,\n );\n return {\n auxiliaryData: {\n fieldKey: filter.field,\n filterIndex: index,\n filterValue: filter.value,\n operatorKey: filter.operator,\n },\n id: `filter-${index}-${filter.field}-${filter.operator}`,\n label: value\n ? `${field?.label ?? filter.field}${operatorLabel} ${value}`\n : `${field?.label ?? filter.field}${operatorLabel}`,\n };\n }),\n [config, filters, maxTagLength, timezoneID],\n );\n\n const openEditor = useCallback(\n (state: Exclude<PopoverState, {type: 'idle'}>) => {\n // Remember whether the text input was the interaction surface before\n // opening the editor, so cancel/escape can restore focus only when it\n // makes sense. Adding always originates from typing in the input; for\n // editing (a tag click) fall back to the actual focus state.\n const active = document.activeElement;\n const isInputFocused =\n active?.tagName === 'INPUT' &&\n rootRef.current?.contains(active) === true;\n wasInputFocusedRef.current = state.type === 'adding' || isInputFocused;\n tagsInputRef.current?.blur();\n setPopoverState(state);\n },\n [],\n );\n\n const handleCancel = useCallback(() => {\n const wasInputFocused = wasInputFocusedRef.current;\n setPopoverState({type: 'idle'});\n if (wasInputFocused) {\n // The input was the interaction surface before opening — return focus to\n // it so the user can keep typing.\n requestAnimationFrame(() => tagsInputRef.current?.focus());\n } else {\n // The editor was opened by clicking a tag, so the input was not focused\n // and should not be. Clicking the Cancel button triggers TagsInput's\n // \"focus the input on the next click after a wrapper press\" behavior,\n // which queues a focus in a requestAnimationFrame. Blur in a nested frame\n // so it runs after that focus and the input ends up unfocused.\n requestAnimationFrame(() => {\n requestAnimationFrame(() => tagsInputRef.current?.blur());\n });\n }\n }, []);\n\n const handleTagsInputChange = useCallback(\n (\n _items: SearchFilterInputItem[],\n change: TagsInputChange<SearchFilterInputItem>,\n ) => {\n if (change.type === 'remove') {\n const index = change.item.auxiliaryData?.filterIndex;\n if (index != null) {\n onChange(\n filters.filter((_, i) => i !== index),\n 'remove',\n index,\n );\n }\n return;\n }\n\n if (change.type !== 'add') {\n return;\n }\n\n const auxiliaryData = change.item.auxiliaryData;\n if (auxiliaryData == null) {\n return;\n }\n const operator =\n auxiliaryData.operatorKey == null\n ? config.getDefaultOperator(auxiliaryData.fieldKey)\n : config.getOperator(\n auxiliaryData.fieldKey,\n auxiliaryData.operatorKey,\n );\n if (operator == null) {\n return;\n }\n if (auxiliaryData.filterValue != null) {\n const nextFilter: SearchFilterInputFilter = {\n field: auxiliaryData.fieldKey,\n operator: operator.key,\n value: auxiliaryData.filterValue,\n };\n onChange([...filters, nextFilter], 'add', filters.length);\n return;\n }\n if (operator.value.type === 'empty') {\n const nextFilter: SearchFilterInputFilter = {\n field: auxiliaryData.fieldKey,\n operator: operator.key,\n value: {type: 'empty'},\n };\n onChange([...filters, nextFilter], 'add', filters.length);\n return;\n }\n openEditor({\n partialFilter: {\n field: auxiliaryData.fieldKey,\n operator: operator.key,\n value: undefined,\n },\n type: 'adding',\n });\n },\n [config, filters, onChange, openEditor],\n );\n\n const handleTagClick = (index: number) => {\n if (isReadOnly || isDisabled) {\n return;\n }\n const filter = filters[index];\n if (filter.isReadOnly === true) {\n return;\n }\n openEditor({\n filterIndex: index,\n partialFilter: {\n field: filter.field,\n operator: filter.operator,\n value: filter.value,\n },\n type: 'editing',\n });\n };\n\n const renderTag = (item: SearchFilterInputItem, onRemove: () => void) => {\n const auxiliaryData = item.auxiliaryData;\n const filterIndex = auxiliaryData?.filterIndex ?? -1;\n const filter = filterIndex >= 0 ? filters[filterIndex] : undefined;\n const field =\n auxiliaryData == null\n ? undefined\n : config.getField(auxiliaryData.fieldKey);\n const operator =\n auxiliaryData?.operatorKey == null\n ? undefined\n : config.getOperator(auxiliaryData.fieldKey, auxiliaryData.operatorKey);\n const canInteract =\n !isReadOnly && !isDisabled && filter?.isReadOnly !== true;\n const TagOverride =\n operator == null ? undefined : components?.[operator.value.type]?.Tag;\n\n if (\n TagOverride != null &&\n filter != null &&\n field != null &&\n operator != null\n ) {\n return (\n <TagOverride\n config={configFromProps}\n field={field}\n filter={filter}\n isDisabled={isDisabled}\n maxLength={maxTagLength}\n onClick={canInteract ? () => handleTagClick(filterIndex) : undefined}\n onRemove={canInteract ? onRemove : undefined}\n operator={operator}\n />\n );\n }\n\n const value =\n operator != null && filter != null\n ? formatFilterValue(\n config,\n operator.value,\n filter.value,\n Math.max(\n maxTagLength - (field?.label.length ?? 0) - operator.label.length,\n 10,\n ),\n timezoneID,\n )\n : '';\n const entityPhoto =\n filter?.value.type === 'entity_list'\n ? (() => {\n const entities = filter.value.value;\n return entities.length === 1 && entities[0].photo != null\n ? entities[0].photo\n : undefined;\n })()\n : undefined;\n return (\n <Tag\n endContent={\n value === '' ? undefined : (\n <span className={styles.value}>{value}</span>\n )\n }\n isDisabled={isDisabled}\n label={`${field?.label ?? ''} ${operator?.label ?? ''}`.trim()}\n onClick={\n canInteract\n ? event => {\n event.stopPropagation();\n handleTagClick(filterIndex);\n }\n : undefined\n }\n onRemove={canInteract ? onRemove : undefined}\n size={size}\n startContent={\n entityPhoto != null ? (\n <img alt=\"\" className={styles.entityPhoto} src={entityPhoto} />\n ) : undefined\n }\n />\n );\n };\n\n const renderItem = (item: SearchFilterInputItem) => {\n const field =\n item.auxiliaryData == null\n ? undefined\n : config.getField(item.auxiliaryData.fieldKey);\n return (\n <AutocompleteInputItem\n description={field?.description}\n icon={field?.icon ?? Search}\n item={item}\n />\n );\n };\n\n const handleSave = (savedFilter: SearchFilterInputFilter | null) => {\n if (popoverState.type === 'adding') {\n if (savedFilter != null) {\n onChange([...filters, savedFilter], 'add', filters.length);\n }\n } else if (popoverState.type === 'editing') {\n if (savedFilter == null) {\n onChange(\n filters.filter((_, index) => index !== popoverState.filterIndex),\n 'remove',\n popoverState.filterIndex,\n );\n } else {\n const nextFilters = [...filters];\n nextFilters[popoverState.filterIndex] = savedFilter;\n onChange(nextFilters, 'edit', popoverState.filterIndex);\n }\n }\n setPopoverState({type: 'idle'});\n requestAnimationFrame(() => tagsInputRef.current?.focus());\n };\n\n const partialFilter =\n popoverState.type === 'idle' ? null : popoverState.partialFilter;\n const EditorOverride =\n partialFilter?.operator == null\n ? undefined\n : components?.[\n config.getOperator(partialFilter.field, partialFilter.operator)?.value\n .type ?? 'empty'\n ]?.Editor;\n const editorContent =\n partialFilter == null ? null : EditorOverride != null ? (\n <EditorOverride\n config={configFromProps}\n filter={partialFilter}\n isReadOnly={isReadOnly}\n mode={popoverState.type === 'editing' ? 'edit' : 'create'}\n onCancel={handleCancel}\n onSave={handleSave}\n saveButtonLabel={popoverSaveButtonLabel}\n timezoneID={timezoneID}\n />\n ) : (\n <SearchFilterInputEditPopover\n config={config}\n filter={partialFilter}\n isReadOnly={isReadOnly}\n maxOperatorMenuItems={maxOperatorMenuItems}\n mode={popoverState.type === 'editing' ? 'edit' : 'create'}\n onCancel={handleCancel}\n onSave={handleSave}\n saveButtonLabel={popoverSaveButtonLabel}\n />\n );\n\n const resultCountNode =\n resultCount == null ? null : (\n <Text\n as=\"span\"\n className={styles.resultCount}\n color=\"secondary\"\n type=\"supporting\">\n {typeof resultCount === 'number'\n ? `${new Intl.NumberFormat().format(resultCount)} ${\n resultCount === 1 ? 'result' : 'results'\n }`\n : resultCount}\n </Text>\n );\n\n return (\n <>\n <div className={styles.root} ref={rootRef}>\n <TagsInput\n className={className}\n data-testid={dataTestId}\n debounceMs={0}\n endContent={\n <>\n {resultCountNode}\n {endContent}\n </>\n }\n handleRef={tagsInputRef}\n hasAutoFocus={hasAutoFocus}\n hasClear={hasClear && !isReadOnly}\n hasEntriesOnFocus\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n isReadOnly={isReadOnly}\n label={label}\n onBlur={onBlur}\n onChange={handleTagsInputChange}\n onFocus={onFocus}\n placeholder={\n isReadOnly ? '' : filters.length === 0 ? placeholder : ''\n }\n ref={ref}\n renderItem={renderItem}\n renderTag={renderTag}\n searchSource={searchSource}\n size={size}\n startIcon={startIcon}\n status={status}\n style={style}\n tagOverflowBehavior={tagOverflowBehavior}\n value={tagsInputValue}\n />\n </div>\n <Popover\n anchorRef={rootRef}\n className={styles.popover}\n content={editorContent}\n hasAutoFocus={false}\n hasCloseButton={false}\n hasLightDismiss={false}\n isOpen={popoverState.type !== 'idle'}\n onOpenChange={isOpen => {\n if (!isOpen) {\n setPopoverState({type: 'idle'});\n }\n }}\n />\n </>\n );\n}\n\nSearchFilterInput.displayName = 'SearchFilterInput';\n","/* eslint-disable silver-ui/require-component-props */\n\nimport {SearchFilterInputEditPopover} from './SearchFilterInputEditPopover';\nimport {useInternalSearchFilterInputConfig} from './internalConfig';\nimport type {SearchFilterInputEditorProps} from './types';\n\n/**\n * Default public filter editor used by SearchFilterInput.\n */\nexport function SearchFilterInputFilterEditor({\n config,\n filter,\n isReadOnly,\n mode,\n onCancel,\n onSave,\n saveButtonLabel,\n}: SearchFilterInputEditorProps): React.JSX.Element {\n const internalConfig = useInternalSearchFilterInputConfig(config);\n return (\n <SearchFilterInputEditPopover\n config={internalConfig}\n filter={filter}\n isReadOnly={isReadOnly}\n mode={mode}\n onCancel={onCancel}\n onSave={onSave}\n saveButtonLabel={saveButtonLabel}\n />\n );\n}\n\nSearchFilterInputFilterEditor.displayName = 'SearchFilterInputFilterEditor';\n","/* eslint-disable silver-ui/require-component-props */\n\nimport {css} from 'styled-system/css';\nimport {Tag} from '../Tag';\nimport {formatFilterValue} from './formatFilterValue';\nimport {useInternalSearchFilterInputConfig} from './internalConfig';\nimport type {SearchFilterInputTagProps} from './types';\n\nconst styles = {\n value: css({\n fontWeight: 'bold',\n }),\n entityPhoto: css({\n width: '16px',\n height: '16px',\n borderRadius: 'full',\n objectFit: 'cover',\n flexShrink: 0,\n }),\n} as const;\n\n/**\n * Returns the entity photo URL when the filter value is an entity_list\n * with exactly one entity that has a photo.\n */\nfunction getSingleEntityPhoto(\n value: SearchFilterInputTagProps['filter']['value'],\n): string | undefined {\n if (value.type !== 'entity_list') {\n return undefined;\n }\n const entities = value.value;\n if (entities.length === 1 && entities[0].photo != null) {\n return entities[0].photo;\n }\n return undefined;\n}\n\n/**\n * Default tag renderer for a SearchFilterInput filter.\n */\nexport function SearchFilterInputTag({\n config: configFromProps,\n field,\n filter,\n isDisabled,\n maxLength,\n onClick,\n onRemove,\n operator,\n}: SearchFilterInputTagProps): React.JSX.Element {\n const config = useInternalSearchFilterInputConfig(configFromProps);\n const tagLabel = `${field.label}${operator.label ? ` ${operator.label}` : ''}`;\n const adjustedMaxLength = Math.max(\n maxLength - field.label.length - operator.label.length,\n 10,\n );\n const value = formatFilterValue(\n config,\n operator.value,\n filter.value,\n adjustedMaxLength,\n );\n\n const entityPhoto = getSingleEntityPhoto(filter.value);\n\n return (\n <Tag\n endContent={\n value === '' ? undefined : <span className={styles.value}>{value}</span>\n }\n isDisabled={isDisabled}\n label={tagLabel}\n onClick={\n onClick == null\n ? undefined\n : event => {\n event.stopPropagation();\n onClick();\n }\n }\n onRemove={onRemove}\n startContent={\n entityPhoto != null ? (\n <img alt=\"\" className={styles.entityPhoto} src={entityPhoto} />\n ) : undefined\n }\n />\n );\n}\n\nSearchFilterInputTag.displayName = 'SearchFilterInputTag';\n","import {Temporal} from '@js-temporal/polyfill';\nimport {useMemo} from 'react';\nimport {nowEpochMilliseconds} from '../../internal/time';\nimport type {\n DateTimeRangePart,\n EnumItem,\n SearchFilterInputConfig,\n SearchFilterInputFilter,\n SearchFilterInputOperator,\n} from './types';\n\ntype FieldType =\n | 'boolean'\n | 'date'\n | 'enum'\n | 'enum_list'\n | 'number'\n | 'string'\n | 'string_list';\n\ntype FieldTypeToJS = {\n boolean: boolean;\n date: Temporal.Instant | number;\n enum: string;\n enum_list: ReadonlyArray<string>;\n number: number;\n string: string;\n string_list: ReadonlyArray<string>;\n};\n\nexport interface FieldDefinition<\n K extends string = string,\n T extends FieldType = FieldType,\n> {\n readonly enumValues?: ReadonlyArray<EnumItem>;\n readonly key: K;\n readonly label?: string;\n readonly type: T;\n}\n\nexport type InferData<D extends ReadonlyArray<FieldDefinition>> = {\n [F in D[number] as F['key']]: FieldTypeToJS[F['type']];\n};\n\nconst StringOps = {\n CONTAINS: 'contains',\n ENDS_WITH: 'ends_with',\n IS: 'is',\n IS_NOT: 'is_not',\n NOT_CONTAINS: 'not_contains',\n NOT_ENDS_WITH: 'not_ends_with',\n NOT_STARTS_WITH: 'not_starts_with',\n STARTS_WITH: 'starts_with',\n} as const;\n\nconst NumberOps = {\n EQUALS: 'equals',\n GREATER_THAN: 'greater_than',\n GREATER_THAN_OR_EQUAL: 'greater_than_or_equal',\n LESS_THAN: 'less_than',\n LESS_THAN_OR_EQUAL: 'less_than_or_equal',\n NOT_EQUALS: 'not_equals',\n} as const;\n\nconst DateOps = {\n AFTER: 'after',\n BEFORE: 'before',\n BETWEEN: 'between',\n} as const;\n\nconst BooleanOps = {\n IS_FALSE: 'is_false',\n IS_TRUE: 'is_true',\n} as const;\n\nconst EnumOps = {\n IS: 'is',\n IS_NOT: 'is_not',\n} as const;\n\nconst ListOps = {\n IS_ANY_OF: 'is_any_of',\n IS_NONE_OF: 'is_none_of',\n} as const;\n\nfunction stringOperators(): {\n defaultOperator: string;\n operators: ReadonlyArray<SearchFilterInputOperator>;\n} {\n return {\n defaultOperator: StringOps.CONTAINS,\n operators: [\n {key: StringOps.CONTAINS, label: 'contains', value: {type: 'string'}},\n {\n key: StringOps.NOT_CONTAINS,\n label: 'does not contain',\n value: {type: 'string'},\n },\n {\n key: StringOps.STARTS_WITH,\n label: 'starts with',\n value: {type: 'string'},\n },\n {\n key: StringOps.NOT_STARTS_WITH,\n label: 'does not start with',\n value: {type: 'string'},\n },\n {key: StringOps.ENDS_WITH, label: 'ends with', value: {type: 'string'}},\n {\n key: StringOps.NOT_ENDS_WITH,\n label: 'does not end with',\n value: {type: 'string'},\n },\n {key: StringOps.IS, label: 'is', value: {type: 'string'}},\n {key: StringOps.IS_NOT, label: 'is not', value: {type: 'string'}},\n ],\n };\n}\n\nfunction numberOperators(): {\n defaultOperator: string;\n operators: ReadonlyArray<SearchFilterInputOperator>;\n} {\n return {\n defaultOperator: NumberOps.EQUALS,\n operators: [\n {key: NumberOps.EQUALS, label: 'is', value: {type: 'float'}},\n {key: NumberOps.NOT_EQUALS, label: 'is not', value: {type: 'float'}},\n {\n key: NumberOps.GREATER_THAN,\n label: 'is greater than',\n value: {type: 'float'},\n },\n {\n key: NumberOps.LESS_THAN,\n label: 'is less than',\n value: {type: 'float'},\n },\n {\n key: NumberOps.GREATER_THAN_OR_EQUAL,\n label: 'is greater than or equal to',\n value: {type: 'float'},\n },\n {\n key: NumberOps.LESS_THAN_OR_EQUAL,\n label: 'is less than or equal to',\n value: {type: 'float'},\n },\n ],\n };\n}\n\nfunction operatorsFor(definition: FieldDefinition): {\n defaultOperator: string;\n operators: ReadonlyArray<SearchFilterInputOperator>;\n} {\n switch (definition.type) {\n case 'string':\n return stringOperators();\n case 'number':\n return numberOperators();\n case 'date':\n return {\n defaultOperator: DateOps.AFTER,\n operators: [\n {\n key: DateOps.BEFORE,\n label: 'is before',\n value: {type: 'date_absolute'},\n },\n {\n key: DateOps.AFTER,\n label: 'is after',\n value: {type: 'date_absolute'},\n },\n {\n key: DateOps.BETWEEN,\n label: 'is between',\n value: {type: 'date_range'},\n },\n ],\n };\n case 'boolean':\n return {\n defaultOperator: BooleanOps.IS_TRUE,\n operators: [\n {key: BooleanOps.IS_TRUE, label: 'is true', value: {type: 'empty'}},\n {key: BooleanOps.IS_FALSE, label: 'is false', value: {type: 'empty'}},\n ],\n };\n case 'enum':\n return {\n defaultOperator: EnumOps.IS,\n operators: [\n {\n key: EnumOps.IS,\n label: 'is',\n value: {type: 'enum', values: definition.enumValues ?? []},\n },\n {\n key: EnumOps.IS_NOT,\n label: 'is not',\n value: {type: 'enum', values: definition.enumValues ?? []},\n },\n {\n key: ListOps.IS_ANY_OF,\n label: 'is any of',\n value: {type: 'enum_list', values: definition.enumValues ?? []},\n },\n {\n key: ListOps.IS_NONE_OF,\n label: 'is none of',\n value: {type: 'enum_list', values: definition.enumValues ?? []},\n },\n ],\n };\n case 'enum_list':\n return {\n defaultOperator: ListOps.IS_ANY_OF,\n operators: [\n {\n key: ListOps.IS_ANY_OF,\n label: 'is any of',\n value: {type: 'enum_list', values: definition.enumValues ?? []},\n },\n {\n key: ListOps.IS_NONE_OF,\n label: 'is none of',\n value: {type: 'enum_list', values: definition.enumValues ?? []},\n },\n ],\n };\n case 'string_list':\n return {\n defaultOperator: ListOps.IS_ANY_OF,\n operators: [\n {\n key: ListOps.IS_ANY_OF,\n label: 'is any of',\n value: {type: 'string_list'},\n },\n {\n key: ListOps.IS_NONE_OF,\n label: 'is none of',\n value: {type: 'string_list'},\n },\n ],\n };\n }\n}\n\nfunction nowUnixSeconds(): number {\n return Math.floor(nowEpochMilliseconds() / 1000);\n}\n\nfunction toUnixSeconds(value: Temporal.Instant | number): number {\n return value instanceof Temporal.Instant\n ? Math.floor(value.epochMilliseconds / 1000)\n : value;\n}\n\nfunction toStringArray(value: unknown): string[] | null {\n if (typeof value === 'string') {\n return [value];\n }\n if (Array.isArray(value) && value.every(item => typeof item === 'string')) {\n return value;\n }\n return null;\n}\n\nfunction resolveRangePart(part: DateTimeRangePart): number {\n switch (part.type) {\n case 'NOW':\n return nowUnixSeconds();\n case 'ABSOLUTE':\n return part.unixSeconds;\n case 'RELATIVE': {\n const multipliers = {\n day: 86400,\n hour: 3600,\n minute: 60,\n month: 2592000,\n second: 1,\n week: 604800,\n year: 31536000,\n } satisfies Record<\n Extract<DateTimeRangePart, {type: 'RELATIVE'}>['unit'],\n number\n >;\n return nowUnixSeconds() - part.backValue * multipliers[part.unit];\n }\n }\n}\n\nfunction matchesFilter(\n row: Record<string, unknown>,\n filter: SearchFilterInputFilter,\n): boolean {\n const fieldValue = row[filter.field];\n const {operator, value} = filter;\n\n switch (value.type) {\n case 'empty':\n return operator === BooleanOps.IS_TRUE\n ? Boolean(fieldValue) === true\n : operator === BooleanOps.IS_FALSE\n ? Boolean(fieldValue) === false\n : true;\n case 'string': {\n if (typeof fieldValue !== 'string') {\n return false;\n }\n const source = fieldValue.toLowerCase();\n const target = value.value.toLowerCase();\n switch (operator) {\n case StringOps.CONTAINS:\n return source.includes(target);\n case StringOps.NOT_CONTAINS:\n return !source.includes(target);\n case StringOps.STARTS_WITH:\n return source.startsWith(target);\n case StringOps.NOT_STARTS_WITH:\n return !source.startsWith(target);\n case StringOps.ENDS_WITH:\n return source.endsWith(target);\n case StringOps.NOT_ENDS_WITH:\n return !source.endsWith(target);\n case StringOps.IS:\n return source === target;\n case StringOps.IS_NOT:\n return source !== target;\n default:\n return true;\n }\n }\n case 'float':\n case 'integer': {\n if (typeof fieldValue !== 'number') {\n return false;\n }\n switch (operator) {\n case NumberOps.EQUALS:\n return fieldValue === value.value;\n case NumberOps.NOT_EQUALS:\n return fieldValue !== value.value;\n case NumberOps.GREATER_THAN:\n return fieldValue > value.value;\n case NumberOps.LESS_THAN:\n return fieldValue < value.value;\n case NumberOps.GREATER_THAN_OR_EQUAL:\n return fieldValue >= value.value;\n case NumberOps.LESS_THAN_OR_EQUAL:\n return fieldValue <= value.value;\n default:\n return true;\n }\n }\n case 'date_absolute': {\n if (\n !(fieldValue instanceof Temporal.Instant) &&\n typeof fieldValue !== 'number'\n ) {\n return false;\n }\n const unixSeconds = toUnixSeconds(fieldValue);\n return operator === DateOps.BEFORE\n ? unixSeconds < value.unixSeconds\n : operator === DateOps.AFTER\n ? unixSeconds > value.unixSeconds\n : true;\n }\n case 'date_range': {\n if (\n !(fieldValue instanceof Temporal.Instant) &&\n typeof fieldValue !== 'number'\n ) {\n return false;\n }\n const unixSeconds = toUnixSeconds(fieldValue);\n return (\n unixSeconds >= resolveRangePart(value.value.start) &&\n unixSeconds <= resolveRangePart(value.value.end)\n );\n }\n case 'enum':\n return typeof fieldValue === 'string'\n ? operator === EnumOps.IS\n ? fieldValue === value.value\n : operator === EnumOps.IS_NOT\n ? fieldValue !== value.value\n : true\n : false;\n case 'enum_list':\n case 'string_list': {\n const values = toStringArray(fieldValue);\n if (values == null) {\n return false;\n }\n return operator === ListOps.IS_ANY_OF\n ? values.some(item => value.value.includes(item))\n : operator === ListOps.IS_NONE_OF\n ? values.every(item => !value.value.includes(item))\n : true;\n }\n case 'custom':\n case 'date_relative':\n case 'entity_list':\n case 'nested':\n case 'time':\n return true;\n }\n}\n\nexport function createSearchFilterInputConfig<\n const D extends ReadonlyArray<FieldDefinition>,\n>(\n definitions: D,\n configName?: string,\n): {\n applyFilters: <T extends InferData<D>>(\n filters: ReadonlyArray<SearchFilterInputFilter>,\n data: ReadonlyArray<T>,\n ) => T[];\n config: SearchFilterInputConfig;\n} {\n const config: SearchFilterInputConfig = {\n fields: definitions.map(definition => ({\n key: definition.key,\n label: definition.label ?? definition.key,\n ...operatorsFor(definition),\n })),\n name: configName ?? 'SearchFilterInputConfig',\n };\n\n return {\n applyFilters(filters, data) {\n return filters.length === 0\n ? [...data]\n : data.filter(row =>\n filters.every(filter =>\n matchesFilter(row as Record<string, unknown>, filter),\n ),\n );\n },\n config,\n };\n}\n\nexport function useSearchFilterInputConfig<\n const D extends ReadonlyArray<FieldDefinition>,\n>(\n definitions: D,\n configName?: string,\n): {\n applyFilters: <T extends InferData<D>>(\n filters: ReadonlyArray<SearchFilterInputFilter>,\n data: ReadonlyArray<T>,\n ) => T[];\n config: SearchFilterInputConfig;\n} {\n return useMemo(\n () => createSearchFilterInputConfig(definitions, configName),\n [configName, definitions],\n );\n}\n"]}