silver-ui 0.4.0 → 0.6.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 (1117) hide show
  1. package/README.md +1 -65
  2. package/dist/{chunk-JYVYCU22.cjs → chunk-27EAV2GT.cjs} +2 -2
  3. package/dist/chunk-27EAV2GT.cjs.map +1 -0
  4. package/dist/{chunk-SR5VVJ5Y.cjs → chunk-2K4I2MB3.cjs} +5 -5
  5. package/dist/{chunk-SR5VVJ5Y.cjs.map → chunk-2K4I2MB3.cjs.map} +1 -1
  6. package/dist/{chunk-GYVWTH3U.cjs → chunk-2MXK2SDR.cjs} +2 -2
  7. package/dist/chunk-2MXK2SDR.cjs.map +1 -0
  8. package/dist/{chunk-AP7BDTTF.js → chunk-2SN3KVWF.js} +5 -5
  9. package/dist/chunk-2SN3KVWF.js.map +1 -0
  10. package/dist/{chunk-SCGXGVNN.cjs → chunk-3IDT3PZC.cjs} +18 -18
  11. package/dist/{chunk-SCGXGVNN.cjs.map → chunk-3IDT3PZC.cjs.map} +1 -1
  12. package/dist/chunk-3NIDAKCF.cjs +38 -0
  13. package/dist/chunk-3NIDAKCF.cjs.map +1 -0
  14. package/dist/chunk-3PEK2Q54.cjs +31 -0
  15. package/dist/chunk-3PEK2Q54.cjs.map +1 -0
  16. package/dist/{chunk-ZTWBG2XY.cjs → chunk-3W3ST5Y3.cjs} +6 -6
  17. package/dist/chunk-3W3ST5Y3.cjs.map +1 -0
  18. package/dist/{chunk-J3DNWPXJ.js → chunk-4426KMA7.js} +2 -2
  19. package/dist/{chunk-J3DNWPXJ.js.map → chunk-4426KMA7.js.map} +1 -1
  20. package/dist/{chunk-L6VSBBPP.js → chunk-45OSUS5A.js} +176 -102
  21. package/dist/chunk-45OSUS5A.js.map +1 -0
  22. package/dist/{chunk-FMLIYHDP.js → chunk-4EUUZQAM.js} +5 -5
  23. package/dist/chunk-4EUUZQAM.js.map +1 -0
  24. package/dist/{chunk-VUCMGGU5.js → chunk-4JJFQZVY.js} +129 -121
  25. package/dist/chunk-4JJFQZVY.js.map +1 -0
  26. package/dist/{chunk-3JPUXC5U.js → chunk-56PY2CD7.js} +17 -44
  27. package/dist/chunk-56PY2CD7.js.map +1 -0
  28. package/dist/chunk-5FQKELP6.js +28 -0
  29. package/dist/chunk-5FQKELP6.js.map +1 -0
  30. package/dist/{chunk-M4JUQCKP.js → chunk-5FTIATD6.js} +2 -2
  31. package/dist/{chunk-M4JUQCKP.js.map → chunk-5FTIATD6.js.map} +1 -1
  32. package/dist/{chunk-QSEDH7T2.js → chunk-5HPXUDX6.js} +3 -6
  33. package/dist/chunk-5HPXUDX6.js.map +1 -0
  34. package/dist/chunk-5JROXZBG.cjs +491 -0
  35. package/dist/chunk-5JROXZBG.cjs.map +1 -0
  36. package/dist/{chunk-FNZOICR4.cjs → chunk-5K3C3INR.cjs} +29 -58
  37. package/dist/chunk-5K3C3INR.cjs.map +1 -0
  38. package/dist/{chunk-N2TNBDQI.js → chunk-5RFHYDQY.js} +17 -12
  39. package/dist/chunk-5RFHYDQY.js.map +1 -0
  40. package/dist/{chunk-Z4TZAJS3.js → chunk-5UGHDUMO.js} +2 -2
  41. package/dist/chunk-5UGHDUMO.js.map +1 -0
  42. package/dist/{chunk-2XAA3CM5.js → chunk-5ZU7FY4O.js} +2 -2
  43. package/dist/chunk-5ZU7FY4O.js.map +1 -0
  44. package/dist/{chunk-NHXJVSZZ.cjs → chunk-62SQBQA4.cjs} +2 -2
  45. package/dist/chunk-62SQBQA4.cjs.map +1 -0
  46. package/dist/{chunk-BULJWVPU.cjs → chunk-6FC5YF2O.cjs} +19 -19
  47. package/dist/{chunk-BULJWVPU.cjs.map → chunk-6FC5YF2O.cjs.map} +1 -1
  48. package/dist/{chunk-2N6FOSNM.js → chunk-6I5QWA6A.js} +210 -172
  49. package/dist/chunk-6I5QWA6A.js.map +1 -0
  50. package/dist/chunk-6ZV7HGZT.cjs +169 -0
  51. package/dist/chunk-6ZV7HGZT.cjs.map +1 -0
  52. package/dist/{chunk-GL7PSN7H.cjs → chunk-7EE6DCRP.cjs} +29 -23
  53. package/dist/chunk-7EE6DCRP.cjs.map +1 -0
  54. package/dist/{chunk-6XWXBXYE.js → chunk-7TJ2O56S.js} +8 -10
  55. package/dist/chunk-7TJ2O56S.js.map +1 -0
  56. package/dist/chunk-A2AC6WL5.cjs +4 -0
  57. package/dist/chunk-A2AC6WL5.cjs.map +1 -0
  58. package/dist/{chunk-TBOQTPRO.cjs → chunk-AFJEAYR4.cjs} +91 -57
  59. package/dist/chunk-AFJEAYR4.cjs.map +1 -0
  60. package/dist/chunk-AFXU6XIS.js +3 -0
  61. package/dist/chunk-AFXU6XIS.js.map +1 -0
  62. package/dist/{chunk-PIZMCOKL.js → chunk-AKAXQ4RL.js} +276 -246
  63. package/dist/chunk-AKAXQ4RL.js.map +1 -0
  64. package/dist/{chunk-O2WICOUK.cjs → chunk-ARUOMLOJ.cjs} +24 -20
  65. package/dist/chunk-ARUOMLOJ.cjs.map +1 -0
  66. package/dist/{chunk-3OIUA2NY.js → chunk-ATK3F3MC.js} +5 -5
  67. package/dist/{chunk-3OIUA2NY.js.map → chunk-ATK3F3MC.js.map} +1 -1
  68. package/dist/{chunk-6ONAGCCZ.js → chunk-B5QX6KGJ.js} +113 -105
  69. package/dist/chunk-B5QX6KGJ.js.map +1 -0
  70. package/dist/{chunk-52WQDDWQ.js → chunk-BDFNEQR3.js} +50 -50
  71. package/dist/chunk-BDFNEQR3.js.map +1 -0
  72. package/dist/{chunk-JDAJ2HJQ.js → chunk-BGLT7XH6.js} +9 -9
  73. package/dist/chunk-BGLT7XH6.js.map +1 -0
  74. package/dist/{chunk-FDUO2HVX.js → chunk-BIKVMVWF.js} +2 -2
  75. package/dist/{chunk-FDUO2HVX.js.map → chunk-BIKVMVWF.js.map} +1 -1
  76. package/dist/{chunk-UUVLEOSD.js → chunk-BNGYGCT2.js} +9 -9
  77. package/dist/chunk-BNGYGCT2.js.map +1 -0
  78. package/dist/{chunk-W2Q4PQ6I.js → chunk-BQWUTDTN.js} +2 -2
  79. package/dist/{chunk-W2Q4PQ6I.js.map → chunk-BQWUTDTN.js.map} +1 -1
  80. package/dist/{chunk-E2A3GJSN.cjs → chunk-BSXUNRET.cjs} +11 -12
  81. package/dist/chunk-BSXUNRET.cjs.map +1 -0
  82. package/dist/chunk-BUYZZOOU.js +56 -0
  83. package/dist/chunk-BUYZZOOU.js.map +1 -0
  84. package/dist/{chunk-NFABMGNH.js → chunk-C6EWA3H2.js} +8 -8
  85. package/dist/chunk-C6EWA3H2.js.map +1 -0
  86. package/dist/{chunk-YWGYN6YV.cjs → chunk-CABYRYVA.cjs} +171 -153
  87. package/dist/chunk-CABYRYVA.cjs.map +1 -0
  88. package/dist/{chunk-5D2OR64D.cjs → chunk-CNDUYO7I.cjs} +7 -15
  89. package/dist/chunk-CNDUYO7I.cjs.map +1 -0
  90. package/dist/chunk-CPDWUT2H.cjs +59 -0
  91. package/dist/chunk-CPDWUT2H.cjs.map +1 -0
  92. package/dist/{chunk-C6EYCIKJ.cjs → chunk-CVT7JW6C.cjs} +276 -246
  93. package/dist/chunk-CVT7JW6C.cjs.map +1 -0
  94. package/dist/chunk-CZUMVOPH.js +3525 -0
  95. package/dist/chunk-CZUMVOPH.js.map +1 -0
  96. package/dist/{chunk-4CVDLMD6.js → chunk-D3CHBU46.js} +3 -3
  97. package/dist/{chunk-4CVDLMD6.js.map → chunk-D3CHBU46.js.map} +1 -1
  98. package/dist/{chunk-U6NH54YD.js → chunk-DAO4UXR4.js} +166 -148
  99. package/dist/chunk-DAO4UXR4.js.map +1 -0
  100. package/dist/{chunk-RDNMAV5B.js → chunk-DE7JLNSO.js} +2 -2
  101. package/dist/chunk-DE7JLNSO.js.map +1 -0
  102. package/dist/{chunk-TF7XVTSP.cjs → chunk-DFEAB7Z3.cjs} +15 -15
  103. package/dist/chunk-DFEAB7Z3.cjs.map +1 -0
  104. package/dist/{chunk-BLRWA445.cjs → chunk-DK6USFZP.cjs} +27 -27
  105. package/dist/chunk-DK6USFZP.cjs.map +1 -0
  106. package/dist/{chunk-JKERY7QF.cjs → chunk-DLIYUFTS.cjs} +2 -2
  107. package/dist/{chunk-JKERY7QF.cjs.map → chunk-DLIYUFTS.cjs.map} +1 -1
  108. package/dist/{chunk-JIVYPJKO.js → chunk-DPSAPA6B.js} +6 -6
  109. package/dist/chunk-DPSAPA6B.js.map +1 -0
  110. package/dist/{chunk-YAWVGZRC.js → chunk-DWZR2AGT.js} +6 -6
  111. package/dist/{chunk-YAWVGZRC.js.map → chunk-DWZR2AGT.js.map} +1 -1
  112. package/dist/{chunk-FB245S6T.cjs → chunk-DXUFDJHA.cjs} +17 -18
  113. package/dist/chunk-DXUFDJHA.cjs.map +1 -0
  114. package/dist/{chunk-G3KKLGZU.cjs → chunk-DYMZ4DLN.cjs} +8 -8
  115. package/dist/chunk-DYMZ4DLN.cjs.map +1 -0
  116. package/dist/{chunk-M2MC3E27.cjs → chunk-EEOUWM2F.cjs} +10 -10
  117. package/dist/chunk-EEOUWM2F.cjs.map +1 -0
  118. package/dist/{chunk-AFI4V7LI.js → chunk-EIJSWHG7.js} +11 -12
  119. package/dist/chunk-EIJSWHG7.js.map +1 -0
  120. package/dist/{chunk-PUVBNGCF.js → chunk-EIT2QSCA.js} +2 -2
  121. package/dist/{chunk-PUVBNGCF.js.map → chunk-EIT2QSCA.js.map} +1 -1
  122. package/dist/{chunk-YVHWOKR7.cjs → chunk-ENVDR66N.cjs} +314 -324
  123. package/dist/chunk-ENVDR66N.cjs.map +1 -0
  124. package/dist/chunk-ERVWZILR.js +321 -0
  125. package/dist/chunk-ERVWZILR.js.map +1 -0
  126. package/dist/{chunk-2A3V6OR7.cjs → chunk-EVCQCZMM.cjs} +5 -5
  127. package/dist/{chunk-2A3V6OR7.cjs.map → chunk-EVCQCZMM.cjs.map} +1 -1
  128. package/dist/{chunk-GC5VUTUR.cjs → chunk-EZFQCREN.cjs} +17 -44
  129. package/dist/chunk-EZFQCREN.cjs.map +1 -0
  130. package/dist/{chunk-FP5E5BUM.js → chunk-FIOCTAXT.js} +4 -4
  131. package/dist/chunk-FIOCTAXT.js.map +1 -0
  132. package/dist/{chunk-AWDIKDX5.cjs → chunk-FLDTPAG4.cjs} +11 -11
  133. package/dist/{chunk-AWDIKDX5.cjs.map → chunk-FLDTPAG4.cjs.map} +1 -1
  134. package/dist/{chunk-S7INL5NI.js → chunk-FQN22DO5.js} +10 -10
  135. package/dist/chunk-FQN22DO5.js.map +1 -0
  136. package/dist/{chunk-AJ6X62AI.js → chunk-FQSVY4QB.js} +3 -3
  137. package/dist/chunk-FQSVY4QB.js.map +1 -0
  138. package/dist/{chunk-3ZV3EGGK.cjs → chunk-FWBYCTUB.cjs} +24 -24
  139. package/dist/chunk-FWBYCTUB.cjs.map +1 -0
  140. package/dist/{chunk-WBQNPBXR.js → chunk-G5PU2EL2.js} +5 -5
  141. package/dist/{chunk-WBQNPBXR.js.map → chunk-G5PU2EL2.js.map} +1 -1
  142. package/dist/{chunk-WOIWI2UO.js → chunk-G6HS52US.js} +3 -3
  143. package/dist/chunk-G6HS52US.js.map +1 -0
  144. package/dist/chunk-GA77PPVL.cjs +217 -0
  145. package/dist/chunk-GA77PPVL.cjs.map +1 -0
  146. package/dist/chunk-GJKRSQEA.cjs +3541 -0
  147. package/dist/chunk-GJKRSQEA.cjs.map +1 -0
  148. package/dist/{chunk-7CCXHH6Y.cjs → chunk-GJZAGTPV.cjs} +7 -7
  149. package/dist/chunk-GJZAGTPV.cjs.map +1 -0
  150. package/dist/{chunk-SBS7U7CN.cjs → chunk-GU65FGY6.cjs} +4 -4
  151. package/dist/{chunk-SBS7U7CN.cjs.map → chunk-GU65FGY6.cjs.map} +1 -1
  152. package/dist/{chunk-K3XHXWBW.js → chunk-GUUCIG7U.js} +9 -9
  153. package/dist/{chunk-K3XHXWBW.js.map → chunk-GUUCIG7U.js.map} +1 -1
  154. package/dist/{chunk-RQ5BMSGU.js → chunk-H2EMKCWT.js} +3 -3
  155. package/dist/{chunk-RQ5BMSGU.js.map → chunk-H2EMKCWT.js.map} +1 -1
  156. package/dist/{chunk-JTFNNEWR.cjs → chunk-H5VMHDRD.cjs} +8 -10
  157. package/dist/chunk-H5VMHDRD.cjs.map +1 -0
  158. package/dist/{chunk-AHVHLNHU.cjs → chunk-H7VK36SZ.cjs} +213 -175
  159. package/dist/chunk-H7VK36SZ.cjs.map +1 -0
  160. package/dist/{chunk-YYNWZRXZ.js → chunk-HKGFMJFK.js} +491 -431
  161. package/dist/chunk-HKGFMJFK.js.map +1 -0
  162. package/dist/{chunk-2LABTS4P.js → chunk-HMJINNXZ.js} +24 -35
  163. package/dist/chunk-HMJINNXZ.js.map +1 -0
  164. package/dist/{chunk-WY5BOT7O.js → chunk-HPNY32G6.js} +4 -4
  165. package/dist/{chunk-WY5BOT7O.js.map → chunk-HPNY32G6.js.map} +1 -1
  166. package/dist/{chunk-IA5GII7N.cjs → chunk-HPOURAKV.cjs} +264 -218
  167. package/dist/chunk-HPOURAKV.cjs.map +1 -0
  168. package/dist/{chunk-LUQVSNQL.cjs → chunk-INQ34SVW.cjs} +141 -133
  169. package/dist/chunk-INQ34SVW.cjs.map +1 -0
  170. package/dist/{chunk-5YS43PSQ.cjs → chunk-IREOTHD3.cjs} +8 -8
  171. package/dist/chunk-IREOTHD3.cjs.map +1 -0
  172. package/dist/chunk-ISWZQUVA.cjs +409 -0
  173. package/dist/chunk-ISWZQUVA.cjs.map +1 -0
  174. package/dist/{chunk-XXBA3KSH.cjs → chunk-IU2YRN35.cjs} +112 -112
  175. package/dist/chunk-IU2YRN35.cjs.map +1 -0
  176. package/dist/{chunk-7T3SWOY7.js → chunk-IUW777WZ.js} +2 -2
  177. package/dist/{chunk-7T3SWOY7.js.map → chunk-IUW777WZ.js.map} +1 -1
  178. package/dist/{chunk-ZFBQ4R7M.cjs → chunk-J4LJXCXB.cjs} +15 -15
  179. package/dist/chunk-J4LJXCXB.cjs.map +1 -0
  180. package/dist/{chunk-4TIAKZ4Q.cjs → chunk-J4PIYOWT.cjs} +2 -2
  181. package/dist/{chunk-4TIAKZ4Q.cjs.map → chunk-J4PIYOWT.cjs.map} +1 -1
  182. package/dist/{chunk-LNT2IFOA.js → chunk-JC66FRQX.js} +3 -3
  183. package/dist/chunk-JC66FRQX.js.map +1 -0
  184. package/dist/{chunk-ZAX2UJBC.js → chunk-JHMUMJF3.js} +37 -28
  185. package/dist/chunk-JHMUMJF3.js.map +1 -0
  186. package/dist/{chunk-O32BKXTR.cjs → chunk-JIF5TZHC.cjs} +2 -2
  187. package/dist/chunk-JIF5TZHC.cjs.map +1 -0
  188. package/dist/{chunk-CK3UJQRI.cjs → chunk-JK4YAQ2N.cjs} +2 -6
  189. package/dist/chunk-JK4YAQ2N.cjs.map +1 -0
  190. package/dist/{chunk-G2U2W422.js → chunk-JR353MN5.js} +8 -8
  191. package/dist/chunk-JR353MN5.js.map +1 -0
  192. package/dist/{chunk-WGCGHFXE.cjs → chunk-JV4Y6HNP.cjs} +2 -2
  193. package/dist/{chunk-WGCGHFXE.cjs.map → chunk-JV4Y6HNP.cjs.map} +1 -1
  194. package/dist/{chunk-PIOMR4X2.js → chunk-K2V3IOAX.js} +4 -4
  195. package/dist/{chunk-PIOMR4X2.js.map → chunk-K2V3IOAX.js.map} +1 -1
  196. package/dist/{chunk-4H7X5FGX.js → chunk-K2WT7A64.js} +239 -274
  197. package/dist/chunk-K2WT7A64.js.map +1 -0
  198. package/dist/{chunk-SBOXHIES.js → chunk-KCI4I42U.js} +11 -11
  199. package/dist/chunk-KCI4I42U.js.map +1 -0
  200. package/dist/{chunk-HINS4GY6.js → chunk-KEPCKSDE.js} +168 -146
  201. package/dist/chunk-KEPCKSDE.js.map +1 -0
  202. package/dist/{chunk-LY6Z6A54.js → chunk-KG7RHDVX.js} +18 -12
  203. package/dist/chunk-KG7RHDVX.js.map +1 -0
  204. package/dist/{chunk-PYPXJC35.cjs → chunk-KUXFEAT4.cjs} +4 -4
  205. package/dist/{chunk-PYPXJC35.cjs.map → chunk-KUXFEAT4.cjs.map} +1 -1
  206. package/dist/chunk-KVEXSDEM.js +214 -0
  207. package/dist/chunk-KVEXSDEM.js.map +1 -0
  208. package/dist/{chunk-276LEL3G.cjs → chunk-KVJ27734.cjs} +4 -4
  209. package/dist/{chunk-276LEL3G.cjs.map → chunk-KVJ27734.cjs.map} +1 -1
  210. package/dist/{chunk-3CJC4QE6.js → chunk-KWZMXX4F.js} +5 -5
  211. package/dist/chunk-KWZMXX4F.js.map +1 -0
  212. package/dist/{chunk-SOCSUNIM.js → chunk-LDYUVGD4.js} +303 -313
  213. package/dist/chunk-LDYUVGD4.js.map +1 -0
  214. package/dist/{chunk-HNZWPIJE.js → chunk-LF6I2B7G.js} +215 -197
  215. package/dist/chunk-LF6I2B7G.js.map +1 -0
  216. package/dist/{chunk-W3C6QQF7.js → chunk-LLSWAAFH.js} +4 -4
  217. package/dist/chunk-LLSWAAFH.js.map +1 -0
  218. package/dist/{chunk-J5IRFGUP.js → chunk-M64WMYYV.js} +256 -210
  219. package/dist/chunk-M64WMYYV.js.map +1 -0
  220. package/dist/{chunk-VFGSNR35.js → chunk-MDQSVB2Y.js} +24 -20
  221. package/dist/chunk-MDQSVB2Y.js.map +1 -0
  222. package/dist/{chunk-M26XECB2.cjs → chunk-MHAXS4GO.cjs} +17 -19
  223. package/dist/chunk-MHAXS4GO.cjs.map +1 -0
  224. package/dist/{chunk-KXIILLQD.cjs → chunk-MHEPDHL5.cjs} +18 -18
  225. package/dist/chunk-MHEPDHL5.cjs.map +1 -0
  226. package/dist/{chunk-BCCPNGUV.js → chunk-MN2NCSQQ.js} +3 -3
  227. package/dist/{chunk-BCCPNGUV.js.map → chunk-MN2NCSQQ.js.map} +1 -1
  228. package/dist/{chunk-PQEFVHJZ.cjs → chunk-NFEL5GNX.cjs} +16 -15
  229. package/dist/chunk-NFEL5GNX.cjs.map +1 -0
  230. package/dist/{chunk-FDZQPWFZ.cjs → chunk-NG2H3PYA.cjs} +17 -17
  231. package/dist/chunk-NG2H3PYA.cjs.map +1 -0
  232. package/dist/{chunk-7U7JMRVF.cjs → chunk-NW36BN7N.cjs} +61 -61
  233. package/dist/chunk-NW36BN7N.cjs.map +1 -0
  234. package/dist/{chunk-QRFDPG34.js → chunk-NXTDP6AX.js} +12 -14
  235. package/dist/chunk-NXTDP6AX.js.map +1 -0
  236. package/dist/{chunk-VGHNBMEJ.cjs → chunk-NYTSAO5I.cjs} +6 -6
  237. package/dist/{chunk-VGHNBMEJ.cjs.map → chunk-NYTSAO5I.cjs.map} +1 -1
  238. package/dist/{chunk-YO3MBGBP.cjs → chunk-O4PO6AMS.cjs} +2 -2
  239. package/dist/{chunk-YO3MBGBP.cjs.map → chunk-O4PO6AMS.cjs.map} +1 -1
  240. package/dist/{chunk-BUESV4DR.cjs → chunk-P5LMEANN.cjs} +7 -7
  241. package/dist/{chunk-BUESV4DR.cjs.map → chunk-P5LMEANN.cjs.map} +1 -1
  242. package/dist/{chunk-NI55JEYL.js → chunk-P7TSM63O.js} +3 -3
  243. package/dist/{chunk-NI55JEYL.js.map → chunk-P7TSM63O.js.map} +1 -1
  244. package/dist/chunk-PG4CZRTU.js +77 -0
  245. package/dist/chunk-PG4CZRTU.js.map +1 -0
  246. package/dist/{chunk-XLKXFJMU.cjs → chunk-PHFJBQXU.cjs} +8 -8
  247. package/dist/chunk-PHFJBQXU.cjs.map +1 -0
  248. package/dist/{chunk-2OXKEUKG.cjs → chunk-PKZSJX53.cjs} +2 -2
  249. package/dist/chunk-PKZSJX53.cjs.map +1 -0
  250. package/dist/{chunk-J4OEETYQ.cjs → chunk-PNM7MPUX.cjs} +13 -13
  251. package/dist/{chunk-J4OEETYQ.cjs.map → chunk-PNM7MPUX.cjs.map} +1 -1
  252. package/dist/{chunk-TKTLWX2V.js → chunk-PU4PBI3H.js} +8 -8
  253. package/dist/{chunk-TKTLWX2V.js.map → chunk-PU4PBI3H.js.map} +1 -1
  254. package/dist/{chunk-LO5NZY7N.cjs → chunk-PYJX2SBC.cjs} +6 -6
  255. package/dist/chunk-PYJX2SBC.cjs.map +1 -0
  256. package/dist/{chunk-D3LZQ5QS.js → chunk-PYN75QAG.js} +6 -6
  257. package/dist/chunk-PYN75QAG.js.map +1 -0
  258. package/dist/chunk-PZHRFASW.js +36 -0
  259. package/dist/chunk-PZHRFASW.js.map +1 -0
  260. package/dist/{chunk-DP7VC4FW.cjs → chunk-QB2BSOM4.cjs} +2 -2
  261. package/dist/{chunk-DP7VC4FW.cjs.map → chunk-QB2BSOM4.cjs.map} +1 -1
  262. package/dist/{chunk-6ULCJ3XZ.js → chunk-QHXI2QDK.js} +3 -3
  263. package/dist/{chunk-6ULCJ3XZ.js.map → chunk-QHXI2QDK.js.map} +1 -1
  264. package/dist/{chunk-C732WXKS.cjs → chunk-QTOFQB26.cjs} +17 -17
  265. package/dist/chunk-QTOFQB26.cjs.map +1 -0
  266. package/dist/{chunk-TQA3BI7M.cjs → chunk-QYZXTIB2.cjs} +4 -4
  267. package/dist/{chunk-TQA3BI7M.cjs.map → chunk-QYZXTIB2.cjs.map} +1 -1
  268. package/dist/{chunk-YY6KJO5Z.cjs → chunk-R3ZS6FU6.cjs} +12 -12
  269. package/dist/chunk-R3ZS6FU6.cjs.map +1 -0
  270. package/dist/{chunk-G2WW52GO.cjs → chunk-RAMDISDK.cjs} +40 -31
  271. package/dist/chunk-RAMDISDK.cjs.map +1 -0
  272. package/dist/{chunk-SSOAZZNR.cjs → chunk-RLIBY7XB.cjs} +19 -14
  273. package/dist/chunk-RLIBY7XB.cjs.map +1 -0
  274. package/dist/chunk-RU7JPU7V.js +389 -0
  275. package/dist/chunk-RU7JPU7V.js.map +1 -0
  276. package/dist/{chunk-SSAYBCAD.js → chunk-RXKDRZF3.js} +5 -13
  277. package/dist/chunk-RXKDRZF3.js.map +1 -0
  278. package/dist/{chunk-VQ7U3ASC.js → chunk-S4IHNNA2.js} +111 -111
  279. package/dist/chunk-S4IHNNA2.js.map +1 -0
  280. package/dist/{chunk-MI5QU37D.js → chunk-S4WWBV4N.js} +24 -50
  281. package/dist/chunk-S4WWBV4N.js.map +1 -0
  282. package/dist/{chunk-RLOGQBFD.js → chunk-SEDUAMDW.js} +6 -6
  283. package/dist/chunk-SEDUAMDW.js.map +1 -0
  284. package/dist/{chunk-SUH62Z64.js → chunk-SHARVIUI.js} +2 -2
  285. package/dist/chunk-SHARVIUI.js.map +1 -0
  286. package/dist/chunk-SKZNSOB7.cjs +323 -0
  287. package/dist/chunk-SKZNSOB7.cjs.map +1 -0
  288. package/dist/{chunk-ZEA2VYX4.js → chunk-SZ27SCE2.js} +2 -2
  289. package/dist/{chunk-ZEA2VYX4.js.map → chunk-SZ27SCE2.js.map} +1 -1
  290. package/dist/{chunk-H2CZ6IE5.cjs → chunk-TNYAYXKC.cjs} +509 -451
  291. package/dist/chunk-TNYAYXKC.cjs.map +1 -0
  292. package/dist/{chunk-DXPQRAGI.js → chunk-TQDJVPHP.js} +3 -3
  293. package/dist/{chunk-DXPQRAGI.js.map → chunk-TQDJVPHP.js.map} +1 -1
  294. package/dist/{chunk-JSINCF2R.cjs → chunk-TVWU4XBL.cjs} +12 -12
  295. package/dist/{chunk-JSINCF2R.cjs.map → chunk-TVWU4XBL.cjs.map} +1 -1
  296. package/dist/{chunk-OBWWRRL6.cjs → chunk-U4L75VA4.cjs} +167 -159
  297. package/dist/chunk-U4L75VA4.cjs.map +1 -0
  298. package/dist/{chunk-X574M2JB.cjs → chunk-U5HW5P7Q.cjs} +13 -13
  299. package/dist/chunk-U5HW5P7Q.cjs.map +1 -0
  300. package/dist/{chunk-KDR5DCYL.cjs → chunk-UMS46KF4.cjs} +10 -10
  301. package/dist/{chunk-KDR5DCYL.cjs.map → chunk-UMS46KF4.cjs.map} +1 -1
  302. package/dist/{chunk-BSAZRW6T.js → chunk-UT45YVPI.js} +22 -15
  303. package/dist/chunk-UT45YVPI.js.map +1 -0
  304. package/dist/{chunk-LQIZSE3O.js → chunk-UYZQGHFI.js} +11 -11
  305. package/dist/chunk-UYZQGHFI.js.map +1 -0
  306. package/dist/{chunk-TPB53MHV.cjs → chunk-UZGPFPIV.cjs} +224 -206
  307. package/dist/chunk-UZGPFPIV.cjs.map +1 -0
  308. package/dist/{chunk-7BSFKG7N.js → chunk-V2V5TTTL.js} +2 -2
  309. package/dist/chunk-V2V5TTTL.js.map +1 -0
  310. package/dist/{chunk-IUUQXCDE.js → chunk-VJXSJXEX.js} +2 -2
  311. package/dist/{chunk-IUUQXCDE.js.map → chunk-VJXSJXEX.js.map} +1 -1
  312. package/dist/{chunk-JJ324PSZ.cjs → chunk-VK7DXUGH.cjs} +168 -145
  313. package/dist/chunk-VK7DXUGH.cjs.map +1 -0
  314. package/dist/{chunk-I45346RZ.cjs → chunk-VOOD6CXJ.cjs} +2 -2
  315. package/dist/{chunk-I45346RZ.cjs.map → chunk-VOOD6CXJ.cjs.map} +1 -1
  316. package/dist/chunk-VPWNRWNO.cjs +81 -0
  317. package/dist/chunk-VPWNRWNO.cjs.map +1 -0
  318. package/dist/{chunk-QATCDVZ6.cjs → chunk-VREW3BK6.cjs} +182 -108
  319. package/dist/chunk-VREW3BK6.cjs.map +1 -0
  320. package/dist/{chunk-DIRVAHOF.cjs → chunk-VRQ66IBW.cjs} +8 -8
  321. package/dist/chunk-VRQ66IBW.cjs.map +1 -0
  322. package/dist/chunk-VW52NVGM.cjs +391 -0
  323. package/dist/chunk-VW52NVGM.cjs.map +1 -0
  324. package/dist/{chunk-QOKEU3DC.cjs → chunk-VXOIOPGZ.cjs} +30 -41
  325. package/dist/chunk-VXOIOPGZ.cjs.map +1 -0
  326. package/dist/chunk-WAWHHXSR.js +166 -0
  327. package/dist/chunk-WAWHHXSR.js.map +1 -0
  328. package/dist/{chunk-2RKMG2TC.js → chunk-WEXTGWRE.js} +176 -140
  329. package/dist/chunk-WEXTGWRE.js.map +1 -0
  330. package/dist/{chunk-ILEKDNP7.js → chunk-WHDDBOJN.js} +7 -7
  331. package/dist/{chunk-ILEKDNP7.js.map → chunk-WHDDBOJN.js.map} +1 -1
  332. package/dist/{chunk-QVNDZZS6.cjs → chunk-WINDLDH3.cjs} +9 -9
  333. package/dist/chunk-WINDLDH3.cjs.map +1 -0
  334. package/dist/{chunk-DWUEPOYH.js → chunk-WM7NEOME.js} +8 -8
  335. package/dist/chunk-WM7NEOME.js.map +1 -0
  336. package/dist/{chunk-ZQUPAIBS.js → chunk-WTCH3QCQ.js} +10 -11
  337. package/dist/chunk-WTCH3QCQ.js.map +1 -0
  338. package/dist/{chunk-K4ZJNQTX.cjs → chunk-X34F4ZV6.cjs} +2 -2
  339. package/dist/{chunk-K4ZJNQTX.cjs.map → chunk-X34F4ZV6.cjs.map} +1 -1
  340. package/dist/{chunk-2P6D43V2.cjs → chunk-XPHXAZCE.cjs} +6 -6
  341. package/dist/chunk-XPHXAZCE.cjs.map +1 -0
  342. package/dist/{chunk-WBGFFP3G.js → chunk-XTLNUYCK.js} +90 -56
  343. package/dist/chunk-XTLNUYCK.js.map +1 -0
  344. package/dist/{chunk-ZN7CULIL.cjs → chunk-ZPOXH42B.cjs} +2 -2
  345. package/dist/{chunk-ZN7CULIL.cjs.map → chunk-ZPOXH42B.cjs.map} +1 -1
  346. package/dist/{chunk-EBDODJ5X.js → chunk-ZSB43DEI.js} +8 -7
  347. package/dist/chunk-ZSB43DEI.js.map +1 -0
  348. package/dist/{chunk-VHKA25IV.cjs → chunk-ZUAWNT66.cjs} +36 -29
  349. package/dist/chunk-ZUAWNT66.cjs.map +1 -0
  350. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  351. package/dist/components/Accordion/index.cjs +5 -5
  352. package/dist/components/Accordion/index.d.ts +2 -2
  353. package/dist/components/Accordion/index.d.ts.map +1 -1
  354. package/dist/components/Accordion/index.js +2 -2
  355. package/dist/components/Accordion/useAccordionDevWarning.d.ts +8 -0
  356. package/dist/components/Accordion/useAccordionDevWarning.d.ts.map +1 -0
  357. package/dist/components/Alert/Alert.d.ts +2 -11
  358. package/dist/components/Alert/Alert.d.ts.map +1 -1
  359. package/dist/components/Alert/Alert.recipe.d.ts +1 -1
  360. package/dist/components/Alert/Alert.types.d.ts +3 -0
  361. package/dist/components/Alert/Alert.types.d.ts.map +1 -0
  362. package/dist/components/Alert/index.cjs +13 -11
  363. package/dist/components/Alert/index.d.ts.map +1 -1
  364. package/dist/components/Alert/index.js +12 -10
  365. package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -1
  366. package/dist/components/AlertDialog/index.cjs +18 -14
  367. package/dist/components/AlertDialog/index.d.ts.map +1 -1
  368. package/dist/components/AlertDialog/index.js +16 -12
  369. package/dist/components/AlertDialog/useAlertDialog.d.ts.map +1 -1
  370. package/dist/components/AppShell/AppShell.d.ts.map +1 -1
  371. package/dist/components/AppShell/index.cjs +23 -19
  372. package/dist/components/AppShell/index.d.ts.map +1 -1
  373. package/dist/components/AppShell/index.js +20 -16
  374. package/dist/components/AspectRatio/index.cjs +2 -2
  375. package/dist/components/AspectRatio/index.d.ts +1 -1
  376. package/dist/components/AspectRatio/index.d.ts.map +1 -1
  377. package/dist/components/AspectRatio/index.js +1 -1
  378. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts +1 -1
  379. package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
  380. package/dist/components/AutocompleteInput/AutocompleteInput.recipe.d.ts +1 -1
  381. package/dist/components/AutocompleteInput/AutocompleteInputItem.d.ts +1 -1
  382. package/dist/components/AutocompleteInput/AutocompleteInputItem.d.ts.map +1 -1
  383. package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
  384. package/dist/components/AutocompleteInput/index.cjs +21 -19
  385. package/dist/components/AutocompleteInput/index.d.ts.map +1 -1
  386. package/dist/components/AutocompleteInput/index.js +17 -15
  387. package/dist/components/Avatar/Avatar.recipe.d.ts +1 -1
  388. package/dist/components/Avatar/index.cjs +5 -5
  389. package/dist/components/Avatar/index.d.ts.map +1 -1
  390. package/dist/components/Avatar/index.js +2 -2
  391. package/dist/components/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  392. package/dist/components/AvatarGroup/AvatarGroupContext.d.ts.map +1 -1
  393. package/dist/components/AvatarGroup/index.cjs +5 -5
  394. package/dist/components/AvatarGroup/index.d.ts +1 -1
  395. package/dist/components/AvatarGroup/index.d.ts.map +1 -1
  396. package/dist/components/AvatarGroup/index.js +3 -3
  397. package/dist/components/Badge/Badge.d.ts.map +1 -1
  398. package/dist/components/Badge/index.cjs +3 -3
  399. package/dist/components/Badge/index.d.ts +1 -1
  400. package/dist/components/Badge/index.d.ts.map +1 -1
  401. package/dist/components/Badge/index.js +2 -2
  402. package/dist/components/Blockquote/Blockquote.recipe.d.ts +1 -1
  403. package/dist/components/Blockquote/index.cjs +2 -2
  404. package/dist/components/Blockquote/index.d.ts +1 -1
  405. package/dist/components/Blockquote/index.d.ts.map +1 -1
  406. package/dist/components/Blockquote/index.js +1 -1
  407. package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  408. package/dist/components/Breadcrumbs/BreadcrumbItem.recipe.d.ts +1 -1
  409. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  410. package/dist/components/Breadcrumbs/Breadcrumbs.recipe.d.ts +1 -1
  411. package/dist/components/Breadcrumbs/index.cjs +6 -11
  412. package/dist/components/Breadcrumbs/index.d.ts +2 -2
  413. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  414. package/dist/components/Breadcrumbs/index.js +3 -8
  415. package/dist/components/Button/Button.d.ts +7 -7
  416. package/dist/components/Button/Button.d.ts.map +1 -1
  417. package/dist/components/Button/Button.recipe.d.ts +1 -1
  418. package/dist/components/Button/Button.types.d.ts +3 -0
  419. package/dist/components/Button/Button.types.d.ts.map +1 -0
  420. package/dist/components/Button/index.cjs +12 -10
  421. package/dist/components/Button/index.d.ts +1 -1
  422. package/dist/components/Button/index.d.ts.map +1 -1
  423. package/dist/components/Button/index.js +11 -9
  424. package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  425. package/dist/components/ButtonGroup/ButtonGroupContext.d.ts.map +1 -1
  426. package/dist/components/ButtonGroup/index.cjs +3 -3
  427. package/dist/components/ButtonGroup/index.d.ts +1 -1
  428. package/dist/components/ButtonGroup/index.d.ts.map +1 -1
  429. package/dist/components/ButtonGroup/index.js +2 -2
  430. package/dist/components/Calendar/Calendar.d.ts +16 -3
  431. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  432. package/dist/components/Calendar/Calendar.recipe.d.ts +1 -1
  433. package/dist/components/Calendar/index.cjs +14 -12
  434. package/dist/components/Calendar/index.d.ts.map +1 -1
  435. package/dist/components/Calendar/index.js +13 -11
  436. package/dist/components/Card/Card.d.ts.map +1 -1
  437. package/dist/components/Card/index.cjs +2 -2
  438. package/dist/components/Card/index.d.ts +1 -1
  439. package/dist/components/Card/index.d.ts.map +1 -1
  440. package/dist/components/Card/index.js +1 -1
  441. package/dist/components/Center/Center.d.ts.map +1 -1
  442. package/dist/components/Center/index.cjs +2 -2
  443. package/dist/components/Center/index.d.ts +1 -1
  444. package/dist/components/Center/index.d.ts.map +1 -1
  445. package/dist/components/Center/index.js +1 -1
  446. package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  447. package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts +1 -1
  448. package/dist/components/CheckboxInput/index.cjs +12 -11
  449. package/dist/components/CheckboxInput/index.d.ts.map +1 -1
  450. package/dist/components/CheckboxInput/index.js +11 -10
  451. package/dist/components/CodeBlock/CodeBlock.d.ts.map +1 -1
  452. package/dist/components/CodeBlock/CodeBlock.recipe.d.ts +1 -1
  453. package/dist/components/CodeBlock/index.cjs +15 -13
  454. package/dist/components/CodeBlock/index.d.ts.map +1 -1
  455. package/dist/components/CodeBlock/index.js +14 -12
  456. package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -1
  457. package/dist/components/ContextMenu/index.cjs +18 -17
  458. package/dist/components/ContextMenu/index.d.ts.map +1 -1
  459. package/dist/components/ContextMenu/index.js +16 -15
  460. package/dist/components/DateInput/DateInput.d.ts +7 -5
  461. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  462. package/dist/components/DateInput/index.cjs +19 -17
  463. package/dist/components/DateInput/index.d.ts +1 -1
  464. package/dist/components/DateInput/index.d.ts.map +1 -1
  465. package/dist/components/DateInput/index.js +18 -16
  466. package/dist/components/DateRangeInput/DateRangeInput.d.ts +5 -5
  467. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  468. package/dist/components/DateRangeInput/index.cjs +19 -17
  469. package/dist/components/DateRangeInput/index.d.ts.map +1 -1
  470. package/dist/components/DateRangeInput/index.js +18 -16
  471. package/dist/components/DateTimeInput/DateTimeInput.d.ts +4 -4
  472. package/dist/components/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  473. package/dist/components/DateTimeInput/index.cjs +21 -19
  474. package/dist/components/DateTimeInput/index.d.ts.map +1 -1
  475. package/dist/components/DateTimeInput/index.js +20 -18
  476. package/dist/components/Dialog/Dialog.d.ts +2 -4
  477. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  478. package/dist/components/Dialog/index.cjs +5 -3
  479. package/dist/components/Dialog/index.d.ts +1 -1
  480. package/dist/components/Dialog/index.d.ts.map +1 -1
  481. package/dist/components/Dialog/index.js +3 -1
  482. package/dist/components/Dialog/useDialog.d.ts.map +1 -1
  483. package/dist/components/Divider/Divider.recipe.d.ts +1 -1
  484. package/dist/components/Divider/index.cjs +2 -2
  485. package/dist/components/Divider/index.d.ts.map +1 -1
  486. package/dist/components/Divider/index.js +1 -1
  487. package/dist/components/Drawer/Drawer.d.ts +10 -2
  488. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  489. package/dist/components/Drawer/Drawer.recipe.d.ts +63 -0
  490. package/dist/components/Drawer/Drawer.recipe.d.ts.map +1 -0
  491. package/dist/components/Drawer/index.cjs +7 -3
  492. package/dist/components/Drawer/index.d.ts +2 -2
  493. package/dist/components/Drawer/index.d.ts.map +1 -1
  494. package/dist/components/Drawer/index.js +5 -1
  495. package/dist/components/Drawer/useDrawer.d.ts.map +1 -1
  496. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  497. package/dist/components/DropdownMenu/DropdownMenuContext.d.ts.map +1 -1
  498. package/dist/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  499. package/dist/components/DropdownMenu/index.cjs +19 -18
  500. package/dist/components/DropdownMenu/index.d.ts +1 -1
  501. package/dist/components/DropdownMenu/index.d.ts.map +1 -1
  502. package/dist/components/DropdownMenu/index.js +15 -14
  503. package/dist/components/DropdownMenu/menuUtils.d.ts.map +1 -1
  504. package/dist/components/DropdownMenu/types.d.ts.map +1 -1
  505. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
  506. package/dist/components/EmptyState/EmptyState.recipe.d.ts +1 -1
  507. package/dist/components/EmptyState/index.cjs +5 -5
  508. package/dist/components/EmptyState/index.d.ts +1 -1
  509. package/dist/components/EmptyState/index.d.ts.map +1 -1
  510. package/dist/components/EmptyState/index.js +4 -4
  511. package/dist/components/Field/Field.d.ts +1 -1
  512. package/dist/components/Field/Field.d.ts.map +1 -1
  513. package/dist/components/Field/Field.recipe.d.ts +1 -1
  514. package/dist/components/Field/index.cjs +8 -8
  515. package/dist/components/Field/index.d.ts +1 -1
  516. package/dist/components/Field/index.d.ts.map +1 -1
  517. package/dist/components/Field/index.js +6 -6
  518. package/dist/components/Field/inputUtils.d.ts.map +1 -1
  519. package/dist/components/FileInput/FileInput.d.ts.map +1 -1
  520. package/dist/components/FileInput/FileInput.recipe.d.ts +66 -0
  521. package/dist/components/FileInput/FileInput.recipe.d.ts.map +1 -0
  522. package/dist/components/FileInput/index.cjs +15 -14
  523. package/dist/components/FileInput/index.d.ts +1 -1
  524. package/dist/components/FileInput/index.d.ts.map +1 -1
  525. package/dist/components/FileInput/index.js +14 -13
  526. package/dist/components/HoverCard/HoverCard.d.ts +7 -7
  527. package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
  528. package/dist/components/HoverCard/index.cjs +4 -4
  529. package/dist/components/HoverCard/index.d.ts.map +1 -1
  530. package/dist/components/HoverCard/index.js +2 -2
  531. package/dist/components/HoverCard/useHoverCard.d.ts.map +1 -1
  532. package/dist/components/Icon/index.cjs +2 -2
  533. package/dist/components/Icon/index.d.ts.map +1 -1
  534. package/dist/components/Icon/index.js +1 -1
  535. package/dist/components/InputGroup/InputGroup.d.ts.map +1 -1
  536. package/dist/components/InputGroup/InputGroup.recipe.d.ts +1 -1
  537. package/dist/components/InputGroup/InputGroup.recipe.d.ts.map +1 -1
  538. package/dist/components/InputGroup/InputGroupContext.d.ts.map +1 -1
  539. package/dist/components/InputGroup/InputGroupText.d.ts.map +1 -1
  540. package/dist/components/InputGroup/index.cjs +11 -11
  541. package/dist/components/InputGroup/index.d.ts +2 -2
  542. package/dist/components/InputGroup/index.d.ts.map +1 -1
  543. package/dist/components/InputGroup/index.js +7 -7
  544. package/dist/components/Item/Item.d.ts +1 -1
  545. package/dist/components/Item/Item.d.ts.map +1 -1
  546. package/dist/components/Item/Item.recipe.d.ts +75 -0
  547. package/dist/components/Item/Item.recipe.d.ts.map +1 -0
  548. package/dist/components/Item/index.cjs +8 -8
  549. package/dist/components/Item/index.d.ts +1 -1
  550. package/dist/components/Item/index.d.ts.map +1 -1
  551. package/dist/components/Item/index.js +7 -7
  552. package/dist/components/Kbd/Kbd.recipe.d.ts +1 -1
  553. package/dist/components/Kbd/index.cjs +2 -2
  554. package/dist/components/Kbd/index.d.ts.map +1 -1
  555. package/dist/components/Kbd/index.js +1 -1
  556. package/dist/components/Layout/Layout.d.ts +1 -1
  557. package/dist/components/Layout/Layout.d.ts.map +1 -1
  558. package/dist/components/Layout/Layout.recipe.d.ts +118 -16
  559. package/dist/components/Layout/Layout.recipe.d.ts.map +1 -1
  560. package/dist/components/Layout/LayoutContent.d.ts.map +1 -1
  561. package/dist/components/Layout/LayoutContext.d.ts +0 -7
  562. package/dist/components/Layout/LayoutContext.d.ts.map +1 -1
  563. package/dist/components/Layout/LayoutFooter.d.ts +1 -1
  564. package/dist/components/Layout/LayoutFooter.d.ts.map +1 -1
  565. package/dist/components/Layout/LayoutHeader.d.ts +6 -1
  566. package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
  567. package/dist/components/Layout/LayoutPanel.d.ts.map +1 -1
  568. package/dist/components/Layout/index.cjs +17 -15
  569. package/dist/components/Layout/index.d.ts +4 -4
  570. package/dist/components/Layout/index.d.ts.map +1 -1
  571. package/dist/components/Layout/index.js +12 -10
  572. package/dist/components/Layout/types.d.ts +4 -2
  573. package/dist/components/Layout/types.d.ts.map +1 -1
  574. package/dist/components/Lightbox/Lightbox.d.ts.map +1 -1
  575. package/dist/components/Lightbox/Lightbox.recipe.d.ts +43 -0
  576. package/dist/components/Lightbox/Lightbox.recipe.d.ts.map +1 -0
  577. package/dist/components/Lightbox/index.cjs +15 -12
  578. package/dist/components/Lightbox/index.d.ts.map +1 -1
  579. package/dist/components/Lightbox/index.js +13 -10
  580. package/dist/components/Lightbox/useLightbox.d.ts.map +1 -1
  581. package/dist/components/Link/Link.d.ts +5 -6
  582. package/dist/components/Link/Link.d.ts.map +1 -1
  583. package/dist/components/Link/Link.recipe.d.ts.map +1 -1
  584. package/dist/components/Link/LinkContext.d.ts.map +1 -1
  585. package/dist/components/Link/LinkProvider.d.ts.map +1 -1
  586. package/dist/components/Link/index.cjs +11 -8
  587. package/dist/components/Link/index.d.ts +1 -1
  588. package/dist/components/Link/index.d.ts.map +1 -1
  589. package/dist/components/Link/index.js +8 -5
  590. package/dist/components/Link/useLinkComponent.d.ts.map +1 -1
  591. package/dist/components/List/List.d.ts.map +1 -1
  592. package/dist/components/List/List.recipe.d.ts +1 -1
  593. package/dist/components/List/index.cjs +9 -10
  594. package/dist/components/List/index.d.ts.map +1 -1
  595. package/dist/components/List/index.js +7 -8
  596. package/dist/components/MetadataList/MetadataList.d.ts.map +1 -1
  597. package/dist/components/MetadataList/MetadataList.recipe.d.ts +37 -0
  598. package/dist/components/MetadataList/MetadataList.recipe.d.ts.map +1 -0
  599. package/dist/components/MetadataList/MetadataListItem.d.ts +6 -1
  600. package/dist/components/MetadataList/MetadataListItem.d.ts.map +1 -1
  601. package/dist/components/MetadataList/index.cjs +11 -7
  602. package/dist/components/MetadataList/index.d.ts +1 -1
  603. package/dist/components/MetadataList/index.d.ts.map +1 -1
  604. package/dist/components/MetadataList/index.js +9 -5
  605. package/dist/components/MultiSelect/MultiSelect.d.ts +1 -1
  606. package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
  607. package/dist/components/MultiSelect/MultiSelect.recipe.d.ts +41 -0
  608. package/dist/components/MultiSelect/MultiSelect.recipe.d.ts.map +1 -0
  609. package/dist/components/MultiSelect/index.cjs +18 -17
  610. package/dist/components/MultiSelect/index.d.ts.map +1 -1
  611. package/dist/components/MultiSelect/index.js +17 -16
  612. package/dist/components/NavIcon/index.cjs +2 -2
  613. package/dist/components/NavIcon/index.d.ts.map +1 -1
  614. package/dist/components/NavIcon/index.js +1 -1
  615. package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
  616. package/dist/components/NumberInput/index.cjs +16 -14
  617. package/dist/components/NumberInput/index.d.ts +1 -1
  618. package/dist/components/NumberInput/index.d.ts.map +1 -1
  619. package/dist/components/NumberInput/index.js +15 -13
  620. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  621. package/dist/components/Pagination/index.cjs +13 -11
  622. package/dist/components/Pagination/index.d.ts.map +1 -1
  623. package/dist/components/Pagination/index.js +12 -10
  624. package/dist/components/PasswordInput/PasswordInput.d.ts.map +1 -1
  625. package/dist/components/PasswordInput/index.cjs +17 -15
  626. package/dist/components/PasswordInput/index.d.ts +1 -1
  627. package/dist/components/PasswordInput/index.d.ts.map +1 -1
  628. package/dist/components/PasswordInput/index.js +16 -14
  629. package/dist/components/Popover/Popover.d.ts +21 -3
  630. package/dist/components/Popover/Popover.d.ts.map +1 -1
  631. package/dist/components/Popover/index.cjs +14 -13
  632. package/dist/components/Popover/index.d.ts.map +1 -1
  633. package/dist/components/Popover/index.js +12 -11
  634. package/dist/components/Popover/usePopover.d.ts +72 -2
  635. package/dist/components/Popover/usePopover.d.ts.map +1 -1
  636. package/dist/components/Progress/Progress.recipe.d.ts +1 -1
  637. package/dist/components/Progress/index.cjs +3 -3
  638. package/dist/components/Progress/index.d.ts +1 -1
  639. package/dist/components/Progress/index.d.ts.map +1 -1
  640. package/dist/components/Progress/index.js +2 -2
  641. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  642. package/dist/components/RadioGroup/RadioGroup.recipe.d.ts +1 -1
  643. package/dist/components/RadioGroup/index.cjs +13 -12
  644. package/dist/components/RadioGroup/index.d.ts +1 -1
  645. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  646. package/dist/components/RadioGroup/index.js +11 -10
  647. package/dist/components/Rating/Rating.d.ts.map +1 -1
  648. package/dist/components/Rating/Rating.recipe.d.ts +1 -1
  649. package/dist/components/Rating/index.cjs +4 -4
  650. package/dist/components/Rating/index.d.ts.map +1 -1
  651. package/dist/components/Rating/index.js +3 -3
  652. package/dist/components/Schedule/CalendarEvent.d.ts +20 -6
  653. package/dist/components/Schedule/CalendarEvent.d.ts.map +1 -1
  654. package/dist/components/Schedule/DayView.d.ts +7 -1
  655. package/dist/components/Schedule/DayView.d.ts.map +1 -1
  656. package/dist/components/Schedule/ListView.d.ts.map +1 -1
  657. package/dist/components/Schedule/ListView.recipe.d.ts +56 -0
  658. package/dist/components/Schedule/ListView.recipe.d.ts.map +1 -0
  659. package/dist/components/Schedule/MonthlyView.d.ts +12 -1
  660. package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
  661. package/dist/components/Schedule/MonthlyView.recipe.d.ts +47 -0
  662. package/dist/components/Schedule/MonthlyView.recipe.d.ts.map +1 -0
  663. package/dist/components/Schedule/Schedule.d.ts +2 -6
  664. package/dist/components/Schedule/Schedule.d.ts.map +1 -1
  665. package/dist/components/Schedule/Schedule.recipe.d.ts +8 -0
  666. package/dist/components/Schedule/Schedule.recipe.d.ts.map +1 -0
  667. package/dist/components/Schedule/ScheduleEvent.recipe.d.ts +208 -0
  668. package/dist/components/Schedule/ScheduleEvent.recipe.d.ts.map +1 -0
  669. package/dist/components/Schedule/TimeGridView.d.ts +7 -1
  670. package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
  671. package/dist/components/Schedule/TimeGridView.recipe.d.ts +43 -0
  672. package/dist/components/Schedule/TimeGridView.recipe.d.ts.map +1 -0
  673. package/dist/components/Schedule/WeeklyView.d.ts +7 -1
  674. package/dist/components/Schedule/WeeklyView.d.ts.map +1 -1
  675. package/dist/components/Schedule/context.d.ts +4 -8
  676. package/dist/components/Schedule/context.d.ts.map +1 -1
  677. package/dist/components/Schedule/dateMath.d.ts +1 -1
  678. package/dist/components/Schedule/dateMath.d.ts.map +1 -1
  679. package/dist/components/Schedule/index.cjs +50 -27
  680. package/dist/components/Schedule/index.d.ts +8 -4
  681. package/dist/components/Schedule/index.d.ts.map +1 -1
  682. package/dist/components/Schedule/index.js +23 -16
  683. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts +23 -0
  684. package/dist/components/Schedule/plugins/EventMovePlugin.d.ts.map +1 -0
  685. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts +31 -0
  686. package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts.map +1 -0
  687. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts +24 -0
  688. package/dist/components/Schedule/plugins/EventResizePlugin.d.ts.map +1 -0
  689. package/dist/components/Schedule/plugins/PaginationPlugin.d.ts +3 -3
  690. package/dist/components/Schedule/plugins/PaginationPlugin.d.ts.map +1 -1
  691. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts +39 -0
  692. package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts.map +1 -0
  693. package/dist/components/Schedule/plugins/ViewSelectorPlugin.d.ts.map +1 -1
  694. package/dist/components/Schedule/plugins/index.d.ts +4 -0
  695. package/dist/components/Schedule/plugins/index.d.ts.map +1 -1
  696. package/dist/components/Schedule/scheduleZonedInstant.d.ts +17 -0
  697. package/dist/components/Schedule/scheduleZonedInstant.d.ts.map +1 -0
  698. package/dist/components/Schedule/shared.d.ts +68 -22
  699. package/dist/components/Schedule/shared.d.ts.map +1 -1
  700. package/dist/components/Schedule/types.d.ts +55 -8
  701. package/dist/components/Schedule/types.d.ts.map +1 -1
  702. package/dist/components/Schedule/useCurrentTime.d.ts.map +1 -1
  703. package/dist/components/SearchFilterInput/SearchFilterInput.d.ts +1 -1
  704. package/dist/components/SearchFilterInput/SearchFilterInput.d.ts.map +1 -1
  705. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.d.ts.map +1 -1
  706. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts +4 -0
  707. package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts.map +1 -0
  708. package/dist/components/SearchFilterInput/SearchFilterInputFilterEditor.d.ts.map +1 -1
  709. package/dist/components/SearchFilterInput/SearchFilterInputTag.d.ts +1 -1
  710. package/dist/components/SearchFilterInput/SearchFilterInputTag.d.ts.map +1 -1
  711. package/dist/components/SearchFilterInput/SearchFilterInputValueEditor.d.ts +1 -2
  712. package/dist/components/SearchFilterInput/SearchFilterInputValueEditor.d.ts.map +1 -1
  713. package/dist/components/SearchFilterInput/formatFilterValue.d.ts +1 -2
  714. package/dist/components/SearchFilterInput/formatFilterValue.d.ts.map +1 -1
  715. package/dist/components/SearchFilterInput/index.cjs +39 -36
  716. package/dist/components/SearchFilterInput/index.d.ts.map +1 -1
  717. package/dist/components/SearchFilterInput/index.js +31 -28
  718. package/dist/components/SearchFilterInput/internalConfig.d.ts.map +1 -1
  719. package/dist/components/SearchFilterInput/types.d.ts.map +1 -1
  720. package/dist/components/SearchFilterInput/useSearchFilterInputConfig.d.ts.map +1 -1
  721. package/dist/components/SearchFilterInput/useSearchFilterInputSource.d.ts.map +1 -1
  722. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  723. package/dist/components/SegmentedControl/SegmentedControl.recipe.d.ts +73 -0
  724. package/dist/components/SegmentedControl/SegmentedControl.recipe.d.ts.map +1 -0
  725. package/dist/components/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  726. package/dist/components/SegmentedControl/index.cjs +6 -5
  727. package/dist/components/SegmentedControl/index.d.ts +1 -1
  728. package/dist/components/SegmentedControl/index.d.ts.map +1 -1
  729. package/dist/components/SegmentedControl/index.js +4 -3
  730. package/dist/components/Select/Select.d.ts +1 -1
  731. package/dist/components/Select/Select.d.ts.map +1 -1
  732. package/dist/components/Select/Select.recipe.d.ts +1 -1
  733. package/dist/components/Select/SelectOption.d.ts.map +1 -1
  734. package/dist/components/Select/index.cjs +19 -18
  735. package/dist/components/Select/index.d.ts +1 -1
  736. package/dist/components/Select/index.d.ts.map +1 -1
  737. package/dist/components/Select/index.js +17 -16
  738. package/dist/components/SideNav/SideNav.d.ts.map +1 -1
  739. package/dist/components/SideNav/SideNav.recipe.d.ts +26 -7
  740. package/dist/components/SideNav/SideNav.recipe.d.ts.map +1 -1
  741. package/dist/components/SideNav/SideNavHeading.d.ts.map +1 -1
  742. package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
  743. package/dist/components/SideNav/SideNavItem.recipe.d.ts +51 -0
  744. package/dist/components/SideNav/SideNavItem.recipe.d.ts.map +1 -0
  745. package/dist/components/SideNav/SideNavSection.d.ts.map +1 -1
  746. package/dist/components/SideNav/index.cjs +22 -18
  747. package/dist/components/SideNav/index.d.ts +3 -3
  748. package/dist/components/SideNav/index.d.ts.map +1 -1
  749. package/dist/components/SideNav/index.js +16 -12
  750. package/dist/components/Skeleton/index.cjs +2 -2
  751. package/dist/components/Skeleton/index.d.ts +1 -1
  752. package/dist/components/Skeleton/index.d.ts.map +1 -1
  753. package/dist/components/Skeleton/index.js +1 -1
  754. package/dist/components/Slider/Slider.d.ts.map +1 -1
  755. package/dist/components/Slider/Slider.recipe.d.ts +1 -1
  756. package/dist/components/Slider/index.cjs +8 -8
  757. package/dist/components/Slider/index.d.ts.map +1 -1
  758. package/dist/components/Slider/index.js +7 -7
  759. package/dist/components/Spinner/Spinner.d.ts +1 -4
  760. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  761. package/dist/components/Spinner/Spinner.types.d.ts +3 -0
  762. package/dist/components/Spinner/Spinner.types.d.ts.map +1 -0
  763. package/dist/components/Spinner/index.cjs +5 -5
  764. package/dist/components/Spinner/index.d.ts.map +1 -1
  765. package/dist/components/Spinner/index.js +4 -4
  766. package/dist/components/SplitButton/SplitButton.d.ts.map +1 -1
  767. package/dist/components/SplitButton/index.cjs +18 -17
  768. package/dist/components/SplitButton/index.d.ts +1 -1
  769. package/dist/components/SplitButton/index.d.ts.map +1 -1
  770. package/dist/components/SplitButton/index.js +17 -16
  771. package/dist/components/Stack/HStack.d.ts.map +1 -1
  772. package/dist/components/Stack/VStack.d.ts.map +1 -1
  773. package/dist/components/Stack/index.cjs +3 -3
  774. package/dist/components/Stack/index.d.ts.map +1 -1
  775. package/dist/components/Stack/index.js +1 -1
  776. package/dist/components/Stack/internal/Stack.d.ts.map +1 -1
  777. package/dist/components/Stepper/Stepper.d.ts +55 -11
  778. package/dist/components/Stepper/Stepper.d.ts.map +1 -1
  779. package/dist/components/Stepper/index.cjs +7 -14
  780. package/dist/components/Stepper/index.d.ts +2 -3
  781. package/dist/components/Stepper/index.d.ts.map +1 -1
  782. package/dist/components/Stepper/index.js +6 -5
  783. package/dist/components/Stepper/internal/Step.d.ts +36 -0
  784. package/dist/components/Stepper/internal/Step.d.ts.map +1 -0
  785. package/dist/components/Stepper/internal/Step.recipe.d.ts +164 -0
  786. package/dist/components/Stepper/internal/Step.recipe.d.ts.map +1 -0
  787. package/dist/components/Switch/Switch.d.ts.map +1 -1
  788. package/dist/components/Switch/Switch.recipe.d.ts +1 -1
  789. package/dist/components/Switch/index.cjs +9 -9
  790. package/dist/components/Switch/index.d.ts.map +1 -1
  791. package/dist/components/Switch/index.js +8 -8
  792. package/dist/components/Table/Table.d.ts +45 -3
  793. package/dist/components/Table/Table.d.ts.map +1 -1
  794. package/dist/components/Table/Table.recipe.d.ts +156 -0
  795. package/dist/components/Table/Table.recipe.d.ts.map +1 -0
  796. package/dist/components/Table/TableCell.d.ts.map +1 -1
  797. package/dist/components/Table/TableContext.d.ts.map +1 -1
  798. package/dist/components/Table/TableHeaderCell.d.ts.map +1 -1
  799. package/dist/components/Table/TableRow.d.ts.map +1 -1
  800. package/dist/components/Table/columnUtils.d.ts.map +1 -1
  801. package/dist/components/Table/index.cjs +61 -66
  802. package/dist/components/Table/index.d.ts +2 -4
  803. package/dist/components/Table/index.d.ts.map +1 -1
  804. package/dist/components/Table/index.js +35 -32
  805. package/dist/components/Table/plugins/columnResize/index.d.ts.map +1 -1
  806. package/dist/components/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  807. package/dist/components/Table/plugins/columnSettings/index.d.ts.map +1 -1
  808. package/dist/components/Table/plugins/columnSettings/useTableColumnSettings.d.ts +1 -1
  809. package/dist/components/Table/plugins/columnSettings/useTableColumnSettings.d.ts.map +1 -1
  810. package/dist/components/Table/plugins/columnSettings/useTableColumnSettingsState.d.ts.map +1 -1
  811. package/dist/components/Table/plugins/filtering/index.d.ts.map +1 -1
  812. package/dist/components/Table/plugins/filtering/useTableFilterState.d.ts.map +1 -1
  813. package/dist/components/Table/plugins/filtering/useTableFiltering.d.ts +1 -1
  814. package/dist/components/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
  815. package/dist/components/Table/plugins/pagination/index.d.ts +1 -1
  816. package/dist/components/Table/plugins/pagination/index.d.ts.map +1 -1
  817. package/dist/components/Table/plugins/pagination/useTablePagination.d.ts.map +1 -1
  818. package/dist/components/Table/plugins/selection/index.d.ts.map +1 -1
  819. package/dist/components/Table/plugins/selection/useTableSelection.d.ts.map +1 -1
  820. package/dist/components/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
  821. package/dist/components/Table/plugins/sortable/index.d.ts.map +1 -1
  822. package/dist/components/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  823. package/dist/components/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
  824. package/dist/components/Table/types.d.ts +1 -18
  825. package/dist/components/Table/types.d.ts.map +1 -1
  826. package/dist/components/Table/useBaseTablePlugins.d.ts +1 -1
  827. package/dist/components/Table/useBaseTablePlugins.d.ts.map +1 -1
  828. package/dist/components/Tabs/Tab.d.ts.map +1 -1
  829. package/dist/components/Tabs/TabMenu.d.ts.map +1 -1
  830. package/dist/components/Tabs/TabMenu.recipe.d.ts +21 -0
  831. package/dist/components/Tabs/TabMenu.recipe.d.ts.map +1 -0
  832. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  833. package/dist/components/Tabs/Tabs.recipe.d.ts +65 -0
  834. package/dist/components/Tabs/Tabs.recipe.d.ts.map +1 -0
  835. package/dist/components/Tabs/index.cjs +18 -17
  836. package/dist/components/Tabs/index.d.ts +1 -1
  837. package/dist/components/Tabs/index.d.ts.map +1 -1
  838. package/dist/components/Tabs/index.js +13 -12
  839. package/dist/components/Tag/Tag.d.ts.map +1 -1
  840. package/dist/components/Tag/Tag.recipe.d.ts +1 -1
  841. package/dist/components/Tag/index.cjs +10 -7
  842. package/dist/components/Tag/index.d.ts +1 -1
  843. package/dist/components/Tag/index.d.ts.map +1 -1
  844. package/dist/components/Tag/index.js +9 -6
  845. package/dist/components/TagsInput/TagsInput.d.ts +49 -7
  846. package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
  847. package/dist/components/TagsInput/TagsInput.recipe.d.ts +45 -0
  848. package/dist/components/TagsInput/TagsInput.recipe.d.ts.map +1 -0
  849. package/dist/components/TagsInput/index.cjs +19 -17
  850. package/dist/components/TagsInput/index.d.ts.map +1 -1
  851. package/dist/components/TagsInput/index.js +18 -16
  852. package/dist/components/Text/Heading.d.ts +6 -6
  853. package/dist/components/Text/Heading.d.ts.map +1 -1
  854. package/dist/components/Text/Text.d.ts +5 -5
  855. package/dist/components/Text/Text.d.ts.map +1 -1
  856. package/dist/components/Text/index.cjs +5 -5
  857. package/dist/components/Text/index.d.ts.map +1 -1
  858. package/dist/components/Text/index.js +3 -3
  859. package/dist/components/TextArea/TextArea.d.ts.map +1 -1
  860. package/dist/components/TextArea/index.cjs +10 -10
  861. package/dist/components/TextArea/index.d.ts.map +1 -1
  862. package/dist/components/TextArea/index.js +9 -9
  863. package/dist/components/TextInput/TextInput.d.ts +5 -0
  864. package/dist/components/TextInput/TextInput.d.ts.map +1 -1
  865. package/dist/components/TextInput/index.cjs +16 -14
  866. package/dist/components/TextInput/index.d.ts +1 -1
  867. package/dist/components/TextInput/index.d.ts.map +1 -1
  868. package/dist/components/TextInput/index.js +15 -13
  869. package/dist/components/Theme/index.cjs +2 -2
  870. package/dist/components/Theme/index.d.ts.map +1 -1
  871. package/dist/components/Theme/index.js +1 -1
  872. package/dist/components/Thumbnail/Thumbnail.recipe.d.ts +1 -1
  873. package/dist/components/Thumbnail/index.cjs +14 -12
  874. package/dist/components/Thumbnail/index.d.ts.map +1 -1
  875. package/dist/components/Thumbnail/index.js +13 -11
  876. package/dist/components/TimeInput/TimeInput.d.ts +3 -3
  877. package/dist/components/TimeInput/TimeInput.d.ts.map +1 -1
  878. package/dist/components/TimeInput/index.cjs +15 -13
  879. package/dist/components/TimeInput/index.d.ts +1 -1
  880. package/dist/components/TimeInput/index.d.ts.map +1 -1
  881. package/dist/components/TimeInput/index.js +14 -12
  882. package/dist/components/Toast/Toast.d.ts +1 -1
  883. package/dist/components/Toast/Toast.d.ts.map +1 -1
  884. package/dist/components/Toast/Toast.recipe.d.ts +1 -1
  885. package/dist/components/Toast/ToastContext.d.ts.map +1 -1
  886. package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
  887. package/dist/components/Toast/index.cjs +15 -13
  888. package/dist/components/Toast/index.d.ts.map +1 -1
  889. package/dist/components/Toast/index.js +12 -10
  890. package/dist/components/Toast/useToast.d.ts.map +1 -1
  891. package/dist/components/ToggleButton/ToggleButton.d.ts +2 -6
  892. package/dist/components/ToggleButton/ToggleButton.d.ts.map +1 -1
  893. package/dist/components/ToggleButton/ToggleButton.recipe.d.ts +20 -0
  894. package/dist/components/ToggleButton/ToggleButton.recipe.d.ts.map +1 -0
  895. package/dist/components/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  896. package/dist/components/ToggleButton/index.cjs +8 -8
  897. package/dist/components/ToggleButton/index.d.ts +1 -1
  898. package/dist/components/ToggleButton/index.d.ts.map +1 -1
  899. package/dist/components/ToggleButton/index.js +6 -6
  900. package/dist/components/Tooltip/Tooltip.d.ts +7 -7
  901. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  902. package/dist/components/Tooltip/index.cjs +4 -4
  903. package/dist/components/Tooltip/index.d.ts +1 -1
  904. package/dist/components/Tooltip/index.d.ts.map +1 -1
  905. package/dist/components/Tooltip/index.js +2 -2
  906. package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
  907. package/dist/components/TopNav/TopNav.d.ts.map +1 -1
  908. package/dist/components/TopNav/TopNav.recipe.d.ts +11 -5
  909. package/dist/components/TopNav/TopNav.recipe.d.ts.map +1 -1
  910. package/dist/components/TopNav/TopNavContext.d.ts +0 -2
  911. package/dist/components/TopNav/TopNavContext.d.ts.map +1 -1
  912. package/dist/components/TopNav/TopNavHeading.d.ts.map +1 -1
  913. package/dist/components/TopNav/TopNavHeading.recipe.d.ts +4 -0
  914. package/dist/components/TopNav/TopNavHeading.recipe.d.ts.map +1 -0
  915. package/dist/components/TopNav/TopNavItem.d.ts +13 -8
  916. package/dist/components/TopNav/TopNavItem.d.ts.map +1 -1
  917. package/dist/components/TopNav/index.cjs +21 -21
  918. package/dist/components/TopNav/index.d.ts +2 -2
  919. package/dist/components/TopNav/index.d.ts.map +1 -1
  920. package/dist/components/TopNav/index.js +16 -12
  921. package/dist/components/TreeView/TreeView.d.ts.map +1 -1
  922. package/dist/components/TreeView/TreeView.recipe.d.ts +4 -0
  923. package/dist/components/TreeView/TreeView.recipe.d.ts.map +1 -0
  924. package/dist/components/TreeView/TreeViewBranches.d.ts.map +1 -1
  925. package/dist/components/TreeView/TreeViewBranches.recipe.d.ts +4 -0
  926. package/dist/components/TreeView/TreeViewBranches.recipe.d.ts.map +1 -0
  927. package/dist/components/TreeView/TreeViewItem.d.ts +1 -5
  928. package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
  929. package/dist/components/TreeView/TreeViewItem.recipe.d.ts +84 -0
  930. package/dist/components/TreeView/TreeViewItem.recipe.d.ts.map +1 -0
  931. package/dist/components/TreeView/index.cjs +5 -3
  932. package/dist/components/TreeView/index.d.ts +1 -1
  933. package/dist/components/TreeView/index.d.ts.map +1 -1
  934. package/dist/components/TreeView/index.js +4 -2
  935. package/dist/index.cjs +290 -289
  936. package/dist/index.cjs.map +1 -1
  937. package/dist/index.d.ts +7 -7
  938. package/dist/index.d.ts.map +1 -1
  939. package/dist/index.js +88 -83
  940. package/dist/index.js.map +1 -1
  941. package/dist/internal/ActionElement.d.ts +45 -0
  942. package/dist/internal/ActionElement.d.ts.map +1 -0
  943. package/dist/internal/HoverLayerTrigger.d.ts +3 -4
  944. package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
  945. package/dist/internal/MobileNav/MobileNav.d.ts.map +1 -1
  946. package/dist/internal/MobileNav/index.d.ts +2 -2
  947. package/dist/internal/MobileNav/index.d.ts.map +1 -1
  948. package/dist/internal/dismissBehavior.d.ts +18 -0
  949. package/dist/internal/dismissBehavior.d.ts.map +1 -0
  950. package/dist/internal/index.d.ts +1 -1
  951. package/dist/internal/index.d.ts.map +1 -1
  952. package/dist/internal/parseDateInput.d.ts.map +1 -1
  953. package/dist/internal/plainDate.d.ts.map +1 -1
  954. package/dist/internal/shallowEqual.d.ts +7 -0
  955. package/dist/internal/shallowEqual.d.ts.map +1 -0
  956. package/dist/internal/useBackdropDismiss.d.ts +16 -0
  957. package/dist/internal/useBackdropDismiss.d.ts.map +1 -0
  958. package/dist/internal/useConstant.d.ts +8 -0
  959. package/dist/internal/useConstant.d.ts.map +1 -0
  960. package/dist/internal/useHoverLayer.d.ts.map +1 -1
  961. package/dist/internal/useLatest.d.ts +5 -0
  962. package/dist/internal/useLatest.d.ts.map +1 -0
  963. package/dist/internal/useLayer.d.ts +67 -2
  964. package/dist/internal/useLayer.d.ts.map +1 -1
  965. package/dist/internal/useScrollLock.d.ts +8 -0
  966. package/dist/internal/useScrollLock.d.ts.map +1 -0
  967. package/dist/internal/useSelectListbox.d.ts +5 -5
  968. package/dist/internal/useSelectListbox.d.ts.map +1 -1
  969. package/dist/internal/useShallowEqualMemo.d.ts +13 -0
  970. package/dist/internal/useShallowEqualMemo.d.ts.map +1 -0
  971. package/dist/styles.css +1 -1
  972. package/dist/themes/presets.d.ts.map +1 -1
  973. package/package.json +3 -2
  974. package/dist/chunk-2LABTS4P.js.map +0 -1
  975. package/dist/chunk-2N6FOSNM.js.map +0 -1
  976. package/dist/chunk-2OXKEUKG.cjs.map +0 -1
  977. package/dist/chunk-2P6D43V2.cjs.map +0 -1
  978. package/dist/chunk-2RKMG2TC.js.map +0 -1
  979. package/dist/chunk-2XAA3CM5.js.map +0 -1
  980. package/dist/chunk-3CJC4QE6.js.map +0 -1
  981. package/dist/chunk-3JPUXC5U.js.map +0 -1
  982. package/dist/chunk-3ZV3EGGK.cjs.map +0 -1
  983. package/dist/chunk-4H7X5FGX.js.map +0 -1
  984. package/dist/chunk-52WQDDWQ.js.map +0 -1
  985. package/dist/chunk-5D2OR64D.cjs.map +0 -1
  986. package/dist/chunk-5PX76QOL.cjs +0 -203
  987. package/dist/chunk-5PX76QOL.cjs.map +0 -1
  988. package/dist/chunk-5YS43PSQ.cjs.map +0 -1
  989. package/dist/chunk-6ONAGCCZ.js.map +0 -1
  990. package/dist/chunk-6XWXBXYE.js.map +0 -1
  991. package/dist/chunk-7BSFKG7N.js.map +0 -1
  992. package/dist/chunk-7CCXHH6Y.cjs.map +0 -1
  993. package/dist/chunk-7U7JMRVF.cjs.map +0 -1
  994. package/dist/chunk-AFI4V7LI.js.map +0 -1
  995. package/dist/chunk-AHVHLNHU.cjs.map +0 -1
  996. package/dist/chunk-AJ6X62AI.js.map +0 -1
  997. package/dist/chunk-AP7BDTTF.js.map +0 -1
  998. package/dist/chunk-BLRWA445.cjs.map +0 -1
  999. package/dist/chunk-BSAZRW6T.js.map +0 -1
  1000. package/dist/chunk-C6EYCIKJ.cjs.map +0 -1
  1001. package/dist/chunk-C732WXKS.cjs.map +0 -1
  1002. package/dist/chunk-CGYZ6QWY.js +0 -142
  1003. package/dist/chunk-CGYZ6QWY.js.map +0 -1
  1004. package/dist/chunk-CK3UJQRI.cjs.map +0 -1
  1005. package/dist/chunk-CKTXDIH4.cjs +0 -2029
  1006. package/dist/chunk-CKTXDIH4.cjs.map +0 -1
  1007. package/dist/chunk-D3LZQ5QS.js.map +0 -1
  1008. package/dist/chunk-DIRVAHOF.cjs.map +0 -1
  1009. package/dist/chunk-DVGLYE3G.cjs +0 -287
  1010. package/dist/chunk-DVGLYE3G.cjs.map +0 -1
  1011. package/dist/chunk-DWUEPOYH.js.map +0 -1
  1012. package/dist/chunk-E2A3GJSN.cjs.map +0 -1
  1013. package/dist/chunk-EALKX3ST.cjs +0 -526
  1014. package/dist/chunk-EALKX3ST.cjs.map +0 -1
  1015. package/dist/chunk-EBDODJ5X.js.map +0 -1
  1016. package/dist/chunk-FB245S6T.cjs.map +0 -1
  1017. package/dist/chunk-FDZQPWFZ.cjs.map +0 -1
  1018. package/dist/chunk-FMLIYHDP.js.map +0 -1
  1019. package/dist/chunk-FNOUX5T2.cjs +0 -145
  1020. package/dist/chunk-FNOUX5T2.cjs.map +0 -1
  1021. package/dist/chunk-FNZOICR4.cjs.map +0 -1
  1022. package/dist/chunk-FP5E5BUM.js.map +0 -1
  1023. package/dist/chunk-G2U2W422.js.map +0 -1
  1024. package/dist/chunk-G2WW52GO.cjs.map +0 -1
  1025. package/dist/chunk-G3KKLGZU.cjs.map +0 -1
  1026. package/dist/chunk-GC5VUTUR.cjs.map +0 -1
  1027. package/dist/chunk-GL7PSN7H.cjs.map +0 -1
  1028. package/dist/chunk-GYVWTH3U.cjs.map +0 -1
  1029. package/dist/chunk-H2CZ6IE5.cjs.map +0 -1
  1030. package/dist/chunk-H7HQYBPH.js +0 -2017
  1031. package/dist/chunk-H7HQYBPH.js.map +0 -1
  1032. package/dist/chunk-HINS4GY6.js.map +0 -1
  1033. package/dist/chunk-HNZWPIJE.js.map +0 -1
  1034. package/dist/chunk-IA5GII7N.cjs.map +0 -1
  1035. package/dist/chunk-J5IRFGUP.js.map +0 -1
  1036. package/dist/chunk-JDAJ2HJQ.js.map +0 -1
  1037. package/dist/chunk-JIVYPJKO.js.map +0 -1
  1038. package/dist/chunk-JJ324PSZ.cjs.map +0 -1
  1039. package/dist/chunk-JTFNNEWR.cjs.map +0 -1
  1040. package/dist/chunk-JYVYCU22.cjs.map +0 -1
  1041. package/dist/chunk-KXIILLQD.cjs.map +0 -1
  1042. package/dist/chunk-L6VSBBPP.js.map +0 -1
  1043. package/dist/chunk-LNT2IFOA.js.map +0 -1
  1044. package/dist/chunk-LO5NZY7N.cjs.map +0 -1
  1045. package/dist/chunk-LQIZSE3O.js.map +0 -1
  1046. package/dist/chunk-LUQVSNQL.cjs.map +0 -1
  1047. package/dist/chunk-LY6Z6A54.js.map +0 -1
  1048. package/dist/chunk-M26XECB2.cjs.map +0 -1
  1049. package/dist/chunk-M2MC3E27.cjs.map +0 -1
  1050. package/dist/chunk-MI5QU37D.js.map +0 -1
  1051. package/dist/chunk-N2TNBDQI.js.map +0 -1
  1052. package/dist/chunk-NFABMGNH.js.map +0 -1
  1053. package/dist/chunk-NHXJVSZZ.cjs.map +0 -1
  1054. package/dist/chunk-O2WICOUK.cjs.map +0 -1
  1055. package/dist/chunk-O32BKXTR.cjs.map +0 -1
  1056. package/dist/chunk-OBWWRRL6.cjs.map +0 -1
  1057. package/dist/chunk-PIZMCOKL.js.map +0 -1
  1058. package/dist/chunk-PQEFVHJZ.cjs.map +0 -1
  1059. package/dist/chunk-QATCDVZ6.cjs.map +0 -1
  1060. package/dist/chunk-QOKEU3DC.cjs.map +0 -1
  1061. package/dist/chunk-QRFDPG34.js.map +0 -1
  1062. package/dist/chunk-QSEDH7T2.js.map +0 -1
  1063. package/dist/chunk-QVNDZZS6.cjs.map +0 -1
  1064. package/dist/chunk-QY6OMQW6.js +0 -285
  1065. package/dist/chunk-QY6OMQW6.js.map +0 -1
  1066. package/dist/chunk-R6CMJMIJ.js +0 -200
  1067. package/dist/chunk-R6CMJMIJ.js.map +0 -1
  1068. package/dist/chunk-RDNMAV5B.js.map +0 -1
  1069. package/dist/chunk-RLOGQBFD.js.map +0 -1
  1070. package/dist/chunk-S7INL5NI.js.map +0 -1
  1071. package/dist/chunk-SBOXHIES.js.map +0 -1
  1072. package/dist/chunk-SOCSUNIM.js.map +0 -1
  1073. package/dist/chunk-SSAYBCAD.js.map +0 -1
  1074. package/dist/chunk-SSOAZZNR.cjs.map +0 -1
  1075. package/dist/chunk-SUH62Z64.js.map +0 -1
  1076. package/dist/chunk-TBOQTPRO.cjs.map +0 -1
  1077. package/dist/chunk-TF7XVTSP.cjs.map +0 -1
  1078. package/dist/chunk-TPB53MHV.cjs.map +0 -1
  1079. package/dist/chunk-U6NH54YD.js.map +0 -1
  1080. package/dist/chunk-UKW2C5RN.js +0 -450
  1081. package/dist/chunk-UKW2C5RN.js.map +0 -1
  1082. package/dist/chunk-UUVLEOSD.js.map +0 -1
  1083. package/dist/chunk-VFGSNR35.js.map +0 -1
  1084. package/dist/chunk-VHKA25IV.cjs.map +0 -1
  1085. package/dist/chunk-VK4O6W2K.cjs +0 -454
  1086. package/dist/chunk-VK4O6W2K.cjs.map +0 -1
  1087. package/dist/chunk-VQ7U3ASC.js.map +0 -1
  1088. package/dist/chunk-VUCMGGU5.js.map +0 -1
  1089. package/dist/chunk-W3C6QQF7.js.map +0 -1
  1090. package/dist/chunk-WBGFFP3G.js.map +0 -1
  1091. package/dist/chunk-WOIWI2UO.js.map +0 -1
  1092. package/dist/chunk-X574M2JB.cjs.map +0 -1
  1093. package/dist/chunk-XLKXFJMU.cjs.map +0 -1
  1094. package/dist/chunk-XXBA3KSH.cjs.map +0 -1
  1095. package/dist/chunk-YHBYVERE.cjs +0 -374
  1096. package/dist/chunk-YHBYVERE.cjs.map +0 -1
  1097. package/dist/chunk-YVHWOKR7.cjs.map +0 -1
  1098. package/dist/chunk-YWGYN6YV.cjs.map +0 -1
  1099. package/dist/chunk-YY6KJO5Z.cjs.map +0 -1
  1100. package/dist/chunk-YYNWZRXZ.js.map +0 -1
  1101. package/dist/chunk-Z4TZAJS3.js.map +0 -1
  1102. package/dist/chunk-ZAX2UJBC.js.map +0 -1
  1103. package/dist/chunk-ZFBQ4R7M.cjs.map +0 -1
  1104. package/dist/chunk-ZQUPAIBS.js.map +0 -1
  1105. package/dist/chunk-ZTWBG2XY.cjs.map +0 -1
  1106. package/dist/components/Schedule/zonedDateTime.d.ts +0 -14
  1107. package/dist/components/Schedule/zonedDateTime.d.ts.map +0 -1
  1108. package/dist/components/Stepper/Step.d.ts +0 -62
  1109. package/dist/components/Stepper/Step.d.ts.map +0 -1
  1110. package/dist/components/Stepper/Step.recipe.d.ts +0 -95
  1111. package/dist/components/Stepper/Step.recipe.d.ts.map +0 -1
  1112. package/dist/components/Stepper/StepperContext.d.ts +0 -10
  1113. package/dist/components/Stepper/StepperContext.d.ts.map +0 -1
  1114. package/dist/components/Table/BaseTable.d.ts +0 -6
  1115. package/dist/components/Table/BaseTable.d.ts.map +0 -1
  1116. package/dist/theme/generate-color-scale.d.ts +0 -6
  1117. package/dist/theme/generate-color-scale.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Schedule/CalendarEvent.ts","../src/components/Schedule/ScheduleEvent.recipe.ts","../src/components/Schedule/TimeGridView.recipe.ts","../src/components/Schedule/context.tsx","../src/components/Schedule/dateMath.ts","../src/components/Schedule/Schedule.recipe.ts","../src/components/Schedule/shared.tsx","../src/components/Schedule/useCurrentTime.ts","../src/components/Schedule/TimeGridView.tsx","../src/components/Schedule/scheduleZonedInstant.ts","../src/components/Schedule/DayView.tsx","../src/components/Schedule/ListView.recipe.ts","../src/components/Schedule/ListView.tsx","../src/components/Schedule/MonthlyView.recipe.ts","../src/components/Schedule/MonthlyView.tsx","../src/components/Schedule/plugins/EventMovePlugin.tsx","../src/components/Schedule/plugins/EventResizePlugin.tsx","../src/components/Schedule/plugins/ScheduleEventPopoverContent.tsx","../src/components/Schedule/plugins/EventPopoverPlugin.tsx","../src/components/Schedule/plugins/PaginationPlugin.tsx","../src/components/Schedule/plugins/ViewSelectorPlugin.tsx","../src/components/Schedule/plugins/index.tsx","../src/components/Schedule/Schedule.tsx","../src/components/Schedule/WeeklyView.tsx"],"names":["Temporal","currentTime","useMemo","jsxs","Fragment","jsx","styles","DEFAULT_SNAP_MINUTES","MILLISECONDS_PER_MINUTE","useRef","useCallback","listeners","event","useState","setStartOfWeek"],"mappings":"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","file":"chunk-CZUMVOPH.js","sourcesContent":["import {Temporal} from '@js-temporal/polyfill';\nimport type {Instant} from 'components/Schedule/types';\nimport type {TagColor} from 'components/Tag';\nimport type {PlainDate} from 'internal/dateTypes';\n\nconst DATE_ONLY_RE = /^\\d{4}-\\d{2}-\\d{2}$/;\n\nexport type ScheduleEventColor = Exclude<TagColor, 'default'>;\n\nexport interface ScheduleCategory {\n color: ScheduleEventColor;\n label: string;\n}\n\nexport interface CalendarEventBase<TAuxiliaryData = unknown> {\n /**\n * Arbitrary consumer-defined data carried alongside the event, mirroring the\n * `auxiliaryData` field of `SearchableItem`. Surfaced to plugin render\n * functions (e.g. the event popover's `renderContent`) for custom rendering.\n */\n auxiliaryData?: TAuxiliaryData;\n category?: string;\n /**\n * Optional longer-form description shown by the default event popover.\n */\n description?: string;\n id: string;\n /**\n * Optional location shown by the default event popover.\n */\n location?: string;\n title: string;\n}\n\nexport interface CalendarDayEvent<\n TAuxiliaryData = unknown,\n> extends CalendarEventBase<TAuxiliaryData> {\n end: PlainDate;\n start: PlainDate;\n}\n\nexport interface CalendarInstantEvent<\n TAuxiliaryData = unknown,\n> extends CalendarEventBase<TAuxiliaryData> {\n end: Instant;\n start: Instant;\n}\n\nexport type CalendarEvent<TAuxiliaryData = unknown> =\n | CalendarDayEvent<TAuxiliaryData>\n | CalendarInstantEvent<TAuxiliaryData>;\n\nexport function createEventFromISO({\n category,\n end,\n id,\n start,\n title,\n}: {\n category?: CalendarEvent['category'];\n end: string;\n id: string;\n start: string;\n title: string;\n}): CalendarEvent {\n if (DATE_ONLY_RE.test(start) && DATE_ONLY_RE.test(end)) {\n return {\n category,\n end: Temporal.PlainDate.from(end),\n id,\n start: Temporal.PlainDate.from(start),\n title,\n };\n }\n\n return {\n category,\n end: Temporal.Instant.from(end).epochMilliseconds,\n id,\n start: Temporal.Instant.from(start).epochMilliseconds,\n title,\n };\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Slot recipe for schedule event pills. The `inline` layout renders the\n * compact baseline pill used by list/all-day cells and the month overlay; the\n * `block` layout renders the stacked pill used by the time grid (positioned via\n * inline styles). The `color` variant defines the `--schedule-event-*` custom\n * properties consumed by every slot, and `isPast` mutes them.\n */\nexport const scheduleEventRecipe = sva({\n slots: ['event', 'dot', 'time', 'title'],\n base: {\n event: {\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'var(--schedule-event-border)',\n borderRadius: 'sm',\n overflow: 'hidden',\n px: '1',\n py: '0.5',\n fontSize: 'xs',\n lineHeight: 'tight',\n bg: 'var(--schedule-event-bg)',\n color: 'var(--schedule-event-fg)',\n _hover: {\n bg: 'var(--schedule-event-bg-hover)',\n },\n // Active state: the pill's popover is open. Interactive pills carry\n // `aria-expanded`, so this only matches the open trigger. The outline uses\n // the category accent color and composes cleanly with the color/past\n // background overrides.\n '&[aria-expanded=\"true\"]': {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'var(--schedule-event-dot)',\n outlineOffset: '1px',\n },\n '&[data-state=\"past\"]': {\n '--schedule-event-bg':\n 'color-mix(in srgb, var(--schedule-event-dot) 10%, token(colors.bg))',\n '--schedule-event-bg-hover':\n 'color-mix(in srgb, var(--schedule-event-dot) 14%, token(colors.bg))',\n '--schedule-event-border':\n 'color-mix(in srgb, var(--schedule-event-dot) 48%, token(colors.border))',\n '--schedule-event-fg':\n 'color-mix(in srgb, var(--schedule-event-fg-base) 52%, token(colors.fg.muted))',\n },\n },\n dot: {\n display: 'inline-block',\n w: '2',\n h: '2',\n borderRadius: 'full',\n bg: 'var(--schedule-event-dot)',\n flexShrink: 0,\n },\n time: {\n flexShrink: 0,\n fontWeight: 'normal',\n },\n title: {\n fontWeight: 'bold',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n },\n variants: {\n layout: {\n inline: {\n event: {\n display: 'inline-flex',\n alignItems: 'baseline',\n gap: '1',\n maxW: 'full',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n fontWeight: 'medium',\n },\n },\n block: {\n event: {\n position: 'absolute',\n display: 'flex',\n flexDirection: 'column',\n gap: 0,\n minH: '9',\n minW: 0,\n },\n time: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n },\n },\n },\n // Full-width pill used by the month overlay where the span sizes the cell.\n isFullWidth: {\n true: {event: {w: 'full'}},\n false: {},\n },\n // Applied when the pill is rendered as a clickable <button> trigger (event\n // popover plugin). Resets user-agent button styling so the pill looks\n // identical to its static <span> form.\n isInteractive: {\n true: {\n event: {\n appearance: 'none',\n textAlign: 'inherit',\n font: 'inherit',\n m: 0,\n cursor: 'pointer',\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n },\n },\n },\n false: {},\n },\n color: {\n blue: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.blue)',\n '--schedule-event-bg-hover': 'token(colors.surface.blue.hover)',\n '--schedule-event-border': 'token(colors.surface.blue.accent)',\n '--schedule-event-fg': 'token(colors.surface.blue.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.blue.fg)',\n '--schedule-event-dot': 'token(colors.surface.blue.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.blue.accent)'},\n },\n cyan: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.cyan)',\n '--schedule-event-bg-hover': 'token(colors.surface.cyan.hover)',\n '--schedule-event-border': 'token(colors.surface.cyan.accent)',\n '--schedule-event-fg': 'token(colors.surface.cyan.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.cyan.fg)',\n '--schedule-event-dot': 'token(colors.surface.cyan.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.cyan.accent)'},\n },\n gray: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.gray)',\n '--schedule-event-bg-hover': 'token(colors.surface.gray.hover)',\n '--schedule-event-border': 'token(colors.surface.gray.accent)',\n '--schedule-event-fg': 'token(colors.surface.gray.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.gray.fg)',\n '--schedule-event-dot': 'token(colors.surface.gray.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.gray.accent)'},\n },\n green: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.green)',\n '--schedule-event-bg-hover': 'token(colors.surface.green.hover)',\n '--schedule-event-border': 'token(colors.surface.green.accent)',\n '--schedule-event-fg': 'token(colors.surface.green.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.green.fg)',\n '--schedule-event-dot': 'token(colors.surface.green.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.green.accent)'},\n },\n orange: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.orange)',\n '--schedule-event-bg-hover': 'token(colors.surface.orange.hover)',\n '--schedule-event-border': 'token(colors.surface.orange.accent)',\n '--schedule-event-fg': 'token(colors.surface.orange.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.orange.fg)',\n '--schedule-event-dot': 'token(colors.surface.orange.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.orange.accent)'},\n },\n pink: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.pink)',\n '--schedule-event-bg-hover': 'token(colors.surface.pink.hover)',\n '--schedule-event-border': 'token(colors.surface.pink.accent)',\n '--schedule-event-fg': 'token(colors.surface.pink.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.pink.fg)',\n '--schedule-event-dot': 'token(colors.surface.pink.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.pink.accent)'},\n },\n purple: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.purple)',\n '--schedule-event-bg-hover': 'token(colors.surface.purple.hover)',\n '--schedule-event-border': 'token(colors.surface.purple.accent)',\n '--schedule-event-fg': 'token(colors.surface.purple.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.purple.fg)',\n '--schedule-event-dot': 'token(colors.surface.purple.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.purple.accent)'},\n },\n red: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.red)',\n '--schedule-event-bg-hover': 'token(colors.surface.red.hover)',\n '--schedule-event-border': 'token(colors.surface.red.accent)',\n '--schedule-event-fg': 'token(colors.surface.red.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.red.fg)',\n '--schedule-event-dot': 'token(colors.surface.red.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.red.accent)'},\n },\n teal: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.teal)',\n '--schedule-event-bg-hover': 'token(colors.surface.teal.hover)',\n '--schedule-event-border': 'token(colors.surface.teal.accent)',\n '--schedule-event-fg': 'token(colors.surface.teal.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.teal.fg)',\n '--schedule-event-dot': 'token(colors.surface.teal.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.teal.accent)'},\n },\n yellow: {\n event: {\n '--schedule-event-bg': 'token(colors.surface.yellow)',\n '--schedule-event-bg-hover': 'token(colors.surface.yellow.hover)',\n '--schedule-event-border': 'token(colors.surface.yellow.accent)',\n '--schedule-event-fg': 'token(colors.surface.yellow.fg)',\n '--schedule-event-fg-base': 'token(colors.surface.yellow.fg)',\n '--schedule-event-dot': 'token(colors.surface.yellow.accent)',\n },\n dot: {'--schedule-event-dot': 'token(colors.surface.yellow.accent)'},\n },\n },\n isPast: {\n true: {\n event: {\n // Keep `isPast` in the recipe API for class-based assertions and\n // callers, but rely on `[data-state=\"past\"]` for the actual variable\n // overrides so the color variant cannot win by atomic CSS order.\n '--schedule-event-bg':\n 'color-mix(in srgb, var(--schedule-event-dot) 10%, token(colors.bg))',\n '--schedule-event-bg-hover':\n 'color-mix(in srgb, var(--schedule-event-dot) 14%, token(colors.bg))',\n '--schedule-event-border':\n 'color-mix(in srgb, var(--schedule-event-dot) 48%, token(colors.border))',\n '--schedule-event-fg':\n 'color-mix(in srgb, var(--schedule-event-fg-base) 52%, token(colors.fg.muted))',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n layout: 'inline',\n color: 'blue',\n isFullWidth: false,\n isInteractive: false,\n isPast: false,\n },\n});\n\nexport type ScheduleEventVariants = RecipeVariantProps<\n typeof scheduleEventRecipe\n>;\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Slot recipe for the schedule time grid shared by day and week views.\n * Variants cover the edge borders and highlighted day header.\n */\nexport const scheduleTimeGridViewRecipe = sva({\n slots: [\n 'grid',\n 'header',\n 'corner',\n 'dayHeader',\n 'dayHeaderContent',\n 'dayHeaderDayNumber',\n 'allDayLabel',\n 'allDayRow',\n 'dayCell',\n 'timeLabel',\n 'timeRow',\n 'hourCell',\n 'events',\n 'allDayEvents',\n 'allDayPopoverContent',\n 'allDayPopoverEvents',\n 'allDaySeeMoreButton',\n 'rowContents',\n ],\n base: {\n grid: {\n display: 'grid',\n gridTemplateColumns: '72px 1fr',\n overflow: 'auto',\n },\n header: {\n display: 'grid',\n gridTemplateColumns:\n 'repeat(var(--schedule-day-count), minmax(160px, 1fr))',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n corner: {\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n dayHeader: {\n p: '2',\n textAlign: 'center',\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n },\n dayHeaderContent: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '1',\n },\n dayHeaderDayNumber: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minW: '30px',\n h: '30px',\n lineHeight: '30px',\n borderRadius: 'full',\n },\n allDayLabel: {\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'flex-end',\n py: '0.5',\n px: '2',\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n allDayRow: {\n display: 'grid',\n gridTemplateColumns:\n 'repeat(var(--schedule-day-count), minmax(160px, 1fr))',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n dayCell: {\n minH: 0,\n p: '0.5',\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n },\n timeLabel: {\n p: '2',\n color: 'fg.muted',\n textAlign: 'end',\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n timeRow: {\n display: 'grid',\n gridTemplateColumns:\n 'repeat(var(--schedule-day-count), minmax(160px, 1fr))',\n },\n hourCell: {\n position: 'relative',\n minH: '14',\n p: '1',\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n events: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1',\n },\n allDayEvents: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n },\n allDayPopoverContent: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1',\n p: '3',\n },\n allDayPopoverEvents: {\n display: 'flex',\n flexDirection: 'column',\n gap: 0,\n m: 0,\n p: 0,\n listStyleType: 'none',\n },\n allDaySeeMoreButton: {\n display: 'inline-flex',\n alignItems: 'center',\n maxW: 'full',\n h: '5',\n px: '1',\n borderRadius: 'sm',\n color: 'primary',\n cursor: 'pointer',\n fontSize: 'xs',\n fontWeight: 'medium',\n lineHeight: 'tight',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n _hover: {\n bg: 'bg.muted',\n },\n },\n rowContents: {\n display: 'contents',\n },\n },\n variants: {\n isCurrentDay: {\n true: {\n dayHeaderDayNumber: {\n bg: 'primary',\n color: 'fg.onPrimary',\n },\n },\n false: {},\n },\n isLastColumn: {\n true: {\n dayHeader: {borderInlineEndWidth: 0},\n dayCell: {borderInlineEndWidth: 0},\n hourCell: {borderInlineEndWidth: 0},\n },\n false: {},\n },\n isLastRow: {\n true: {\n timeLabel: {borderBlockEndWidth: 0},\n hourCell: {borderBlockEndWidth: 0},\n },\n false: {},\n },\n },\n defaultVariants: {\n isCurrentDay: false,\n isLastColumn: false,\n isLastRow: false,\n },\n});\n\nexport type ScheduleTimeGridViewVariants = RecipeVariantProps<\n typeof scheduleTimeGridViewRecipe\n>;\n","import {createContext, use} from 'react';\nimport type {\n CalendarEvent,\n ScheduleCategory,\n ScheduleCategoryMap,\n SchedulePlugin,\n ScheduleRange,\n ScheduleViewBase,\n ScheduleZonedInstant,\n} from 'components/Schedule/types';\n\nexport interface ScheduleContextValue {\n categories: ReadonlyArray<ScheduleCategory>;\n categoryMap: ScheduleCategoryMap;\n events: ReadonlyArray<CalendarEvent>;\n highlightDate: ScheduleZonedInstant;\n isLoading: boolean;\n plugins: ReadonlyArray<SchedulePlugin>;\n range: ScheduleRange;\n timezoneID: string;\n view: ScheduleViewBase;\n viewDate: ScheduleZonedInstant;\n}\n\nexport const ScheduleContext = createContext<ScheduleContextValue | null>(null);\nScheduleContext.displayName = 'ScheduleContext';\n\nexport function useScheduleContext(): ScheduleContextValue {\n const context = use(ScheduleContext);\n if (context == null) {\n throw new Error('Schedule views must be rendered inside Schedule.');\n }\n return context;\n}\n","import type {\n CalendarDayEvent,\n CalendarEvent,\n} from 'components/Schedule/CalendarEvent';\nimport type {Instant, ScheduleRange} from 'components/Schedule/types';\nimport {\n plainDateFromInstant,\n plainDateIsAfter,\n plainDateIsBefore,\n plainDateToInstant,\n type PlainDate,\n} from 'internal/plainDate';\n\nexport function isDayEvent(event: CalendarEvent): event is CalendarDayEvent {\n return typeof event.start !== 'number';\n}\n\nexport function getScheduleRangeFromDates({\n endDate,\n startDate,\n timezoneID,\n}: {\n endDate: PlainDate;\n startDate: PlainDate;\n timezoneID: string;\n}): ScheduleRange {\n return {\n end: plainDateToInstant(endDate, timezoneID),\n endDate,\n start: plainDateToInstant(startDate, timezoneID),\n startDate,\n };\n}\n\nexport function enumerateDates(\n start: PlainDate,\n endExclusive: PlainDate,\n): PlainDate[] {\n const dates: PlainDate[] = [];\n let current = start;\n while (plainDateIsBefore(current, endExclusive)) {\n dates.push(current);\n current = current.add({days: 1});\n }\n return dates;\n}\n\nexport function eventOverlapsRange(\n event: CalendarEvent,\n range: ScheduleRange,\n timezoneID: string,\n): boolean {\n if (isDayEvent(event)) {\n const eventStart = plainDateToInstant(event.start, timezoneID);\n const eventEnd = plainDateToInstant(event.end.add({days: 1}), timezoneID);\n return eventStart < range.end && eventEnd > range.start;\n }\n\n return event.start < range.end && event.end > range.start;\n}\n\nexport function eventOccursOnDate(\n event: CalendarEvent,\n date: PlainDate,\n timezoneID: string,\n): boolean {\n if (isDayEvent(event)) {\n return (\n !plainDateIsAfter(event.start, date) &&\n !plainDateIsBefore(event.end, date)\n );\n }\n\n const startDate = plainDateFromInstant(event.start, timezoneID);\n const endDate = plainDateFromInstant(\n Math.max(event.end - 1, event.start),\n timezoneID,\n );\n return (\n !plainDateIsAfter(startDate, date) && !plainDateIsBefore(endDate, date)\n );\n}\n\nexport function sortEvents(\n events: ReadonlyArray<CalendarEvent>,\n timezoneID: string,\n): CalendarEvent[] {\n return [...events].sort((a, b) => {\n const aStart = getEventSortStart(a, timezoneID);\n const bStart = getEventSortStart(b, timezoneID);\n return aStart < bStart\n ? -1\n : aStart > bStart\n ? 1\n : a.title.localeCompare(b.title);\n });\n}\n\nfunction getEventSortStart(event: CalendarEvent, timezoneID: string): Instant {\n return isDayEvent(event)\n ? plainDateToInstant(event.start, timezoneID)\n : event.start;\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Slot recipe for the schedule shell: the root wrapper, the frame/header layout\n * rendered by `ScheduleFrame`, and the bordered `surface` shared by every view.\n */\nexport const scheduleRecipe = sva({\n slots: [\n 'root',\n 'frame',\n 'header',\n 'headerSlotStart',\n 'headerSlotCenter',\n 'headerSlotEnd',\n 'headerTitleContent',\n 'headerTitleSpinner',\n 'surface',\n ],\n base: {\n root: {\n color: 'fg',\n fontFamily: 'body',\n w: 'full',\n },\n frame: {\n display: 'flex',\n flexDirection: 'column',\n gap: '3',\n w: 'full',\n },\n header: {\n display: 'grid',\n gridTemplateColumns: '1fr auto 1fr',\n alignItems: 'center',\n gap: '3',\n },\n headerSlotStart: {\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n gap: '2',\n },\n headerSlotCenter: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n gap: '2',\n textAlign: 'center',\n },\n headerSlotEnd: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n gap: '2',\n },\n headerTitleContent: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2',\n },\n headerTitleSpinner: {\n marginInlineStart: '4px',\n marginBlockStart: '4px',\n },\n surface: {\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border',\n borderRadius: 'md',\n overflow: 'hidden',\n bg: 'bg',\n },\n },\n});\n\nexport type ScheduleVariants = RecipeVariantProps<typeof scheduleRecipe>;\n","import {Temporal} from '@js-temporal/polyfill';\nimport {\n useMemo,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n type RefCallback,\n} from 'react';\nimport {Link} from 'components/Link';\nimport {Popover} from 'components/Popover';\nimport {usePopover, type LayerPlacement} from 'components/Popover/usePopover';\nimport {scheduleRecipe} from 'components/Schedule/Schedule.recipe';\nimport {scheduleEventRecipe} from 'components/Schedule/ScheduleEvent.recipe';\nimport {useScheduleContext} from 'components/Schedule/context';\nimport {isDayEvent} from 'components/Schedule/dateMath';\nimport type {\n CalendarEvent,\n ScheduleCategory,\n ScheduleCategoryMap,\n ScheduleEventPropsRenderProps,\n ScheduleEventPopoverControls,\n ScheduleHeaderContent,\n SchedulePlugin,\n} from 'components/Schedule/types';\nimport {Spinner} from 'components/Spinner';\nimport {Heading} from 'components/Text';\nimport isReactNode from 'internal/isReactNode';\nimport {\n DATE_FORMAT_MONTH_YEAR,\n DATE_FORMAT_WITH_WEEKDAY,\n plainDateFormat,\n plainDateFromInstant,\n plainDateIsBefore,\n plainDateIsEqual,\n type PlainDate,\n} from 'internal/plainDate';\nimport {cva} from 'styled-system/css';\n\n/**\n * Static slot classes for the schedule shell (root, frame/header, surface).\n * The recipe carries no variants, so a single evaluation is shared by the\n * shell and every view.\n */\nexport const scheduleClasses = scheduleRecipe();\n\nconst categoryFallback: ScheduleCategory = {label: 'Event', color: 'blue'};\n\nconst currentTimeIndicator = cva({\n base: {\n h: '0.5',\n bg: 'surface.orange.accent',\n borderRadius: 'full',\n pointerEvents: 'none',\n _before: {\n content: '\"\"',\n position: 'absolute',\n insetInlineStart: '-6px',\n top: '50%',\n w: '2.5',\n h: '2.5',\n borderRadius: 'full',\n bg: 'surface.orange.accent',\n transform: 'translateY(-50%)',\n },\n },\n variants: {\n layout: {\n list: {\n position: 'relative',\n },\n timeGrid: {\n position: 'absolute',\n insetInline: '0',\n transform: 'translateY(2px)',\n zIndex: '20',\n },\n },\n },\n});\n\n/**\n * Shared current-time marker used by the list and time-grid schedule views.\n */\nexport function ScheduleCurrentTimeIndicator({\n layout,\n testId,\n style,\n}: {\n layout: 'list' | 'timeGrid';\n testId: string;\n style?: CSSProperties;\n}): React.JSX.Element {\n return (\n <div\n aria-hidden=\"true\"\n className={currentTimeIndicator({layout})}\n data-testid={testId}\n style={style}\n />\n );\n}\n\nexport function createCategoryMap(\n categories: ReadonlyArray<ScheduleCategory>,\n): ScheduleCategoryMap {\n const categoryMap = new Map<string, ScheduleCategory>();\n categories.forEach(category => {\n if (!categoryMap.has(category.label)) {\n categoryMap.set(category.label, category);\n }\n });\n return categoryMap;\n}\n\nexport function getCategory(\n categoryMap: ScheduleCategoryMap,\n event: CalendarEvent,\n): ScheduleCategory {\n return (\n (event.category == null ? undefined : categoryMap.get(event.category)) ??\n (event.category != null\n ? {label: event.category, color: categoryFallback.color}\n : categoryFallback)\n );\n}\n\nexport function formatDate(date: PlainDate): string {\n return plainDateFormat(date, DATE_FORMAT_WITH_WEEKDAY);\n}\n\nexport function formatMonthTitle(date: PlainDate): string {\n return plainDateFormat(date, DATE_FORMAT_MONTH_YEAR);\n}\n\nexport function formatWeekTitle(start: PlainDate, end: PlainDate): string {\n if (start.year === end.year && start.month === end.month) {\n return formatMonthTitle(start);\n }\n\n const startMonth = plainDateFormat(start, {month: 'long'});\n const endMonth = plainDateFormat(end, {month: 'long'});\n return start.year === end.year\n ? `${startMonth} - ${endMonth} ${end.year}`\n : `${startMonth} ${start.year} - ${endMonth} ${end.year}`;\n}\n\nexport function formatListRangeTitle(start: PlainDate, end: PlainDate): string {\n return plainDateIsEqual(start, end)\n ? formatDate(start)\n : formatWeekTitle(start, end);\n}\n\nfunction formatTime(instant: number, timezoneID: string): string {\n return Temporal.Instant.fromEpochMilliseconds(instant)\n .toZonedDateTimeISO(timezoneID)\n .toLocaleString(undefined, {\n hour: 'numeric',\n minute: '2-digit',\n });\n}\n\nexport function formatTimezoneAbbreviation(\n date: PlainDate,\n timezoneID: string,\n): string {\n const formatter = new Intl.DateTimeFormat(undefined, {\n timeZone: timezoneID,\n timeZoneName: 'short',\n });\n const parts = formatter.formatToParts(\n date.toZonedDateTime(timezoneID).epochMilliseconds,\n );\n return parts.find(part => part.type === 'timeZoneName')?.value ?? timezoneID;\n}\n\nexport function formatHour(hour: number): string {\n return Temporal.PlainTime.from({hour}).toLocaleString(undefined, {\n hour: 'numeric',\n });\n}\n\nexport function getEventTimeLabel(\n event: CalendarEvent,\n timezoneID: string,\n): string {\n if (isDayEvent(event)) {\n return 'all day';\n }\n\n return `${formatTime(event.start, timezoneID)} - ${formatTime(event.end, timezoneID)}`;\n}\n\nfunction getEventStartTimeLabel(\n event: CalendarEvent,\n timezoneID: string,\n): string | null {\n return isDayEvent(event) ? null : formatTime(event.start, timezoneID);\n}\n\nexport function getEventAccessibleLabel(\n event: CalendarEvent,\n categoryMap: ScheduleCategoryMap,\n timezoneID: string,\n): string {\n const category = getCategory(categoryMap, event);\n return `${event.title}, ${category.label}, ${getEventTimeLabel(event, timezoneID)}`;\n}\n\nexport function getMinutesSinceStartOfDay(\n instant: number,\n timezoneID: string,\n): number {\n const zonedTime = Temporal.Instant.fromEpochMilliseconds(instant)\n .toZonedDateTimeISO(timezoneID)\n .toPlainTime();\n return zonedTime.hour * 60 + zonedTime.minute;\n}\n\nexport function isEventInPast(\n event: CalendarEvent,\n currentTime: number,\n timezoneID: string,\n): boolean {\n if (isDayEvent(event)) {\n return plainDateIsBefore(\n event.end,\n plainDateFromInstant(currentTime, timezoneID),\n );\n }\n\n return event.end <= currentTime;\n}\n\n/**\n * ARIA/positioning props spread onto an event pill that has been promoted to a\n * clickable `<button>` trigger by {@link useScheduleEventPopover}.\n */\nexport interface ScheduleEventTriggerProps {\n 'aria-controls': string;\n 'aria-expanded': boolean;\n 'aria-haspopup': 'dialog' | 'menu';\n onClick: () => void;\n ref: RefCallback<HTMLElement>;\n}\n\n/**\n * Whether any registered plugin provides event popover content, meaning event\n * pills should render as interactive triggers.\n */\nexport function hasEventPopoverPlugin(\n plugins: ReadonlyArray<SchedulePlugin>,\n): boolean {\n return plugins.some(plugin => plugin.renderEventPopover != null);\n}\n\n/**\n * Wires an event pill to its popover when an event popover plugin is active.\n * Returns `triggerProps` to spread onto the pill's `<button>` root and the\n * rendered `popover` layer to place as a sibling. Both are `undefined` when no\n * plugin supplies content for the event, in which case the pill stays a static,\n * non-interactive element (unchanged default behavior).\n */\nexport function useScheduleEventPopover(\n event: CalendarEvent,\n {placement = 'end'}: {placement?: LayerPlacement} = {},\n): {\n popover?: ReactNode;\n triggerProps?: ScheduleEventTriggerProps;\n} {\n const {categoryMap, plugins, timezoneID} = useScheduleContext();\n const popover = usePopover({\n // Content renders its own close affordance via the `controls.close` passed\n // to renderEventPopover, so suppress the built-in close button.\n hasCloseButton: false,\n label: getEventAccessibleLabel(event, categoryMap, timezoneID),\n role: 'dialog',\n });\n const {hide} = popover;\n const controls = useMemo(\n (): ScheduleEventPopoverControls => ({close: hide}),\n [hide],\n );\n const content = useMemo((): ReactNode => {\n for (const plugin of plugins) {\n const node = plugin.renderEventPopover?.(event, controls);\n if (isReactNode(node)) {\n return node;\n }\n }\n return null;\n }, [controls, event, plugins]);\n if (!isReactNode(content)) {\n return {};\n }\n return {\n popover: popover.render(content, {\n alignment: 'start',\n offsetX: 8,\n offsetY: -3,\n placement,\n }),\n triggerProps: {\n ...popover.triggerProps,\n onClick: popover.toggle,\n ref: popover.triggerRef,\n },\n };\n}\n\nexport function useScheduleEventPluginProps({\n event,\n layout,\n}: Pick<ScheduleEventPropsRenderProps, 'event' | 'layout'>):\n | HTMLAttributes<HTMLElement>\n | undefined {\n const {plugins, timezoneID} = useScheduleContext();\n return useMemo(() => {\n let props: HTMLAttributes<HTMLElement> | undefined;\n plugins.forEach(plugin => {\n const pluginProps = plugin.getEventProps?.({event, layout, timezoneID});\n if (pluginProps != null) {\n props = {...props, ...pluginProps};\n }\n });\n return props;\n }, [event, layout, plugins, timezoneID]);\n}\n\n/**\n * Renders an event pill root as either a clickable `<button>` trigger (when\n * `triggerProps` is supplied) or a static `<span>`, keeping identical classes\n * and data attributes so the two forms look the same.\n */\nfunction EventPillRoot({\n children,\n className,\n dataState,\n dataTestId,\n pluginProps,\n triggerProps,\n}: {\n children: ReactNode;\n className?: string;\n dataState?: 'past';\n dataTestId: string;\n pluginProps?: HTMLAttributes<HTMLElement>;\n triggerProps?: ScheduleEventTriggerProps;\n}): React.JSX.Element {\n if (triggerProps != null) {\n return (\n <button\n className={className}\n data-state={dataState}\n data-testid={dataTestId}\n {...pluginProps}\n type=\"button\"\n {...triggerProps}>\n {children}\n </button>\n );\n }\n return (\n <span\n className={className}\n data-state={dataState}\n data-testid={dataTestId}\n {...pluginProps}>\n {children}\n </span>\n );\n}\n\n/**\n * Renders a colored pill displaying an event's accessible label.\n */\nexport function CalendarEventPill({\n event,\n isFullWidth = false,\n isPast = false,\n}: {\n event: CalendarEvent;\n isFullWidth?: boolean;\n isPast?: boolean;\n}): React.JSX.Element {\n const {categoryMap, timezoneID} = useScheduleContext();\n const {popover, triggerProps} = useScheduleEventPopover(event);\n const pluginProps = useScheduleEventPluginProps({event, layout: 'inline'});\n const category = getCategory(categoryMap, event);\n const classes = scheduleEventRecipe({\n color: category.color,\n isFullWidth,\n isPast,\n isInteractive: triggerProps != null,\n });\n return (\n <>\n <EventPillRoot\n className={classes.event}\n dataState={isPast ? 'past' : undefined}\n dataTestId={`schedule-event-${event.id}`}\n pluginProps={pluginProps}\n triggerProps={triggerProps}>\n <span className={classes.title}>\n {isDayEvent(event)\n ? event.title\n : getEventAccessibleLabel(event, categoryMap, timezoneID)}\n </span>\n </EventPillRoot>\n {popover}\n </>\n );\n}\n\nexport function CalendarMonthEventPill({\n event,\n isPast = false,\n}: {\n event: CalendarEvent;\n isPast?: boolean;\n}): React.JSX.Element {\n const {categoryMap, timezoneID} = useScheduleContext();\n const {popover, triggerProps} = useScheduleEventPopover(event);\n const pluginProps = useScheduleEventPluginProps({event, layout: 'month'});\n const category = getCategory(categoryMap, event);\n const startTimeLabel = getEventStartTimeLabel(event, timezoneID);\n const classes = scheduleEventRecipe({\n color: category.color,\n isPast,\n isFullWidth: true,\n isInteractive: triggerProps != null,\n });\n return (\n <>\n <EventPillRoot\n className={classes.event}\n dataState={isPast ? 'past' : undefined}\n dataTestId={`schedule-event-${event.id}`}\n pluginProps={pluginProps}\n triggerProps={triggerProps}>\n {startTimeLabel != null ? (\n <span className={classes.time}>{startTimeLabel}</span>\n ) : null}\n <span className={classes.title}>{event.title}</span>\n </EventPillRoot>\n {popover}\n </>\n );\n}\n\n/**\n * Shared \"+N more\" overflow popover used by schedule views that collapse dense\n * event lists.\n */\nexport function ScheduleEventOverflowPopover({\n buttonClassName,\n contentClassName,\n events,\n eventsClassName,\n hiddenEventCount,\n label,\n renderEvent,\n testId,\n title,\n}: {\n buttonClassName?: string;\n contentClassName?: string;\n events: ReadonlyArray<CalendarEvent>;\n eventsClassName?: string;\n hiddenEventCount: number;\n label: string;\n renderEvent: (event: CalendarEvent) => ReactNode;\n testId: string;\n title: ReactNode;\n}): React.JSX.Element {\n return (\n <Popover\n content={\n <div className={contentClassName}>\n <Heading level={4}>{title}</Heading>\n <ul className={eventsClassName}>\n {events.map(event => (\n <li key={event.id}>{renderEvent(event)}</li>\n ))}\n </ul>\n </div>\n }\n data-testid={testId}\n label={label}\n width={320}>\n <Link\n className={buttonClassName}\n color=\"primary\"\n label={label}\n size=\"xs\"\n weight=\"medium\">\n +{hiddenEventCount} more\n </Link>\n </Popover>\n );\n}\n\n/**\n * Layout wrapper that renders the schedule header (with plugin slots) and body.\n */\nexport function ScheduleFrame({\n children,\n title,\n titleLabel,\n}: {\n /**\n * View content rendered below the header.\n */\n children: ReactNode;\n /**\n * Title displayed in the header center slot.\n */\n title: ReactNode;\n /**\n * Accessible label for the enclosing section.\n */\n titleLabel: string;\n}): React.JSX.Element {\n const {isLoading, plugins} = useScheduleContext();\n const initialHeader: ScheduleHeaderContent = {\n startContent: null,\n centerContent: (\n <span className={scheduleClasses.headerTitleContent}>\n <Heading level={2}>{title}</Heading>\n {isLoading ? (\n <Spinner\n aria-label=\"Loading events\"\n className={scheduleClasses.headerTitleSpinner}\n size=\"sm\"\n />\n ) : null}\n </span>\n ),\n endContent: null,\n };\n const header = plugins.reduce(\n (content, plugin) =>\n plugin.renderHeader?.(\n content.startContent,\n content.centerContent,\n content.endContent,\n ) ?? content,\n initialHeader,\n );\n\n return (\n <section aria-label={titleLabel} className={scheduleClasses.frame}>\n <div className={scheduleClasses.header}>\n <div className={scheduleClasses.headerSlotStart}>\n {header.startContent}\n </div>\n <div className={scheduleClasses.headerSlotCenter}>\n {header.centerContent}\n </div>\n <div className={scheduleClasses.headerSlotEnd}>{header.endContent}</div>\n </div>\n {children}\n </section>\n );\n}\n","import {Temporal} from '@js-temporal/polyfill';\nimport {useSyncExternalStore} from 'react';\nimport type {Instant} from 'components/Schedule/types';\n\nconst UPDATE_INTERVAL_MS = 60 * 1000;\nconst listeners = new Set<() => void>();\nlet interval: ReturnType<typeof setInterval> | null = null;\nlet currentTime = getCurrentTime();\n\nfunction getCurrentTime(): Instant {\n return Temporal.Now.instant().epochMilliseconds;\n}\n\nfunction getSnapshot(): Instant {\n return currentTime;\n}\n\nfunction getServerSnapshot(): Instant {\n return 0;\n}\n\nfunction subscribe(listener: () => void): () => void {\n listeners.add(listener);\n currentTime = getCurrentTime();\n listener();\n\n interval ??= setInterval(() => {\n currentTime = getCurrentTime();\n listeners.forEach(activeListener => activeListener());\n }, UPDATE_INTERVAL_MS);\n\n return () => {\n listeners.delete(listener);\n if (listeners.size === 0 && interval != null) {\n clearInterval(interval);\n interval = null;\n }\n };\n}\n\nexport function useCurrentTime(): Instant {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n","/* eslint-disable silver-ui/require-component-props -- schedule views are internal view renderers */\n\nimport {Temporal} from '@js-temporal/polyfill';\nimport {\n useMemo,\n type CSSProperties,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport {scheduleEventRecipe} from 'components/Schedule/ScheduleEvent.recipe';\nimport {scheduleTimeGridViewRecipe} from 'components/Schedule/TimeGridView.recipe';\nimport {useScheduleContext} from 'components/Schedule/context';\nimport {eventOccursOnDate, isDayEvent} from 'components/Schedule/dateMath';\nimport {\n CalendarEventPill,\n formatHour,\n formatTimezoneAbbreviation,\n getCategory,\n getEventAccessibleLabel,\n getEventTimeLabel,\n getMinutesSinceStartOfDay,\n isEventInPast,\n scheduleClasses,\n ScheduleCurrentTimeIndicator,\n ScheduleEventOverflowPopover,\n useScheduleEventPluginProps,\n useScheduleEventPopover,\n} from 'components/Schedule/shared';\nimport type {\n CalendarEvent,\n CalendarInstantEvent,\n} from 'components/Schedule/types';\nimport {useCurrentTime} from 'components/Schedule/useCurrentTime';\nimport {Heading, Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {\n DATE_FORMAT_WITH_WEEKDAY,\n plainDateFormat,\n plainDateFromInstant,\n plainDateIsBefore,\n plainDateIsEqual,\n type PlainDate,\n} from 'internal/plainDate';\n\ntype GridStyle = CSSProperties & {'--schedule-day-count': string};\ntype HourStyle = Pick<CSSProperties, 'height' | 'minHeight'>;\n\nconst styles = scheduleTimeGridViewRecipe();\n\nfunction eventOverlapsHour(\n event: CalendarEvent,\n day: PlainDate,\n hour: number,\n timezoneID: string,\n): boolean {\n if (isDayEvent(event)) {\n return false;\n }\n if (!eventOccursOnDate(event, day, timezoneID)) {\n return false;\n }\n\n const hourStart = day\n .toPlainDateTime(Temporal.PlainTime.from({hour}))\n .toZonedDateTime(timezoneID).epochMilliseconds;\n const hourEnd =\n hour === 23\n ? day.add({days: 1}).toZonedDateTime(timezoneID).epochMilliseconds\n : day\n .toPlainDateTime(Temporal.PlainTime.from({hour: hour + 1}))\n .toZonedDateTime(timezoneID).epochMilliseconds;\n return event.start < hourEnd && event.end > hourStart;\n}\n\ninterface TimedEventLayout {\n event: CalendarInstantEvent;\n height: number;\n level: number;\n startHour: number;\n top: number;\n}\n\nfunction eventSpansPastDay(\n event: CalendarInstantEvent,\n day: PlainDate,\n timezoneID: string,\n): boolean {\n return !plainDateIsEqual(\n plainDateFromInstant(Math.max(event.end - 1, event.start), timezoneID),\n day,\n );\n}\n\nfunction getAvailableTimedEventLevel(\n levelEndMinutes: number[],\n visibleStart: number,\n): number {\n const level = levelEndMinutes.findIndex(\n endMinute => visibleStart >= endMinute,\n );\n return level >= 0 ? level : levelEndMinutes.length;\n}\n\nfunction getTimedEventLayouts({\n day,\n events,\n hourHeight,\n maxHour,\n minHour,\n timezoneID,\n}: {\n day: PlainDate;\n events: ReadonlyArray<CalendarInstantEvent>;\n hourHeight: number;\n maxHour: number;\n minHour: number;\n timezoneID: string;\n}): TimedEventLayout[] {\n const levelEndMinutes: number[] = [];\n const minMinute = minHour * 60;\n const maxMinute = maxHour * 60;\n\n return events\n .map(event => {\n const startDate = plainDateFromInstant(event.start, timezoneID);\n const rawStart = plainDateIsBefore(startDate, day)\n ? 0\n : getMinutesSinceStartOfDay(event.start, timezoneID);\n const rawEnd = eventSpansPastDay(event, day, timezoneID)\n ? 24 * 60\n : getMinutesSinceStartOfDay(event.end, timezoneID);\n if (rawEnd <= minMinute || rawStart >= maxMinute) {\n return null;\n }\n const visibleStart = Math.max(rawStart, minMinute);\n const visibleEnd = Math.min(\n maxMinute,\n Math.max(visibleStart + 15, rawEnd),\n );\n return {event, visibleEnd, visibleStart};\n })\n .filter(\n (\n layout,\n ): layout is {\n event: CalendarInstantEvent;\n visibleEnd: number;\n visibleStart: number;\n } => layout != null && layout.visibleEnd > layout.visibleStart,\n )\n .sort((a, b) => {\n if (a.visibleStart !== b.visibleStart) {\n return a.visibleStart - b.visibleStart;\n }\n return (\n a.visibleEnd - b.visibleEnd ||\n a.event.title.localeCompare(b.event.title)\n );\n })\n .map(({event, visibleEnd, visibleStart}) => {\n const level = getAvailableTimedEventLevel(levelEndMinutes, visibleStart);\n levelEndMinutes[level] = visibleEnd;\n const startHour = Math.floor(visibleStart / 60);\n return {\n event,\n height: ((visibleEnd - visibleStart) / 60) * hourHeight,\n level,\n startHour,\n top: ((visibleStart - startHour * 60) / 60) * hourHeight,\n };\n });\n}\n\nfunction getTimedEventStyle({\n height,\n level,\n top,\n}: TimedEventLayout): React.CSSProperties {\n return {\n height: `${Math.max(36, height - 5)}px`,\n insetInlineEnd: '2px',\n insetInlineStart: level === 0 ? '2px' : `calc(2px + ${level * 8}%)`,\n top: `${top + 2}px`,\n zIndex: level + 1,\n };\n}\n\n/**\n * Renders a single positioned timed-event block. Becomes a clickable `<button>`\n * trigger when an event popover plugin is active, otherwise a static `<div>`.\n */\nfunction TimeGridEvent({\n currentTime,\n hourHeight,\n layout,\n maxHour,\n minHour,\n}: {\n currentTime: number;\n hourHeight: number;\n layout: TimedEventLayout;\n maxHour: number;\n minHour: number;\n}): React.JSX.Element {\n const {categoryMap, plugins, timezoneID} = useScheduleContext();\n const {event} = layout;\n const {popover, triggerProps} = useScheduleEventPopover(event);\n const eventPluginProps = useScheduleEventPluginProps({\n event,\n layout: 'timeGrid',\n });\n const pluginEndContent = useMemo(\n () =>\n plugins\n .map(\n (plugin): ReactNode =>\n plugin.renderTimeGridEventContent?.({\n event,\n hourHeight,\n maxHour,\n minHour,\n timezoneID,\n }),\n )\n .filter(isReactNode),\n [event, hourHeight, maxHour, minHour, plugins, timezoneID],\n );\n const category = getCategory(categoryMap, event);\n const isPast = isEventInPast(event, currentTime, timezoneID);\n const classes = scheduleEventRecipe({\n layout: 'block',\n color: category.color,\n isPast,\n isInteractive: triggerProps != null,\n });\n const style = getTimedEventStyle(layout);\n const body = (\n <>\n <span className={classes.title}>{event.title}</span>\n <span className={classes.time}>\n {getEventTimeLabel(event, timezoneID)}\n </span>\n {pluginEndContent}\n </>\n );\n return (\n <>\n {triggerProps != null ? (\n <button\n className={classes.event}\n data-state={isPast ? 'past' : undefined}\n data-testid={`schedule-event-${event.id}`}\n style={style}\n type=\"button\"\n {...eventPluginProps}\n {...triggerProps}>\n {body}\n </button>\n ) : (\n <div\n className={classes.event}\n data-state={isPast ? 'past' : undefined}\n data-testid={`schedule-event-${event.id}`}\n {...eventPluginProps}\n style={style}>\n {body}\n </div>\n )}\n {popover}\n </>\n );\n}\n\nfunction getCellName({\n categoryMap,\n date,\n events,\n hourLabel,\n timezoneID,\n}: {\n categoryMap: ReturnType<typeof useScheduleContext>['categoryMap'];\n date: PlainDate;\n events: CalendarEvent[];\n hourLabel: string;\n timezoneID: string;\n}): string {\n const dateLabel = plainDateFormat(date, DATE_FORMAT_WITH_WEEKDAY);\n const eventLabels = events.map(event =>\n getEventAccessibleLabel(event, categoryMap, timezoneID),\n );\n return eventLabels.length > 0\n ? `${dateLabel} ${hourLabel}. ${eventLabels.join('. ')}`\n : `${dateLabel} ${hourLabel}`;\n}\n\n/**\n * Shared time grid layout used by day and week views with hourly rows.\n */\nexport function TimeGridView({\n allDayEventLimit = 3,\n days,\n hourHeight = 100,\n maxHour = 24,\n minHour = 0,\n}: {\n /**\n * Maximum number of all-day events shown before the rest collapse into a\n * popover.\n * @default 3\n */\n allDayEventLimit?: number;\n /**\n * Days to display as columns in the grid.\n */\n days: PlainDate[];\n /**\n * Pixel height used for each hourly row.\n * @default 100\n */\n hourHeight?: number;\n /**\n * Exclusive ending hour shown in the grid (1-24).\n * @default 24\n */\n maxHour?: number;\n /**\n * First hour shown in the grid (0-23).\n * @default 0\n */\n minHour?: number;\n}): React.JSX.Element {\n const {categoryMap, events, highlightDate, plugins, timezoneID} =\n useScheduleContext();\n const normalizedMinHour = Math.max(0, Math.min(23, Math.floor(minHour)));\n const normalizedMaxHour = Math.max(\n normalizedMinHour + 1,\n Math.min(24, Math.floor(maxHour)),\n );\n const hours = Array.from(\n {length: normalizedMaxHour - normalizedMinHour},\n (_, index) => normalizedMinHour + index,\n );\n const currentTime = useCurrentTime();\n const highlightPlainDate = highlightDate.toPlainDate();\n const timezoneLabel = formatTimezoneAbbreviation(\n days[0] ?? highlightPlainDate,\n timezoneID,\n );\n const gridStyle: GridStyle = {\n '--schedule-day-count': String(days.length),\n };\n const normalizedHourHeight = Math.max(1, Math.floor(hourHeight));\n const normalizedAllDayEventLimit = Number.isFinite(allDayEventLimit)\n ? Math.max(0, Math.floor(allDayEventLimit))\n : 3;\n const hourStyle: HourStyle = {\n height: normalizedHourHeight,\n minHeight: normalizedHourHeight,\n };\n // Layout is independent of the hour row, so compute it once per day and reuse\n // it across all hour cells rather than recomputing for every (day, hour) pair.\n const timedEventLayoutsByDay = days.map(day =>\n getTimedEventLayouts({\n day,\n events: events.filter(\n (event): event is CalendarInstantEvent =>\n !isDayEvent(event) && eventOccursOnDate(event, day, timezoneID),\n ),\n hourHeight: normalizedHourHeight,\n maxHour: normalizedMaxHour,\n minHour: normalizedMinHour,\n timezoneID,\n }),\n );\n\n return (\n <div\n aria-label=\"Schedule time grid\"\n aria-readonly=\"true\"\n className={cx(scheduleClasses.surface, styles.grid)}\n role=\"grid\"\n style={gridStyle}>\n <div className={styles.rowContents} role=\"row\">\n <div\n aria-colindex={1}\n aria-label=\"Time\"\n className={styles.corner}\n role=\"columnheader\"\n />\n <div className={styles.header}>\n {days.map((day, index) => {\n const isCurrentDay = plainDateIsEqual(day, highlightPlainDate);\n const dayHeaderClasses = scheduleTimeGridViewRecipe({\n isCurrentDay,\n isLastColumn: index === days.length - 1,\n });\n return (\n <div\n aria-colindex={index + 2}\n aria-current={isCurrentDay ? 'date' : undefined}\n aria-label={plainDateFormat(day, DATE_FORMAT_WITH_WEEKDAY)}\n className={dayHeaderClasses.dayHeader}\n key={day.toString()}\n role=\"columnheader\">\n <Heading\n aria-hidden=\"true\"\n color=\"secondary\"\n level={4}\n textWrap=\"nowrap\">\n <span className={styles.dayHeaderContent}>\n {plainDateFormat(day, {weekday: 'short'})}\n <span className={dayHeaderClasses.dayHeaderDayNumber}>\n {day.day}\n </span>\n </span>\n </Heading>\n </div>\n );\n })}\n </div>\n </div>\n <div className={styles.rowContents} role=\"row\">\n <div\n aria-colindex={1}\n aria-label={`${timezoneLabel} all day`}\n className={styles.allDayLabel}\n role=\"rowheader\">\n <Text color=\"secondary\" type=\"supporting\" weight=\"bold\">\n {timezoneLabel}\n </Text>\n </div>\n <div className={styles.allDayRow}>\n {days.map((day, index) => {\n const dayEvents = events.filter(\n event =>\n isDayEvent(event) && eventOccursOnDate(event, day, timezoneID),\n );\n const visibleDayEvents = dayEvents.slice(\n 0,\n normalizedAllDayEventLimit,\n );\n const hiddenDayEvents = dayEvents.slice(normalizedAllDayEventLimit);\n const dayCellClasses = scheduleTimeGridViewRecipe({\n isLastColumn: index === days.length - 1,\n });\n const dateLabel = plainDateFormat(day, DATE_FORMAT_WITH_WEEKDAY);\n const seeMoreLabel = `Show ${hiddenDayEvents.length} more all-day events for ${dateLabel}`;\n return (\n <div\n aria-colindex={index + 2}\n aria-label={getCellName({\n categoryMap,\n date: day,\n events: dayEvents,\n hourLabel: 'all day',\n timezoneID,\n })}\n className={dayCellClasses.dayCell}\n key={`${day.toString()}-all-day`}\n role=\"gridcell\">\n <div className={styles.allDayEvents}>\n {visibleDayEvents.map(event => (\n <CalendarEventPill\n event={event}\n isPast={isEventInPast(event, currentTime, timezoneID)}\n key={event.id}\n />\n ))}\n {hiddenDayEvents.length > 0 ? (\n <ScheduleEventOverflowPopover\n buttonClassName={styles.allDaySeeMoreButton}\n contentClassName={styles.allDayPopoverContent}\n events={dayEvents}\n eventsClassName={styles.allDayPopoverEvents}\n hiddenEventCount={hiddenDayEvents.length}\n label={seeMoreLabel}\n renderEvent={event => (\n <CalendarEventPill\n event={event}\n isFullWidth\n isPast={isEventInPast(event, currentTime, timezoneID)}\n />\n )}\n testId={`schedule-all-day-see-more-${day.toString()}`}\n title={dateLabel}\n />\n ) : null}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n {hours.map(hour => {\n const hourLabel = formatHour(hour);\n const isLastHour = hour === hours[hours.length - 1];\n const timeLabelClasses = scheduleTimeGridViewRecipe({\n isLastRow: isLastHour,\n });\n return (\n <div className={styles.rowContents} key={hour} role=\"row\">\n <div\n aria-colindex={1}\n className={timeLabelClasses.timeLabel}\n role=\"rowheader\"\n style={hourStyle}>\n {hourLabel}\n </div>\n <div className={styles.timeRow}>\n {days.map((day, index) => {\n const hourEvents = events.filter(event =>\n eventOverlapsHour(event, day, hour, timezoneID),\n );\n const visibleTimedEventLayouts = timedEventLayoutsByDay[\n index\n ].filter(layout => layout.startHour === hour);\n const currentTimeTop = getCurrentTimeTopForHour({\n currentTime,\n day,\n hour,\n maxHour: normalizedMaxHour,\n minHour: normalizedMinHour,\n timezoneID,\n });\n const hourCellClasses = scheduleTimeGridViewRecipe({\n isLastColumn: index === days.length - 1,\n isLastRow: isLastHour,\n });\n const hourCellPluginProps = plugins.reduce<\n HTMLAttributes<HTMLElement>\n >(\n (props, plugin) => ({\n ...props,\n ...plugin.getTimeGridCellProps?.({\n date: day,\n hour,\n hourHeight: normalizedHourHeight,\n maxHour: normalizedMaxHour,\n minHour: normalizedMinHour,\n timezoneID,\n }),\n }),\n {},\n );\n return (\n <div\n aria-colindex={index + 2}\n aria-label={getCellName({\n categoryMap,\n date: day,\n events: hourEvents,\n hourLabel,\n timezoneID,\n })}\n className={hourCellClasses.hourCell}\n data-testid={`schedule-time-grid-cell-${day.toString()}-${hour}`}\n key={`${day.toString()}-${hour}`}\n role=\"gridcell\"\n style={hourStyle}\n {...hourCellPluginProps}>\n {currentTimeTop != null ? (\n <ScheduleCurrentTimeIndicator\n layout=\"timeGrid\"\n style={{top: `${currentTimeTop}%`}}\n testId=\"schedule-current-time-line\"\n />\n ) : null}\n <div className={styles.events}>\n {visibleTimedEventLayouts.map(layout => (\n <TimeGridEvent\n currentTime={currentTime}\n hourHeight={normalizedHourHeight}\n key={layout.event.id}\n layout={layout}\n maxHour={normalizedMaxHour}\n minHour={normalizedMinHour}\n />\n ))}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n\nfunction getCurrentTimeTopForHour({\n currentTime,\n day,\n hour,\n maxHour,\n minHour,\n timezoneID,\n}: {\n currentTime: number;\n day: PlainDate;\n hour: number;\n maxHour: number;\n minHour: number;\n timezoneID: string;\n}): number | null {\n if (!plainDateIsEqual(day, plainDateFromInstant(currentTime, timezoneID))) {\n return null;\n }\n\n const currentMinute = getMinutesSinceStartOfDay(currentTime, timezoneID);\n const minMinute = minHour * 60;\n const maxMinute = maxHour * 60;\n if (currentMinute < minMinute || currentMinute > maxMinute) {\n return null;\n }\n\n if (currentMinute === maxMinute) {\n return hour === maxHour - 1 ? 100 : null;\n }\n\n if (Math.floor(currentMinute / 60) !== hour) {\n return null;\n }\n\n return ((currentMinute % 60) / 60) * 100;\n}\n","import type {\n Instant,\n ScheduleDate,\n ScheduleRange,\n} from 'components/Schedule/types';\nimport {\n plainDateFromInstant,\n plainDateToInstant,\n type PlainDate,\n} from 'internal/plainDate';\n\nexport interface ScheduleZonedInstant {\n addDays: (days: number) => ScheduleZonedInstant;\n instant: Instant;\n startOfDay: () => ScheduleZonedInstant;\n timezoneID: string;\n toPlainDate: () => PlainDate;\n}\n\nexport type ScheduleZonedInstantRange = [\n ScheduleZonedInstant,\n ScheduleZonedInstant,\n];\n\nexport function createScheduleZonedInstant(\n date: ScheduleDate,\n timezoneID: string,\n): ScheduleZonedInstant {\n return scheduleZonedInstantFromInstant(date, timezoneID);\n}\n\nexport function scheduleZonedInstantFromInstant(\n instant: Instant,\n timezoneID: string,\n): ScheduleZonedInstant {\n return {\n addDays: days => {\n const date = plainDateFromInstant(instant, timezoneID).add({days});\n return scheduleZonedInstantFromInstant(\n plainDateToInstant(date, timezoneID),\n timezoneID,\n );\n },\n instant,\n startOfDay: () => {\n const date = plainDateFromInstant(instant, timezoneID);\n return scheduleZonedInstantFromInstant(\n plainDateToInstant(date, timezoneID),\n timezoneID,\n );\n },\n timezoneID,\n toPlainDate: () => plainDateFromInstant(instant, timezoneID),\n };\n}\n\nexport function scheduleRangeToScheduleZonedInstantRange(\n range: ScheduleRange,\n timezoneID: string,\n): ScheduleZonedInstantRange {\n return [\n scheduleZonedInstantFromInstant(range.start, timezoneID),\n scheduleZonedInstantFromInstant(range.end, timezoneID),\n ];\n}\n","/* eslint-disable silver-ui/require-component-props -- schedule views are internal view renderers */\n\nimport {TimeGridView} from 'components/Schedule/TimeGridView';\nimport {useScheduleContext} from 'components/Schedule/context';\nimport {getScheduleRangeFromDates} from 'components/Schedule/dateMath';\nimport {scheduleRangeToScheduleZonedInstantRange} from 'components/Schedule/scheduleZonedInstant';\nimport {\n ScheduleFrame,\n formatDate,\n formatMonthTitle,\n} from 'components/Schedule/shared';\nimport type {\n ScheduleView,\n ScheduleViewComponentProps,\n ScheduleZonedInstant,\n} from 'components/Schedule/types';\n\nexport interface ScheduleDayViewOptions {\n /**\n * Maximum number of all-day events shown before the rest collapse into a\n * popover.\n * @default 3\n */\n allDayEventLimit?: number;\n /**\n * Pixel height used for each hourly row.\n * @default 100\n */\n hourHeight?: number;\n /**\n * Exclusive ending hour shown in the day grid (1-24).\n * @default 24\n */\n maxHour?: number;\n /**\n * First hour shown in the day grid (0-23).\n * @default 0\n */\n minHour?: number;\n}\n\n/**\n * Internal view component that renders a single-day time grid.\n */\nfunction ScheduleDayView({\n options,\n}: ScheduleViewComponentProps<ScheduleDayViewOptions>): React.JSX.Element {\n const {viewDate} = useScheduleContext();\n const day = viewDate.toPlainDate();\n return (\n <ScheduleFrame title={formatMonthTitle(day)} titleLabel={formatDate(day)}>\n <TimeGridView\n allDayEventLimit={options.allDayEventLimit}\n days={[day]}\n hourHeight={options.hourHeight}\n maxHour={options.maxHour}\n minHour={options.minHour}\n />\n </ScheduleFrame>\n );\n}\n\n/**\n * Creates a single-day schedule view configuration.\n */\nexport function createScheduleDayView({\n allDayEventLimit = 3,\n hourHeight = 100,\n maxHour = 24,\n minHour = 0,\n}: ScheduleDayViewOptions = {}): ScheduleView<ScheduleDayViewOptions> {\n return {\n component: ScheduleDayView,\n getDateRange: (date: ScheduleZonedInstant) =>\n scheduleRangeToScheduleZonedInstantRange(\n getScheduleRangeFromDates({\n endDate: date.toPlainDate().add({days: 1}),\n startDate: date.toPlainDate(),\n timezoneID: date.timezoneID,\n }),\n date.timezoneID,\n ),\n getNextDateRange: (date: ScheduleZonedInstant) => ({\n label: 'Next day',\n range: [date.startOfDay().addDays(1), date.startOfDay().addDays(2)],\n }),\n getPreviousDateRange: (date: ScheduleZonedInstant) => ({\n label: 'Previous day',\n range: [date.startOfDay().addDays(-1), date.startOfDay()],\n }),\n options: {allDayEventLimit, hourHeight, maxHour, minHour},\n };\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Slot recipe for the schedule list view. Variants cover row separators, the\n * highlighted day number, and muted past events.\n */\nexport const scheduleListViewRecipe = sva({\n slots: [\n 'list',\n 'day',\n 'dayHeading',\n 'dayWeekday',\n 'dayNumber',\n 'events',\n 'eventRow',\n 'eventContent',\n 'eventTime',\n ],\n base: {\n list: {\n display: 'flex',\n flexDirection: 'column',\n },\n day: {\n display: 'grid',\n gridTemplateColumns: '112px minmax(0, 1fr)',\n alignItems: 'start',\n columnGap: '3',\n p: '3',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n dayHeading: {\n m: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n gap: '2',\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'lg',\n fontWeight: 'semibold',\n lineHeight: 'tight',\n whiteSpace: 'nowrap',\n },\n dayWeekday: {\n display: 'inline-block',\n fontSize: 'lg',\n },\n dayNumber: {\n display: 'inline-flex',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n w: '30px',\n h: '30px',\n borderRadius: 'full',\n fontWeight: 'bold',\n },\n events: {\n display: 'flex',\n flexDirection: 'column',\n gap: '2',\n },\n eventRow: {\n display: 'grid',\n gridTemplateColumns: '160px minmax(0, 1fr)',\n alignItems: 'center',\n gap: '3',\n },\n eventContent: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n justifySelf: 'start',\n minW: 0,\n },\n eventTime: {\n whiteSpace: 'nowrap',\n },\n },\n variants: {\n isHighlightedDay: {\n true: {\n dayNumber: {\n bg: 'primary',\n color: 'fg.onPrimary',\n },\n },\n false: {},\n },\n isLastDay: {\n true: {\n day: {\n borderBlockEndWidth: 0,\n },\n },\n false: {},\n },\n isPastEvent: {\n true: {\n eventRow: {\n opacity: 0.64,\n },\n },\n false: {},\n },\n isInteractiveEvent: {\n true: {\n eventContent: {\n appearance: 'none',\n bg: 'none',\n borderWidth: 0,\n p: 0,\n m: 0,\n font: 'inherit',\n textAlign: 'inherit',\n color: 'inherit',\n cursor: 'pointer',\n borderRadius: 'sm',\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n },\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isHighlightedDay: false,\n isLastDay: false,\n isPastEvent: false,\n isInteractiveEvent: false,\n },\n});\n\nexport type ScheduleListViewVariants = RecipeVariantProps<\n typeof scheduleListViewRecipe\n>;\n","/* eslint-disable silver-ui/require-component-props -- schedule views are internal view renderers */\n\nimport {scheduleListViewRecipe} from 'components/Schedule/ListView.recipe';\nimport {scheduleEventRecipe} from 'components/Schedule/ScheduleEvent.recipe';\nimport {useScheduleContext} from 'components/Schedule/context';\nimport {\n enumerateDates,\n eventOccursOnDate,\n isDayEvent,\n} from 'components/Schedule/dateMath';\nimport {\n getCategory,\n getEventTimeLabel,\n isEventInPast,\n formatListRangeTitle,\n scheduleClasses,\n ScheduleCurrentTimeIndicator,\n ScheduleFrame,\n useScheduleEventPopover,\n} from 'components/Schedule/shared';\nimport type {\n CalendarEvent,\n Instant,\n ScheduleView,\n ScheduleZonedInstant,\n} from 'components/Schedule/types';\nimport {useCurrentTime} from 'components/Schedule/useCurrentTime';\nimport {Text} from 'components/Text';\nimport {Tooltip} from 'components/Tooltip';\nimport {cx} from 'internal/cx';\nimport {\n DATE_FORMAT_WITH_WEEKDAY,\n plainDateFormat,\n plainDateFromInstant,\n plainDateIsEqual,\n} from 'internal/plainDate';\n\nexport interface ScheduleListViewOptions {\n /**\n * Number of days shown in the list.\n * @default 7\n */\n days?: number;\n}\n\nconst styles = scheduleListViewRecipe();\n\n/**\n * Renders a single event row in the list view.\n */\nfunction ListEvent({\n event,\n isPast,\n}: {\n event: CalendarEvent;\n isPast: boolean;\n}): React.JSX.Element {\n const {categoryMap, timezoneID} = useScheduleContext();\n const {popover, triggerProps} = useScheduleEventPopover(event, {\n placement: 'end',\n });\n const category = getCategory(categoryMap, event);\n const eventDataState = isPast ? 'past' : undefined;\n const classes = scheduleListViewRecipe({\n isInteractiveEvent: triggerProps != null,\n isPastEvent: isPast,\n });\n const eventContent = (\n <>\n <Tooltip content={category.label} hoverIndication=\"never\">\n <span\n aria-label={category.label}\n className={scheduleEventRecipe({color: category.color}).dot}\n role=\"img\"\n />\n </Tooltip>\n <Text>{event.title}</Text>\n </>\n );\n return (\n <div className={classes.eventRow} data-state={eventDataState}>\n <Text className={classes.eventTime} color=\"secondary\" type=\"supporting\">\n {isDayEvent(event) ? 'All day' : getEventTimeLabel(event, timezoneID)}\n </Text>\n {triggerProps != null ? (\n <button\n className={classes.eventContent}\n data-state={eventDataState}\n data-testid={`schedule-event-${event.id}`}\n type=\"button\"\n {...triggerProps}>\n {eventContent}\n </button>\n ) : (\n <div\n className={classes.eventContent}\n data-state={eventDataState}\n data-testid={`schedule-event-${event.id}`}>\n {eventContent}\n </div>\n )}\n {popover}\n </div>\n );\n}\n\n/**\n * Internal view component that renders events as a chronological day-by-day list.\n */\nfunction ScheduleListView(): React.JSX.Element {\n const {events, highlightDate, isLoading, range, timezoneID} =\n useScheduleContext();\n const days = enumerateDates(range.startDate, range.endDate);\n const currentTime = useCurrentTime();\n const currentPlainDate = plainDateFromInstant(currentTime, timezoneID);\n const highlightPlainDate = highlightDate.toPlainDate();\n const endDate = range.endDate.add({days: -1});\n const title = formatListRangeTitle(range.startDate, endDate);\n const visibleDays = days\n .map(day => {\n const dayEvents = events.filter(event =>\n eventOccursOnDate(event, day, timezoneID),\n );\n const isCurrentDay = plainDateIsEqual(day, currentPlainDate);\n const isHighlightedDay = plainDateIsEqual(day, highlightPlainDate);\n const isBaseDay = plainDateIsEqual(day, range.startDate);\n return {\n day,\n dayEvents,\n isCurrentDay,\n isHighlightedDay,\n isVisible: dayEvents.length > 0 || isCurrentDay || isBaseDay,\n };\n })\n .filter(dayRecord => dayRecord.isVisible);\n\n return (\n <ScheduleFrame title={title} titleLabel={title}>\n <div className={cx(scheduleClasses.surface, styles.list)}>\n {visibleDays.map(\n ({day, dayEvents, isCurrentDay, isHighlightedDay}, index) => {\n const fullDate = plainDateFormat(day, DATE_FORMAT_WITH_WEEKDAY);\n const dayClasses = scheduleListViewRecipe({\n isHighlightedDay,\n isLastDay: index === visibleDays.length - 1,\n });\n return (\n <section className={dayClasses.day} key={day.toString()}>\n <h4\n aria-current={isHighlightedDay ? 'date' : undefined}\n aria-label={fullDate}\n className={dayClasses.dayHeading}>\n <span className={dayClasses.dayNumber}>{day.day}</span>\n <span className={dayClasses.dayWeekday}>\n {plainDateFormat(day, {weekday: 'short'})}\n </span>\n </h4>\n <div className={dayClasses.events}>\n {renderListRows({\n currentTime,\n events: dayEvents,\n isShowingCurrentTime: isCurrentDay && !isLoading,\n timezoneID,\n })}\n </div>\n </section>\n );\n },\n )}\n </div>\n </ScheduleFrame>\n );\n}\n\nfunction renderListRows({\n currentTime,\n events,\n isShowingCurrentTime,\n timezoneID,\n}: {\n currentTime: Instant;\n events: ReadonlyArray<CalendarEvent>;\n isShowingCurrentTime: boolean;\n timezoneID: string;\n}): React.JSX.Element[] {\n const rows = events.map(event => (\n <ListEvent\n event={event}\n isPast={isEventInPast(event, currentTime, timezoneID)}\n key={event.id}\n />\n ));\n\n if (!isShowingCurrentTime) {\n return rows;\n }\n\n const marker = (\n <ScheduleCurrentTimeIndicator\n key=\"current-time\"\n layout=\"list\"\n testId=\"schedule-list-current-time\"\n />\n );\n const insertIndex = events.findIndex(\n event => !isDayEvent(event) && event.start > currentTime,\n );\n\n if (insertIndex < 0) {\n return [...rows, marker];\n }\n\n return [...rows.slice(0, insertIndex), marker, ...rows.slice(insertIndex)];\n}\n\n/**\n * Creates a list schedule view configuration.\n */\nexport function createScheduleListView({\n days = 7,\n}: ScheduleListViewOptions = {}): ScheduleView<ScheduleListViewOptions> {\n return {\n component: ScheduleListView,\n getDateRange: (date: ScheduleZonedInstant) => [\n date.startOfDay(),\n date.startOfDay().addDays(days),\n ],\n getNextDateRange: date => ({\n label: 'Next range',\n range: [\n date.startOfDay().addDays(days),\n date.startOfDay().addDays(days * 2),\n ],\n }),\n getPreviousDateRange: date => ({\n label: 'Previous range',\n range: [date.startOfDay().addDays(-days), date.startOfDay()],\n }),\n options: {days},\n };\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Slot recipe for the schedule monthly grid. The view renders the day cells and\n * the event overlay as separate grids, so this keeps their shared sizing and\n * day-state styles in one place.\n */\nexport const scheduleMonthlyViewRecipe = sva({\n slots: [\n 'grid',\n 'weekday',\n 'cell',\n 'dayNumber',\n 'todayText',\n 'monthSurface',\n 'monthCellGrid',\n 'monthEventOverlay',\n 'monthEventSpan',\n 'monthSeeMoreSpan',\n 'monthSeeMoreButton',\n 'monthPopoverContent',\n 'monthPopoverEvents',\n ],\n base: {\n grid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(7, minmax(0, 1fr))',\n },\n weekday: {\n p: '2',\n textAlign: 'center',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n cell: {\n minH: '24',\n p: '0.5',\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n dayNumber: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '6',\n h: '6',\n m: '0.5',\n borderRadius: 'full',\n },\n monthSurface: {\n position: 'relative',\n gridColumn: '1 / -1',\n },\n monthCellGrid: {\n display: 'grid',\n gridTemplateColumns: 'repeat(7, minmax(0, 1fr))',\n gridAutoRows: 'var(--schedule-month-row-height)',\n },\n monthEventOverlay: {\n position: 'absolute',\n inset: 0,\n display: 'grid',\n gridTemplateColumns: 'repeat(7, minmax(0, 1fr))',\n gridAutoRows: 'var(--schedule-month-row-height)',\n pointerEvents: 'none',\n },\n monthEventSpan: {\n alignSelf: 'start',\n minW: 0,\n mx: '0.5',\n pointerEvents: 'auto',\n zIndex: 1,\n },\n monthSeeMoreSpan: {\n alignSelf: 'start',\n minW: 0,\n mx: '0.5',\n pointerEvents: 'auto',\n zIndex: 2,\n },\n monthSeeMoreButton: {\n display: 'inline-flex',\n alignItems: 'center',\n maxW: 'full',\n h: '5',\n px: '1',\n borderRadius: 'sm',\n color: 'primary',\n cursor: 'pointer',\n fontSize: 'xs',\n fontWeight: 'medium',\n lineHeight: 'tight',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n _hover: {\n bg: 'bg.muted',\n },\n },\n monthPopoverContent: {\n display: 'flex',\n flexDirection: 'column',\n gap: '1',\n p: '3',\n },\n monthPopoverEvents: {\n display: 'flex',\n flexDirection: 'column',\n gap: 0,\n m: 0,\n p: 0,\n listStyleType: 'none',\n },\n },\n variants: {\n isLastColumn: {\n true: {cell: {borderInlineEndWidth: 0}},\n false: {},\n },\n isLastRow: {\n true: {cell: {borderBlockEndWidth: 0}},\n false: {},\n },\n isOtherMonth: {\n true: {\n cell: {\n bg: 'bg.subtle',\n color: 'fg.muted',\n },\n },\n false: {},\n },\n isToday: {\n true: {\n dayNumber: {\n bg: 'primary',\n color: 'fg.onPrimary',\n },\n todayText: {\n marginInlineEnd: '1px',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isLastColumn: false,\n isLastRow: false,\n isOtherMonth: false,\n isToday: false,\n },\n});\n\nexport type ScheduleMonthlyViewVariants = RecipeVariantProps<\n typeof scheduleMonthlyViewRecipe\n>;\n","/* eslint-disable silver-ui/require-component-props -- schedule views are internal view renderers */\n\nimport type {CSSProperties, HTMLAttributes} from 'react';\nimport {scheduleMonthlyViewRecipe} from 'components/Schedule/MonthlyView.recipe';\nimport {useScheduleContext} from 'components/Schedule/context';\nimport {isDayEvent} from 'components/Schedule/dateMath';\nimport {\n CalendarMonthEventPill,\n formatMonthTitle,\n getEventAccessibleLabel,\n hasEventPopoverPlugin,\n isEventInPast,\n scheduleClasses,\n ScheduleEventOverflowPopover,\n ScheduleFrame,\n} from 'components/Schedule/shared';\nimport type {\n CalendarEvent,\n ScheduleView,\n ScheduleViewComponentProps,\n ScheduleZonedInstant,\n ScheduleZonedInstantRange,\n} from 'components/Schedule/types';\nimport {useCurrentTime} from 'components/Schedule/useCurrentTime';\nimport {Heading, Text} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport type {DayOfWeek} from 'internal/dateTypes';\nimport {\n DATE_FORMAT_WITH_WEEKDAY,\n plainDateDayOfWeek,\n plainDateFormat,\n plainDateFromInstant,\n plainDateIsAfter,\n plainDateIsBefore,\n plainDateIsEqual,\n type PlainDate,\n} from 'internal/plainDate';\n\nexport interface ScheduleMonthlyViewOptions {\n /**\n * Pixel height used for each week row in the monthly grid.\n * @default 128\n */\n monthRowHeight?: number;\n /**\n * Number of weeks to display in the monthly grid.\n * @default 6\n */\n weekCount?: number;\n /**\n * Day used as the first day of the week, where 0 is Sunday and 6 is Saturday.\n * @default 0\n */\n weekStartsOn?: DayOfWeek;\n}\n\nconst styles = scheduleMonthlyViewRecipe();\n\ntype MonthGridStyle = CSSProperties & {'--schedule-month-row-height': string};\n\nconst weekdays = [\n {label: 'Sunday', shortLabel: 'Sun'},\n {label: 'Monday', shortLabel: 'Mon'},\n {label: 'Tuesday', shortLabel: 'Tue'},\n {label: 'Wednesday', shortLabel: 'Wed'},\n {label: 'Thursday', shortLabel: 'Thu'},\n {label: 'Friday', shortLabel: 'Fri'},\n {label: 'Saturday', shortLabel: 'Sat'},\n];\n\nfunction getWeekdays(weekStartsOn: DayOfWeek): typeof weekdays {\n return Array.from(\n {length: 7},\n (_, index) => weekdays[(index + weekStartsOn) % 7],\n );\n}\n\nfunction setStartOfWeek(date: PlainDate, weekStartsOn: DayOfWeek): PlainDate {\n const daysSinceWeekStart = (plainDateDayOfWeek(date) - weekStartsOn + 7) % 7;\n return date.add({days: -daysSinceWeekStart});\n}\n\nfunction getMonthDays(\n date: PlainDate,\n weekCount: number,\n weekStartsOn: DayOfWeek,\n): PlainDate[] {\n const firstOfMonth = date.with({day: 1});\n const firstVisibleDay = setStartOfWeek(firstOfMonth, weekStartsOn);\n return Array.from({length: weekCount * 7}, (_, index) =>\n firstVisibleDay.add({days: index}),\n );\n}\n\nfunction getVisibleMonthRange(\n date: ScheduleZonedInstant,\n month: PlainDate,\n weekCount: number,\n weekStartsOn: DayOfWeek,\n): ScheduleZonedInstantRange {\n const firstVisible = setStartOfWeek(month.with({day: 1}), weekStartsOn);\n const end = firstVisible.add({days: weekCount * 7});\n const currentDate = date.toPlainDate();\n return [\n date.startOfDay().addDays(currentDate.until(firstVisible).days),\n date.startOfDay().addDays(currentDate.until(end).days),\n ];\n}\n\ninterface MonthEventSegment {\n columnEnd: number;\n columnStart: number;\n endIndex: number;\n event: CalendarEvent;\n level: number;\n startIndex: number;\n week: number;\n}\n\nconst DEFAULT_MONTH_ROW_HEIGHT = 128;\nconst MONTH_EVENT_TOP_OFFSET = 30;\nconst MONTH_EVENT_LEVEL_HEIGHT = 22;\nconst MONTH_EVENT_HEIGHT = 20;\nconst MONTH_EVENT_BOTTOM_PADDING = 4;\n\nfunction getEventDateSpan(\n event: CalendarEvent,\n timezoneID: string,\n): [PlainDate, PlainDate] {\n if (isDayEvent(event)) {\n return [event.start, event.end];\n }\n\n return [\n plainDateFromInstant(event.start, timezoneID),\n plainDateFromInstant(Math.max(event.end - 1, event.start), timezoneID),\n ];\n}\n\nfunction getEventVisibleDateIndexes({\n event,\n firstDay,\n lastDay,\n timezoneID,\n}: {\n event: CalendarEvent;\n firstDay: PlainDate;\n lastDay: PlainDate;\n timezoneID: string;\n}): [number, number] | null {\n const [eventStart, eventEnd] = getEventDateSpan(event, timezoneID);\n if (\n plainDateIsBefore(eventEnd, firstDay) ||\n plainDateIsAfter(eventStart, lastDay)\n ) {\n return null;\n }\n\n const startIndex = plainDateIsBefore(eventStart, firstDay)\n ? 0\n : firstDay.until(eventStart).days;\n const endIndex = plainDateIsAfter(eventEnd, lastDay)\n ? firstDay.until(lastDay).days\n : firstDay.until(eventEnd).days;\n\n return [startIndex, endIndex];\n}\n\nfunction getEventsByDate(\n events: ReadonlyArray<CalendarEvent>,\n days: ReadonlyArray<PlainDate>,\n timezoneID: string,\n): Map<string, CalendarEvent[]> {\n const eventsByDate = new Map<string, CalendarEvent[]>();\n if (days.length === 0) {\n return eventsByDate;\n }\n const firstDay = days[0];\n const lastDay = days[days.length - 1];\n\n days.forEach(day => {\n eventsByDate.set(day.toString(), []);\n });\n\n events.forEach(event => {\n const indexes = getEventVisibleDateIndexes({\n event,\n firstDay,\n lastDay,\n timezoneID,\n });\n if (indexes == null) {\n return;\n }\n\n const [startIndex, endIndex] = indexes;\n for (let index = startIndex; index <= endIndex; index += 1) {\n eventsByDate.get(days[index].toString())?.push(event);\n }\n });\n\n return eventsByDate;\n}\n\nfunction getAvailableLevel(levels: number[], columnStart: number): number {\n const level = levels.findIndex(columnEnd => columnStart > columnEnd);\n return level >= 0 ? level : levels.length;\n}\n\nfunction getMonthEventSegments(\n events: ReadonlyArray<CalendarEvent>,\n days: ReadonlyArray<PlainDate>,\n timezoneID: string,\n): MonthEventSegment[] {\n const segments: MonthEventSegment[] = [];\n const levelsByWeek: number[][] = [];\n if (days.length === 0) {\n return segments;\n }\n const firstDay = days[0];\n const lastDay = days[days.length - 1];\n\n const monthEvents = events\n .map(event => {\n const indexes = getEventVisibleDateIndexes({\n event,\n firstDay,\n lastDay,\n timezoneID,\n });\n if (indexes == null) {\n return null;\n }\n const [startIndex, endIndex] = indexes;\n return {\n endIndex,\n event,\n isPriority: isDayEvent(event) || endIndex > startIndex,\n startIndex,\n };\n })\n .filter(\n (\n record,\n ): record is {\n endIndex: number;\n event: CalendarEvent;\n isPriority: boolean;\n startIndex: number;\n } => record != null,\n )\n .sort((a, b) => {\n if (a.startIndex !== b.startIndex) {\n return a.startIndex - b.startIndex;\n }\n if (a.isPriority !== b.isPriority) {\n return a.isPriority ? -1 : 1;\n }\n const aDuration = a.endIndex - a.startIndex;\n const bDuration = b.endIndex - b.startIndex;\n if (aDuration !== bDuration) {\n return bDuration - aDuration;\n }\n return a.event.title.localeCompare(b.event.title);\n });\n\n monthEvents.forEach(({endIndex, event, startIndex}) => {\n for (\n let week = Math.floor(startIndex / 7);\n week <= Math.floor(endIndex / 7);\n week += 1\n ) {\n const columnStart =\n week === Math.floor(startIndex / 7) ? startIndex % 7 : 0;\n const columnEnd = week === Math.floor(endIndex / 7) ? endIndex % 7 : 6;\n const weekLevels = (levelsByWeek[week] ??= []);\n const level = getAvailableLevel(weekLevels, columnStart);\n weekLevels[level] = columnEnd;\n segments.push({\n columnEnd,\n columnStart,\n endIndex,\n event,\n level,\n startIndex,\n week,\n });\n }\n });\n\n return segments;\n}\n\nfunction getMonthEventSegmentStyle({\n columnEnd,\n columnStart,\n level,\n week,\n}: MonthEventSegment): CSSProperties {\n return {\n gridColumn: `${columnStart + 1} / ${columnEnd + 2}`,\n gridRow: `${week + 1}`,\n marginBlockStart: `${MONTH_EVENT_TOP_OFFSET + level * MONTH_EVENT_LEVEL_HEIGHT}px`,\n };\n}\n\nfunction getMonthEventLevelCount(monthRowHeight: number): number {\n const availableHeight =\n monthRowHeight -\n MONTH_EVENT_TOP_OFFSET -\n MONTH_EVENT_HEIGHT -\n MONTH_EVENT_BOTTOM_PADDING;\n return Math.max(\n 1,\n Math.floor(availableHeight / MONTH_EVENT_LEVEL_HEIGHT) + 1,\n );\n}\n\nfunction getMonthSeeMoreStyle({\n dayIndex,\n level,\n}: {\n dayIndex: number;\n level: number;\n}): CSSProperties {\n return {\n gridColumn: `${(dayIndex % 7) + 1} / ${(dayIndex % 7) + 2}`,\n gridRow: `${Math.floor(dayIndex / 7) + 1}`,\n marginBlockStart: `${MONTH_EVENT_TOP_OFFSET + level * MONTH_EVENT_LEVEL_HEIGHT}px`,\n };\n}\n\nfunction segmentCoversDay(\n segment: MonthEventSegment,\n dayIndex: number,\n): boolean {\n return segment.startIndex <= dayIndex && segment.endIndex >= dayIndex;\n}\n\nfunction shouldReserveSeeMoreLevel({\n dayEvents,\n levelCount,\n}: {\n dayEvents: ReadonlyArray<CalendarEvent>;\n levelCount: number;\n}): boolean {\n return dayEvents.length > levelCount;\n}\n\nfunction isSegmentVisible({\n dayEventsByIndex,\n levelCount,\n segment,\n}: {\n dayEventsByIndex: ReadonlyArray<ReadonlyArray<CalendarEvent>>;\n levelCount: number;\n segment: MonthEventSegment;\n}): boolean {\n for (let index = segment.startIndex; index <= segment.endIndex; index += 1) {\n const visibleLevelCount = shouldReserveSeeMoreLevel({\n dayEvents: dayEventsByIndex[index] ?? [],\n levelCount,\n })\n ? levelCount - 1\n : levelCount;\n if (segment.level >= visibleLevelCount) {\n return false;\n }\n }\n return true;\n}\n\nfunction getHiddenEventsByDate({\n dayEventsByIndex,\n days,\n segments,\n visibleSegments,\n}: {\n dayEventsByIndex: ReadonlyArray<ReadonlyArray<CalendarEvent>>;\n days: ReadonlyArray<PlainDate>;\n segments: ReadonlyArray<MonthEventSegment>;\n visibleSegments: ReadonlyArray<MonthEventSegment>;\n}): Map<string, CalendarEvent[]> {\n const hiddenEventsByDate = new Map<string, CalendarEvent[]>();\n days.forEach((day, dayIndex) => {\n const allSegmentEventIds = new Set(\n segments\n .filter(segment => segmentCoversDay(segment, dayIndex))\n .map(segment => segment.event.id),\n );\n const visibleSegmentEventIds = new Set(\n visibleSegments\n .filter(segment => segmentCoversDay(segment, dayIndex))\n .map(segment => segment.event.id),\n );\n const hiddenEvents = (dayEventsByIndex[dayIndex] ?? []).filter(\n event =>\n allSegmentEventIds.has(event.id) &&\n !visibleSegmentEventIds.has(event.id),\n );\n if (hiddenEvents.length > 0) {\n hiddenEventsByDate.set(day.toString(), hiddenEvents);\n }\n });\n\n return hiddenEventsByDate;\n}\n\nfunction getGridCellName({\n categoryMap,\n date,\n events,\n timezoneID,\n}: {\n categoryMap: ReturnType<typeof useScheduleContext>['categoryMap'];\n date: PlainDate;\n events: CalendarEvent[];\n timezoneID: string;\n}): string {\n const eventLabels = events.map(event =>\n getEventAccessibleLabel(event, categoryMap, timezoneID),\n );\n const dateLabel = plainDateFormat(date, DATE_FORMAT_WITH_WEEKDAY);\n return eventLabels.length > 0\n ? `${dateLabel}. ${eventLabels.join('. ')}`\n : dateLabel;\n}\n\n/**\n * Internal view component that renders a month grid with day cells and events.\n */\nfunction ScheduleMonthlyView({\n options,\n}: ScheduleViewComponentProps<ScheduleMonthlyViewOptions>): React.JSX.Element {\n const {categoryMap, events, highlightDate, plugins, timezoneID, viewDate} =\n useScheduleContext();\n const eventPopoverActive = hasEventPopoverPlugin(plugins);\n const currentTime = useCurrentTime();\n const month = viewDate.toPlainDate();\n const title = formatMonthTitle(month);\n const monthRowHeight = Math.max(\n 64,\n Math.floor(options.monthRowHeight ?? DEFAULT_MONTH_ROW_HEIGHT),\n );\n const weekStartsOn = options.weekStartsOn ?? 0;\n const days = getMonthDays(month, options.weekCount ?? 6, weekStartsOn);\n const eventSegments = getMonthEventSegments(events, days, timezoneID);\n const eventsByDate = getEventsByDate(events, days, timezoneID);\n const dayEventsByIndex = days.map(\n day => eventsByDate.get(day.toString()) ?? [],\n );\n const monthEventLevelCount = getMonthEventLevelCount(monthRowHeight);\n const visibleEventSegments = eventSegments.filter(segment =>\n isSegmentVisible({\n dayEventsByIndex,\n levelCount: monthEventLevelCount,\n segment,\n }),\n );\n const hiddenEventsByDate = getHiddenEventsByDate({\n dayEventsByIndex,\n days,\n segments: eventSegments,\n visibleSegments: visibleEventSegments,\n });\n const today = highlightDate.toPlainDate();\n const visibleWeekdays = getWeekdays(weekStartsOn);\n const monthGridStyle: MonthGridStyle = {\n '--schedule-month-row-height': `${monthRowHeight}px`,\n };\n\n return (\n <ScheduleFrame title={title} titleLabel={title}>\n <div\n aria-label={title}\n className={cx(scheduleClasses.surface, styles.grid)}\n role=\"grid\">\n {visibleWeekdays.map((weekday, index) => (\n <div\n aria-colindex={index + 1}\n aria-label={weekday.label}\n className={styles.weekday}\n key={weekday.label}\n role=\"columnheader\">\n <Heading color=\"secondary\" level={4}>\n {weekday.shortLabel}\n </Heading>\n </div>\n ))}\n <div className={styles.monthSurface}>\n <div className={styles.monthCellGrid} style={monthGridStyle}>\n {days.map((day, index) => {\n const dayEvents = eventsByDate.get(day.toString()) ?? [];\n const isCurrentMonth =\n day.month === month.month && day.year === month.year;\n const isLastColumn = index % 7 === 6;\n const isLastRow = index >= days.length - 7;\n const isToday = plainDateIsEqual(day, today);\n const dayClasses = scheduleMonthlyViewRecipe({\n isLastColumn,\n isLastRow,\n isOtherMonth: !isCurrentMonth,\n isToday,\n });\n const dayCellPluginProps = plugins.reduce<\n HTMLAttributes<HTMLElement>\n >(\n (props, plugin) => ({\n ...props,\n ...plugin.getMonthCellProps?.({\n date: day,\n timezoneID,\n }),\n }),\n {},\n );\n return (\n <div\n aria-current={isToday ? 'date' : undefined}\n aria-label={getGridCellName({\n categoryMap,\n date: day,\n // When events are interactive popover triggers they expose\n // their own accessible names, so omit them here to avoid\n // announcing each event twice.\n events: eventPopoverActive ? [] : dayEvents,\n timezoneID,\n })}\n className={dayClasses.cell}\n data-testid={`schedule-month-cell-${day.toString()}`}\n key={day.toString()}\n role=\"gridcell\"\n {...dayCellPluginProps}>\n <span className={dayClasses.dayNumber}>\n <Text\n as=\"span\"\n className={dayClasses.todayText}\n color=\"inherit\"\n hasTabularNumbers\n type=\"supporting\"\n weight=\"medium\">\n {day.day}\n </Text>\n </span>\n </div>\n );\n })}\n </div>\n <div className={styles.monthEventOverlay} style={monthGridStyle}>\n {visibleEventSegments.map(segment => (\n <div\n // The overlay is decorative when pills are static, but becomes\n // focusable when they are popover triggers — a focusable button\n // must not live inside an aria-hidden subtree.\n aria-hidden={eventPopoverActive ? undefined : 'true'}\n className={styles.monthEventSpan}\n data-testid={`schedule-event-span-${segment.event.id}`}\n key={`${segment.event.id}:${segment.week}:${segment.columnStart}`}\n style={getMonthEventSegmentStyle(segment)}>\n <CalendarMonthEventPill\n event={segment.event}\n isPast={isEventInPast(segment.event, currentTime, timezoneID)}\n />\n </div>\n ))}\n {days.map((day, dayIndex) => {\n const hiddenEvents = hiddenEventsByDate.get(day.toString()) ?? [];\n if (hiddenEvents.length === 0) {\n return null;\n }\n const dateLabel = plainDateFormat(day, DATE_FORMAT_WITH_WEEKDAY);\n const label = `Show ${hiddenEvents.length} more events for ${dateLabel}`;\n return (\n <div\n className={styles.monthSeeMoreSpan}\n key={`${day.toString()}-see-more`}\n style={getMonthSeeMoreStyle({\n dayIndex,\n level: Math.max(0, monthEventLevelCount - 1),\n })}>\n <ScheduleEventOverflowPopover\n buttonClassName={styles.monthSeeMoreButton}\n contentClassName={styles.monthPopoverContent}\n events={eventsByDate.get(day.toString()) ?? []}\n eventsClassName={styles.monthPopoverEvents}\n hiddenEventCount={hiddenEvents.length}\n label={label}\n renderEvent={event => (\n <CalendarMonthEventPill\n event={event}\n isPast={isEventInPast(event, currentTime, timezoneID)}\n />\n )}\n testId={`schedule-month-see-more-${day.toString()}`}\n title={dateLabel}\n />\n </div>\n );\n })}\n </div>\n </div>\n </div>\n </ScheduleFrame>\n );\n}\n\n/**\n * Creates a monthly schedule view configuration.\n */\nexport function createScheduleMonthlyView({\n monthRowHeight = DEFAULT_MONTH_ROW_HEIGHT,\n weekCount = 6,\n weekStartsOn = 0,\n}: ScheduleMonthlyViewOptions = {}): ScheduleView<ScheduleMonthlyViewOptions> {\n return {\n component: ScheduleMonthlyView,\n getDateRange: date => {\n const month = date.toPlainDate();\n return getVisibleMonthRange(date, month, weekCount, weekStartsOn);\n },\n getNextDateRange: date => {\n const nextMonth = date.toPlainDate().with({day: 1}).add({months: 1});\n return {\n label: 'Next month',\n range: getVisibleMonthRange(date, nextMonth, weekCount, weekStartsOn),\n };\n },\n getPreviousDateRange: date => {\n const previousMonth = date\n .toPlainDate()\n .with({day: 1})\n .subtract({months: 1});\n return {\n label: 'Previous month',\n range: getVisibleMonthRange(\n date,\n previousMonth,\n weekCount,\n weekStartsOn,\n ),\n };\n },\n options: {monthRowHeight, weekCount, weekStartsOn},\n };\n}\n","import {Temporal} from '@js-temporal/polyfill';\nimport {\n useCallback,\n useMemo,\n useRef,\n type DragEvent,\n type RefObject,\n} from 'react';\nimport {isDayEvent} from 'components/Schedule/dateMath';\nimport type {\n CalendarEvent,\n Instant,\n PlainDate,\n ScheduleEventPropsRenderProps,\n ScheduleMonthCellPropsRenderProps,\n SchedulePlugin,\n ScheduleTimeGridCellPropsRenderProps,\n} from 'components/Schedule/types';\nimport useLatest from 'internal/useLatest';\n\nconst DEFAULT_SNAP_MINUTES = 15;\nconst MILLISECONDS_PER_MINUTE = 60_000;\nconst MINUTES_PER_DAY = 24 * 60;\n\nexport interface ScheduleEventMoveChange<TAuxiliaryData = unknown> {\n end: CalendarEvent<TAuxiliaryData>['end'];\n event: CalendarEvent<TAuxiliaryData>;\n start: CalendarEvent<TAuxiliaryData>['start'];\n}\n\nexport interface ScheduleEventMovePluginOptions<TAuxiliaryData = unknown> {\n /**\n * Called when the user drops an event on a new date or time.\n */\n onMove: (change: ScheduleEventMoveChange<TAuxiliaryData>) => void;\n /**\n * Snap interval, in minutes, applied to time-grid drops.\n * @default 15\n */\n snapMinutes?: number;\n}\n\ninterface DragState<TAuxiliaryData> {\n event: CalendarEvent<TAuxiliaryData>;\n initialOpacity: string;\n offsetMinutes: number;\n previewElement: HTMLElement;\n sourceElement: HTMLElement;\n sourceRect: DOMRect;\n}\n\nfunction getSnappedMinutes(minutes: number, snapMinutes: number): number {\n return Math.round(minutes / snapMinutes) * snapMinutes;\n}\n\nfunction getTimeGridStartMinutes<TAuxiliaryData>({\n drag,\n hour,\n pointerOffsetMinutes,\n snapMinutes,\n}: {\n drag: DragState<TAuxiliaryData>;\n hour: number;\n pointerOffsetMinutes: number;\n snapMinutes: number;\n}): number {\n return getSnappedMinutes(\n hour * 60 + pointerOffsetMinutes - drag.offsetMinutes,\n snapMinutes,\n );\n}\n\nfunction instantFromDateAndMinutes(\n date: PlainDate,\n minutes: number,\n timezoneID: string,\n): Instant {\n const clampedMinutes = Math.round(\n Math.max(0, Math.min(MINUTES_PER_DAY - 1, minutes)),\n );\n const hour = Math.floor(clampedMinutes / 60);\n const minute = clampedMinutes % 60;\n return date\n .toPlainDateTime(Temporal.PlainTime.from({hour, minute}))\n .toZonedDateTime(timezoneID).epochMilliseconds;\n}\n\nfunction moveEventToDate<TAuxiliaryData>(\n event: CalendarEvent<TAuxiliaryData>,\n date: PlainDate,\n timezoneID: string,\n): ScheduleEventMoveChange<TAuxiliaryData> {\n if (isDayEvent(event)) {\n const durationDays = event.start.until(event.end).days;\n return {\n end: date.add({days: durationDays}),\n event,\n start: date,\n };\n }\n\n const startTime = Temporal.Instant.fromEpochMilliseconds(event.start)\n .toZonedDateTimeISO(timezoneID)\n .toPlainTime();\n const start = date\n .toPlainDateTime(startTime)\n .toZonedDateTime(timezoneID).epochMilliseconds;\n return {\n end: start + (event.end - event.start),\n event,\n start,\n };\n}\n\nfunction moveEventToDateTime<TAuxiliaryData>({\n date,\n drag,\n hour,\n pointerOffsetMinutes,\n snapMinutes,\n timezoneID,\n}: {\n date: PlainDate;\n drag: DragState<TAuxiliaryData>;\n hour: number;\n pointerOffsetMinutes: number;\n snapMinutes: number;\n timezoneID: string;\n}): ScheduleEventMoveChange<TAuxiliaryData> | null {\n if (isDayEvent(drag.event)) {\n return null;\n }\n\n const startMinutes = getTimeGridStartMinutes({\n drag,\n hour,\n pointerOffsetMinutes,\n snapMinutes,\n });\n const start = instantFromDateAndMinutes(date, startMinutes, timezoneID);\n return {\n end: start + (drag.event.end - drag.event.start),\n event: drag.event,\n start,\n };\n}\n\nfunction hasChanged<TAuxiliaryData>({\n end,\n event,\n start,\n}: ScheduleEventMoveChange<TAuxiliaryData>): boolean {\n return event.start !== start || event.end !== end;\n}\n\nfunction getDragEventClientY(\n dragEvent: DragEvent<HTMLElement>,\n fallback: number,\n): number {\n return Number.isFinite(dragEvent.clientY) ? dragEvent.clientY : fallback;\n}\n\nfunction applyDragPreview<TAuxiliaryData>(\n drag: DragState<TAuxiliaryData>,\n targetLeft: number,\n targetTop: number,\n): void {\n drag.previewElement.style.left = `${targetLeft}px`;\n drag.previewElement.style.top = `${targetTop}px`;\n}\n\nfunction resetDragPreview<TAuxiliaryData>(\n drag: DragState<TAuxiliaryData>,\n): void {\n drag.sourceElement.style.opacity = drag.initialOpacity;\n drag.previewElement.remove();\n}\n\nfunction createDragPreviewElement(\n event: CalendarEvent,\n sourceElement: HTMLElement,\n sourceRect: DOMRect,\n): HTMLElement {\n const preview = sourceElement.cloneNode(true);\n if (!(preview instanceof HTMLElement)) {\n throw new Error('Schedule event preview must be an HTMLElement.');\n }\n\n preview.setAttribute('aria-hidden', 'true');\n preview.setAttribute(\n 'data-testid',\n `schedule-event-move-preview-${event.id}`,\n );\n preview.style.position = 'fixed';\n preview.style.inset = 'auto';\n preview.style.left = `${sourceRect.left}px`;\n preview.style.top = `${sourceRect.top}px`;\n preview.style.width = `${sourceRect.width}px`;\n preview.style.height = `${sourceRect.height}px`;\n preview.style.margin = '0';\n preview.style.opacity = '0.45';\n preview.style.pointerEvents = 'none';\n preview.style.transform = 'none';\n preview.style.zIndex = '1000';\n document.body.append(preview);\n return preview;\n}\n\nfunction createScheduleEventMovePlugin<TAuxiliaryData>({\n dragRef,\n onMove,\n snapMinutes = DEFAULT_SNAP_MINUTES,\n}: ScheduleEventMovePluginOptions<TAuxiliaryData> & {\n dragRef: RefObject<DragState<TAuxiliaryData> | null>;\n}): SchedulePlugin {\n const normalizedSnapMinutes =\n Number.isFinite(snapMinutes) && snapMinutes > 0\n ? Math.max(1, Math.floor(snapMinutes))\n : DEFAULT_SNAP_MINUTES;\n\n return {\n getEventProps({\n event,\n layout,\n timezoneID,\n }: ScheduleEventPropsRenderProps): React.HTMLAttributes<HTMLElement> {\n if (layout !== 'month' && (layout !== 'timeGrid' || isDayEvent(event))) {\n return {};\n }\n\n return {\n draggable: true,\n onDragEnd: () => {\n if (dragRef.current != null) {\n resetDragPreview(dragRef.current);\n }\n dragRef.current = null;\n },\n onDragStart: dragEvent => {\n const element = dragEvent.currentTarget;\n const sourceRect = element.getBoundingClientRect();\n const isTimedTimeGridEvent =\n layout === 'timeGrid' && !isDayEvent(event);\n const eventStartTime = isDayEvent(event)\n ? null\n : Temporal.Instant.fromEpochMilliseconds(event.start)\n .toZonedDateTimeISO(timezoneID)\n .toPlainTime();\n const eventStartMinutes =\n eventStartTime == null\n ? 0\n : eventStartTime.hour * 60 + eventStartTime.minute;\n let offsetMinutes = eventStartMinutes;\n if (isTimedTimeGridEvent) {\n const durationMinutes = Math.max(\n 15,\n (event.end - event.start) / MILLISECONDS_PER_MINUTE,\n );\n offsetMinutes = Math.max(\n 0,\n ((getDragEventClientY(dragEvent, sourceRect.top) -\n sourceRect.top) /\n Math.max(1, sourceRect.height)) *\n durationMinutes,\n );\n }\n\n dragEvent.dataTransfer.setData('text/plain', event.id);\n dragEvent.dataTransfer.setDragImage(element, 0, 0);\n dragRef.current = {\n event: event as CalendarEvent<TAuxiliaryData>,\n initialOpacity: element.style.opacity,\n offsetMinutes,\n previewElement: createDragPreviewElement(\n event,\n element,\n sourceRect,\n ),\n sourceElement: element,\n sourceRect,\n };\n element.style.opacity = '0.25';\n },\n };\n },\n getMonthCellProps({\n date,\n timezoneID,\n }: ScheduleMonthCellPropsRenderProps): React.HTMLAttributes<HTMLElement> {\n return {\n onDragOver: dragEvent => {\n if (dragRef.current != null) {\n dragEvent.preventDefault();\n const rect = dragEvent.currentTarget.getBoundingClientRect();\n applyDragPreview(dragRef.current, rect.left + 4, rect.top + 30);\n }\n },\n onDrop: dragEvent => {\n const drag = dragRef.current;\n if (drag == null) {\n return;\n }\n\n dragEvent.preventDefault();\n const change = moveEventToDate(drag.event, date, timezoneID);\n if (hasChanged(change)) {\n onMove(change);\n }\n resetDragPreview(drag);\n dragRef.current = null;\n },\n };\n },\n getTimeGridCellProps({\n date,\n hour,\n hourHeight,\n timezoneID,\n }: ScheduleTimeGridCellPropsRenderProps): React.HTMLAttributes<HTMLElement> {\n return {\n onDragOver: dragEvent => {\n if (dragRef.current != null && !isDayEvent(dragRef.current.event)) {\n dragEvent.preventDefault();\n const rect = dragEvent.currentTarget.getBoundingClientRect();\n const pointerOffsetMinutes =\n ((getDragEventClientY(dragEvent, rect.top) - rect.top) /\n Math.max(1, hourHeight)) *\n 60;\n const startMinutes = getTimeGridStartMinutes({\n drag: dragRef.current,\n hour,\n pointerOffsetMinutes,\n snapMinutes: normalizedSnapMinutes,\n });\n const top =\n rect.top + ((startMinutes - hour * 60) / 60) * hourHeight + 2;\n applyDragPreview(dragRef.current, rect.left + 2, top);\n }\n },\n onDrop: dragEvent => {\n const drag = dragRef.current;\n if (drag == null || isDayEvent(drag.event)) {\n return;\n }\n\n dragEvent.preventDefault();\n const rect = dragEvent.currentTarget.getBoundingClientRect();\n const pointerOffsetMinutes =\n ((getDragEventClientY(dragEvent, rect.top) - rect.top) /\n Math.max(1, hourHeight)) *\n 60;\n const change = moveEventToDateTime({\n date,\n drag,\n hour,\n pointerOffsetMinutes,\n snapMinutes: normalizedSnapMinutes,\n timezoneID,\n });\n if (change != null && hasChanged(change)) {\n onMove(change);\n }\n resetDragPreview(drag);\n dragRef.current = null;\n },\n };\n },\n };\n}\n\n/**\n * Makes month-view events and time-grid timed events draggable. Month drops\n * change only the date. Time-grid drops change both date and time.\n */\nexport function useScheduleEventMovePlugin<TAuxiliaryData = unknown>(\n options: ScheduleEventMovePluginOptions<TAuxiliaryData>,\n): SchedulePlugin {\n const optionsRef = useLatest(options);\n const dragRef = useRef<DragState<TAuxiliaryData> | null>(null);\n const onMove = useCallback(\n (change: ScheduleEventMoveChange<TAuxiliaryData>) => {\n optionsRef.current.onMove(change);\n },\n [optionsRef],\n );\n\n return useMemo(() => {\n return createScheduleEventMovePlugin<TAuxiliaryData>({\n dragRef,\n onMove,\n snapMinutes: options.snapMinutes,\n });\n }, [dragRef, onMove, options.snapMinutes]);\n}\n","import {\n useCallback,\n useMemo,\n useRef,\n type KeyboardEvent,\n type PointerEvent,\n} from 'react';\nimport {isDayEvent} from 'components/Schedule/dateMath';\nimport type {\n CalendarInstantEvent,\n Instant,\n SchedulePlugin,\n ScheduleTimeGridEventRenderProps,\n} from 'components/Schedule/types';\nimport useLatest from 'internal/useLatest';\nimport {cva} from 'styled-system/css';\n\nconst MIN_DURATION_MINUTES = 15;\nconst DEFAULT_SNAP_MINUTES = 15;\nconst MILLISECONDS_PER_MINUTE = 60_000;\n\ntype ResizeEdge = 'start' | 'end';\n\nconst resizeHandle = cva({\n base: {\n position: 'absolute',\n insetInline: 0,\n h: '3',\n cursor: 'ns-resize',\n touchAction: 'none',\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: '-2px',\n },\n },\n variants: {\n edge: {\n start: {\n insetBlockStart: 0,\n },\n end: {\n insetBlockEnd: 0,\n },\n },\n },\n});\n\nconst resizeHandleClassNames = {\n end: resizeHandle({edge: 'end'}),\n start: resizeHandle({edge: 'start'}),\n};\n\nexport interface ScheduleEventResizeChange<TAuxiliaryData = unknown> {\n end: Instant;\n event: CalendarInstantEvent<TAuxiliaryData>;\n start: Instant;\n}\n\nexport interface ScheduleEventResizePluginOptions<TAuxiliaryData = unknown> {\n /**\n * Called when the user finishes dragging an event's resize handle.\n */\n onResize: (change: ScheduleEventResizeChange<TAuxiliaryData>) => void;\n /**\n * Snap interval, in minutes, applied to resize deltas.\n * @default 15\n */\n snapMinutes?: number;\n}\n\ninterface ResizeState<TAuxiliaryData> {\n edge: ResizeEdge;\n event: CalendarInstantEvent<TAuxiliaryData>;\n eventElement: HTMLElement;\n hourHeight: number;\n initialHeight: string;\n initialPointerY: number;\n initialTop: string;\n onResize: (change: ScheduleEventResizeChange<TAuxiliaryData>) => void;\n snapMinutes: number;\n}\n\nfunction getDurationMinutes(start: Instant, end: Instant): number {\n return (end - start) / MILLISECONDS_PER_MINUTE;\n}\n\nfunction getSnappedDeltaMinutes(\n deltaPixels: number,\n hourHeight: number,\n snapMinutes: number,\n): number {\n const rawMinutes = (deltaPixels / hourHeight) * 60;\n return Math.round(rawMinutes / snapMinutes) * snapMinutes;\n}\n\nfunction getResizeRange<TAuxiliaryData>(\n state: ResizeState<TAuxiliaryData>,\n clientY: number,\n): {end: Instant; start: Instant} {\n const deltaMinutes = getSnappedDeltaMinutes(\n clientY - state.initialPointerY,\n state.hourHeight,\n state.snapMinutes,\n );\n const delta = deltaMinutes * MILLISECONDS_PER_MINUTE;\n const minDuration = MIN_DURATION_MINUTES * MILLISECONDS_PER_MINUTE;\n\n if (state.edge === 'start') {\n return {\n end: state.event.end,\n start: Math.min(state.event.end - minDuration, state.event.start + delta),\n };\n }\n\n return {\n end: Math.max(state.event.start + minDuration, state.event.end + delta),\n start: state.event.start,\n };\n}\n\nfunction getPreviewHeight<TAuxiliaryData>(\n state: ResizeState<TAuxiliaryData>,\n range: {end: Instant; start: Instant},\n): string {\n return `${Math.max(\n 36,\n (getDurationMinutes(range.start, range.end) / 60) * state.hourHeight - 5,\n )}px`;\n}\n\nfunction getPreviewTop<TAuxiliaryData>(\n state: ResizeState<TAuxiliaryData>,\n range: {end: Instant; start: Instant},\n): string {\n const initialTop = Number.parseFloat(state.initialTop || '0');\n if (state.edge === 'end') {\n return state.initialTop;\n }\n\n const deltaMinutes = getDurationMinutes(state.event.start, range.start);\n return `${initialTop + (deltaMinutes / 60) * state.hourHeight}px`;\n}\n\nfunction applyPreview<TAuxiliaryData>(\n state: ResizeState<TAuxiliaryData>,\n range: {end: Instant; start: Instant},\n): void {\n state.eventElement.style.height = getPreviewHeight(state, range);\n state.eventElement.style.top = getPreviewTop(state, range);\n}\n\nfunction ScheduleEventResizeHandle<TAuxiliaryData = unknown>({\n edge,\n event,\n hourHeight,\n onResize,\n snapMinutes,\n}: {\n edge: ResizeEdge;\n event: CalendarInstantEvent<TAuxiliaryData>;\n hourHeight: number;\n onResize: (change: ScheduleEventResizeChange<TAuxiliaryData>) => void;\n snapMinutes: number;\n}): React.JSX.Element {\n const resizeStateRef = useRef<ResizeState<TAuxiliaryData> | null>(null);\n const pointerListenersRef = useRef<{\n cancel: (event: globalThis.PointerEvent) => void;\n move: (event: globalThis.PointerEvent) => void;\n up: (event: globalThis.PointerEvent) => void;\n } | null>(null);\n\n const removePointerListeners = useCallback(() => {\n const listeners = pointerListenersRef.current;\n if (listeners == null) {\n return;\n }\n\n window.removeEventListener('pointermove', listeners.move);\n window.removeEventListener('pointerup', listeners.up);\n window.removeEventListener('pointercancel', listeners.cancel);\n pointerListenersRef.current = null;\n }, []);\n\n const finishResize = useCallback((clientY: number, isCommit: boolean) => {\n const state = resizeStateRef.current;\n if (state == null) {\n return;\n }\n\n const range = getResizeRange(state, clientY);\n if (isCommit) {\n if (range.start !== state.event.start || range.end !== state.event.end) {\n state.onResize({\n end: range.end,\n event: state.event,\n start: range.start,\n });\n }\n } else {\n state.eventElement.style.height = state.initialHeight;\n state.eventElement.style.top = state.initialTop;\n }\n resizeStateRef.current = null;\n }, []);\n\n const handlePointerMove = useCallback((event: globalThis.PointerEvent) => {\n const state = resizeStateRef.current;\n if (state == null) {\n return;\n }\n\n applyPreview(state, getResizeRange(state, event.clientY));\n }, []);\n\n const handlePointerUp = useCallback(\n (event: globalThis.PointerEvent) => {\n removePointerListeners();\n finishResize(event.clientY, true);\n },\n [finishResize, removePointerListeners],\n );\n\n const handlePointerCancel = useCallback(\n (event: globalThis.PointerEvent) => {\n removePointerListeners();\n finishResize(event.clientY, false);\n },\n [finishResize, removePointerListeners],\n );\n\n const handlePointerDown = useCallback(\n (pointerEvent: PointerEvent<HTMLSpanElement>) => {\n pointerEvent.preventDefault();\n pointerEvent.stopPropagation();\n\n const eventElement = pointerEvent.currentTarget.parentElement;\n if (!(eventElement instanceof HTMLElement)) {\n return;\n }\n\n resizeStateRef.current = {\n edge,\n event,\n eventElement,\n hourHeight,\n initialHeight: eventElement.style.height,\n initialPointerY: pointerEvent.clientY,\n initialTop: eventElement.style.top,\n onResize,\n snapMinutes,\n };\n\n pointerListenersRef.current = {\n cancel: handlePointerCancel,\n move: handlePointerMove,\n up: handlePointerUp,\n };\n window.addEventListener('pointermove', handlePointerMove);\n window.addEventListener('pointerup', handlePointerUp);\n window.addEventListener('pointercancel', handlePointerCancel);\n },\n [\n edge,\n event,\n handlePointerCancel,\n handlePointerMove,\n handlePointerUp,\n hourHeight,\n onResize,\n snapMinutes,\n ],\n );\n\n const handleKeyDown = useCallback(\n (keyEvent: KeyboardEvent<HTMLSpanElement>) => {\n const direction =\n keyEvent.key === 'ArrowDown' ? 1 : keyEvent.key === 'ArrowUp' ? -1 : 0;\n if (direction === 0) {\n return;\n }\n\n keyEvent.preventDefault();\n keyEvent.stopPropagation();\n\n const delta = direction * snapMinutes * MILLISECONDS_PER_MINUTE;\n const minDuration = MIN_DURATION_MINUTES * MILLISECONDS_PER_MINUTE;\n const range =\n edge === 'start'\n ? {\n end: event.end,\n start: Math.min(event.end - minDuration, event.start + delta),\n }\n : {\n end: Math.max(event.start + minDuration, event.end + delta),\n start: event.start,\n };\n\n if (range.start !== event.start || range.end !== event.end) {\n onResize({event, ...range});\n }\n },\n [edge, event, onResize, snapMinutes],\n );\n\n return (\n <span\n aria-label={`${edge === 'start' ? 'Resize start of' : 'Resize end of'} ${\n event.title\n }`}\n aria-orientation=\"vertical\"\n aria-valuemax={event.end}\n aria-valuemin={event.start}\n aria-valuenow={edge === 'start' ? event.start : event.end}\n className={resizeHandleClassNames[edge]}\n data-testid={`schedule-event-resize-${edge}-handle-${event.id}`}\n onClick={event => event.stopPropagation()}\n onKeyDown={handleKeyDown}\n onPointerDown={handlePointerDown}\n role=\"slider\"\n tabIndex={0}\n />\n );\n}\n\nfunction ScheduleEventResizeHandles<TAuxiliaryData = unknown>({\n event,\n hourHeight,\n onResize,\n snapMinutes,\n}: {\n event: CalendarInstantEvent<TAuxiliaryData>;\n hourHeight: number;\n onResize: (change: ScheduleEventResizeChange<TAuxiliaryData>) => void;\n snapMinutes: number;\n}): React.JSX.Element {\n return (\n <>\n <ScheduleEventResizeHandle\n edge=\"start\"\n event={event}\n hourHeight={hourHeight}\n onResize={onResize}\n snapMinutes={snapMinutes}\n />\n <ScheduleEventResizeHandle\n edge=\"end\"\n event={event}\n hourHeight={hourHeight}\n onResize={onResize}\n snapMinutes={snapMinutes}\n />\n </>\n );\n}\n\nfunction createScheduleEventResizePlugin<TAuxiliaryData>({\n onResize,\n snapMinutes = DEFAULT_SNAP_MINUTES,\n}: ScheduleEventResizePluginOptions<TAuxiliaryData>): SchedulePlugin {\n const normalizedSnapMinutes =\n Number.isFinite(snapMinutes) && snapMinutes > 0\n ? Math.max(1, Math.floor(snapMinutes))\n : DEFAULT_SNAP_MINUTES;\n\n return {\n renderTimeGridEventContent({\n event,\n hourHeight,\n }: ScheduleTimeGridEventRenderProps): React.ReactNode {\n if (isDayEvent(event)) {\n return null;\n }\n\n return (\n <ScheduleEventResizeHandles\n event={event as CalendarInstantEvent<TAuxiliaryData>}\n hourHeight={hourHeight}\n onResize={onResize}\n snapMinutes={normalizedSnapMinutes}\n />\n );\n },\n };\n}\n\n/**\n * Adds start and end resize handles to timed events in day/week time-grid\n * views. The plugin is controlled: it reports the resized range through\n * `onResize` and leaves event updates to the consumer.\n */\nexport function useScheduleEventResizePlugin<TAuxiliaryData = unknown>(\n options: ScheduleEventResizePluginOptions<TAuxiliaryData>,\n): SchedulePlugin {\n const optionsRef = useLatest(options);\n const onResize = useCallback(\n (change: ScheduleEventResizeChange<TAuxiliaryData>) => {\n optionsRef.current.onResize(change);\n },\n [optionsRef],\n );\n\n return useMemo(\n () =>\n createScheduleEventResizePlugin<TAuxiliaryData>({\n onResize,\n snapMinutes: options.snapMinutes,\n }),\n [onResize, options.snapMinutes],\n );\n}\n","import {\n AlignLeft,\n CalendarDays,\n MapPin,\n Pencil,\n Tag,\n Trash2,\n X,\n} from 'lucide-react';\nimport {useState} from 'react';\nimport {Button} from 'components/Button';\nimport {\n Layout,\n LayoutContent,\n LayoutFooter,\n LayoutHeader,\n} from 'components/Layout';\nimport {MetadataList, MetadataListItem} from 'components/MetadataList';\nimport {scheduleEventRecipe} from 'components/Schedule/ScheduleEvent.recipe';\nimport {useScheduleContext} from 'components/Schedule/context';\nimport {isDayEvent} from 'components/Schedule/dateMath';\nimport {\n formatDate,\n getCategory,\n getEventTimeLabel,\n} from 'components/Schedule/shared';\nimport type {CalendarEvent} from 'components/Schedule/types';\nimport {Text} from 'components/Text';\nimport {ToggleButton, ToggleButtonGroup} from 'components/ToggleButton';\nimport {cx} from 'internal/cx';\nimport {plainDateFromInstant} from 'internal/plainDate';\nimport {css} from 'styled-system/css';\n\nexport interface ScheduleEventPopoverContentProps<TAuxiliaryData = unknown> {\n /**\n * The event to display.\n */\n event: CalendarEvent<TAuxiliaryData>;\n /**\n * Closes the popover. Wired to the close button.\n */\n onClose: () => void;\n /**\n * Called when the delete action is triggered. When omitted, no delete button\n * is rendered.\n */\n onDelete?: (event: CalendarEvent<TAuxiliaryData>) => void;\n /**\n * Called when the edit action is triggered. When omitted, no edit button is\n * rendered.\n */\n onEdit?: (event: CalendarEvent<TAuxiliaryData>) => void;\n /**\n * Called when the attendee response (Going / Not Going / Maybe) changes. The\n * response is `null` when the selection is cleared.\n */\n onRespond?: (\n event: CalendarEvent<TAuxiliaryData>,\n response: string | null,\n ) => void;\n}\n\nconst styles = {\n layout: css({\n minW: '80',\n maxW: '96',\n }),\n dot: css({\n w: '3',\n h: '3',\n }),\n dateValue: css({\n display: 'flex',\n flexDirection: 'column',\n }),\n footerActions: css({\n display: 'flex',\n justifyContent: 'flex-end',\n }),\n} as const;\n\nfunction getEventDateLabel(event: CalendarEvent, timezoneID: string): string {\n const startDate = isDayEvent(event)\n ? event.start\n : plainDateFromInstant(event.start, timezoneID);\n return formatDate(startDate);\n}\n\n/**\n * Default Google-Calendar-style content for the event popover. Renders the\n * event color, title, date/time, and category in a {@link MetadataList} with\n * icon-only labels, plus optional `description` and `location` rows, an attendee\n * response footer, and optional edit/delete actions — each shown only when the\n * corresponding data or callback is present. A close button is always rendered.\n *\n * Pass this to the event popover plugin's `renderContent` to wire actions, e.g.\n * `renderContent: (event, controls) => <ScheduleEventPopoverContent event={event}\n * onClose={controls.close} onEdit={...} />`.\n */\nexport function ScheduleEventPopoverContent<TAuxiliaryData = unknown>({\n event,\n onClose,\n onDelete,\n onEdit,\n onRespond,\n}: ScheduleEventPopoverContentProps<TAuxiliaryData>): React.JSX.Element {\n const {categoryMap, timezoneID} = useScheduleContext();\n const [response, setResponse] = useState<string | null>(null);\n const category = getCategory(categoryMap, event);\n const dotClass = scheduleEventRecipe({color: category.color}).dot;\n\n return (\n <Layout\n className={styles.layout}\n content={\n <LayoutContent isScrollable={false} padding={3}>\n <MetadataList>\n <MetadataListItem\n icon={CalendarDays}\n isIconOnly\n label=\"Date and time\">\n <span className={styles.dateValue}>\n <Text>{getEventDateLabel(event, timezoneID)}</Text>\n <Text color=\"secondary\" type=\"supporting\">\n {getEventTimeLabel(event, timezoneID)}\n </Text>\n </span>\n </MetadataListItem>\n {event.location != null && event.location !== '' ? (\n <MetadataListItem icon={MapPin} isIconOnly label=\"Location\">\n {event.location}\n </MetadataListItem>\n ) : null}\n {event.description != null && event.description !== '' ? (\n <MetadataListItem icon={AlignLeft} isIconOnly label=\"Description\">\n {event.description}\n </MetadataListItem>\n ) : null}\n <MetadataListItem icon={Tag} isIconOnly label=\"Category\">\n {category.label}\n </MetadataListItem>\n </MetadataList>\n </LayoutContent>\n }\n data-testid=\"schedule-event-popover\"\n footer={\n <LayoutFooter label=\"Your response\" padding={3}>\n <div className={styles.footerActions}>\n <ToggleButtonGroup\n label=\"Your response\"\n onChange={value => {\n setResponse(value);\n onRespond?.(event, value);\n }}\n size=\"sm\"\n type=\"single\"\n value={response}>\n <ToggleButton label=\"Not Going\" value=\"not-going\" />\n <ToggleButton label=\"Maybe\" value=\"maybe\" />\n <ToggleButton\n data-testid=\"schedule-event-popover-response-going\"\n label=\"Going\"\n value=\"going\"\n />\n </ToggleButtonGroup>\n </div>\n </LayoutFooter>\n }\n header={\n <LayoutHeader\n align=\"center\"\n endContent={\n <>\n {onEdit != null ? (\n <Button\n data-testid=\"schedule-event-popover-edit\"\n icon={Pencil}\n isIconOnly\n label=\"Edit event\"\n onClick={() => onEdit(event)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {onDelete != null ? (\n <Button\n data-testid=\"schedule-event-popover-delete\"\n icon={Trash2}\n isIconOnly\n label=\"Delete event\"\n onClick={() => onDelete(event)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n <Button\n data-testid=\"schedule-event-popover-close\"\n icon={X}\n isIconOnly\n label=\"Close\"\n onClick={onClose}\n size=\"sm\"\n variant=\"ghost\"\n />\n </>\n }\n padding={3}\n startContent={<span className={cx(dotClass, styles.dot)} />}\n title={event.title}\n />\n }\n height=\"auto\"\n />\n );\n}\n","import {useMemo, type ReactNode} from 'react';\nimport {ScheduleEventPopoverContent} from 'components/Schedule/plugins/ScheduleEventPopoverContent';\nimport type {\n CalendarEvent,\n ScheduleEventPopoverControls,\n SchedulePlugin,\n} from 'components/Schedule/types';\n\n/**\n * Arguments passed to the event popover `renderContent` callback. Modeled as an\n * object so new fields (beyond `event` and `close`) can be added without\n * breaking callers.\n */\nexport interface ScheduleEventPopoverRenderProps<\n TAuxiliaryData = unknown,\n> extends ScheduleEventPopoverControls {\n event: CalendarEvent<TAuxiliaryData>;\n}\n\nexport interface ScheduleEventPopoverPluginOptions<TAuxiliaryData = unknown> {\n /**\n * Renders the popover content for an event. Receives `{event, close}` so the\n * content can render the event and dismiss the popover. Return\n * `null`/`undefined` to opt out of a popover for that event.\n *\n * When omitted, the built-in {@link ScheduleEventPopoverContent} is rendered\n * with no actions. To customize the default — e.g. wire `onEdit`/`onDelete` —\n * pass `renderContent` that renders `ScheduleEventPopoverContent` with the\n * desired props. Custom popovers need not import the default at all.\n */\n renderContent?: (\n props: ScheduleEventPopoverRenderProps<TAuxiliaryData>,\n ) => ReactNode;\n}\n\nfunction createScheduleEventPopoverPlugin<TAuxiliaryData>(\n options: ScheduleEventPopoverPluginOptions<TAuxiliaryData>,\n): SchedulePlugin {\n const {renderContent} = options;\n return {\n renderEventPopover(event, controls): ReactNode {\n const typedEvent = event as CalendarEvent<TAuxiliaryData>;\n if (renderContent != null) {\n return renderContent({event: typedEvent, ...controls});\n }\n return (\n <ScheduleEventPopoverContent\n event={typedEvent}\n onClose={controls.close}\n />\n );\n },\n };\n}\n\n/**\n * Plugin that opens a detail popover when an event pill is clicked, across every\n * Schedule view. By default it renders the built-in\n * {@link ScheduleEventPopoverContent}; pass `renderContent` for fully custom\n * content (and to wire the default popover's `onEdit`/`onDelete`/`onRespond`).\n */\nexport function useScheduleEventPopoverPlugin<TAuxiliaryData = unknown>(\n options: ScheduleEventPopoverPluginOptions<TAuxiliaryData> = {},\n): SchedulePlugin {\n const {renderContent} = options;\n return useMemo(\n () => createScheduleEventPopoverPlugin<TAuxiliaryData>({renderContent}),\n [renderContent],\n );\n}\n","import {ChevronLeft, ChevronRight} from 'lucide-react';\nimport {useCallback, useMemo, type ReactNode} from 'react';\nimport {Button} from 'components/Button';\nimport {ButtonGroup} from 'components/ButtonGroup';\nimport {useScheduleContext} from 'components/Schedule/context';\nimport type {\n Instant,\n ScheduleHeaderContent,\n SchedulePlugin,\n SchedulePluginPosition,\n ScheduleZonedInstantRange,\n} from 'components/Schedule/types';\nimport {nowEpochMilliseconds} from 'internal/time';\n\nexport interface SchedulePaginationPluginOptions {\n onViewDateChange: (date: Instant) => void;\n position?: SchedulePluginPosition;\n}\n\nfunction SchedulePaginationControls({\n onViewDateChange,\n}: {\n onViewDateChange: (date: Instant) => void;\n}): React.JSX.Element {\n const {view, viewDate} = useScheduleContext();\n const currentRange = useMemo(\n () => view.getDateRange(viewDate),\n [view, viewDate],\n );\n const previousDateRange = useMemo(\n () => view.getPreviousDateRange(viewDate),\n [view, viewDate],\n );\n const nextDateRange = useMemo(\n () => view.getNextDateRange(viewDate),\n [view, viewDate],\n );\n const shiftToRange = useCallback(\n (nextRange: ScheduleZonedInstantRange) => {\n onViewDateChange(\n viewDate.instant + nextRange[0].instant - currentRange[0].instant,\n );\n },\n [currentRange, onViewDateChange, viewDate],\n );\n const onPreviousDate = useCallback(() => {\n shiftToRange(previousDateRange.range);\n }, [previousDateRange, shiftToRange]);\n const onToday = useCallback(() => {\n onViewDateChange(nowEpochMilliseconds());\n }, [onViewDateChange]);\n const onNextDate = useCallback(() => {\n shiftToRange(nextDateRange.range);\n }, [nextDateRange, shiftToRange]);\n\n return (\n <ButtonGroup label=\"Schedule pagination\" size=\"sm\">\n <Button\n icon={ChevronLeft}\n isIconOnly\n label={previousDateRange.label}\n onClick={onPreviousDate}\n />\n <Button label=\"Today\" onClick={onToday} size=\"sm\" />\n <Button\n icon={ChevronRight}\n isIconOnly\n label={nextDateRange.label}\n onClick={onNextDate}\n />\n </ButtonGroup>\n );\n}\n\nfunction createSchedulePaginationPlugin({\n onViewDateChange,\n position = 'start',\n}: SchedulePaginationPluginOptions): SchedulePlugin {\n return {\n renderHeader(\n startContent: ReactNode,\n centerContent: ReactNode,\n endContent: ReactNode,\n ): ScheduleHeaderContent {\n const controls = (\n <SchedulePaginationControls onViewDateChange={onViewDateChange} />\n );\n return position === 'start'\n ? {\n centerContent,\n endContent,\n startContent: (\n <>\n {controls}\n {startContent}\n </>\n ),\n }\n : {\n centerContent,\n endContent: (\n <>\n {endContent}\n {controls}\n </>\n ),\n startContent,\n };\n },\n };\n}\n\nexport function useSchedulePaginationPlugin({\n onViewDateChange,\n position = 'start',\n}: SchedulePaginationPluginOptions): SchedulePlugin {\n return useMemo(\n () => createSchedulePaginationPlugin({onViewDateChange, position}),\n [onViewDateChange, position],\n );\n}\n","import {Check} from 'lucide-react';\nimport {useMemo, type ReactNode} from 'react';\nimport {DropdownMenu, DropdownMenuItem} from 'components/DropdownMenu';\nimport {Icon} from 'components/Icon';\nimport {useScheduleContext} from 'components/Schedule/context';\nimport type {\n ScheduleHeaderContent,\n SchedulePlugin,\n SchedulePluginPosition,\n ScheduleView,\n ScheduleViewBase,\n} from 'components/Schedule/types';\n\nexport interface ScheduleViewSelectorOption<\n View extends ScheduleViewBase = ScheduleView,\n> {\n label: string;\n view: View;\n}\n\nexport interface ScheduleViewSelectorPluginOptions<\n View extends ScheduleViewBase = ScheduleView,\n> {\n onChangeView?: (view: View) => void;\n position?: SchedulePluginPosition;\n}\n\nfunction ScheduleViewSelectorControl<View extends ScheduleViewBase>({\n onChangeView,\n options,\n}: {\n onChangeView?: (view: View) => void;\n options: ReadonlyArray<ScheduleViewSelectorOption<View>>;\n}): React.JSX.Element {\n const {view} = useScheduleContext();\n const currentOption = options.find(option => option.view === view);\n\n return (\n <DropdownMenu\n button={{\n isDisabled: onChangeView == null,\n label: currentOption?.label ?? 'View',\n size: 'sm',\n }}\n menuWidth={160}>\n {options.map(option => (\n <DropdownMenuItem\n endContent={\n option.view === view ? (\n <Icon\n color=\"primary\"\n data-testid=\"schedule-view-selector-selected-icon\"\n icon={Check}\n size=\"sm\"\n />\n ) : null\n }\n key={option.label}\n label={option.label}\n onClick={() => onChangeView?.(option.view)}\n />\n ))}\n </DropdownMenu>\n );\n}\n\nfunction createScheduleViewSelectorPlugin<View extends ScheduleViewBase>(\n options: ReadonlyArray<ScheduleViewSelectorOption<View>>,\n {\n onChangeView,\n position = 'end',\n }: ScheduleViewSelectorPluginOptions<View> = {},\n): SchedulePlugin {\n return {\n renderHeader(\n startContent: ReactNode,\n centerContent: ReactNode,\n endContent: ReactNode,\n ): ScheduleHeaderContent {\n const selector = (\n <ScheduleViewSelectorControl\n onChangeView={onChangeView}\n options={options}\n />\n );\n return position === 'start'\n ? {\n centerContent,\n endContent,\n startContent: (\n <>\n {startContent}\n {selector}\n </>\n ),\n }\n : {\n centerContent,\n endContent: (\n <>\n {endContent}\n {selector}\n </>\n ),\n startContent,\n };\n },\n };\n}\n\nexport function useScheduleViewSelectorPlugin<View extends ScheduleViewBase>(\n options: ReadonlyArray<ScheduleViewSelectorOption<View>>,\n pluginOptions: ScheduleViewSelectorPluginOptions<View> = {},\n): SchedulePlugin {\n const {onChangeView, position = 'end'} = pluginOptions;\n return useMemo(\n () => createScheduleViewSelectorPlugin(options, {onChangeView, position}),\n [onChangeView, options, position],\n );\n}\n","import type {SchedulePlugin} from 'components/Schedule/types';\n\nexport {useScheduleEventMovePlugin} from 'components/Schedule/plugins/EventMovePlugin';\nexport {useScheduleEventResizePlugin} from 'components/Schedule/plugins/EventResizePlugin';\nexport {useScheduleEventPopoverPlugin} from 'components/Schedule/plugins/EventPopoverPlugin';\nexport {\n ScheduleEventPopoverContent,\n type ScheduleEventPopoverContentProps,\n} from 'components/Schedule/plugins/ScheduleEventPopoverContent';\nexport {useSchedulePaginationPlugin} from 'components/Schedule/plugins/PaginationPlugin';\nexport {useScheduleViewSelectorPlugin} from 'components/Schedule/plugins/ViewSelectorPlugin';\n\nexport const defaultSchedulePlugins: ReadonlyArray<SchedulePlugin> = [];\n","import {Suspense, useMemo, useState, type CSSProperties, type Ref} from 'react';\nimport {ScheduleContext} from 'components/Schedule/context';\nimport {eventOverlapsRange, sortEvents} from 'components/Schedule/dateMath';\nimport {defaultSchedulePlugins} from 'components/Schedule/plugins';\nimport {createScheduleZonedInstant} from 'components/Schedule/scheduleZonedInstant';\nimport {createCategoryMap, scheduleClasses} from 'components/Schedule/shared';\nimport type {\n CalendarEvent,\n Instant,\n ScheduleCategory,\n ScheduleEventSource,\n SchedulePlugin,\n ScheduleRange,\n ScheduleView,\n ScheduleViewOptions,\n ScheduleZonedInstant,\n} from 'components/Schedule/types';\nimport {cx} from 'internal/cx';\nimport {plainDateFromInstant} from 'internal/plainDate';\nimport {getBrowserTimezoneID, nowEpochMilliseconds} from 'internal/time';\n\nconst EMPTY_CATEGORIES: ReadonlyArray<ScheduleCategory> = [];\n\nexport interface ScheduleProps<\n Options extends ScheduleViewOptions = ScheduleViewOptions,\n> {\n /**\n * Category definitions used to style events by their `category` value.\n */\n categories?: ReadonlyArray<ScheduleCategory>;\n /**\n * Additional CSS class names applied to the schedule root.\n */\n className?: string;\n /**\n * Test ID applied to the schedule root.\n */\n 'data-testid'?: string;\n /**\n * Static events or an async event loader.\n */\n events: ScheduleEventSource;\n /**\n * Instant highlighted as the current date. Defaults to mount time.\n */\n highlightDate?: Instant;\n /**\n * Header/rendering plugins.\n */\n plugins?: ReadonlyArray<SchedulePlugin>;\n /**\n * Ref forwarded to the schedule root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the schedule root.\n */\n style?: CSSProperties;\n /**\n * IANA timezone ID used for date math and rendering.\n */\n timezoneID?: string;\n /**\n * View object returned by a `createSchedule*View` factory.\n */\n view: ScheduleView<Options>;\n /**\n * Instant used to choose the rendered range.\n */\n viewDate: Instant;\n}\n\ninterface EventRecord {\n error: unknown;\n promise: Promise<void>;\n status: 'fulfilled' | 'pending' | 'rejected';\n value: ReadonlyArray<CalendarEvent>;\n}\n\nfunction readAsyncEvents(\n loader: Exclude<ScheduleEventSource, ReadonlyArray<CalendarEvent>>,\n start: Instant,\n end: Instant,\n cache: Map<string, EventRecord>,\n): ReadonlyArray<CalendarEvent> {\n const key = `${start}:${end}`;\n let record = cache.get(key);\n if (record == null) {\n record = {\n error: null,\n promise: Promise.resolve()\n .then(async () => loader(start, end))\n .then(\n value => {\n if (record != null) {\n record.status = 'fulfilled';\n record.value = value;\n }\n },\n error => {\n if (record != null) {\n record.status = 'rejected';\n record.error = error;\n }\n },\n ),\n status: 'pending',\n value: [],\n };\n cache.set(key, record);\n }\n\n if (record.status === 'pending') {\n // Suspense uses thrown promises to pause rendering until async events resolve.\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw record.promise;\n }\n\n if (record.status === 'rejected') {\n throw record.error instanceof Error\n ? record.error\n : new Error(String(record.error));\n }\n\n return record.value;\n}\n\nfunction resolveEvents(\n eventSource: ScheduleEventSource,\n range: ScheduleRange,\n timezoneID: string,\n eventCache: Map<string, EventRecord>,\n): ReadonlyArray<CalendarEvent> {\n const events =\n typeof eventSource === 'function'\n ? readAsyncEvents(eventSource, range.start, range.end, eventCache)\n : eventSource;\n return sortEvents(\n events.filter(event => eventOverlapsRange(event, range, timezoneID)),\n timezoneID,\n );\n}\n\nfunction useRange<Options extends ScheduleViewOptions>(\n view: ScheduleView<Options>,\n date: ScheduleZonedInstant,\n): ScheduleRange {\n const [start, end] = view.getDateRange(date);\n return useMemo(\n () => ({\n end: end.instant,\n endDate: plainDateFromInstant(end.instant, end.timezoneID),\n start: start.instant,\n startDate: plainDateFromInstant(start.instant, start.timezoneID),\n }),\n [start.instant, end.instant, start.timezoneID, end.timezoneID],\n );\n}\n\nfunction ScheduleViewContent<Options extends ScheduleViewOptions>({\n categories,\n eventCache,\n eventSource,\n highlightDate,\n isLoading,\n plugins,\n view,\n viewDate,\n}: {\n categories: ReadonlyArray<ScheduleCategory>;\n eventCache: Map<string, EventRecord>;\n eventSource: ScheduleEventSource;\n highlightDate: ScheduleZonedInstant;\n isLoading: boolean;\n plugins: ReadonlyArray<SchedulePlugin>;\n view: ScheduleView<Options>;\n viewDate: ScheduleZonedInstant;\n}): React.JSX.Element {\n const Component = view.component;\n const range = useRange(view, viewDate);\n const contextValue = useMemo(() => {\n const categoryMap = createCategoryMap(categories);\n const events = isLoading\n ? []\n : resolveEvents(eventSource, range, viewDate.timezoneID, eventCache);\n return {\n categoryMap,\n categories,\n events,\n highlightDate,\n isLoading,\n plugins,\n range,\n timezoneID: viewDate.timezoneID,\n view,\n viewDate,\n };\n }, [\n categories,\n eventCache,\n eventSource,\n highlightDate,\n isLoading,\n plugins,\n range,\n view,\n viewDate,\n ]);\n\n return (\n <ScheduleContext value={contextValue}>\n <Component options={view.options} />\n </ScheduleContext>\n );\n}\n\n/**\n * Read-only schedule shell for day, week, month, and list views.\n */\nexport function Schedule({\n categories = EMPTY_CATEGORIES,\n className,\n 'data-testid': dataTestId,\n events,\n highlightDate: highlightDateFromProps,\n plugins = defaultSchedulePlugins,\n ref,\n style,\n timezoneID: timezoneIDFromProps,\n view,\n viewDate,\n}: ScheduleProps): React.JSX.Element {\n const timezoneID = timezoneIDFromProps ?? getBrowserTimezoneID();\n // Instance-scoped cache for async event loading. Unlike the previous\n // module-level WeakMap keyed on loader function identity, this cache belongs\n // to each Schedule instance so unstable (inline) loader references do not\n // defeat caching or leak memory.\n const [eventCache] = useState(() => new Map<string, EventRecord>());\n const [internalHighlightDate] = useState<Instant>(() =>\n nowEpochMilliseconds(),\n );\n const highlightDate = highlightDateFromProps ?? internalHighlightDate;\n const scheduleZonedInstant = useMemo(\n () => createScheduleZonedInstant(viewDate, timezoneID),\n [viewDate, timezoneID],\n );\n const highlightScheduleZonedInstant = useMemo(\n () => createScheduleZonedInstant(highlightDate, timezoneID),\n [highlightDate, timezoneID],\n );\n\n return (\n <div\n className={cx(scheduleClasses.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <Suspense\n fallback={\n <ScheduleViewContent\n categories={categories}\n eventCache={eventCache}\n eventSource={[]}\n highlightDate={highlightScheduleZonedInstant}\n isLoading\n plugins={plugins}\n view={view}\n viewDate={scheduleZonedInstant}\n />\n }>\n <ScheduleViewContent\n categories={categories}\n eventCache={eventCache}\n eventSource={events}\n highlightDate={highlightScheduleZonedInstant}\n isLoading={false}\n plugins={plugins}\n view={view}\n viewDate={scheduleZonedInstant}\n />\n </Suspense>\n </div>\n );\n}\n\nSchedule.displayName = 'Schedule';\n","/* eslint-disable silver-ui/require-component-props -- schedule views are internal view renderers */\n\nimport {TimeGridView} from 'components/Schedule/TimeGridView';\nimport {useScheduleContext} from 'components/Schedule/context';\nimport {\n enumerateDates,\n getScheduleRangeFromDates,\n} from 'components/Schedule/dateMath';\nimport {scheduleRangeToScheduleZonedInstantRange} from 'components/Schedule/scheduleZonedInstant';\nimport {ScheduleFrame, formatWeekTitle} from 'components/Schedule/shared';\nimport type {\n ScheduleView,\n ScheduleViewComponentProps,\n ScheduleZonedInstant,\n} from 'components/Schedule/types';\nimport {plainDateDayOfWeek, type PlainDate} from 'internal/plainDate';\n\nexport interface ScheduleWeeklyViewOptions {\n /**\n * Maximum number of all-day events shown before the rest collapse into a\n * popover.\n * @default 3\n */\n allDayEventLimit?: number;\n /**\n * Pixel height used for each hourly row.\n * @default 100\n */\n hourHeight?: number;\n /**\n * Exclusive ending hour shown in the weekly grid (1-24).\n * @default 24\n */\n maxHour?: number;\n /**\n * First hour shown in the weekly grid (0-23).\n * @default 0\n */\n minHour?: number;\n /**\n * Day used as the first day of the week, where 0 is Sunday and 6 is Saturday.\n * @default 0\n */\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n}\n\n/**\n * Internal view component that renders a 7-day time grid.\n */\nfunction ScheduleWeeklyView({\n options,\n}: ScheduleViewComponentProps<ScheduleWeeklyViewOptions>): React.JSX.Element {\n const {range} = useScheduleContext();\n const days = enumerateDates(range.startDate, range.endDate);\n const title = formatWeekTitle(days[0], days[days.length - 1]);\n return (\n <ScheduleFrame title={title} titleLabel={title}>\n <TimeGridView\n allDayEventLimit={options.allDayEventLimit}\n days={days}\n hourHeight={options.hourHeight}\n maxHour={options.maxHour}\n minHour={options.minHour}\n />\n </ScheduleFrame>\n );\n}\n\n/**\n * Creates a weekly schedule view configuration.\n */\nexport function createScheduleWeeklyView({\n allDayEventLimit = 3,\n hourHeight = 100,\n maxHour = 24,\n minHour = 0,\n weekStartsOn = 0,\n}: ScheduleWeeklyViewOptions = {}): ScheduleView<ScheduleWeeklyViewOptions> {\n const getWeekStart = (date: ScheduleZonedInstant) =>\n setStartOfWeek(date.toPlainDate(), weekStartsOn);\n const getWeekRange = (date: ScheduleZonedInstant) => {\n const startDate = getWeekStart(date);\n return scheduleRangeToScheduleZonedInstantRange(\n getScheduleRangeFromDates({\n endDate: startDate.add({days: 7}),\n startDate,\n timezoneID: date.timezoneID,\n }),\n date.timezoneID,\n );\n };\n\n return {\n component: ScheduleWeeklyView,\n getDateRange: getWeekRange,\n getNextDateRange: date => ({\n label: 'Next week',\n range: getWeekRange(date.addDays(7)),\n }),\n getPreviousDateRange: date => ({\n label: 'Previous week',\n range: getWeekRange(date.addDays(-7)),\n }),\n options: {allDayEventLimit, hourHeight, maxHour, minHour, weekStartsOn},\n };\n}\n\nfunction setStartOfWeek(\n date: PlainDate,\n weekStartsOn: NonNullable<ScheduleWeeklyViewOptions['weekStartsOn']>,\n): PlainDate {\n const daysSinceWeekStart = (plainDateDayOfWeek(date) - weekStartsOn + 7) % 7;\n return date.add({days: -daysSinceWeekStart});\n}\n"]}