@stfrigerio/sito-template 0.1.58 → 0.1.60

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 (299) hide show
  1. package/dist/components/atoms/Button/Button.stories.d.ts +0 -1
  2. package/dist/components/atoms/Button/Button.stories.d.ts.map +1 -1
  3. package/dist/components/atoms/Card/Card.stories.d.ts +0 -1
  4. package/dist/components/atoms/Card/Card.stories.d.ts.map +1 -1
  5. package/dist/components/atoms/Checkbox/Checkbox.stories.d.ts +0 -7
  6. package/dist/components/atoms/Checkbox/Checkbox.stories.d.ts.map +1 -1
  7. package/dist/components/atoms/DateInput/DateInput.stories.d.ts +0 -7
  8. package/dist/components/atoms/DateInput/DateInput.stories.d.ts.map +1 -1
  9. package/dist/components/atoms/LoadingSpinner/LoadingSpinner.stories.d.ts +1 -15
  10. package/dist/components/atoms/LoadingSpinner/LoadingSpinner.stories.d.ts.map +1 -1
  11. package/dist/components/atoms/NumberStepper/NumberStepper.stories.d.ts +0 -16
  12. package/dist/components/atoms/NumberStepper/NumberStepper.stories.d.ts.map +1 -1
  13. package/dist/components/atoms/SearchableDropdown/SearchableDropdown.stories.d.ts +0 -9
  14. package/dist/components/atoms/SearchableDropdown/SearchableDropdown.stories.d.ts.map +1 -1
  15. package/dist/components/atoms/SelectInput/SelectInput.stories.d.ts +0 -6
  16. package/dist/components/atoms/SelectInput/SelectInput.stories.d.ts.map +1 -1
  17. package/dist/components/atoms/Slider/Slider.stories.d.ts.map +1 -1
  18. package/dist/components/atoms/TextArea/TextArea.stories.d.ts +0 -10
  19. package/dist/components/atoms/TextArea/TextArea.stories.d.ts.map +1 -1
  20. package/dist/components/atoms/TextInput/TextInput.stories.d.ts +0 -14
  21. package/dist/components/atoms/TextInput/TextInput.stories.d.ts.map +1 -1
  22. package/dist/components/atoms/Toggle/Toggle.stories.d.ts +0 -8
  23. package/dist/components/atoms/Toggle/Toggle.stories.d.ts.map +1 -1
  24. package/dist/components/atoms/ToggleButton/ToggleButton.stories.d.ts +0 -7
  25. package/dist/components/atoms/ToggleButton/ToggleButton.stories.d.ts.map +1 -1
  26. package/dist/components/molecules/ArrayInput/ArrayInput.stories.d.ts +0 -9
  27. package/dist/components/molecules/ArrayInput/ArrayInput.stories.d.ts.map +1 -1
  28. package/dist/components/molecules/EditFAB/EditFAB.stories.d.ts +1 -12
  29. package/dist/components/molecules/EditFAB/EditFAB.stories.d.ts.map +1 -1
  30. package/dist/components/molecules/SearchBar/SearchBar.stories.d.ts +0 -8
  31. package/dist/components/molecules/SearchBar/SearchBar.stories.d.ts.map +1 -1
  32. package/dist/components/molecules/Tabs/Tabs.stories.d.ts.map +1 -1
  33. package/dist/components/molecules/ThemeSwitcher/ThemeSwitcher.stories.d.ts +0 -3
  34. package/dist/components/molecules/ThemeSwitcher/ThemeSwitcher.stories.d.ts.map +1 -1
  35. package/dist/components/molecules/TimeInput/TimeInput.stories.d.ts +0 -6
  36. package/dist/components/molecules/TimeInput/TimeInput.stories.d.ts.map +1 -1
  37. package/dist/components/organisms/Calendar/Calendar.d.ts +5 -1
  38. package/dist/components/organisms/Calendar/Calendar.d.ts.map +1 -1
  39. package/dist/components/organisms/Calendar/Calendar.stories.d.ts +1 -1
  40. package/dist/components/organisms/Calendar/Calendar.stories.d.ts.map +1 -1
  41. package/dist/components/organisms/Calendar/DayEventCard.d.ts +1 -1
  42. package/dist/components/organisms/Calendar/DayEventCard.d.ts.map +1 -1
  43. package/dist/components/organisms/Calendar/exportEvents.d.ts +8 -0
  44. package/dist/components/organisms/Calendar/exportEvents.d.ts.map +1 -0
  45. package/dist/components/organisms/ImageSlideshow/ImageSlideshow.stories.d.ts +0 -23
  46. package/dist/components/organisms/ImageSlideshow/ImageSlideshow.stories.d.ts.map +1 -1
  47. package/dist/components/organisms/Navbar/Navbar.d.ts +1 -0
  48. package/dist/components/organisms/Navbar/Navbar.d.ts.map +1 -1
  49. package/dist/components/organisms/Navbar/Navbar.stories.d.ts +1 -7
  50. package/dist/components/organisms/Navbar/Navbar.stories.d.ts.map +1 -1
  51. package/dist/components/organisms/charts/BooleansHeatmap/BooleansHeatmap.stories.d.ts +1 -4
  52. package/dist/components/organisms/charts/BooleansHeatmap/BooleansHeatmap.stories.d.ts.map +1 -1
  53. package/dist/components/organisms/charts/PieChart/PieChart.stories.d.ts +1 -5
  54. package/dist/components/organisms/charts/PieChart/PieChart.stories.d.ts.map +1 -1
  55. package/dist/index.esm.js +233 -59
  56. package/dist/index.esm.js.map +1 -1
  57. package/dist/index.js +231 -57
  58. package/dist/index.js.map +1 -1
  59. package/dist/stories/utils.d.ts.map +1 -1
  60. package/dist/styles.css +1 -1
  61. package/dist/styles.css.map +1 -1
  62. package/dist/themes/globals.css +2 -5
  63. package/package.json +1 -1
  64. package/storybook-static/assets/{ASCIIText.stories-LbmvFzzv.js → ASCIIText.stories-OSKwRAyY.js} +4 -4
  65. package/storybook-static/assets/{AllAtoms.stories-CLunFOjI.js → AllAtoms.stories-BMrwCHeq.js} +1 -1
  66. package/storybook-static/assets/{AnimatedContent.stories-B8hBaVkK.js → AnimatedContent.stories-Bxf47ut1.js} +1 -1
  67. package/storybook-static/assets/{AnimatedList.stories-D8a9eYqH.js → AnimatedList.stories-B1E8UqMr.js} +2 -2
  68. package/storybook-static/assets/{Antigravity.stories-D_mJbWK0.js → Antigravity.stories-I5mdFgmP.js} +1 -1
  69. package/storybook-static/assets/ArrayInput.stories-DxmE1Rmk.js +138 -0
  70. package/storybook-static/assets/{Aurora.stories-BN4MataE.js → Aurora.stories-DTyse-oN.js} +2 -2
  71. package/storybook-static/assets/{Beams.stories-CCtZOw8G.js → Beams.stories-BTOldQ0-.js} +6 -6
  72. package/storybook-static/assets/{BlobCursor.stories-CdB55R5G.js → BlobCursor.stories-C_EhL1Sb.js} +1 -1
  73. package/storybook-static/assets/{BlurText.stories-Bg2Ih2Je.js → BlurText.stories-DBE9duA2.js} +2 -2
  74. package/storybook-static/assets/BooleansHeatmap-C8cFXa7K.css +1 -0
  75. package/storybook-static/assets/BooleansHeatmap.stories-BK-0k1Yf.js +63 -0
  76. package/storybook-static/assets/{BorderGlow.stories-CUxbrsvW.js → BorderGlow.stories-DUaNIh97.js} +1 -1
  77. package/storybook-static/assets/{BubbleMenu.stories-DuVDLBsV.js → BubbleMenu.stories-DUkNhCYN.js} +1 -1
  78. package/storybook-static/assets/{Button-CQGdvhpN.js → Button-CmL8YExH.js} +1 -1
  79. package/storybook-static/assets/{Button.stories-D8Xx3I9p.js → Button.stories-Qe92VaQO.js} +2 -2
  80. package/storybook-static/assets/Calendar-CXrUBxYt.css +1 -0
  81. package/storybook-static/assets/Calendar.stories-DvRq1jLb.js +352 -0
  82. package/storybook-static/assets/{Card-DNp-cUnt.js → Card-BNN9rA1_.js} +1 -1
  83. package/storybook-static/assets/{Card.stories-D1f1NTVU.js → Card.stories-DJtwbzzK.js} +1 -1
  84. package/storybook-static/assets/{CardNav.stories-Cd4zEw8p.js → CardNav.stories-D3WJ4l1d.js} +1 -1
  85. package/storybook-static/assets/{Carousel.stories-BxbGwXE5.js → Carousel.stories-Cl5XZxQx.js} +2 -2
  86. package/storybook-static/assets/{Checkbox-Dw8W2w74.js → Checkbox-NV1yLfww.js} +1 -1
  87. package/storybook-static/assets/Checkbox.stories-DEt8_02c.js +55 -0
  88. package/storybook-static/assets/{ChromaGrid.stories-DBHYiDPV.js → ChromaGrid.stories-BPq9jzOX.js} +1 -1
  89. package/storybook-static/assets/{CircularGallery.stories-TJN6o_RG.js → CircularGallery.stories-BKkHClqR.js} +2 -2
  90. package/storybook-static/assets/{CircularText.stories-rNjRUNn2.js → CircularText.stories-DL97L-4c.js} +1 -1
  91. package/storybook-static/assets/{ClickSpark.stories-BfqByoGe.js → ClickSpark.stories-CePCUrfJ.js} +1 -1
  92. package/storybook-static/assets/{ColorBends.stories-IEMOWAyf.js → ColorBends.stories-qHNzC_b-.js} +2 -2
  93. package/storybook-static/assets/{CountUp.stories-DXPrKAQb.js → CountUp.stories-DN2cFFy0.js} +1 -1
  94. package/storybook-static/assets/{Counter.stories-DMdecsw_.js → Counter.stories-U-VxTg4K.js} +2 -2
  95. package/storybook-static/assets/{Crosshair.stories-CYzDxRSn.js → Crosshair.stories-DZ3e7z4E.js} +2 -2
  96. package/storybook-static/assets/{Cubes.stories-Drq4ULo3.js → Cubes.stories-zndGensK.js} +1 -1
  97. package/storybook-static/assets/{CurvedLoop.stories-C9GMKnIw.js → CurvedLoop.stories-CPwaetTg.js} +1 -1
  98. package/storybook-static/assets/{DarkVeil.stories-BtLNfEH8.js → DarkVeil.stories-7UE8YAds.js} +2 -2
  99. package/storybook-static/assets/{DateInput-CW4PsZAQ.js → DateInput-C7UYtU2f.js} +2 -2
  100. package/storybook-static/assets/DateInput-Dhcb9x13.css +1 -0
  101. package/storybook-static/assets/DateInput.stories-Blprxd6L.js +51 -0
  102. package/storybook-static/assets/{DecayCard.stories-CAU_wTc7.js → DecayCard.stories-CyDj4Rzg.js} +1 -1
  103. package/storybook-static/assets/{DecryptedText.stories-Dvba9C1V.js → DecryptedText.stories-CcmNeei7.js} +1 -1
  104. package/storybook-static/assets/{Dither.stories-B5KfMprl.js → Dither.stories-Cx3gQA5F.js} +2 -2
  105. package/storybook-static/assets/{Dock.stories-oyQGRzlM.js → Dock.stories-BnetMt5P.js} +1 -1
  106. package/storybook-static/assets/EditFAB.stories-BM8RRvq2.js +233 -0
  107. package/storybook-static/assets/{EvilEye.stories-C1820-DG.js → EvilEye.stories-CU9FGY5P.js} +2 -2
  108. package/storybook-static/assets/{FadeContent.stories-B4z_JRy9.js → FadeContent.stories-BaWDFQed.js} +1 -1
  109. package/storybook-static/assets/{FaultyTerminal.stories-DmkguJql.js → FaultyTerminal.stories-D1AZCPEZ.js} +2 -2
  110. package/storybook-static/assets/{Fbo-CTQm-4Bw.js → Fbo-BM-i3UPR.js} +1 -1
  111. package/storybook-static/assets/{FloatingLines.stories-CQvqKSpH.js → FloatingLines.stories-fehYMPcZ.js} +2 -2
  112. package/storybook-static/assets/{FlowingMenu.stories-DmOspv0B.js → FlowingMenu.stories-DRGoAotO.js} +1 -1
  113. package/storybook-static/assets/{FluidGlass.stories-CZSqxrNt.js → FluidGlass.stories-DgAiwR5f.js} +2 -2
  114. package/storybook-static/assets/{Folder.stories-7vb52Lfi.js → Folder.stories-Bys9N63w.js} +1 -1
  115. package/storybook-static/assets/{FuzzyText.stories-BdXN4VK1.js → FuzzyText.stories-D-74llkc.js} +1 -1
  116. package/storybook-static/assets/{Galaxy.stories-BhT1GZh5.js → Galaxy.stories-VD6ETxyT.js} +2 -2
  117. package/storybook-static/assets/{GhostCursor.stories-DkXqCjE9.js → GhostCursor.stories-DjMEnN7i.js} +2 -2
  118. package/storybook-static/assets/{GlareHover.stories-CznX3yTV.js → GlareHover.stories-6KgkPV6C.js} +1 -1
  119. package/storybook-static/assets/{GlassSurface.stories-BnwwYK95.js → GlassSurface.stories-Dj1kCNDg.js} +2 -2
  120. package/storybook-static/assets/{GlitchText.stories-CVcTBUVS.js → GlitchText.stories-DcGDGtvN.js} +2 -2
  121. package/storybook-static/assets/{GooeyNav.stories-C0abTHBc.js → GooeyNav.stories-yae-ax1k.js} +1 -1
  122. package/storybook-static/assets/{GradientBlinds.stories-CpSguKtv.js → GradientBlinds.stories-B7h647VQ.js} +2 -2
  123. package/storybook-static/assets/{GradientText.stories-B4hMx13h.js → GradientText.stories-BPUXNES_.js} +1 -1
  124. package/storybook-static/assets/{Grainient.stories-5EakpvU2.js → Grainient.stories-BjFhc8gt.js} +2 -2
  125. package/storybook-static/assets/{GridMotion.stories-Bm3DD7cb.js → GridMotion.stories-Bm8YB3Nc.js} +1 -1
  126. package/storybook-static/assets/ImageSlideshow.stories-BT5Pfqt3.js +103 -0
  127. package/storybook-static/assets/{Iridescence.stories-Cykk3hHZ.js → Iridescence.stories-DysieilC.js} +2 -2
  128. package/storybook-static/assets/{LaserFlow.stories-CfiM4ZZ5.js → LaserFlow.stories-BJMXiU6b.js} +2 -2
  129. package/storybook-static/assets/{LetterGlitch.stories-BXb7iSeX.js → LetterGlitch.stories-Qpkbs2x5.js} +1 -1
  130. package/storybook-static/assets/{LightPillar.stories-CwI-8_BF.js → LightPillar.stories-D7r7SjN3.js} +3 -3
  131. package/storybook-static/assets/{LightRays.stories-BIIfv6Ky.js → LightRays.stories-CSmrA40u.js} +2 -2
  132. package/storybook-static/assets/{Lightning.stories-B8GNkzSN.js → Lightning.stories-0zr6qZVm.js} +2 -2
  133. package/storybook-static/assets/{LineWaves.stories-CjxdD_yt.js → LineWaves.stories-KgMfrrqs.js} +2 -2
  134. package/storybook-static/assets/{LiquidChrome.stories-G7bVFJM9.js → LiquidChrome.stories-B8ZLHoH1.js} +2 -2
  135. package/storybook-static/assets/{LiquidEther.stories-C8n27zuA.js → LiquidEther.stories-C4k9P7aN.js} +2 -2
  136. package/storybook-static/assets/{LoadingSpinner-Br8TYFlF.js → LoadingSpinner-Cy3HB7-7.js} +1 -1
  137. package/storybook-static/assets/LoadingSpinner.stories-DDNFJhwe.js +21 -0
  138. package/storybook-static/assets/{MagicRings.stories-D50m_2UF.js → MagicRings.stories-UqocGxaQ.js} +2 -2
  139. package/storybook-static/assets/{Magnet.stories-BP9fjpzP.js → Magnet.stories-BxvO0Fqj.js} +1 -1
  140. package/storybook-static/assets/{MagnetLines.stories-DvbytV0Y.js → MagnetLines.stories-BMqOFHvT.js} +1 -1
  141. package/storybook-static/assets/{Masonry.stories-xXYQw2uD.js → Masonry.stories-CLwqpLTU.js} +1 -1
  142. package/storybook-static/assets/{MetaBalls.stories-DKD3gVUH.js → MetaBalls.stories-B_lPmlPu.js} +2 -2
  143. package/storybook-static/assets/{MetallicPaint.stories-Bz-uS-L_.js → MetallicPaint.stories-9AWQepP6.js} +2 -2
  144. package/storybook-static/assets/MoodChart-ba3aY_qF.css +1 -0
  145. package/storybook-static/assets/MoodChart.stories-B6LHsTmy.js +40 -0
  146. package/storybook-static/assets/{MotionConfigContext-D5hZdVGx.js → MotionConfigContext-CJ0kpWbz.js} +1 -1
  147. package/storybook-static/assets/Navbar-CH6O1IzY.css +1 -0
  148. package/storybook-static/assets/Navbar.stories-Cag40GVb.js +186 -0
  149. package/storybook-static/assets/{Noise.stories-D6C6-k8-.js → Noise.stories-BukT-fj1.js} +2 -2
  150. package/storybook-static/assets/{NumberStepper--0cJcLNZ.js → NumberStepper-Ut_VByYA.js} +1 -1
  151. package/storybook-static/assets/NumberStepper.stories-3y594BTK.js +88 -0
  152. package/storybook-static/assets/{Orb.stories-CS__2PJW.js → Orb.stories-B45u5gJo.js} +2 -2
  153. package/storybook-static/assets/{OrbitImages.stories-CcaelcY5.js → OrbitImages.stories-B_7X-GMA.js} +1 -1
  154. package/storybook-static/assets/PieChart-DXPBsaZR.css +1 -0
  155. package/storybook-static/assets/PieChart.stories-DLrtlyWH.js +91 -0
  156. package/storybook-static/assets/{PixelBlast.stories-CyK8BxPq.js → PixelBlast.stories-C4ZAaMH_.js} +2 -2
  157. package/storybook-static/assets/{PixelCard.stories-D_Og1Eve.js → PixelCard.stories-CaOGvNQ_.js} +1 -1
  158. package/storybook-static/assets/{PixelSnow.stories-CoCZucVV.js → PixelSnow.stories-CGmFGV3L.js} +2 -2
  159. package/storybook-static/assets/{PixelTransition.stories-DmVJ4jdu.js → PixelTransition.stories-DzTJZhF-.js} +1 -1
  160. package/storybook-static/assets/{Plasma.stories-DUqrW-qq.js → Plasma.stories-CoyLfj7o.js} +2 -2
  161. package/storybook-static/assets/{Prism.stories-DWdVDcBG.js → Prism.stories-D2E3ZI6g.js} +2 -2
  162. package/storybook-static/assets/{PrismaticBurst.stories-BEVYTjXo.js → PrismaticBurst.stories-B8PJhK5n.js} +2 -2
  163. package/storybook-static/assets/{ProfileCard.stories-CAoKQpAZ.js → ProfileCard.stories-CbRCcyd9.js} +1 -1
  164. package/storybook-static/assets/QuantifiableHabitsChart-BiMp7Kkq.css +1 -0
  165. package/storybook-static/assets/{QuantifiableHabitsChart.stories-CMexb5Ij.js → QuantifiableHabitsChart.stories-BCrpnpyh.js} +2 -2
  166. package/storybook-static/assets/{Radar.stories-Dcjnm9Bu.js → Radar.stories-B-Ki4OHb.js} +2 -2
  167. package/storybook-static/assets/{Ribbons.stories-Cs3Eg2Gz.js → Ribbons.stories-DMBczKgc.js} +4 -4
  168. package/storybook-static/assets/{RippleGrid.stories-QV9Doq9P.js → RippleGrid.stories-C8dKr2CX.js} +2 -2
  169. package/storybook-static/assets/{RotatingText.stories-DkntoAXJ.js → RotatingText.stories-DJu0v3mv.js} +2 -2
  170. package/storybook-static/assets/{ScrollFloat.stories-BaX43Ike.js → ScrollFloat.stories-B_edvvO1.js} +1 -1
  171. package/storybook-static/assets/{ScrollReveal.stories-C2IWpLpI.js → ScrollReveal.stories-DTYFesNE.js} +1 -1
  172. package/storybook-static/assets/{ScrollVelocity.stories-LaYJ5WQN.js → ScrollVelocity.stories-B2O7zZ2t.js} +1 -1
  173. package/storybook-static/assets/SearchBar.stories-CUEF7Ba4.js +64 -0
  174. package/storybook-static/assets/{SearchableDropdown-4HgWY0Ck.js → SearchableDropdown-C6KY2mIJ.js} +1 -1
  175. package/storybook-static/assets/SearchableDropdown.stories-DbSJdUAJ.js +44 -0
  176. package/storybook-static/assets/{SelectInput-DvSeeIw5.js → SelectInput-tDvouCuN.js} +1 -1
  177. package/storybook-static/assets/SelectInput.stories-C6apSsWx.js +94 -0
  178. package/storybook-static/assets/{ShapeBlur.stories-ZQV0yHkn.js → ShapeBlur.stories-DVQs_Ng0.js} +2 -2
  179. package/storybook-static/assets/{ShapeGrid.stories-G_tZAcp9.js → ShapeGrid.stories-BjibW7b1.js} +1 -1
  180. package/storybook-static/assets/{ShinyText.stories-C6BrLI0x.js → ShinyText.stories-DTezLW7e.js} +1 -1
  181. package/storybook-static/assets/{Silk.stories-BpsR4txJ.js → Silk.stories-fZbeNXOO.js} +2 -2
  182. package/storybook-static/assets/SleepChart-CjpdWR_T.css +1 -0
  183. package/storybook-static/assets/SleepChart.stories-nqH0hgCL.js +58 -0
  184. package/storybook-static/assets/Slider-BaDHm9m3.css +1 -0
  185. package/storybook-static/assets/{Slider-3iog5_du.js → Slider-DIeyN9Hx.js} +1 -1
  186. package/storybook-static/assets/{Slider.stories-C8eUZ7Ne.js → Slider.stories-BzcscFcU.js} +1 -1
  187. package/storybook-static/assets/{SoftAurora.stories--Rcyqxiu.js → SoftAurora.stories-Cvtf3TKB.js} +2 -2
  188. package/storybook-static/assets/{SoundDemo.stories-DvhKS2Fi.js → SoundDemo.stories-Dpq3K-yq.js} +1 -1
  189. package/storybook-static/assets/{SplashCursor.stories-FzRIUaX9.js → SplashCursor.stories-Y5zBSBCL.js} +2 -2
  190. package/storybook-static/assets/{SpotlightCard.stories-CifqsSUc.js → SpotlightCard.stories-B1KBEp6T.js} +1 -1
  191. package/storybook-static/assets/{Stack.stories-Dq82x0TG.js → Stack.stories-CA5YToyH.js} +1 -1
  192. package/storybook-static/assets/{StaggeredMenu.stories-CsiTDJGG.js → StaggeredMenu.stories-BvQIujuB.js} +1 -1
  193. package/storybook-static/assets/{StarBorder.stories-Ba14_TPk.js → StarBorder.stories-CHtwoVna.js} +2 -2
  194. package/storybook-static/assets/{SunburstChart.stories-fREzDXM9.js → SunburstChart.stories-Ch-ivaQT.js} +1 -1
  195. package/storybook-static/assets/Table-BFjXRRk3.css +1 -0
  196. package/storybook-static/assets/{Table.stories-CXsQAQrR.js → Table.stories-CvYZiI3H.js} +6 -6
  197. package/storybook-static/assets/Tabs-CDVjuS9_.css +1 -0
  198. package/storybook-static/assets/{Tabs.stories-HeiG8gYN.js → Tabs.stories-BN3Icfzj.js} +4 -4
  199. package/storybook-static/assets/{TargetCursor.stories-B16pWZaP.js → TargetCursor.stories-D1PTwE36.js} +1 -1
  200. package/storybook-static/assets/{TextArea-DKx3k6hV.js → TextArea-DKtwryA1.js} +1 -1
  201. package/storybook-static/assets/TextArea.stories-CxsYukYi.js +118 -0
  202. package/storybook-static/assets/{TextCursor.stories-CY2eIn6Z.js → TextCursor.stories-BouFdSlt.js} +1 -1
  203. package/storybook-static/assets/TextInput-6V0mlIuS.css +1 -0
  204. package/storybook-static/assets/TextInput-CsK2bPrD.js +28 -0
  205. package/storybook-static/assets/TextInput.stories-fZ3j5ID4.js +89 -0
  206. package/storybook-static/assets/{TextPressure.stories-sH-cgdL2.js → TextPressure.stories-B6pN9RLp.js} +2 -2
  207. package/storybook-static/assets/{TextType.stories-B7Oy3P9u.js → TextType.stories-C9jm9TdC.js} +1 -1
  208. package/storybook-static/assets/ThemeSwitcher.stories-DHJZPEtd.js +47 -0
  209. package/storybook-static/assets/{Threads.stories-e52ErKbM.js → Threads.stories-BiH2lkaI.js} +2 -2
  210. package/storybook-static/assets/TimeInput-BT44V2P0.css +1 -0
  211. package/storybook-static/assets/TimeInput.stories-DOyFcxE2.js +13 -0
  212. package/storybook-static/assets/{Toggle-BntWdyUe.js → Toggle-sPP5IZcW.js} +1 -1
  213. package/storybook-static/assets/Toggle.stories-D5BPv-SU.js +163 -0
  214. package/storybook-static/assets/{ToggleButton-BQqJdlB_.js → ToggleButton-DmyfG7tC.js} +1 -1
  215. package/storybook-static/assets/ToggleButton.stories-B1AcmGcL.js +103 -0
  216. package/storybook-static/assets/{TrueFocus.stories-wm4VXWCk.js → TrueFocus.stories-CYVbY0Hb.js} +1 -1
  217. package/storybook-static/assets/{VariableProximity.stories-BNSYs_rC.js → VariableProximity.stories-BZRrDkSH.js} +1 -1
  218. package/storybook-static/assets/{Waves.stories-Ce2ZJFsV.js → Waves.stories-D9BkuCeQ.js} +1 -1
  219. package/storybook-static/assets/{check-Cty-Z1Ib.js → check-B3Ha7gnS.js} +1 -1
  220. package/storybook-static/assets/{chevron-down-OhqRl4eJ.js → chevron-down-DlPO5f1Y.js} +1 -1
  221. package/storybook-static/assets/{chevron-right-CZm4bArI.js → chevron-right-B8eoaBIh.js} +1 -1
  222. package/storybook-static/assets/client-DxIdGip8.js +1 -0
  223. package/storybook-static/assets/{createLucideIcon-BNUG5osq.js → createLucideIcon-G8N511cp.js} +1 -1
  224. package/storybook-static/assets/download-w1NWX-h6.js +6 -0
  225. package/storybook-static/assets/{folder-BjriMpXc.js → folder-JRyPzO6h.js} +1 -1
  226. package/storybook-static/assets/{iconBase-DmcmY1l-.js → iconBase-DxMTUG9N.js} +1 -1
  227. package/storybook-static/assets/iframe-CU5nRRrn.css +1 -0
  228. package/storybook-static/assets/{iframe-B8pH-Lvr.js → iframe-DCkPNH_h.js} +180 -181
  229. package/storybook-static/assets/{index-DBfrIdYd.js → index-BTVArzym.js} +1 -1
  230. package/storybook-static/assets/{index-PY_vM88c.js → index-BW6Op62F.js} +6 -6
  231. package/storybook-static/assets/{index-BN99WpBo.js → index-CsT-CD6f.js} +1 -1
  232. package/storybook-static/assets/{proxy-BA3VZtN5.js → proxy-cgPyYfyG.js} +1 -1
  233. package/storybook-static/assets/{react-18-7dGub68c.js → react-18-YVQChixo.js} +1 -1
  234. package/storybook-static/assets/{react-three-fiber.esm-DI-wNJmP.js → react-three-fiber.esm-_mYjl9J6.js} +1 -1
  235. package/storybook-static/assets/{search-2YqBkJlG.js → search-DioxI_xb.js} +1 -1
  236. package/storybook-static/assets/{settings-DvzICcFU.js → settings-DFQ10p72.js} +1 -1
  237. package/storybook-static/assets/{sun-DgDhCM_S.js → sun-BfIldVmy.js} +1 -1
  238. package/storybook-static/assets/{trash-2-BwI5jvsn.js → trash-2-DqTvgQRR.js} +1 -1
  239. package/storybook-static/assets/{use-animation-frame-CF42h0i5.js → use-animation-frame-CnngNm80.js} +1 -1
  240. package/storybook-static/assets/{use-in-view-Zn8evg3J.js → use-in-view-DLYDN0EG.js} +1 -1
  241. package/storybook-static/assets/{use-motion-value--XhiA2Gt.js → use-motion-value-Ud8-h3gV.js} +1 -1
  242. package/storybook-static/assets/{use-spring-CrWzlBMd.js → use-spring-DcEBTvl_.js} +1 -1
  243. package/storybook-static/assets/{use-transform-vyDqMhf-.js → use-transform-8mNuLPFu.js} +1 -1
  244. package/storybook-static/assets/{useSound-Bk2W5gkV.js → useSound-Cv_O9Yec.js} +1 -1
  245. package/storybook-static/assets/{users-aNPxMiig.js → users-B5lo7ErU.js} +1 -1
  246. package/storybook-static/assets/{x-BC8LCdn9.js → x-CgTXkpyT.js} +1 -1
  247. package/storybook-static/iframe.html +3 -3
  248. package/storybook-static/index.html +5 -19
  249. package/storybook-static/index.json +1 -1
  250. package/storybook-static/project.json +1 -1
  251. package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
  252. package/storybook-static/assets/ArrayInput.stories-Cshz2s-a.js +0 -232
  253. package/storybook-static/assets/BooleansHeatmap-BV4VTyo6.css +0 -1
  254. package/storybook-static/assets/BooleansHeatmap.stories-CpNxqSED.js +0 -123
  255. package/storybook-static/assets/Calendar-tbpzwSIm.css +0 -1
  256. package/storybook-static/assets/Calendar.stories-Cx2JEddO.js +0 -229
  257. package/storybook-static/assets/Checkbox.stories-BwsnN3CP.js +0 -83
  258. package/storybook-static/assets/Color-AVL7NMMY-CoWQkAiP.js +0 -1
  259. package/storybook-static/assets/DateInput-C4-Rlnpy.css +0 -1
  260. package/storybook-static/assets/DateInput.stories-d46zYiZA.js +0 -119
  261. package/storybook-static/assets/DocsRenderer-PQXLIZUC-C2AYT361.js +0 -1243
  262. package/storybook-static/assets/EditFAB.stories-DvtpW34v.js +0 -378
  263. package/storybook-static/assets/ImageSlideshow.stories-BasuECRV.js +0 -385
  264. package/storybook-static/assets/LoadingSpinner.stories-Dj0bMFhR.js +0 -169
  265. package/storybook-static/assets/MoodChart-2hr_Y2GI.css +0 -1
  266. package/storybook-static/assets/MoodChart.stories-Bk0jtB4g.js +0 -40
  267. package/storybook-static/assets/Navbar-BPWxCB-U.css +0 -1
  268. package/storybook-static/assets/Navbar.stories-Dos3kovt.js +0 -320
  269. package/storybook-static/assets/NumberStepper.stories-BvFwBEjt.js +0 -436
  270. package/storybook-static/assets/PieChart-OfDGlJ4g.css +0 -1
  271. package/storybook-static/assets/PieChart.stories-XZqxh_GW.js +0 -199
  272. package/storybook-static/assets/QuantifiableHabitsChart-Bam6n9X_.css +0 -1
  273. package/storybook-static/assets/SearchBar.stories-CGaj__zF.js +0 -169
  274. package/storybook-static/assets/SearchableDropdown.stories-CfeFR5Rk.js +0 -282
  275. package/storybook-static/assets/SelectInput.stories-DByYKCGI.js +0 -129
  276. package/storybook-static/assets/SleepChart-DBRb08s_.css +0 -1
  277. package/storybook-static/assets/SleepChart.stories-DcoBwiEm.js +0 -58
  278. package/storybook-static/assets/Slider-Bq7zObwV.css +0 -1
  279. package/storybook-static/assets/Table-DnhtoClE.css +0 -1
  280. package/storybook-static/assets/Tabs-D5ZPN7MM.css +0 -1
  281. package/storybook-static/assets/TextArea.stories-Bpqlv7j5.js +0 -155
  282. package/storybook-static/assets/TextInput-BjVJQEYN.css +0 -1
  283. package/storybook-static/assets/TextInput-CLyTHgK9.js +0 -28
  284. package/storybook-static/assets/TextInput.stories-BP1LSkLG.js +0 -203
  285. package/storybook-static/assets/ThemeSwitcher.stories-Bj0YQKM5.js +0 -62
  286. package/storybook-static/assets/TimeInput-C3enPYoV.css +0 -1
  287. package/storybook-static/assets/TimeInput.stories-Cd28zwwR.js +0 -55
  288. package/storybook-static/assets/Toggle.stories-DtqFmh3E.js +0 -199
  289. package/storybook-static/assets/ToggleButton.stories-DkN_4qpp.js +0 -163
  290. package/storybook-static/assets/client-0pKYCVHx.js +0 -1
  291. package/storybook-static/assets/iframe-B7RIyArP.css +0 -1
  292. package/storybook-static/assets/index-bi5z6E3I.js +0 -1
  293. package/storybook-static/assets/layout-grid-TssXYNzv.js +0 -6
  294. package/storybook-static/sb-addons/chromatic-com-storybook-4/manager-bundle.js +0 -356
  295. package/storybook-static/sb-addons/chromatic-com-storybook-4/manager-bundle.js.LEGAL.txt +0 -40
  296. package/storybook-static/sb-addons/docs-2/manager-bundle.js +0 -151
  297. package/storybook-static/sb-addons/onboarding-1/manager-bundle.js +0 -127
  298. /package/storybook-static/sb-addons/{links-3 → links-1}/manager-bundle.js +0 -0
  299. /package/storybook-static/sb-addons/{storybook-5 → storybook-2}/manager-bundle.js +0 -0
