@stfrigerio/sito-template 0.1.94 → 0.1.95

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 (195) hide show
  1. package/dist/components/atoms/Slider/Slider.d.ts +3 -1
  2. package/dist/components/atoms/Slider/Slider.d.ts.map +1 -1
  3. package/dist/components/atoms/Slider/Slider.stories.d.ts +1 -1
  4. package/dist/components/atoms/Slider/Slider.stories.d.ts.map +1 -1
  5. package/dist/components/organisms/charts/SleepChart/SleepChart.d.ts.map +1 -1
  6. package/dist/index.esm.js +154 -203
  7. package/dist/index.esm.js.map +1 -1
  8. package/dist/index.js +154 -203
  9. package/dist/index.js.map +1 -1
  10. package/dist/styles.css +1 -1
  11. package/dist/styles.css.map +1 -1
  12. package/package.json +1 -1
  13. package/storybook-static/assets/{ASCIIText.stories-BcJjdQeF.js → ASCIIText.stories-DFJdLu85.js} +1 -1
  14. package/storybook-static/assets/{AllAtoms.stories-gLnakQIy.js → AllAtoms.stories-exRxVmzu.js} +1 -1
  15. package/storybook-static/assets/{AnimatedContent.stories-BqG8Ujwo.js → AnimatedContent.stories-A1SzIOe2.js} +1 -1
  16. package/storybook-static/assets/{AnimatedList.stories-BHUu3vbs.js → AnimatedList.stories-D2Q-T7WK.js} +1 -1
  17. package/storybook-static/assets/{Antigravity.stories-Dvy48Mca.js → Antigravity.stories-CB3_2V40.js} +1 -1
  18. package/storybook-static/assets/{ArrayInput.stories-BaYz4AcS.js → ArrayInput.stories-pogP4q4b.js} +1 -1
  19. package/storybook-static/assets/{Aurora.stories-Cj0WEobX.js → Aurora.stories-Cu440k5S.js} +1 -1
  20. package/storybook-static/assets/{Beams.stories-DdjXl2Ud.js → Beams.stories-CzUpFwoS.js} +1 -1
  21. package/storybook-static/assets/{BlobCursor.stories-BoQFvL-r.js → BlobCursor.stories-IsVKCCEO.js} +1 -1
  22. package/storybook-static/assets/{BlurText.stories-DxpW9DDe.js → BlurText.stories-BVGu0aqN.js} +1 -1
  23. package/storybook-static/assets/{BooleansHeatmap.stories-BHhNYd6b.js → BooleansHeatmap.stories-BthQ5ehB.js} +1 -1
  24. package/storybook-static/assets/{BorderGlow.stories-CuZoWDWv.js → BorderGlow.stories-BNwBLObC.js} +1 -1
  25. package/storybook-static/assets/{BubbleMenu.stories-DEd7nU7K.js → BubbleMenu.stories-7__gkj8R.js} +1 -1
  26. package/storybook-static/assets/{Button-pZnuxGoU.js → Button-CwSLfSSb.js} +1 -1
  27. package/storybook-static/assets/{Button.stories-ClGPyfoQ.js → Button.stories-DXdSC8Ub.js} +1 -1
  28. package/storybook-static/assets/{Calendar.stories-CZ__yULj.js → Calendar.stories-HJNrPTKA.js} +1 -1
  29. package/storybook-static/assets/{Card-qiSwFj5T.js → Card-CMuvydSk.js} +1 -1
  30. package/storybook-static/assets/{Card.stories-QS7XsWA5.js → Card.stories-C6r4Lfy1.js} +1 -1
  31. package/storybook-static/assets/{CardNav.stories-yaYQBXBL.js → CardNav.stories-WDha-__w.js} +1 -1
  32. package/storybook-static/assets/{Carousel.stories-CN1saeqv.js → Carousel.stories-C73W8Cj0.js} +1 -1
  33. package/storybook-static/assets/{Checkbox-C5cfmgV9.js → Checkbox-DXDBhCOJ.js} +1 -1
  34. package/storybook-static/assets/{Checkbox.stories-DRcZy09T.js → Checkbox.stories-BdYI4nAD.js} +1 -1
  35. package/storybook-static/assets/{ChromaGrid.stories-BMv_eSkq.js → ChromaGrid.stories-DWa4kR3d.js} +1 -1
  36. package/storybook-static/assets/{CircularGallery.stories-CM7yqhd9.js → CircularGallery.stories-DtM7FALz.js} +1 -1
  37. package/storybook-static/assets/{CircularText.stories-TPKZYXaf.js → CircularText.stories-BaJvxGQF.js} +1 -1
  38. package/storybook-static/assets/{ClickSpark.stories-BzYMb5jU.js → ClickSpark.stories--IchxFvN.js} +1 -1
  39. package/storybook-static/assets/{ColorBends.stories-DXg_57qe.js → ColorBends.stories-0cTr18l9.js} +1 -1
  40. package/storybook-static/assets/{CountUp.stories-B3YWVUaV.js → CountUp.stories-Cf4NC-XR.js} +1 -1
  41. package/storybook-static/assets/{Counter.stories-PJzaHt_U.js → Counter.stories-CyhbcvKm.js} +1 -1
  42. package/storybook-static/assets/{Crosshair.stories-CuTI-wK9.js → Crosshair.stories-ZZ5g9eO6.js} +1 -1
  43. package/storybook-static/assets/{Cubes.stories-BNTbOIDN.js → Cubes.stories-CrYhlnje.js} +1 -1
  44. package/storybook-static/assets/{CurvedLoop.stories-R4Z6U8gl.js → CurvedLoop.stories-DyK7Wlt6.js} +1 -1
  45. package/storybook-static/assets/{DarkVeil.stories-BlRCjGvH.js → DarkVeil.stories-BEf6V85c.js} +1 -1
  46. package/storybook-static/assets/{DateInput-BHD9FDFh.js → DateInput-8onWa3KI.js} +1 -1
  47. package/storybook-static/assets/{DateInput.stories-CHkZcDfi.js → DateInput.stories-BUDpdFa5.js} +1 -1
  48. package/storybook-static/assets/{DecayCard.stories-BBARttiL.js → DecayCard.stories-DG0lwrmk.js} +1 -1
  49. package/storybook-static/assets/{DecryptedText.stories--j-BrW-d.js → DecryptedText.stories-BAy5in1k.js} +1 -1
  50. package/storybook-static/assets/{Dither.stories-CBVHTbq6.js → Dither.stories-B0Asjgfz.js} +1 -1
  51. package/storybook-static/assets/{Dock.stories-DkcSxUnP.js → Dock.stories-BrZSOCw5.js} +1 -1
  52. package/storybook-static/assets/{EditFAB.stories-CnO5gbbx.js → EditFAB.stories-Cur6BXdD.js} +1 -1
  53. package/storybook-static/assets/{EvilEye.stories-1AQhELsp.js → EvilEye.stories-C6fVeJGL.js} +1 -1
  54. package/storybook-static/assets/{FadeContent.stories-albedBaX.js → FadeContent.stories-Ckl198gp.js} +1 -1
  55. package/storybook-static/assets/{FaultyTerminal.stories-BFGmMtSB.js → FaultyTerminal.stories-CRQCWCv-.js} +1 -1
  56. package/storybook-static/assets/{Fbo-CtK0ycna.js → Fbo-DIZ3Y1HH.js} +1 -1
  57. package/storybook-static/assets/{FloatingLines.stories-2TQYxxp1.js → FloatingLines.stories-BqgEOEZS.js} +1 -1
  58. package/storybook-static/assets/{FlowingMenu.stories-CZ5tXywl.js → FlowingMenu.stories-BnPI8poB.js} +1 -1
  59. package/storybook-static/assets/{FluidGlass.stories-Df2us36M.js → FluidGlass.stories-CHAlMw3S.js} +1 -1
  60. package/storybook-static/assets/{Folder.stories-BrFzcjvz.js → Folder.stories-Dk5JAIQD.js} +1 -1
  61. package/storybook-static/assets/{FuzzyText.stories-C1RHobMi.js → FuzzyText.stories-BtDnau8f.js} +1 -1
  62. package/storybook-static/assets/{Galaxy.stories-Cok_44zn.js → Galaxy.stories-BzhW3GF9.js} +1 -1
  63. package/storybook-static/assets/{GhostCursor.stories-DWaGKV-v.js → GhostCursor.stories-DieHFjxw.js} +1 -1
  64. package/storybook-static/assets/{GlareHover.stories-CYve6zsX.js → GlareHover.stories-BHoXBn9o.js} +1 -1
  65. package/storybook-static/assets/{GlassSurface.stories-BvktN5x5.js → GlassSurface.stories-DREe1ppH.js} +1 -1
  66. package/storybook-static/assets/{GlitchText.stories-DLg3Stoq.js → GlitchText.stories-ByEeawKD.js} +1 -1
  67. package/storybook-static/assets/{GooeyNav.stories-Do5CtYVN.js → GooeyNav.stories-BwwWfgQg.js} +1 -1
  68. package/storybook-static/assets/{GradientBlinds.stories-D3SC67DZ.js → GradientBlinds.stories-ZaBq37aP.js} +1 -1
  69. package/storybook-static/assets/{GradientText.stories-54uAxgz7.js → GradientText.stories-OlD8JIJh.js} +1 -1
  70. package/storybook-static/assets/{Grainient.stories-CghGq35C.js → Grainient.stories-CfHG2dG3.js} +1 -1
  71. package/storybook-static/assets/{GridMotion.stories-dOv18eyR.js → GridMotion.stories-BsWVs4IR.js} +1 -1
  72. package/storybook-static/assets/{HabitTimeOfDayChart.stories-BMoAR2U6.js → HabitTimeOfDayChart.stories-DfBLc8St.js} +1 -1
  73. package/storybook-static/assets/{ImageSlideshow.stories-DFosgVkj.js → ImageSlideshow.stories-Cpb9fisd.js} +1 -1
  74. package/storybook-static/assets/{Iridescence.stories-BESMZhKG.js → Iridescence.stories-Ch3ilnYv.js} +1 -1
  75. package/storybook-static/assets/{LaserFlow.stories-afCaPMTi.js → LaserFlow.stories-DenbpERy.js} +1 -1
  76. package/storybook-static/assets/{LetterGlitch.stories-i9gr8ufw.js → LetterGlitch.stories-D1DfeFIa.js} +1 -1
  77. package/storybook-static/assets/{LightPillar.stories-Bd0CFE1p.js → LightPillar.stories-CVxcYtjt.js} +1 -1
  78. package/storybook-static/assets/{LightRays.stories-B_SogOnY.js → LightRays.stories-F5idlq2b.js} +1 -1
  79. package/storybook-static/assets/{Lightning.stories-CK3jA29T.js → Lightning.stories-Diu1zWyT.js} +1 -1
  80. package/storybook-static/assets/{LineWaves.stories-LnRI4l13.js → LineWaves.stories-CmEm2I-A.js} +1 -1
  81. package/storybook-static/assets/{LiquidChrome.stories-BoS4SUHe.js → LiquidChrome.stories-CHP_FcPv.js} +1 -1
  82. package/storybook-static/assets/{LiquidEther.stories-UCodzAEW.js → LiquidEther.stories-Iraa-nLM.js} +1 -1
  83. package/storybook-static/assets/{LoadingSpinner-BMpWXUFz.js → LoadingSpinner-DlrNT1AA.js} +1 -1
  84. package/storybook-static/assets/{LoadingSpinner.stories-CLXNFf4a.js → LoadingSpinner.stories-CnE24Tsx.js} +1 -1
  85. package/storybook-static/assets/{MagicRings.stories-Ca5ZNeFQ.js → MagicRings.stories-BqJypRLP.js} +1 -1
  86. package/storybook-static/assets/{Magnet.stories-BmgRTPng.js → Magnet.stories-DL0Go3qR.js} +1 -1
  87. package/storybook-static/assets/{MagnetLines.stories-B_HC2JfR.js → MagnetLines.stories-CxpAiInh.js} +1 -1
  88. package/storybook-static/assets/{Masonry.stories-CNVeDREe.js → Masonry.stories-flII8LRK.js} +1 -1
  89. package/storybook-static/assets/{MetaBalls.stories-BI_m0HKO.js → MetaBalls.stories-Bs_-0CGV.js} +1 -1
  90. package/storybook-static/assets/{MetallicPaint.stories-DJHsg4pJ.js → MetallicPaint.stories-DiyJoRNq.js} +1 -1
  91. package/storybook-static/assets/{MoodChart.stories-C-XEjygQ.js → MoodChart.stories-CJ2A0E0j.js} +1 -1
  92. package/storybook-static/assets/{MotionConfigContext-r05VNYP5.js → MotionConfigContext-Dyabqz-b.js} +1 -1
  93. package/storybook-static/assets/{Navbar.stories-c2BFGGgH.js → Navbar.stories-B--ABN9C.js} +1 -1
  94. package/storybook-static/assets/{Noise.stories-DmNPaVB9.js → Noise.stories-BpKTpxeE.js} +1 -1
  95. package/storybook-static/assets/{NumberStepper-eg4OI2J9.js → NumberStepper-EhG-KGNo.js} +1 -1
  96. package/storybook-static/assets/{NumberStepper.stories-DdaimTPt.js → NumberStepper.stories-Ba1aWk0g.js} +1 -1
  97. package/storybook-static/assets/{Orb.stories-DYbtXka5.js → Orb.stories-D8od8KSg.js} +1 -1
  98. package/storybook-static/assets/{OrbitImages.stories-C3I2W6Jq.js → OrbitImages.stories-Dxj-5r4i.js} +1 -1
  99. package/storybook-static/assets/{PieChart.stories-W3H_ypdq.js → PieChart.stories-DWw4EGwt.js} +1 -1
  100. package/storybook-static/assets/{PixelBlast.stories-BAGTaJo2.js → PixelBlast.stories-C3u9ldzB.js} +1 -1
  101. package/storybook-static/assets/{PixelCard.stories-nBZJmNRX.js → PixelCard.stories-BtQ8LfFf.js} +1 -1
  102. package/storybook-static/assets/{PixelSnow.stories-DzM9AnhK.js → PixelSnow.stories-KpmT5jBn.js} +1 -1
  103. package/storybook-static/assets/{PixelTransition.stories-B18uEo9_.js → PixelTransition.stories-CJs0eV-2.js} +1 -1
  104. package/storybook-static/assets/{Plasma.stories-FTIEGEjM.js → Plasma.stories-CivG0ZTB.js} +1 -1
  105. package/storybook-static/assets/{Prism.stories-CzsTNjnE.js → Prism.stories--tExtMti.js} +1 -1
  106. package/storybook-static/assets/{PrismaticBurst.stories-_WZRfTMv.js → PrismaticBurst.stories-BEHRmqtH.js} +1 -1
  107. package/storybook-static/assets/{ProfileCard.stories-D51iEq3Z.js → ProfileCard.stories-Bfv1Qk_A.js} +1 -1
  108. package/storybook-static/assets/{QuantifiableHabitsChart.stories-DYvNt6Sy.js → QuantifiableHabitsChart.stories-WPetwjBc.js} +1 -1
  109. package/storybook-static/assets/{Radar.stories-DDRZ17su.js → Radar.stories-CWQNMWx2.js} +1 -1
  110. package/storybook-static/assets/{Ribbons.stories-Cq-wi-5t.js → Ribbons.stories-B3X4I9Cz.js} +1 -1
  111. package/storybook-static/assets/{RippleGrid.stories-DH7NbksB.js → RippleGrid.stories-O3VVcQWl.js} +1 -1
  112. package/storybook-static/assets/{RotatingText.stories-CYXYLq6D.js → RotatingText.stories-Cs-vTbFZ.js} +1 -1
  113. package/storybook-static/assets/{ScrollFloat.stories-ByENHbNI.js → ScrollFloat.stories-BMoNuRtU.js} +1 -1
  114. package/storybook-static/assets/{ScrollReveal.stories-C9ML5Vus.js → ScrollReveal.stories-C5dVXxt1.js} +1 -1
  115. package/storybook-static/assets/{ScrollVelocity.stories-I83W7pTs.js → ScrollVelocity.stories-CJKSvAY4.js} +1 -1
  116. package/storybook-static/assets/{SearchBar.stories-BGekDZxb.js → SearchBar.stories-Dtm9l67y.js} +1 -1
  117. package/storybook-static/assets/{SearchableDropdown-Dzdyi2XK.js → SearchableDropdown-Dqzi4LKk.js} +1 -1
  118. package/storybook-static/assets/{SearchableDropdown.stories-BpdIXlc0.js → SearchableDropdown.stories-BG3ESCwq.js} +1 -1
  119. package/storybook-static/assets/{SelectInput-BpW7Dnep.js → SelectInput-BUDt34Ej.js} +1 -1
  120. package/storybook-static/assets/{SelectInput.stories-BSb6s-9V.js → SelectInput.stories-Dxe4mL9o.js} +1 -1
  121. package/storybook-static/assets/{ShapeBlur.stories-CTwpIXJ5.js → ShapeBlur.stories-C2sk-BXL.js} +1 -1
  122. package/storybook-static/assets/{ShapeGrid.stories-D--GPfwE.js → ShapeGrid.stories-ihKrWukc.js} +1 -1
  123. package/storybook-static/assets/{ShinyText.stories-BmAOXMEC.js → ShinyText.stories-DwNgYe9N.js} +1 -1
  124. package/storybook-static/assets/{Silk.stories-BYAWqU8r.js → Silk.stories-CzFSFGhP.js} +1 -1
  125. package/storybook-static/assets/SleepChart-DtIKf_2P.css +1 -0
  126. package/storybook-static/assets/SleepChart.stories-CZufs6Gb.js +58 -0
  127. package/storybook-static/assets/Slider-BRAq3fxE.js +4 -0
  128. package/storybook-static/assets/Slider-DrZJBbk1.css +1 -0
  129. package/storybook-static/assets/Slider.stories-CK522MN_.js +95 -0
  130. package/storybook-static/assets/{SoftAurora.stories-Dlak_U90.js → SoftAurora.stories-DqOpOzFw.js} +1 -1
  131. package/storybook-static/assets/{SoundDemo.stories-CMmdiHNZ.js → SoundDemo.stories-BkFbK-1Y.js} +1 -1
  132. package/storybook-static/assets/{SplashCursor.stories-DzWOpCeX.js → SplashCursor.stories-ClGNxcw4.js} +1 -1
  133. package/storybook-static/assets/{SpotlightCard.stories-CAAJsrlz.js → SpotlightCard.stories-B-Hpffrl.js} +1 -1
  134. package/storybook-static/assets/{Stack.stories-DVFREV7Y.js → Stack.stories-DLN47Bj-.js} +1 -1
  135. package/storybook-static/assets/{StaggeredMenu.stories-B7s5XkvQ.js → StaggeredMenu.stories-DL6I7cbu.js} +1 -1
  136. package/storybook-static/assets/{StarBorder.stories-CQXUiLOv.js → StarBorder.stories-BIP0gskB.js} +1 -1
  137. package/storybook-static/assets/{SunburstChart.stories-CPxlzoad.js → SunburstChart.stories-Bb0VKYC3.js} +1 -1
  138. package/storybook-static/assets/{Table.stories-BMC7yWxi.js → Table.stories-DeMvjpqQ.js} +1 -1
  139. package/storybook-static/assets/{Tabs.stories-CdJ6_mbA.js → Tabs.stories-qZulSRrO.js} +1 -1
  140. package/storybook-static/assets/{TargetCursor.stories-qa2q01Ir.js → TargetCursor.stories-4pSN2J9r.js} +1 -1
  141. package/storybook-static/assets/{TextArea-DpPHbAJ1.js → TextArea-CvRZ3TaY.js} +1 -1
  142. package/storybook-static/assets/{TextArea.stories-DO6h1f86.js → TextArea.stories-teCx-H2z.js} +1 -1
  143. package/storybook-static/assets/{TextCursor.stories-B_P4iCXO.js → TextCursor.stories-pry7pdoW.js} +1 -1
  144. package/storybook-static/assets/{TextInput-BQKvX1rm.js → TextInput-BPdFcHbk.js} +1 -1
  145. package/storybook-static/assets/{TextInput.stories-CuCM1ZoW.js → TextInput.stories-B-HTRiwl.js} +1 -1
  146. package/storybook-static/assets/{TextPressure.stories-3FdKqak4.js → TextPressure.stories-BdtIOM1Y.js} +1 -1
  147. package/storybook-static/assets/{TextType.stories-B9zMgVXA.js → TextType.stories-Bq-Vo4qL.js} +1 -1
  148. package/storybook-static/assets/{ThemeSwitcher.stories-MgR7bPEf.js → ThemeSwitcher.stories-SgJg0LCK.js} +1 -1
  149. package/storybook-static/assets/{Threads.stories-D_AvMoiV.js → Threads.stories-hqtYUEu-.js} +1 -1
  150. package/storybook-static/assets/{TimeInput.stories-DgWeWVJu.js → TimeInput.stories-CPOqj_Se.js} +1 -1
  151. package/storybook-static/assets/{Toggle-CM8QfiSr.js → Toggle-CAPcFsLF.js} +1 -1
  152. package/storybook-static/assets/{Toggle.stories-uX1tCiAw.js → Toggle.stories-O2_0c-1s.js} +1 -1
  153. package/storybook-static/assets/{ToggleButton-BvyhCvtl.js → ToggleButton-BZOAtsmB.js} +1 -1
  154. package/storybook-static/assets/{ToggleButton.stories-CL9uYRpB.js → ToggleButton.stories-JG_Pazh7.js} +1 -1
  155. package/storybook-static/assets/{TrueFocus.stories-BVd4m_-Q.js → TrueFocus.stories-rLnKDbsk.js} +1 -1
  156. package/storybook-static/assets/{VariableProximity.stories-ZweoWxGv.js → VariableProximity.stories-RaopvofU.js} +1 -1
  157. package/storybook-static/assets/{Waves.stories-DnXloqCT.js → Waves.stories-oO9FrJAS.js} +1 -1
  158. package/storybook-static/assets/{calendar--DXe40Mf.js → calendar-JsvgBBDH.js} +1 -1
  159. package/storybook-static/assets/{chart-column-PgrGrNon.js → chart-column-mrC32qXf.js} +1 -1
  160. package/storybook-static/assets/{check-ChmUvqWd.js → check-CvrIUYEl.js} +1 -1
  161. package/storybook-static/assets/{chevron-down-C6C4ZvBB.js → chevron-down-BUZZ9BTx.js} +1 -1
  162. package/storybook-static/assets/{chevron-right-C5SR-lRy.js → chevron-right-SVhPWVWz.js} +1 -1
  163. package/storybook-static/assets/client-7pDjGlit.js +1 -0
  164. package/storybook-static/assets/{createLucideIcon-BG15kzB-.js → createLucideIcon-D1rlWUhC.js} +1 -1
  165. package/storybook-static/assets/{download-BfgQY4fA.js → download-Bmqc20p3.js} +1 -1
  166. package/storybook-static/assets/{folder-Cbvm9nXv.js → folder-BCJqv57N.js} +1 -1
  167. package/storybook-static/assets/{iconBase-CeXzlF39.js → iconBase-Bvu3HEFH.js} +1 -1
  168. package/storybook-static/assets/{iframe-Cm_EiDwn.js → iframe-D7y7FUTK.js} +3 -3
  169. package/storybook-static/assets/{index-CsT8MqWO.js → index-BCGRwJ5q.js} +1 -1
  170. package/storybook-static/assets/{index-ULNWitGi.js → index-C_G3JJLn.js} +1 -1
  171. package/storybook-static/assets/{index-BZSKMuzd.js → index-um02zCcj.js} +1 -1
  172. package/storybook-static/assets/{proxy-Bwjbw6nW.js → proxy-Ce-uTDDv.js} +1 -1
  173. package/storybook-static/assets/{react-18-DgqofcN2.js → react-18-DlLnXErP.js} +1 -1
  174. package/storybook-static/assets/{react-three-fiber.esm-hrjadSN9.js → react-three-fiber.esm-ssg-DJvA.js} +1 -1
  175. package/storybook-static/assets/{search-BgmZvQ4N.js → search-BpBodH3r.js} +1 -1
  176. package/storybook-static/assets/{settings-Byy70ga8.js → settings-D8D67Id0.js} +1 -1
  177. package/storybook-static/assets/{sun-BqaDfLy6.js → sun-BQcJSsaQ.js} +1 -1
  178. package/storybook-static/assets/{trash-2-Ceo1MVF-.js → trash-2-D6WRmoL3.js} +1 -1
  179. package/storybook-static/assets/{use-animation-frame-XhXswEVQ.js → use-animation-frame-CO9S19qn.js} +1 -1
  180. package/storybook-static/assets/{use-in-view-BQr3dSLY.js → use-in-view-DZc-byXh.js} +1 -1
  181. package/storybook-static/assets/{use-motion-value-C2FYEM9k.js → use-motion-value-mO9NrpTN.js} +1 -1
  182. package/storybook-static/assets/{use-spring-Nj8eugaF.js → use-spring-CdsbAGfL.js} +1 -1
  183. package/storybook-static/assets/{use-transform-D5FUFr4K.js → use-transform-DcYgqXpl.js} +1 -1
  184. package/storybook-static/assets/{useSound-CZL3WSRL.js → useSound-Ape9PZyo.js} +1 -1
  185. package/storybook-static/assets/{users-Copg4Dyi.js → users-BQ1OQC3n.js} +1 -1
  186. package/storybook-static/assets/{x-CFWk6cjo.js → x-Cq6n8SKu.js} +1 -1
  187. package/storybook-static/iframe.html +1 -1
  188. package/storybook-static/index.json +1 -1
  189. package/storybook-static/project.json +1 -1
  190. package/storybook-static/assets/SleepChart-CjpdWR_T.css +0 -1
  191. package/storybook-static/assets/SleepChart.stories-D4Ye-7Q_.js +0 -58
  192. package/storybook-static/assets/Slider-BfT1m14M.css +0 -1
  193. package/storybook-static/assets/Slider-Cj9hW0Us.js +0 -4
  194. package/storybook-static/assets/Slider.stories-BSSPlalx.js +0 -99
  195. package/storybook-static/assets/client-BtMMXwNO.js +0 -1
