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,3541 @@
1
+ 'use strict';
2
+
3
+ var chunkAFJEAYR4_cjs = require('./chunk-AFJEAYR4.cjs');
4
+ var chunk6ZV7HGZT_cjs = require('./chunk-6ZV7HGZT.cjs');
5
+ var chunkDFEAB7Z3_cjs = require('./chunk-DFEAB7Z3.cjs');
6
+ var chunkKVJ27734_cjs = require('./chunk-KVJ27734.cjs');
7
+ var chunkJK4YAQ2N_cjs = require('./chunk-JK4YAQ2N.cjs');
8
+ var chunkR37R7DEV_cjs = require('./chunk-R37R7DEV.cjs');
9
+ var chunkH7VK36SZ_cjs = require('./chunk-H7VK36SZ.cjs');
10
+ var chunkRAMDISDK_cjs = require('./chunk-RAMDISDK.cjs');
11
+ var chunk5K3C3INR_cjs = require('./chunk-5K3C3INR.cjs');
12
+ var chunkVXOIOPGZ_cjs = require('./chunk-VXOIOPGZ.cjs');
13
+ var chunkGU65FGY6_cjs = require('./chunk-GU65FGY6.cjs');
14
+ var chunkMHAXS4GO_cjs = require('./chunk-MHAXS4GO.cjs');
15
+ var chunkGJZAGTPV_cjs = require('./chunk-GJZAGTPV.cjs');
16
+ var chunkVK7DXUGH_cjs = require('./chunk-VK7DXUGH.cjs');
17
+ var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
18
+ var chunkJ4PIYOWT_cjs = require('./chunk-J4PIYOWT.cjs');
19
+ var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
20
+ var chunkJRBQKFVO_cjs = require('./chunk-JRBQKFVO.cjs');
21
+ var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
22
+ var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
23
+ var polyfill = require('@js-temporal/polyfill');
24
+ var react = require('react');
25
+ var jsxRuntime = require('react/jsx-runtime');
26
+ var lucideReact = require('lucide-react');
27
+
28
+ var DATE_ONLY_RE = /^\d{4}-\d{2}-\d{2}$/;
29
+ function createEventFromISO({
30
+ category,
31
+ end,
32
+ id,
33
+ start,
34
+ title
35
+ }) {
36
+ if (DATE_ONLY_RE.test(start) && DATE_ONLY_RE.test(end)) {
37
+ return {
38
+ category,
39
+ end: polyfill.Temporal.PlainDate.from(end),
40
+ id,
41
+ start: polyfill.Temporal.PlainDate.from(start),
42
+ title
43
+ };
44
+ }
45
+ return {
46
+ category,
47
+ end: polyfill.Temporal.Instant.from(end).epochMilliseconds,
48
+ id,
49
+ start: polyfill.Temporal.Instant.from(start).epochMilliseconds,
50
+ title
51
+ };
52
+ }
53
+
54
+ // src/components/Schedule/ScheduleEvent.recipe.ts
55
+ var scheduleEventRecipe = chunkZ6RT3WPE_cjs.sva({
56
+ slots: ["event", "dot", "time", "title"],
57
+ base: {
58
+ event: {
59
+ borderWidth: "default",
60
+ borderStyle: "solid",
61
+ borderColor: "var(--schedule-event-border)",
62
+ borderRadius: "sm",
63
+ overflow: "hidden",
64
+ px: "1",
65
+ py: "0.5",
66
+ fontSize: "xs",
67
+ lineHeight: "tight",
68
+ bg: "var(--schedule-event-bg)",
69
+ color: "var(--schedule-event-fg)",
70
+ _hover: {
71
+ bg: "var(--schedule-event-bg-hover)"
72
+ },
73
+ // Active state: the pill's popover is open. Interactive pills carry
74
+ // `aria-expanded`, so this only matches the open trigger. The outline uses
75
+ // the category accent color and composes cleanly with the color/past
76
+ // background overrides.
77
+ '&[aria-expanded="true"]': {
78
+ outlineWidth: "focus",
79
+ outlineStyle: "solid",
80
+ outlineColor: "var(--schedule-event-dot)",
81
+ outlineOffset: "1px"
82
+ },
83
+ '&[data-state="past"]': {
84
+ "--schedule-event-bg": "color-mix(in srgb, var(--schedule-event-dot) 10%, token(colors.bg))",
85
+ "--schedule-event-bg-hover": "color-mix(in srgb, var(--schedule-event-dot) 14%, token(colors.bg))",
86
+ "--schedule-event-border": "color-mix(in srgb, var(--schedule-event-dot) 48%, token(colors.border))",
87
+ "--schedule-event-fg": "color-mix(in srgb, var(--schedule-event-fg-base) 52%, token(colors.fg.muted))"
88
+ }
89
+ },
90
+ dot: {
91
+ display: "inline-block",
92
+ w: "2",
93
+ h: "2",
94
+ borderRadius: "full",
95
+ bg: "var(--schedule-event-dot)",
96
+ flexShrink: 0
97
+ },
98
+ time: {
99
+ flexShrink: 0,
100
+ fontWeight: "normal"
101
+ },
102
+ title: {
103
+ fontWeight: "bold",
104
+ overflow: "hidden",
105
+ textOverflow: "ellipsis",
106
+ whiteSpace: "nowrap"
107
+ }
108
+ },
109
+ variants: {
110
+ layout: {
111
+ inline: {
112
+ event: {
113
+ display: "inline-flex",
114
+ alignItems: "baseline",
115
+ gap: "1",
116
+ maxW: "full",
117
+ textOverflow: "ellipsis",
118
+ whiteSpace: "nowrap",
119
+ fontWeight: "medium"
120
+ }
121
+ },
122
+ block: {
123
+ event: {
124
+ position: "absolute",
125
+ display: "flex",
126
+ flexDirection: "column",
127
+ gap: 0,
128
+ minH: "9",
129
+ minW: 0
130
+ },
131
+ time: {
132
+ overflow: "hidden",
133
+ textOverflow: "ellipsis",
134
+ whiteSpace: "nowrap"
135
+ }
136
+ }
137
+ },
138
+ // Full-width pill used by the month overlay where the span sizes the cell.
139
+ isFullWidth: {
140
+ true: { event: { w: "full" } },
141
+ false: {}
142
+ },
143
+ // Applied when the pill is rendered as a clickable <button> trigger (event
144
+ // popover plugin). Resets user-agent button styling so the pill looks
145
+ // identical to its static <span> form.
146
+ isInteractive: {
147
+ true: {
148
+ event: {
149
+ appearance: "none",
150
+ textAlign: "inherit",
151
+ font: "inherit",
152
+ m: 0,
153
+ cursor: "pointer",
154
+ _focusVisible: {
155
+ outlineWidth: "focus",
156
+ outlineStyle: "solid",
157
+ outlineColor: "primary"
158
+ }
159
+ }
160
+ },
161
+ false: {}
162
+ },
163
+ color: {
164
+ blue: {
165
+ event: {
166
+ "--schedule-event-bg": "token(colors.surface.blue)",
167
+ "--schedule-event-bg-hover": "token(colors.surface.blue.hover)",
168
+ "--schedule-event-border": "token(colors.surface.blue.accent)",
169
+ "--schedule-event-fg": "token(colors.surface.blue.fg)",
170
+ "--schedule-event-fg-base": "token(colors.surface.blue.fg)",
171
+ "--schedule-event-dot": "token(colors.surface.blue.accent)"
172
+ },
173
+ dot: { "--schedule-event-dot": "token(colors.surface.blue.accent)" }
174
+ },
175
+ cyan: {
176
+ event: {
177
+ "--schedule-event-bg": "token(colors.surface.cyan)",
178
+ "--schedule-event-bg-hover": "token(colors.surface.cyan.hover)",
179
+ "--schedule-event-border": "token(colors.surface.cyan.accent)",
180
+ "--schedule-event-fg": "token(colors.surface.cyan.fg)",
181
+ "--schedule-event-fg-base": "token(colors.surface.cyan.fg)",
182
+ "--schedule-event-dot": "token(colors.surface.cyan.accent)"
183
+ },
184
+ dot: { "--schedule-event-dot": "token(colors.surface.cyan.accent)" }
185
+ },
186
+ gray: {
187
+ event: {
188
+ "--schedule-event-bg": "token(colors.surface.gray)",
189
+ "--schedule-event-bg-hover": "token(colors.surface.gray.hover)",
190
+ "--schedule-event-border": "token(colors.surface.gray.accent)",
191
+ "--schedule-event-fg": "token(colors.surface.gray.fg)",
192
+ "--schedule-event-fg-base": "token(colors.surface.gray.fg)",
193
+ "--schedule-event-dot": "token(colors.surface.gray.accent)"
194
+ },
195
+ dot: { "--schedule-event-dot": "token(colors.surface.gray.accent)" }
196
+ },
197
+ green: {
198
+ event: {
199
+ "--schedule-event-bg": "token(colors.surface.green)",
200
+ "--schedule-event-bg-hover": "token(colors.surface.green.hover)",
201
+ "--schedule-event-border": "token(colors.surface.green.accent)",
202
+ "--schedule-event-fg": "token(colors.surface.green.fg)",
203
+ "--schedule-event-fg-base": "token(colors.surface.green.fg)",
204
+ "--schedule-event-dot": "token(colors.surface.green.accent)"
205
+ },
206
+ dot: { "--schedule-event-dot": "token(colors.surface.green.accent)" }
207
+ },
208
+ orange: {
209
+ event: {
210
+ "--schedule-event-bg": "token(colors.surface.orange)",
211
+ "--schedule-event-bg-hover": "token(colors.surface.orange.hover)",
212
+ "--schedule-event-border": "token(colors.surface.orange.accent)",
213
+ "--schedule-event-fg": "token(colors.surface.orange.fg)",
214
+ "--schedule-event-fg-base": "token(colors.surface.orange.fg)",
215
+ "--schedule-event-dot": "token(colors.surface.orange.accent)"
216
+ },
217
+ dot: { "--schedule-event-dot": "token(colors.surface.orange.accent)" }
218
+ },
219
+ pink: {
220
+ event: {
221
+ "--schedule-event-bg": "token(colors.surface.pink)",
222
+ "--schedule-event-bg-hover": "token(colors.surface.pink.hover)",
223
+ "--schedule-event-border": "token(colors.surface.pink.accent)",
224
+ "--schedule-event-fg": "token(colors.surface.pink.fg)",
225
+ "--schedule-event-fg-base": "token(colors.surface.pink.fg)",
226
+ "--schedule-event-dot": "token(colors.surface.pink.accent)"
227
+ },
228
+ dot: { "--schedule-event-dot": "token(colors.surface.pink.accent)" }
229
+ },
230
+ purple: {
231
+ event: {
232
+ "--schedule-event-bg": "token(colors.surface.purple)",
233
+ "--schedule-event-bg-hover": "token(colors.surface.purple.hover)",
234
+ "--schedule-event-border": "token(colors.surface.purple.accent)",
235
+ "--schedule-event-fg": "token(colors.surface.purple.fg)",
236
+ "--schedule-event-fg-base": "token(colors.surface.purple.fg)",
237
+ "--schedule-event-dot": "token(colors.surface.purple.accent)"
238
+ },
239
+ dot: { "--schedule-event-dot": "token(colors.surface.purple.accent)" }
240
+ },
241
+ red: {
242
+ event: {
243
+ "--schedule-event-bg": "token(colors.surface.red)",
244
+ "--schedule-event-bg-hover": "token(colors.surface.red.hover)",
245
+ "--schedule-event-border": "token(colors.surface.red.accent)",
246
+ "--schedule-event-fg": "token(colors.surface.red.fg)",
247
+ "--schedule-event-fg-base": "token(colors.surface.red.fg)",
248
+ "--schedule-event-dot": "token(colors.surface.red.accent)"
249
+ },
250
+ dot: { "--schedule-event-dot": "token(colors.surface.red.accent)" }
251
+ },
252
+ teal: {
253
+ event: {
254
+ "--schedule-event-bg": "token(colors.surface.teal)",
255
+ "--schedule-event-bg-hover": "token(colors.surface.teal.hover)",
256
+ "--schedule-event-border": "token(colors.surface.teal.accent)",
257
+ "--schedule-event-fg": "token(colors.surface.teal.fg)",
258
+ "--schedule-event-fg-base": "token(colors.surface.teal.fg)",
259
+ "--schedule-event-dot": "token(colors.surface.teal.accent)"
260
+ },
261
+ dot: { "--schedule-event-dot": "token(colors.surface.teal.accent)" }
262
+ },
263
+ yellow: {
264
+ event: {
265
+ "--schedule-event-bg": "token(colors.surface.yellow)",
266
+ "--schedule-event-bg-hover": "token(colors.surface.yellow.hover)",
267
+ "--schedule-event-border": "token(colors.surface.yellow.accent)",
268
+ "--schedule-event-fg": "token(colors.surface.yellow.fg)",
269
+ "--schedule-event-fg-base": "token(colors.surface.yellow.fg)",
270
+ "--schedule-event-dot": "token(colors.surface.yellow.accent)"
271
+ },
272
+ dot: { "--schedule-event-dot": "token(colors.surface.yellow.accent)" }
273
+ }
274
+ },
275
+ isPast: {
276
+ true: {
277
+ event: {
278
+ // Keep `isPast` in the recipe API for class-based assertions and
279
+ // callers, but rely on `[data-state="past"]` for the actual variable
280
+ // overrides so the color variant cannot win by atomic CSS order.
281
+ "--schedule-event-bg": "color-mix(in srgb, var(--schedule-event-dot) 10%, token(colors.bg))",
282
+ "--schedule-event-bg-hover": "color-mix(in srgb, var(--schedule-event-dot) 14%, token(colors.bg))",
283
+ "--schedule-event-border": "color-mix(in srgb, var(--schedule-event-dot) 48%, token(colors.border))",
284
+ "--schedule-event-fg": "color-mix(in srgb, var(--schedule-event-fg-base) 52%, token(colors.fg.muted))"
285
+ }
286
+ },
287
+ false: {}
288
+ }
289
+ },
290
+ defaultVariants: {
291
+ layout: "inline",
292
+ color: "blue",
293
+ isFullWidth: false,
294
+ isInteractive: false,
295
+ isPast: false
296
+ }
297
+ });
298
+
299
+ // src/components/Schedule/TimeGridView.recipe.ts
300
+ var scheduleTimeGridViewRecipe = chunkZ6RT3WPE_cjs.sva({
301
+ slots: [
302
+ "grid",
303
+ "header",
304
+ "corner",
305
+ "dayHeader",
306
+ "dayHeaderContent",
307
+ "dayHeaderDayNumber",
308
+ "allDayLabel",
309
+ "allDayRow",
310
+ "dayCell",
311
+ "timeLabel",
312
+ "timeRow",
313
+ "hourCell",
314
+ "events",
315
+ "allDayEvents",
316
+ "allDayPopoverContent",
317
+ "allDayPopoverEvents",
318
+ "allDaySeeMoreButton",
319
+ "rowContents"
320
+ ],
321
+ base: {
322
+ grid: {
323
+ display: "grid",
324
+ gridTemplateColumns: "72px 1fr",
325
+ overflow: "auto"
326
+ },
327
+ header: {
328
+ display: "grid",
329
+ gridTemplateColumns: "repeat(var(--schedule-day-count), minmax(160px, 1fr))",
330
+ borderBlockEndWidth: "default",
331
+ borderBlockEndStyle: "solid",
332
+ borderBlockEndColor: "border"
333
+ },
334
+ corner: {
335
+ borderInlineEndWidth: "default",
336
+ borderInlineEndStyle: "solid",
337
+ borderInlineEndColor: "border",
338
+ borderBlockEndWidth: "default",
339
+ borderBlockEndStyle: "solid",
340
+ borderBlockEndColor: "border"
341
+ },
342
+ dayHeader: {
343
+ p: "2",
344
+ textAlign: "center",
345
+ borderInlineEndWidth: "default",
346
+ borderInlineEndStyle: "solid",
347
+ borderInlineEndColor: "border"
348
+ },
349
+ dayHeaderContent: {
350
+ display: "inline-flex",
351
+ alignItems: "center",
352
+ justifyContent: "center",
353
+ gap: "1"
354
+ },
355
+ dayHeaderDayNumber: {
356
+ display: "inline-flex",
357
+ alignItems: "center",
358
+ justifyContent: "center",
359
+ minW: "30px",
360
+ h: "30px",
361
+ lineHeight: "30px",
362
+ borderRadius: "full"
363
+ },
364
+ allDayLabel: {
365
+ display: "flex",
366
+ alignItems: "flex-start",
367
+ justifyContent: "flex-end",
368
+ py: "0.5",
369
+ px: "2",
370
+ borderInlineEndWidth: "default",
371
+ borderInlineEndStyle: "solid",
372
+ borderInlineEndColor: "border",
373
+ borderBlockEndWidth: "default",
374
+ borderBlockEndStyle: "solid",
375
+ borderBlockEndColor: "border"
376
+ },
377
+ allDayRow: {
378
+ display: "grid",
379
+ gridTemplateColumns: "repeat(var(--schedule-day-count), minmax(160px, 1fr))",
380
+ borderBlockEndWidth: "default",
381
+ borderBlockEndStyle: "solid",
382
+ borderBlockEndColor: "border"
383
+ },
384
+ dayCell: {
385
+ minH: 0,
386
+ p: "0.5",
387
+ borderInlineEndWidth: "default",
388
+ borderInlineEndStyle: "solid",
389
+ borderInlineEndColor: "border"
390
+ },
391
+ timeLabel: {
392
+ p: "2",
393
+ color: "fg.muted",
394
+ textAlign: "end",
395
+ borderInlineEndWidth: "default",
396
+ borderInlineEndStyle: "solid",
397
+ borderInlineEndColor: "border",
398
+ borderBlockEndWidth: "default",
399
+ borderBlockEndStyle: "solid",
400
+ borderBlockEndColor: "border"
401
+ },
402
+ timeRow: {
403
+ display: "grid",
404
+ gridTemplateColumns: "repeat(var(--schedule-day-count), minmax(160px, 1fr))"
405
+ },
406
+ hourCell: {
407
+ position: "relative",
408
+ minH: "14",
409
+ p: "1",
410
+ borderInlineEndWidth: "default",
411
+ borderInlineEndStyle: "solid",
412
+ borderInlineEndColor: "border",
413
+ borderBlockEndWidth: "default",
414
+ borderBlockEndStyle: "solid",
415
+ borderBlockEndColor: "border"
416
+ },
417
+ events: {
418
+ display: "flex",
419
+ flexDirection: "column",
420
+ gap: "1"
421
+ },
422
+ allDayEvents: {
423
+ display: "flex",
424
+ flexDirection: "column",
425
+ gap: "0.5"
426
+ },
427
+ allDayPopoverContent: {
428
+ display: "flex",
429
+ flexDirection: "column",
430
+ gap: "1",
431
+ p: "3"
432
+ },
433
+ allDayPopoverEvents: {
434
+ display: "flex",
435
+ flexDirection: "column",
436
+ gap: 0,
437
+ m: 0,
438
+ p: 0,
439
+ listStyleType: "none"
440
+ },
441
+ allDaySeeMoreButton: {
442
+ display: "inline-flex",
443
+ alignItems: "center",
444
+ maxW: "full",
445
+ h: "5",
446
+ px: "1",
447
+ borderRadius: "sm",
448
+ color: "primary",
449
+ cursor: "pointer",
450
+ fontSize: "xs",
451
+ fontWeight: "medium",
452
+ lineHeight: "tight",
453
+ overflow: "hidden",
454
+ textOverflow: "ellipsis",
455
+ whiteSpace: "nowrap",
456
+ _hover: {
457
+ bg: "bg.muted"
458
+ }
459
+ },
460
+ rowContents: {
461
+ display: "contents"
462
+ }
463
+ },
464
+ variants: {
465
+ isCurrentDay: {
466
+ true: {
467
+ dayHeaderDayNumber: {
468
+ bg: "primary",
469
+ color: "fg.onPrimary"
470
+ }
471
+ },
472
+ false: {}
473
+ },
474
+ isLastColumn: {
475
+ true: {
476
+ dayHeader: { borderInlineEndWidth: 0 },
477
+ dayCell: { borderInlineEndWidth: 0 },
478
+ hourCell: { borderInlineEndWidth: 0 }
479
+ },
480
+ false: {}
481
+ },
482
+ isLastRow: {
483
+ true: {
484
+ timeLabel: { borderBlockEndWidth: 0 },
485
+ hourCell: { borderBlockEndWidth: 0 }
486
+ },
487
+ false: {}
488
+ }
489
+ },
490
+ defaultVariants: {
491
+ isCurrentDay: false,
492
+ isLastColumn: false,
493
+ isLastRow: false
494
+ }
495
+ });
496
+ var ScheduleContext = react.createContext(null);
497
+ ScheduleContext.displayName = "ScheduleContext";
498
+ function useScheduleContext() {
499
+ const context = react.use(ScheduleContext);
500
+ if (context == null) {
501
+ throw new Error("Schedule views must be rendered inside Schedule.");
502
+ }
503
+ return context;
504
+ }
505
+
506
+ // src/components/Schedule/dateMath.ts
507
+ function isDayEvent(event) {
508
+ return typeof event.start !== "number";
509
+ }
510
+ function getScheduleRangeFromDates({
511
+ endDate,
512
+ startDate,
513
+ timezoneID
514
+ }) {
515
+ return {
516
+ end: chunkJK4YAQ2N_cjs.plainDateToInstant(endDate, timezoneID),
517
+ endDate,
518
+ start: chunkJK4YAQ2N_cjs.plainDateToInstant(startDate, timezoneID),
519
+ startDate
520
+ };
521
+ }
522
+ function enumerateDates(start, endExclusive) {
523
+ const dates = [];
524
+ let current = start;
525
+ while (chunkJK4YAQ2N_cjs.plainDateIsBefore(current, endExclusive)) {
526
+ dates.push(current);
527
+ current = current.add({ days: 1 });
528
+ }
529
+ return dates;
530
+ }
531
+ function eventOverlapsRange(event, range, timezoneID) {
532
+ if (isDayEvent(event)) {
533
+ const eventStart = chunkJK4YAQ2N_cjs.plainDateToInstant(event.start, timezoneID);
534
+ const eventEnd = chunkJK4YAQ2N_cjs.plainDateToInstant(event.end.add({ days: 1 }), timezoneID);
535
+ return eventStart < range.end && eventEnd > range.start;
536
+ }
537
+ return event.start < range.end && event.end > range.start;
538
+ }
539
+ function eventOccursOnDate(event, date, timezoneID) {
540
+ if (isDayEvent(event)) {
541
+ return !chunkJK4YAQ2N_cjs.plainDateIsAfter(event.start, date) && !chunkJK4YAQ2N_cjs.plainDateIsBefore(event.end, date);
542
+ }
543
+ const startDate = chunkJK4YAQ2N_cjs.plainDateFromInstant(event.start, timezoneID);
544
+ const endDate = chunkJK4YAQ2N_cjs.plainDateFromInstant(
545
+ Math.max(event.end - 1, event.start),
546
+ timezoneID
547
+ );
548
+ return !chunkJK4YAQ2N_cjs.plainDateIsAfter(startDate, date) && !chunkJK4YAQ2N_cjs.plainDateIsBefore(endDate, date);
549
+ }
550
+ function sortEvents(events, timezoneID) {
551
+ return [...events].sort((a, b) => {
552
+ const aStart = getEventSortStart(a, timezoneID);
553
+ const bStart = getEventSortStart(b, timezoneID);
554
+ return aStart < bStart ? -1 : aStart > bStart ? 1 : a.title.localeCompare(b.title);
555
+ });
556
+ }
557
+ function getEventSortStart(event, timezoneID) {
558
+ return isDayEvent(event) ? chunkJK4YAQ2N_cjs.plainDateToInstant(event.start, timezoneID) : event.start;
559
+ }
560
+
561
+ // src/components/Schedule/Schedule.recipe.ts
562
+ var scheduleRecipe = chunkZ6RT3WPE_cjs.sva({
563
+ slots: [
564
+ "root",
565
+ "frame",
566
+ "header",
567
+ "headerSlotStart",
568
+ "headerSlotCenter",
569
+ "headerSlotEnd",
570
+ "headerTitleContent",
571
+ "headerTitleSpinner",
572
+ "surface"
573
+ ],
574
+ base: {
575
+ root: {
576
+ color: "fg",
577
+ fontFamily: "body",
578
+ w: "full"
579
+ },
580
+ frame: {
581
+ display: "flex",
582
+ flexDirection: "column",
583
+ gap: "3",
584
+ w: "full"
585
+ },
586
+ header: {
587
+ display: "grid",
588
+ gridTemplateColumns: "1fr auto 1fr",
589
+ alignItems: "center",
590
+ gap: "3"
591
+ },
592
+ headerSlotStart: {
593
+ display: "flex",
594
+ justifyContent: "flex-start",
595
+ alignItems: "center",
596
+ gap: "2"
597
+ },
598
+ headerSlotCenter: {
599
+ display: "flex",
600
+ justifyContent: "center",
601
+ alignItems: "center",
602
+ gap: "2",
603
+ textAlign: "center"
604
+ },
605
+ headerSlotEnd: {
606
+ display: "flex",
607
+ justifyContent: "flex-end",
608
+ alignItems: "center",
609
+ gap: "2"
610
+ },
611
+ headerTitleContent: {
612
+ display: "inline-flex",
613
+ alignItems: "center",
614
+ gap: "2"
615
+ },
616
+ headerTitleSpinner: {
617
+ marginInlineStart: "4px",
618
+ marginBlockStart: "4px"
619
+ },
620
+ surface: {
621
+ borderWidth: "default",
622
+ borderStyle: "solid",
623
+ borderColor: "border",
624
+ borderRadius: "md",
625
+ overflow: "hidden",
626
+ bg: "bg"
627
+ }
628
+ }
629
+ });
630
+ var scheduleClasses = scheduleRecipe();
631
+ var categoryFallback = { label: "Event", color: "blue" };
632
+ var currentTimeIndicator = chunkJRBQKFVO_cjs.cva({
633
+ base: {
634
+ h: "0.5",
635
+ bg: "surface.orange.accent",
636
+ borderRadius: "full",
637
+ pointerEvents: "none",
638
+ _before: {
639
+ content: '""',
640
+ position: "absolute",
641
+ insetInlineStart: "-6px",
642
+ top: "50%",
643
+ w: "2.5",
644
+ h: "2.5",
645
+ borderRadius: "full",
646
+ bg: "surface.orange.accent",
647
+ transform: "translateY(-50%)"
648
+ }
649
+ },
650
+ variants: {
651
+ layout: {
652
+ list: {
653
+ position: "relative"
654
+ },
655
+ timeGrid: {
656
+ position: "absolute",
657
+ insetInline: "0",
658
+ transform: "translateY(2px)",
659
+ zIndex: "20"
660
+ }
661
+ }
662
+ }
663
+ });
664
+ function ScheduleCurrentTimeIndicator({
665
+ layout,
666
+ testId,
667
+ style
668
+ }) {
669
+ return /* @__PURE__ */ jsxRuntime.jsx(
670
+ "div",
671
+ {
672
+ "aria-hidden": "true",
673
+ className: currentTimeIndicator({ layout }),
674
+ "data-testid": testId,
675
+ style
676
+ }
677
+ );
678
+ }
679
+ function createCategoryMap(categories) {
680
+ const categoryMap = /* @__PURE__ */ new Map();
681
+ categories.forEach((category) => {
682
+ if (!categoryMap.has(category.label)) {
683
+ categoryMap.set(category.label, category);
684
+ }
685
+ });
686
+ return categoryMap;
687
+ }
688
+ function getCategory(categoryMap, event) {
689
+ return (event.category == null ? void 0 : categoryMap.get(event.category)) ?? (event.category != null ? { label: event.category, color: categoryFallback.color } : categoryFallback);
690
+ }
691
+ function formatDate(date) {
692
+ return chunkJK4YAQ2N_cjs.plainDateFormat(date, chunkJK4YAQ2N_cjs.DATE_FORMAT_WITH_WEEKDAY);
693
+ }
694
+ function formatMonthTitle(date) {
695
+ return chunkJK4YAQ2N_cjs.plainDateFormat(date, chunkJK4YAQ2N_cjs.DATE_FORMAT_MONTH_YEAR);
696
+ }
697
+ function formatWeekTitle(start, end) {
698
+ if (start.year === end.year && start.month === end.month) {
699
+ return formatMonthTitle(start);
700
+ }
701
+ const startMonth = chunkJK4YAQ2N_cjs.plainDateFormat(start, { month: "long" });
702
+ const endMonth = chunkJK4YAQ2N_cjs.plainDateFormat(end, { month: "long" });
703
+ return start.year === end.year ? `${startMonth} - ${endMonth} ${end.year}` : `${startMonth} ${start.year} - ${endMonth} ${end.year}`;
704
+ }
705
+ function formatListRangeTitle(start, end) {
706
+ return chunkJK4YAQ2N_cjs.plainDateIsEqual(start, end) ? formatDate(start) : formatWeekTitle(start, end);
707
+ }
708
+ function formatTime(instant, timezoneID) {
709
+ return polyfill.Temporal.Instant.fromEpochMilliseconds(instant).toZonedDateTimeISO(timezoneID).toLocaleString(void 0, {
710
+ hour: "numeric",
711
+ minute: "2-digit"
712
+ });
713
+ }
714
+ function formatTimezoneAbbreviation(date, timezoneID) {
715
+ const formatter = new Intl.DateTimeFormat(void 0, {
716
+ timeZone: timezoneID,
717
+ timeZoneName: "short"
718
+ });
719
+ const parts = formatter.formatToParts(
720
+ date.toZonedDateTime(timezoneID).epochMilliseconds
721
+ );
722
+ return parts.find((part) => part.type === "timeZoneName")?.value ?? timezoneID;
723
+ }
724
+ function formatHour(hour) {
725
+ return polyfill.Temporal.PlainTime.from({ hour }).toLocaleString(void 0, {
726
+ hour: "numeric"
727
+ });
728
+ }
729
+ function getEventTimeLabel(event, timezoneID) {
730
+ if (isDayEvent(event)) {
731
+ return "all day";
732
+ }
733
+ return `${formatTime(event.start, timezoneID)} - ${formatTime(event.end, timezoneID)}`;
734
+ }
735
+ function getEventStartTimeLabel(event, timezoneID) {
736
+ return isDayEvent(event) ? null : formatTime(event.start, timezoneID);
737
+ }
738
+ function getEventAccessibleLabel(event, categoryMap, timezoneID) {
739
+ const category = getCategory(categoryMap, event);
740
+ return `${event.title}, ${category.label}, ${getEventTimeLabel(event, timezoneID)}`;
741
+ }
742
+ function getMinutesSinceStartOfDay(instant, timezoneID) {
743
+ const zonedTime = polyfill.Temporal.Instant.fromEpochMilliseconds(instant).toZonedDateTimeISO(timezoneID).toPlainTime();
744
+ return zonedTime.hour * 60 + zonedTime.minute;
745
+ }
746
+ function isEventInPast(event, currentTime2, timezoneID) {
747
+ if (isDayEvent(event)) {
748
+ return chunkJK4YAQ2N_cjs.plainDateIsBefore(
749
+ event.end,
750
+ chunkJK4YAQ2N_cjs.plainDateFromInstant(currentTime2, timezoneID)
751
+ );
752
+ }
753
+ return event.end <= currentTime2;
754
+ }
755
+ function hasEventPopoverPlugin(plugins) {
756
+ return plugins.some((plugin) => plugin.renderEventPopover != null);
757
+ }
758
+ function useScheduleEventPopover(event, { placement = "end" } = {}) {
759
+ const { categoryMap, plugins, timezoneID } = useScheduleContext();
760
+ const popover = chunkRAMDISDK_cjs.usePopover({
761
+ // Content renders its own close affordance via the `controls.close` passed
762
+ // to renderEventPopover, so suppress the built-in close button.
763
+ hasCloseButton: false,
764
+ label: getEventAccessibleLabel(event, categoryMap, timezoneID),
765
+ role: "dialog"
766
+ });
767
+ const { hide } = popover;
768
+ const controls = react.useMemo(
769
+ () => ({ close: hide }),
770
+ [hide]
771
+ );
772
+ const content = react.useMemo(() => {
773
+ for (const plugin of plugins) {
774
+ const node = plugin.renderEventPopover?.(event, controls);
775
+ if (chunkQAO6QMNQ_cjs.isReactNode(node)) {
776
+ return node;
777
+ }
778
+ }
779
+ return null;
780
+ }, [controls, event, plugins]);
781
+ if (!chunkQAO6QMNQ_cjs.isReactNode(content)) {
782
+ return {};
783
+ }
784
+ return {
785
+ popover: popover.render(content, {
786
+ alignment: "start",
787
+ offsetX: 8,
788
+ offsetY: -3,
789
+ placement
790
+ }),
791
+ triggerProps: {
792
+ ...popover.triggerProps,
793
+ onClick: popover.toggle,
794
+ ref: popover.triggerRef
795
+ }
796
+ };
797
+ }
798
+ function useScheduleEventPluginProps({
799
+ event,
800
+ layout
801
+ }) {
802
+ const { plugins, timezoneID } = useScheduleContext();
803
+ return react.useMemo(() => {
804
+ let props;
805
+ plugins.forEach((plugin) => {
806
+ const pluginProps = plugin.getEventProps?.({ event, layout, timezoneID });
807
+ if (pluginProps != null) {
808
+ props = { ...props, ...pluginProps };
809
+ }
810
+ });
811
+ return props;
812
+ }, [event, layout, plugins, timezoneID]);
813
+ }
814
+ function EventPillRoot({
815
+ children,
816
+ className,
817
+ dataState,
818
+ dataTestId,
819
+ pluginProps,
820
+ triggerProps
821
+ }) {
822
+ if (triggerProps != null) {
823
+ return /* @__PURE__ */ jsxRuntime.jsx(
824
+ "button",
825
+ {
826
+ className,
827
+ "data-state": dataState,
828
+ "data-testid": dataTestId,
829
+ ...pluginProps,
830
+ type: "button",
831
+ ...triggerProps,
832
+ children
833
+ }
834
+ );
835
+ }
836
+ return /* @__PURE__ */ jsxRuntime.jsx(
837
+ "span",
838
+ {
839
+ className,
840
+ "data-state": dataState,
841
+ "data-testid": dataTestId,
842
+ ...pluginProps,
843
+ children
844
+ }
845
+ );
846
+ }
847
+ function CalendarEventPill({
848
+ event,
849
+ isFullWidth = false,
850
+ isPast = false
851
+ }) {
852
+ const { categoryMap, timezoneID } = useScheduleContext();
853
+ const { popover, triggerProps } = useScheduleEventPopover(event);
854
+ const pluginProps = useScheduleEventPluginProps({ event, layout: "inline" });
855
+ const category = getCategory(categoryMap, event);
856
+ const classes = scheduleEventRecipe({
857
+ color: category.color,
858
+ isFullWidth,
859
+ isPast,
860
+ isInteractive: triggerProps != null
861
+ });
862
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
863
+ /* @__PURE__ */ jsxRuntime.jsx(
864
+ EventPillRoot,
865
+ {
866
+ className: classes.event,
867
+ dataState: isPast ? "past" : void 0,
868
+ dataTestId: `schedule-event-${event.id}`,
869
+ pluginProps,
870
+ triggerProps,
871
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.title, children: isDayEvent(event) ? event.title : getEventAccessibleLabel(event, categoryMap, timezoneID) })
872
+ }
873
+ ),
874
+ popover
875
+ ] });
876
+ }
877
+ function CalendarMonthEventPill({
878
+ event,
879
+ isPast = false
880
+ }) {
881
+ const { categoryMap, timezoneID } = useScheduleContext();
882
+ const { popover, triggerProps } = useScheduleEventPopover(event);
883
+ const pluginProps = useScheduleEventPluginProps({ event, layout: "month" });
884
+ const category = getCategory(categoryMap, event);
885
+ const startTimeLabel = getEventStartTimeLabel(event, timezoneID);
886
+ const classes = scheduleEventRecipe({
887
+ color: category.color,
888
+ isPast,
889
+ isFullWidth: true,
890
+ isInteractive: triggerProps != null
891
+ });
892
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
893
+ /* @__PURE__ */ jsxRuntime.jsxs(
894
+ EventPillRoot,
895
+ {
896
+ className: classes.event,
897
+ dataState: isPast ? "past" : void 0,
898
+ dataTestId: `schedule-event-${event.id}`,
899
+ pluginProps,
900
+ triggerProps,
901
+ children: [
902
+ startTimeLabel != null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.time, children: startTimeLabel }) : null,
903
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.title, children: event.title })
904
+ ]
905
+ }
906
+ ),
907
+ popover
908
+ ] });
909
+ }
910
+ function ScheduleEventOverflowPopover({
911
+ buttonClassName,
912
+ contentClassName,
913
+ events,
914
+ eventsClassName,
915
+ hiddenEventCount,
916
+ label,
917
+ renderEvent,
918
+ testId,
919
+ title
920
+ }) {
921
+ return /* @__PURE__ */ jsxRuntime.jsx(
922
+ chunkRAMDISDK_cjs.Popover,
923
+ {
924
+ content: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: contentClassName, children: [
925
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Heading, { level: 4, children: title }),
926
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: eventsClassName, children: events.map((event) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: renderEvent(event) }, event.id)) })
927
+ ] }),
928
+ "data-testid": testId,
929
+ label,
930
+ width: 320,
931
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
932
+ chunk5K3C3INR_cjs.Link,
933
+ {
934
+ className: buttonClassName,
935
+ color: "primary",
936
+ label,
937
+ size: "xs",
938
+ weight: "medium",
939
+ children: [
940
+ "+",
941
+ hiddenEventCount,
942
+ " more"
943
+ ]
944
+ }
945
+ )
946
+ }
947
+ );
948
+ }
949
+ function ScheduleFrame({
950
+ children,
951
+ title,
952
+ titleLabel
953
+ }) {
954
+ const { isLoading, plugins } = useScheduleContext();
955
+ const initialHeader = {
956
+ startContent: null,
957
+ centerContent: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: scheduleClasses.headerTitleContent, children: [
958
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Heading, { level: 2, children: title }),
959
+ isLoading ? /* @__PURE__ */ jsxRuntime.jsx(
960
+ chunkGU65FGY6_cjs.Spinner,
961
+ {
962
+ "aria-label": "Loading events",
963
+ className: scheduleClasses.headerTitleSpinner,
964
+ size: "sm"
965
+ }
966
+ ) : null
967
+ ] }),
968
+ endContent: null
969
+ };
970
+ const header = plugins.reduce(
971
+ (content, plugin) => plugin.renderHeader?.(
972
+ content.startContent,
973
+ content.centerContent,
974
+ content.endContent
975
+ ) ?? content,
976
+ initialHeader
977
+ );
978
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": titleLabel, className: scheduleClasses.frame, children: [
979
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: scheduleClasses.header, children: [
980
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: scheduleClasses.headerSlotStart, children: header.startContent }),
981
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: scheduleClasses.headerSlotCenter, children: header.centerContent }),
982
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: scheduleClasses.headerSlotEnd, children: header.endContent })
983
+ ] }),
984
+ children
985
+ ] });
986
+ }
987
+ var UPDATE_INTERVAL_MS = 60 * 1e3;
988
+ var listeners = /* @__PURE__ */ new Set();
989
+ var interval = null;
990
+ var currentTime = getCurrentTime();
991
+ function getCurrentTime() {
992
+ return polyfill.Temporal.Now.instant().epochMilliseconds;
993
+ }
994
+ function getSnapshot() {
995
+ return currentTime;
996
+ }
997
+ function getServerSnapshot() {
998
+ return 0;
999
+ }
1000
+ function subscribe(listener) {
1001
+ listeners.add(listener);
1002
+ currentTime = getCurrentTime();
1003
+ listener();
1004
+ interval ?? (interval = setInterval(() => {
1005
+ currentTime = getCurrentTime();
1006
+ listeners.forEach((activeListener) => activeListener());
1007
+ }, UPDATE_INTERVAL_MS));
1008
+ return () => {
1009
+ listeners.delete(listener);
1010
+ if (listeners.size === 0 && interval != null) {
1011
+ clearInterval(interval);
1012
+ interval = null;
1013
+ }
1014
+ };
1015
+ }
1016
+ function useCurrentTime() {
1017
+ return react.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
1018
+ }
1019
+ var styles = scheduleTimeGridViewRecipe();
1020
+ function eventOverlapsHour(event, day, hour, timezoneID) {
1021
+ if (isDayEvent(event)) {
1022
+ return false;
1023
+ }
1024
+ if (!eventOccursOnDate(event, day, timezoneID)) {
1025
+ return false;
1026
+ }
1027
+ const hourStart = day.toPlainDateTime(polyfill.Temporal.PlainTime.from({ hour })).toZonedDateTime(timezoneID).epochMilliseconds;
1028
+ const hourEnd = hour === 23 ? day.add({ days: 1 }).toZonedDateTime(timezoneID).epochMilliseconds : day.toPlainDateTime(polyfill.Temporal.PlainTime.from({ hour: hour + 1 })).toZonedDateTime(timezoneID).epochMilliseconds;
1029
+ return event.start < hourEnd && event.end > hourStart;
1030
+ }
1031
+ function eventSpansPastDay(event, day, timezoneID) {
1032
+ return !chunkJK4YAQ2N_cjs.plainDateIsEqual(
1033
+ chunkJK4YAQ2N_cjs.plainDateFromInstant(Math.max(event.end - 1, event.start), timezoneID),
1034
+ day
1035
+ );
1036
+ }
1037
+ function getAvailableTimedEventLevel(levelEndMinutes, visibleStart) {
1038
+ const level = levelEndMinutes.findIndex(
1039
+ (endMinute) => visibleStart >= endMinute
1040
+ );
1041
+ return level >= 0 ? level : levelEndMinutes.length;
1042
+ }
1043
+ function getTimedEventLayouts({
1044
+ day,
1045
+ events,
1046
+ hourHeight,
1047
+ maxHour,
1048
+ minHour,
1049
+ timezoneID
1050
+ }) {
1051
+ const levelEndMinutes = [];
1052
+ const minMinute = minHour * 60;
1053
+ const maxMinute = maxHour * 60;
1054
+ return events.map((event) => {
1055
+ const startDate = chunkJK4YAQ2N_cjs.plainDateFromInstant(event.start, timezoneID);
1056
+ const rawStart = chunkJK4YAQ2N_cjs.plainDateIsBefore(startDate, day) ? 0 : getMinutesSinceStartOfDay(event.start, timezoneID);
1057
+ const rawEnd = eventSpansPastDay(event, day, timezoneID) ? 24 * 60 : getMinutesSinceStartOfDay(event.end, timezoneID);
1058
+ if (rawEnd <= minMinute || rawStart >= maxMinute) {
1059
+ return null;
1060
+ }
1061
+ const visibleStart = Math.max(rawStart, minMinute);
1062
+ const visibleEnd = Math.min(
1063
+ maxMinute,
1064
+ Math.max(visibleStart + 15, rawEnd)
1065
+ );
1066
+ return { event, visibleEnd, visibleStart };
1067
+ }).filter(
1068
+ (layout) => layout != null && layout.visibleEnd > layout.visibleStart
1069
+ ).sort((a, b) => {
1070
+ if (a.visibleStart !== b.visibleStart) {
1071
+ return a.visibleStart - b.visibleStart;
1072
+ }
1073
+ return a.visibleEnd - b.visibleEnd || a.event.title.localeCompare(b.event.title);
1074
+ }).map(({ event, visibleEnd, visibleStart }) => {
1075
+ const level = getAvailableTimedEventLevel(levelEndMinutes, visibleStart);
1076
+ levelEndMinutes[level] = visibleEnd;
1077
+ const startHour = Math.floor(visibleStart / 60);
1078
+ return {
1079
+ event,
1080
+ height: (visibleEnd - visibleStart) / 60 * hourHeight,
1081
+ level,
1082
+ startHour,
1083
+ top: (visibleStart - startHour * 60) / 60 * hourHeight
1084
+ };
1085
+ });
1086
+ }
1087
+ function getTimedEventStyle({
1088
+ height,
1089
+ level,
1090
+ top
1091
+ }) {
1092
+ return {
1093
+ height: `${Math.max(36, height - 5)}px`,
1094
+ insetInlineEnd: "2px",
1095
+ insetInlineStart: level === 0 ? "2px" : `calc(2px + ${level * 8}%)`,
1096
+ top: `${top + 2}px`,
1097
+ zIndex: level + 1
1098
+ };
1099
+ }
1100
+ function TimeGridEvent({
1101
+ currentTime: currentTime2,
1102
+ hourHeight,
1103
+ layout,
1104
+ maxHour,
1105
+ minHour
1106
+ }) {
1107
+ const { categoryMap, plugins, timezoneID } = useScheduleContext();
1108
+ const { event } = layout;
1109
+ const { popover, triggerProps } = useScheduleEventPopover(event);
1110
+ const eventPluginProps = useScheduleEventPluginProps({
1111
+ event,
1112
+ layout: "timeGrid"
1113
+ });
1114
+ const pluginEndContent = react.useMemo(
1115
+ () => plugins.map(
1116
+ (plugin) => plugin.renderTimeGridEventContent?.({
1117
+ event,
1118
+ hourHeight,
1119
+ maxHour,
1120
+ minHour,
1121
+ timezoneID
1122
+ })
1123
+ ).filter(chunkQAO6QMNQ_cjs.isReactNode),
1124
+ [event, hourHeight, maxHour, minHour, plugins, timezoneID]
1125
+ );
1126
+ const category = getCategory(categoryMap, event);
1127
+ const isPast = isEventInPast(event, currentTime2, timezoneID);
1128
+ const classes = scheduleEventRecipe({
1129
+ layout: "block",
1130
+ color: category.color,
1131
+ isPast,
1132
+ isInteractive: triggerProps != null
1133
+ });
1134
+ const style = getTimedEventStyle(layout);
1135
+ const body = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1136
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.title, children: event.title }),
1137
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.time, children: getEventTimeLabel(event, timezoneID) }),
1138
+ pluginEndContent
1139
+ ] });
1140
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1141
+ triggerProps != null ? /* @__PURE__ */ jsxRuntime.jsx(
1142
+ "button",
1143
+ {
1144
+ className: classes.event,
1145
+ "data-state": isPast ? "past" : void 0,
1146
+ "data-testid": `schedule-event-${event.id}`,
1147
+ style,
1148
+ type: "button",
1149
+ ...eventPluginProps,
1150
+ ...triggerProps,
1151
+ children: body
1152
+ }
1153
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
1154
+ "div",
1155
+ {
1156
+ className: classes.event,
1157
+ "data-state": isPast ? "past" : void 0,
1158
+ "data-testid": `schedule-event-${event.id}`,
1159
+ ...eventPluginProps,
1160
+ style,
1161
+ children: body
1162
+ }
1163
+ ),
1164
+ popover
1165
+ ] });
1166
+ }
1167
+ function getCellName({
1168
+ categoryMap,
1169
+ date,
1170
+ events,
1171
+ hourLabel,
1172
+ timezoneID
1173
+ }) {
1174
+ const dateLabel = chunkJK4YAQ2N_cjs.plainDateFormat(date, chunkJK4YAQ2N_cjs.DATE_FORMAT_WITH_WEEKDAY);
1175
+ const eventLabels = events.map(
1176
+ (event) => getEventAccessibleLabel(event, categoryMap, timezoneID)
1177
+ );
1178
+ return eventLabels.length > 0 ? `${dateLabel} ${hourLabel}. ${eventLabels.join(". ")}` : `${dateLabel} ${hourLabel}`;
1179
+ }
1180
+ function TimeGridView({
1181
+ allDayEventLimit = 3,
1182
+ days,
1183
+ hourHeight = 100,
1184
+ maxHour = 24,
1185
+ minHour = 0
1186
+ }) {
1187
+ const { categoryMap, events, highlightDate, plugins, timezoneID } = useScheduleContext();
1188
+ const normalizedMinHour = Math.max(0, Math.min(23, Math.floor(minHour)));
1189
+ const normalizedMaxHour = Math.max(
1190
+ normalizedMinHour + 1,
1191
+ Math.min(24, Math.floor(maxHour))
1192
+ );
1193
+ const hours = Array.from(
1194
+ { length: normalizedMaxHour - normalizedMinHour },
1195
+ (_, index) => normalizedMinHour + index
1196
+ );
1197
+ const currentTime2 = useCurrentTime();
1198
+ const highlightPlainDate = highlightDate.toPlainDate();
1199
+ const timezoneLabel = formatTimezoneAbbreviation(
1200
+ days[0] ?? highlightPlainDate,
1201
+ timezoneID
1202
+ );
1203
+ const gridStyle = {
1204
+ "--schedule-day-count": String(days.length)
1205
+ };
1206
+ const normalizedHourHeight = Math.max(1, Math.floor(hourHeight));
1207
+ const normalizedAllDayEventLimit = Number.isFinite(allDayEventLimit) ? Math.max(0, Math.floor(allDayEventLimit)) : 3;
1208
+ const hourStyle = {
1209
+ height: normalizedHourHeight,
1210
+ minHeight: normalizedHourHeight
1211
+ };
1212
+ const timedEventLayoutsByDay = days.map(
1213
+ (day) => getTimedEventLayouts({
1214
+ day,
1215
+ events: events.filter(
1216
+ (event) => !isDayEvent(event) && eventOccursOnDate(event, day, timezoneID)
1217
+ ),
1218
+ hourHeight: normalizedHourHeight,
1219
+ maxHour: normalizedMaxHour,
1220
+ minHour: normalizedMinHour,
1221
+ timezoneID
1222
+ })
1223
+ );
1224
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1225
+ "div",
1226
+ {
1227
+ "aria-label": "Schedule time grid",
1228
+ "aria-readonly": "true",
1229
+ className: chunkSPDVNY2Z_cjs.cx(scheduleClasses.surface, styles.grid),
1230
+ role: "grid",
1231
+ style: gridStyle,
1232
+ children: [
1233
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.rowContents, role: "row", children: [
1234
+ /* @__PURE__ */ jsxRuntime.jsx(
1235
+ "div",
1236
+ {
1237
+ "aria-colindex": 1,
1238
+ "aria-label": "Time",
1239
+ className: styles.corner,
1240
+ role: "columnheader"
1241
+ }
1242
+ ),
1243
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.header, children: days.map((day, index) => {
1244
+ const isCurrentDay = chunkJK4YAQ2N_cjs.plainDateIsEqual(day, highlightPlainDate);
1245
+ const dayHeaderClasses = scheduleTimeGridViewRecipe({
1246
+ isCurrentDay,
1247
+ isLastColumn: index === days.length - 1
1248
+ });
1249
+ return /* @__PURE__ */ jsxRuntime.jsx(
1250
+ "div",
1251
+ {
1252
+ "aria-colindex": index + 2,
1253
+ "aria-current": isCurrentDay ? "date" : void 0,
1254
+ "aria-label": chunkJK4YAQ2N_cjs.plainDateFormat(day, chunkJK4YAQ2N_cjs.DATE_FORMAT_WITH_WEEKDAY),
1255
+ className: dayHeaderClasses.dayHeader,
1256
+ role: "columnheader",
1257
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1258
+ chunkMHAXS4GO_cjs.Heading,
1259
+ {
1260
+ "aria-hidden": "true",
1261
+ color: "secondary",
1262
+ level: 4,
1263
+ textWrap: "nowrap",
1264
+ children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles.dayHeaderContent, children: [
1265
+ chunkJK4YAQ2N_cjs.plainDateFormat(day, { weekday: "short" }),
1266
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: dayHeaderClasses.dayHeaderDayNumber, children: day.day })
1267
+ ] })
1268
+ }
1269
+ )
1270
+ },
1271
+ day.toString()
1272
+ );
1273
+ }) })
1274
+ ] }),
1275
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.rowContents, role: "row", children: [
1276
+ /* @__PURE__ */ jsxRuntime.jsx(
1277
+ "div",
1278
+ {
1279
+ "aria-colindex": 1,
1280
+ "aria-label": `${timezoneLabel} all day`,
1281
+ className: styles.allDayLabel,
1282
+ role: "rowheader",
1283
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Text, { color: "secondary", type: "supporting", weight: "bold", children: timezoneLabel })
1284
+ }
1285
+ ),
1286
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.allDayRow, children: days.map((day, index) => {
1287
+ const dayEvents = events.filter(
1288
+ (event) => isDayEvent(event) && eventOccursOnDate(event, day, timezoneID)
1289
+ );
1290
+ const visibleDayEvents = dayEvents.slice(
1291
+ 0,
1292
+ normalizedAllDayEventLimit
1293
+ );
1294
+ const hiddenDayEvents = dayEvents.slice(normalizedAllDayEventLimit);
1295
+ const dayCellClasses = scheduleTimeGridViewRecipe({
1296
+ isLastColumn: index === days.length - 1
1297
+ });
1298
+ const dateLabel = chunkJK4YAQ2N_cjs.plainDateFormat(day, chunkJK4YAQ2N_cjs.DATE_FORMAT_WITH_WEEKDAY);
1299
+ const seeMoreLabel = `Show ${hiddenDayEvents.length} more all-day events for ${dateLabel}`;
1300
+ return /* @__PURE__ */ jsxRuntime.jsx(
1301
+ "div",
1302
+ {
1303
+ "aria-colindex": index + 2,
1304
+ "aria-label": getCellName({
1305
+ categoryMap,
1306
+ date: day,
1307
+ events: dayEvents,
1308
+ hourLabel: "all day",
1309
+ timezoneID
1310
+ }),
1311
+ className: dayCellClasses.dayCell,
1312
+ role: "gridcell",
1313
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.allDayEvents, children: [
1314
+ visibleDayEvents.map((event) => /* @__PURE__ */ jsxRuntime.jsx(
1315
+ CalendarEventPill,
1316
+ {
1317
+ event,
1318
+ isPast: isEventInPast(event, currentTime2, timezoneID)
1319
+ },
1320
+ event.id
1321
+ )),
1322
+ hiddenDayEvents.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
1323
+ ScheduleEventOverflowPopover,
1324
+ {
1325
+ buttonClassName: styles.allDaySeeMoreButton,
1326
+ contentClassName: styles.allDayPopoverContent,
1327
+ events: dayEvents,
1328
+ eventsClassName: styles.allDayPopoverEvents,
1329
+ hiddenEventCount: hiddenDayEvents.length,
1330
+ label: seeMoreLabel,
1331
+ renderEvent: (event) => /* @__PURE__ */ jsxRuntime.jsx(
1332
+ CalendarEventPill,
1333
+ {
1334
+ event,
1335
+ isFullWidth: true,
1336
+ isPast: isEventInPast(event, currentTime2, timezoneID)
1337
+ }
1338
+ ),
1339
+ testId: `schedule-all-day-see-more-${day.toString()}`,
1340
+ title: dateLabel
1341
+ }
1342
+ ) : null
1343
+ ] })
1344
+ },
1345
+ `${day.toString()}-all-day`
1346
+ );
1347
+ }) })
1348
+ ] }),
1349
+ hours.map((hour) => {
1350
+ const hourLabel = formatHour(hour);
1351
+ const isLastHour = hour === hours[hours.length - 1];
1352
+ const timeLabelClasses = scheduleTimeGridViewRecipe({
1353
+ isLastRow: isLastHour
1354
+ });
1355
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.rowContents, role: "row", children: [
1356
+ /* @__PURE__ */ jsxRuntime.jsx(
1357
+ "div",
1358
+ {
1359
+ "aria-colindex": 1,
1360
+ className: timeLabelClasses.timeLabel,
1361
+ role: "rowheader",
1362
+ style: hourStyle,
1363
+ children: hourLabel
1364
+ }
1365
+ ),
1366
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.timeRow, children: days.map((day, index) => {
1367
+ const hourEvents = events.filter(
1368
+ (event) => eventOverlapsHour(event, day, hour, timezoneID)
1369
+ );
1370
+ const visibleTimedEventLayouts = timedEventLayoutsByDay[index].filter((layout) => layout.startHour === hour);
1371
+ const currentTimeTop = getCurrentTimeTopForHour({
1372
+ currentTime: currentTime2,
1373
+ day,
1374
+ hour,
1375
+ maxHour: normalizedMaxHour,
1376
+ minHour: normalizedMinHour,
1377
+ timezoneID
1378
+ });
1379
+ const hourCellClasses = scheduleTimeGridViewRecipe({
1380
+ isLastColumn: index === days.length - 1,
1381
+ isLastRow: isLastHour
1382
+ });
1383
+ const hourCellPluginProps = plugins.reduce(
1384
+ (props, plugin) => ({
1385
+ ...props,
1386
+ ...plugin.getTimeGridCellProps?.({
1387
+ date: day,
1388
+ hour,
1389
+ hourHeight: normalizedHourHeight,
1390
+ maxHour: normalizedMaxHour,
1391
+ minHour: normalizedMinHour,
1392
+ timezoneID
1393
+ })
1394
+ }),
1395
+ {}
1396
+ );
1397
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1398
+ "div",
1399
+ {
1400
+ "aria-colindex": index + 2,
1401
+ "aria-label": getCellName({
1402
+ categoryMap,
1403
+ date: day,
1404
+ events: hourEvents,
1405
+ hourLabel,
1406
+ timezoneID
1407
+ }),
1408
+ className: hourCellClasses.hourCell,
1409
+ "data-testid": `schedule-time-grid-cell-${day.toString()}-${hour}`,
1410
+ role: "gridcell",
1411
+ style: hourStyle,
1412
+ ...hourCellPluginProps,
1413
+ children: [
1414
+ currentTimeTop != null ? /* @__PURE__ */ jsxRuntime.jsx(
1415
+ ScheduleCurrentTimeIndicator,
1416
+ {
1417
+ layout: "timeGrid",
1418
+ style: { top: `${currentTimeTop}%` },
1419
+ testId: "schedule-current-time-line"
1420
+ }
1421
+ ) : null,
1422
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.events, children: visibleTimedEventLayouts.map((layout) => /* @__PURE__ */ jsxRuntime.jsx(
1423
+ TimeGridEvent,
1424
+ {
1425
+ currentTime: currentTime2,
1426
+ hourHeight: normalizedHourHeight,
1427
+ layout,
1428
+ maxHour: normalizedMaxHour,
1429
+ minHour: normalizedMinHour
1430
+ },
1431
+ layout.event.id
1432
+ )) })
1433
+ ]
1434
+ },
1435
+ `${day.toString()}-${hour}`
1436
+ );
1437
+ }) })
1438
+ ] }, hour);
1439
+ })
1440
+ ]
1441
+ }
1442
+ );
1443
+ }
1444
+ function getCurrentTimeTopForHour({
1445
+ currentTime: currentTime2,
1446
+ day,
1447
+ hour,
1448
+ maxHour,
1449
+ minHour,
1450
+ timezoneID
1451
+ }) {
1452
+ if (!chunkJK4YAQ2N_cjs.plainDateIsEqual(day, chunkJK4YAQ2N_cjs.plainDateFromInstant(currentTime2, timezoneID))) {
1453
+ return null;
1454
+ }
1455
+ const currentMinute = getMinutesSinceStartOfDay(currentTime2, timezoneID);
1456
+ const minMinute = minHour * 60;
1457
+ const maxMinute = maxHour * 60;
1458
+ if (currentMinute < minMinute || currentMinute > maxMinute) {
1459
+ return null;
1460
+ }
1461
+ if (currentMinute === maxMinute) {
1462
+ return hour === maxHour - 1 ? 100 : null;
1463
+ }
1464
+ if (Math.floor(currentMinute / 60) !== hour) {
1465
+ return null;
1466
+ }
1467
+ return currentMinute % 60 / 60 * 100;
1468
+ }
1469
+
1470
+ // src/components/Schedule/scheduleZonedInstant.ts
1471
+ function createScheduleZonedInstant(date, timezoneID) {
1472
+ return scheduleZonedInstantFromInstant(date, timezoneID);
1473
+ }
1474
+ function scheduleZonedInstantFromInstant(instant, timezoneID) {
1475
+ return {
1476
+ addDays: (days) => {
1477
+ const date = chunkJK4YAQ2N_cjs.plainDateFromInstant(instant, timezoneID).add({ days });
1478
+ return scheduleZonedInstantFromInstant(
1479
+ chunkJK4YAQ2N_cjs.plainDateToInstant(date, timezoneID),
1480
+ timezoneID
1481
+ );
1482
+ },
1483
+ instant,
1484
+ startOfDay: () => {
1485
+ const date = chunkJK4YAQ2N_cjs.plainDateFromInstant(instant, timezoneID);
1486
+ return scheduleZonedInstantFromInstant(
1487
+ chunkJK4YAQ2N_cjs.plainDateToInstant(date, timezoneID),
1488
+ timezoneID
1489
+ );
1490
+ },
1491
+ timezoneID,
1492
+ toPlainDate: () => chunkJK4YAQ2N_cjs.plainDateFromInstant(instant, timezoneID)
1493
+ };
1494
+ }
1495
+ function scheduleRangeToScheduleZonedInstantRange(range, timezoneID) {
1496
+ return [
1497
+ scheduleZonedInstantFromInstant(range.start, timezoneID),
1498
+ scheduleZonedInstantFromInstant(range.end, timezoneID)
1499
+ ];
1500
+ }
1501
+ function ScheduleDayView({
1502
+ options
1503
+ }) {
1504
+ const { viewDate } = useScheduleContext();
1505
+ const day = viewDate.toPlainDate();
1506
+ return /* @__PURE__ */ jsxRuntime.jsx(ScheduleFrame, { title: formatMonthTitle(day), titleLabel: formatDate(day), children: /* @__PURE__ */ jsxRuntime.jsx(
1507
+ TimeGridView,
1508
+ {
1509
+ allDayEventLimit: options.allDayEventLimit,
1510
+ days: [day],
1511
+ hourHeight: options.hourHeight,
1512
+ maxHour: options.maxHour,
1513
+ minHour: options.minHour
1514
+ }
1515
+ ) });
1516
+ }
1517
+ function createScheduleDayView({
1518
+ allDayEventLimit = 3,
1519
+ hourHeight = 100,
1520
+ maxHour = 24,
1521
+ minHour = 0
1522
+ } = {}) {
1523
+ return {
1524
+ component: ScheduleDayView,
1525
+ getDateRange: (date) => scheduleRangeToScheduleZonedInstantRange(
1526
+ getScheduleRangeFromDates({
1527
+ endDate: date.toPlainDate().add({ days: 1 }),
1528
+ startDate: date.toPlainDate(),
1529
+ timezoneID: date.timezoneID
1530
+ }),
1531
+ date.timezoneID
1532
+ ),
1533
+ getNextDateRange: (date) => ({
1534
+ label: "Next day",
1535
+ range: [date.startOfDay().addDays(1), date.startOfDay().addDays(2)]
1536
+ }),
1537
+ getPreviousDateRange: (date) => ({
1538
+ label: "Previous day",
1539
+ range: [date.startOfDay().addDays(-1), date.startOfDay()]
1540
+ }),
1541
+ options: { allDayEventLimit, hourHeight, maxHour, minHour }
1542
+ };
1543
+ }
1544
+
1545
+ // src/components/Schedule/ListView.recipe.ts
1546
+ var scheduleListViewRecipe = chunkZ6RT3WPE_cjs.sva({
1547
+ slots: [
1548
+ "list",
1549
+ "day",
1550
+ "dayHeading",
1551
+ "dayWeekday",
1552
+ "dayNumber",
1553
+ "events",
1554
+ "eventRow",
1555
+ "eventContent",
1556
+ "eventTime"
1557
+ ],
1558
+ base: {
1559
+ list: {
1560
+ display: "flex",
1561
+ flexDirection: "column"
1562
+ },
1563
+ day: {
1564
+ display: "grid",
1565
+ gridTemplateColumns: "112px minmax(0, 1fr)",
1566
+ alignItems: "start",
1567
+ columnGap: "3",
1568
+ p: "3",
1569
+ borderBlockEndWidth: "default",
1570
+ borderBlockEndStyle: "solid",
1571
+ borderBlockEndColor: "border"
1572
+ },
1573
+ dayHeading: {
1574
+ m: 0,
1575
+ display: "inline-flex",
1576
+ alignItems: "center",
1577
+ justifyContent: "flex-start",
1578
+ gap: "2",
1579
+ color: "fg.muted",
1580
+ fontFamily: "body",
1581
+ fontSize: "lg",
1582
+ fontWeight: "semibold",
1583
+ lineHeight: "tight",
1584
+ whiteSpace: "nowrap"
1585
+ },
1586
+ dayWeekday: {
1587
+ display: "inline-block",
1588
+ fontSize: "lg"
1589
+ },
1590
+ dayNumber: {
1591
+ display: "inline-flex",
1592
+ flexShrink: 0,
1593
+ alignItems: "center",
1594
+ justifyContent: "center",
1595
+ w: "30px",
1596
+ h: "30px",
1597
+ borderRadius: "full",
1598
+ fontWeight: "bold"
1599
+ },
1600
+ events: {
1601
+ display: "flex",
1602
+ flexDirection: "column",
1603
+ gap: "2"
1604
+ },
1605
+ eventRow: {
1606
+ display: "grid",
1607
+ gridTemplateColumns: "160px minmax(0, 1fr)",
1608
+ alignItems: "center",
1609
+ gap: "3"
1610
+ },
1611
+ eventContent: {
1612
+ display: "flex",
1613
+ alignItems: "center",
1614
+ gap: "2",
1615
+ justifySelf: "start",
1616
+ minW: 0
1617
+ },
1618
+ eventTime: {
1619
+ whiteSpace: "nowrap"
1620
+ }
1621
+ },
1622
+ variants: {
1623
+ isHighlightedDay: {
1624
+ true: {
1625
+ dayNumber: {
1626
+ bg: "primary",
1627
+ color: "fg.onPrimary"
1628
+ }
1629
+ },
1630
+ false: {}
1631
+ },
1632
+ isLastDay: {
1633
+ true: {
1634
+ day: {
1635
+ borderBlockEndWidth: 0
1636
+ }
1637
+ },
1638
+ false: {}
1639
+ },
1640
+ isPastEvent: {
1641
+ true: {
1642
+ eventRow: {
1643
+ opacity: 0.64
1644
+ }
1645
+ },
1646
+ false: {}
1647
+ },
1648
+ isInteractiveEvent: {
1649
+ true: {
1650
+ eventContent: {
1651
+ appearance: "none",
1652
+ bg: "none",
1653
+ borderWidth: 0,
1654
+ p: 0,
1655
+ m: 0,
1656
+ font: "inherit",
1657
+ textAlign: "inherit",
1658
+ color: "inherit",
1659
+ cursor: "pointer",
1660
+ borderRadius: "sm",
1661
+ _focusVisible: {
1662
+ outlineWidth: "focus",
1663
+ outlineStyle: "solid",
1664
+ outlineColor: "primary"
1665
+ }
1666
+ }
1667
+ },
1668
+ false: {}
1669
+ }
1670
+ },
1671
+ defaultVariants: {
1672
+ isHighlightedDay: false,
1673
+ isLastDay: false,
1674
+ isPastEvent: false,
1675
+ isInteractiveEvent: false
1676
+ }
1677
+ });
1678
+ var styles2 = scheduleListViewRecipe();
1679
+ function ListEvent({
1680
+ event,
1681
+ isPast
1682
+ }) {
1683
+ const { categoryMap, timezoneID } = useScheduleContext();
1684
+ const { popover, triggerProps } = useScheduleEventPopover(event, {
1685
+ placement: "end"
1686
+ });
1687
+ const category = getCategory(categoryMap, event);
1688
+ const eventDataState = isPast ? "past" : void 0;
1689
+ const classes = scheduleListViewRecipe({
1690
+ isInteractiveEvent: triggerProps != null,
1691
+ isPastEvent: isPast
1692
+ });
1693
+ const eventContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1694
+ /* @__PURE__ */ jsxRuntime.jsx(chunkGJZAGTPV_cjs.Tooltip, { content: category.label, hoverIndication: "never", children: /* @__PURE__ */ jsxRuntime.jsx(
1695
+ "span",
1696
+ {
1697
+ "aria-label": category.label,
1698
+ className: scheduleEventRecipe({ color: category.color }).dot,
1699
+ role: "img"
1700
+ }
1701
+ ) }),
1702
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Text, { children: event.title })
1703
+ ] });
1704
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.eventRow, "data-state": eventDataState, children: [
1705
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Text, { className: classes.eventTime, color: "secondary", type: "supporting", children: isDayEvent(event) ? "All day" : getEventTimeLabel(event, timezoneID) }),
1706
+ triggerProps != null ? /* @__PURE__ */ jsxRuntime.jsx(
1707
+ "button",
1708
+ {
1709
+ className: classes.eventContent,
1710
+ "data-state": eventDataState,
1711
+ "data-testid": `schedule-event-${event.id}`,
1712
+ type: "button",
1713
+ ...triggerProps,
1714
+ children: eventContent
1715
+ }
1716
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
1717
+ "div",
1718
+ {
1719
+ className: classes.eventContent,
1720
+ "data-state": eventDataState,
1721
+ "data-testid": `schedule-event-${event.id}`,
1722
+ children: eventContent
1723
+ }
1724
+ ),
1725
+ popover
1726
+ ] });
1727
+ }
1728
+ function ScheduleListView() {
1729
+ const { events, highlightDate, isLoading, range, timezoneID } = useScheduleContext();
1730
+ const days = enumerateDates(range.startDate, range.endDate);
1731
+ const currentTime2 = useCurrentTime();
1732
+ const currentPlainDate = chunkJK4YAQ2N_cjs.plainDateFromInstant(currentTime2, timezoneID);
1733
+ const highlightPlainDate = highlightDate.toPlainDate();
1734
+ const endDate = range.endDate.add({ days: -1 });
1735
+ const title = formatListRangeTitle(range.startDate, endDate);
1736
+ const visibleDays = days.map((day) => {
1737
+ const dayEvents = events.filter(
1738
+ (event) => eventOccursOnDate(event, day, timezoneID)
1739
+ );
1740
+ const isCurrentDay = chunkJK4YAQ2N_cjs.plainDateIsEqual(day, currentPlainDate);
1741
+ const isHighlightedDay = chunkJK4YAQ2N_cjs.plainDateIsEqual(day, highlightPlainDate);
1742
+ const isBaseDay = chunkJK4YAQ2N_cjs.plainDateIsEqual(day, range.startDate);
1743
+ return {
1744
+ day,
1745
+ dayEvents,
1746
+ isCurrentDay,
1747
+ isHighlightedDay,
1748
+ isVisible: dayEvents.length > 0 || isCurrentDay || isBaseDay
1749
+ };
1750
+ }).filter((dayRecord) => dayRecord.isVisible);
1751
+ return /* @__PURE__ */ jsxRuntime.jsx(ScheduleFrame, { title, titleLabel: title, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkSPDVNY2Z_cjs.cx(scheduleClasses.surface, styles2.list), children: visibleDays.map(
1752
+ ({ day, dayEvents, isCurrentDay, isHighlightedDay }, index) => {
1753
+ const fullDate = chunkJK4YAQ2N_cjs.plainDateFormat(day, chunkJK4YAQ2N_cjs.DATE_FORMAT_WITH_WEEKDAY);
1754
+ const dayClasses = scheduleListViewRecipe({
1755
+ isHighlightedDay,
1756
+ isLastDay: index === visibleDays.length - 1
1757
+ });
1758
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: dayClasses.day, children: [
1759
+ /* @__PURE__ */ jsxRuntime.jsxs(
1760
+ "h4",
1761
+ {
1762
+ "aria-current": isHighlightedDay ? "date" : void 0,
1763
+ "aria-label": fullDate,
1764
+ className: dayClasses.dayHeading,
1765
+ children: [
1766
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: dayClasses.dayNumber, children: day.day }),
1767
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: dayClasses.dayWeekday, children: chunkJK4YAQ2N_cjs.plainDateFormat(day, { weekday: "short" }) })
1768
+ ]
1769
+ }
1770
+ ),
1771
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: dayClasses.events, children: renderListRows({
1772
+ currentTime: currentTime2,
1773
+ events: dayEvents,
1774
+ isShowingCurrentTime: isCurrentDay && !isLoading,
1775
+ timezoneID
1776
+ }) })
1777
+ ] }, day.toString());
1778
+ }
1779
+ ) }) });
1780
+ }
1781
+ function renderListRows({
1782
+ currentTime: currentTime2,
1783
+ events,
1784
+ isShowingCurrentTime,
1785
+ timezoneID
1786
+ }) {
1787
+ const rows = events.map((event) => /* @__PURE__ */ jsxRuntime.jsx(
1788
+ ListEvent,
1789
+ {
1790
+ event,
1791
+ isPast: isEventInPast(event, currentTime2, timezoneID)
1792
+ },
1793
+ event.id
1794
+ ));
1795
+ if (!isShowingCurrentTime) {
1796
+ return rows;
1797
+ }
1798
+ const marker = /* @__PURE__ */ jsxRuntime.jsx(
1799
+ ScheduleCurrentTimeIndicator,
1800
+ {
1801
+ layout: "list",
1802
+ testId: "schedule-list-current-time"
1803
+ },
1804
+ "current-time"
1805
+ );
1806
+ const insertIndex = events.findIndex(
1807
+ (event) => !isDayEvent(event) && event.start > currentTime2
1808
+ );
1809
+ if (insertIndex < 0) {
1810
+ return [...rows, marker];
1811
+ }
1812
+ return [...rows.slice(0, insertIndex), marker, ...rows.slice(insertIndex)];
1813
+ }
1814
+ function createScheduleListView({
1815
+ days = 7
1816
+ } = {}) {
1817
+ return {
1818
+ component: ScheduleListView,
1819
+ getDateRange: (date) => [
1820
+ date.startOfDay(),
1821
+ date.startOfDay().addDays(days)
1822
+ ],
1823
+ getNextDateRange: (date) => ({
1824
+ label: "Next range",
1825
+ range: [
1826
+ date.startOfDay().addDays(days),
1827
+ date.startOfDay().addDays(days * 2)
1828
+ ]
1829
+ }),
1830
+ getPreviousDateRange: (date) => ({
1831
+ label: "Previous range",
1832
+ range: [date.startOfDay().addDays(-days), date.startOfDay()]
1833
+ }),
1834
+ options: { days }
1835
+ };
1836
+ }
1837
+
1838
+ // src/components/Schedule/MonthlyView.recipe.ts
1839
+ var scheduleMonthlyViewRecipe = chunkZ6RT3WPE_cjs.sva({
1840
+ slots: [
1841
+ "grid",
1842
+ "weekday",
1843
+ "cell",
1844
+ "dayNumber",
1845
+ "todayText",
1846
+ "monthSurface",
1847
+ "monthCellGrid",
1848
+ "monthEventOverlay",
1849
+ "monthEventSpan",
1850
+ "monthSeeMoreSpan",
1851
+ "monthSeeMoreButton",
1852
+ "monthPopoverContent",
1853
+ "monthPopoverEvents"
1854
+ ],
1855
+ base: {
1856
+ grid: {
1857
+ display: "grid",
1858
+ gridTemplateColumns: "repeat(7, minmax(0, 1fr))"
1859
+ },
1860
+ weekday: {
1861
+ p: "2",
1862
+ textAlign: "center",
1863
+ borderBlockEndWidth: "default",
1864
+ borderBlockEndStyle: "solid",
1865
+ borderBlockEndColor: "border"
1866
+ },
1867
+ cell: {
1868
+ minH: "24",
1869
+ p: "0.5",
1870
+ borderInlineEndWidth: "default",
1871
+ borderInlineEndStyle: "solid",
1872
+ borderInlineEndColor: "border",
1873
+ borderBlockEndWidth: "default",
1874
+ borderBlockEndStyle: "solid",
1875
+ borderBlockEndColor: "border"
1876
+ },
1877
+ dayNumber: {
1878
+ display: "inline-flex",
1879
+ alignItems: "center",
1880
+ justifyContent: "center",
1881
+ w: "6",
1882
+ h: "6",
1883
+ m: "0.5",
1884
+ borderRadius: "full"
1885
+ },
1886
+ monthSurface: {
1887
+ position: "relative",
1888
+ gridColumn: "1 / -1"
1889
+ },
1890
+ monthCellGrid: {
1891
+ display: "grid",
1892
+ gridTemplateColumns: "repeat(7, minmax(0, 1fr))",
1893
+ gridAutoRows: "var(--schedule-month-row-height)"
1894
+ },
1895
+ monthEventOverlay: {
1896
+ position: "absolute",
1897
+ inset: 0,
1898
+ display: "grid",
1899
+ gridTemplateColumns: "repeat(7, minmax(0, 1fr))",
1900
+ gridAutoRows: "var(--schedule-month-row-height)",
1901
+ pointerEvents: "none"
1902
+ },
1903
+ monthEventSpan: {
1904
+ alignSelf: "start",
1905
+ minW: 0,
1906
+ mx: "0.5",
1907
+ pointerEvents: "auto",
1908
+ zIndex: 1
1909
+ },
1910
+ monthSeeMoreSpan: {
1911
+ alignSelf: "start",
1912
+ minW: 0,
1913
+ mx: "0.5",
1914
+ pointerEvents: "auto",
1915
+ zIndex: 2
1916
+ },
1917
+ monthSeeMoreButton: {
1918
+ display: "inline-flex",
1919
+ alignItems: "center",
1920
+ maxW: "full",
1921
+ h: "5",
1922
+ px: "1",
1923
+ borderRadius: "sm",
1924
+ color: "primary",
1925
+ cursor: "pointer",
1926
+ fontSize: "xs",
1927
+ fontWeight: "medium",
1928
+ lineHeight: "tight",
1929
+ overflow: "hidden",
1930
+ textOverflow: "ellipsis",
1931
+ whiteSpace: "nowrap",
1932
+ _hover: {
1933
+ bg: "bg.muted"
1934
+ }
1935
+ },
1936
+ monthPopoverContent: {
1937
+ display: "flex",
1938
+ flexDirection: "column",
1939
+ gap: "1",
1940
+ p: "3"
1941
+ },
1942
+ monthPopoverEvents: {
1943
+ display: "flex",
1944
+ flexDirection: "column",
1945
+ gap: 0,
1946
+ m: 0,
1947
+ p: 0,
1948
+ listStyleType: "none"
1949
+ }
1950
+ },
1951
+ variants: {
1952
+ isLastColumn: {
1953
+ true: { cell: { borderInlineEndWidth: 0 } },
1954
+ false: {}
1955
+ },
1956
+ isLastRow: {
1957
+ true: { cell: { borderBlockEndWidth: 0 } },
1958
+ false: {}
1959
+ },
1960
+ isOtherMonth: {
1961
+ true: {
1962
+ cell: {
1963
+ bg: "bg.subtle",
1964
+ color: "fg.muted"
1965
+ }
1966
+ },
1967
+ false: {}
1968
+ },
1969
+ isToday: {
1970
+ true: {
1971
+ dayNumber: {
1972
+ bg: "primary",
1973
+ color: "fg.onPrimary"
1974
+ },
1975
+ todayText: {
1976
+ marginInlineEnd: "1px"
1977
+ }
1978
+ },
1979
+ false: {}
1980
+ }
1981
+ },
1982
+ defaultVariants: {
1983
+ isLastColumn: false,
1984
+ isLastRow: false,
1985
+ isOtherMonth: false,
1986
+ isToday: false
1987
+ }
1988
+ });
1989
+ var styles3 = scheduleMonthlyViewRecipe();
1990
+ var weekdays = [
1991
+ { label: "Sunday", shortLabel: "Sun" },
1992
+ { label: "Monday", shortLabel: "Mon" },
1993
+ { label: "Tuesday", shortLabel: "Tue" },
1994
+ { label: "Wednesday", shortLabel: "Wed" },
1995
+ { label: "Thursday", shortLabel: "Thu" },
1996
+ { label: "Friday", shortLabel: "Fri" },
1997
+ { label: "Saturday", shortLabel: "Sat" }
1998
+ ];
1999
+ function getWeekdays(weekStartsOn) {
2000
+ return Array.from(
2001
+ { length: 7 },
2002
+ (_, index) => weekdays[(index + weekStartsOn) % 7]
2003
+ );
2004
+ }
2005
+ function setStartOfWeek(date, weekStartsOn) {
2006
+ const daysSinceWeekStart = (chunkJK4YAQ2N_cjs.plainDateDayOfWeek(date) - weekStartsOn + 7) % 7;
2007
+ return date.add({ days: -daysSinceWeekStart });
2008
+ }
2009
+ function getMonthDays(date, weekCount, weekStartsOn) {
2010
+ const firstOfMonth = date.with({ day: 1 });
2011
+ const firstVisibleDay = setStartOfWeek(firstOfMonth, weekStartsOn);
2012
+ return Array.from(
2013
+ { length: weekCount * 7 },
2014
+ (_, index) => firstVisibleDay.add({ days: index })
2015
+ );
2016
+ }
2017
+ function getVisibleMonthRange(date, month, weekCount, weekStartsOn) {
2018
+ const firstVisible = setStartOfWeek(month.with({ day: 1 }), weekStartsOn);
2019
+ const end = firstVisible.add({ days: weekCount * 7 });
2020
+ const currentDate = date.toPlainDate();
2021
+ return [
2022
+ date.startOfDay().addDays(currentDate.until(firstVisible).days),
2023
+ date.startOfDay().addDays(currentDate.until(end).days)
2024
+ ];
2025
+ }
2026
+ var DEFAULT_MONTH_ROW_HEIGHT = 128;
2027
+ var MONTH_EVENT_TOP_OFFSET = 30;
2028
+ var MONTH_EVENT_LEVEL_HEIGHT = 22;
2029
+ var MONTH_EVENT_HEIGHT = 20;
2030
+ var MONTH_EVENT_BOTTOM_PADDING = 4;
2031
+ function getEventDateSpan(event, timezoneID) {
2032
+ if (isDayEvent(event)) {
2033
+ return [event.start, event.end];
2034
+ }
2035
+ return [
2036
+ chunkJK4YAQ2N_cjs.plainDateFromInstant(event.start, timezoneID),
2037
+ chunkJK4YAQ2N_cjs.plainDateFromInstant(Math.max(event.end - 1, event.start), timezoneID)
2038
+ ];
2039
+ }
2040
+ function getEventVisibleDateIndexes({
2041
+ event,
2042
+ firstDay,
2043
+ lastDay,
2044
+ timezoneID
2045
+ }) {
2046
+ const [eventStart, eventEnd] = getEventDateSpan(event, timezoneID);
2047
+ if (chunkJK4YAQ2N_cjs.plainDateIsBefore(eventEnd, firstDay) || chunkJK4YAQ2N_cjs.plainDateIsAfter(eventStart, lastDay)) {
2048
+ return null;
2049
+ }
2050
+ const startIndex = chunkJK4YAQ2N_cjs.plainDateIsBefore(eventStart, firstDay) ? 0 : firstDay.until(eventStart).days;
2051
+ const endIndex = chunkJK4YAQ2N_cjs.plainDateIsAfter(eventEnd, lastDay) ? firstDay.until(lastDay).days : firstDay.until(eventEnd).days;
2052
+ return [startIndex, endIndex];
2053
+ }
2054
+ function getEventsByDate(events, days, timezoneID) {
2055
+ const eventsByDate = /* @__PURE__ */ new Map();
2056
+ if (days.length === 0) {
2057
+ return eventsByDate;
2058
+ }
2059
+ const firstDay = days[0];
2060
+ const lastDay = days[days.length - 1];
2061
+ days.forEach((day) => {
2062
+ eventsByDate.set(day.toString(), []);
2063
+ });
2064
+ events.forEach((event) => {
2065
+ const indexes = getEventVisibleDateIndexes({
2066
+ event,
2067
+ firstDay,
2068
+ lastDay,
2069
+ timezoneID
2070
+ });
2071
+ if (indexes == null) {
2072
+ return;
2073
+ }
2074
+ const [startIndex, endIndex] = indexes;
2075
+ for (let index = startIndex; index <= endIndex; index += 1) {
2076
+ eventsByDate.get(days[index].toString())?.push(event);
2077
+ }
2078
+ });
2079
+ return eventsByDate;
2080
+ }
2081
+ function getAvailableLevel(levels, columnStart) {
2082
+ const level = levels.findIndex((columnEnd) => columnStart > columnEnd);
2083
+ return level >= 0 ? level : levels.length;
2084
+ }
2085
+ function getMonthEventSegments(events, days, timezoneID) {
2086
+ const segments = [];
2087
+ const levelsByWeek = [];
2088
+ if (days.length === 0) {
2089
+ return segments;
2090
+ }
2091
+ const firstDay = days[0];
2092
+ const lastDay = days[days.length - 1];
2093
+ const monthEvents = events.map((event) => {
2094
+ const indexes = getEventVisibleDateIndexes({
2095
+ event,
2096
+ firstDay,
2097
+ lastDay,
2098
+ timezoneID
2099
+ });
2100
+ if (indexes == null) {
2101
+ return null;
2102
+ }
2103
+ const [startIndex, endIndex] = indexes;
2104
+ return {
2105
+ endIndex,
2106
+ event,
2107
+ isPriority: isDayEvent(event) || endIndex > startIndex,
2108
+ startIndex
2109
+ };
2110
+ }).filter(
2111
+ (record) => record != null
2112
+ ).sort((a, b) => {
2113
+ if (a.startIndex !== b.startIndex) {
2114
+ return a.startIndex - b.startIndex;
2115
+ }
2116
+ if (a.isPriority !== b.isPriority) {
2117
+ return a.isPriority ? -1 : 1;
2118
+ }
2119
+ const aDuration = a.endIndex - a.startIndex;
2120
+ const bDuration = b.endIndex - b.startIndex;
2121
+ if (aDuration !== bDuration) {
2122
+ return bDuration - aDuration;
2123
+ }
2124
+ return a.event.title.localeCompare(b.event.title);
2125
+ });
2126
+ monthEvents.forEach(({ endIndex, event, startIndex }) => {
2127
+ for (let week = Math.floor(startIndex / 7); week <= Math.floor(endIndex / 7); week += 1) {
2128
+ const columnStart = week === Math.floor(startIndex / 7) ? startIndex % 7 : 0;
2129
+ const columnEnd = week === Math.floor(endIndex / 7) ? endIndex % 7 : 6;
2130
+ const weekLevels = levelsByWeek[week] ?? (levelsByWeek[week] = []);
2131
+ const level = getAvailableLevel(weekLevels, columnStart);
2132
+ weekLevels[level] = columnEnd;
2133
+ segments.push({
2134
+ columnEnd,
2135
+ columnStart,
2136
+ endIndex,
2137
+ event,
2138
+ level,
2139
+ startIndex,
2140
+ week
2141
+ });
2142
+ }
2143
+ });
2144
+ return segments;
2145
+ }
2146
+ function getMonthEventSegmentStyle({
2147
+ columnEnd,
2148
+ columnStart,
2149
+ level,
2150
+ week
2151
+ }) {
2152
+ return {
2153
+ gridColumn: `${columnStart + 1} / ${columnEnd + 2}`,
2154
+ gridRow: `${week + 1}`,
2155
+ marginBlockStart: `${MONTH_EVENT_TOP_OFFSET + level * MONTH_EVENT_LEVEL_HEIGHT}px`
2156
+ };
2157
+ }
2158
+ function getMonthEventLevelCount(monthRowHeight) {
2159
+ const availableHeight = monthRowHeight - MONTH_EVENT_TOP_OFFSET - MONTH_EVENT_HEIGHT - MONTH_EVENT_BOTTOM_PADDING;
2160
+ return Math.max(
2161
+ 1,
2162
+ Math.floor(availableHeight / MONTH_EVENT_LEVEL_HEIGHT) + 1
2163
+ );
2164
+ }
2165
+ function getMonthSeeMoreStyle({
2166
+ dayIndex,
2167
+ level
2168
+ }) {
2169
+ return {
2170
+ gridColumn: `${dayIndex % 7 + 1} / ${dayIndex % 7 + 2}`,
2171
+ gridRow: `${Math.floor(dayIndex / 7) + 1}`,
2172
+ marginBlockStart: `${MONTH_EVENT_TOP_OFFSET + level * MONTH_EVENT_LEVEL_HEIGHT}px`
2173
+ };
2174
+ }
2175
+ function segmentCoversDay(segment, dayIndex) {
2176
+ return segment.startIndex <= dayIndex && segment.endIndex >= dayIndex;
2177
+ }
2178
+ function shouldReserveSeeMoreLevel({
2179
+ dayEvents,
2180
+ levelCount
2181
+ }) {
2182
+ return dayEvents.length > levelCount;
2183
+ }
2184
+ function isSegmentVisible({
2185
+ dayEventsByIndex,
2186
+ levelCount,
2187
+ segment
2188
+ }) {
2189
+ for (let index = segment.startIndex; index <= segment.endIndex; index += 1) {
2190
+ const visibleLevelCount = shouldReserveSeeMoreLevel({
2191
+ dayEvents: dayEventsByIndex[index] ?? [],
2192
+ levelCount
2193
+ }) ? levelCount - 1 : levelCount;
2194
+ if (segment.level >= visibleLevelCount) {
2195
+ return false;
2196
+ }
2197
+ }
2198
+ return true;
2199
+ }
2200
+ function getHiddenEventsByDate({
2201
+ dayEventsByIndex,
2202
+ days,
2203
+ segments,
2204
+ visibleSegments
2205
+ }) {
2206
+ const hiddenEventsByDate = /* @__PURE__ */ new Map();
2207
+ days.forEach((day, dayIndex) => {
2208
+ const allSegmentEventIds = new Set(
2209
+ segments.filter((segment) => segmentCoversDay(segment, dayIndex)).map((segment) => segment.event.id)
2210
+ );
2211
+ const visibleSegmentEventIds = new Set(
2212
+ visibleSegments.filter((segment) => segmentCoversDay(segment, dayIndex)).map((segment) => segment.event.id)
2213
+ );
2214
+ const hiddenEvents = (dayEventsByIndex[dayIndex] ?? []).filter(
2215
+ (event) => allSegmentEventIds.has(event.id) && !visibleSegmentEventIds.has(event.id)
2216
+ );
2217
+ if (hiddenEvents.length > 0) {
2218
+ hiddenEventsByDate.set(day.toString(), hiddenEvents);
2219
+ }
2220
+ });
2221
+ return hiddenEventsByDate;
2222
+ }
2223
+ function getGridCellName({
2224
+ categoryMap,
2225
+ date,
2226
+ events,
2227
+ timezoneID
2228
+ }) {
2229
+ const eventLabels = events.map(
2230
+ (event) => getEventAccessibleLabel(event, categoryMap, timezoneID)
2231
+ );
2232
+ const dateLabel = chunkJK4YAQ2N_cjs.plainDateFormat(date, chunkJK4YAQ2N_cjs.DATE_FORMAT_WITH_WEEKDAY);
2233
+ return eventLabels.length > 0 ? `${dateLabel}. ${eventLabels.join(". ")}` : dateLabel;
2234
+ }
2235
+ function ScheduleMonthlyView({
2236
+ options
2237
+ }) {
2238
+ const { categoryMap, events, highlightDate, plugins, timezoneID, viewDate } = useScheduleContext();
2239
+ const eventPopoverActive = hasEventPopoverPlugin(plugins);
2240
+ const currentTime2 = useCurrentTime();
2241
+ const month = viewDate.toPlainDate();
2242
+ const title = formatMonthTitle(month);
2243
+ const monthRowHeight = Math.max(
2244
+ 64,
2245
+ Math.floor(options.monthRowHeight ?? DEFAULT_MONTH_ROW_HEIGHT)
2246
+ );
2247
+ const weekStartsOn = options.weekStartsOn ?? 0;
2248
+ const days = getMonthDays(month, options.weekCount ?? 6, weekStartsOn);
2249
+ const eventSegments = getMonthEventSegments(events, days, timezoneID);
2250
+ const eventsByDate = getEventsByDate(events, days, timezoneID);
2251
+ const dayEventsByIndex = days.map(
2252
+ (day) => eventsByDate.get(day.toString()) ?? []
2253
+ );
2254
+ const monthEventLevelCount = getMonthEventLevelCount(monthRowHeight);
2255
+ const visibleEventSegments = eventSegments.filter(
2256
+ (segment) => isSegmentVisible({
2257
+ dayEventsByIndex,
2258
+ levelCount: monthEventLevelCount,
2259
+ segment
2260
+ })
2261
+ );
2262
+ const hiddenEventsByDate = getHiddenEventsByDate({
2263
+ dayEventsByIndex,
2264
+ days,
2265
+ segments: eventSegments,
2266
+ visibleSegments: visibleEventSegments
2267
+ });
2268
+ const today = highlightDate.toPlainDate();
2269
+ const visibleWeekdays = getWeekdays(weekStartsOn);
2270
+ const monthGridStyle = {
2271
+ "--schedule-month-row-height": `${monthRowHeight}px`
2272
+ };
2273
+ return /* @__PURE__ */ jsxRuntime.jsx(ScheduleFrame, { title, titleLabel: title, children: /* @__PURE__ */ jsxRuntime.jsxs(
2274
+ "div",
2275
+ {
2276
+ "aria-label": title,
2277
+ className: chunkSPDVNY2Z_cjs.cx(scheduleClasses.surface, styles3.grid),
2278
+ role: "grid",
2279
+ children: [
2280
+ visibleWeekdays.map((weekday, index) => /* @__PURE__ */ jsxRuntime.jsx(
2281
+ "div",
2282
+ {
2283
+ "aria-colindex": index + 1,
2284
+ "aria-label": weekday.label,
2285
+ className: styles3.weekday,
2286
+ role: "columnheader",
2287
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Heading, { color: "secondary", level: 4, children: weekday.shortLabel })
2288
+ },
2289
+ weekday.label
2290
+ )),
2291
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles3.monthSurface, children: [
2292
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles3.monthCellGrid, style: monthGridStyle, children: days.map((day, index) => {
2293
+ const dayEvents = eventsByDate.get(day.toString()) ?? [];
2294
+ const isCurrentMonth = day.month === month.month && day.year === month.year;
2295
+ const isLastColumn = index % 7 === 6;
2296
+ const isLastRow = index >= days.length - 7;
2297
+ const isToday = chunkJK4YAQ2N_cjs.plainDateIsEqual(day, today);
2298
+ const dayClasses = scheduleMonthlyViewRecipe({
2299
+ isLastColumn,
2300
+ isLastRow,
2301
+ isOtherMonth: !isCurrentMonth,
2302
+ isToday
2303
+ });
2304
+ const dayCellPluginProps = plugins.reduce(
2305
+ (props, plugin) => ({
2306
+ ...props,
2307
+ ...plugin.getMonthCellProps?.({
2308
+ date: day,
2309
+ timezoneID
2310
+ })
2311
+ }),
2312
+ {}
2313
+ );
2314
+ return /* @__PURE__ */ jsxRuntime.jsx(
2315
+ "div",
2316
+ {
2317
+ "aria-current": isToday ? "date" : void 0,
2318
+ "aria-label": getGridCellName({
2319
+ categoryMap,
2320
+ date: day,
2321
+ // When events are interactive popover triggers they expose
2322
+ // their own accessible names, so omit them here to avoid
2323
+ // announcing each event twice.
2324
+ events: eventPopoverActive ? [] : dayEvents,
2325
+ timezoneID
2326
+ }),
2327
+ className: dayClasses.cell,
2328
+ "data-testid": `schedule-month-cell-${day.toString()}`,
2329
+ role: "gridcell",
2330
+ ...dayCellPluginProps,
2331
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: dayClasses.dayNumber, children: /* @__PURE__ */ jsxRuntime.jsx(
2332
+ chunkMHAXS4GO_cjs.Text,
2333
+ {
2334
+ as: "span",
2335
+ className: dayClasses.todayText,
2336
+ color: "inherit",
2337
+ hasTabularNumbers: true,
2338
+ type: "supporting",
2339
+ weight: "medium",
2340
+ children: day.day
2341
+ }
2342
+ ) })
2343
+ },
2344
+ day.toString()
2345
+ );
2346
+ }) }),
2347
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles3.monthEventOverlay, style: monthGridStyle, children: [
2348
+ visibleEventSegments.map((segment) => /* @__PURE__ */ jsxRuntime.jsx(
2349
+ "div",
2350
+ {
2351
+ "aria-hidden": eventPopoverActive ? void 0 : "true",
2352
+ className: styles3.monthEventSpan,
2353
+ "data-testid": `schedule-event-span-${segment.event.id}`,
2354
+ style: getMonthEventSegmentStyle(segment),
2355
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2356
+ CalendarMonthEventPill,
2357
+ {
2358
+ event: segment.event,
2359
+ isPast: isEventInPast(segment.event, currentTime2, timezoneID)
2360
+ }
2361
+ )
2362
+ },
2363
+ `${segment.event.id}:${segment.week}:${segment.columnStart}`
2364
+ )),
2365
+ days.map((day, dayIndex) => {
2366
+ const hiddenEvents = hiddenEventsByDate.get(day.toString()) ?? [];
2367
+ if (hiddenEvents.length === 0) {
2368
+ return null;
2369
+ }
2370
+ const dateLabel = chunkJK4YAQ2N_cjs.plainDateFormat(day, chunkJK4YAQ2N_cjs.DATE_FORMAT_WITH_WEEKDAY);
2371
+ const label = `Show ${hiddenEvents.length} more events for ${dateLabel}`;
2372
+ return /* @__PURE__ */ jsxRuntime.jsx(
2373
+ "div",
2374
+ {
2375
+ className: styles3.monthSeeMoreSpan,
2376
+ style: getMonthSeeMoreStyle({
2377
+ dayIndex,
2378
+ level: Math.max(0, monthEventLevelCount - 1)
2379
+ }),
2380
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2381
+ ScheduleEventOverflowPopover,
2382
+ {
2383
+ buttonClassName: styles3.monthSeeMoreButton,
2384
+ contentClassName: styles3.monthPopoverContent,
2385
+ events: eventsByDate.get(day.toString()) ?? [],
2386
+ eventsClassName: styles3.monthPopoverEvents,
2387
+ hiddenEventCount: hiddenEvents.length,
2388
+ label,
2389
+ renderEvent: (event) => /* @__PURE__ */ jsxRuntime.jsx(
2390
+ CalendarMonthEventPill,
2391
+ {
2392
+ event,
2393
+ isPast: isEventInPast(event, currentTime2, timezoneID)
2394
+ }
2395
+ ),
2396
+ testId: `schedule-month-see-more-${day.toString()}`,
2397
+ title: dateLabel
2398
+ }
2399
+ )
2400
+ },
2401
+ `${day.toString()}-see-more`
2402
+ );
2403
+ })
2404
+ ] })
2405
+ ] })
2406
+ ]
2407
+ }
2408
+ ) });
2409
+ }
2410
+ function createScheduleMonthlyView({
2411
+ monthRowHeight = DEFAULT_MONTH_ROW_HEIGHT,
2412
+ weekCount = 6,
2413
+ weekStartsOn = 0
2414
+ } = {}) {
2415
+ return {
2416
+ component: ScheduleMonthlyView,
2417
+ getDateRange: (date) => {
2418
+ const month = date.toPlainDate();
2419
+ return getVisibleMonthRange(date, month, weekCount, weekStartsOn);
2420
+ },
2421
+ getNextDateRange: (date) => {
2422
+ const nextMonth = date.toPlainDate().with({ day: 1 }).add({ months: 1 });
2423
+ return {
2424
+ label: "Next month",
2425
+ range: getVisibleMonthRange(date, nextMonth, weekCount, weekStartsOn)
2426
+ };
2427
+ },
2428
+ getPreviousDateRange: (date) => {
2429
+ const previousMonth = date.toPlainDate().with({ day: 1 }).subtract({ months: 1 });
2430
+ return {
2431
+ label: "Previous month",
2432
+ range: getVisibleMonthRange(
2433
+ date,
2434
+ previousMonth,
2435
+ weekCount,
2436
+ weekStartsOn
2437
+ )
2438
+ };
2439
+ },
2440
+ options: { monthRowHeight, weekCount, weekStartsOn }
2441
+ };
2442
+ }
2443
+ var DEFAULT_SNAP_MINUTES = 15;
2444
+ var MILLISECONDS_PER_MINUTE = 6e4;
2445
+ var MINUTES_PER_DAY = 24 * 60;
2446
+ function getSnappedMinutes(minutes, snapMinutes) {
2447
+ return Math.round(minutes / snapMinutes) * snapMinutes;
2448
+ }
2449
+ function getTimeGridStartMinutes({
2450
+ drag,
2451
+ hour,
2452
+ pointerOffsetMinutes,
2453
+ snapMinutes
2454
+ }) {
2455
+ return getSnappedMinutes(
2456
+ hour * 60 + pointerOffsetMinutes - drag.offsetMinutes,
2457
+ snapMinutes
2458
+ );
2459
+ }
2460
+ function instantFromDateAndMinutes(date, minutes, timezoneID) {
2461
+ const clampedMinutes = Math.round(
2462
+ Math.max(0, Math.min(MINUTES_PER_DAY - 1, minutes))
2463
+ );
2464
+ const hour = Math.floor(clampedMinutes / 60);
2465
+ const minute = clampedMinutes % 60;
2466
+ return date.toPlainDateTime(polyfill.Temporal.PlainTime.from({ hour, minute })).toZonedDateTime(timezoneID).epochMilliseconds;
2467
+ }
2468
+ function moveEventToDate(event, date, timezoneID) {
2469
+ if (isDayEvent(event)) {
2470
+ const durationDays = event.start.until(event.end).days;
2471
+ return {
2472
+ end: date.add({ days: durationDays }),
2473
+ event,
2474
+ start: date
2475
+ };
2476
+ }
2477
+ const startTime = polyfill.Temporal.Instant.fromEpochMilliseconds(event.start).toZonedDateTimeISO(timezoneID).toPlainTime();
2478
+ const start = date.toPlainDateTime(startTime).toZonedDateTime(timezoneID).epochMilliseconds;
2479
+ return {
2480
+ end: start + (event.end - event.start),
2481
+ event,
2482
+ start
2483
+ };
2484
+ }
2485
+ function moveEventToDateTime({
2486
+ date,
2487
+ drag,
2488
+ hour,
2489
+ pointerOffsetMinutes,
2490
+ snapMinutes,
2491
+ timezoneID
2492
+ }) {
2493
+ if (isDayEvent(drag.event)) {
2494
+ return null;
2495
+ }
2496
+ const startMinutes = getTimeGridStartMinutes({
2497
+ drag,
2498
+ hour,
2499
+ pointerOffsetMinutes,
2500
+ snapMinutes
2501
+ });
2502
+ const start = instantFromDateAndMinutes(date, startMinutes, timezoneID);
2503
+ return {
2504
+ end: start + (drag.event.end - drag.event.start),
2505
+ event: drag.event,
2506
+ start
2507
+ };
2508
+ }
2509
+ function hasChanged({
2510
+ end,
2511
+ event,
2512
+ start
2513
+ }) {
2514
+ return event.start !== start || event.end !== end;
2515
+ }
2516
+ function getDragEventClientY(dragEvent, fallback) {
2517
+ return Number.isFinite(dragEvent.clientY) ? dragEvent.clientY : fallback;
2518
+ }
2519
+ function applyDragPreview(drag, targetLeft, targetTop) {
2520
+ drag.previewElement.style.left = `${targetLeft}px`;
2521
+ drag.previewElement.style.top = `${targetTop}px`;
2522
+ }
2523
+ function resetDragPreview(drag) {
2524
+ drag.sourceElement.style.opacity = drag.initialOpacity;
2525
+ drag.previewElement.remove();
2526
+ }
2527
+ function createDragPreviewElement(event, sourceElement, sourceRect) {
2528
+ const preview = sourceElement.cloneNode(true);
2529
+ if (!(preview instanceof HTMLElement)) {
2530
+ throw new Error("Schedule event preview must be an HTMLElement.");
2531
+ }
2532
+ preview.setAttribute("aria-hidden", "true");
2533
+ preview.setAttribute(
2534
+ "data-testid",
2535
+ `schedule-event-move-preview-${event.id}`
2536
+ );
2537
+ preview.style.position = "fixed";
2538
+ preview.style.inset = "auto";
2539
+ preview.style.left = `${sourceRect.left}px`;
2540
+ preview.style.top = `${sourceRect.top}px`;
2541
+ preview.style.width = `${sourceRect.width}px`;
2542
+ preview.style.height = `${sourceRect.height}px`;
2543
+ preview.style.margin = "0";
2544
+ preview.style.opacity = "0.45";
2545
+ preview.style.pointerEvents = "none";
2546
+ preview.style.transform = "none";
2547
+ preview.style.zIndex = "1000";
2548
+ document.body.append(preview);
2549
+ return preview;
2550
+ }
2551
+ function createScheduleEventMovePlugin({
2552
+ dragRef,
2553
+ onMove,
2554
+ snapMinutes = DEFAULT_SNAP_MINUTES
2555
+ }) {
2556
+ const normalizedSnapMinutes = Number.isFinite(snapMinutes) && snapMinutes > 0 ? Math.max(1, Math.floor(snapMinutes)) : DEFAULT_SNAP_MINUTES;
2557
+ return {
2558
+ getEventProps({
2559
+ event,
2560
+ layout,
2561
+ timezoneID
2562
+ }) {
2563
+ if (layout !== "month" && (layout !== "timeGrid" || isDayEvent(event))) {
2564
+ return {};
2565
+ }
2566
+ return {
2567
+ draggable: true,
2568
+ onDragEnd: () => {
2569
+ if (dragRef.current != null) {
2570
+ resetDragPreview(dragRef.current);
2571
+ }
2572
+ dragRef.current = null;
2573
+ },
2574
+ onDragStart: (dragEvent) => {
2575
+ const element = dragEvent.currentTarget;
2576
+ const sourceRect = element.getBoundingClientRect();
2577
+ const isTimedTimeGridEvent = layout === "timeGrid" && !isDayEvent(event);
2578
+ const eventStartTime = isDayEvent(event) ? null : polyfill.Temporal.Instant.fromEpochMilliseconds(event.start).toZonedDateTimeISO(timezoneID).toPlainTime();
2579
+ const eventStartMinutes = eventStartTime == null ? 0 : eventStartTime.hour * 60 + eventStartTime.minute;
2580
+ let offsetMinutes = eventStartMinutes;
2581
+ if (isTimedTimeGridEvent) {
2582
+ const durationMinutes = Math.max(
2583
+ 15,
2584
+ (event.end - event.start) / MILLISECONDS_PER_MINUTE
2585
+ );
2586
+ offsetMinutes = Math.max(
2587
+ 0,
2588
+ (getDragEventClientY(dragEvent, sourceRect.top) - sourceRect.top) / Math.max(1, sourceRect.height) * durationMinutes
2589
+ );
2590
+ }
2591
+ dragEvent.dataTransfer.setData("text/plain", event.id);
2592
+ dragEvent.dataTransfer.setDragImage(element, 0, 0);
2593
+ dragRef.current = {
2594
+ event,
2595
+ initialOpacity: element.style.opacity,
2596
+ offsetMinutes,
2597
+ previewElement: createDragPreviewElement(
2598
+ event,
2599
+ element,
2600
+ sourceRect
2601
+ ),
2602
+ sourceElement: element,
2603
+ sourceRect
2604
+ };
2605
+ element.style.opacity = "0.25";
2606
+ }
2607
+ };
2608
+ },
2609
+ getMonthCellProps({
2610
+ date,
2611
+ timezoneID
2612
+ }) {
2613
+ return {
2614
+ onDragOver: (dragEvent) => {
2615
+ if (dragRef.current != null) {
2616
+ dragEvent.preventDefault();
2617
+ const rect = dragEvent.currentTarget.getBoundingClientRect();
2618
+ applyDragPreview(dragRef.current, rect.left + 4, rect.top + 30);
2619
+ }
2620
+ },
2621
+ onDrop: (dragEvent) => {
2622
+ const drag = dragRef.current;
2623
+ if (drag == null) {
2624
+ return;
2625
+ }
2626
+ dragEvent.preventDefault();
2627
+ const change = moveEventToDate(drag.event, date, timezoneID);
2628
+ if (hasChanged(change)) {
2629
+ onMove(change);
2630
+ }
2631
+ resetDragPreview(drag);
2632
+ dragRef.current = null;
2633
+ }
2634
+ };
2635
+ },
2636
+ getTimeGridCellProps({
2637
+ date,
2638
+ hour,
2639
+ hourHeight,
2640
+ timezoneID
2641
+ }) {
2642
+ return {
2643
+ onDragOver: (dragEvent) => {
2644
+ if (dragRef.current != null && !isDayEvent(dragRef.current.event)) {
2645
+ dragEvent.preventDefault();
2646
+ const rect = dragEvent.currentTarget.getBoundingClientRect();
2647
+ const pointerOffsetMinutes = (getDragEventClientY(dragEvent, rect.top) - rect.top) / Math.max(1, hourHeight) * 60;
2648
+ const startMinutes = getTimeGridStartMinutes({
2649
+ drag: dragRef.current,
2650
+ hour,
2651
+ pointerOffsetMinutes,
2652
+ snapMinutes: normalizedSnapMinutes
2653
+ });
2654
+ const top = rect.top + (startMinutes - hour * 60) / 60 * hourHeight + 2;
2655
+ applyDragPreview(dragRef.current, rect.left + 2, top);
2656
+ }
2657
+ },
2658
+ onDrop: (dragEvent) => {
2659
+ const drag = dragRef.current;
2660
+ if (drag == null || isDayEvent(drag.event)) {
2661
+ return;
2662
+ }
2663
+ dragEvent.preventDefault();
2664
+ const rect = dragEvent.currentTarget.getBoundingClientRect();
2665
+ const pointerOffsetMinutes = (getDragEventClientY(dragEvent, rect.top) - rect.top) / Math.max(1, hourHeight) * 60;
2666
+ const change = moveEventToDateTime({
2667
+ date,
2668
+ drag,
2669
+ hour,
2670
+ pointerOffsetMinutes,
2671
+ snapMinutes: normalizedSnapMinutes,
2672
+ timezoneID
2673
+ });
2674
+ if (change != null && hasChanged(change)) {
2675
+ onMove(change);
2676
+ }
2677
+ resetDragPreview(drag);
2678
+ dragRef.current = null;
2679
+ }
2680
+ };
2681
+ }
2682
+ };
2683
+ }
2684
+ function useScheduleEventMovePlugin(options) {
2685
+ const optionsRef = chunkVK7DXUGH_cjs.useLatest_default(options);
2686
+ const dragRef = react.useRef(null);
2687
+ const onMove = react.useCallback(
2688
+ (change) => {
2689
+ optionsRef.current.onMove(change);
2690
+ },
2691
+ [optionsRef]
2692
+ );
2693
+ return react.useMemo(() => {
2694
+ return createScheduleEventMovePlugin({
2695
+ dragRef,
2696
+ onMove,
2697
+ snapMinutes: options.snapMinutes
2698
+ });
2699
+ }, [dragRef, onMove, options.snapMinutes]);
2700
+ }
2701
+ var MIN_DURATION_MINUTES = 15;
2702
+ var DEFAULT_SNAP_MINUTES2 = 15;
2703
+ var MILLISECONDS_PER_MINUTE2 = 6e4;
2704
+ var resizeHandle = chunkJRBQKFVO_cjs.cva({
2705
+ base: {
2706
+ position: "absolute",
2707
+ insetInline: 0,
2708
+ h: "3",
2709
+ cursor: "ns-resize",
2710
+ touchAction: "none",
2711
+ _focusVisible: {
2712
+ outlineWidth: "focus",
2713
+ outlineStyle: "solid",
2714
+ outlineColor: "primary",
2715
+ outlineOffset: "-2px"
2716
+ }
2717
+ },
2718
+ variants: {
2719
+ edge: {
2720
+ start: {
2721
+ insetBlockStart: 0
2722
+ },
2723
+ end: {
2724
+ insetBlockEnd: 0
2725
+ }
2726
+ }
2727
+ }
2728
+ });
2729
+ var resizeHandleClassNames = {
2730
+ end: resizeHandle({ edge: "end" }),
2731
+ start: resizeHandle({ edge: "start" })
2732
+ };
2733
+ function getDurationMinutes(start, end) {
2734
+ return (end - start) / MILLISECONDS_PER_MINUTE2;
2735
+ }
2736
+ function getSnappedDeltaMinutes(deltaPixels, hourHeight, snapMinutes) {
2737
+ const rawMinutes = deltaPixels / hourHeight * 60;
2738
+ return Math.round(rawMinutes / snapMinutes) * snapMinutes;
2739
+ }
2740
+ function getResizeRange(state, clientY) {
2741
+ const deltaMinutes = getSnappedDeltaMinutes(
2742
+ clientY - state.initialPointerY,
2743
+ state.hourHeight,
2744
+ state.snapMinutes
2745
+ );
2746
+ const delta = deltaMinutes * MILLISECONDS_PER_MINUTE2;
2747
+ const minDuration = MIN_DURATION_MINUTES * MILLISECONDS_PER_MINUTE2;
2748
+ if (state.edge === "start") {
2749
+ return {
2750
+ end: state.event.end,
2751
+ start: Math.min(state.event.end - minDuration, state.event.start + delta)
2752
+ };
2753
+ }
2754
+ return {
2755
+ end: Math.max(state.event.start + minDuration, state.event.end + delta),
2756
+ start: state.event.start
2757
+ };
2758
+ }
2759
+ function getPreviewHeight(state, range) {
2760
+ return `${Math.max(
2761
+ 36,
2762
+ getDurationMinutes(range.start, range.end) / 60 * state.hourHeight - 5
2763
+ )}px`;
2764
+ }
2765
+ function getPreviewTop(state, range) {
2766
+ const initialTop = Number.parseFloat(state.initialTop || "0");
2767
+ if (state.edge === "end") {
2768
+ return state.initialTop;
2769
+ }
2770
+ const deltaMinutes = getDurationMinutes(state.event.start, range.start);
2771
+ return `${initialTop + deltaMinutes / 60 * state.hourHeight}px`;
2772
+ }
2773
+ function applyPreview(state, range) {
2774
+ state.eventElement.style.height = getPreviewHeight(state, range);
2775
+ state.eventElement.style.top = getPreviewTop(state, range);
2776
+ }
2777
+ function ScheduleEventResizeHandle({
2778
+ edge,
2779
+ event,
2780
+ hourHeight,
2781
+ onResize,
2782
+ snapMinutes
2783
+ }) {
2784
+ const resizeStateRef = react.useRef(null);
2785
+ const pointerListenersRef = react.useRef(null);
2786
+ const removePointerListeners = react.useCallback(() => {
2787
+ const listeners2 = pointerListenersRef.current;
2788
+ if (listeners2 == null) {
2789
+ return;
2790
+ }
2791
+ window.removeEventListener("pointermove", listeners2.move);
2792
+ window.removeEventListener("pointerup", listeners2.up);
2793
+ window.removeEventListener("pointercancel", listeners2.cancel);
2794
+ pointerListenersRef.current = null;
2795
+ }, []);
2796
+ const finishResize = react.useCallback((clientY, isCommit) => {
2797
+ const state = resizeStateRef.current;
2798
+ if (state == null) {
2799
+ return;
2800
+ }
2801
+ const range = getResizeRange(state, clientY);
2802
+ if (isCommit) {
2803
+ if (range.start !== state.event.start || range.end !== state.event.end) {
2804
+ state.onResize({
2805
+ end: range.end,
2806
+ event: state.event,
2807
+ start: range.start
2808
+ });
2809
+ }
2810
+ } else {
2811
+ state.eventElement.style.height = state.initialHeight;
2812
+ state.eventElement.style.top = state.initialTop;
2813
+ }
2814
+ resizeStateRef.current = null;
2815
+ }, []);
2816
+ const handlePointerMove = react.useCallback((event2) => {
2817
+ const state = resizeStateRef.current;
2818
+ if (state == null) {
2819
+ return;
2820
+ }
2821
+ applyPreview(state, getResizeRange(state, event2.clientY));
2822
+ }, []);
2823
+ const handlePointerUp = react.useCallback(
2824
+ (event2) => {
2825
+ removePointerListeners();
2826
+ finishResize(event2.clientY, true);
2827
+ },
2828
+ [finishResize, removePointerListeners]
2829
+ );
2830
+ const handlePointerCancel = react.useCallback(
2831
+ (event2) => {
2832
+ removePointerListeners();
2833
+ finishResize(event2.clientY, false);
2834
+ },
2835
+ [finishResize, removePointerListeners]
2836
+ );
2837
+ const handlePointerDown = react.useCallback(
2838
+ (pointerEvent) => {
2839
+ pointerEvent.preventDefault();
2840
+ pointerEvent.stopPropagation();
2841
+ const eventElement = pointerEvent.currentTarget.parentElement;
2842
+ if (!(eventElement instanceof HTMLElement)) {
2843
+ return;
2844
+ }
2845
+ resizeStateRef.current = {
2846
+ edge,
2847
+ event,
2848
+ eventElement,
2849
+ hourHeight,
2850
+ initialHeight: eventElement.style.height,
2851
+ initialPointerY: pointerEvent.clientY,
2852
+ initialTop: eventElement.style.top,
2853
+ onResize,
2854
+ snapMinutes
2855
+ };
2856
+ pointerListenersRef.current = {
2857
+ cancel: handlePointerCancel,
2858
+ move: handlePointerMove,
2859
+ up: handlePointerUp
2860
+ };
2861
+ window.addEventListener("pointermove", handlePointerMove);
2862
+ window.addEventListener("pointerup", handlePointerUp);
2863
+ window.addEventListener("pointercancel", handlePointerCancel);
2864
+ },
2865
+ [
2866
+ edge,
2867
+ event,
2868
+ handlePointerCancel,
2869
+ handlePointerMove,
2870
+ handlePointerUp,
2871
+ hourHeight,
2872
+ onResize,
2873
+ snapMinutes
2874
+ ]
2875
+ );
2876
+ const handleKeyDown = react.useCallback(
2877
+ (keyEvent) => {
2878
+ const direction = keyEvent.key === "ArrowDown" ? 1 : keyEvent.key === "ArrowUp" ? -1 : 0;
2879
+ if (direction === 0) {
2880
+ return;
2881
+ }
2882
+ keyEvent.preventDefault();
2883
+ keyEvent.stopPropagation();
2884
+ const delta = direction * snapMinutes * MILLISECONDS_PER_MINUTE2;
2885
+ const minDuration = MIN_DURATION_MINUTES * MILLISECONDS_PER_MINUTE2;
2886
+ const range = edge === "start" ? {
2887
+ end: event.end,
2888
+ start: Math.min(event.end - minDuration, event.start + delta)
2889
+ } : {
2890
+ end: Math.max(event.start + minDuration, event.end + delta),
2891
+ start: event.start
2892
+ };
2893
+ if (range.start !== event.start || range.end !== event.end) {
2894
+ onResize({ event, ...range });
2895
+ }
2896
+ },
2897
+ [edge, event, onResize, snapMinutes]
2898
+ );
2899
+ return /* @__PURE__ */ jsxRuntime.jsx(
2900
+ "span",
2901
+ {
2902
+ "aria-label": `${edge === "start" ? "Resize start of" : "Resize end of"} ${event.title}`,
2903
+ "aria-orientation": "vertical",
2904
+ "aria-valuemax": event.end,
2905
+ "aria-valuemin": event.start,
2906
+ "aria-valuenow": edge === "start" ? event.start : event.end,
2907
+ className: resizeHandleClassNames[edge],
2908
+ "data-testid": `schedule-event-resize-${edge}-handle-${event.id}`,
2909
+ onClick: (event2) => event2.stopPropagation(),
2910
+ onKeyDown: handleKeyDown,
2911
+ onPointerDown: handlePointerDown,
2912
+ role: "slider",
2913
+ tabIndex: 0
2914
+ }
2915
+ );
2916
+ }
2917
+ function ScheduleEventResizeHandles({
2918
+ event,
2919
+ hourHeight,
2920
+ onResize,
2921
+ snapMinutes
2922
+ }) {
2923
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2924
+ /* @__PURE__ */ jsxRuntime.jsx(
2925
+ ScheduleEventResizeHandle,
2926
+ {
2927
+ edge: "start",
2928
+ event,
2929
+ hourHeight,
2930
+ onResize,
2931
+ snapMinutes
2932
+ }
2933
+ ),
2934
+ /* @__PURE__ */ jsxRuntime.jsx(
2935
+ ScheduleEventResizeHandle,
2936
+ {
2937
+ edge: "end",
2938
+ event,
2939
+ hourHeight,
2940
+ onResize,
2941
+ snapMinutes
2942
+ }
2943
+ )
2944
+ ] });
2945
+ }
2946
+ function createScheduleEventResizePlugin({
2947
+ onResize,
2948
+ snapMinutes = DEFAULT_SNAP_MINUTES2
2949
+ }) {
2950
+ const normalizedSnapMinutes = Number.isFinite(snapMinutes) && snapMinutes > 0 ? Math.max(1, Math.floor(snapMinutes)) : DEFAULT_SNAP_MINUTES2;
2951
+ return {
2952
+ renderTimeGridEventContent({
2953
+ event,
2954
+ hourHeight
2955
+ }) {
2956
+ if (isDayEvent(event)) {
2957
+ return null;
2958
+ }
2959
+ return /* @__PURE__ */ jsxRuntime.jsx(
2960
+ ScheduleEventResizeHandles,
2961
+ {
2962
+ event,
2963
+ hourHeight,
2964
+ onResize,
2965
+ snapMinutes: normalizedSnapMinutes
2966
+ }
2967
+ );
2968
+ }
2969
+ };
2970
+ }
2971
+ function useScheduleEventResizePlugin(options) {
2972
+ const optionsRef = chunkVK7DXUGH_cjs.useLatest_default(options);
2973
+ const onResize = react.useCallback(
2974
+ (change) => {
2975
+ optionsRef.current.onResize(change);
2976
+ },
2977
+ [optionsRef]
2978
+ );
2979
+ return react.useMemo(
2980
+ () => createScheduleEventResizePlugin({
2981
+ onResize,
2982
+ snapMinutes: options.snapMinutes
2983
+ }),
2984
+ [onResize, options.snapMinutes]
2985
+ );
2986
+ }
2987
+ var styles4 = {
2988
+ layout: chunkRU6JG3FS_cjs.css({
2989
+ minW: "80",
2990
+ maxW: "96"
2991
+ }),
2992
+ dot: chunkRU6JG3FS_cjs.css({
2993
+ w: "3",
2994
+ h: "3"
2995
+ }),
2996
+ dateValue: chunkRU6JG3FS_cjs.css({
2997
+ display: "flex",
2998
+ flexDirection: "column"
2999
+ }),
3000
+ footerActions: chunkRU6JG3FS_cjs.css({
3001
+ display: "flex",
3002
+ justifyContent: "flex-end"
3003
+ })
3004
+ };
3005
+ function getEventDateLabel(event, timezoneID) {
3006
+ const startDate = isDayEvent(event) ? event.start : chunkJK4YAQ2N_cjs.plainDateFromInstant(event.start, timezoneID);
3007
+ return formatDate(startDate);
3008
+ }
3009
+ function ScheduleEventPopoverContent({
3010
+ event,
3011
+ onClose,
3012
+ onDelete,
3013
+ onEdit,
3014
+ onRespond
3015
+ }) {
3016
+ const { categoryMap, timezoneID } = useScheduleContext();
3017
+ const [response, setResponse] = react.useState(null);
3018
+ const category = getCategory(categoryMap, event);
3019
+ const dotClass = scheduleEventRecipe({ color: category.color }).dot;
3020
+ return /* @__PURE__ */ jsxRuntime.jsx(
3021
+ chunkH7VK36SZ_cjs.Layout,
3022
+ {
3023
+ className: styles4.layout,
3024
+ content: /* @__PURE__ */ jsxRuntime.jsx(chunkH7VK36SZ_cjs.LayoutContent, { isScrollable: false, padding: 3, children: /* @__PURE__ */ jsxRuntime.jsxs(chunk6ZV7HGZT_cjs.MetadataList, { children: [
3025
+ /* @__PURE__ */ jsxRuntime.jsx(
3026
+ chunk6ZV7HGZT_cjs.MetadataListItem,
3027
+ {
3028
+ icon: lucideReact.CalendarDays,
3029
+ isIconOnly: true,
3030
+ label: "Date and time",
3031
+ children: /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles4.dateValue, children: [
3032
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Text, { children: getEventDateLabel(event, timezoneID) }),
3033
+ /* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Text, { color: "secondary", type: "supporting", children: getEventTimeLabel(event, timezoneID) })
3034
+ ] })
3035
+ }
3036
+ ),
3037
+ event.location != null && event.location !== "" ? /* @__PURE__ */ jsxRuntime.jsx(chunk6ZV7HGZT_cjs.MetadataListItem, { icon: lucideReact.MapPin, isIconOnly: true, label: "Location", children: event.location }) : null,
3038
+ event.description != null && event.description !== "" ? /* @__PURE__ */ jsxRuntime.jsx(chunk6ZV7HGZT_cjs.MetadataListItem, { icon: lucideReact.AlignLeft, isIconOnly: true, label: "Description", children: event.description }) : null,
3039
+ /* @__PURE__ */ jsxRuntime.jsx(chunk6ZV7HGZT_cjs.MetadataListItem, { icon: lucideReact.Tag, isIconOnly: true, label: "Category", children: category.label })
3040
+ ] }) }),
3041
+ "data-testid": "schedule-event-popover",
3042
+ footer: /* @__PURE__ */ jsxRuntime.jsx(chunkH7VK36SZ_cjs.LayoutFooter, { label: "Your response", padding: 3, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.footerActions, children: /* @__PURE__ */ jsxRuntime.jsxs(
3043
+ chunkAFJEAYR4_cjs.ToggleButtonGroup,
3044
+ {
3045
+ label: "Your response",
3046
+ onChange: (value) => {
3047
+ setResponse(value);
3048
+ onRespond?.(event, value);
3049
+ },
3050
+ size: "sm",
3051
+ type: "single",
3052
+ value: response,
3053
+ children: [
3054
+ /* @__PURE__ */ jsxRuntime.jsx(chunkAFJEAYR4_cjs.ToggleButton, { label: "Not Going", value: "not-going" }),
3055
+ /* @__PURE__ */ jsxRuntime.jsx(chunkAFJEAYR4_cjs.ToggleButton, { label: "Maybe", value: "maybe" }),
3056
+ /* @__PURE__ */ jsxRuntime.jsx(
3057
+ chunkAFJEAYR4_cjs.ToggleButton,
3058
+ {
3059
+ "data-testid": "schedule-event-popover-response-going",
3060
+ label: "Going",
3061
+ value: "going"
3062
+ }
3063
+ )
3064
+ ]
3065
+ }
3066
+ ) }) }),
3067
+ header: /* @__PURE__ */ jsxRuntime.jsx(
3068
+ chunkH7VK36SZ_cjs.LayoutHeader,
3069
+ {
3070
+ align: "center",
3071
+ endContent: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3072
+ onEdit != null ? /* @__PURE__ */ jsxRuntime.jsx(
3073
+ chunkVXOIOPGZ_cjs.Button,
3074
+ {
3075
+ "data-testid": "schedule-event-popover-edit",
3076
+ icon: lucideReact.Pencil,
3077
+ isIconOnly: true,
3078
+ label: "Edit event",
3079
+ onClick: () => onEdit(event),
3080
+ size: "sm",
3081
+ variant: "ghost"
3082
+ }
3083
+ ) : null,
3084
+ onDelete != null ? /* @__PURE__ */ jsxRuntime.jsx(
3085
+ chunkVXOIOPGZ_cjs.Button,
3086
+ {
3087
+ "data-testid": "schedule-event-popover-delete",
3088
+ icon: lucideReact.Trash2,
3089
+ isIconOnly: true,
3090
+ label: "Delete event",
3091
+ onClick: () => onDelete(event),
3092
+ size: "sm",
3093
+ variant: "ghost"
3094
+ }
3095
+ ) : null,
3096
+ /* @__PURE__ */ jsxRuntime.jsx(
3097
+ chunkVXOIOPGZ_cjs.Button,
3098
+ {
3099
+ "data-testid": "schedule-event-popover-close",
3100
+ icon: lucideReact.X,
3101
+ isIconOnly: true,
3102
+ label: "Close",
3103
+ onClick: onClose,
3104
+ size: "sm",
3105
+ variant: "ghost"
3106
+ }
3107
+ )
3108
+ ] }),
3109
+ padding: 3,
3110
+ startContent: /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkSPDVNY2Z_cjs.cx(dotClass, styles4.dot) }),
3111
+ title: event.title
3112
+ }
3113
+ ),
3114
+ height: "auto"
3115
+ }
3116
+ );
3117
+ }
3118
+ function createScheduleEventPopoverPlugin(options) {
3119
+ const { renderContent } = options;
3120
+ return {
3121
+ renderEventPopover(event, controls) {
3122
+ const typedEvent = event;
3123
+ if (renderContent != null) {
3124
+ return renderContent({ event: typedEvent, ...controls });
3125
+ }
3126
+ return /* @__PURE__ */ jsxRuntime.jsx(
3127
+ ScheduleEventPopoverContent,
3128
+ {
3129
+ event: typedEvent,
3130
+ onClose: controls.close
3131
+ }
3132
+ );
3133
+ }
3134
+ };
3135
+ }
3136
+ function useScheduleEventPopoverPlugin(options = {}) {
3137
+ const { renderContent } = options;
3138
+ return react.useMemo(
3139
+ () => createScheduleEventPopoverPlugin({ renderContent }),
3140
+ [renderContent]
3141
+ );
3142
+ }
3143
+ function SchedulePaginationControls({
3144
+ onViewDateChange
3145
+ }) {
3146
+ const { view, viewDate } = useScheduleContext();
3147
+ const currentRange = react.useMemo(
3148
+ () => view.getDateRange(viewDate),
3149
+ [view, viewDate]
3150
+ );
3151
+ const previousDateRange = react.useMemo(
3152
+ () => view.getPreviousDateRange(viewDate),
3153
+ [view, viewDate]
3154
+ );
3155
+ const nextDateRange = react.useMemo(
3156
+ () => view.getNextDateRange(viewDate),
3157
+ [view, viewDate]
3158
+ );
3159
+ const shiftToRange = react.useCallback(
3160
+ (nextRange) => {
3161
+ onViewDateChange(
3162
+ viewDate.instant + nextRange[0].instant - currentRange[0].instant
3163
+ );
3164
+ },
3165
+ [currentRange, onViewDateChange, viewDate]
3166
+ );
3167
+ const onPreviousDate = react.useCallback(() => {
3168
+ shiftToRange(previousDateRange.range);
3169
+ }, [previousDateRange, shiftToRange]);
3170
+ const onToday = react.useCallback(() => {
3171
+ onViewDateChange(chunkR37R7DEV_cjs.nowEpochMilliseconds());
3172
+ }, [onViewDateChange]);
3173
+ const onNextDate = react.useCallback(() => {
3174
+ shiftToRange(nextDateRange.range);
3175
+ }, [nextDateRange, shiftToRange]);
3176
+ return /* @__PURE__ */ jsxRuntime.jsxs(chunkKVJ27734_cjs.ButtonGroup, { label: "Schedule pagination", size: "sm", children: [
3177
+ /* @__PURE__ */ jsxRuntime.jsx(
3178
+ chunkVXOIOPGZ_cjs.Button,
3179
+ {
3180
+ icon: lucideReact.ChevronLeft,
3181
+ isIconOnly: true,
3182
+ label: previousDateRange.label,
3183
+ onClick: onPreviousDate
3184
+ }
3185
+ ),
3186
+ /* @__PURE__ */ jsxRuntime.jsx(chunkVXOIOPGZ_cjs.Button, { label: "Today", onClick: onToday, size: "sm" }),
3187
+ /* @__PURE__ */ jsxRuntime.jsx(
3188
+ chunkVXOIOPGZ_cjs.Button,
3189
+ {
3190
+ icon: lucideReact.ChevronRight,
3191
+ isIconOnly: true,
3192
+ label: nextDateRange.label,
3193
+ onClick: onNextDate
3194
+ }
3195
+ )
3196
+ ] });
3197
+ }
3198
+ function createSchedulePaginationPlugin({
3199
+ onViewDateChange,
3200
+ position = "start"
3201
+ }) {
3202
+ return {
3203
+ renderHeader(startContent, centerContent, endContent) {
3204
+ const controls = /* @__PURE__ */ jsxRuntime.jsx(SchedulePaginationControls, { onViewDateChange });
3205
+ return position === "start" ? {
3206
+ centerContent,
3207
+ endContent,
3208
+ startContent: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3209
+ controls,
3210
+ startContent
3211
+ ] })
3212
+ } : {
3213
+ centerContent,
3214
+ endContent: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3215
+ endContent,
3216
+ controls
3217
+ ] }),
3218
+ startContent
3219
+ };
3220
+ }
3221
+ };
3222
+ }
3223
+ function useSchedulePaginationPlugin({
3224
+ onViewDateChange,
3225
+ position = "start"
3226
+ }) {
3227
+ return react.useMemo(
3228
+ () => createSchedulePaginationPlugin({ onViewDateChange, position }),
3229
+ [onViewDateChange, position]
3230
+ );
3231
+ }
3232
+ function ScheduleViewSelectorControl({
3233
+ onChangeView,
3234
+ options
3235
+ }) {
3236
+ const { view } = useScheduleContext();
3237
+ const currentOption = options.find((option) => option.view === view);
3238
+ return /* @__PURE__ */ jsxRuntime.jsx(
3239
+ chunkDFEAB7Z3_cjs.DropdownMenu,
3240
+ {
3241
+ button: {
3242
+ isDisabled: onChangeView == null,
3243
+ label: currentOption?.label ?? "View",
3244
+ size: "sm"
3245
+ },
3246
+ menuWidth: 160,
3247
+ children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
3248
+ chunkDFEAB7Z3_cjs.DropdownMenuItem,
3249
+ {
3250
+ endContent: option.view === view ? /* @__PURE__ */ jsxRuntime.jsx(
3251
+ chunkJ4PIYOWT_cjs.Icon,
3252
+ {
3253
+ color: "primary",
3254
+ "data-testid": "schedule-view-selector-selected-icon",
3255
+ icon: lucideReact.Check,
3256
+ size: "sm"
3257
+ }
3258
+ ) : null,
3259
+ label: option.label,
3260
+ onClick: () => onChangeView?.(option.view)
3261
+ },
3262
+ option.label
3263
+ ))
3264
+ }
3265
+ );
3266
+ }
3267
+ function createScheduleViewSelectorPlugin(options, {
3268
+ onChangeView,
3269
+ position = "end"
3270
+ } = {}) {
3271
+ return {
3272
+ renderHeader(startContent, centerContent, endContent) {
3273
+ const selector = /* @__PURE__ */ jsxRuntime.jsx(
3274
+ ScheduleViewSelectorControl,
3275
+ {
3276
+ onChangeView,
3277
+ options
3278
+ }
3279
+ );
3280
+ return position === "start" ? {
3281
+ centerContent,
3282
+ endContent,
3283
+ startContent: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3284
+ startContent,
3285
+ selector
3286
+ ] })
3287
+ } : {
3288
+ centerContent,
3289
+ endContent: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3290
+ endContent,
3291
+ selector
3292
+ ] }),
3293
+ startContent
3294
+ };
3295
+ }
3296
+ };
3297
+ }
3298
+ function useScheduleViewSelectorPlugin(options, pluginOptions = {}) {
3299
+ const { onChangeView, position = "end" } = pluginOptions;
3300
+ return react.useMemo(
3301
+ () => createScheduleViewSelectorPlugin(options, { onChangeView, position }),
3302
+ [onChangeView, options, position]
3303
+ );
3304
+ }
3305
+
3306
+ // src/components/Schedule/plugins/index.tsx
3307
+ var defaultSchedulePlugins = [];
3308
+ var EMPTY_CATEGORIES = [];
3309
+ function readAsyncEvents(loader, start, end, cache) {
3310
+ const key = `${start}:${end}`;
3311
+ let record = cache.get(key);
3312
+ if (record == null) {
3313
+ record = {
3314
+ error: null,
3315
+ promise: Promise.resolve().then(async () => loader(start, end)).then(
3316
+ (value) => {
3317
+ if (record != null) {
3318
+ record.status = "fulfilled";
3319
+ record.value = value;
3320
+ }
3321
+ },
3322
+ (error) => {
3323
+ if (record != null) {
3324
+ record.status = "rejected";
3325
+ record.error = error;
3326
+ }
3327
+ }
3328
+ ),
3329
+ status: "pending",
3330
+ value: []
3331
+ };
3332
+ cache.set(key, record);
3333
+ }
3334
+ if (record.status === "pending") {
3335
+ throw record.promise;
3336
+ }
3337
+ if (record.status === "rejected") {
3338
+ throw record.error instanceof Error ? record.error : new Error(String(record.error));
3339
+ }
3340
+ return record.value;
3341
+ }
3342
+ function resolveEvents(eventSource, range, timezoneID, eventCache) {
3343
+ const events = typeof eventSource === "function" ? readAsyncEvents(eventSource, range.start, range.end, eventCache) : eventSource;
3344
+ return sortEvents(
3345
+ events.filter((event) => eventOverlapsRange(event, range, timezoneID)),
3346
+ timezoneID
3347
+ );
3348
+ }
3349
+ function useRange(view, date) {
3350
+ const [start, end] = view.getDateRange(date);
3351
+ return react.useMemo(
3352
+ () => ({
3353
+ end: end.instant,
3354
+ endDate: chunkJK4YAQ2N_cjs.plainDateFromInstant(end.instant, end.timezoneID),
3355
+ start: start.instant,
3356
+ startDate: chunkJK4YAQ2N_cjs.plainDateFromInstant(start.instant, start.timezoneID)
3357
+ }),
3358
+ [start.instant, end.instant, start.timezoneID, end.timezoneID]
3359
+ );
3360
+ }
3361
+ function ScheduleViewContent({
3362
+ categories,
3363
+ eventCache,
3364
+ eventSource,
3365
+ highlightDate,
3366
+ isLoading,
3367
+ plugins,
3368
+ view,
3369
+ viewDate
3370
+ }) {
3371
+ const Component = view.component;
3372
+ const range = useRange(view, viewDate);
3373
+ const contextValue = react.useMemo(() => {
3374
+ const categoryMap = createCategoryMap(categories);
3375
+ const events = isLoading ? [] : resolveEvents(eventSource, range, viewDate.timezoneID, eventCache);
3376
+ return {
3377
+ categoryMap,
3378
+ categories,
3379
+ events,
3380
+ highlightDate,
3381
+ isLoading,
3382
+ plugins,
3383
+ range,
3384
+ timezoneID: viewDate.timezoneID,
3385
+ view,
3386
+ viewDate
3387
+ };
3388
+ }, [
3389
+ categories,
3390
+ eventCache,
3391
+ eventSource,
3392
+ highlightDate,
3393
+ isLoading,
3394
+ plugins,
3395
+ range,
3396
+ view,
3397
+ viewDate
3398
+ ]);
3399
+ return /* @__PURE__ */ jsxRuntime.jsx(ScheduleContext, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(Component, { options: view.options }) });
3400
+ }
3401
+ function Schedule({
3402
+ categories = EMPTY_CATEGORIES,
3403
+ className,
3404
+ "data-testid": dataTestId,
3405
+ events,
3406
+ highlightDate: highlightDateFromProps,
3407
+ plugins = defaultSchedulePlugins,
3408
+ ref,
3409
+ style,
3410
+ timezoneID: timezoneIDFromProps,
3411
+ view,
3412
+ viewDate
3413
+ }) {
3414
+ const timezoneID = timezoneIDFromProps ?? chunkR37R7DEV_cjs.getBrowserTimezoneID();
3415
+ const [eventCache] = react.useState(() => /* @__PURE__ */ new Map());
3416
+ const [internalHighlightDate] = react.useState(
3417
+ () => chunkR37R7DEV_cjs.nowEpochMilliseconds()
3418
+ );
3419
+ const highlightDate = highlightDateFromProps ?? internalHighlightDate;
3420
+ const scheduleZonedInstant = react.useMemo(
3421
+ () => createScheduleZonedInstant(viewDate, timezoneID),
3422
+ [viewDate, timezoneID]
3423
+ );
3424
+ const highlightScheduleZonedInstant = react.useMemo(
3425
+ () => createScheduleZonedInstant(highlightDate, timezoneID),
3426
+ [highlightDate, timezoneID]
3427
+ );
3428
+ return /* @__PURE__ */ jsxRuntime.jsx(
3429
+ "div",
3430
+ {
3431
+ className: chunkSPDVNY2Z_cjs.cx(scheduleClasses.root, className),
3432
+ "data-testid": dataTestId,
3433
+ ref,
3434
+ style,
3435
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3436
+ react.Suspense,
3437
+ {
3438
+ fallback: /* @__PURE__ */ jsxRuntime.jsx(
3439
+ ScheduleViewContent,
3440
+ {
3441
+ categories,
3442
+ eventCache,
3443
+ eventSource: [],
3444
+ highlightDate: highlightScheduleZonedInstant,
3445
+ isLoading: true,
3446
+ plugins,
3447
+ view,
3448
+ viewDate: scheduleZonedInstant
3449
+ }
3450
+ ),
3451
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3452
+ ScheduleViewContent,
3453
+ {
3454
+ categories,
3455
+ eventCache,
3456
+ eventSource: events,
3457
+ highlightDate: highlightScheduleZonedInstant,
3458
+ isLoading: false,
3459
+ plugins,
3460
+ view,
3461
+ viewDate: scheduleZonedInstant
3462
+ }
3463
+ )
3464
+ }
3465
+ )
3466
+ }
3467
+ );
3468
+ }
3469
+ Schedule.displayName = "Schedule";
3470
+ function ScheduleWeeklyView({
3471
+ options
3472
+ }) {
3473
+ const { range } = useScheduleContext();
3474
+ const days = enumerateDates(range.startDate, range.endDate);
3475
+ const title = formatWeekTitle(days[0], days[days.length - 1]);
3476
+ return /* @__PURE__ */ jsxRuntime.jsx(ScheduleFrame, { title, titleLabel: title, children: /* @__PURE__ */ jsxRuntime.jsx(
3477
+ TimeGridView,
3478
+ {
3479
+ allDayEventLimit: options.allDayEventLimit,
3480
+ days,
3481
+ hourHeight: options.hourHeight,
3482
+ maxHour: options.maxHour,
3483
+ minHour: options.minHour
3484
+ }
3485
+ ) });
3486
+ }
3487
+ function createScheduleWeeklyView({
3488
+ allDayEventLimit = 3,
3489
+ hourHeight = 100,
3490
+ maxHour = 24,
3491
+ minHour = 0,
3492
+ weekStartsOn = 0
3493
+ } = {}) {
3494
+ const getWeekStart = (date) => setStartOfWeek2(date.toPlainDate(), weekStartsOn);
3495
+ const getWeekRange = (date) => {
3496
+ const startDate = getWeekStart(date);
3497
+ return scheduleRangeToScheduleZonedInstantRange(
3498
+ getScheduleRangeFromDates({
3499
+ endDate: startDate.add({ days: 7 }),
3500
+ startDate,
3501
+ timezoneID: date.timezoneID
3502
+ }),
3503
+ date.timezoneID
3504
+ );
3505
+ };
3506
+ return {
3507
+ component: ScheduleWeeklyView,
3508
+ getDateRange: getWeekRange,
3509
+ getNextDateRange: (date) => ({
3510
+ label: "Next week",
3511
+ range: getWeekRange(date.addDays(7))
3512
+ }),
3513
+ getPreviousDateRange: (date) => ({
3514
+ label: "Previous week",
3515
+ range: getWeekRange(date.addDays(-7))
3516
+ }),
3517
+ options: { allDayEventLimit, hourHeight, maxHour, minHour, weekStartsOn }
3518
+ };
3519
+ }
3520
+ function setStartOfWeek2(date, weekStartsOn) {
3521
+ const daysSinceWeekStart = (chunkJK4YAQ2N_cjs.plainDateDayOfWeek(date) - weekStartsOn + 7) % 7;
3522
+ return date.add({ days: -daysSinceWeekStart });
3523
+ }
3524
+
3525
+ exports.Schedule = Schedule;
3526
+ exports.ScheduleContext = ScheduleContext;
3527
+ exports.ScheduleEventPopoverContent = ScheduleEventPopoverContent;
3528
+ exports.createEventFromISO = createEventFromISO;
3529
+ exports.createScheduleDayView = createScheduleDayView;
3530
+ exports.createScheduleListView = createScheduleListView;
3531
+ exports.createScheduleMonthlyView = createScheduleMonthlyView;
3532
+ exports.createScheduleWeeklyView = createScheduleWeeklyView;
3533
+ exports.defaultSchedulePlugins = defaultSchedulePlugins;
3534
+ exports.useScheduleContext = useScheduleContext;
3535
+ exports.useScheduleEventMovePlugin = useScheduleEventMovePlugin;
3536
+ exports.useScheduleEventPopoverPlugin = useScheduleEventPopoverPlugin;
3537
+ exports.useScheduleEventResizePlugin = useScheduleEventResizePlugin;
3538
+ exports.useSchedulePaginationPlugin = useSchedulePaginationPlugin;
3539
+ exports.useScheduleViewSelectorPlugin = useScheduleViewSelectorPlugin;
3540
+ //# sourceMappingURL=chunk-GJKRSQEA.cjs.map
3541
+ //# sourceMappingURL=chunk-GJKRSQEA.cjs.map