package/dist/index.esm.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { motion, AnimatePresence, useMotionValue, useTransform, animate, LayoutGroup } from 'framer-motion';
3
- import React, { useRef, useEffect, useCallback, useState, createContext, useContext, useMemo, memo } from 'react';
3
+ import React, { useRef, useEffect, useCallback, useState, createContext, useContext, useMemo, Fragment as Fragment$1, memo } from 'react';
4
4
  import { createPortal } from 'react-dom';
5
- import { X, Calendar as Calendar$1, ChevronDown, Search, Check, Edit, Folder, Users, Book, MessageSquare, UserPlus, Clock, Sun, Moon, Info, Github, SquareKanban, ChevronRight, Plus, Trash2, GripVertical, Pencil, Menu, ChevronLeft, Maximize, Download, Share2, Pause, Play } from 'lucide-react';
5
+ import { X, Calendar as Calendar$1, ChevronDown, Search, Check, Edit, Folder, Users, Book, MessageSquare, UserPlus, Clock, Sun, Moon, Info, Github, SquareKanban, ChevronRight, Plus, Trash2, GripVertical, Pencil, Download, Menu, ChevronLeft, Maximize, Share2, Pause, Play } from 'lucide-react';
6
6
  import * as d3 from 'd3';
7
7
 