package/dist/index.js CHANGED
@@ -1725,7 +1725,7 @@ const ToggleButton = ({ active, onClick, icon, label, disabled = false, size = '
1725
1725
  }, disabled: disabled, whileHover: !disabled ? { scale: 1.05 } : undefined, whileTap: !disabled ? { scale: 0.95 } : undefined, title: tooltip, "aria-pressed": active, "aria-label": label, ...handlers, children: [jsxRuntime.jsx(framerMotion.motion.div, { className: styles$p.background, variants: backgroundVariants, initial: "inactive", animate: active ? "active" : "inactive" }), jsxRuntime.jsxs("div", { className: styles$p.content, children: [icon && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$p.iconWrapper, variants: iconVariants[animation], initial: "inactive", animate: active ? "active" : "inactive", transition: { duration: 0.3 }, children: typeof icon === 'string' ? (jsxRuntime.jsx("span", { className: styles$p.icon, children: icon })) : (jsxRuntime.jsx("div", { className: styles$p.icon, children: icon })) })), label && jsxRuntime.jsx("span", { className: labelClasses, children: label }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: showCheckmark && active && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$p.checkmark, variants: checkmarkVariants, initial: "hidden", animate: "visible", exit: "hidden", children: jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", children: jsxRuntime.jsx("path", { d: "M20 6L9 17L4 12", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" }) }) })) })] }), jsxRuntime.jsx(framerMotion.AnimatePresence, { children: active && (jsxRuntime.jsx(framerMotion.motion.div, { className: styles$p.ripple, initial: { scale: 0, opacity: 0.5 }, animate: { scale: 2, opacity: 0 }, exit: { scale: 0, opacity: 0 }, transition: { duration: 0.6 } })) })] }));
