@stfrigerio/sito-template 0.1.72 → 0.1.74

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 (183) hide show
  1. package/dist/components/organisms/Calendar/Calendar.d.ts.map +1 -1
  2. package/dist/index.esm.js +112 -24
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.js +112 -24
  5. package/dist/index.js.map +1 -1
  6. package/dist/styles.css +1 -1
  7. package/dist/styles.css.map +1 -1
  8. package/package.json +1 -1
  9. package/storybook-static/assets/{ASCIIText.stories-BJyiZESR.js → ASCIIText.stories-j8xsB1TG.js} +1 -1
  10. package/storybook-static/assets/{AllAtoms.stories-CgOD8m3f.js → AllAtoms.stories--6Uw2Fcr.js} +1 -1
  11. package/storybook-static/assets/{AnimatedContent.stories-DH-SARB9.js → AnimatedContent.stories-etc-9Hta.js} +1 -1
  12. package/storybook-static/assets/{AnimatedList.stories-Ry_skUA3.js → AnimatedList.stories-DqVxA_Ky.js} +1 -1
  13. package/storybook-static/assets/{Antigravity.stories-BicJnuw8.js → Antigravity.stories-DeqwaQLY.js} +1 -1
  14. package/storybook-static/assets/{ArrayInput.stories-DYpCCBNb.js → ArrayInput.stories-97t9Gs5T.js} +1 -1
  15. package/storybook-static/assets/{Aurora.stories-DPq2ByaS.js → Aurora.stories-DW_vRleP.js} +1 -1
  16. package/storybook-static/assets/{Beams.stories-C-BOpddV.js → Beams.stories-DA9Y3vcg.js} +1 -1
  17. package/storybook-static/assets/{BlobCursor.stories-DD-byYja.js → BlobCursor.stories-tKi0zBTb.js} +1 -1
  18. package/storybook-static/assets/{BlurText.stories-CI-bIIKc.js → BlurText.stories-CKH4Rjq3.js} +1 -1
  19. package/storybook-static/assets/{BooleansHeatmap.stories-CEV0eftd.js → BooleansHeatmap.stories-Bly1P6__.js} +1 -1
  20. package/storybook-static/assets/{BorderGlow.stories-BE-ilp94.js → BorderGlow.stories-Czy1UhDj.js} +1 -1
  21. package/storybook-static/assets/{BubbleMenu.stories-D30td5QP.js → BubbleMenu.stories-Bf8N9TBs.js} +1 -1
  22. package/storybook-static/assets/{Button-B8IhEFx4.js → Button-CfCaQiHk.js} +1 -1
  23. package/storybook-static/assets/{Button.stories-DE36U0Qh.js → Button.stories-BDUQ6PmY.js} +1 -1
  24. package/storybook-static/assets/Calendar-DmOKLbiz.css +1 -0
  25. package/storybook-static/assets/Calendar.stories-Ds0V4NID.js +367 -0
  26. package/storybook-static/assets/{Card-BBPiO_B4.js → Card-DizJF4F1.js} +1 -1
  27. package/storybook-static/assets/{Card.stories-TNOJS00N.js → Card.stories-EwdVtjkF.js} +1 -1
  28. package/storybook-static/assets/{CardNav.stories-t1Bp6iKB.js → CardNav.stories-DLmxJsQG.js} +1 -1
  29. package/storybook-static/assets/{Carousel.stories-D3TV54aM.js → Carousel.stories-BPsb3J9A.js} +1 -1
  30. package/storybook-static/assets/{Checkbox-5p-zbzmi.js → Checkbox-DGpAt-8J.js} +1 -1
  31. package/storybook-static/assets/{Checkbox.stories-8znsCJhi.js → Checkbox.stories-CJTpePMc.js} +1 -1
  32. package/storybook-static/assets/{ChromaGrid.stories-o3p8Qdx1.js → ChromaGrid.stories-DaGNUwWg.js} +1 -1
  33. package/storybook-static/assets/{CircularGallery.stories-BEcnb56N.js → CircularGallery.stories-Dsu6Gscs.js} +1 -1
  34. package/storybook-static/assets/{CircularText.stories-Cac0HQ7O.js → CircularText.stories-CyptnEcC.js} +1 -1
  35. package/storybook-static/assets/{ClickSpark.stories-DS6RKm32.js → ClickSpark.stories-ZJp1SZBJ.js} +1 -1
  36. package/storybook-static/assets/{ColorBends.stories-BLXOpDDP.js → ColorBends.stories-DuwrILJ4.js} +1 -1
  37. package/storybook-static/assets/{CountUp.stories-D0hVlNjf.js → CountUp.stories-D7YnDOqK.js} +1 -1
  38. package/storybook-static/assets/{Counter.stories-D-AgJaFb.js → Counter.stories-Dj17FOO4.js} +1 -1
  39. package/storybook-static/assets/{Crosshair.stories-DuRxpkAA.js → Crosshair.stories-C1CdFmHt.js} +1 -1
  40. package/storybook-static/assets/{Cubes.stories-B2K-6Pv7.js → Cubes.stories-B44CMSHQ.js} +1 -1
  41. package/storybook-static/assets/{CurvedLoop.stories-EBWj-ut7.js → CurvedLoop.stories-DPaXkUxA.js} +1 -1
  42. package/storybook-static/assets/{DarkVeil.stories-BJfxCPIF.js → DarkVeil.stories-lvKTxlx4.js} +1 -1
  43. package/storybook-static/assets/{DateInput-Bl7y2Kqk.js → DateInput-egINzuHs.js} +1 -1
  44. package/storybook-static/assets/{DateInput.stories-C2Lar4bv.js → DateInput.stories-DAh1TDWl.js} +1 -1
  45. package/storybook-static/assets/{DecayCard.stories-DS3y0loD.js → DecayCard.stories-xDW2Su7z.js} +1 -1
  46. package/storybook-static/assets/{DecryptedText.stories-B5vYLMUi.js → DecryptedText.stories-D_g3NeXi.js} +1 -1
  47. package/storybook-static/assets/{Dither.stories-CmPrb3rv.js → Dither.stories-hREUT18G.js} +1 -1
  48. package/storybook-static/assets/{Dock.stories-CakFuVyb.js → Dock.stories-KnYyIfju.js} +1 -1
  49. package/storybook-static/assets/{EditFAB.stories-CFhxg94J.js → EditFAB.stories-BgPV7Q3I.js} +1 -1
  50. package/storybook-static/assets/{EvilEye.stories-BleX83nU.js → EvilEye.stories-D_TG93UD.js} +1 -1
  51. package/storybook-static/assets/{FadeContent.stories-D2-4qOlC.js → FadeContent.stories-DRS18vpt.js} +1 -1
  52. package/storybook-static/assets/{FaultyTerminal.stories-CFARBPp4.js → FaultyTerminal.stories-l31sYY5m.js} +1 -1
  53. package/storybook-static/assets/{Fbo-CfnU58r6.js → Fbo-_jKxR3DO.js} +1 -1
  54. package/storybook-static/assets/{FloatingLines.stories-Bc0U4qae.js → FloatingLines.stories-DpciNTwH.js} +1 -1
  55. package/storybook-static/assets/{FlowingMenu.stories-BKmUrbe6.js → FlowingMenu.stories-CPapwilW.js} +1 -1
  56. package/storybook-static/assets/{FluidGlass.stories-BLJOG8Vu.js → FluidGlass.stories-DgqAN5En.js} +1 -1
  57. package/storybook-static/assets/{Folder.stories-Cxdi_wWi.js → Folder.stories-BVBYFrB4.js} +1 -1
  58. package/storybook-static/assets/{FuzzyText.stories-CUpUQ6nZ.js → FuzzyText.stories-DlH6urgZ.js} +1 -1
  59. package/storybook-static/assets/{Galaxy.stories-D7DFTFa9.js → Galaxy.stories-CT09PFwB.js} +1 -1
  60. package/storybook-static/assets/{GhostCursor.stories-7NVzAeAI.js → GhostCursor.stories-BmBNNHCd.js} +1 -1
  61. package/storybook-static/assets/{GlareHover.stories-DZiYzLd8.js → GlareHover.stories-BXuPH4-V.js} +1 -1
  62. package/storybook-static/assets/{GlassSurface.stories-CGVfI4xp.js → GlassSurface.stories-BcjW_8sa.js} +1 -1
  63. package/storybook-static/assets/{GlitchText.stories-DHeDmX4A.js → GlitchText.stories-BhylvyRh.js} +1 -1
  64. package/storybook-static/assets/{GooeyNav.stories-CM8SswAh.js → GooeyNav.stories-DuVJaLD4.js} +1 -1
  65. package/storybook-static/assets/{GradientBlinds.stories-dLv1UfQ7.js → GradientBlinds.stories-ds-mLLn_.js} +1 -1
  66. package/storybook-static/assets/{GradientText.stories-1BJgOxi2.js → GradientText.stories-DFZKaqGK.js} +1 -1
  67. package/storybook-static/assets/{Grainient.stories-CzG5cjll.js → Grainient.stories-4Asti0DW.js} +1 -1
  68. package/storybook-static/assets/{GridMotion.stories-ItIwnA44.js → GridMotion.stories-B4vha52N.js} +1 -1
  69. package/storybook-static/assets/{ImageSlideshow.stories-C-_yjmyr.js → ImageSlideshow.stories-DtlLSZpX.js} +1 -1
  70. package/storybook-static/assets/{Iridescence.stories-B1aSL1Oh.js → Iridescence.stories-CRk1LpYm.js} +1 -1
  71. package/storybook-static/assets/{LaserFlow.stories-CRvKzX4a.js → LaserFlow.stories-CmyA90TG.js} +1 -1
  72. package/storybook-static/assets/{LetterGlitch.stories-iTeRYMuB.js → LetterGlitch.stories-DxHgF2Yy.js} +1 -1
  73. package/storybook-static/assets/{LightPillar.stories-XpkpeiMs.js → LightPillar.stories-BuIgrXqL.js} +1 -1
  74. package/storybook-static/assets/{LightRays.stories-lQANYMqj.js → LightRays.stories-Sz1QNjAs.js} +1 -1
  75. package/storybook-static/assets/{Lightning.stories-ChKmI-y_.js → Lightning.stories-lU8Z2_gI.js} +1 -1
  76. package/storybook-static/assets/{LineWaves.stories-DhGVNsQB.js → LineWaves.stories-BlJobTVg.js} +1 -1
  77. package/storybook-static/assets/{LiquidChrome.stories-CnkZ7Wr3.js → LiquidChrome.stories--dbq1lwH.js} +1 -1
  78. package/storybook-static/assets/{LiquidEther.stories-BU1_utEW.js → LiquidEther.stories-GBPFMKr8.js} +1 -1
  79. package/storybook-static/assets/{LoadingSpinner-j8Mi9qAD.js → LoadingSpinner-DwJc055H.js} +1 -1
  80. package/storybook-static/assets/{LoadingSpinner.stories-D_3FCjkK.js → LoadingSpinner.stories-w9jb7-f3.js} +1 -1
  81. package/storybook-static/assets/{MagicRings.stories-mxBWDoWy.js → MagicRings.stories-ByQngRmz.js} +1 -1
  82. package/storybook-static/assets/{Magnet.stories-Dz0t_1eS.js → Magnet.stories-VfSBs056.js} +1 -1
  83. package/storybook-static/assets/{MagnetLines.stories-Jy4OaYyY.js → MagnetLines.stories-naWI3y1X.js} +1 -1
  84. package/storybook-static/assets/{Masonry.stories-BRjBN5H3.js → Masonry.stories-D65YoCut.js} +1 -1
  85. package/storybook-static/assets/{MetaBalls.stories-Dfk1k_wH.js → MetaBalls.stories-Debj5Ssn.js} +1 -1
  86. package/storybook-static/assets/{MetallicPaint.stories-C1bMxsZM.js → MetallicPaint.stories-Cw_rRmb6.js} +1 -1
  87. package/storybook-static/assets/{MoodChart.stories-C324AbEU.js → MoodChart.stories-CPYfb3Vh.js} +1 -1
  88. package/storybook-static/assets/{MotionConfigContext-BgQoFUhc.js → MotionConfigContext-D6NZivNz.js} +1 -1
  89. package/storybook-static/assets/{Navbar.stories-sGOUKXXC.js → Navbar.stories-BlXz9F4l.js} +1 -1
  90. package/storybook-static/assets/{Noise.stories-_7O9uBP8.js → Noise.stories-d4cOtpBC.js} +1 -1
  91. package/storybook-static/assets/{NumberStepper-DMw68Bdj.js → NumberStepper-ZN01Ap-l.js} +1 -1
  92. package/storybook-static/assets/{NumberStepper.stories-C34Q1o9V.js → NumberStepper.stories-VjvC6Mcm.js} +1 -1
  93. package/storybook-static/assets/{Orb.stories-Dy5JbOzp.js → Orb.stories-DbxZC5Pq.js} +1 -1
  94. package/storybook-static/assets/{OrbitImages.stories-FfsyN9Iu.js → OrbitImages.stories-DOl9acKl.js} +1 -1
  95. package/storybook-static/assets/{PieChart.stories-OHDVp0RT.js → PieChart.stories-CjZMI917.js} +1 -1
  96. package/storybook-static/assets/{PixelBlast.stories-DFKSutAz.js → PixelBlast.stories-OEKBAcU1.js} +1 -1
  97. package/storybook-static/assets/{PixelCard.stories-CTsY_vyI.js → PixelCard.stories-CiiRb3ws.js} +1 -1
  98. package/storybook-static/assets/{PixelSnow.stories-BlJBcWYF.js → PixelSnow.stories-BBhdEpdz.js} +1 -1
  99. package/storybook-static/assets/{PixelTransition.stories-CmBbK0DM.js → PixelTransition.stories-D1h3Den_.js} +1 -1
  100. package/storybook-static/assets/{Plasma.stories-QX3D_L78.js → Plasma.stories-D2nFMeJk.js} +1 -1
  101. package/storybook-static/assets/{Prism.stories-D48sGYp7.js → Prism.stories-BnwL00ML.js} +1 -1
  102. package/storybook-static/assets/{PrismaticBurst.stories-Dn2F2mIk.js → PrismaticBurst.stories-CLhPte_s.js} +1 -1
  103. package/storybook-static/assets/{ProfileCard.stories-Ct8ww3Sq.js → ProfileCard.stories-BBZbrkcn.js} +1 -1
  104. package/storybook-static/assets/{QuantifiableHabitsChart.stories-DuL527Qx.js → QuantifiableHabitsChart.stories-BfiRGnfQ.js} +1 -1
  105. package/storybook-static/assets/{Radar.stories-ClTlR1N5.js → Radar.stories-D4ZyWw-C.js} +1 -1
  106. package/storybook-static/assets/{Ribbons.stories-R7WgM-S8.js → Ribbons.stories-By-8qFNy.js} +1 -1
  107. package/storybook-static/assets/{RippleGrid.stories-DhMFo-nj.js → RippleGrid.stories-BIX4S-Vo.js} +1 -1
  108. package/storybook-static/assets/{RotatingText.stories-BDF0Yr7Z.js → RotatingText.stories-BOHcZ5K2.js} +1 -1
  109. package/storybook-static/assets/{ScrollFloat.stories-Cyf50ogn.js → ScrollFloat.stories-aNiacoFg.js} +1 -1
  110. package/storybook-static/assets/{ScrollReveal.stories-DzCw2cHi.js → ScrollReveal.stories-DvWFu4ip.js} +1 -1
  111. package/storybook-static/assets/{ScrollVelocity.stories-BofLpgQE.js → ScrollVelocity.stories-DnFqV7uy.js} +1 -1
  112. package/storybook-static/assets/{SearchBar.stories-B5r2LH16.js → SearchBar.stories-C_AjXbnk.js} +1 -1
  113. package/storybook-static/assets/{SearchableDropdown-B6k12izZ.js → SearchableDropdown-BR5vgsXI.js} +1 -1
  114. package/storybook-static/assets/{SearchableDropdown.stories-Bopbhioo.js → SearchableDropdown.stories-BDKkzAZj.js} +1 -1
  115. package/storybook-static/assets/{SelectInput-DRue6-AH.js → SelectInput-DKqA_OVH.js} +1 -1
  116. package/storybook-static/assets/{SelectInput.stories-BTJwfB38.js → SelectInput.stories-CbFRJqhN.js} +1 -1
  117. package/storybook-static/assets/{ShapeBlur.stories-DT3G8P3a.js → ShapeBlur.stories-D72m8aFk.js} +1 -1
  118. package/storybook-static/assets/{ShapeGrid.stories-DlmncXQS.js → ShapeGrid.stories-B-BHl7mw.js} +1 -1
  119. package/storybook-static/assets/{ShinyText.stories-D2oMmZfL.js → ShinyText.stories-Bv-OhYJ6.js} +1 -1
  120. package/storybook-static/assets/{Silk.stories-Dxqi0p3h.js → Silk.stories-CqAHanOq.js} +1 -1
  121. package/storybook-static/assets/{SleepChart.stories-DotKmS0C.js → SleepChart.stories-CZfGluFu.js} +1 -1
  122. package/storybook-static/assets/{Slider-DeiM0g6-.js → Slider-DSsSUHGS.js} +1 -1
  123. package/storybook-static/assets/{Slider.stories-D88AA3EG.js → Slider.stories-CsRWFKJK.js} +1 -1
  124. package/storybook-static/assets/{SoftAurora.stories-BEnpasA2.js → SoftAurora.stories-DsabeFl6.js} +1 -1
  125. package/storybook-static/assets/{SoundDemo.stories-C11x2srG.js → SoundDemo.stories-BoZmCWQ8.js} +1 -1
  126. package/storybook-static/assets/{SplashCursor.stories-Cwszrlxd.js → SplashCursor.stories-CNbhLBnP.js} +1 -1
  127. package/storybook-static/assets/{SpotlightCard.stories-DCt3hEip.js → SpotlightCard.stories-DkQ5I1d8.js} +1 -1
  128. package/storybook-static/assets/{Stack.stories-By_aMVjW.js → Stack.stories-C_k-gD4B.js} +1 -1
  129. package/storybook-static/assets/{StaggeredMenu.stories-eF4uJ1MS.js → StaggeredMenu.stories-BvHCXOtg.js} +1 -1
  130. package/storybook-static/assets/{StarBorder.stories-2kJPpjuh.js → StarBorder.stories-CjgqvUI7.js} +1 -1
  131. package/storybook-static/assets/{SunburstChart.stories-DwZaIIku.js → SunburstChart.stories-CzQ8X8LJ.js} +1 -1
  132. package/storybook-static/assets/{Table.stories-pZd9DvuZ.js → Table.stories-CXHthPhd.js} +1 -1
  133. package/storybook-static/assets/{Tabs.stories-DQtCc0JU.js → Tabs.stories-GyLjrMhv.js} +1 -1
  134. package/storybook-static/assets/{TargetCursor.stories-KNijJURB.js → TargetCursor.stories-DeWDEn-s.js} +1 -1
  135. package/storybook-static/assets/{TextArea-BsBttKqQ.js → TextArea-C4_pRJa8.js} +1 -1
  136. package/storybook-static/assets/{TextArea.stories-oB8MzoXg.js → TextArea.stories-fK1SqQgj.js} +1 -1
  137. package/storybook-static/assets/{TextCursor.stories-D67PSwe-.js → TextCursor.stories-DDazzNqN.js} +1 -1
  138. package/storybook-static/assets/{TextInput-CjoPiwWi.js → TextInput-jndRU6dX.js} +1 -1
  139. package/storybook-static/assets/{TextInput.stories-B8VwO9KM.js → TextInput.stories-CzTyBpKu.js} +1 -1
  140. package/storybook-static/assets/{TextPressure.stories-0-6_dNGJ.js → TextPressure.stories-LSGMK8CF.js} +1 -1
  141. package/storybook-static/assets/{TextType.stories-D7wi-Xoy.js → TextType.stories-C_wJ8HAS.js} +1 -1
  142. package/storybook-static/assets/{ThemeSwitcher.stories-DEUFGF9B.js → ThemeSwitcher.stories-B9YxRdqX.js} +1 -1
  143. package/storybook-static/assets/{Threads.stories-BYTbEuF6.js → Threads.stories-CzJGdrhF.js} +1 -1
  144. package/storybook-static/assets/{TimeInput.stories-_1M5i4X_.js → TimeInput.stories-C0mVKzgI.js} +1 -1
  145. package/storybook-static/assets/{Toggle-CaV_CmDs.js → Toggle-ZNFl7Zf5.js} +1 -1
  146. package/storybook-static/assets/{Toggle.stories-DBdNHwn1.js → Toggle.stories-DeRA-IFt.js} +1 -1
  147. package/storybook-static/assets/{ToggleButton-jv6c5ezW.js → ToggleButton-CfYinXVa.js} +1 -1
  148. package/storybook-static/assets/{ToggleButton.stories-D6AsjlA7.js → ToggleButton.stories-CVKDSxt7.js} +1 -1
  149. package/storybook-static/assets/{TrueFocus.stories-CKc72PLP.js → TrueFocus.stories-o4-m4pDu.js} +1 -1
  150. package/storybook-static/assets/{VariableProximity.stories-fbDCLDLp.js → VariableProximity.stories-BMVF76ti.js} +1 -1
  151. package/storybook-static/assets/{Waves.stories-C_VysexU.js → Waves.stories-Bsm4cTNh.js} +1 -1
  152. package/storybook-static/assets/{check-CV4xXNXR.js → check-CcGKVANr.js} +1 -1
  153. package/storybook-static/assets/{chevron-down-CkJFLecG.js → chevron-down-BL6oos_p.js} +1 -1
  154. package/storybook-static/assets/{chevron-right-BpRTWC1z.js → chevron-right-BOro2OVm.js} +1 -1
  155. package/storybook-static/assets/client-j5HQHA7g.js +1 -0
  156. package/storybook-static/assets/{createLucideIcon-CltDwvOP.js → createLucideIcon-X00nnVkp.js} +1 -1
  157. package/storybook-static/assets/{download-SJcs72V4.js → download-CR0B0bUl.js} +1 -1
  158. package/storybook-static/assets/{folder-6SjOmErA.js → folder-NtiCUKr7.js} +1 -1
  159. package/storybook-static/assets/{iconBase-DtvD0saU.js → iconBase-D4ELiZwq.js} +1 -1
  160. package/storybook-static/assets/{iframe-Bipsh9dY.js → iframe-0Lx_Gg0M.js} +3 -3
  161. package/storybook-static/assets/{index-Cia0c3io.js → index-DC1KDIA7.js} +1 -1
  162. package/storybook-static/assets/{index-BEA1mHaT.js → index-UFKsHW_W.js} +1 -1
  163. package/storybook-static/assets/{index-CTm0VtvQ.js → index-sWjLcHSO.js} +1 -1
  164. package/storybook-static/assets/{proxy-D9bljBhB.js → proxy-BKn6lL2c.js} +1 -1
  165. package/storybook-static/assets/{react-18-JTQzpdif.js → react-18-BPQ6iK-n.js} +1 -1
  166. package/storybook-static/assets/{react-three-fiber.esm-Dc5EQDgd.js → react-three-fiber.esm-CzGemEFc.js} +1 -1
  167. package/storybook-static/assets/{search-DH8smCRL.js → search-C1RQusWF.js} +1 -1
  168. package/storybook-static/assets/{settings-D99Exe-t.js → settings-CSFhIwio.js} +1 -1
  169. package/storybook-static/assets/{sun-B6fJHO8-.js → sun-BI1jVlRN.js} +1 -1
  170. package/storybook-static/assets/{trash-2-Bc-vtAZE.js → trash-2-BH9Df1AO.js} +1 -1
  171. package/storybook-static/assets/{use-animation-frame-CD6uZr8a.js → use-animation-frame-cfKOttYo.js} +1 -1
  172. package/storybook-static/assets/{use-in-view-DrFhenAa.js → use-in-view-CArLjB-c.js} +1 -1
  173. package/storybook-static/assets/{use-motion-value-wsIqdv-r.js → use-motion-value-CDeI3wJO.js} +1 -1
  174. package/storybook-static/assets/{use-spring-C6saxCCT.js → use-spring-C-KD4gvs.js} +1 -1
  175. package/storybook-static/assets/{use-transform-DuAStHvG.js → use-transform-BZD0Xyag.js} +1 -1
  176. package/storybook-static/assets/{useSound-BwsWxODM.js → useSound-D-J1T6nx.js} +1 -1
  177. package/storybook-static/assets/{users-GH_nMWDP.js → users-BNBikfx_.js} +1 -1
  178. package/storybook-static/assets/{x-DwbjixG_.js → x-CinnmsFm.js} +1 -1
  179. package/storybook-static/iframe.html +1 -1
  180. package/storybook-static/project.json +1 -1
  181. package/storybook-static/assets/Calendar-E_-F3UEV.css +0 -1
  182. package/storybook-static/assets/Calendar.stories-BgzQTcGv.js +0 -367
  183. package/storybook-static/assets/client-Cor4ozso.js +0 -1