8
8
  var styles$A = {"button":"Button-module_button__c6nkW","primary":"Button-module_primary__pMqAs","secondary":"Button-module_secondary__mBWx9","outline":"Button-module_outline__NGGGN","ghost":"Button-module_ghost__u2QBF","danger":"Button-module_danger__2ewhr","small":"Button-module_small__ZI9RX","medium":"Button-module_medium__Wnf9t","large":"Button-module_large__cQCpA","fullWidth":"Button-module_fullWidth__N8vYg","loading":"Button-module_loading__hcSI4","spinner":"Button-module_spinner__HtM96","spin":"Button-module_spin__jblrj","iconLeft":"Button-module_iconLeft__Fpz-y","iconRight":"Button-module_iconRight__kTfjS"};
@@ -2954,7 +2954,7 @@ const LiquidButton = ({ actions, icon: Icon = Plus, className = '', }) => {
2954
2954
  }, onClick: () => handleAction(action), children: [jsx(action.icon, { size: 18, color: action.color }), jsx("span", { className: styles$b.actionLabel, children: action.label })] }, action.key))) })) }), jsx(motion.button, { type: "button", className: styles$b.button, onClick: handleToggle, animate: { rotate: expanded ? 45 : 0 }, transition: { duration: 0.2 }, "aria-label": expanded ? 'Close actions' : 'Open actions', children: jsx(Icon, { size: 24, strokeWidth: 2.5 }) })] })] }));