1726
1726
  };
1727
1727
 
1728
- var styles$o = {"slider":"Slider-module_slider__RD4G7","label":"Slider-module_label__j4H8M","sliderContainer":"Slider-module_sliderContainer__kQICC","track":"Slider-module_track__fQ-oP","dragging":"Slider-module_dragging__rynPv","fill":"Slider-module_fill__AYR4-","input":"Slider-module_input__fqY-G","thumb":"Slider-module_thumb__yQJho","tooltip":"Slider-module_tooltip__ZubHR","tooltipArrow":"Slider-module_tooltipArrow__1aV9s","valueDisplay":"Slider-module_valueDisplay__V6caL","labelsContainer":"Slider-module_labelsContainer__F6ojF","labelItem":"Slider-module_labelItem__FuEaY","size-sm":"Slider-module_size-sm__Y2bmS","size-lg":"Slider-module_size-lg__RSnPf","disabled":"Slider-module_disabled__gxYoH","loading":"Slider-module_loading__6FkKb","loadingTrack":"Slider-module_loadingTrack__8ItT2","loadingIndicator":"Slider-module_loadingIndicator__Elydq"};
1728
+ var styles$o = {"slider":"Slider-module_slider__RD4G7","label":"Slider-module_label__j4H8M","sliderContainer":"Slider-module_sliderContainer__kQICC","track":"Slider-module_track__fQ-oP","dragging":"Slider-module_dragging__rynPv","fill":"Slider-module_fill__AYR4-","input":"Slider-module_input__fqY-G","thumb":"Slider-module_thumb__yQJho","tooltip":"Slider-module_tooltip__ZubHR","tooltipArrow":"Slider-module_tooltipArrow__1aV9s","valueDisplay":"Slider-module_valueDisplay__V6caL","labelsContainer":"Slider-module_labelsContainer__F6ojF","labelItem":"Slider-module_labelItem__FuEaY","dotsContainer":"Slider-module_dotsContainer__zpcZe","dot":"Slider-module_dot__TkGh5","dotFilled":"Slider-module_dotFilled__n779E","size-sm":"Slider-module_size-sm__Y2bmS","size-lg":"Slider-module_size-lg__RSnPf","disabled":"Slider-module_disabled__gxYoH","loading":"Slider-module_loading__6FkKb","loadingTrack":"Slider-module_loadingTrack__8ItT2","loadingIndicator":"Slider-module_loadingIndicator__Elydq"};
1729
1729
 