@@ -1,367 +0,0 @@
1
- import{r as x,j as e}from"./iframe-Bipsh9dY.js";import{u as st}from"./use-motion-value-wsIqdv-r.js";import{u as nn}from"./use-transform-DuAStHvG.js";import{m as Ie}from"./proxy-D9bljBhB.js";import{T as an}from"./trash-2-Bc-vtAZE.js";import{c as Rt}from"./createLucideIcon-CltDwvOP.js";import{C as on}from"./check-CV4xXNXR.js";import{a as be}from"./index-BEA1mHaT.js";import{D as rn}from"./download-SJcs72V4.js";import"./preload-helper-C1FmrZbK.js";import"./MotionConfigContext-BgQoFUhc.js";/**
2
- * @license lucide-react v0.539.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const sn=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],ln=Rt("grip-vertical",sn);/**
7
- * @license lucide-react v0.539.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const dn=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],cn=Rt("pencil",dn),mn="_calendar_abdfq_2",un="_loading_abdfq_14",pn="_loadingSpinner_abdfq_21",fn="_header_abdfq_27",gn="_navigation_abdfq_35",vn="_navButton_abdfq_41",hn="_title_abdfq_60",yn="_controls_abdfq_70",wn="_exportDropdown_abdfq_76",Dn="_exportButton_abdfq_80",_n="_exportMenu_abdfq_98",bn="_exportMenuItem_abdfq_113",xn="_todayButton_abdfq_130",Sn="_viewToggle_abdfq_146",kn="_viewButton_abdfq_153",Cn="_active_abdfq_167",Tn="_filterBar_abdfq_177",En="_filterPill_abdfq_186",jn="_filterPillActive_abdfq_205",Nn="_filterDot_abdfq_211",Hn="_weekDays_abdfq_219",Mn="_withWeekNumbers_abdfq_226",qn="_weekNumberHeader_abdfq_230",$n="_weekDay_abdfq_219",Ln="_daysGrid_abdfq_247",In="_dayCell_abdfq_263",Pn="_dayNumber_abdfq_292",Bn="_today_abdfq_130",Fn="_events_abdfq_311",Wn="_event_abdfq_311",An="_eventTitle_abdfq_338",On="_eventTime_abdfq_347",Rn="_otherMonth_abdfq_392",Vn="_selected_abdfq_397",zn="_compact_abdfq_409",Gn="_dots_abdfq_432",Un="_dot_abdfq_432",Yn="_dotMore_abdfq_447",Xn="_weekNumberCell_abdfq_454",Jn="_completed_abdfq_500",Qn="_completedIcon_abdfq_521",Kn="_moreEvents_abdfq_528",Zn="_emptyState_abdfq_538",ea="_dayView_abdfq_548",ta="_dayViewHeader_abdfq_557",na="_timeColumnHeader_abdfq_567",aa="_dayColumnHeader_abdfq_574",oa="_allDayStrip_abdfq_584",ra="_allDayLabel_abdfq_592",sa="_allDayList_abdfq_603",ia="_dayViewScrollContainer_abdfq_626",la="_dayTimelineGrid_abdfq_635",da="_hourRow_abdfq_640",ca="_hourLabel_abdfq_646",ma="_hourSlots_abdfq_657",ua="_halfHourSlot_abdfq_664",pa="_halfHourSlotBottom_abdfq_674",fa="_dayEventAnchor_abdfq_679",ga="_weekTimeline_abdfq_687",va="_weekTimelineHeader_abdfq_696",ha="_weekDayColumnHeader_abdfq_708",ya="_weekDayLabel_abdfq_742",wa="_weekDayNumber_abdfq_750",Da="_weekTimelineScroll_abdfq_755",_a="_weekTimelineGrid_abdfq_763",ba="_weekTimeColumn_abdfq_769",xa="_weekTimeSlot_abdfq_777",Sa="_weekHourLabel_abdfq_784",ka="_weekDayColumns_abdfq_790",Ca="_weekDayColumn_abdfq_708",Ta="_weekHourRow_abdfq_808",Ea="_weekEventAnchor_abdfq_814",ja="_currentTimeIndicator_abdfq_822",n={calendar:mn,loading:un,loadingSpinner:pn,header:fn,navigation:gn,navButton:vn,title:hn,controls:yn,exportDropdown:wn,exportButton:Dn,exportMenu:_n,exportMenuItem:bn,todayButton:xn,viewToggle:Sn,viewButton:kn,active:Cn,filterBar:Tn,filterPill:En,filterPillActive:jn,filterDot:Nn,weekDays:Hn,withWeekNumbers:Mn,weekNumberHeader:qn,weekDay:$n,daysGrid:Ln,dayCell:In,dayNumber:Pn,today:Bn,events:Fn,event:Wn,eventTitle:An,eventTime:On,otherMonth:Rn,selected:Vn,compact:zn,dots:Gn,dot:Un,dotMore:Yn,weekNumberCell:Xn,completed:Jn,completedIcon:Qn,moreEvents:Kn,emptyState:Zn,dayView:ea,dayViewHeader:ta,timeColumnHeader:na,dayColumnHeader:aa,allDayStrip:oa,allDayLabel:ra,allDayList:sa,dayViewScrollContainer:ia,dayTimelineGrid:la,hourRow:da,hourLabel:ca,hourSlots:ma,halfHourSlot:ua,halfHourSlotBottom:pa,dayEventAnchor:fa,weekTimeline:ga,weekTimelineHeader:va,weekDayColumnHeader:ha,weekDayLabel:ya,weekDayNumber:wa,weekTimelineScroll:Da,weekTimelineGrid:_a,weekTimeColumn:ba,weekTimeSlot:xa,weekHourLabel:Sa,weekDayColumns:ka,weekDayColumn:Ca,weekHourRow:Ta,weekEventAnchor:Ea,currentTimeIndicator:ja},Na="_wrapper_nyv1b_1",Ha="_deleteUnderlay_nyv1b_7",Ma="_card_nyv1b_23",qa="_dragging_nyv1b_43",$a="_completed_nyv1b_49",La="_text_nyv1b_53",Ia="_grip_nyv1b_57",Pa="_checkIcon_nyv1b_77",Ba="_time_nyv1b_89",Fa="_editButton_nyv1b_96",B={wrapper:Na,deleteUnderlay:Ha,card:Ma,dragging:qa,completed:$a,text:La,grip:Ia,checkIcon:Pa,time:Ba,editButton:Fa},Wa=-80,Le=({event:o,color:a,textColor:s,onComplete:l,onEdit:d,onDelete:u,onDragEnd:c,draggable:h=!0})=>{const w=st(0),b=st(0),D=nn(w,[-80,0],[1,0]),[C,j]=x.useState(!1),L=x.useRef(!1),H=x.useRef(null),K=o.status==="completed",R=(p,z)=>{u&&z.offset.x<Wa?be(w,-1e3,{duration:.2,onComplete:()=>u(o)}):be(w,0,{type:"spring",stiffness:400,damping:30})},Z=()=>{if(L.current){L.current=!1;return}C||l==null||l(o)},le=p=>{!h||!c||(p.stopPropagation(),p.preventDefault(),H.current={x:p.clientX,y:p.clientY,pointerId:p.pointerId},p.currentTarget.setPointerCapture(p.pointerId),j(!0))},ee=p=>{H.current&&(w.set(p.clientX-H.current.x),b.set(p.clientY-H.current.y))},de=p=>{if(!H.current)return;const z=p.clientY,_=p.clientX;try{p.currentTarget.releasePointerCapture(H.current.pointerId)}catch{}H.current=null,j(!1),be(b,0,{type:"spring",stiffness:400,damping:30}),be(w,0,{type:"spring",stiffness:400,damping:30}),c==null||c(z,_)},V=!!u,ce=h&&!!c;return e.jsxs("div",{className:B.wrapper,children:[V&&e.jsxs(Ie.div,{className:B.deleteUnderlay,style:{opacity:D},children:[e.jsx(an,{size:16}),e.jsx("span",{children:"Delete"})]}),e.jsxs(Ie.div,{className:`${B.card} ${K?B.completed:""} ${C?B.dragging:""}`,style:{x:w,y:b,background:a,color:s,borderLeftColor:a},drag:V&&!C?"x":!1,dragConstraints:V?{left:-200,right:0}:void 0,dragElastic:.15,dragDirectionLock:!0,onDragStart:()=>{L.current=!0},onDragEnd:R,whileTap:C?void 0:{scale:.98},animate:C?{scale:1.03}:{scale:1},onClick:Z,children:[ce&&e.jsx("div",{className:B.grip,onPointerDown:le,onPointerMove:ee,onPointerUp:de,onPointerCancel:de,onClick:p=>p.stopPropagation(),children:e.jsx(ln,{size:14})}),K&&e.jsx(on,{size:14,className:B.checkIcon,strokeWidth:3}),e.jsx("span",{className:B.text,children:o.title}),o.time&&e.jsx("span",{className:B.time,children:o.time}),d&&e.jsx("button",{className:B.editButton,onClick:p=>{p.stopPropagation(),d(o)},"aria-label":"Edit event",children:e.jsx(cn,{size:13})})]})]})};Le.__docgenInfo={description:"",methods:[],displayName:"DayEventCard",props:{draggable:{defaultValue:{value:"true",computed:!1},required:!1}}};const fe=["id","title","date","time","endTime","allDay","type","status","priority","category"],Aa=o=>(typeof o=="string"?new Date(o):o).toISOString(),Ge=o=>{const a={};for(const s of fe){const l=o[s];l!==void 0&&(a[s]=s==="date"?Aa(l):l)}return a},Oa=o=>{if(o==null)return"";const a=String(o);return/[",\n\r]/.test(a)?`"${a.replace(/"/g,'""')}"`:a},Ra=o=>{const a=fe.join(","),s=o.map(l=>{const d=Ge(l);return fe.map(u=>Oa(d[u])).join(",")});return[a,...s].join(`
12
- `)},Va=o=>JSON.stringify(o.map(Ge),null,2),za=o=>{if(o==null)return"";const a=String(o);return/[",\n\r]/.test(a)?`"${a.replace(/"/g,'""')}"`:a},Ga=o=>{const a=`events[${o.length}]{${fe.join(",")}}:`,s=o.map(l=>{const d=Ge(l);return" "+fe.map(u=>za(d[u])).join(",")});return[a,...s].join(`
13
- `)},Ua={csv:"text/csv;charset=utf-8;",json:"application/json;charset=utf-8;",toon:"text/plain;charset=utf-8;"},Ya={csv:"csv",json:"json",toon:"toon"},Xa=(o,a)=>a==="csv"?Ra(o):a==="json"?Va(o):Ga(o),Ja=(o,a,s)=>{const l=Xa(o,a),d=new Blob([l],{type:Ua[a]}),u=URL.createObjectURL(d),c=document.createElement("a");c.href=u,c.download=`events-${new Date().toISOString().slice(0,10)}.${Ya[a]}`,document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(u)};function se({events:o,onEventClick:a,onDateClick:s,onEventClickByView:l,onDateClickByView:d,onTimeSlotClick:u,onEventDrop:c,onEventComplete:h,onEventDelete:w,onEventEdit:b,viewMode:D="month",initialDate:C=new Date,config:j={},className:L="",style:H={},loading:K=!1,emptyState:R,hideHeader:Z=!1,compact:le=!1,selectedDate:ee,selectedCategoryId:de,onCategoryChange:V,exportFormats:ce}){const[p,z]=x.useState(C),[_,Be]=x.useState(D),[zt,Gt]=x.useState(null),Ue=de!==void 0,te=Ue?de??null:zt,Ye=t=>{Ue||Gt(t),V==null||V(t)},Fe=x.useRef(null),We=x.useRef(null),[ge,Ae]=x.useState(!1),Oe=x.useRef(null);x.useEffect(()=>{if(!ge)return;const t=r=>{Oe.current&&!Oe.current.contains(r.target)&&Ae(!1)};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[ge]);const{eventColors:Xe={},iconRenderer:Je,maxEventsPerDay:G=3,mondayStart:me=!1,showWeekNumbers:ve=!1,dateFormat:Qe={month:"long",year:"numeric"},locale:U="en-US",dayLabels:Ut,monthNames:he,startHour:I=0,endHour:Ke=24,hourHeight:T=60,halfHourSlots:P=!1,categories:ne}=j,Ze=x.useMemo(()=>!ne||ne.length===0||te===null?o:o.filter(t=>!t.category||t.category===te),[o,ne,te]),Yt=Ut||(me?["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),et=(j==null?void 0:j.hourHeight)??60,tt=(j==null?void 0:j.startHour)??0,ue=x.useMemo(()=>{const t=p.getFullYear(),r=p.getMonth();let f,m,S;if(_==="week"){f=new Date(p);const q=f.getDay(),y=me?f.getDate()-q+(q===0?-6:1):f.getDate()-q;f=new Date(f.setDate(y)),f.setHours(0,0,0,0),m=new Date(f),m.setDate(m.getDate()+6);const W=f.toLocaleDateString(U,{day:"numeric",month:"short"}),$=m.toLocaleDateString(U,{day:"numeric",month:"short"});S=`${W} - ${$}`}else if(_==="day")f=new Date(p),f.setHours(0,0,0,0),m=new Date(p),m.setHours(23,59,59,999),S=p.toLocaleDateString(U,{weekday:"long",year:"numeric",month:"long",day:"numeric"});else{const q=new Date(t,r,1),y=new Date(t,r+1,0);f=new Date(q);const W=me?(q.getDay()+6)%7:q.getDay();f.setDate(f.getDate()-W),m=new Date(y);const $=me?(y.getDay()+6)%7:y.getDay();m.setDate(m.getDate()+(6-$)),he&&he[r]?S=`${he[r]} ${t}`:S=p.toLocaleDateString(U,Qe)}const N=[],M=new Date(f);for(;M<=m;)N.push(new Date(M)),M.setDate(M.getDate()+1);return{days:N,displayTitle:S}},[p,_,me,U,Qe,he]);x.useEffect(()=>{const t=_==="day"?Fe:_==="week"?We:null;if(!(t!=null&&t.current))return;const r=new Date;if(!(_==="day"?p.toDateString()===r.toDateString():ue.days.some(N=>N.toDateString()===r.toDateString())))return;const m=(r.getHours()-tt)*60+r.getMinutes(),S=Math.max(0,m/60*et-100);setTimeout(()=>{t.current&&(t.current.scrollTop=S)},0)},[_,p,tt,et,ue]);const Re=t=>{const r=Ze.filter(f=>new Date(f.date).toDateString()===t.toDateString());return _==="week"?r.sort((f,m)=>{const S=f.time?nt(f.time):999999,N=m.time?nt(m.time):999999;return S-N}):r},nt=t=>{const[r,f]=t.split(":").map(Number);return r*60+f},Xt=()=>{const t=new Date(p);_==="week"?t.setDate(t.getDate()-7):_==="day"?t.setDate(t.getDate()-1):t.setMonth(t.getMonth()-1),z(t)},Jt=()=>{const t=new Date(p);_==="week"?t.setDate(t.getDate()+7):_==="day"?t.setDate(t.getDate()+1):t.setMonth(t.getMonth()+1),z(t)},Qt=()=>{z(new Date)},ae=t=>{if(t.color)return t.color;if(t.type&&Xe[t.type])return Xe[t.type];const r={high:"#FF4444",medium:"#FFA500",low:"#4A90E2"};return t.priority&&r[t.priority]?r[t.priority]:"#4A90E2"},Kt=t=>{const r=t.replace("#",""),f=parseInt(r.substring(0,2),16),m=parseInt(r.substring(2,4),16),S=parseInt(r.substring(4,6),16);return(.299*f+.587*m+.114*S)/255>.5?"#000000":"#FFFFFF"},ye=t=>{if(t.textColor)return t.textColor;const r=ae(t);return Kt(r)},we=t=>{l&&l[_]?l[_](t):a&&a(t)},at=t=>{d&&d[_]?d[_](t):s&&s(t)},Zt=t=>{const r=new Date;return t.toDateString()===r.toDateString()},en=t=>t.getMonth()===p.getMonth(),tn=t=>{const r=new Date(t.getFullYear(),0,1),f=t.getTime()-r.getTime(),m=1e3*60*60*24*7;return Math.floor(f/m)+1};return K?e.jsx("div",{className:`${n.calendar} ${n.loading} ${L}`,style:H,children:e.jsx("div",{className:n.loadingSpinner,children:"Loading..."})}):e.jsxs("div",{className:`${n.calendar} ${le?n.compact:""} ${L}`,style:H,children:[!Z&&e.jsxs("div",{className:n.header,children:[e.jsxs("div",{className:n.navigation,children:[e.jsx("button",{onClick:Xt,className:n.navButton,"aria-label":"Previous",children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"15,18 9,12 15,6"})})}),e.jsx("h3",{className:n.title,children:ue.displayTitle}),e.jsx("button",{onClick:Jt,className:n.navButton,"aria-label":"Next",children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"9,6 15,12 9,18"})})})]}),ne&&ne.length>0&&e.jsxs("div",{className:n.filterBar,role:"tablist","aria-label":"Filter by category",children:[e.jsx("button",{type:"button",role:"tab","aria-selected":te===null,className:`${n.filterPill} ${te===null?n.filterPillActive:""}`,onClick:()=>Ye(null),children:"All"}),ne.map(t=>{const r=te===t.id;return e.jsxs("button",{type:"button",role:"tab","aria-selected":r,className:`${n.filterPill} ${r?n.filterPillActive:""}`,style:r?{background:t.color,borderColor:t.color,color:"#ffffff"}:void 0,onClick:()=>Ye(t.id),children:[!r&&e.jsx("span",{className:n.filterDot,style:{background:t.color}}),t.label]},t.id)})]}),e.jsxs("div",{className:n.controls,children:[ce&&ce.length>0&&e.jsxs("div",{className:n.exportDropdown,ref:Oe,children:[e.jsx("button",{type:"button",className:n.exportButton,onClick:()=>Ae(t=>!t),"aria-haspopup":"menu","aria-expanded":ge,"aria-label":"Export events",title:"Export events",children:e.jsx(rn,{size:16})}),ge&&e.jsx("div",{className:n.exportMenu,role:"menu",children:ce.map(t=>e.jsx("button",{type:"button",role:"menuitem",className:n.exportMenuItem,onClick:()=>{Ja(Ze,t),Ae(!1)},children:t.toUpperCase()},t))})]}),e.jsx("button",{onClick:Qt,className:n.todayButton,children:"Today"}),e.jsxs("div",{className:n.viewToggle,children:[e.jsx("button",{className:`${n.viewButton} ${_==="month"?n.active:""}`,onClick:()=>Be("month"),children:"Month"}),e.jsx("button",{className:`${n.viewButton} ${_==="week"?n.active:""}`,onClick:()=>Be("week"),children:"Week"}),e.jsx("button",{className:`${n.viewButton} ${_==="day"?n.active:""}`,onClick:()=>Be("day"),children:"Day"})]})]})]}),_==="month"&&e.jsxs("div",{className:`${n.weekDays} ${ve?n.withWeekNumbers:""}`,children:[ve&&e.jsx("div",{className:n.weekNumberHeader,children:"Wk"}),Yt.map(t=>e.jsx("div",{className:n.weekDay,children:t},t))]}),_==="day"?(()=>{const t=Re(p),r=t.filter(i=>!i.allDay&&i.time),f=t.filter(i=>i.allDay||!i.time),m=Array.from({length:Ke-I},(i,g)=>I+g),S=m.length*T,N=new Date,M=p.toDateString()===N.toDateString(),y=((N.getHours()-I)*60+N.getMinutes())/60*T,W=M&&y>=0&&y<=S,$=i=>{const[g,E]=i.split(":").map(Number);return g*60+E},Ve=i=>{if(!i.time||!i.endTime)return 30;const g=$(i.endTime)-$(i.time);return g>0?g:30},v=(i,g)=>{if(u){const E=new Date(p);E.setHours(i,g,0,0);const A=`${i.toString().padStart(2,"0")}:${g.toString().padStart(2,"0")}`;u(E,i,A)}},k=(i,g)=>{var _e;if(!c)return;const E=(_e=Fe.current)==null?void 0:_e.querySelector(`.${n.dayTimelineGrid}`);if(!E)return;const A=E.getBoundingClientRect(),Y=g-A.top,X=P?T/2:T,O=Math.max(0,Math.floor(Y/X)),J=P?m.length*2:m.length,Q=Math.min(J-1,O),ze=I+Math.floor(P?Q/2:Q),pe=P&&Q%2===1?30:0,De=new Date(p);De.setHours(ze,pe,0,0),c(i,De)};return e.jsxs("div",{className:n.dayView,children:[e.jsxs("div",{className:n.dayViewHeader,children:[e.jsx("div",{className:n.timeColumnHeader}),e.jsx("div",{className:n.dayColumnHeader,children:p.toLocaleDateString(U,{weekday:"short",day:"numeric"})})]}),f.length>0&&e.jsxs("div",{className:n.allDayStrip,children:[e.jsx("span",{className:n.allDayLabel,children:"All day"}),e.jsx("div",{className:n.allDayList,children:f.map(i=>e.jsx(Le,{event:i,color:ae(i),textColor:ye(i),onComplete:h??(a?we:void 0),onEdit:b,onDelete:w,draggable:!1},i.id))})]}),e.jsx("div",{className:n.dayViewScrollContainer,ref:Fe,children:e.jsxs("div",{className:n.dayTimelineGrid,style:{height:S},children:[m.map(i=>e.jsxs("div",{className:n.hourRow,style:{height:T},children:[e.jsxs("span",{className:n.hourLabel,children:[i.toString().padStart(2,"0"),":00"]}),e.jsx("div",{className:n.hourSlots,children:P?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:n.halfHourSlot,onClick:()=>v(i,0)}),e.jsx("div",{className:`${n.halfHourSlot} ${n.halfHourSlotBottom}`,onClick:()=>v(i,30)})]}):e.jsx("div",{className:n.halfHourSlot,onClick:()=>v(i,0)})})]},i)),r.map(i=>{const[g,E]=i.time.split(":").map(Number),A=(g-I)*T+E/60*T,Y=Ve(i),X=Math.max(24,Y/60*T-2);return e.jsx("div",{className:n.dayEventAnchor,style:{top:A,height:X},onClick:O=>O.stopPropagation(),children:e.jsx(Le,{event:i,color:ae(i),textColor:ye(i),onComplete:h??(a?we:void 0),onEdit:b,onDelete:w,onDragEnd:c?O=>k(i,O):void 0})},i.id)}),W&&e.jsx("div",{className:n.currentTimeIndicator,style:{top:`${y}px`}})]})})]})})():_==="week"?(()=>{const t=ue.days,r=Array.from({length:Ke-I},(v,k)=>I+k),f=r.length*T,m=new Date,S=t.findIndex(v=>v.toDateString()===m.toDateString()),M=((m.getHours()-I)*60+m.getMinutes())/60*T,q=S>=0&&M>=0&&M<=f,y=v=>{const[k,i]=v.split(":").map(Number);return k*60+i},W=v=>{if(!v.time||!v.endTime)return 30;const k=y(v.endTime)-y(v.time);return k>0?k:30},$=(v,k,i)=>{if(!u)return;const g=new Date(v);g.setHours(k,i,0,0);const E=`${k.toString().padStart(2,"0")}:${i.toString().padStart(2,"0")}`;u(g,k,E)},Ve=(v,k,i)=>{var rt;if(!c)return;const g=(rt=We.current)==null?void 0:rt.querySelector(`.${n.weekDayColumns}`);if(!g)return;const E=g.getBoundingClientRect(),A=i-E.left,Y=k-E.top,X=E.width/7,O=Math.min(6,Math.max(0,Math.floor(A/X))),J=t[O],Q=P?T/2:T,ze=P?r.length*2:r.length,pe=Math.min(ze-1,Math.max(0,Math.floor(Y/Q))),De=I+Math.floor(P?pe/2:pe),_e=P&&pe%2===1?30:0,ot=new Date(J);ot.setHours(De,_e,0,0),c(v,ot)};return e.jsxs("div",{className:n.weekTimeline,children:[e.jsxs("div",{className:n.weekTimelineHeader,children:[e.jsx("div",{className:n.timeColumnHeader}),t.map(v=>{const k=v.toDateString()===m.toDateString(),i=ee&&v.toDateString()===ee.toDateString();return e.jsxs("button",{type:"button",className:`${n.weekDayColumnHeader} ${k?n.today:""} ${i?n.selected:""}`,onClick:()=>at(v),children:[e.jsx("span",{className:n.weekDayLabel,children:v.toLocaleDateString(U,{weekday:"short"})}),e.jsx("span",{className:n.weekDayNumber,children:v.getDate()})]},v.toISOString())})]}),e.jsx("div",{className:n.weekTimelineScroll,ref:We,children:e.jsxs("div",{className:n.weekTimelineGrid,style:{height:f},children:[e.jsx("div",{className:n.weekTimeColumn,children:r.map(v=>e.jsx("div",{className:n.weekTimeSlot,style:{height:T},children:e.jsxs("span",{className:n.weekHourLabel,children:[v.toString().padStart(2,"0"),":00"]})},v))}),e.jsx("div",{className:n.weekDayColumns,children:t.map(v=>{const k=Re(v).filter(g=>!g.allDay&&g.time),i=v.toDateString()===m.toDateString();return e.jsxs("div",{className:n.weekDayColumn,children:[r.map(g=>e.jsx("div",{className:n.weekHourRow,style:{height:T},children:P?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:n.halfHourSlot,onClick:()=>$(v,g,0)}),e.jsx("div",{className:`${n.halfHourSlot} ${n.halfHourSlotBottom}`,onClick:()=>$(v,g,30)})]}):e.jsx("div",{className:n.halfHourSlot,onClick:()=>$(v,g,0)})},g)),k.map(g=>{const[E,A]=g.time.split(":").map(Number),Y=(E-I)*T+A/60*T,X=W(g),O=Math.max(24,X/60*T-2);return e.jsx("div",{className:n.weekEventAnchor,style:{top:Y,height:O},onClick:J=>J.stopPropagation(),children:e.jsx(Le,{event:g,color:ae(g),textColor:ye(g),onComplete:h??(a?we:void 0),onEdit:b,onDelete:w,onDragEnd:c?(J,Q)=>Ve(g,J,Q):void 0})},g.id)}),i&&q&&e.jsx("div",{className:n.currentTimeIndicator,style:{top:`${M}px`,left:0}})]},v.toISOString())})})]})})]})})():(()=>{const t=le?void 0:40+G*24;return e.jsx("div",{className:`${n.daysGrid} ${ve?n.withWeekNumbers:""}`,children:ue.days.map((r,f)=>{const m=Re(r),S=Zt(r),N=en(r),M=ve&&f%7===0,q=ee&&r.toDateString()===ee.toDateString();return e.jsxs(x.Fragment,{children:[M&&e.jsx("div",{className:n.weekNumberCell,style:t!==void 0?{height:t,minHeight:t}:void 0,children:tn(r)}),e.jsxs(Ie.div,{className:`${n.dayCell} ${S?n.today:""} ${N?"":n.otherMonth} ${q?n.selected:""}`,style:t!==void 0?{height:t,minHeight:t}:void 0,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.3,delay:f*.02,ease:"easeOut"},onClick:()=>at(r),children:[e.jsx("div",{className:n.dayNumber,children:r.getDate()}),m.length>0&&le&&_==="month"?e.jsxs("div",{className:n.dots,children:[m.slice(0,G).map(y=>e.jsx("span",{className:n.dot,style:{backgroundColor:ae(y)}},y.id)),m.length>G&&e.jsxs("span",{className:n.dotMore,children:["+",m.length-G]})]}):m.length>0?e.jsxs("div",{className:n.events,children:[m.slice(0,G).map((y,W)=>e.jsxs(Ie.div,{className:`${n.event} ${y.status==="completed"?n.completed:""}`,style:{backgroundColor:ae(y),color:ye(y),opacity:y.status==="completed"?.7:1},onClick:$=>{$.stopPropagation(),we(y)},initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{duration:.2,delay:W*.05,ease:"easeOut"},whileHover:{scale:1.02,y:-1,transition:{duration:.1}},whileTap:{scale:.98,transition:{duration:.1}},children:[Je&&Je(y),e.jsxs("span",{className:n.eventTitle,children:[y.time&&e.jsx("span",{className:n.eventTime,children:y.time}),y.title]}),y.status==="completed"&&e.jsx("svg",{className:n.completedIcon,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"20,6 9,17 4,12"})})]},y.id)),m.length>G&&e.jsxs("div",{className:n.moreEvents,children:["+",m.length-G," more"]})]}):R?e.jsx("div",{className:n.emptyState,children:R}):null]})]},`${r.getFullYear()}-${r.getMonth()}-${r.getDate()}`)})})})()]})}se.__docgenInfo={description:`Calendar component - A flexible, reusable calendar for displaying events
14
-
15
- @component
16
- @description
17
- A highly customizable calendar component that can display events in month or week view.
18
- Supports custom event types, colors, icons, and localization. Perfect for scheduling,
19
- project management, habit tracking, or any date-based data visualization.
20
-
21
- @example
22
- // Basic usage
23
- <Calendar
24
- events={myEvents}
25
- onEventClick={handleEventClick}
26
- viewMode="month"
27
- />
28
-
29
- @example
30
- // With custom configuration
31
- <Calendar
32
- events={projectEvents}
33
- config={{
34
- eventColors: { task: '#4A90E2', meeting: '#7ED321' },
35
- maxEventsPerDay: 5,
36
- mondayStart: true
37
- }}
38
- onEventClick={handleEventClick}
39
- />`,methods:[],displayName:"Calendar",props:{events:{required:!0,tsType:{name:"Array",elements:[{name:"CalendarEvent"}],raw:"CalendarEvent[]"},description:"Array of events to display"},onEventClick:{required:!1,tsType:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}}},description:"Callback when an event is clicked"},onDateClick:{required:!1,tsType:{name:"signature",type:"function",raw:"(date: Date) => void",signature:{arguments:[{type:{name:"Date"},name:"date"}],return:{name:"void"}}},description:"Callback when a date is clicked"},onEventClickByView:{required:!1,tsType:{name:"signature",type:"object",raw:`{
40
- month?: (event: CalendarEvent) => void;
41
- week?: (event: CalendarEvent) => void;
42
- day?: (event: CalendarEvent) => void;
43
- }`,signature:{properties:[{key:"month",value:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}},required:!1}},{key:"week",value:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}},required:!1}},{key:"day",value:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}},required:!1}}]}},description:"View-specific event click handlers"},onDateClickByView:{required:!1,tsType:{name:"signature",type:"object",raw:`{
44
- month?: (date: Date) => void;
45
- week?: (date: Date) => void;
46
- day?: (date: Date) => void;
47
- }`,signature:{properties:[{key:"month",value:{name:"signature",type:"function",raw:"(date: Date) => void",signature:{arguments:[{type:{name:"Date"},name:"date"}],return:{name:"void"}},required:!1}},{key:"week",value:{name:"signature",type:"function",raw:"(date: Date) => void",signature:{arguments:[{type:{name:"Date"},name:"date"}],return:{name:"void"}},required:!1}},{key:"day",value:{name:"signature",type:"function",raw:"(date: Date) => void",signature:{arguments:[{type:{name:"Date"},name:"date"}],return:{name:"void"}},required:!1}}]}},description:"View-specific date click handlers"},onTimeSlotClick:{required:!1,tsType:{name:"signature",type:"function",raw:"(date: Date, hour: number, time: string) => void",signature:{arguments:[{type:{name:"Date"},name:"date"},{type:{name:"number"},name:"hour"},{type:{name:"string"},name:"time"}],return:{name:"void"}}},description:"Callback when a time slot is clicked in day view"},onEventDrop:{required:!1,tsType:{name:"signature",type:"function",raw:"(event: CalendarEvent, newDate: Date) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"},{type:{name:"Date"},name:"newDate"}],return:{name:"void"}}},description:"Callback when an event is dropped (drag-rescheduled) in day view"},onEventComplete:{required:!1,tsType:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}}},description:"Day view: callback when an event body is tapped to toggle complete"},onEventDelete:{required:!1,tsType:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}}},description:"Day view: callback when an event is swiped left to delete"},onEventEdit:{required:!1,tsType:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}}},description:"Day view: callback when an event's edit button is clicked"},viewMode:{required:!1,tsType:{name:"union",raw:"'month' | 'week' | 'day'",elements:[{name:"literal",value:"'month'"},{name:"literal",value:"'week'"},{name:"literal",value:"'day'"}]},description:"Initial view mode",defaultValue:{value:"'month'",computed:!1}},initialDate:{required:!1,tsType:{name:"Date"},description:"Initial date to display",defaultValue:{value:"new Date()",computed:!1}},config:{required:!1,tsType:{name:"CalendarConfig"},description:"Configuration options",defaultValue:{value:"{}",computed:!1}},className:{required:!1,tsType:{name:"string"},description:"Custom CSS class",defaultValue:{value:"''",computed:!1}},style:{required:!1,tsType:{name:"ReactCSSProperties",raw:"React.CSSProperties"},description:"Custom styles",defaultValue:{value:"{}",computed:!1}},loading:{required:!1,tsType:{name:"boolean"},description:"Loading state",defaultValue:{value:"false",computed:!1}},emptyState:{required:!1,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:"Custom empty state component"},hideHeader:{required:!1,tsType:{name:"boolean"},description:"Hide the calendar header (navigation, title, view controls)",defaultValue:{value:"false",computed:!1}},compact:{required:!1,tsType:{name:"boolean"},description:"Compact mode - renders colored dots instead of event blocks in month view",defaultValue:{value:"false",computed:!1}},selectedDate:{required:!1,tsType:{name:"Date"},description:"Externally controlled selected date highlight (distinct from initialDate which controls navigation)"},selectedCategoryId:{required:!1,tsType:{name:"union",raw:"string | null",elements:[{name:"string"},{name:"null"}]},description:'Controlled category filter selection. `null` means "All". Omit for uncontrolled.'},onCategoryChange:{required:!1,tsType:{name:"signature",type:"function",raw:"(categoryId: string | null) => void",signature:{arguments:[{type:{name:"union",raw:"string | null",elements:[{name:"string"},{name:"null"}]},name:"categoryId"}],return:{name:"void"}}},description:'Called when the user picks a pill in the category filter. `null` = "All".'},exportFormats:{required:!1,tsType:{name:"Array",elements:[{name:"union",raw:"'csv' | 'json' | 'toon'",elements:[{name:"literal",value:"'csv'"},{name:"literal",value:"'json'"},{name:"literal",value:"'toon'"}]}],raw:"ExportFormat[]"},description:'Offer an "Export" dropdown in the header with the given formats. Exports the currently\nfiltered events (respects category filter). Omit or pass `[]` to hide the button.'}}};const uo={title:"Organisms/Calendar",component:se,parameters:{layout:"padded"},argTypes:{viewMode:{control:"radio",options:["month","week","day"]},compact:{control:"boolean"},config:{control:"object"},onEventClick:{action:"event-clicked"},onDateClick:{action:"date-clicked"},onTimeSlotClick:{action:"slot-clicked"}}},oe=["#4A90E2","#7ED321","#BD10E0","#F5B829","#FF6B6B","#4ECDC4","#7C6FBF"],re=["Morning standup","Sprint planning","Code review","1:1 with manager","Design critique","Client demo","Deep work","Lunch with Ava","Architecture review","Release sign-off","Interview (FE)","Write weekly summary","Bug triage","Pairing session","Retro","Security debrief"],Pe=["meeting","task","review","deadline"],F=(o,a=0)=>`${o.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}`,Qa=o=>{let a=o;return()=>{a|=0,a=a+1831565813|0;let s=Math.imul(a^a>>>15,1|a);return s=s+Math.imul(s^s>>>7,61|s)^s,((s^s>>>14)>>>0)/4294967296}},ie=(o=42)=>{const a=Qa(o),s=new Date,l=[];for(let d=0;d<28;d++){const u=new Date(s);u.setDate(s.getDate()+Math.floor(a()*30)-15);const c=8+Math.floor(a()*10),h=a()>.5?0:30;l.push({id:`m-${d}`,title:re[d%re.length],date:u,time:a()>.35?F(c,h):void 0,type:Pe[Math.floor(a()*Pe.length)],status:a()>.75?"completed":"pending",color:oe[d%oe.length],textColor:"#ffffff"})}return l},Vt=()=>{const o=new Date,a=(s,l=0)=>{const d=new Date(o);return d.setHours(s,l,0,0),d};return[{id:"ad-1",title:"Offsite — Q2 planning",date:a(0),allDay:!0,color:"#7C6FBF",textColor:"#ffffff"},{id:"d-1",title:"Morning standup",date:a(9),time:"09:00",endTime:"09:30",status:"completed",color:"#4A90E2",textColor:"#ffffff"},{id:"d-2",title:"Deep work: refactor auth",date:a(10),time:"10:00",endTime:"12:00",color:"#F5B829",textColor:"#1a1a1a"},{id:"d-3",title:"Lunch with Ava",date:a(12,30),time:"12:30",endTime:"13:30",color:"#4ECDC4",textColor:"#1a1a1a"},{id:"d-4",title:"1:1 with manager",date:a(14),time:"14:00",endTime:"14:30",color:"#BD10E0",textColor:"#ffffff"},{id:"d-5",title:"Design review",date:a(15),time:"15:00",endTime:"16:30",color:"#FF6B6B",textColor:"#ffffff"},{id:"d-6",title:"Write weekly summary",date:a(17,30),time:"17:30",endTime:"18:00",color:"#10b981",textColor:"#ffffff"}]},Ka=o=>{const a={meeting:"👥",task:"✓",review:"👀",deadline:"⏰"};return e.jsx("span",{style:{fontSize:11},children:a[o.type??""]??"📅"})},xe={args:{events:ie(),viewMode:"month",config:{mondayStart:!0,maxEventsPerDay:3,iconRenderer:Ka}},render:o=>{const[a,s]=x.useState(o.events??[]);return e.jsx(se,{...o,events:a,onEventClick:l=>{s(d=>d.map(u=>u.id===l.id?{...u,status:u.status==="completed"?"pending":"completed"}:u))},onDateClick:l=>{s(d=>[...d,{id:`new-${Date.now()}`,title:"New event",date:l,time:"15:00",type:"task",status:"pending",color:"#6366f1",textColor:"#ffffff"}])}})}},Se={args:{events:[],viewMode:"week",config:{mondayStart:!0,startHour:7,endHour:22,hourHeight:56,halfHourSlots:!0}},render:o=>{const a=new Date,s=(a.getDay()+6)%7,l=new Date(a);l.setDate(a.getDate()-s),l.setHours(0,0,0,0);const d=[];for(let h=0;h<7;h++){const w=new Date(l);w.setDate(l.getDate()+h);const b=h*2%3+1;for(let D=0;D<b;D++){const C=9+D*3+h%2;d.push({id:`w-${h}-${D}`,title:re[(h*3+D)%re.length],date:new Date(w),time:F(C,D%2===0?0:30),endTime:F(C+1,D%2===0?0:30),color:oe[(h+D)%oe.length],textColor:"#ffffff"})}}const[u,c]=x.useState(d);return e.jsx(se,{...o,events:u,onTimeSlotClick:(h,w,b)=>{const D=Math.min(23,h.getHours()+1);c(C=>[...C,{id:`new-${Date.now()}`,title:`New @ ${b}`,date:h,time:b,endTime:F(D,h.getMinutes()),color:"#6366f1",textColor:"#ffffff"}])},onEventComplete:h=>c(w=>w.map(b=>b.id===h.id?{...b,status:b.status==="completed"?"pending":"completed"}:b)),onEventDelete:h=>c(w=>w.filter(b=>b.id!==h.id)),onEventDrop:(h,w)=>{c(b=>b.map(D=>{if(D.id!==h.id)return D;const C=new Date(D.date),j=w.getTime()-C.getTime(),L=(()=>{if(!D.endTime||!D.time)return D.endTime;const[H,K]=D.endTime.split(":").map(Number),R=new Date(C);R.setHours(H,K,0,0);const Z=new Date(R.getTime()+j);return F(Z.getHours(),Z.getMinutes())})();return{...D,date:w,time:F(w.getHours(),w.getMinutes()),endTime:L}}))}})}},ke={args:{events:[],viewMode:"day",config:{startHour:6,endHour:24,hourHeight:72,halfHourSlots:!0,mondayStart:!0}},render:o=>{const[a,s]=x.useState(Vt());return e.jsx(se,{...o,events:a,onTimeSlotClick:(l,d,u)=>{const c=Math.min(23,l.getHours()+1);s(h=>[...h,{id:`new-${Date.now()}`,title:`New @ ${u}`,date:l,time:u,endTime:F(c,l.getMinutes()),color:"#6366f1",textColor:"#ffffff"}])},onEventComplete:l=>s(d=>d.map(u=>u.id===l.id?{...u,status:u.status==="completed"?"pending":"completed"}:u)),onEventDelete:l=>s(d=>d.filter(u=>u.id!==l.id)),onEventEdit:l=>{const d=window.prompt("Rename event",l.title);d&&s(u=>u.map(c=>c.id===l.id?{...c,title:d}:c))},onEventDrop:(l,d)=>{s(u=>u.map(c=>{if(c.id!==l.id)return c;const h=new Date(c.date),w=d.getTime()-h.getTime(),b=(()=>{if(!c.endTime||!c.time)return c.endTime;const[D,C]=c.endTime.split(":").map(Number),j=new Date(h);j.setHours(D,C,0,0);const L=new Date(j.getTime()+w);return F(L.getHours(),L.getMinutes())})();return{...c,date:d,time:F(d.getHours(),d.getMinutes()),endTime:b}}))}})}},Ce={args:{events:ie(1).map((a,s)=>({...a,category:s%3===0?"work":s%3===1?"life":"side"})),viewMode:"month",compact:!0,config:{mondayStart:!0,maxEventsPerDay:4,categories:[{id:"life",label:"Life",color:"#F5B829"},{id:"work",label:"Work",color:"#7C6FBF"},{id:"side",label:"Side",color:"#4ECDC4"}]},style:{maxWidth:420}}},Te={args:{events:Vt(),viewMode:"day",compact:!0,config:{startHour:7,endHour:22,hourHeight:56,halfHourSlots:!0},style:{maxWidth:520}}},Ee={args:{events:ie(3),viewMode:"month",config:{mondayStart:!0,showWeekNumbers:!0,maxEventsPerDay:3}}},je={args:{events:(()=>{const o=new Date;return Array.from({length:9},(a,s)=>({id:`over-${s}`,title:re[s%re.length],date:new Date(o),time:F(8+s),type:Pe[s%Pe.length],color:oe[s%oe.length],textColor:"#ffffff"}))})(),viewMode:"month",config:{mondayStart:!0,maxEventsPerDay:3}}},Ne={args:{events:[],loading:!0}},He={args:{events:[],viewMode:"month",config:{mondayStart:!0},emptyState:e.jsx("span",{style:{color:"var(--color-text-tertiary)",fontSize:11},children:"No events"})}},Me={args:{events:ie(5),viewMode:"month",exportFormats:["csv","json","toon"],config:{mondayStart:!0,maxEventsPerDay:3}}},qe={args:{events:ie(11).map((a,s)=>({...a,category:s%3===0?"work":s%3===1?"life":"side"})),viewMode:"month",config:{mondayStart:!0,maxEventsPerDay:3,categories:[{id:"life",label:"Life",color:"#F5B829"},{id:"work",label:"Work",color:"#7C6FBF"},{id:"side",label:"Side projects",color:"#4ECDC4"}]}}},$e={args:{events:[]},render:()=>{const[o,a]=x.useState(new Date),s=x.useMemo(()=>ie(9),[]);return e.jsxs("div",{style:{display:"grid",gap:"var(--spacing-md)"},children:[e.jsxs("div",{style:{fontSize:"var(--font-size-sm)",color:"var(--color-text-secondary)"},children:["Selected: ",e.jsx("strong",{children:o.toLocaleDateString()})]}),e.jsx(se,{events:s,viewMode:"month",selectedDate:o,onDateClick:a,config:{mondayStart:!0,maxEventsPerDay:3}})]})}};var it,lt,dt;xe.parameters={...xe.parameters,docs:{...(it=xe.parameters)==null?void 0:it.docs,source:{originalSource:`{
48
- args: {
49
- events: buildMonthEvents(),
50
- viewMode: 'month',
51
- config: {
52
- mondayStart: true,
53
- maxEventsPerDay: 3,
54
- iconRenderer: iconForType
55
- }
56
- },
57
- render: args => {
58
- const [events, setEvents] = useState<CalendarEvent[]>(args.events ?? []);
59
- return <Calendar {...args} events={events} onEventClick={e => {
60
- setEvents(prev => prev.map(ev => ev.id === e.id ? {
61
- ...ev,
62
- status: ev.status === 'completed' ? 'pending' : 'completed'
63
- } : ev));
64
- }} onDateClick={date => {
65
- setEvents(prev => [...prev, {
66
- id: \`new-\${Date.now()}\`,
67
- title: 'New event',
68
- date,
69
- time: '15:00',
70
- type: 'task',
71
- status: 'pending',
72
- color: '#6366f1',
73
- textColor: '#ffffff'
74
- }]);
75
- }} />;
76
- }
77
- }`,...(dt=(lt=xe.parameters)==null?void 0:lt.docs)==null?void 0:dt.source}}};var ct,mt,ut;Se.parameters={...Se.parameters,docs:{...(ct=Se.parameters)==null?void 0:ct.docs,source:{originalSource:`{
78
- args: {
79
- events: [],
80
- viewMode: 'week',
81
- config: {
82
- mondayStart: true,
83
- startHour: 7,
84
- endHour: 22,
85
- hourHeight: 56,
86
- halfHourSlots: true
87
- }
88
- },
89
- render: args => {
90
- // Build 7 days of timed events around "today" so drag has neighbours to land on
91
- const today = new Date();
92
- const mondayOffset = (today.getDay() + 6) % 7;
93
- const weekStart = new Date(today);
94
- weekStart.setDate(today.getDate() - mondayOffset);
95
- weekStart.setHours(0, 0, 0, 0);
96
- const initial: CalendarEvent[] = [];
97
- for (let i = 0; i < 7; i++) {
98
- const d = new Date(weekStart);
99
- d.setDate(weekStart.getDate() + i);
100
- const count = i * 2 % 3 + 1;
101
- for (let j = 0; j < count; j++) {
102
- const startH = 9 + j * 3 + i % 2;
103
- initial.push({
104
- id: \`w-\${i}-\${j}\`,
105
- title: TITLES[(i * 3 + j) % TITLES.length],
106
- date: new Date(d),
107
- time: hhmm(startH, j % 2 === 0 ? 0 : 30),
108
- endTime: hhmm(startH + 1, j % 2 === 0 ? 0 : 30),
109
- color: PALETTE[(i + j) % PALETTE.length],
110
- textColor: '#ffffff'
111
- });
112
- }
113
- }
114
- const [events, setEvents] = useState<CalendarEvent[]>(initial);
115
- return <Calendar {...args} events={events} onTimeSlotClick={(date, _h, time) => {
116
- const endH = Math.min(23, date.getHours() + 1);
117
- setEvents(prev => [...prev, {
118
- id: \`new-\${Date.now()}\`,
119
- title: \`New @ \${time}\`,
120
- date,
121
- time,
122
- endTime: hhmm(endH, date.getMinutes()),
123
- color: '#6366f1',
124
- textColor: '#ffffff'
125
- }]);
126
- }} onEventComplete={e => setEvents(prev => prev.map(ev => ev.id === e.id ? {
127
- ...ev,
128
- status: ev.status === 'completed' ? 'pending' : 'completed'
129
- } : ev))} onEventDelete={e => setEvents(prev => prev.filter(ev => ev.id !== e.id))} onEventDrop={(e, newDate) => {
130
- setEvents(prev => prev.map(ev => {
131
- if (ev.id !== e.id) return ev;
132
- const oldStart = new Date(ev.date);
133
- const deltaMs = newDate.getTime() - oldStart.getTime();
134
- const nextEndTime = (() => {
135
- if (!ev.endTime || !ev.time) return ev.endTime;
136
- const [oh, om] = ev.endTime.split(':').map(Number);
137
- const endOld = new Date(oldStart);
138
- endOld.setHours(oh, om, 0, 0);
139
- const endNew = new Date(endOld.getTime() + deltaMs);
140
- return hhmm(endNew.getHours(), endNew.getMinutes());
141
- })();
142
- return {
143
- ...ev,
144
- date: newDate,
145
- time: hhmm(newDate.getHours(), newDate.getMinutes()),
146
- endTime: nextEndTime
147
- };
148
- }));
149
- }} />;
150
- }
151
- }`,...(ut=(mt=Se.parameters)==null?void 0:mt.docs)==null?void 0:ut.source}}};var pt,ft,gt;ke.parameters={...ke.parameters,docs:{...(pt=ke.parameters)==null?void 0:pt.docs,source:{originalSource:`{
152
- args: {
153
- events: [],
154
- viewMode: 'day',
155
- config: {
156
- startHour: 6,
157
- endHour: 24,
158
- hourHeight: 72,
159
- halfHourSlots: true,
160
- mondayStart: true
161
- }
162
- },
163
- render: args => {
164
- const [events, setEvents] = useState<CalendarEvent[]>(buildDayEvents());
165
- return <Calendar {...args} events={events} onTimeSlotClick={(date, _h, time) => {
166
- const endH = Math.min(23, date.getHours() + 1);
167
- setEvents(prev => [...prev, {
168
- id: \`new-\${Date.now()}\`,
169
- title: \`New @ \${time}\`,
170
- date,
171
- time,
172
- endTime: hhmm(endH, date.getMinutes()),
173
- color: '#6366f1',
174
- textColor: '#ffffff'
175
- }]);
176
- }} onEventComplete={e => setEvents(prev => prev.map(ev => ev.id === e.id ? {
177
- ...ev,
178
- status: ev.status === 'completed' ? 'pending' : 'completed'
179
- } : ev))} onEventDelete={e => setEvents(prev => prev.filter(ev => ev.id !== e.id))} onEventEdit={e => {
180
- const next = window.prompt('Rename event', e.title);
181
- if (!next) return;
182
- setEvents(prev => prev.map(ev => ev.id === e.id ? {
183
- ...ev,
184
- title: next
185
- } : ev));
186
- }} onEventDrop={(e, newDate) => {
187
- setEvents(prev => prev.map(ev => {
188
- if (ev.id !== e.id) return ev;
189
- const oldStart = new Date(ev.date);
190
- const deltaMs = newDate.getTime() - oldStart.getTime();
191
- const nextEndTime = (() => {
192
- if (!ev.endTime || !ev.time) return ev.endTime;
193
- const [oh, om] = ev.endTime.split(':').map(Number);
194
- const endOld = new Date(oldStart);
195
- endOld.setHours(oh, om, 0, 0);
196
- const endNew = new Date(endOld.getTime() + deltaMs);
197
- return hhmm(endNew.getHours(), endNew.getMinutes());
198
- })();
199
- return {
200
- ...ev,
201
- date: newDate,
202
- time: hhmm(newDate.getHours(), newDate.getMinutes()),
203
- endTime: nextEndTime
204
- };
205
- }));
206
- }} />;
207
- }
208
- }`,...(gt=(ft=ke.parameters)==null?void 0:ft.docs)==null?void 0:gt.source}}};var vt,ht,yt;Ce.parameters={...Ce.parameters,docs:{...(vt=Ce.parameters)==null?void 0:vt.docs,source:{originalSource:`{
209
- args: {
210
- events: (() => {
211
- const base = buildMonthEvents(1);
212
- return base.map((e, i) => ({
213
- ...e,
214
- category: i % 3 === 0 ? 'work' : i % 3 === 1 ? 'life' : 'side'
215
- }));
216
- })(),
217
- viewMode: 'month',
218
- compact: true,
219
- config: {
220
- mondayStart: true,
221
- maxEventsPerDay: 4,
222
- categories: [{
223
- id: 'life',
224
- label: 'Life',
225
- color: '#F5B829'
226
- }, {
227
- id: 'work',
228
- label: 'Work',
229
- color: '#7C6FBF'
230
- }, {
231
- id: 'side',
232
- label: 'Side',
233
- color: '#4ECDC4'
234
- }]
235
- },
236
- style: {
237
- maxWidth: 420
238
- }
239
- }
240
- }`,...(yt=(ht=Ce.parameters)==null?void 0:ht.docs)==null?void 0:yt.source}}};var wt,Dt,_t;Te.parameters={...Te.parameters,docs:{...(wt=Te.parameters)==null?void 0:wt.docs,source:{originalSource:`{
241
- args: {
242
- events: buildDayEvents(),
243
- viewMode: 'day',
244
- compact: true,
245
- config: {
246
- startHour: 7,
247
- endHour: 22,
248
- hourHeight: 56,
249
- halfHourSlots: true
250
- },
251
- style: {
252
- maxWidth: 520
253
- }
254
- }
255
- }`,...(_t=(Dt=Te.parameters)==null?void 0:Dt.docs)==null?void 0:_t.source}}};var bt,xt,St;Ee.parameters={...Ee.parameters,docs:{...(bt=Ee.parameters)==null?void 0:bt.docs,source:{originalSource:`{
256
- args: {
257
- events: buildMonthEvents(3),
258
- viewMode: 'month',
259
- config: {
260
- mondayStart: true,
261
- showWeekNumbers: true,
262
- maxEventsPerDay: 3
263
- }
264
- }
265
- }`,...(St=(xt=Ee.parameters)==null?void 0:xt.docs)==null?void 0:St.source}}};var kt,Ct,Tt;je.parameters={...je.parameters,docs:{...(kt=je.parameters)==null?void 0:kt.docs,source:{originalSource:`{
266
- args: {
267
- events: (() => {
268
- const today = new Date();
269
- return Array.from({
270
- length: 9
271
- }, (_, i) => ({
272
- id: \`over-\${i}\`,
273
- title: TITLES[i % TITLES.length],
274
- date: new Date(today),
275
- time: hhmm(8 + i),
276
- type: TYPES[i % TYPES.length],
277
- color: PALETTE[i % PALETTE.length],
278
- textColor: '#ffffff'
279
- }));
280
- })(),
281
- viewMode: 'month',
282
- config: {
283
- mondayStart: true,
284
- maxEventsPerDay: 3
285
- }
286
- }
287
- }`,...(Tt=(Ct=je.parameters)==null?void 0:Ct.docs)==null?void 0:Tt.source}}};var Et,jt,Nt;Ne.parameters={...Ne.parameters,docs:{...(Et=Ne.parameters)==null?void 0:Et.docs,source:{originalSource:`{
288
- args: {
289
- events: [],
290
- loading: true
291
- }
292
- }`,...(Nt=(jt=Ne.parameters)==null?void 0:jt.docs)==null?void 0:Nt.source}}};var Ht,Mt,qt;He.parameters={...He.parameters,docs:{...(Ht=He.parameters)==null?void 0:Ht.docs,source:{originalSource:`{
293
- args: {
294
- events: [],
295
- viewMode: 'month',
296
- config: {
297
- mondayStart: true
298
- },
299
- emptyState: <span style={{
300
- color: 'var(--color-text-tertiary)',
301
- fontSize: 11
302
- }}>
303
- No events
304
- </span>
305
- }
306
- }`,...(qt=(Mt=He.parameters)==null?void 0:Mt.docs)==null?void 0:qt.source}}};var $t,Lt,It;Me.parameters={...Me.parameters,docs:{...($t=Me.parameters)==null?void 0:$t.docs,source:{originalSource:`{
307
- args: {
308
- events: buildMonthEvents(5),
309
- viewMode: 'month',
310
- exportFormats: ['csv', 'json', 'toon'],
311
- config: {
312
- mondayStart: true,
313
- maxEventsPerDay: 3
314
- }
315
- }
316
- }`,...(It=(Lt=Me.parameters)==null?void 0:Lt.docs)==null?void 0:It.source}}};var Pt,Bt,Ft;qe.parameters={...qe.parameters,docs:{...(Pt=qe.parameters)==null?void 0:Pt.docs,source:{originalSource:`{
317
- args: {
318
- events: (() => {
319
- const base = buildMonthEvents(11);
320
- return base.map((e, i) => ({
321
- ...e,
322
- category: i % 3 === 0 ? 'work' : i % 3 === 1 ? 'life' : 'side'
323
- }));
324
- })(),
325
- viewMode: 'month',
326
- config: {
327
- mondayStart: true,
328
- maxEventsPerDay: 3,
329
- categories: [{
330
- id: 'life',
331
- label: 'Life',
332
- color: '#F5B829'
333
- }, {
334
- id: 'work',
335
- label: 'Work',
336
- color: '#7C6FBF'
337
- }, {
338
- id: 'side',
339
- label: 'Side projects',
340
- color: '#4ECDC4'
341
- }]
342
- }
343
- }
344
- }`,...(Ft=(Bt=qe.parameters)==null?void 0:Bt.docs)==null?void 0:Ft.source}}};var Wt,At,Ot;$e.parameters={...$e.parameters,docs:{...(Wt=$e.parameters)==null?void 0:Wt.docs,source:{originalSource:`{
345
- args: {
346
- events: []
347
- },
348
- render: () => {
349
- const [selected, setSelected] = useState(new Date());
350
- const events = useMemo(() => buildMonthEvents(9), []);
351
- return <div style={{
352
- display: 'grid',
353
- gap: 'var(--spacing-md)'
354
- }}>
355
- <div style={{
356
- fontSize: 'var(--font-size-sm)',
357
- color: 'var(--color-text-secondary)'
358
- }}>
359
- Selected: <strong>{selected.toLocaleDateString()}</strong>
360
- </div>
361
- <Calendar events={events} viewMode="month" selectedDate={selected} onDateClick={setSelected} config={{
362
- mondayStart: true,
363
- maxEventsPerDay: 3
364
- }} />
365
- </div>;
366
- }
367
- }`,...(Ot=(At=$e.parameters)==null?void 0:At.docs)==null?void 0:Ot.source}}};const po=["Default","WeekView","DayView","CompactMonth","CompactDay","WithWeekNumbers","OverflowDay","Loading","Empty","WithExport","WithCategoryFilter","ControlledSelection"];export{Te as CompactDay,Ce as CompactMonth,$e as ControlledSelection,ke as DayView,xe as Default,He as Empty,Ne as Loading,je as OverflowDay,Se as WeekView,qe as WithCategoryFilter,Me as WithExport,Ee as WithWeekNumbers,po as __namedExportsOrder,uo as default};
@@ -1 +0,0 @@
1
- import{r}from"./index-CTm0VtvQ.js";var t,o=r;t=o.createRoot,o.hydrateRoot;export{t as c};