2955
2955
  };
2956
2956
 
2957
- var styles$a = {"calendar":"Calendar-module_calendar__3mIJS","loading":"Calendar-module_loading__59Z9-","loadingSpinner":"Calendar-module_loadingSpinner__7MXqV","header":"Calendar-module_header__cZHNA","navigation":"Calendar-module_navigation__PGkpY","navButton":"Calendar-module_navButton__kOe-w","title":"Calendar-module_title__oJZ7m","controls":"Calendar-module_controls__i1Z38","todayButton":"Calendar-module_todayButton__Ac9zc","viewToggle":"Calendar-module_viewToggle__Fhg2t","viewButton":"Calendar-module_viewButton__J2WY6","active":"Calendar-module_active__lIqH-","filterBar":"Calendar-module_filterBar__ZD-lX","filterPill":"Calendar-module_filterPill__f7S8p","filterPillActive":"Calendar-module_filterPillActive__9Wtm9","filterDot":"Calendar-module_filterDot__E1Hp8","weekDays":"Calendar-module_weekDays__4J-8f","weekNumberHeader":"Calendar-module_weekNumberHeader__xhKbB","weekDay":"Calendar-module_weekDay__cg8Gr","daysGrid":"Calendar-module_daysGrid__ER0GM","weekView":"Calendar-module_weekView__bdtGs","dayCell":"Calendar-module_dayCell__TV-HR","dayNumber":"Calendar-module_dayNumber__ICH-X","today":"Calendar-module_today__eGuUU","events":"Calendar-module_events__qdbs7","event":"Calendar-module_event__Q1Zq3","eventTitle":"Calendar-module_eventTitle__XU7Wd","eventTime":"Calendar-module_eventTime__pMGEB","otherMonth":"Calendar-module_otherMonth__r6VJK","selected":"Calendar-module_selected__5e6h0","compact":"Calendar-module_compact__i0SF3","dots":"Calendar-module_dots__1Q7QR","dot":"Calendar-module_dot__tsCR1","dotMore":"Calendar-module_dotMore__emasD","weekNumber":"Calendar-module_weekNumber__nlo50","completed":"Calendar-module_completed__B-SHI","completedIcon":"Calendar-module_completedIcon__-oDZ9","moreEvents":"Calendar-module_moreEvents__TIKaT","emptyState":"Calendar-module_emptyState__2fcj7","dayView":"Calendar-module_dayView__PCIos","dayViewHeader":"Calendar-module_dayViewHeader__Gvxx2","timeColumnHeader":"Calendar-module_timeColumnHeader__B0btR","dayColumnHeader":"Calendar-module_dayColumnHeader__Rjqwg","allDayStrip":"Calendar-module_allDayStrip__VOqbV","allDayLabel":"Calendar-module_allDayLabel__2AmyT","allDayList":"Calendar-module_allDayList__6hFSb","dayViewScrollContainer":"Calendar-module_dayViewScrollContainer__84Byq","dayTimelineGrid":"Calendar-module_dayTimelineGrid__r1BNI","hourRow":"Calendar-module_hourRow__U-YN-","hourLabel":"Calendar-module_hourLabel__im84k","hourSlots":"Calendar-module_hourSlots__vbtYy","halfHourSlot":"Calendar-module_halfHourSlot__UWIri","halfHourSlotBottom":"Calendar-module_halfHourSlotBottom__aE5Mo","dayEventAnchor":"Calendar-module_dayEventAnchor__oryAi","currentTimeIndicator":"Calendar-module_currentTimeIndicator__GntOZ"};
2957
+ var styles$a = {"calendar":"Calendar-module_calendar__3mIJS","loading":"Calendar-module_loading__59Z9-","loadingSpinner":"Calendar-module_loadingSpinner__7MXqV","header":"Calendar-module_header__cZHNA","navigation":"Calendar-module_navigation__PGkpY","navButton":"Calendar-module_navButton__kOe-w","title":"Calendar-module_title__oJZ7m","controls":"Calendar-module_controls__i1Z38","exportDropdown":"Calendar-module_exportDropdown__yQX4q","exportButton":"Calendar-module_exportButton__dx7--","exportMenu":"Calendar-module_exportMenu__-lZ-8","exportMenuItem":"Calendar-module_exportMenuItem__D9MdL","todayButton":"Calendar-module_todayButton__Ac9zc","viewToggle":"Calendar-module_viewToggle__Fhg2t","viewButton":"Calendar-module_viewButton__J2WY6","active":"Calendar-module_active__lIqH-","filterBar":"Calendar-module_filterBar__ZD-lX","filterPill":"Calendar-module_filterPill__f7S8p","filterPillActive":"Calendar-module_filterPillActive__9Wtm9","filterDot":"Calendar-module_filterDot__E1Hp8","weekDays":"Calendar-module_weekDays__4J-8f","withWeekNumbers":"Calendar-module_withWeekNumbers__qbnUY","weekNumberHeader":"Calendar-module_weekNumberHeader__xhKbB","weekDay":"Calendar-module_weekDay__cg8Gr","daysGrid":"Calendar-module_daysGrid__ER0GM","dayCell":"Calendar-module_dayCell__TV-HR","dayNumber":"Calendar-module_dayNumber__ICH-X","today":"Calendar-module_today__eGuUU","events":"Calendar-module_events__qdbs7","event":"Calendar-module_event__Q1Zq3","eventTitle":"Calendar-module_eventTitle__XU7Wd","eventTime":"Calendar-module_eventTime__pMGEB","otherMonth":"Calendar-module_otherMonth__r6VJK","selected":"Calendar-module_selected__5e6h0","compact":"Calendar-module_compact__i0SF3","dots":"Calendar-module_dots__1Q7QR","dot":"Calendar-module_dot__tsCR1","dotMore":"Calendar-module_dotMore__emasD","weekNumberCell":"Calendar-module_weekNumberCell__bydCw","completed":"Calendar-module_completed__B-SHI","completedIcon":"Calendar-module_completedIcon__-oDZ9","moreEvents":"Calendar-module_moreEvents__TIKaT","emptyState":"Calendar-module_emptyState__2fcj7","dayView":"Calendar-module_dayView__PCIos","dayViewHeader":"Calendar-module_dayViewHeader__Gvxx2","timeColumnHeader":"Calendar-module_timeColumnHeader__B0btR","dayColumnHeader":"Calendar-module_dayColumnHeader__Rjqwg","allDayStrip":"Calendar-module_allDayStrip__VOqbV","allDayLabel":"Calendar-module_allDayLabel__2AmyT","allDayList":"Calendar-module_allDayList__6hFSb","dayViewScrollContainer":"Calendar-module_dayViewScrollContainer__84Byq","dayTimelineGrid":"Calendar-module_dayTimelineGrid__r1BNI","hourRow":"Calendar-module_hourRow__U-YN-","hourLabel":"Calendar-module_hourLabel__im84k","hourSlots":"Calendar-module_hourSlots__vbtYy","halfHourSlot":"Calendar-module_halfHourSlot__UWIri","halfHourSlotBottom":"Calendar-module_halfHourSlotBottom__aE5Mo","dayEventAnchor":"Calendar-module_dayEventAnchor__oryAi","weekTimeline":"Calendar-module_weekTimeline__q75EF","weekTimelineHeader":"Calendar-module_weekTimelineHeader__n5i06","weekDayColumnHeader":"Calendar-module_weekDayColumnHeader__u2ghX","weekDayLabel":"Calendar-module_weekDayLabel__i8Rm9","weekDayNumber":"Calendar-module_weekDayNumber__tqFKO","weekTimelineScroll":"Calendar-module_weekTimelineScroll__jesa0","weekTimelineGrid":"Calendar-module_weekTimelineGrid__MxIHF","weekTimeColumn":"Calendar-module_weekTimeColumn__rK4ZV","weekTimeSlot":"Calendar-module_weekTimeSlot__IFPUz","weekHourLabel":"Calendar-module_weekHourLabel__0ANmg","weekDayColumns":"Calendar-module_weekDayColumns__soiyU","weekDayColumn":"Calendar-module_weekDayColumn__sXVu0","weekHourRow":"Calendar-module_weekHourRow__FHcB2","weekEventAnchor":"Calendar-module_weekEventAnchor__nhG4x","currentTimeIndicator":"Calendar-module_currentTimeIndicator__GntOZ"};
2958
2958
 