1730
1730
  /**
1731
1731
  * Slider component — responsive, accessible range input with a styled track, fill, and thumb.
@@ -1733,7 +1733,7 @@ var styles$o = {"slider":"Slider-module_slider__RD4G7","label":"Slider-module_la
1733
1733
  * The thumb is inset at the track endpoints so it never overflows. Drag state is tracked
1734
1734
  * via pointer events (works on mouse, touch, and pen).
1735
1735
  */
1736
- function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValue = false, valueFormatter, labels = [], config = {}, disabled = false, className = '', style = {}, loading = false, colorFunction, showTooltip = false, tooltipContent, soundConfig, }) {
1736
+ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValue = false, valueFormatter, labels = [], config = {}, disabled = false, className = '', style = {}, loading = false, colorFunction, showTooltip = false, tooltipContent, soundConfig, variant = 'track', }) {
1737
1737
  const { handlers, playSound } = useComponentSound(soundConfig);
1738
1738
  const [isDragging, setIsDragging] = React.useState(false);
1739
1739
  const { colors = {}, size = 'md' } = config;
@@ -1770,6 +1770,28 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
1770
1770
  if (loading) {
1771
1771
  return (jsxRuntime.jsxs("div", { className: `${styles$o.slider} ${sizeClass} ${styles$o.loading} ${className}`, style: style, children: [label && jsxRuntime.jsx("label", { className: styles$o.label, children: label }), jsxRuntime.jsx("div", { className: styles$o.loadingTrack, children: jsxRuntime.jsx(framerMotion.motion.div, { className: styles$o.loadingIndicator, animate: { x: ['-100%', '200%'] }, transition: { repeat: Infinity, duration: 1.5, ease: 'easeInOut' } }) })] }));
1772
1772
  }
1773
+ if (variant === 'dots') {
1774
+ const dotCount = Math.max(0, Math.floor((max - min) / step));
1775
+ const dotValues = Array.from({ length: dotCount }, (_, i) => min + (i + 1) * step);
1776
+ const handleDotClick = (dotValue) => {
1777
+ if (disabled || loading)
1778
+ return;
1779
+ playSound('click');
1780
+ const next = value === dotValue ? dotValue - step : dotValue;
1781
+ onChange(Math.max(min, next));
1782
+ };
1783
+ return (jsxRuntime.jsxs("div", { className: `${styles$o.slider} ${sizeClass} ${stateClass} ${className}`, style: style, ...handlers, children: [label && jsxRuntime.jsx("label", { className: styles$o.label, children: label }), jsxRuntime.jsx("div", { className: styles$o.dotsContainer, role: "slider", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, "aria-label": label, children: dotValues.map((dotValue) => {
1784
+ const filled = dotValue <= value;
1785
+ return (jsxRuntime.jsx("button", { type: "button", className: `${styles$o.dot} ${filled ? styles$o.dotFilled : ''}`, style: filled
1786
+ ? {
1787
+ backgroundColor: dynamicColor,
1788
+ borderColor: dynamicColor,
1789
+ }
1790
+ : undefined, onClick: () => handleDotClick(dotValue), disabled: disabled, "aria-label": valueFormatter
1791
+ ? valueFormatter(dotValue)
1792
+ : `Set to ${dotValue}` }, dotValue));
1793
+ }) }), showValue && (jsxRuntime.jsx("div", { className: styles$o.valueDisplay, style: { color: dynamicColor }, children: formatValue(value) }))] }));
1794
+ }
1773
1795
  // Inset the thumb so its bounding box stays inside the track at 0/100%.
1774
1796
  // At percentage=0: marginLeft=0 → thumb flush-left. At 100%: marginLeft=-thumbSize → flush-right.
1775
1797
  const insetStyle = {
@@ -4594,7 +4616,7 @@ const HabitTimeOfDayChart = ({ events, width = 800, height = 400, startDate, end
4594
4616
  : ''] }), tooltipData.count > 1 && (jsxRuntime.jsxs("div", { className: styles$7.tooltipValue, children: [jsxRuntime.jsx("strong", { children: tooltipData.count }), jsxRuntime.jsx("span", { className: styles$7.tooltipUnits, children: "events" })] }))] })] })) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: styles$7.tooltipHeader, children: jsxRuntime.jsx("span", { children: formatHour(tooltipData.hour) }) }), jsxRuntime.jsxs("div", { className: styles$7.tooltipInfo, children: [jsxRuntime.jsxs("div", { className: styles$7.tooltipValue, children: [jsxRuntime.jsx("strong", { children: tooltipData.count }), jsxRuntime.jsxs("span", { className: styles$7.tooltipUnits, children: ["event", tooltipData.count === 1 ? '' : 's'] })] }), tooltipData.breakdown && tooltipData.breakdown.length > 1 && (jsxRuntime.jsx("div", { className: styles$7.tooltipBreakdown, children: tooltipData.breakdown.map(({ habit, count }) => (jsxRuntime.jsxs("div", { className: styles$7.tooltipBreakdownRow, children: [jsxRuntime.jsx("span", { className: styles$7.tooltipDot, style: { backgroundColor: getColor(habit) } }), jsxRuntime.jsxs("span", { children: [customHabitEmojis[habit] || '', " ", habit] }), jsxRuntime.jsx("span", { className: styles$7.tooltipCount, children: count })] }, habit))) }))] })] })) }))] }));
4595
4617
  };
4596
4618
 
4597
- var styles$6 = {"container":"SleepChart-module_container__RjHVU","header":"SleepChart-module_header__bcoWe","title":"SleepChart-module_title__6-QII","legend":"SleepChart-module_legend__VsqQj","legendItem":"SleepChart-module_legendItem__2c1nd","sleepDot":"SleepChart-module_sleepDot__qCY6O","wakeDot":"SleepChart-module_wakeDot__-RcrT","chart":"SleepChart-module_chart__jC1nL","gridLine":"SleepChart-module_gridLine__hi715","sleepBar":"SleepChart-module_sleepBar__Hk76f","xAxis":"SleepChart-module_xAxis__xzXyM","yAxis":"SleepChart-module_yAxis__7N-LA","tooltip":"SleepChart-module_tooltip__jQBv1","visible":"SleepChart-module_visible__wy0ck","tooltipHeader":"SleepChart-module_tooltipHeader__5BdPL","tooltipEmoji":"SleepChart-module_tooltipEmoji__c5vtz","tooltipInfo":"SleepChart-module_tooltipInfo__9Yrno","tooltipRow":"SleepChart-module_tooltipRow__CuDaE","tooltipLabel":"SleepChart-module_tooltipLabel__7SNzQ","tooltipValue":"SleepChart-module_tooltipValue__FoAVy","tooltipDuration":"SleepChart-module_tooltipDuration__d2wBW"};
4619
+ var styles$6 = {"container":"SleepChart-module_container__RjHVU","header":"SleepChart-module_header__bcoWe","eyebrow":"SleepChart-module_eyebrow__KH0ox","title":"SleepChart-module_title__6-QII","chart":"SleepChart-module_chart__jC1nL","gridLine":"SleepChart-module_gridLine__hi715","gridLineAccent":"SleepChart-module_gridLineAccent__Sk-l6","sleepBar":"SleepChart-module_sleepBar__Hk76f","sleepBarHover":"SleepChart-module_sleepBarHover__cBTca","squiggle":"SleepChart-module_squiggle__Hxfjx","endpoint":"SleepChart-module_endpoint__vB4WD","endpointSleep":"SleepChart-module_endpointSleep__FA1vK","endpointWake":"SleepChart-module_endpointWake__CWEOB","xAxis":"SleepChart-module_xAxis__xzXyM","yAxis":"SleepChart-module_yAxis__7N-LA","tooltip":"SleepChart-module_tooltip__jQBv1","visible":"SleepChart-module_visible__wy0ck","tooltipDate":"SleepChart-module_tooltipDate__g2kOA","tooltipBody":"SleepChart-module_tooltipBody__RamWJ","tooltipRow":"SleepChart-module_tooltipRow__CuDaE","tooltipTotal":"SleepChart-module_tooltipTotal__5v3dE"};
4598
4620
 