2959
2959
  var styles$9 = {"wrapper":"DayEventCard-module_wrapper__qvRgl","deleteUnderlay":"DayEventCard-module_deleteUnderlay__fTtuX","card":"DayEventCard-module_card__V9xTi","dragging":"DayEventCard-module_dragging__q19ID","completed":"DayEventCard-module_completed__tq8ol","text":"DayEventCard-module_text__3dWF7","grip":"DayEventCard-module_grip__tmim4","checkIcon":"DayEventCard-module_checkIcon__Ki67j","time":"DayEventCard-module_time__Ojdye","editButton":"DayEventCard-module_editButton__nDi-e"};
2960
2960
 
@@ -2989,20 +2989,21 @@ const DayEventCard = ({ event, color, textColor, onComplete, onEdit, onDelete, o
2989
2989
  return;
2990
2990
  e.stopPropagation();
2991
2991
  e.preventDefault();
2992
- dragStart.current = { y: e.clientY, pointerId: e.pointerId };
2992
+ dragStart.current = { x: e.clientX, y: e.clientY, pointerId: e.pointerId };
2993
2993
  e.currentTarget.setPointerCapture(e.pointerId);
2994
2994
  setVerticalDragging(true);
2995
2995
  };
2996
2996
  const handleGripPointerMove = (e) => {
2997
2997
  if (!dragStart.current)
2998
2998
  return;
2999
- const dy = e.clientY - dragStart.current.y;
3000
- y.set(dy);
2999
+ x.set(e.clientX - dragStart.current.x);
3000
+ y.set(e.clientY - dragStart.current.y);
3001
3001
  };
3002
3002
  const handleGripPointerUp = (e) => {
3003
3003
  if (!dragStart.current)
3004
3004
  return;
3005
3005
  const clientY = e.clientY;
3006
+ const clientX = e.clientX;
3006
3007
  try {
3007
3008
  e.currentTarget.releasePointerCapture(dragStart.current.pointerId);
3008
3009
  }
@@ -3012,7 +3013,8 @@ const DayEventCard = ({ event, color, textColor, onComplete, onEdit, onDelete, o
3012
3013
  dragStart.current = null;
3013
3014
  setVerticalDragging(false);
3014
3015
  animate(y, 0, { type: 'spring', stiffness: 400, damping: 30 });
3015
- onDragEnd?.(clientY);
3016
+ animate(x, 0, { type: 'spring', stiffness: 400, damping: 30 });
3017
+ onDragEnd?.(clientY, clientX);
3016
3018
  };
3017
3019
  const canSwipe = !!onDelete;
3018
3020
  const showGrip = draggable && !!onDragEnd;
@@ -3024,6 +3026,92 @@ const DayEventCard = ({ event, color, textColor, onComplete, onEdit, onDelete, o
3024
3026
  }, "aria-label": "Edit event", children: jsx(Pencil, { size: 13 }) }))] })] }));
3025
3027
  };
3026
3028
 