4599
4621
  const parseTimeToDecimal = (time) => {
4600
4622
  const [hours, minutes] = time.split(':').map(Number);
@@ -4602,288 +4624,217 @@ const parseTimeToDecimal = (time) => {
4602
4624
  };
4603
4625
  const formatTime = (hour) => {
4604
4626
  const h24 = Math.floor(hour % 24);
4605
- const h12 = h24 === 0 ? 12 : h24 > 12 ? h24 - 12 : h24;
4606
- const ampm = h24 >= 12 ? 'PM' : 'AM';
4607
4627
  const minutes = Math.round((hour % 1) * 60);
4608
- return `${Math.floor(h12)}:${minutes.toString().padStart(2, '0')} ${ampm}`;
4628
+ return `${h24.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
4629
+ };
4630
+ const formatDuration = (decimal) => {
4631
+ const h = Math.floor(decimal);
4632
+ const m = Math.round((decimal % 1) * 60);
4633
+ return `${h}h ${m.toString().padStart(2, '0')}m`;
4609
4634
  };
4610
- const SleepChart = ({ sleepData, width = 800, height = 400, onDateClick }) => {
4635
+ // Build an SVG sine-wave path between two x-coordinates at a given baseline y.
4636
+ // Two quadratic curves per cycle keep the curve smooth without needing cubic control points.
4637
+ const buildSquigglePath = (x1, x2, y, amplitude, wavelength) => {
4638
+ const distance = Math.max(0, x2 - x1);
4639
+ if (distance === 0)
4640
+ return `M ${x1} ${y}`;
4641
+ const cycles = Math.max(1, Math.round(distance / wavelength));
4642
+ const halfStep = distance / (cycles * 2);
4643
+ let path = `M ${x1} ${y}`;
4644
+ for (let i = 0; i < cycles * 2; i++) {
4645
+ const cx = x1 + (i + 0.5) * halfStep;
4646
+ const cy = y + (i % 2 === 0 ? -amplitude : amplitude);
4647
+ const ex = x1 + (i + 1) * halfStep;
4648
+ path += ` Q ${cx} ${cy} ${ex} ${y}`;
4649
+ }
4650
+ return path;
4651
+ };
4652
+ const SleepChart = ({ sleepData, width = 800, height = 400, onDateClick, }) => {
4611
4653
  const svgRef = React.useRef(null);
4612
4654
  const [tooltipData, setTooltipData] = React.useState(null);
4613
- const margin = React.useMemo(() => ({ top: 30, right: 30, bottom: 50, left: 80 }), []);
4655
+ const margin = React.useMemo(() => ({ top: 12, right: 16, bottom: 32, left: 64 }), []);
4614
4656
  const chartWidth = width - margin.left - margin.right;
4615
4657
  const chartHeight = height - margin.top - margin.bottom;
4616
- // Hide tooltip on scroll
4617
4658
  React.useEffect(() => {
4618
- const handleScroll = () => {
4619
- setTooltipData(null);
4620
- };
4659
+ const handleScroll = () => setTooltipData(null);
4621
4660
  window.addEventListener('scroll', handleScroll, true);
4622
- return () => {
4623
- window.removeEventListener('scroll', handleScroll, true);
4624
- };
4661
+ return () => window.removeEventListener('scroll', handleScroll, true);
4625
4662
  }, []);
4626
4663
  React.useEffect(() => {
4627
4664
  if (!svgRef.current || sleepData.length === 0)
4628
4665
  return;
4629
4666
  const svg = d3__namespace.select(svgRef.current);
4630
4667
  svg.selectAll('*').remove();
4631
- // Add invisible rect to detect mouse leave events
4632
4668
  svg.append('rect')
4633
4669
  .attr('width', width)
4634
4670
  .attr('height', height)
4635
4671
  .attr('fill', 'transparent')
4636
4672
  .style('pointer-events', 'all')
4637
- .on('mouseleave', () => {
4638
- setTooltipData(null);
4639
- });
4640
- const g = svg.append('g')
4673
+ .on('mouseleave', () => setTooltipData(null));
4674
+ const g = svg
4675
+ .append('g')
4641
4676
  .attr('transform', `translate(${margin.left},${margin.top})`);
4642
- const xScale = d3__namespace.scaleLinear()
4643
- .domain([18, 42])
4644
- .range([0, chartWidth]);
4645
- const yDomain = sleepData.map(d => d.date);
4646
- const yScale = d3__namespace.scaleBand()
4677
+ const xScale = d3__namespace.scaleLinear().domain([18, 42]).range([0, chartWidth]);
4678
+ const yDomain = sleepData.map((d) => d.date);
4679
+ const yScale = d3__namespace
4680
+ .scaleBand()
4647
4681
  .domain(yDomain)
4648
4682
  .range([0, chartHeight])
4649
- .paddingInner(0.2)
4683
+ .paddingInner(0.35)
4650
4684
  .paddingOuter(0.1);
4651
- // Add vertical grid lines with midnight/noon highlights
4685
+ // Dotted vertical gridlines; midnight/noon are slightly more present.
4652
4686
  g.selectAll('.grid-line-x')
4653
- .data(d3__namespace.range(18, 43, 1))
4654
- .enter().append('line')
4687
+ .data(d3__namespace.range(18, 43, 3))
4688
+ .enter()
4689
+ .append('line')
4655
4690
  .attr('class', styles$6.gridLine)
4656
- .attr('x1', d => xScale(d))
4691
+ .attr('x1', (d) => xScale(d))
4657
4692
  .attr('y1', 0)
4658
- .attr('x2', d => xScale(d))
4693
+ .attr('x2', (d) => xScale(d))
4659
4694
  .attr('y2', chartHeight)
4660
- .style('stroke', d => {
4661
- const hour = d % 24;
4662
- if (hour === 0)
4663
- return 'var(--color-border)'; // Midnight
4664
- if (hour === 12)
4665
- return 'var(--color-border)'; // Noon
4666
- return 'var(--color-border)';
4667
- })
4668
- .style('stroke-opacity', d => {
4669
- const hour = d % 24;
4670
- if (hour === 0 || hour === 12)
4671
- return 0.3;
4672
- if (hour % 3 === 0)
4673
- return 0.15;
4674
- return 0.05;
4675
- })
4676
- .style('stroke-width', d => {
4695
+ .classed(styles$6.gridLineAccent, (d) => {
4677
4696
  const hour = d % 24;
4678
- if (hour === 0 || hour === 12)
4679
- return 2;
4680
- return 1;
4697
+ return hour === 0 || hour === 12;
4681
4698
  });
4682
4699
  sleepData.forEach((dayData) => {
4683
4700
  const yValue = yScale(dayData.date);
4684
4701
  if (yValue === undefined)
4685
4702
  return;
4686
4703
  const barHeight = yScale.bandwidth();
4687
- const sleepGroup = g.append('g')
4704
+ const sleepGroup = g
4705
+ .append('g')
4688
4706
  .attr('class', styles$6.sleepBar)
4689
- .style('cursor', 'pointer')
4707
+ .style('cursor', onDateClick ? 'pointer' : 'default')
4690
4708
  .on('click', () => onDateClick?.(dayData.date));
4691
- // Handle sleep time and wake hour separately
4692
4709
  let sleepHour = null;
4693
4710
  let wakeHour = null;
4694
4711
  if (dayData.sleep_time) {
4695
4712
  sleepHour = parseTimeToDecimal(dayData.sleep_time);
4696
- // Convert evening hours to 24+ scale (e.g., 22:00 stays 22, but early morning like 02:00 becomes 26)
4697
- if (sleepHour < 18) {
4713
+ if (sleepHour < 18)
4698
4714
  sleepHour += 24;
4699
- }
4700
4715
  }
4701
4716
  if (dayData.wake_hour) {
4702
4717
  wakeHour = parseTimeToDecimal(dayData.wake_hour);
4703
- // If we have sleep time, wake time should be after sleep time
4704
4718
  if (sleepHour !== null) {
4705
- // If wake hour is before sleep hour or very early, it's next day
4706
4719
  if (wakeHour < sleepHour || (sleepHour >= 18 && wakeHour < 18)) {
4707
4720
  wakeHour += 24;
4708
4721
  }
4709
4722
  }
4710
- else {
4711
- // No sleep time - if wake time is early morning, assume next day
4712
- if (wakeHour < 12) {
4713
- wakeHour += 24;
4714
- }
4723
+ else if (wakeHour < 12) {
4724
+ wakeHour += 24;
4715
4725
  }
4716
4726
  }
4717
- // Draw the bar only if both values exist
4718
4727
  if (sleepHour !== null && wakeHour !== null) {
4719
- const rect = sleepGroup.append('rect')
4720
- .attr('x', xScale(sleepHour))
4721
- .attr('y', yValue)
4722
- .attr('width', 0) // Start with 0 width for animation
4723
- .attr('height', barHeight)
4724
- .attr('rx', barHeight / 2)
4725
- .attr('fill', 'url(#sleepGradient)')
4726
- .attr('opacity', 0) // Start invisible
4727
- .attr('stroke', 'rgba(255,255,255,0.3)')
4728
- .attr('stroke-width', 1)
4729
- .style('filter', 'drop-shadow(0 2px 8px rgba(155, 89, 182, 0.3))');
4730
- // Animate the bar
4731
- rect.transition()
4732
- .duration(800)
4733
- .delay(Math.random() * 200) // Stagger the animations
4728
+ const x1 = xScale(sleepHour);
4729
+ const x2 = xScale(wakeHour);
4730
+ const y = yValue + barHeight / 2;
4731
+ const amplitude = Math.min(barHeight / 2.2, 7);
4732
+ const wavelength = 14;
4733
+ const d = buildSquigglePath(x1, x2, y, amplitude, wavelength);
4734
+ const path = sleepGroup
4735
+ .append('path')
4736
+ .attr('class', styles$6.squiggle)
4737
+ .attr('d', d)
4738
+ .attr('fill', 'none');
4739
+ const node = path.node();
4740
+ const length = typeof node.getTotalLength === 'function'
4741
+ ? node.getTotalLength()
4742
+ : (x2 - x1) * 1.8;
4743
+ path.attr('stroke-dasharray', length)
4744
+ .attr('stroke-dashoffset', length)
4745
+ .transition()
4746
+ .duration(540)
4734
4747
  .ease(d3__namespace.easeCubicOut)
4735
- .attr('width', Math.max(0, xScale(wakeHour) - xScale(sleepHour)))
4736
- .attr('opacity', 0.85);
4748
+ .attr('stroke-dashoffset', 0);
4737
4749
  }
4738
- // Draw sleep dot if sleep time exists
4739
4750
  if (sleepHour !== null) {
4740
- const sleepDot = sleepGroup.append('circle')
4751
+ sleepGroup
4752
+ .append('circle')
4753
+ .attr('class', `${styles$6.endpoint} ${styles$6.endpointSleep}`)
4741
4754
  .attr('cx', xScale(sleepHour))
4742
4755
  .attr('cy', yValue + barHeight / 2)
4743
- .attr('r', 0) // Start with 0 radius
4744
- .attr('fill', '#9B59B6')
4745
- .attr('stroke', '#ffffff')
4746
- .attr('stroke-width', 2)
4747
- .style('filter', 'drop-shadow(0 3px 6px rgba(155, 89, 182, 0.4))')
4748
- .style('transition', 'all 0.3s ease');
4749
- // Animate the dot
4750
- sleepDot.transition()
4751
- .duration(400)
4752
- .delay(300 + Math.random() * 100)
4753
- .ease(d3__namespace.easeBackOut)
4754
- .attr('r', 6);
4756
+ .attr('r', 0)
4757
+ .transition()
4758
+ .duration(280)
4759
+ .delay(160)
4760
+ .ease(d3__namespace.easeCubicOut)
4761
+ .attr('r', 3.5);
4755
4762
  }
4756
- // Draw wake dot if wake hour exists
4757
4763
  if (wakeHour !== null) {
4758
- const wakeDot = sleepGroup.append('circle')
4764
+ sleepGroup
4765
+ .append('circle')
4766
+ .attr('class', `${styles$6.endpoint} ${styles$6.endpointWake}`)
4759
4767
  .attr('cx', xScale(wakeHour))
4760
4768
  .attr('cy', yValue + barHeight / 2)
4761
- .attr('r', 0) // Start with 0 radius
4762
- .attr('fill', '#3498DB')
4763
- .attr('stroke', '#ffffff')
4764
- .attr('stroke-width', 2)
4765
- .style('filter', 'drop-shadow(0 3px 6px rgba(52, 152, 219, 0.4))')
4766
- .style('transition', 'all 0.3s ease');
4767
- // Animate the dot
4768
- wakeDot.transition()
4769
- .duration(400)
4770
- .delay(500 + Math.random() * 100)
4771
- .ease(d3__namespace.easeBackOut)
4772
- .attr('r', 6);
4769
+ .attr('r', 0)
4770
+ .transition()
4771
+ .duration(280)
4772
+ .delay(220)
4773
+ .ease(d3__namespace.easeCubicOut)
4774
+ .attr('r', 3.5);
4773
4775
  }
4774
- // Add hover interactions with tooltip
4775
4776
  sleepGroup
4776
4777
  .on('mouseenter', function (event) {
4777
- // Highlight the bar
4778
- d3__namespace.select(this).select('rect')
4779
- .transition()
4780
- .duration(200)
4781
- .attr('opacity', 1)
4782
- .style('filter', 'drop-shadow(0 4px 12px rgba(155, 89, 182, 0.5)) brightness(1.1)');
4783
- // Scale up the dots
4784
- d3__namespace.select(this).selectAll('circle')
4785
- .transition()
4786
- .duration(200)
4787
- .attr('r', 8);
4788
- // Calculate tooltip data
4789
- const rect = svgRef.current?.getBoundingClientRect();
4790
- if (rect) {
4791
- const duration = (sleepHour !== null && wakeHour !== null)
4792
- ? wakeHour - sleepHour
4793
- : null;
4794
- setTooltipData({
4795
- date: dayData.date,
4796
- sleepTime: sleepHour !== null ? formatTime(sleepHour) : null,
4797
- wakeTime: wakeHour !== null ? formatTime(wakeHour) : null,
4798
- duration: duration !== null ? Math.round(duration * 100) / 100 : null,
4799
- x: event.pageX,
4800
- y: event.pageY - 80
4801
- });
4802
- }
4778
+ d3__namespace.select(this).classed(styles$6.sleepBarHover, true);
4779
+ const duration = sleepHour !== null && wakeHour !== null ? wakeHour - sleepHour : null;
4780
+ setTooltipData({
4781
+ date: dayData.date,
4782
+ sleepTime: sleepHour !== null ? formatTime(sleepHour) : null,
4783
+ wakeTime: wakeHour !== null ? formatTime(wakeHour) : null,
4784
+ duration: duration !== null ? Math.round(duration * 100) / 100 : null,
4785
+ x: event.pageX,
4786
+ y: event.pageY - 12,
4787
+ });
4803
4788
  })
4804
4789
  .on('mouseleave', function () {
4805
- // Reset bar appearance
4806
- d3__namespace.select(this).select('rect')
4807
- .transition()
4808
- .duration(200)
4809
- .attr('opacity', 0.85)
4810
- .style('filter', 'drop-shadow(0 2px 8px rgba(155, 89, 182, 0.3))');
4811
- // Reset dots
4812
- d3__namespace.select(this).selectAll('circle')
4813
- .transition()
4814
- .duration(200)
4815
- .attr('r', 6);
4816
- // Hide tooltip
4790
+ d3__namespace.select(this).classed(styles$6.sleepBarHover, false);
4817
4791
  setTooltipData(null);
4818
4792
  })
4819
4793
  .on('mousemove', function (event) {
4820
- // Update tooltip position
4821
- setTooltipData(prev => prev ? {
4822
- ...prev,
4823
- x: event.pageX,
4824
- y: event.pageY - 80
4825
- } : null);
4794
+ setTooltipData((prev) => prev ? { ...prev, x: event.pageX, y: event.pageY - 12 } : null);
4826
4795
  });
4827
4796
  });
4828
- // Create gradient definition
4829
- const defs = svg.append('defs');
4830
- const gradient = defs.append('linearGradient')
4831
- .attr('id', 'sleepGradient')
4832
- .attr('x1', '0%')
4833
- .attr('x2', '100%');
4834
- gradient.append('stop')
4835
- .attr('offset', '0%')
4836
- .attr('stop-color', '#9B59B6')
4837
- .attr('stop-opacity', 1);
4838
- gradient.append('stop')
4839
- .attr('offset', '50%')
4840
- .attr('stop-color', '#7B68A6')
4841
- .attr('stop-opacity', 1);
4842
- gradient.append('stop')
4843
- .attr('offset', '100%')
4844
- .attr('stop-color', '#3498DB')
4845
- .attr('stop-opacity', 1);
4846
- const xAxisTicks = d3__namespace.range(18, 43, 3).map(hour => ({
4797
+ const xAxisTicks = d3__namespace.range(18, 43, 3).map((hour) => ({
4847
4798
  value: hour,
4848
- label: hour === 24 ? '12 AM' : hour === 36 ? '12 PM' :
4849
- (hour % 24) === 0 ? '12 AM' :
4850
- (hour % 24) < 12 ? `${hour % 24} AM` :
4851
- (hour % 24) === 12 ? '12 PM' : `${(hour % 24) - 12} PM`
4799
+ label: `${(hour % 24).toString().padStart(2, '0')}:00`,
4852
4800
  }));
4853
- const xAxis = g.append('g')
4801
+ const xAxis = g
4802
+ .append('g')
4854
4803
  .attr('class', styles$6.xAxis)
4855
4804
  .attr('transform', `translate(0,${chartHeight})`)
4856
- .call(d3__namespace.axisBottom(xScale)
4857
- .tickValues(xAxisTicks.map(t => t.value))
4805
+ .call(d3__namespace
4806
+ .axisBottom(xScale)
4807
+ .tickValues(xAxisTicks.map((t) => t.value))
4858
4808
  .tickFormat((d) => {
4859
- const tick = xAxisTicks.find(t => t.value === d);
4809
+ const tick = xAxisTicks.find((t) => t.value === d);
4860
4810
  return tick ? tick.label : '';
4861
4811
  })
4862
- .tickSizeOuter(0));
4863
- // Style axis ticks
4864
- xAxis.selectAll('text')
4865
- .style('font-weight', d => {
4866
- const hour = d % 24;
4867
- return hour === 0 || hour === 12 ? '600' : '400';
4868
- });
4869
- const yAxisTicks = yDomain.filter((_, i) => i % Math.ceil(yDomain.length / 10) === 0);
4870
- g.append('g')
4812
+ .tickSize(0)
4813
+ .tickPadding(10));
4814
+ xAxis.select('.domain').remove();
4815
+ const tickEvery = Math.max(1, Math.ceil(yDomain.length / 8));
4816
+ const yAxisTicks = yDomain.filter((_, i) => i % tickEvery === 0);
4817
+ const yAxis = g
4818
+ .append('g')
4871
4819
  .attr('class', styles$6.yAxis)
4872
- .call(d3__namespace.axisLeft(yScale)
4820
+ .call(d3__namespace
4821
+ .axisLeft(yScale)
4873
4822
  .tickValues(yAxisTicks)
4874
- .tickFormat(d => {
4823
+ .tickFormat((d) => {
4875
4824
  const date = new Date(d);
4876
- return `${(date.getMonth() + 1).toString().padStart(2, '0')}/${date.getDate().toString().padStart(2, '0')}`;
4877
- }));
4825
+ return `${(date.getMonth() + 1)
4826
+ .toString()
4827
+ .padStart(2, '0')}/${date.getDate().toString().padStart(2, '0')}`;
4828
+ })
4829
+ .tickSize(0)
4830
+ .tickPadding(12));
4831
+ yAxis.select('.domain').remove();
4878
4832
  }, [sleepData, chartWidth, chartHeight, margin, onDateClick, height, width]);
4879
- return (jsxRuntime.jsxs("div", { className: styles$6.container, children: [jsxRuntime.jsxs("div", { className: styles$6.header, children: [jsxRuntime.jsx("h3", { className: styles$6.title, children: "Sleep Pattern" }), jsxRuntime.jsxs("div", { className: styles$6.legend, children: [jsxRuntime.jsxs("div", { className: styles$6.legendItem, children: [jsxRuntime.jsx("span", { className: styles$6.sleepDot }), jsxRuntime.jsx("span", { children: "Sleep Time" })] }), jsxRuntime.jsxs("div", { className: styles$6.legendItem, children: [jsxRuntime.jsx("span", { className: styles$6.wakeDot }), jsxRuntime.jsx("span", { children: "Wake Time" })] })] })] }), jsxRuntime.jsx("svg", { ref: svgRef, width: width, height: height, className: styles$6.chart }), tooltipData && (jsxRuntime.jsxs("div", { className: `${styles$6.tooltip} ${tooltipData ? styles$6.visible : ''}`, style: {
4880
- left: `${tooltipData.x}px`,
4881
- top: `${tooltipData.y}px`
4882
- }, children: [jsxRuntime.jsxs("div", { className: styles$6.tooltipHeader, children: [jsxRuntime.jsx("span", { className: styles$6.tooltipEmoji, children: "\uD83D\uDE34" }), jsxRuntime.jsx("span", { children: new Date(tooltipData.date).toLocaleDateString('en-US', {
4883
- weekday: 'short',
4884
- month: 'short',
4885
- day: 'numeric'
4886
- }) })] }), jsxRuntime.jsxs("div", { className: styles$6.tooltipInfo, children: [tooltipData.sleepTime && (jsxRuntime.jsxs("div", { className: styles$6.tooltipRow, children: [jsxRuntime.jsxs("span", { className: styles$6.tooltipLabel, children: [jsxRuntime.jsx("span", { children: "\uD83C\uDF19" }), jsxRuntime.jsx("span", { children: "Sleep:" })] }), jsxRuntime.jsx("span", { className: styles$6.tooltipValue, children: tooltipData.sleepTime })] })), tooltipData.wakeTime && (jsxRuntime.jsxs("div", { className: styles$6.tooltipRow, children: [jsxRuntime.jsxs("span", { className: styles$6.tooltipLabel, children: [jsxRuntime.jsx("span", { children: "\u2600\uFE0F" }), jsxRuntime.jsx("span", { children: "Wake:" })] }), jsxRuntime.jsx("span", { className: styles$6.tooltipValue, children: tooltipData.wakeTime })] })), tooltipData.duration !== null && (jsxRuntime.jsxs("div", { className: styles$6.tooltipDuration, children: [jsxRuntime.jsx("span", { children: "\u23F1\uFE0F" }), jsxRuntime.jsxs("span", { children: [Math.floor(tooltipData.duration), "h ", Math.round((tooltipData.duration % 1) * 60), "m"] })] }))] })] }))] }));
4833
+ return (jsxRuntime.jsxs("div", { className: styles$6.container, children: [jsxRuntime.jsxs("header", { className: styles$6.header, children: [jsxRuntime.jsx("span", { className: styles$6.eyebrow, children: "the night" }), jsxRuntime.jsxs("h3", { className: styles$6.title, children: [jsxRuntime.jsx("em", { children: "Sleep" }), " pattern"] })] }), jsxRuntime.jsx("svg", { ref: svgRef, width: width, height: height, className: styles$6.chart }), tooltipData && (jsxRuntime.jsxs("div", { className: `${styles$6.tooltip} ${styles$6.visible}`, style: { left: `${tooltipData.x}px`, top: `${tooltipData.y}px` }, children: [jsxRuntime.jsx("div", { className: styles$6.tooltipDate, children: new Date(tooltipData.date).toLocaleDateString('en-US', {
4834
+ weekday: 'short',
4835
+ month: 'short',
4836
+ day: 'numeric',
4837
+ }) }), jsxRuntime.jsxs("div", { className: styles$6.tooltipBody, children: [tooltipData.sleepTime && (jsxRuntime.jsxs("div", { className: styles$6.tooltipRow, children: [jsxRuntime.jsx("em", { children: "sleep" }), jsxRuntime.jsx("time", { children: tooltipData.sleepTime })] })), tooltipData.wakeTime && (jsxRuntime.jsxs("div", { className: styles$6.tooltipRow, children: [jsxRuntime.jsx("em", { children: "wake" }), jsxRuntime.jsx("time", { children: tooltipData.wakeTime })] })), tooltipData.duration !== null && (jsxRuntime.jsxs("div", { className: `${styles$6.tooltipRow} ${styles$6.tooltipTotal}`, children: [jsxRuntime.jsx("em", { children: "total" }), jsxRuntime.jsx("time", { children: formatDuration(tooltipData.duration) })] }))] })] }))] }));
4887
4838
  };
4888
4839
 
4889
4840
  var styles$5 = {"container":"BooleansHeatmap-module_container__IOyeU","title":"BooleansHeatmap-module_title__8DRRQ","habitEmoji":"BooleansHeatmap-module_habitEmoji__Mawv-","chart":"BooleansHeatmap-module_chart__-q0Pc","monthLabel":"BooleansHeatmap-module_monthLabel__MXbIg","dayLabel":"BooleansHeatmap-module_dayLabel__2RRtm","cell":"BooleansHeatmap-module_cell__WADVB","legend":"BooleansHeatmap-module_legend__WqGF8","legendItem":"BooleansHeatmap-module_legendItem__rDE2g","legendColor":"BooleansHeatmap-module_legendColor__Z34-d","tooltip":"BooleansHeatmap-module_tooltip__-fHl7"};