3029
+ const EXPORT_FIELDS = [
3030
+ 'id', 'title', 'date', 'time', 'endTime', 'allDay',
3031
+ 'type', 'status', 'priority', 'category',
3032
+ ];
3033
+ const toIsoDate = (d) => {
3034
+ const date = typeof d === 'string' ? new Date(d) : d;
3035
+ return date.toISOString();
3036
+ };
3037
+ const normalize = (event) => {
3038
+ const row = {};
3039
+ for (const f of EXPORT_FIELDS) {
3040
+ const v = event[f];
3041
+ if (v === undefined)
3042
+ continue;
3043
+ row[f] = f === 'date' ? toIsoDate(v) : v;
3044
+ }
3045
+ return row;
3046
+ };
3047
+ const escCsv = (value) => {
3048
+ if (value === undefined || value === null)
3049
+ return '';
3050
+ const s = String(value);
3051
+ if (/[",\n\r]/.test(s))
3052
+ return `"${s.replace(/"/g, '""')}"`;
3053
+ return s;
3054
+ };
3055
+ const toCsv = (events) => {
3056
+ const header = EXPORT_FIELDS.join(',');
3057
+ const rows = events.map(e => {
3058
+ const n = normalize(e);
3059
+ return EXPORT_FIELDS.map(f => escCsv(n[f])).join(',');
3060
+ });
3061
+ return [header, ...rows].join('\n');
3062
+ };
3063
+ const toJson = (events) => {
3064
+ return JSON.stringify(events.map(normalize), null, 2);
3065
+ };
3066
+ // TOON (Token-Oriented Object Notation): compact tabular text for uniform arrays.
3067
+ // Format: `events[N]{field1,field2,...}:` then indented rows of comma-separated values.
3068
+ // Strings containing comma/quote/newline are wrapped in double quotes with "" escaping.
3069
+ const escToon = (value) => {
3070
+ if (value === undefined || value === null)
3071
+ return '';
3072
+ const s = String(value);
3073
+ if (/[",\n\r]/.test(s))
3074
+ return `"${s.replace(/"/g, '""')}"`;
3075
+ return s;
3076
+ };
3077
+ const toToon = (events) => {
3078
+ const header = `events[${events.length}]{${EXPORT_FIELDS.join(',')}}:`;
3079
+ const rows = events.map(e => {
3080
+ const n = normalize(e);
3081
+ return ' ' + EXPORT_FIELDS.map(f => escToon(n[f])).join(',');
3082
+ });
3083
+ return [header, ...rows].join('\n');
3084
+ };
3085
+ const MIME = {
3086
+ csv: 'text/csv;charset=utf-8;',
3087
+ json: 'application/json;charset=utf-8;',
3088
+ toon: 'text/plain;charset=utf-8;',
3089
+ };
3090
+ const EXT = {
3091
+ csv: 'csv',
3092
+ json: 'json',
3093
+ toon: 'toon',
3094
+ };
3095
+ const serializeEvents = (events, format) => {
3096
+ if (format === 'csv')
3097
+ return toCsv(events);
3098
+ if (format === 'json')
3099
+ return toJson(events);
3100
+ return toToon(events);
3101
+ };
3102
+ const downloadEvents = (events, format, filename) => {
3103
+ const content = serializeEvents(events, format);
3104
+ const blob = new Blob([content], { type: MIME[format] });
3105
+ const url = URL.createObjectURL(blob);
3106
+ const a = document.createElement('a');
3107
+ a.href = url;
3108
+ a.download = `events-${new Date().toISOString().slice(0, 10)}.${EXT[format]}`;
3109
+ document.body.appendChild(a);
3110
+ a.click();
3111
+ document.body.removeChild(a);
3112
+ URL.revokeObjectURL(url);
3113
+ };
3114
+
3027
3115
  /**
3028
3116
  * Calendar component - A flexible, reusable calendar for displaying events
3029
3117
  *
@@ -3053,7 +3141,7 @@ const DayEventCard = ({ event, color, textColor, onComplete, onEdit, onDelete, o
3053
3141
  * onEventClick={handleEventClick}
3054
3142
  * />
3055
3143
  */
3056
- function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDateClickByView, onTimeSlotClick, onEventDrop, onEventComplete, onEventDelete, onEventEdit, viewMode = 'month', initialDate = new Date(), config = {}, className = '', style = {}, loading = false, emptyState, hideHeader = false, compact = false, selectedDate, selectedCategoryId, onCategoryChange }) {
3144
+ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDateClickByView, onTimeSlotClick, onEventDrop, onEventComplete, onEventDelete, onEventEdit, viewMode = 'month', initialDate = new Date(), config = {}, className = '', style = {}, loading = false, emptyState, hideHeader = false, compact = false, selectedDate, selectedCategoryId, onCategoryChange, exportFormats }) {
3057
3145
  const [currentDate, setCurrentDate] = useState(initialDate);
3058
3146
  const [currentViewMode, setCurrentViewMode] = useState(viewMode);
3059
3147
  const [internalCategoryId, setInternalCategoryId] = useState(null);
@@ -3065,6 +3153,20 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
3065
3153
  onCategoryChange?.(id);
3066
3154
  };
3067
3155
  const dayViewScrollRef = useRef(null);
3156
+ const weekViewScrollRef = useRef(null);
3157
+ const [exportOpen, setExportOpen] = useState(false);
3158
+ const exportRef = useRef(null);
3159
+ useEffect(() => {
3160
+ if (!exportOpen)
3161
+ return;
3162
+ const handler = (e) => {
3163
+ if (exportRef.current && !exportRef.current.contains(e.target)) {
3164
+ setExportOpen(false);
3165
+ }
3166
+ };
3167
+ document.addEventListener('mousedown', handler);
3168
+ return () => document.removeEventListener('mousedown', handler);
3169
+ }, [exportOpen]);
3068
3170
  const { eventColors = {}, iconRenderer, maxEventsPerDay = 3, mondayStart = false, showWeekNumbers = false, dateFormat = { month: 'long', year: 'numeric' }, locale = 'en-US', dayLabels, monthNames, startHour = 0, endHour = 24, hourHeight = 60, halfHourSlots = false, categories } = config;
3069
3171
  const filteredEvents = useMemo(() => {
3070
3172
  if (!categories || categories.length === 0 || activeCategoryId === null)
@@ -3075,24 +3177,8 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
3075
3177
  ? ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
3076
3178
  : ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
3077
3179
  const finalDayLabels = dayLabels || defaultDayLabels;
3078
- // Auto-scroll to current time in day view (respects startHour/hourHeight config)
3079
- const dayViewHourHeight = config?.hourHeight ?? 60;
3080
- const dayViewStartHour = config?.startHour ?? 0;
3081
- useEffect(() => {
3082
- if (currentViewMode === 'day' && dayViewScrollRef.current) {
3083
- const now = new Date();
3084
- const isToday = currentDate.toDateString() === now.toDateString();
3085
- if (isToday) {
3086
- const minutesFromStart = (now.getHours() - dayViewStartHour) * 60 + now.getMinutes();
3087
- const scrollPosition = (minutesFromStart / 60) * dayViewHourHeight - 100;
3088
- setTimeout(() => {
3089
- if (dayViewScrollRef.current) {
3090
- dayViewScrollRef.current.scrollTop = Math.max(0, scrollPosition);
3091
- }
3092
- }, 0);
3093
- }
3094
- }
3095
- }, [currentViewMode, currentDate, dayViewStartHour, dayViewHourHeight]);
3180
+ const timelineHourHeight = config?.hourHeight ?? 60;
3181
+ const timelineStartHour = config?.startHour ?? 0;
3096
3182
  const calendarData = useMemo(() => {
3097
3183
  const year = currentDate.getFullYear();
3098
3184
  const month = currentDate.getMonth();
@@ -3153,6 +3239,26 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
3153
3239
  }
3154
3240
  return { days, displayTitle };
3155
3241
  }, [currentDate, currentViewMode, mondayStart, locale, dateFormat, monthNames]);
3242
+ // Auto-scroll to current time in day/week views
3243
+ useEffect(() => {
3244
+ const targetRef = currentViewMode === 'day' ? dayViewScrollRef :
3245
+ currentViewMode === 'week' ? weekViewScrollRef :
3246
+ null;
3247
+ if (!targetRef?.current)
3248
+ return;
3249
+ const now = new Date();
3250
+ const isTodayOnScreen = currentViewMode === 'day'
3251
+ ? currentDate.toDateString() === now.toDateString()
3252
+ : calendarData.days.some(d => d.toDateString() === now.toDateString());
3253
+ if (!isTodayOnScreen)
3254
+ return;
3255
+ const minutesFromStart = (now.getHours() - timelineStartHour) * 60 + now.getMinutes();
3256
+ const scrollPosition = Math.max(0, (minutesFromStart / 60) * timelineHourHeight - 100);
3257
+ setTimeout(() => {
3258
+ if (targetRef.current)
3259
+ targetRef.current.scrollTop = scrollPosition;
3260
+ }, 0);
3261
+ }, [currentViewMode, currentDate, timelineStartHour, timelineHourHeight, calendarData]);
3156
3262
  const getDayEvents = (day) => {
3157
3263
  const dayEvents = filteredEvents.filter(event => {
3158
3264
  const eventDate = new Date(event.date);
@@ -3273,7 +3379,10 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
3273
3379
  return (jsxs("div", { className: `${styles$a.calendar} ${compact ? styles$a.compact : ''} ${className}`, style: style, children: [!hideHeader && (jsxs("div", { className: styles$a.header, children: [jsxs("div", { className: styles$a.navigation, children: [jsx("button", { onClick: handlePrevious, className: styles$a.navButton, "aria-label": "Previous", children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "15,18 9,12 15,6" }) }) }), jsx("h3", { className: styles$a.title, children: calendarData.displayTitle }), jsx("button", { onClick: handleNext, className: styles$a.navButton, "aria-label": "Next", children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "9,6 15,12 9,18" }) }) })] }), categories && categories.length > 0 && (jsxs("div", { className: styles$a.filterBar, role: "tablist", "aria-label": "Filter by category", children: [jsx("button", { type: "button", role: "tab", "aria-selected": activeCategoryId === null, className: `${styles$a.filterPill} ${activeCategoryId === null ? styles$a.filterPillActive : ''}`, onClick: () => handleCategoryPick(null), children: "All" }), categories.map(cat => {
3274
3380
  const active = activeCategoryId === cat.id;
3275
3381
  return (jsxs("button", { type: "button", role: "tab", "aria-selected": active, className: `${styles$a.filterPill} ${active ? styles$a.filterPillActive : ''}`, style: active ? { background: cat.color, borderColor: cat.color, color: '#ffffff' } : undefined, onClick: () => handleCategoryPick(cat.id), children: [!active && (jsx("span", { className: styles$a.filterDot, style: { background: cat.color } })), cat.label] }, cat.id));
3276
- })] })), jsxs("div", { className: styles$a.controls, children: [jsx("button", { onClick: handleToday, className: styles$a.todayButton, children: "Today" }), jsxs("div", { className: styles$a.viewToggle, children: [jsx("button", { className: `${styles$a.viewButton} ${currentViewMode === 'month' ? styles$a.active : ''}`, onClick: () => setCurrentViewMode('month'), children: "Month" }), jsx("button", { className: `${styles$a.viewButton} ${currentViewMode === 'week' ? styles$a.active : ''}`, onClick: () => setCurrentViewMode('week'), children: "Week" }), jsx("button", { className: `${styles$a.viewButton} ${currentViewMode === 'day' ? styles$a.active : ''}`, onClick: () => setCurrentViewMode('day'), children: "Day" })] })] })] })), currentViewMode !== 'day' && (jsxs("div", { className: styles$a.weekDays, children: [showWeekNumbers && jsx("div", { className: styles$a.weekNumberHeader, children: "Week" }), finalDayLabels.map((day) => (jsx("div", { className: styles$a.weekDay, children: day }, day)))] })), currentViewMode === 'day' ? (
3382
+ })] })), jsxs("div", { className: styles$a.controls, children: [exportFormats && exportFormats.length > 0 && (jsxs("div", { className: styles$a.exportDropdown, ref: exportRef, children: [jsx("button", { type: "button", className: styles$a.exportButton, onClick: () => setExportOpen(v => !v), "aria-haspopup": "menu", "aria-expanded": exportOpen, "aria-label": "Export events", title: "Export events", children: jsx(Download, { size: 16 }) }), exportOpen && (jsx("div", { className: styles$a.exportMenu, role: "menu", children: exportFormats.map(format => (jsx("button", { type: "button", role: "menuitem", className: styles$a.exportMenuItem, onClick: () => {
3383
+ downloadEvents(filteredEvents, format);
3384
+ setExportOpen(false);
3385
+ }, children: format.toUpperCase() }, format))) }))] })), jsx("button", { onClick: handleToday, className: styles$a.todayButton, children: "Today" }), jsxs("div", { className: styles$a.viewToggle, children: [jsx("button", { className: `${styles$a.viewButton} ${currentViewMode === 'month' ? styles$a.active : ''}`, onClick: () => setCurrentViewMode('month'), children: "Month" }), jsx("button", { className: `${styles$a.viewButton} ${currentViewMode === 'week' ? styles$a.active : ''}`, onClick: () => setCurrentViewMode('week'), children: "Week" }), jsx("button", { className: `${styles$a.viewButton} ${currentViewMode === 'day' ? styles$a.active : ''}`, onClick: () => setCurrentViewMode('day'), children: "Day" })] })] })] })), currentViewMode === 'month' && (jsxs("div", { className: `${styles$a.weekDays} ${showWeekNumbers ? styles$a.withWeekNumbers : ''}`, children: [showWeekNumbers && jsx("div", { className: styles$a.weekNumberHeader, children: "Wk" }), finalDayLabels.map((day) => (jsx("div", { className: styles$a.weekDay, children: day }, day)))] })), currentViewMode === 'day' ? (
3277
3386
  // Day view layout — positioned events with duration, all-day strip, now-line
3278
3387
  (() => {
3279
3388
  const dayEvents = getDayEvents(currentDate);
@@ -3329,42 +3438,106 @@ function Calendar({ events, onEventClick, onDateClick, onEventClickByView, onDat
3329
3438
  const height = Math.max(24, (duration / 60) * hourHeight - 2);
3330
3439
  return (jsx("div", { className: styles$a.dayEventAnchor, style: { top, height }, onClick: (e) => e.stopPropagation(), children: jsx(DayEventCard, { event: event, color: getEventColor(event), textColor: getEventTextColor(event), onComplete: onEventComplete ?? (onEventClick ? handleEventClick : undefined), onEdit: onEventEdit, onDelete: onEventDelete, onDragEnd: onEventDrop ? (clientY) => handleEventDragEnd(event, clientY) : undefined }) }, event.id));
3331
3440
  }), showNow && (jsx("div", { className: styles$a.currentTimeIndicator, style: { top: `${nowOffset}px` } }))] }) })] }));
3441
+ })()) : currentViewMode === 'week' ? (
3442
+ // Week view layout — 7 side-by-side day timelines. Drag events across
3443
+ // columns to reschedule to a different day + hour in one gesture.
3444
+ (() => {
3445
+ const days = calendarData.days;
3446
+ const hours = Array.from({ length: endHour - startHour }, (_, i) => startHour + i);
3447
+ const timelineHeight = hours.length * hourHeight;
3448
+ const now = new Date();
3449
+ const todayIdx = days.findIndex(d => d.toDateString() === now.toDateString());
3450
+ const nowMinutesFromStart = (now.getHours() - startHour) * 60 + now.getMinutes();
3451
+ const nowOffset = (nowMinutesFromStart / 60) * hourHeight;
3452
+ const showNow = todayIdx >= 0 && nowOffset >= 0 && nowOffset <= timelineHeight;
3453
+ const eventMinutes = (time) => {
3454
+ const [h, m] = time.split(':').map(Number);
3455
+ return h * 60 + m;
3456
+ };
3457
+ const eventDuration = (event) => {
3458
+ if (!event.time || !event.endTime)
3459
+ return 30;
3460
+ const d = eventMinutes(event.endTime) - eventMinutes(event.time);
3461
+ return d > 0 ? d : 30;
3462
+ };
3463
+ const handleWeekSlotClick = (day, hour, minute) => {
3464
+ if (!onTimeSlotClick)
3465
+ return;
3466
+ const slotDate = new Date(day);
3467
+ slotDate.setHours(hour, minute, 0, 0);
3468
+ const timeString = `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}`;
3469
+ onTimeSlotClick(slotDate, hour, timeString);
3470
+ };
3471
+ const handleWeekDragEnd = (event, clientY, clientX) => {
3472
+ if (!onEventDrop)
3473
+ return;
3474
+ const gridEl = weekViewScrollRef.current?.querySelector(`.${styles$a.weekDayColumns}`);
3475
+ if (!gridEl)
3476
+ return;
3477
+ const rect = gridEl.getBoundingClientRect();
3478
+ const relativeX = clientX - rect.left;
3479
+ const relativeY = clientY - rect.top;
3480
+ const columnWidth = rect.width / 7;
3481
+ const columnIndex = Math.min(6, Math.max(0, Math.floor(relativeX / columnWidth)));
3482
+ const targetDay = days[columnIndex];
3483
+ const slotSize = halfHourSlots ? hourHeight / 2 : hourHeight;
3484
+ const totalSlots = halfHourSlots ? hours.length * 2 : hours.length;
3485
+ const slotIndex = Math.min(totalSlots - 1, Math.max(0, Math.floor(relativeY / slotSize)));
3486
+ const newHour = startHour + Math.floor(halfHourSlots ? slotIndex / 2 : slotIndex);
3487
+ const newMinute = halfHourSlots && slotIndex % 2 === 1 ? 30 : 0;
3488
+ const newDate = new Date(targetDay);
3489
+ newDate.setHours(newHour, newMinute, 0, 0);
3490
+ onEventDrop(event, newDate);
3491
+ };
3492
+ return (jsxs("div", { className: styles$a.weekTimeline, children: [jsxs("div", { className: styles$a.weekTimelineHeader, children: [jsx("div", { className: styles$a.timeColumnHeader }), days.map(day => {
3493
+ const dayIsToday = day.toDateString() === now.toDateString();
3494
+ const dayIsSelected = selectedDate && day.toDateString() === selectedDate.toDateString();
3495
+ return (jsxs("button", { type: "button", className: `${styles$a.weekDayColumnHeader} ${dayIsToday ? styles$a.today : ''} ${dayIsSelected ? styles$a.selected : ''}`, onClick: () => handleDateClick(day), children: [jsx("span", { className: styles$a.weekDayLabel, children: day.toLocaleDateString(locale, { weekday: 'short' }) }), jsx("span", { className: styles$a.weekDayNumber, children: day.getDate() })] }, day.toISOString()));
3496
+ })] }), jsx("div", { className: styles$a.weekTimelineScroll, ref: weekViewScrollRef, children: jsxs("div", { className: styles$a.weekTimelineGrid, style: { height: timelineHeight }, children: [jsx("div", { className: styles$a.weekTimeColumn, children: hours.map(hour => (jsx("div", { className: styles$a.weekTimeSlot, style: { height: hourHeight }, children: jsxs("span", { className: styles$a.weekHourLabel, children: [hour.toString().padStart(2, '0'), ":00"] }) }, hour))) }), jsx("div", { className: styles$a.weekDayColumns, children: days.map(day => {
3497
+ const dayEvents = getDayEvents(day).filter(e => !e.allDay && e.time);
3498
+ const dayIsToday = day.toDateString() === now.toDateString();
3499
+ return (jsxs("div", { className: styles$a.weekDayColumn, children: [hours.map(hour => (jsx("div", { className: styles$a.weekHourRow, style: { height: hourHeight }, children: halfHourSlots ? (jsxs(Fragment, { children: [jsx("div", { className: styles$a.halfHourSlot, onClick: () => handleWeekSlotClick(day, hour, 0) }), jsx("div", { className: `${styles$a.halfHourSlot} ${styles$a.halfHourSlotBottom}`, onClick: () => handleWeekSlotClick(day, hour, 30) })] })) : (jsx("div", { className: styles$a.halfHourSlot, onClick: () => handleWeekSlotClick(day, hour, 0) })) }, hour))), dayEvents.map(event => {
3500
+ const [h, m] = event.time.split(':').map(Number);
3501
+ const top = (h - startHour) * hourHeight + (m / 60) * hourHeight;
3502
+ const duration = eventDuration(event);
3503
+ const height = Math.max(24, (duration / 60) * hourHeight - 2);
3504
+ return (jsx("div", { className: styles$a.weekEventAnchor, style: { top, height }, onClick: (e) => e.stopPropagation(), children: jsx(DayEventCard, { event: event, color: getEventColor(event), textColor: getEventTextColor(event), onComplete: onEventComplete ?? (onEventClick ? handleEventClick : undefined), onEdit: onEventEdit, onDelete: onEventDelete, onDragEnd: onEventDrop ? (cy, cx) => handleWeekDragEnd(event, cy, cx) : undefined }) }, event.id));
3505
+ }), dayIsToday && showNow && (jsx("div", { className: styles$a.currentTimeIndicator, style: { top: `${nowOffset}px`, left: 0 } }))] }, day.toISOString()));
3506
+ }) })] }) })] }));
3332
3507
  })()) : ((() => {
3333
3508
  // Fixed month-view cell height derived from maxEventsPerDay.
3334
3509
  // Day number + padding ≈ 40px, each event row ≈ 24px.
3335
3510
  // Week and compact views keep their own CSS-driven sizing.
3336
- const monthCellHeight = currentViewMode === 'month' && !compact
3337
- ? 40 + maxEventsPerDay * 24
3338
- : undefined;
3339
- return (jsx("div", { className: `${styles$a.daysGrid} ${currentViewMode === 'week' ? styles$a.weekView : ''}`, children: calendarData.days.map((day, index) => {
3511
+ const monthCellHeight = !compact ? 40 + maxEventsPerDay * 24 : undefined;
3512
+ return (jsx("div", { className: `${styles$a.daysGrid} ${showWeekNumbers ? styles$a.withWeekNumbers : ''}`, children: calendarData.days.map((day, index) => {
3340
3513
  const dayEvents = getDayEvents(day);
3341
3514
  const dayIsToday = isToday(day);
3342
- const isInCurrentMonth = currentViewMode === 'week' || isCurrentMonth(day);
3515
+ const isInCurrentMonth = isCurrentMonth(day);
3343
3516
  const isWeekStart = showWeekNumbers && (index % 7 === 0);
3344
3517
  const dayIsSelected = selectedDate && day.toDateString() === selectedDate.toDateString();
3345
- return (jsxs(motion.div, { className: `${styles$a.dayCell} ${dayIsToday ? styles$a.today : ''} ${!isInCurrentMonth ? styles$a.otherMonth : ''} ${dayIsSelected ? styles$a.selected : ''}`, style: monthCellHeight !== undefined ? { height: monthCellHeight, minHeight: monthCellHeight } : undefined, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: {
3346
- duration: 0.3,
3347
- delay: index * 0.02,
3348
- ease: "easeOut"
3349
- }, onClick: () => handleDateClick(day), children: [isWeekStart && (jsx("div", { className: styles$a.weekNumber, children: getWeekNumber(day) })), jsx("div", { className: styles$a.dayNumber, children: day.getDate() }), dayEvents.length > 0 && compact && currentViewMode === 'month' ? (jsxs("div", { className: styles$a.dots, children: [dayEvents.slice(0, maxEventsPerDay).map((event) => (jsx("span", { className: styles$a.dot, style: { backgroundColor: getEventColor(event) } }, event.id))), dayEvents.length > maxEventsPerDay && (jsxs("span", { className: styles$a.dotMore, children: ["+", dayEvents.length - maxEventsPerDay] }))] })) : dayEvents.length > 0 ? (jsxs("div", { className: styles$a.events, children: [dayEvents.slice(0, maxEventsPerDay).map((event, eventIndex) => (jsxs(motion.div, { className: `${styles$a.event} ${event.status === 'completed' ? styles$a.completed : ''}`, style: {
3350
- backgroundColor: getEventColor(event),
3351
- color: getEventTextColor(event),
3352
- opacity: event.status === 'completed' ? 0.7 : 1
3353
- }, onClick: (e) => {
3354
- e.stopPropagation();
3355
- handleEventClick(event);
3356
- }, initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, transition: {
3357
- duration: 0.2,
3358
- delay: eventIndex * 0.05,
3359
- ease: "easeOut"
3360
- }, whileHover: {
3361
- scale: 1.02,
3362
- y: -1,
3363
- transition: { duration: 0.1 }
3364
- }, whileTap: {
3365
- scale: 0.98,
3366
- transition: { duration: 0.1 }
3367
- }, children: [iconRenderer && iconRenderer(event), jsxs("span", { className: styles$a.eventTitle, children: [event.time && (jsx("span", { className: styles$a.eventTime, children: event.time })), event.title] }), event.status === 'completed' && (jsx("svg", { className: styles$a.completedIcon, width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "20,6 9,17 4,12" }) }))] }, event.id))), dayEvents.length > maxEventsPerDay && (jsxs("div", { className: styles$a.moreEvents, children: ["+", dayEvents.length - maxEventsPerDay, " more"] }))] })) : emptyState ? (jsx("div", { className: styles$a.emptyState, children: emptyState })) : null] }, `${day.getFullYear()}-${day.getMonth()}-${day.getDate()}`));
3518
+ return (jsxs(Fragment$1, { children: [isWeekStart && (jsx("div", { className: styles$a.weekNumberCell, style: monthCellHeight !== undefined ? { height: monthCellHeight, minHeight: monthCellHeight } : undefined, children: getWeekNumber(day) })), jsxs(motion.div, { className: `${styles$a.dayCell} ${dayIsToday ? styles$a.today : ''} ${!isInCurrentMonth ? styles$a.otherMonth : ''} ${dayIsSelected ? styles$a.selected : ''}`, style: monthCellHeight !== undefined ? { height: monthCellHeight, minHeight: monthCellHeight } : undefined, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: {
3519
+ duration: 0.3,
3520
+ delay: index * 0.02,
3521
+ ease: "easeOut"
3522
+ }, onClick: () => handleDateClick(day), children: [jsx("div", { className: styles$a.dayNumber, children: day.getDate() }), dayEvents.length > 0 && compact && currentViewMode === 'month' ? (jsxs("div", { className: styles$a.dots, children: [dayEvents.slice(0, maxEventsPerDay).map((event) => (jsx("span", { className: styles$a.dot, style: { backgroundColor: getEventColor(event) } }, event.id))), dayEvents.length > maxEventsPerDay && (jsxs("span", { className: styles$a.dotMore, children: ["+", dayEvents.length - maxEventsPerDay] }))] })) : dayEvents.length > 0 ? (jsxs("div", { className: styles$a.events, children: [dayEvents.slice(0, maxEventsPerDay).map((event, eventIndex) => (jsxs(motion.div, { className: `${styles$a.event} ${event.status === 'completed' ? styles$a.completed : ''}`, style: {
3523
+ backgroundColor: getEventColor(event),
3524
+ color: getEventTextColor(event),
3525
+ opacity: event.status === 'completed' ? 0.7 : 1
3526
+ }, onClick: (e) => {
3527
+ e.stopPropagation();
3528
+ handleEventClick(event);
3529
+ }, initial: { opacity: 0, x: -10 }, animate: { opacity: 1, x: 0 }, transition: {
3530
+ duration: 0.2,
3531
+ delay: eventIndex * 0.05,
3532
+ ease: "easeOut"
3533
+ }, whileHover: {
3534
+ scale: 1.02,
3535
+ y: -1,
3536
+ transition: { duration: 0.1 }
3537
+ }, whileTap: {
3538
+ scale: 0.98,
3539
+ transition: { duration: 0.1 }
3540
+ }, children: [iconRenderer && iconRenderer(event), jsxs("span", { className: styles$a.eventTitle, children: [event.time && (jsx("span", { className: styles$a.eventTime, children: event.time })), event.title] }), event.status === 'completed' && (jsx("svg", { className: styles$a.completedIcon, width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", children: jsx("polyline", { points: "20,6 9,17 4,12" }) }))] }, event.id))), dayEvents.length > maxEventsPerDay && (jsxs("div", { className: styles$a.moreEvents, children: ["+", dayEvents.length - maxEventsPerDay, " more"] }))] })) : emptyState ? (jsx("div", { className: styles$a.emptyState, children: emptyState })) : null] })] }, `${day.getFullYear()}-${day.getMonth()}-${day.getDate()}`));
3368
3541
  }) }));
3369
3542
  })())] }));
3370
3543
  }
@@ -3373,7 +3546,8 @@ var desktopStyles = {"navbar":"Navbar-module_navbar__-SNiN","navbarSidebar":"Nav
3373
3546
 
3374
3547
  var mobileStyles = {"navbar":"Navbar-mobile-module_navbar__-shkE","navLogo":"Navbar-mobile-module_navLogo__7Gnna","logoContainer":"Navbar-mobile-module_logoContainer__JTw99","logoImage":"Navbar-mobile-module_logoImage__QwV5v","logoPlaceholder":"Navbar-mobile-module_logoPlaceholder__tSkOl","logoContent":"Navbar-mobile-module_logoContent__FVTxh","logoText":"Navbar-mobile-module_logoText__5XghQ","logoSubtitle":"Navbar-mobile-module_logoSubtitle__4Wf8p","mobileMenuButton":"Navbar-mobile-module_mobileMenuButton__Dx3t8","menuOpen":"Navbar-mobile-module_menuOpen__XEc1c","mobileBackdrop":"Navbar-mobile-module_mobileBackdrop__biYng","navList":"Navbar-mobile-module_navList__FBo8I","navItem":"Navbar-mobile-module_navItem__-9E9-","subNavItem":"Navbar-mobile-module_subNavItem__c-5IU","navLink":"Navbar-mobile-module_navLink__A8n8F","active":"Navbar-mobile-module_active__h3ajz","activeBackground":"Navbar-mobile-module_activeBackground__btXAN","navIcon":"Navbar-mobile-module_navIcon__4L17v","activeIcon":"Navbar-mobile-module_activeIcon__A8GF-","navText":"Navbar-mobile-module_navText__ewf-i","activeText":"Navbar-mobile-module_activeText__fNqcU","navBadge":"Navbar-mobile-module_navBadge__YccGx","chevron":"Navbar-mobile-module_chevron__nBPqn","subNavList":"Navbar-mobile-module_subNavList__8tINc","navActions":"Navbar-mobile-module_navActions__fpzOK","navFooter":"Navbar-mobile-module_navFooter__yijWu","navbarSidebar":"Navbar-mobile-module_navbarSidebar__HvB-K","navbarTop":"Navbar-mobile-module_navbarTop__oyfPE","navbarMinimal":"Navbar-mobile-module_navbarMinimal__cudny","mobileMenuOpen":"Navbar-mobile-module_mobileMenuOpen__zB4Gy"};
3375
3548
 
3376
- const Navbar = ({ items, logo, onItemClick, variant = 'sidebar', isMobile = false, footer, className = '', soundConfig, }) => {
3549
+ const Navbar = ({ items, logo, onItemClick, variant = 'sidebar', isMobile = false, footer, className = '', soundConfig, colorfulIcons = false, }) => {
3550
+ const coloredIconsAttr = colorfulIcons ? 'true' : undefined;
3377
3551
  const styles = useMemo(() => (isMobile ? mobileStyles : desktopStyles), [isMobile]);
3378
3552
  const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
3379
3553
  const [expandedItems, setExpandedItems] = useState(new Set());
@@ -3488,12 +3662,12 @@ const Navbar = ({ items, logo, onItemClick, variant = 'sidebar', isMobile = fals
3488
3662
  };
3489
3663
  const navContent = (jsxs(Fragment, { children: [logo && (jsx(motion.div, { className: styles.navLogo, initial: { opacity: 0, y: -20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.1 }, children: jsxs("div", { className: styles.logoContainer, children: [logo.src ? (jsx(motion.img, { src: logo.src, alt: logo.alt || 'Logo', className: styles.logoImage, onMouseEnter: handlers.onMouseEnter, whileHover: { scale: 1.05 }, transition: { type: 'spring', stiffness: 400 } })) : (jsx("div", { className: styles.logoPlaceholder, children: logo.text?.charAt(0) || 'L' })), (logo.text || logo.subtitle) && (jsxs("div", { className: styles.logoContent, children: [logo.text && jsx("span", { className: styles.logoText, children: logo.text }), logo.subtitle && (jsx("span", { className: styles.logoSubtitle, children: logo.subtitle }))] }))] }) })), jsx("ul", { className: styles.navList, children: items.map((item, index) => renderNavItem(item, index)) }), footer && (jsx(motion.div, { className: styles.navFooter, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.3 }, children: footer }))] }));
3490
3664
  if (variant === 'top') {
3491
- return (jsx(motion.nav, { className: `${styles.navbar} ${styles.navbarTop} ${className}`, initial: { y: -100 }, animate: { y: 0 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: navContent }));
3665
+ return (jsx(motion.nav, { className: `${styles.navbar} ${styles.navbarTop} ${className}`, "data-colored-icons": coloredIconsAttr, initial: { y: -100 }, animate: { y: 0 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: navContent }));
3492
3666
  }
3493
3667
  if (isMobile) {
3494
- return (jsxs(Fragment, { children: [jsxs("nav", { className: `${styles.navbar} ${className}`, children: [logo && (jsx("div", { className: styles.navLogo, children: jsxs("div", { className: styles.logoContainer, children: [logo.src ? (jsx("img", { src: logo.src, alt: logo.alt || 'Logo', className: styles.logoImage })) : (jsx("div", { className: styles.logoPlaceholder, children: logo.text?.charAt(0) || 'L' })), logo.text && (jsx("div", { className: styles.logoContent, children: jsx("span", { className: styles.logoText, children: logo.text }) }))] }) })), jsxs("div", { className: styles.navActions, children: [footer && jsx("div", { className: styles.navFooter, children: footer }), jsx("button", { className: `${styles.mobileMenuButton} ${isMobileMenuOpen ? styles.menuOpen : ''}`, onClick: toggleMobileMenu, "aria-label": "Toggle navigation menu", children: isMobileMenuOpen ? jsx(X, {}) : jsx(Menu, {}) })] })] }), jsx(AnimatePresence, { children: isMobileMenuOpen && (jsx(motion.div, { className: styles.mobileBackdrop, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.2 }, onClick: () => setIsMobileMenuOpen(false), children: jsx(motion.div, { initial: { y: -20, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: -20, opacity: 0 }, transition: { duration: 0.2 }, onClick: (e) => e.stopPropagation(), children: jsx("ul", { className: styles.navList, children: items.map((item, index) => renderNavItem(item, index)) }) }) })) })] }));
3668
+ return (jsxs(Fragment, { children: [jsxs("nav", { className: `${styles.navbar} ${className}`, "data-colored-icons": coloredIconsAttr, children: [logo && (jsx("div", { className: styles.navLogo, children: jsxs("div", { className: styles.logoContainer, children: [logo.src ? (jsx("img", { src: logo.src, alt: logo.alt || 'Logo', className: styles.logoImage })) : (jsx("div", { className: styles.logoPlaceholder, children: logo.text?.charAt(0) || 'L' })), logo.text && (jsx("div", { className: styles.logoContent, children: jsx("span", { className: styles.logoText, children: logo.text }) }))] }) })), jsxs("div", { className: styles.navActions, children: [footer && jsx("div", { className: styles.navFooter, children: footer }), jsx("button", { className: `${styles.mobileMenuButton} ${isMobileMenuOpen ? styles.menuOpen : ''}`, onClick: toggleMobileMenu, "aria-label": "Toggle navigation menu", children: isMobileMenuOpen ? jsx(X, {}) : jsx(Menu, {}) })] })] }), jsx(AnimatePresence, { children: isMobileMenuOpen && (jsx(motion.div, { className: styles.mobileBackdrop, "data-colored-icons": coloredIconsAttr, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.2 }, onClick: () => setIsMobileMenuOpen(false), children: jsx(motion.div, { initial: { y: -20, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: -20, opacity: 0 }, transition: { duration: 0.2 }, onClick: (e) => e.stopPropagation(), children: jsx("ul", { className: styles.navList, children: items.map((item, index) => renderNavItem(item, index)) }) }) })) })] }));
3495
3669
  }
3496
- return (jsx(Fragment, { children: jsx(motion.nav, { className: `${styles.navbar} ${styles[`navbar${variant.charAt(0).toUpperCase() + variant.slice(1)}`]} ${className}`, initial: variant === 'sidebar' ? { x: -300 } : { opacity: 0 }, animate: variant === 'sidebar' ? { x: 0 } : { opacity: 1 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: navContent }) }));
3670
+ return (jsx(Fragment, { children: jsx(motion.nav, { className: `${styles.navbar} ${styles[`navbar${variant.charAt(0).toUpperCase() + variant.slice(1)}`]} ${className}`, "data-colored-icons": coloredIconsAttr, initial: variant === 'sidebar' ? { x: -300 } : { opacity: 0 }, animate: variant === 'sidebar' ? { x: 0 } : { opacity: 1 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: navContent }) }));
3497
3671
  };
3498
3672
 
3499
3673
  var styles$8 = {"container":"MoodChart-module_container__MB1Vr","chart":"MoodChart-module_chart__4-spu","gridLine":"MoodChart-module_gridLine__YJpZ8","line":"MoodChart-module_line__LfeUX","xAxis":"MoodChart-module_xAxis__SeIWG","yAxis":"MoodChart-module_yAxis__sRjjE","dataPoint":"MoodChart-module_dataPoint__112P1","tooltip":"MoodChart-module_tooltip__vW59y","tooltipHeader":"MoodChart-module_tooltipHeader__U7yvN","tooltipDate":"MoodChart-module_tooltipDate__6Jjeu","tooltipRating":"MoodChart-module_tooltipRating__5A2Yx","ratingValue":"MoodChart-module_ratingValue__7Gpfx","ratingMax":"MoodChart-module_ratingMax__10WcJ","tooltipTags":"MoodChart-module_tooltipTags__FUQrU","tag":"MoodChart-module_tag__QhCh5","tooltipComment":"MoodChart-module_tooltipComment__6driJ"};