@stfrigerio/sito-template 0.1.94 → 0.1.96

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 (209) 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/molecules/RecurrencePicker/RecurrencePicker.d.ts +13 -0
  6. package/dist/components/molecules/RecurrencePicker/RecurrencePicker.d.ts.map +1 -0
  7. package/dist/components/molecules/RecurrencePicker/RecurrencePicker.stories.d.ts +12 -0
  8. package/dist/components/molecules/RecurrencePicker/RecurrencePicker.stories.d.ts.map +1 -0
  9. package/dist/components/molecules/RecurrencePicker/index.d.ts +3 -0
  10. package/dist/components/molecules/RecurrencePicker/index.d.ts.map +1 -0
  11. package/dist/components/molecules/index.d.ts +2 -0
  12. package/dist/components/molecules/index.d.ts.map +1 -1
  13. package/dist/components/organisms/charts/SleepChart/SleepChart.d.ts.map +1 -1
  14. package/dist/index.esm.js +490 -381
  15. package/dist/index.esm.js.map +1 -1
  16. package/dist/index.js +493 -383
  17. package/dist/index.js.map +1 -1
  18. package/dist/styles.css +1 -1
  19. package/dist/styles.css.map +1 -1
  20. package/dist/themes/lossito.css +243 -49
  21. package/package.json +2 -1
  22. package/storybook-static/assets/{ASCIIText.stories-BcJjdQeF.js → ASCIIText.stories-BNQcc9gv.js} +1 -1
  23. package/storybook-static/assets/{AllAtoms.stories-gLnakQIy.js → AllAtoms.stories-DBpk-rB8.js} +1 -1
  24. package/storybook-static/assets/{AnimatedContent.stories-BqG8Ujwo.js → AnimatedContent.stories-CCnlHD5Y.js} +1 -1
  25. package/storybook-static/assets/{AnimatedList.stories-BHUu3vbs.js → AnimatedList.stories-DNI1W5-A.js} +1 -1
  26. package/storybook-static/assets/{Antigravity.stories-Dvy48Mca.js → Antigravity.stories-BQw1Zvk9.js} +1 -1
  27. package/storybook-static/assets/{ArrayInput.stories-BaYz4AcS.js → ArrayInput.stories-HQd6ODME.js} +1 -1
  28. package/storybook-static/assets/{Aurora.stories-Cj0WEobX.js → Aurora.stories-xI4i4wH4.js} +1 -1
  29. package/storybook-static/assets/{Beams.stories-DdjXl2Ud.js → Beams.stories-DxSqefhF.js} +1 -1
  30. package/storybook-static/assets/{BlobCursor.stories-BoQFvL-r.js → BlobCursor.stories-DNk0BeNz.js} +1 -1
  31. package/storybook-static/assets/{BlurText.stories-DxpW9DDe.js → BlurText.stories-DBsRktVj.js} +1 -1
  32. package/storybook-static/assets/{BooleansHeatmap.stories-BHhNYd6b.js → BooleansHeatmap.stories-dsUQfyWg.js} +1 -1
  33. package/storybook-static/assets/{BorderGlow.stories-CuZoWDWv.js → BorderGlow.stories-lgvEGRVA.js} +1 -1
  34. package/storybook-static/assets/{BubbleMenu.stories-DEd7nU7K.js → BubbleMenu.stories-CXvB9JdY.js} +1 -1
  35. package/storybook-static/assets/{Button-pZnuxGoU.js → Button-6nmyMGc3.js} +1 -1
  36. package/storybook-static/assets/{Button.stories-ClGPyfoQ.js → Button.stories-DD3HQBXg.js} +1 -1
  37. package/storybook-static/assets/{Calendar.stories-CZ__yULj.js → Calendar.stories-_ZDa4YfS.js} +1 -1
  38. package/storybook-static/assets/{Card-qiSwFj5T.js → Card-B7F8cu_z.js} +1 -1
  39. package/storybook-static/assets/{Card.stories-QS7XsWA5.js → Card.stories-BLbuUq_5.js} +1 -1
  40. package/storybook-static/assets/{CardNav.stories-yaYQBXBL.js → CardNav.stories-CiJ_bFt8.js} +1 -1
  41. package/storybook-static/assets/{Carousel.stories-CN1saeqv.js → Carousel.stories-BYGW6P4X.js} +1 -1
  42. package/storybook-static/assets/{Checkbox-C5cfmgV9.js → Checkbox-xrie0yDX.js} +1 -1
  43. package/storybook-static/assets/{Checkbox.stories-DRcZy09T.js → Checkbox.stories-D-NYqhCG.js} +1 -1
  44. package/storybook-static/assets/{ChromaGrid.stories-BMv_eSkq.js → ChromaGrid.stories-yYkbcq2a.js} +1 -1
  45. package/storybook-static/assets/{CircularGallery.stories-CM7yqhd9.js → CircularGallery.stories-Ci3GTUgX.js} +1 -1
  46. package/storybook-static/assets/{CircularText.stories-TPKZYXaf.js → CircularText.stories-7QMPmTLn.js} +1 -1
  47. package/storybook-static/assets/{ClickSpark.stories-BzYMb5jU.js → ClickSpark.stories-Dz9M-gEC.js} +1 -1
  48. package/storybook-static/assets/{ColorBends.stories-DXg_57qe.js → ColorBends.stories-Dfa0YMsf.js} +1 -1
  49. package/storybook-static/assets/{CountUp.stories-B3YWVUaV.js → CountUp.stories-DrdYM8-J.js} +1 -1
  50. package/storybook-static/assets/{Counter.stories-PJzaHt_U.js → Counter.stories-3m6ldyes.js} +1 -1
  51. package/storybook-static/assets/{Crosshair.stories-CuTI-wK9.js → Crosshair.stories-DfRqBfZC.js} +1 -1
  52. package/storybook-static/assets/{Cubes.stories-BNTbOIDN.js → Cubes.stories-D1sZRgvG.js} +1 -1
  53. package/storybook-static/assets/{CurvedLoop.stories-R4Z6U8gl.js → CurvedLoop.stories-D6jowEDF.js} +1 -1
  54. package/storybook-static/assets/{DarkVeil.stories-BlRCjGvH.js → DarkVeil.stories-DLCrll-I.js} +1 -1
  55. package/storybook-static/assets/{DateInput-BHD9FDFh.js → DateInput-D4MHyeLk.js} +1 -1
  56. package/storybook-static/assets/{DateInput.stories-CHkZcDfi.js → DateInput.stories-BRfVBcf6.js} +1 -1
  57. package/storybook-static/assets/{DecayCard.stories-BBARttiL.js → DecayCard.stories-DX1ak6pd.js} +1 -1
  58. package/storybook-static/assets/{DecryptedText.stories--j-BrW-d.js → DecryptedText.stories-BcCQ2Tby.js} +1 -1
  59. package/storybook-static/assets/{Dither.stories-CBVHTbq6.js → Dither.stories-BPqBpmFI.js} +1 -1
  60. package/storybook-static/assets/{Dock.stories-DkcSxUnP.js → Dock.stories-CKD_TOGP.js} +1 -1
  61. package/storybook-static/assets/{EditFAB.stories-CnO5gbbx.js → EditFAB.stories-DGVMpMOL.js} +1 -1
  62. package/storybook-static/assets/{EvilEye.stories-1AQhELsp.js → EvilEye.stories-DNoB6FG0.js} +1 -1
  63. package/storybook-static/assets/{FadeContent.stories-albedBaX.js → FadeContent.stories-C8ppDaXi.js} +1 -1
  64. package/storybook-static/assets/{FaultyTerminal.stories-BFGmMtSB.js → FaultyTerminal.stories-Y8ME_yze.js} +1 -1
  65. package/storybook-static/assets/{Fbo-CtK0ycna.js → Fbo-Bkb1mqiu.js} +1 -1
  66. package/storybook-static/assets/{FloatingLines.stories-2TQYxxp1.js → FloatingLines.stories-ZByyesqH.js} +1 -1
  67. package/storybook-static/assets/{FlowingMenu.stories-CZ5tXywl.js → FlowingMenu.stories-CTWLtqhL.js} +1 -1
  68. package/storybook-static/assets/{FluidGlass.stories-Df2us36M.js → FluidGlass.stories--PsLBBhn.js} +1 -1
  69. package/storybook-static/assets/{Folder.stories-BrFzcjvz.js → Folder.stories-JNXotEML.js} +1 -1
  70. package/storybook-static/assets/{FuzzyText.stories-C1RHobMi.js → FuzzyText.stories-o6wySpRq.js} +1 -1
  71. package/storybook-static/assets/{Galaxy.stories-Cok_44zn.js → Galaxy.stories-DTZantrp.js} +1 -1
  72. package/storybook-static/assets/{GhostCursor.stories-DWaGKV-v.js → GhostCursor.stories-DXF-m9YM.js} +1 -1
  73. package/storybook-static/assets/{GlareHover.stories-CYve6zsX.js → GlareHover.stories-Bb4_dcLV.js} +1 -1
  74. package/storybook-static/assets/{GlassSurface.stories-BvktN5x5.js → GlassSurface.stories-yZ4K521K.js} +1 -1
  75. package/storybook-static/assets/{GlitchText.stories-DLg3Stoq.js → GlitchText.stories-B4Eqkyri.js} +1 -1
  76. package/storybook-static/assets/{GooeyNav.stories-Do5CtYVN.js → GooeyNav.stories-CqUOrJR-.js} +1 -1
  77. package/storybook-static/assets/{GradientBlinds.stories-D3SC67DZ.js → GradientBlinds.stories-DZ6bTCGp.js} +1 -1
  78. package/storybook-static/assets/{GradientText.stories-54uAxgz7.js → GradientText.stories-DyDht-TI.js} +1 -1
  79. package/storybook-static/assets/{Grainient.stories-CghGq35C.js → Grainient.stories-C1PtR90_.js} +1 -1
  80. package/storybook-static/assets/{GridMotion.stories-dOv18eyR.js → GridMotion.stories-BRbD6MZr.js} +1 -1
  81. package/storybook-static/assets/{HabitTimeOfDayChart.stories-BMoAR2U6.js → HabitTimeOfDayChart.stories-D3gqeKpl.js} +1 -1
  82. package/storybook-static/assets/{ImageSlideshow.stories-DFosgVkj.js → ImageSlideshow.stories-BileVQYy.js} +1 -1
  83. package/storybook-static/assets/{Iridescence.stories-BESMZhKG.js → Iridescence.stories-BIhFVHOn.js} +1 -1
  84. package/storybook-static/assets/{LaserFlow.stories-afCaPMTi.js → LaserFlow.stories-BSnwH5Mv.js} +1 -1
  85. package/storybook-static/assets/{LetterGlitch.stories-i9gr8ufw.js → LetterGlitch.stories-CfGaNSmi.js} +1 -1
  86. package/storybook-static/assets/{LightPillar.stories-Bd0CFE1p.js → LightPillar.stories-CNtpoF6N.js} +1 -1
  87. package/storybook-static/assets/{LightRays.stories-B_SogOnY.js → LightRays.stories-DRKVWqXb.js} +1 -1
  88. package/storybook-static/assets/{Lightning.stories-CK3jA29T.js → Lightning.stories-DJOW6kK7.js} +1 -1
  89. package/storybook-static/assets/{LineWaves.stories-LnRI4l13.js → LineWaves.stories-17nqJpH2.js} +1 -1
  90. package/storybook-static/assets/{LiquidChrome.stories-BoS4SUHe.js → LiquidChrome.stories-CgmsyPLg.js} +1 -1
  91. package/storybook-static/assets/{LiquidEther.stories-UCodzAEW.js → LiquidEther.stories-CKvaP6zm.js} +1 -1
  92. package/storybook-static/assets/{LoadingSpinner-BMpWXUFz.js → LoadingSpinner-LXRJXAO4.js} +1 -1
  93. package/storybook-static/assets/{LoadingSpinner.stories-CLXNFf4a.js → LoadingSpinner.stories-C0tbgfV3.js} +1 -1
  94. package/storybook-static/assets/{MagicRings.stories-Ca5ZNeFQ.js → MagicRings.stories-qzHi78-J.js} +1 -1
  95. package/storybook-static/assets/{Magnet.stories-BmgRTPng.js → Magnet.stories-QWTKtI1e.js} +1 -1
  96. package/storybook-static/assets/{MagnetLines.stories-B_HC2JfR.js → MagnetLines.stories-BOaR4PZi.js} +1 -1
  97. package/storybook-static/assets/{Masonry.stories-CNVeDREe.js → Masonry.stories-DLz9dA8U.js} +1 -1
  98. package/storybook-static/assets/{MetaBalls.stories-BI_m0HKO.js → MetaBalls.stories-DcleGPI8.js} +1 -1
  99. package/storybook-static/assets/{MetallicPaint.stories-DJHsg4pJ.js → MetallicPaint.stories-Dqit7nFj.js} +1 -1
  100. package/storybook-static/assets/{MoodChart.stories-C-XEjygQ.js → MoodChart.stories-1otFXWFu.js} +1 -1
  101. package/storybook-static/assets/{MotionConfigContext-r05VNYP5.js → MotionConfigContext-HXxMOMJo.js} +1 -1
  102. package/storybook-static/assets/{Navbar.stories-c2BFGGgH.js → Navbar.stories-BPE4RMdc.js} +1 -1
  103. package/storybook-static/assets/{Noise.stories-DmNPaVB9.js → Noise.stories-BktPkK5a.js} +1 -1
  104. package/storybook-static/assets/{NumberStepper-eg4OI2J9.js → NumberStepper-D1to6bpi.js} +1 -1
  105. package/storybook-static/assets/{NumberStepper.stories-DdaimTPt.js → NumberStepper.stories-WnrisOam.js} +1 -1
  106. package/storybook-static/assets/{Orb.stories-DYbtXka5.js → Orb.stories-BtZmx5Sy.js} +1 -1
  107. package/storybook-static/assets/{OrbitImages.stories-C3I2W6Jq.js → OrbitImages.stories-DSTSVc16.js} +1 -1
  108. package/storybook-static/assets/{PieChart.stories-W3H_ypdq.js → PieChart.stories-L1NRhd_j.js} +1 -1
  109. package/storybook-static/assets/{PixelBlast.stories-BAGTaJo2.js → PixelBlast.stories-CfT09XYZ.js} +1 -1
  110. package/storybook-static/assets/{PixelCard.stories-nBZJmNRX.js → PixelCard.stories-B2LTanjI.js} +1 -1
  111. package/storybook-static/assets/{PixelSnow.stories-DzM9AnhK.js → PixelSnow.stories-Kg0VE4Bc.js} +1 -1
  112. package/storybook-static/assets/{PixelTransition.stories-B18uEo9_.js → PixelTransition.stories-CeanWE2-.js} +1 -1
  113. package/storybook-static/assets/{Plasma.stories-FTIEGEjM.js → Plasma.stories-DujATB5Q.js} +1 -1
  114. package/storybook-static/assets/{Prism.stories-CzsTNjnE.js → Prism.stories-Dxke5JPk.js} +1 -1
  115. package/storybook-static/assets/{PrismaticBurst.stories-_WZRfTMv.js → PrismaticBurst.stories-xc5NSeNp.js} +1 -1
  116. package/storybook-static/assets/{ProfileCard.stories-D51iEq3Z.js → ProfileCard.stories-Cnb3pxki.js} +1 -1
  117. package/storybook-static/assets/{QuantifiableHabitsChart.stories-DYvNt6Sy.js → QuantifiableHabitsChart.stories-BMxWoQO4.js} +1 -1
  118. package/storybook-static/assets/{Radar.stories-DDRZ17su.js → Radar.stories-CrJcMxjq.js} +1 -1
  119. package/storybook-static/assets/RecurrencePicker-Bjafom-j.css +1 -0
  120. package/storybook-static/assets/RecurrencePicker.stories-vkallG9D.js +19 -0
  121. package/storybook-static/assets/{Ribbons.stories-Cq-wi-5t.js → Ribbons.stories-LT5RgvPo.js} +1 -1
  122. package/storybook-static/assets/{RippleGrid.stories-DH7NbksB.js → RippleGrid.stories-Bwsl-Ueq.js} +1 -1
  123. package/storybook-static/assets/{RotatingText.stories-CYXYLq6D.js → RotatingText.stories-CNDJn3v6.js} +1 -1
  124. package/storybook-static/assets/{ScrollFloat.stories-ByENHbNI.js → ScrollFloat.stories-B0qUJggd.js} +1 -1
  125. package/storybook-static/assets/{ScrollReveal.stories-C9ML5Vus.js → ScrollReveal.stories-BBVRW0fh.js} +1 -1
  126. package/storybook-static/assets/{ScrollVelocity.stories-I83W7pTs.js → ScrollVelocity.stories-DfKnOsGa.js} +1 -1
  127. package/storybook-static/assets/{SearchBar.stories-BGekDZxb.js → SearchBar.stories-Coshf_t6.js} +1 -1
  128. package/storybook-static/assets/{SearchableDropdown-Dzdyi2XK.js → SearchableDropdown-CC1-QlKh.js} +1 -1
  129. package/storybook-static/assets/{SearchableDropdown.stories-BpdIXlc0.js → SearchableDropdown.stories-DydVUjWf.js} +1 -1
  130. package/storybook-static/assets/{SelectInput-BpW7Dnep.js → SelectInput-BqVWIQmb.js} +1 -1
  131. package/storybook-static/assets/{SelectInput.stories-BSb6s-9V.js → SelectInput.stories-I0azAt7k.js} +1 -1
  132. package/storybook-static/assets/{ShapeBlur.stories-CTwpIXJ5.js → ShapeBlur.stories-BWBp8nEd.js} +1 -1
  133. package/storybook-static/assets/{ShapeGrid.stories-D--GPfwE.js → ShapeGrid.stories-DJmnW7fN.js} +1 -1
  134. package/storybook-static/assets/{ShinyText.stories-BmAOXMEC.js → ShinyText.stories-7vHIqa03.js} +1 -1
  135. package/storybook-static/assets/{Silk.stories-BYAWqU8r.js → Silk.stories-CXiaINFD.js} +1 -1
  136. package/storybook-static/assets/SleepChart-DtIKf_2P.css +1 -0
  137. package/storybook-static/assets/SleepChart.stories-BmAtNTJP.js +58 -0
  138. package/storybook-static/assets/Slider-BmG0iCoC.js +4 -0
  139. package/storybook-static/assets/Slider-DrZJBbk1.css +1 -0
  140. package/storybook-static/assets/Slider.stories-DZciYzwU.js +95 -0
  141. package/storybook-static/assets/{SoftAurora.stories-Dlak_U90.js → SoftAurora.stories-BubrO6U4.js} +1 -1
  142. package/storybook-static/assets/{SoundDemo.stories-CMmdiHNZ.js → SoundDemo.stories-CDXr3mFW.js} +1 -1
  143. package/storybook-static/assets/{SplashCursor.stories-DzWOpCeX.js → SplashCursor.stories-DgMm9xv3.js} +1 -1
  144. package/storybook-static/assets/{SpotlightCard.stories-CAAJsrlz.js → SpotlightCard.stories-ChPn0jeh.js} +1 -1
  145. package/storybook-static/assets/{Stack.stories-DVFREV7Y.js → Stack.stories-DzzqOEhy.js} +1 -1
  146. package/storybook-static/assets/{StaggeredMenu.stories-B7s5XkvQ.js → StaggeredMenu.stories-BNHc0PM6.js} +1 -1
  147. package/storybook-static/assets/{StarBorder.stories-CQXUiLOv.js → StarBorder.stories-DBGelRYw.js} +1 -1
  148. package/storybook-static/assets/{SunburstChart.stories-CPxlzoad.js → SunburstChart.stories-KPCIjiOk.js} +1 -1
  149. package/storybook-static/assets/{Table.stories-BMC7yWxi.js → Table.stories-Bz2NsPvR.js} +1 -1
  150. package/storybook-static/assets/{Tabs.stories-CdJ6_mbA.js → Tabs.stories-DH8uIATQ.js} +1 -1
  151. package/storybook-static/assets/{TargetCursor.stories-qa2q01Ir.js → TargetCursor.stories-BUrQiofc.js} +1 -1
  152. package/storybook-static/assets/{TextArea-DpPHbAJ1.js → TextArea-DVqzGhY3.js} +1 -1
  153. package/storybook-static/assets/{TextArea.stories-DO6h1f86.js → TextArea.stories-A0YRdcwk.js} +1 -1
  154. package/storybook-static/assets/{TextCursor.stories-B_P4iCXO.js → TextCursor.stories-B_UinRXa.js} +1 -1
  155. package/storybook-static/assets/{TextInput-BQKvX1rm.js → TextInput-46C4j_hq.js} +1 -1
  156. package/storybook-static/assets/{TextInput.stories-CuCM1ZoW.js → TextInput.stories-C7ZC_8wE.js} +1 -1
  157. package/storybook-static/assets/{TextPressure.stories-3FdKqak4.js → TextPressure.stories-Wwlb-VgV.js} +1 -1
  158. package/storybook-static/assets/{TextType.stories-B9zMgVXA.js → TextType.stories-DYLMktJi.js} +1 -1
  159. package/storybook-static/assets/{ThemeSwitcher.stories-MgR7bPEf.js → ThemeSwitcher.stories-8FTV9MJW.js} +1 -1
  160. package/storybook-static/assets/{Threads.stories-D_AvMoiV.js → Threads.stories-BDwauY1I.js} +1 -1
  161. package/storybook-static/assets/{TimeInput.stories-DgWeWVJu.js → TimeInput.stories-Bk2lwEyd.js} +1 -1
  162. package/storybook-static/assets/{Toggle-CM8QfiSr.js → Toggle-BbWuVStR.js} +1 -1
  163. package/storybook-static/assets/{Toggle.stories-uX1tCiAw.js → Toggle.stories-Bb7-wtRn.js} +1 -1
  164. package/storybook-static/assets/{ToggleButton-BvyhCvtl.js → ToggleButton-BaLN5DsF.js} +1 -1
  165. package/storybook-static/assets/{ToggleButton.stories-CL9uYRpB.js → ToggleButton.stories-Cdx8eTPI.js} +1 -1
  166. package/storybook-static/assets/{TrueFocus.stories-BVd4m_-Q.js → TrueFocus.stories-B_pN3J3c.js} +1 -1
  167. package/storybook-static/assets/{VariableProximity.stories-ZweoWxGv.js → VariableProximity.stories-BTLVRXWD.js} +1 -1
  168. package/storybook-static/assets/{Waves.stories-DnXloqCT.js → Waves.stories-_NtAqm6K.js} +1 -1
  169. package/storybook-static/assets/{calendar--DXe40Mf.js → calendar-jGMMZsgE.js} +1 -1
  170. package/storybook-static/assets/{chart-column-PgrGrNon.js → chart-column-jT4jlZWv.js} +1 -1
  171. package/storybook-static/assets/{check-ChmUvqWd.js → check-D_NpTUYB.js} +1 -1
  172. package/storybook-static/assets/{chevron-down-C6C4ZvBB.js → chevron-down-C40D1TRM.js} +1 -1
  173. package/storybook-static/assets/{chevron-right-C5SR-lRy.js → chevron-right-pJjQoHt-.js} +1 -1
  174. package/storybook-static/assets/client-BAyDOFGI.js +1 -0
  175. package/storybook-static/assets/{createLucideIcon-BG15kzB-.js → createLucideIcon-DhNY7W9i.js} +1 -1
  176. package/storybook-static/assets/{download-BfgQY4fA.js → download-DDadr76l.js} +1 -1
  177. package/storybook-static/assets/{folder-Cbvm9nXv.js → folder-Dt06LOrp.js} +1 -1
  178. package/storybook-static/assets/{iconBase-CeXzlF39.js → iconBase-HFPlWF3A.js} +1 -1
  179. package/storybook-static/assets/iframe-1P7UMs1C.css +1 -0
  180. package/storybook-static/assets/{iframe-Cm_EiDwn.js → iframe-rPhsLpUF.js} +3 -3
  181. package/storybook-static/assets/{index-ULNWitGi.js → index-B9UM6a_o.js} +1 -1
  182. package/storybook-static/assets/{index-BZSKMuzd.js → index-Ctb6PtgV.js} +1 -1
  183. package/storybook-static/assets/{index-CsT8MqWO.js → index-DVywRwbF.js} +1 -1
  184. package/storybook-static/assets/{proxy-Bwjbw6nW.js → proxy-uJ8evSzT.js} +1 -1
  185. package/storybook-static/assets/{react-18-DgqofcN2.js → react-18-CYoR46z3.js} +1 -1
  186. package/storybook-static/assets/{react-three-fiber.esm-hrjadSN9.js → react-three-fiber.esm-A61ChP7H.js} +1 -1
  187. package/storybook-static/assets/{search-BgmZvQ4N.js → search-CIAI1CyG.js} +1 -1
  188. package/storybook-static/assets/{settings-Byy70ga8.js → settings-en9EIxHx.js} +1 -1
  189. package/storybook-static/assets/{sun-BqaDfLy6.js → sun-D_CSzOJ1.js} +1 -1
  190. package/storybook-static/assets/{trash-2-Ceo1MVF-.js → trash-2-C2s-nRjQ.js} +1 -1
  191. package/storybook-static/assets/{use-animation-frame-XhXswEVQ.js → use-animation-frame-B62vi9Ct.js} +1 -1
  192. package/storybook-static/assets/{use-in-view-BQr3dSLY.js → use-in-view-BHudJAGG.js} +1 -1
  193. package/storybook-static/assets/{use-motion-value-C2FYEM9k.js → use-motion-value-jBEsDEvG.js} +1 -1
  194. package/storybook-static/assets/{use-spring-Nj8eugaF.js → use-spring-Bf02nu3H.js} +1 -1
  195. package/storybook-static/assets/{use-transform-D5FUFr4K.js → use-transform-Cfp6qWZw.js} +1 -1
  196. package/storybook-static/assets/{useSound-CZL3WSRL.js → useSound-CISJumm6.js} +1 -1
  197. package/storybook-static/assets/{users-Copg4Dyi.js → users-Bm-CUW6N.js} +1 -1
  198. package/storybook-static/assets/{x-CFWk6cjo.js → x-Bb1g_3HM.js} +1 -1
  199. package/storybook-static/iframe.html +2 -2
  200. package/storybook-static/index.json +1 -1
  201. package/storybook-static/project.json +1 -1
  202. package/storybook-static/sb-addons/storybook-2/manager-bundle.js +1 -1
  203. package/storybook-static/assets/SleepChart-CjpdWR_T.css +0 -1
  204. package/storybook-static/assets/SleepChart.stories-D4Ye-7Q_.js +0 -58
  205. package/storybook-static/assets/Slider-BfT1m14M.css +0 -1
  206. package/storybook-static/assets/Slider-Cj9hW0Us.js +0 -4
  207. package/storybook-static/assets/Slider.stories-BSSPlalx.js +0 -99
  208. package/storybook-static/assets/client-BtMMXwNO.js +0 -1
  209. package/storybook-static/assets/iframe-CU5nRRrn.css +0 -1
package/dist/index.esm.js CHANGED
@@ -8,9 +8,10 @@ import { MobileTimePicker } from '@mui/x-date-pickers/MobileTimePicker';
8
8
  import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
9
9
  import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
10
10
  import { createTheme, ThemeProvider as ThemeProvider$1 } from '@mui/material/styles';
11
+ import { RRule } from 'rrule';
11
12
  import * as d3 from 'd3';
12
13
 
13
- var styles$B = {"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","icon":"Button-module_icon__JNzlJ","iconLeft":"Button-module_iconLeft__Fpz-y","iconRight":"Button-module_iconRight__kTfjS","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"};
14
+ var styles$C = {"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","icon":"Button-module_icon__JNzlJ","iconLeft":"Button-module_iconLeft__Fpz-y","iconRight":"Button-module_iconRight__kTfjS","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"};
14
15
 
15
16
  const SOUND_PACKS = {
16
17
  digital: {
@@ -576,11 +577,11 @@ const Button = ({ variant = 'primary', size = 'medium', fullWidth = false, loadi
576
577
  const { handlers } = useComponentSound(soundConfig);
577
578
  const isIcon = variant === 'icon';
578
579
  const buttonClasses = [
579
- styles$B.button,
580
- styles$B[variant],
581
- !isIcon && styles$B[size],
582
- fullWidth && styles$B.fullWidth,
583
- loading && styles$B.loading,
580
+ styles$C.button,
581
+ styles$C[variant],
582
+ !isIcon && styles$C[size],
583
+ fullWidth && styles$C.fullWidth,
584
+ loading && styles$C.loading,
584
585
  className
585
586
  ].filter(Boolean).join(' ');
586
587
  const handleClick = (e) => {
@@ -591,10 +592,10 @@ const Button = ({ variant = 'primary', size = 'medium', fullWidth = false, loadi
591
592
  handlers.onMouseEnter?.();
592
593
  onMouseEnter?.(e);
593
594
  };
594
- return (jsxs(motion.button, { className: buttonClasses, disabled: disabled || loading, whileHover: isIcon ? undefined : { scale: disabled || loading ? 1 : 1.02 }, whileTap: { scale: disabled || loading ? 1 : (isIcon ? 0.9 : 0.98) }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: handleClick, onMouseEnter: handleMouseEnter, onFocus: onFocus, ...motionProps, ...rest, children: [loading && jsx("span", { className: styles$B.spinner }), iconLeft && jsx("span", { className: styles$B.iconLeft, children: iconLeft }), children, iconRight && jsx("span", { className: styles$B.iconRight, children: iconRight })] }));
595
+ return (jsxs(motion.button, { className: buttonClasses, disabled: disabled || loading, whileHover: isIcon ? undefined : { scale: disabled || loading ? 1 : 1.02 }, whileTap: { scale: disabled || loading ? 1 : (isIcon ? 0.9 : 0.98) }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: handleClick, onMouseEnter: handleMouseEnter, onFocus: onFocus, ...motionProps, ...rest, children: [loading && jsx("span", { className: styles$C.spinner }), iconLeft && jsx("span", { className: styles$C.iconLeft, children: iconLeft }), children, iconRight && jsx("span", { className: styles$C.iconRight, children: iconRight })] }));
595
596
  };
596
597
 
597
- var styles$A = {"card":"Card-module_card__r2DB2","hoverable":"Card-module_hoverable__X3OpS","elevated":"Card-module_elevated__hGV6-","outlined":"Card-module_outlined__ngRag","flat":"Card-module_flat__xy-xt","glass":"Card-module_glass__Sv-Vs","imageContainer":"Card-module_imageContainer__L4ma6","image":"Card-module_image__bQBt6","header":"Card-module_header__0dtj3","headerContent":"Card-module_headerContent__W7-jD","expandButton":"Card-module_expandButton__I7f49","expandIcon":"Card-module_expandIcon__Lu-OY","expandableContent":"Card-module_expandableContent__BFgO5","expandable":"Card-module_expandable__GMXzo","body":"Card-module_body__K7eL3","footer":"Card-module_footer__L5wO-","title":"Card-module_title__pW9g8","subtitle":"Card-module_subtitle__gejH4","clickable":"Card-module_clickable__Y6fm8","padding":"Card-module_padding__wtyDo","noPadding":"Card-module_noPadding__r5Qq0","loading":"Card-module_loading__S4Wng","loadingShimmer":"Card-module_loadingShimmer__Q1Osr","loadingPulse":"Card-module_loadingPulse__bXQmC"};
598
+ var styles$B = {"card":"Card-module_card__r2DB2","hoverable":"Card-module_hoverable__X3OpS","elevated":"Card-module_elevated__hGV6-","outlined":"Card-module_outlined__ngRag","flat":"Card-module_flat__xy-xt","glass":"Card-module_glass__Sv-Vs","imageContainer":"Card-module_imageContainer__L4ma6","image":"Card-module_image__bQBt6","header":"Card-module_header__0dtj3","headerContent":"Card-module_headerContent__W7-jD","expandButton":"Card-module_expandButton__I7f49","expandIcon":"Card-module_expandIcon__Lu-OY","expandableContent":"Card-module_expandableContent__BFgO5","expandable":"Card-module_expandable__GMXzo","body":"Card-module_body__K7eL3","footer":"Card-module_footer__L5wO-","title":"Card-module_title__pW9g8","subtitle":"Card-module_subtitle__gejH4","clickable":"Card-module_clickable__Y6fm8","padding":"Card-module_padding__wtyDo","noPadding":"Card-module_noPadding__r5Qq0","loading":"Card-module_loading__S4Wng","loadingShimmer":"Card-module_loadingShimmer__Q1Osr","loadingPulse":"Card-module_loadingPulse__bXQmC"};
598
599
 
599
600
  /**
600
601
  * Card Component
@@ -659,28 +660,28 @@ const Card = ({ variant = 'elevated', hoverable = false, clickable = false, padd
659
660
  onExpandChange?.(newExpanded);
660
661
  };
661
662
  const cardClasses = [
662
- styles$A.card,
663
- styles$A[variant],
664
- hoverable && styles$A.hoverable,
665
- clickable && styles$A.clickable,
666
- !padding && styles$A.noPadding,
667
- expandable && styles$A.expandable,
663
+ styles$B.card,
664
+ styles$B[variant],
665
+ hoverable && styles$B.hoverable,
666
+ clickable && styles$B.clickable,
667
+ !padding && styles$B.noPadding,
668
+ expandable && styles$B.expandable,
668
669
  className
669
670
  ].filter(Boolean).join(' ');
670
671
  const renderHeader = () => {
671
672
  if (header) {
672
- return (jsxs("div", { className: styles$A.header, children: [jsx("div", { className: styles$A.headerContent, children: header }), expandable && (jsx("button", { className: styles$A.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$A.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
673
+ return (jsxs("div", { className: styles$B.header, children: [jsx("div", { className: styles$B.headerContent, children: header }), expandable && (jsx("button", { className: styles$B.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$B.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
673
674
  }
674
675
  if (title || subtitle) {
675
- return (jsxs("div", { className: styles$A.header, children: [jsxs("div", { className: styles$A.headerContent, children: [title && jsx("h3", { className: styles$A.title, children: title }), subtitle && jsx("p", { className: styles$A.subtitle, children: subtitle })] }), expandable && (jsx("button", { className: styles$A.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$A.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
676
+ return (jsxs("div", { className: styles$B.header, children: [jsxs("div", { className: styles$B.headerContent, children: [title && jsx("h3", { className: styles$B.title, children: title }), subtitle && jsx("p", { className: styles$B.subtitle, children: subtitle })] }), expandable && (jsx("button", { className: styles$B.expandButton, onClick: handleToggleExpand, "aria-label": isExpanded ? 'Collapse card' : 'Expand card', children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: styles$B.expandIcon, style: { transform: isExpanded ? 'rotate(180deg)' : 'rotate(0deg)' }, children: jsx("path", { d: "M6 9l6 6 6-6" }) }) }))] }));
676
677
  }
677
678
  return null;
678
679
  };
679
- const cardContent = (jsxs(Fragment, { children: [image && (jsx("div", { className: styles$A.imageContainer, children: jsx("img", { src: image, alt: imageAlt, className: styles$A.image }) })), renderHeader(), jsx(AnimatePresence, { initial: false, children: (!expandable || isExpanded) && (jsxs(motion.div, { initial: expandable ? { height: 0, opacity: 0 } : undefined, animate: expandable ? { height: 'auto', opacity: 1 } : undefined, exit: expandable ? { height: 0, opacity: 0 } : undefined, transition: { duration: 0.3, ease: "easeInOut" }, className: styles$A.expandableContent, children: [children && (jsx("div", { className: padding ? styles$A.body : undefined, children: children })), footer && jsx("div", { className: styles$A.footer, children: footer })] }, "content")) })] }));
680
+ const cardContent = (jsxs(Fragment, { children: [image && (jsx("div", { className: styles$B.imageContainer, children: jsx("img", { src: image, alt: imageAlt, className: styles$B.image }) })), renderHeader(), jsx(AnimatePresence, { initial: false, children: (!expandable || isExpanded) && (jsxs(motion.div, { initial: expandable ? { height: 0, opacity: 0 } : undefined, animate: expandable ? { height: 'auto', opacity: 1 } : undefined, exit: expandable ? { height: 0, opacity: 0 } : undefined, transition: { duration: 0.3, ease: "easeInOut" }, className: styles$B.expandableContent, children: [children && (jsx("div", { className: padding ? styles$B.body : undefined, children: children })), footer && jsx("div", { className: styles$B.footer, children: footer })] }, "content")) })] }));
680
681
  return (jsx(motion.div, { className: cardClasses, onClick: clickable ? onClick : undefined, whileHover: hoverable ? { y: -4 } : undefined, transition: { type: "spring", stiffness: 400, damping: 17 }, ...motionProps, ...rest, children: cardContent }));
681
682
  };
682
683
 
683
- var styles$z = {"wrapper":"EmptyState-module_wrapper__h3Y2E","compact":"EmptyState-module_compact__HdYu1","default":"EmptyState-module_default__ACAbn","large":"EmptyState-module_large__H3ELo","icon":"EmptyState-module_icon__i7-3M","title":"EmptyState-module_title__xCyfH","message":"EmptyState-module_message__Bc5xK","action":"EmptyState-module_action__UpnvZ"};
684
+ var styles$A = {"wrapper":"EmptyState-module_wrapper__h3Y2E","compact":"EmptyState-module_compact__HdYu1","default":"EmptyState-module_default__ACAbn","large":"EmptyState-module_large__H3ELo","icon":"EmptyState-module_icon__i7-3M","title":"EmptyState-module_title__xCyfH","message":"EmptyState-module_message__Bc5xK","action":"EmptyState-module_action__UpnvZ"};
684
685
 
685
686
  /**
686
687
  * EmptyState Component
@@ -717,11 +718,11 @@ var styles$z = {"wrapper":"EmptyState-module_wrapper__h3Y2E","compact":"EmptySta
717
718
  * @returns {JSX.Element} The rendered EmptyState component
718
719
  */
719
720
  const EmptyState = ({ icon, title, message, action, size = 'default', }) => {
720
- const wrapperClass = [styles$z.wrapper, styles$z[size]].filter(Boolean).join(' ');
721
- return (jsxs("div", { className: wrapperClass, children: [icon && jsx("div", { className: styles$z.icon, children: icon }), title && jsx("h3", { className: styles$z.title, children: title }), jsx("p", { className: styles$z.message, children: message }), action && jsx("div", { className: styles$z.action, children: action })] }));
721
+ const wrapperClass = [styles$A.wrapper, styles$A[size]].filter(Boolean).join(' ');
722
+ return (jsxs("div", { className: wrapperClass, children: [icon && jsx("div", { className: styles$A.icon, children: icon }), title && jsx("h3", { className: styles$A.title, children: title }), jsx("p", { className: styles$A.message, children: message }), action && jsx("div", { className: styles$A.action, children: action })] }));
722
723
  };
723
724
 
724
- var styles$y = {"backdrop":"Modal-module_backdrop__yOx-a","dialog":"Modal-module_dialog__yEXTq","dialogCompact":"Modal-module_dialogCompact__z1Wxp","dialogWide":"Modal-module_dialogWide__9PTXK","header":"Modal-module_header__NHHKd","title":"Modal-module_title__i3R0x","headerActions":"Modal-module_headerActions__g28UN","closeButton":"Modal-module_closeButton__siC-1","body":"Modal-module_body__U7jvM","bodyFlush":"Modal-module_bodyFlush__wtk3q","backdropSheet":"Modal-module_backdropSheet__o9kW3","dialogSheet":"Modal-module_dialogSheet__EjpwP","grabBar":"Modal-module_grabBar__qhl9f"};
725
+ var styles$z = {"backdrop":"Modal-module_backdrop__yOx-a","dialog":"Modal-module_dialog__yEXTq","dialogCompact":"Modal-module_dialogCompact__z1Wxp","dialogWide":"Modal-module_dialogWide__9PTXK","header":"Modal-module_header__NHHKd","title":"Modal-module_title__i3R0x","headerActions":"Modal-module_headerActions__g28UN","closeButton":"Modal-module_closeButton__siC-1","body":"Modal-module_body__U7jvM","bodyFlush":"Modal-module_bodyFlush__wtk3q","backdropSheet":"Modal-module_backdropSheet__o9kW3","dialogSheet":"Modal-module_dialogSheet__EjpwP","grabBar":"Modal-module_grabBar__qhl9f"};
725
726
 
726
727
  const MOBILE_BREAKPOINT = '(max-width: 640px)';
727
728
  const useIsMobile = () => {
@@ -758,14 +759,14 @@ const Modal = ({ open, title, onClose, children, size = 'default', actions, padd
758
759
  return null;
759
760
  const isSheet = mobileVariant === 'sheet' && isMobile;
760
761
  const isDraggable = isSheet && draggable;
761
- const backdropClass = [styles$y.backdrop, isSheet && styles$y.backdropSheet]
762
+ const backdropClass = [styles$z.backdrop, isSheet && styles$z.backdropSheet]
762
763
  .filter(Boolean)
763
764
  .join(' ');
764
765
  const dialogClass = [
765
- styles$y.dialog,
766
- size === 'compact' && styles$y.dialogCompact,
767
- size === 'wide' && styles$y.dialogWide,
768
- isSheet && styles$y.dialogSheet,
766
+ styles$z.dialog,
767
+ size === 'compact' && styles$z.dialogCompact,
768
+ size === 'wide' && styles$z.dialogWide,
769
+ isSheet && styles$z.dialogSheet,
769
770
  ]
770
771
  .filter(Boolean)
771
772
  .join(' ');
@@ -781,16 +782,16 @@ const Modal = ({ open, title, onClose, children, size = 'default', actions, padd
781
782
  : { duration: 0.15, ease: 'easeOut' }, onClick: (e) => e.stopPropagation(), drag: isDraggable ? 'y' : false, dragControls: isDraggable ? dragControls : undefined, dragConstraints: { top: 0 }, dragElastic: { top: 0, bottom: 0.3 }, dragListener: false, onDragEnd: (_, info) => {
782
783
  if (info.offset.y > 80)
783
784
  onClose();
784
- }, children: [isSheet && jsx("div", { className: styles$y.grabBar }), jsxs("div", { ref: headerRef, className: styles$y.header, onPointerDown: (e) => {
785
+ }, children: [isSheet && jsx("div", { className: styles$z.grabBar }), jsxs("div", { ref: headerRef, className: styles$z.header, onPointerDown: (e) => {
785
786
  if (!isDraggable)
786
787
  return;
787
788
  if (e.target.closest('button'))
788
789
  return;
789
790
  dragControls.start(e);
790
- }, children: [jsx("span", { className: styles$y.title, children: title }), actions && jsx("div", { className: styles$y.headerActions, children: actions }), jsx("button", { className: styles$y.closeButton, onClick: onClose, "aria-label": "Close modal", type: "button", children: jsx(X, { size: 16 }) })] }), jsx("div", { className: padding ? styles$y.body : styles$y.bodyFlush, children: children })] }) })) }), document.body);
791
+ }, children: [jsx("span", { className: styles$z.title, children: title }), actions && jsx("div", { className: styles$z.headerActions, children: actions }), jsx("button", { className: styles$z.closeButton, onClick: onClose, "aria-label": "Close modal", type: "button", children: jsx(X, { size: 16 }) })] }), jsx("div", { className: padding ? styles$z.body : styles$z.bodyFlush, children: children })] }) })) }), document.body);
791
792
  };
792
793
 
793
- var styles$x = {"checkboxLabel":"Checkbox-module_checkboxLabel__4tBVg","checkbox":"Checkbox-module_checkbox__BbJul","checkboxText":"Checkbox-module_checkboxText__oJsc9"};
794
+ var styles$y = {"checkboxLabel":"Checkbox-module_checkboxLabel__4tBVg","checkbox":"Checkbox-module_checkbox__BbJul","checkboxText":"Checkbox-module_checkboxText__oJsc9"};
794
795
 
795
796
  /**
796
797
  * Checkbox component - Modern interactive checkbox with animations
@@ -835,13 +836,13 @@ const Checkbox = ({ checked, onChange, label, disabled = false, indeterminate =
835
836
  checkboxRef.current.indeterminate = indeterminate;
836
837
  }
837
838
  }, [indeterminate]);
838
- return (jsxs("label", { className: styles$x.checkboxLabel, children: [jsx("input", { ref: checkboxRef, type: "checkbox", checked: checked, onChange: (e) => {
839
+ return (jsxs("label", { className: styles$y.checkboxLabel, children: [jsx("input", { ref: checkboxRef, type: "checkbox", checked: checked, onChange: (e) => {
839
840
  const isChecked = e.target.checked;
840
841
  onChange(isChecked);
841
842
  if (soundConfig?.onClick !== false) {
842
843
  playSound('toggle');
843
844
  }
844
- }, className: styles$x.checkbox, disabled: disabled, id: id, name: name, value: value, "aria-checked": indeterminate ? 'mixed' : checked }), label && jsx("span", { className: styles$x.checkboxText, children: label })] }));
845
+ }, className: styles$y.checkbox, disabled: disabled, id: id, name: name, value: value, "aria-checked": indeterminate ? 'mixed' : checked }), label && jsx("span", { className: styles$y.checkboxText, children: label })] }));
845
846
  };
846
847
 
847
848
  const formatDateToEuropean = (date) => {
@@ -872,7 +873,7 @@ const parseEuropeanDate = (dateString) => {
872
873
  return '';
873
874
  };
874
875
 
875
- var styles$w = {"dateInput":"DateInput-module_dateInput__54VPD","label":"DateInput-module_label__yDdUw","inputWrapper":"DateInput-module_inputWrapper__x-r1d","textInput":"DateInput-module_textInput__ToOSX","calendarButton":"DateInput-module_calendarButton__JzDGD","nativeDateInput":"DateInput-module_nativeDateInput__tbi68","error":"DateInput-module_error__ieuPO","success":"DateInput-module_success__rPA93","loading":"DateInput-module_loading__1DAmD"};
876
+ var styles$x = {"dateInput":"DateInput-module_dateInput__54VPD","label":"DateInput-module_label__yDdUw","inputWrapper":"DateInput-module_inputWrapper__x-r1d","textInput":"DateInput-module_textInput__ToOSX","calendarButton":"DateInput-module_calendarButton__JzDGD","nativeDateInput":"DateInput-module_nativeDateInput__tbi68","error":"DateInput-module_error__ieuPO","success":"DateInput-module_success__rPA93","loading":"DateInput-module_loading__1DAmD"};
876
877
 
877
878
  /**
878
879
  * DateInput component - European format date picker with manual input support
@@ -932,21 +933,21 @@ function DateInput({ label, value, onChange, placeholder = "25/12/2024", onFocus
932
933
  }
933
934
  };
934
935
  const getClassName = () => {
935
- const classes = [styles$w.dateInput];
936
+ const classes = [styles$x.dateInput];
936
937
  if (error)
937
- classes.push(styles$w.error);
938
+ classes.push(styles$x.error);
938
939
  if (success)
939
- classes.push(styles$w.success);
940
+ classes.push(styles$x.success);
940
941
  if (loading)
941
- classes.push(styles$w.loading);
942
+ classes.push(styles$x.loading);
942
943
  return classes.join(' ');
943
944
  };
944
945
  // Current ISO value for the native date input (or '' if empty/unparseable)
945
946
  const isoValue = value.includes('-') ? value : (parseEuropeanDate(value) || '');
946
- return (jsxs("div", { className: getClassName(), children: [jsx("label", { className: styles$w.label, children: label }), jsxs("div", { className: styles$w.inputWrapper, children: [jsx("input", { type: "text", value: value.includes('-') ? formatDateToEuropean(value) : value, onChange: (e) => handleTextChange(e.target.value), onFocus: onFocus, onBlur: onBlur, placeholder: placeholder, className: styles$w.textInput, disabled: disabled || loading, ...handlers }), jsxs("span", { className: styles$w.calendarButton, "aria-hidden": "true", children: [jsx(Calendar$1, {}), jsx("input", { type: "date", value: isoValue, onChange: handleCalendarChange, className: styles$w.nativeDateInput, title: "Select date from calendar", "aria-label": label ? `${label} calendar picker` : 'Calendar picker', disabled: disabled || loading })] })] })] }));
947
+ return (jsxs("div", { className: getClassName(), children: [jsx("label", { className: styles$x.label, children: label }), jsxs("div", { className: styles$x.inputWrapper, children: [jsx("input", { type: "text", value: value.includes('-') ? formatDateToEuropean(value) : value, onChange: (e) => handleTextChange(e.target.value), onFocus: onFocus, onBlur: onBlur, placeholder: placeholder, className: styles$x.textInput, disabled: disabled || loading, ...handlers }), jsxs("span", { className: styles$x.calendarButton, "aria-hidden": "true", children: [jsx(Calendar$1, {}), jsx("input", { type: "date", value: isoValue, onChange: handleCalendarChange, className: styles$x.nativeDateInput, title: "Select date from calendar", "aria-label": label ? `${label} calendar picker` : 'Calendar picker', disabled: disabled || loading })] })] })] }));
947
948
  }
948
949
 
949
- var styles$v = {"searchableDropdown":"SearchableDropdown-module_searchableDropdown__S2Nh5","dropdownTrigger":"SearchableDropdown-module_dropdownTrigger__dihdr","open":"SearchableDropdown-module_open__P7mRt","dropdownValue":"SearchableDropdown-module_dropdownValue__ydrc2","placeholder":"SearchableDropdown-module_placeholder__BwM2W","dropdownArrow":"SearchableDropdown-module_dropdownArrow__yd5fp","dropdownMenu":"SearchableDropdown-module_dropdownMenu__2Z5cc","dropdownSearch":"SearchableDropdown-module_dropdownSearch__NRk7j","searchInput":"SearchableDropdown-module_searchInput__VS2Hw","searchIcon":"SearchableDropdown-module_searchIcon__2vKFF","dropdownOptions":"SearchableDropdown-module_dropdownOptions__6YXqF","dropdownOption":"SearchableDropdown-module_dropdownOption__YwDr-","selected":"SearchableDropdown-module_selected__31JeB","highlighted":"SearchableDropdown-module_highlighted__P0bBq","checkIcon":"SearchableDropdown-module_checkIcon__YxowK","dropdownNoResults":"SearchableDropdown-module_dropdownNoResults__WW-Da","loading":"SearchableDropdown-module_loading__xlYf0"};
950
+ var styles$w = {"searchableDropdown":"SearchableDropdown-module_searchableDropdown__S2Nh5","dropdownTrigger":"SearchableDropdown-module_dropdownTrigger__dihdr","open":"SearchableDropdown-module_open__P7mRt","dropdownValue":"SearchableDropdown-module_dropdownValue__ydrc2","placeholder":"SearchableDropdown-module_placeholder__BwM2W","dropdownArrow":"SearchableDropdown-module_dropdownArrow__yd5fp","dropdownMenu":"SearchableDropdown-module_dropdownMenu__2Z5cc","dropdownSearch":"SearchableDropdown-module_dropdownSearch__NRk7j","searchInput":"SearchableDropdown-module_searchInput__VS2Hw","searchIcon":"SearchableDropdown-module_searchIcon__2vKFF","dropdownOptions":"SearchableDropdown-module_dropdownOptions__6YXqF","dropdownOption":"SearchableDropdown-module_dropdownOption__YwDr-","selected":"SearchableDropdown-module_selected__31JeB","highlighted":"SearchableDropdown-module_highlighted__P0bBq","checkIcon":"SearchableDropdown-module_checkIcon__YxowK","dropdownNoResults":"SearchableDropdown-module_dropdownNoResults__WW-Da","loading":"SearchableDropdown-module_loading__xlYf0"};
950
951
 
951
952
  /**
952
953
  * SearchableDropdown component - Modern filterable dropdown with animations
@@ -1051,23 +1052,23 @@ function SearchableDropdown({ label, value, onChange, options, placeholder = "Se
1051
1052
  }
1052
1053
  };
1053
1054
  const getTriggerClassName = () => {
1054
- const classes = [styles$v.dropdownTrigger];
1055
+ const classes = [styles$w.dropdownTrigger];
1055
1056
  if (isOpen)
1056
- classes.push(styles$v.open);
1057
+ classes.push(styles$w.open);
1057
1058
  if (loading)
1058
- classes.push(styles$v.loading);
1059
+ classes.push(styles$w.loading);
1059
1060
  if (error)
1060
- classes.push(styles$v.error);
1061
+ classes.push(styles$w.error);
1061
1062
  return classes.join(' ');
1062
1063
  };
1063
- return (jsxs("div", { className: styles$v.searchableDropdown, ref: dropdownRef, onKeyDown: handleKeyDown, children: [jsx("label", { children: label }), jsxs(motion.button, { type: "button", className: getTriggerClassName(), onClick: () => !disabled && !loading && setIsOpen(!isOpen), whileTap: { scale: disabled ? 1 : 0.98 }, style: { willChange: 'transform' }, disabled: disabled, children: [jsx("span", { className: `${styles$v.dropdownValue} ${!displayValue ? styles$v.placeholder : ''}`, children: displayValue || placeholder }), jsx(ChevronDown, { className: styles$v.dropdownArrow })] }), jsx(AnimatePresence, { children: isOpen && (jsxs(motion.div, { className: styles$v.dropdownMenu, initial: { opacity: 0, y: -10, scale: 0.95 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: -10, scale: 0.95 }, transition: { duration: 0.2, ease: "easeOut" }, children: [jsxs("div", { className: styles$v.dropdownSearch, children: [jsx(Search, { className: styles$v.searchIcon }), jsx("input", { ref: inputRef, type: "text", className: styles$v.searchInput, placeholder: "Cerca...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), onClick: (e) => e.stopPropagation() })] }), jsxs("div", { className: styles$v.dropdownOptions, children: [allOptions.map((opt, index) => {
1064
+ return (jsxs("div", { className: styles$w.searchableDropdown, ref: dropdownRef, onKeyDown: handleKeyDown, children: [jsx("label", { children: label }), jsxs(motion.button, { type: "button", className: getTriggerClassName(), onClick: () => !disabled && !loading && setIsOpen(!isOpen), whileTap: { scale: disabled ? 1 : 0.98 }, style: { willChange: 'transform' }, disabled: disabled, children: [jsx("span", { className: `${styles$w.dropdownValue} ${!displayValue ? styles$w.placeholder : ''}`, children: displayValue || placeholder }), jsx(ChevronDown, { className: styles$w.dropdownArrow })] }), jsx(AnimatePresence, { children: isOpen && (jsxs(motion.div, { className: styles$w.dropdownMenu, initial: { opacity: 0, y: -10, scale: 0.95 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: -10, scale: 0.95 }, transition: { duration: 0.2, ease: "easeOut" }, children: [jsxs("div", { className: styles$w.dropdownSearch, children: [jsx(Search, { className: styles$w.searchIcon }), jsx("input", { ref: inputRef, type: "text", className: styles$w.searchInput, placeholder: "Cerca...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), onClick: (e) => e.stopPropagation() })] }), jsxs("div", { className: styles$w.dropdownOptions, children: [allOptions.map((opt, index) => {
1064
1065
  const isSelected = value === opt.value;
1065
1066
  const isHighlighted = highlightedIndex === index;
1066
- return (jsxs(motion.button, { type: "button", className: `${styles$v.dropdownOption} ${isSelected ? styles$v.selected : ''} ${isHighlighted ? styles$v.highlighted : ''}`, onClick: () => handleSelect(opt.value), onMouseEnter: () => setHighlightedIndex(index), initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { delay: index * 0.02 }, whileTap: { scale: 0.98 }, style: { willChange: 'transform' }, children: [jsx("span", { children: opt.label }), isSelected && jsx(Check, { className: styles$v.checkIcon })] }, `${opt.value}-${index}`));
1067
- }), allOptions.length === 0 && (jsx(motion.div, { className: styles$v.dropdownNoResults, initial: { opacity: 0 }, animate: { opacity: 1 }, children: "No results found" }))] })] })) })] }));
1067
+ return (jsxs(motion.button, { type: "button", className: `${styles$w.dropdownOption} ${isSelected ? styles$w.selected : ''} ${isHighlighted ? styles$w.highlighted : ''}`, onClick: () => handleSelect(opt.value), onMouseEnter: () => setHighlightedIndex(index), initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { delay: index * 0.02 }, whileTap: { scale: 0.98 }, style: { willChange: 'transform' }, children: [jsx("span", { children: opt.label }), isSelected && jsx(Check, { className: styles$w.checkIcon })] }, `${opt.value}-${index}`));
1068
+ }), allOptions.length === 0 && (jsx(motion.div, { className: styles$w.dropdownNoResults, initial: { opacity: 0 }, animate: { opacity: 1 }, children: "No results found" }))] })] })) })] }));
1068
1069
  }
1069
1070
 
1070
- var styles$u = {"selectInput":"SelectInput-module_selectInput__s6zEg","selectWrapper":"SelectInput-module_selectWrapper__Qr4pl","selectIcon":"SelectInput-module_selectIcon__9pjhf","error":"SelectInput-module_error__3WNJc","success":"SelectInput-module_success__WJ5ga","loading":"SelectInput-module_loading__n35N9"};
1071
+ var styles$v = {"selectInput":"SelectInput-module_selectInput__s6zEg","selectWrapper":"SelectInput-module_selectWrapper__Qr4pl","selectIcon":"SelectInput-module_selectIcon__9pjhf","error":"SelectInput-module_error__3WNJc","success":"SelectInput-module_success__WJ5ga","loading":"SelectInput-module_loading__n35N9"};
1071
1072
 
1072
1073
  /**
1073
1074
  * SelectInput component - Styled dropdown selector with flexible option format
@@ -1105,26 +1106,26 @@ var styles$u = {"selectInput":"SelectInput-module_selectInput__s6zEg","selectWra
1105
1106
  function SelectInput({ label, value, onChange, options, placeholder = "Select...", disabled = false, error = false, success = false, loading = false, required = false, soundConfig, className }) {
1106
1107
  const { handlers, playSound } = useComponentSound(soundConfig);
1107
1108
  const getClassName = () => {
1108
- const classes = [styles$u.selectInput];
1109
+ const classes = [styles$v.selectInput];
1109
1110
  if (error)
1110
- classes.push(styles$u.error);
1111
+ classes.push(styles$v.error);
1111
1112
  if (success)
1112
- classes.push(styles$u.success);
1113
+ classes.push(styles$v.success);
1113
1114
  if (loading)
1114
- classes.push(styles$u.loading);
1115
+ classes.push(styles$v.loading);
1115
1116
  return classes.join(' ');
1116
1117
  };
1117
- return (jsxs("div", { className: `${getClassName()}${className ? ` ${className}` : ''}`, children: [jsxs("label", { children: [label, required && jsx("span", { style: { color: 'var(--color-error)' }, children: " *" })] }), jsxs("div", { className: styles$u.selectWrapper, children: [jsxs("select", { value: value, onChange: e => {
1118
+ return (jsxs("div", { className: `${getClassName()}${className ? ` ${className}` : ''}`, children: [jsxs("label", { children: [label, required && jsx("span", { style: { color: 'var(--color-error)' }, children: " *" })] }), jsxs("div", { className: styles$v.selectWrapper, children: [jsxs("select", { value: value, onChange: e => {
1118
1119
  playSound('click');
1119
1120
  onChange(e.target.value);
1120
1121
  }, disabled: disabled || loading, required: required, ...handlers, children: [jsx("option", { value: "", children: placeholder }), options.map(opt => {
1121
1122
  const optionValue = typeof opt === 'string' ? opt : opt.value;
1122
1123
  const optionLabel = typeof opt === 'string' ? opt : opt.label;
1123
1124
  return (jsx("option", { value: optionValue, children: optionLabel }, optionValue));
1124
- })] }), jsx(ChevronDown, { className: styles$u.selectIcon })] })] }));
1125
+ })] }), jsx(ChevronDown, { className: styles$v.selectIcon })] })] }));
1125
1126
  }
1126
1127
 
1127
- var styles$t = {"textareaContainer":"TextArea-module_textareaContainer__AquFj","compact":"TextArea-module_compact__U5lPn","textareaLabel":"TextArea-module_textareaLabel__7Vmyx","requiredIndicator":"TextArea-module_requiredIndicator__3Fxyy","textareaInput":"TextArea-module_textareaInput__VCDZA","characterCount":"TextArea-module_characterCount__9FO5N","nearLimit":"TextArea-module_nearLimit__cUdnw","atLimit":"TextArea-module_atLimit__GoWCC","error":"TextArea-module_error__ciHgb","success":"TextArea-module_success__a0-xD","loading":"TextArea-module_loading__CSFBR","focusMode":"TextArea-module_focusMode__9A8U-"};
1128
+ var styles$u = {"textareaContainer":"TextArea-module_textareaContainer__AquFj","compact":"TextArea-module_compact__U5lPn","textareaLabel":"TextArea-module_textareaLabel__7Vmyx","requiredIndicator":"TextArea-module_requiredIndicator__3Fxyy","textareaInput":"TextArea-module_textareaInput__VCDZA","characterCount":"TextArea-module_characterCount__9FO5N","nearLimit":"TextArea-module_nearLimit__cUdnw","atLimit":"TextArea-module_atLimit__GoWCC","error":"TextArea-module_error__ciHgb","success":"TextArea-module_success__a0-xD","loading":"TextArea-module_loading__CSFBR","focusMode":"TextArea-module_focusMode__9A8U-"};
1128
1129
 
1129
1130
  /**
1130
1131
  * TextArea component - Multi-line text input with character counting
@@ -1159,38 +1160,38 @@ var styles$t = {"textareaContainer":"TextArea-module_textareaContainer__AquFj","
1159
1160
  function TextArea({ label, value, onChange, rows = 5, placeholder = "", required = false, maxLength, disabled = false, error = false, success = false, loading = false, focusMode = false, compact = false, className = "" }) {
1160
1161
  const textareaId = `textarea-${Math.random().toString(36).substr(2, 9)}`;
1161
1162
  const getContainerClassName = () => {
1162
- const classes = [styles$t.textareaContainer];
1163
+ const classes = [styles$u.textareaContainer];
1163
1164
  if (error)
1164
- classes.push(styles$t.error);
1165
+ classes.push(styles$u.error);
1165
1166
  if (success)
1166
- classes.push(styles$t.success);
1167
+ classes.push(styles$u.success);
1167
1168
  if (loading)
1168
- classes.push(styles$t.loading);
1169
+ classes.push(styles$u.loading);
1169
1170
  if (focusMode)
1170
- classes.push(styles$t.focusMode);
1171
+ classes.push(styles$u.focusMode);
1171
1172
  if (compact)
1172
- classes.push(styles$t.compact);
1173
+ classes.push(styles$u.compact);
1173
1174
  if (className)
1174
1175
  classes.push(className);
1175
1176
  return classes.join(' ');
1176
1177
  };
1177
1178
  const getCharCountClassName = () => {
1178
1179
  if (!maxLength)
1179
- return styles$t.characterCount;
1180
- const classes = [styles$t.characterCount];
1180
+ return styles$u.characterCount;
1181
+ const classes = [styles$u.characterCount];
1181
1182
  const percentage = (value.length / maxLength) * 100;
1182
1183
  if (percentage >= 100) {
1183
- classes.push(styles$t.atLimit);
1184
+ classes.push(styles$u.atLimit);
1184
1185
  }
1185
1186
  else if (percentage >= 80) {
1186
- classes.push(styles$t.nearLimit);
1187
+ classes.push(styles$u.nearLimit);
1187
1188
  }
1188
1189
  return classes.join(' ');
1189
1190
  };
1190
- return (jsxs("div", { className: getContainerClassName(), children: [label && (jsxs("label", { htmlFor: textareaId, className: styles$t.textareaLabel, children: [label, required && jsx("span", { className: styles$t.requiredIndicator, children: "*" })] })), jsx("textarea", { id: textareaId, value: value, onChange: (e) => onChange(e.target.value), rows: rows, placeholder: placeholder, maxLength: maxLength, className: styles$t.textareaInput, "aria-required": required, disabled: disabled || loading, "aria-invalid": error }), maxLength && (jsxs("div", { className: getCharCountClassName(), children: [jsx("span", { children: value.length }), jsx("span", { style: { opacity: 0.7 }, children: " / " }), jsx("span", { children: maxLength })] }))] }));
1191
+ return (jsxs("div", { className: getContainerClassName(), children: [label && (jsxs("label", { htmlFor: textareaId, className: styles$u.textareaLabel, children: [label, required && jsx("span", { className: styles$u.requiredIndicator, children: "*" })] })), jsx("textarea", { id: textareaId, value: value, onChange: (e) => onChange(e.target.value), rows: rows, placeholder: placeholder, maxLength: maxLength, className: styles$u.textareaInput, "aria-required": required, disabled: disabled || loading, "aria-invalid": error }), maxLength && (jsxs("div", { className: getCharCountClassName(), children: [jsx("span", { children: value.length }), jsx("span", { style: { opacity: 0.7 }, children: " / " }), jsx("span", { children: maxLength })] }))] }));
1191
1192
  }
1192
1193
 
1193
- var styles$s = {"textInput":"TextInput-module_textInput__b2LVM","required":"TextInput-module_required__7uLiM","inputError":"TextInput-module_inputError__QD0a-","errorMessage":"TextInput-module_errorMessage__nIDoQ","success":"TextInput-module_success__KbSS3","loading":"TextInput-module_loading__qXaca","withIcon":"TextInput-module_withIcon__-8swm","inputIcon":"TextInput-module_inputIcon__B4czN","withAction":"TextInput-module_withAction__JD3ku","actionButton":"TextInput-module_actionButton__zFJel"};
1194
+ var styles$t = {"textInput":"TextInput-module_textInput__b2LVM","required":"TextInput-module_required__7uLiM","inputError":"TextInput-module_inputError__QD0a-","errorMessage":"TextInput-module_errorMessage__nIDoQ","success":"TextInput-module_success__KbSS3","loading":"TextInput-module_loading__qXaca","withIcon":"TextInput-module_withIcon__-8swm","inputIcon":"TextInput-module_inputIcon__B4czN","withAction":"TextInput-module_withAction__JD3ku","actionButton":"TextInput-module_actionButton__zFJel"};
1194
1195
 
1195
1196
  /**
1196
1197
  * TextInput component - A versatile text input field with label and error handling
@@ -1227,21 +1228,21 @@ function TextInput({ label, value, onChange, type = "text", onBlur, placeholder,
1227
1228
  const { handlers, playSound } = useComponentSound(soundConfig);
1228
1229
  const prevValueRef = React.useRef(value);
1229
1230
  const getContainerClassName = () => {
1230
- const classes = [styles$s.textInput];
1231
+ const classes = [styles$t.textInput];
1231
1232
  if (success)
1232
- classes.push(styles$s.success);
1233
+ classes.push(styles$t.success);
1233
1234
  if (loading)
1234
- classes.push(styles$s.loading);
1235
+ classes.push(styles$t.loading);
1235
1236
  if (icon)
1236
- classes.push(styles$s.withIcon);
1237
+ classes.push(styles$t.withIcon);
1237
1238
  if (actionButton)
1238
- classes.push(styles$s.withAction);
1239
+ classes.push(styles$t.withAction);
1239
1240
  return classes.join(' ');
1240
1241
  };
1241
1242
  React.useEffect(() => {
1242
1243
  prevValueRef.current = value;
1243
1244
  }, [value]);
1244
- return (jsxs("div", { className: getContainerClassName(), children: [jsxs("label", { htmlFor: inputId, children: [label, required && jsx("span", { className: styles$s.required, children: "*" })] }), jsxs("div", { style: { position: 'relative' }, children: [icon && jsx("div", { className: styles$s.inputIcon, children: icon }), jsx("input", { id: inputId, type: type, value: value, onChange: (e) => {
1245
+ return (jsxs("div", { className: getContainerClassName(), children: [jsxs("label", { htmlFor: inputId, children: [label, required && jsx("span", { className: styles$t.required, children: "*" })] }), jsxs("div", { style: { position: 'relative' }, children: [icon && jsx("div", { className: styles$t.inputIcon, children: icon }), jsx("input", { id: inputId, type: type, value: value, onChange: (e) => {
1245
1246
  const newValue = e.target.value;
1246
1247
  const oldValue = prevValueRef.current;
1247
1248
  onChange(newValue);
@@ -1257,13 +1258,13 @@ function TextInput({ label, value, onChange, type = "text", onBlur, placeholder,
1257
1258
  if (error && soundConfig?.onError) {
1258
1259
  playSound(typeof soundConfig.onError === 'string' ? soundConfig.onError : 'error');
1259
1260
  }
1260
- }, onBlur: onBlur, placeholder: placeholder, className: error ? styles$s.inputError : '', "aria-invalid": !!error, "aria-describedby": error ? `${inputId}-error` : undefined, disabled: disabled || loading, maxLength: maxLength, autoComplete: autoComplete }), actionButton && (jsx("button", { type: "button", className: styles$s.actionButton, onClick: () => {
1261
+ }, onBlur: onBlur, placeholder: placeholder, className: error ? styles$t.inputError : '', "aria-invalid": !!error, "aria-describedby": error ? `${inputId}-error` : undefined, disabled: disabled || loading, maxLength: maxLength, autoComplete: autoComplete }), actionButton && (jsx("button", { type: "button", className: styles$t.actionButton, onClick: () => {
1261
1262
  handlers.onClick?.();
1262
1263
  actionButton.onClick();
1263
- }, disabled: disabled || loading, children: actionButton.label }))] }), error && (jsx("span", { id: `${inputId}-error`, className: styles$s.errorMessage, children: error }))] }));
1264
+ }, disabled: disabled || loading, children: actionButton.label }))] }), error && (jsx("span", { id: `${inputId}-error`, className: styles$t.errorMessage, children: error }))] }));
1264
1265
  }
1265
1266
 
1266
- var styles$r = {"toggleContainer":"Toggle-module_toggleContainer__QxqQb","toggleButton":"Toggle-module_toggleButton__WUUf-","active":"Toggle-module_active__fX6Io"};
1267
+ var styles$s = {"toggleContainer":"Toggle-module_toggleContainer__QxqQb","toggleButton":"Toggle-module_toggleButton__WUUf-","active":"Toggle-module_active__fX6Io"};
1267
1268
 
1268
1269
  /**
1269
1270
  * Toggle Component
@@ -1324,7 +1325,7 @@ function Toggle(props) {
1324
1325
  justifyContent: 'center',
1325
1326
  ...style
1326
1327
  };
1327
- return (jsxs("div", { className: `${styles$r.toggleContainer} ${className || ''}`, children: [jsxs(motion.button, { ref: leftButtonRef, className: `${styles$r.toggleButton} ${!isOn ? styles$r.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
1328
+ return (jsxs("div", { className: `${styles$s.toggleContainer} ${className || ''}`, children: [jsxs(motion.button, { ref: leftButtonRef, className: `${styles$s.toggleButton} ${!isOn ? styles$s.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
1328
1329
  if (!isOn) {
1329
1330
  // Already on left
1330
1331
  if (enableCelebration) {
@@ -1339,7 +1340,7 @@ function Toggle(props) {
1339
1340
  playSound('toggle');
1340
1341
  }
1341
1342
  onToggle(false);
1342
- }, onMouseEnter: () => handlers.onMouseEnter?.(), style: buttonStyle, children: [jsx(motion.div, { animate: { scale: !isOn ? 1.1 : 1, rotate: !isOn ? [0, -5, 5, 0] : 0 }, transition: { duration: 0.3 }, children: leftIcon }), leftLabel] }), jsxs(motion.button, { ref: rightButtonRef, className: `${styles$r.toggleButton} ${isOn ? styles$r.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
1343
+ }, onMouseEnter: () => handlers.onMouseEnter?.(), style: buttonStyle, children: [jsx(motion.div, { animate: { scale: !isOn ? 1.1 : 1, rotate: !isOn ? [0, -5, 5, 0] : 0 }, transition: { duration: 0.3 }, children: leftIcon }), leftLabel] }), jsxs(motion.button, { ref: rightButtonRef, className: `${styles$s.toggleButton} ${isOn ? styles$s.active : ''}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, transition: { type: "spring", stiffness: 400, damping: 17 }, onClick: () => {
1343
1344
  if (isOn) {
1344
1345
  // Already on right
1345
1346
  if (enableCelebration) {
@@ -1357,7 +1358,7 @@ function Toggle(props) {
1357
1358
  }, onMouseEnter: () => handlers.onMouseEnter?.(), style: buttonStyle, children: [jsx(motion.div, { animate: { scale: isOn ? 1.1 : 1, rotate: isOn ? [0, 5, -5, 0] : 0 }, transition: { duration: 0.3 }, children: rightIcon }), rightLabel] })] }));
1358
1359
  }
1359
1360
 
1360
- var styles$q = {"container":"NumberStepper-module_container__WSGlU","header":"NumberStepper-module_header__qXI1Y","icon":"NumberStepper-module_icon__vHgsw","label":"NumberStepper-module_label__AYr3g","stepper":"NumberStepper-module_stepper__oQhTp","disabled":"NumberStepper-module_disabled__kGB-g","button":"NumberStepper-module_button__YcjRt","buttonIcon":"NumberStepper-module_buttonIcon__odXec","valueContainer":"NumberStepper-module_valueContainer__87w2D","valueWrapper":"NumberStepper-module_valueWrapper__TH65N","value":"NumberStepper-module_value__BxJeD","limits":"NumberStepper-module_limits__-UrRE","limit":"NumberStepper-module_limit__7nbIP","small":"NumberStepper-module_small__P-k96","large":"NumberStepper-module_large__Lz6lk","outlined":"NumberStepper-module_outlined__CIXv7","filled":"NumberStepper-module_filled__IxOg-","minimal":"NumberStepper-module_minimal__y47-W","custom":"NumberStepper-module_custom__XGSVg","vertical":"NumberStepper-module_vertical__nBcL7","tally":"NumberStepper-module_tally__aO2zq","tallyRow":"NumberStepper-module_tallyRow__wcrtj","tallyButton":"NumberStepper-module_tallyButton__EUTXY","tallyButtonIcon":"NumberStepper-module_tallyButtonIcon__A3fDQ","tallyIcon":"NumberStepper-module_tallyIcon__ynB4C","tallyLabel":"NumberStepper-module_tallyLabel__kjXos","tallyBody":"NumberStepper-module_tallyBody__wDBsU","tallyMarks":"NumberStepper-module_tallyMarks__RU5qJ","tallyGroup":"NumberStepper-module_tallyGroup__0qUNo","tallyHint":"NumberStepper-module_tallyHint__zi-GM","tallyValue":"NumberStepper-module_tallyValue__CFJDk","pulse":"NumberStepper-module_pulse__51oUo"};
1361
+ var styles$r = {"container":"NumberStepper-module_container__WSGlU","header":"NumberStepper-module_header__qXI1Y","icon":"NumberStepper-module_icon__vHgsw","label":"NumberStepper-module_label__AYr3g","stepper":"NumberStepper-module_stepper__oQhTp","disabled":"NumberStepper-module_disabled__kGB-g","button":"NumberStepper-module_button__YcjRt","buttonIcon":"NumberStepper-module_buttonIcon__odXec","valueContainer":"NumberStepper-module_valueContainer__87w2D","valueWrapper":"NumberStepper-module_valueWrapper__TH65N","value":"NumberStepper-module_value__BxJeD","limits":"NumberStepper-module_limits__-UrRE","limit":"NumberStepper-module_limit__7nbIP","small":"NumberStepper-module_small__P-k96","large":"NumberStepper-module_large__Lz6lk","outlined":"NumberStepper-module_outlined__CIXv7","filled":"NumberStepper-module_filled__IxOg-","minimal":"NumberStepper-module_minimal__y47-W","custom":"NumberStepper-module_custom__XGSVg","vertical":"NumberStepper-module_vertical__nBcL7","tally":"NumberStepper-module_tally__aO2zq","tallyRow":"NumberStepper-module_tallyRow__wcrtj","tallyButton":"NumberStepper-module_tallyButton__EUTXY","tallyButtonIcon":"NumberStepper-module_tallyButtonIcon__A3fDQ","tallyIcon":"NumberStepper-module_tallyIcon__ynB4C","tallyLabel":"NumberStepper-module_tallyLabel__kjXos","tallyBody":"NumberStepper-module_tallyBody__wDBsU","tallyMarks":"NumberStepper-module_tallyMarks__RU5qJ","tallyGroup":"NumberStepper-module_tallyGroup__0qUNo","tallyHint":"NumberStepper-module_tallyHint__zi-GM","tallyValue":"NumberStepper-module_tallyValue__CFJDk","pulse":"NumberStepper-module_pulse__51oUo"};
1361
1362
 
1362
1363
  /**
1363
1364
  * NumberStepper Component
@@ -1544,33 +1545,33 @@ const NumberStepper = ({ value, onChange, min = -Infinity, max = Infinity, step
1544
1545
  setDisplayValue(finalValue);
1545
1546
  }, [displayValue, min, max, step, onChange]);
1546
1547
  const containerClasses = [
1547
- styles$q.container,
1548
- styles$q[size],
1549
- styles$q[variant],
1550
- layout === 'vertical' && styles$q.vertical,
1551
- disabled && styles$q.disabled,
1548
+ styles$r.container,
1549
+ styles$r[size],
1550
+ styles$r[variant],
1551
+ layout === 'vertical' && styles$r.vertical,
1552
+ disabled && styles$r.disabled,
1552
1553
  className
1553
1554
  ].filter(Boolean).join(' ');
1554
1555
  // Merge custom styles with hover states
1555
1556
  const [isButtonHovered, setIsButtonHovered] = useState(null);
1556
1557
  const isDecrementDisabled = disabled || value <= min;
1557
1558
  const isIncrementDisabled = disabled || value >= max;
1558
- const stepperContent = (jsxs("div", { className: styles$q.stepper, style: customStyles.stepper, onKeyDown: handleKeyDown, tabIndex: disabled ? -1 : 0, ...handlers, children: [jsx(motion.button, { className: styles$q.button, style: {
1559
+ const stepperContent = (jsxs("div", { className: styles$r.stepper, style: customStyles.stepper, onKeyDown: handleKeyDown, tabIndex: disabled ? -1 : 0, ...handlers, children: [jsx(motion.button, { className: styles$r.button, style: {
1559
1560
  ...customStyles.button,
1560
1561
  ...(isButtonHovered === 'decrement' && customStyles.buttonHover)
1561
- }, onMouseEnter: () => setIsButtonHovered('decrement'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleDecrement, disabled: isDecrementDisabled, whileTap: !isDecrementDisabled ? { scale: 0.9 } : undefined, animate: isDecrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Decrease value", children: customButtons.decrement || (showPlusMinus ? (jsx("span", { className: styles$q.buttonIcon, style: customStyles.buttonIcon, children: "\u2212" })) : (jsx("svg", { className: styles$q.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M15 18L9 12L15 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) }), jsx("div", { className: styles$q.valueContainer, style: customStyles.valueContainer, children: jsx(AnimatePresence, { mode: "wait", children: jsx(motion.div, { initial: { y: isIncrementing ? 10 : isDecrementing ? -10 : 0, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: isIncrementing ? -10 : isDecrementing ? 10 : 0, opacity: 0 }, transition: { duration: 0.15 }, className: styles$q.valueWrapper, children: jsx("input", { type: "text", className: styles$q.value, style: customStyles.value, value: displayValue, onChange: handleInputChange, onBlur: handleInputBlur, disabled: disabled, "aria-label": label || "Number input", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value }) }, value) }) }), jsx(motion.button, { className: styles$q.button, style: {
1562
+ }, onMouseEnter: () => setIsButtonHovered('decrement'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleDecrement, disabled: isDecrementDisabled, whileTap: !isDecrementDisabled ? { scale: 0.9 } : undefined, animate: isDecrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Decrease value", children: customButtons.decrement || (showPlusMinus ? (jsx("span", { className: styles$r.buttonIcon, style: customStyles.buttonIcon, children: "\u2212" })) : (jsx("svg", { className: styles$r.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M15 18L9 12L15 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) }), jsx("div", { className: styles$r.valueContainer, style: customStyles.valueContainer, children: jsx(AnimatePresence, { mode: "wait", children: jsx(motion.div, { initial: { y: isIncrementing ? 10 : isDecrementing ? -10 : 0, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: isIncrementing ? -10 : isDecrementing ? 10 : 0, opacity: 0 }, transition: { duration: 0.15 }, className: styles$r.valueWrapper, children: jsx("input", { type: "text", className: styles$r.value, style: customStyles.value, value: displayValue, onChange: handleInputChange, onBlur: handleInputBlur, disabled: disabled, "aria-label": label || "Number input", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value }) }, value) }) }), jsx(motion.button, { className: styles$r.button, style: {
1562
1563
  ...customStyles.button,
1563
1564
  ...(isButtonHovered === 'increment' && customStyles.buttonHover)
1564
- }, onMouseEnter: () => setIsButtonHovered('increment'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleIncrement, disabled: isIncrementDisabled, whileTap: !isIncrementDisabled ? { scale: 0.9 } : undefined, animate: isIncrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Increase value", children: customButtons.increment || (showPlusMinus ? (jsx("span", { className: styles$q.buttonIcon, style: customStyles.buttonIcon, children: "+" })) : (jsx("svg", { className: styles$q.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M9 18L15 12L9 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) })] }));
1565
+ }, onMouseEnter: () => setIsButtonHovered('increment'), onMouseLeave: () => setIsButtonHovered(null), onClick: handleIncrement, disabled: isIncrementDisabled, whileTap: !isIncrementDisabled ? { scale: 0.9 } : undefined, animate: isIncrementing ? { scale: [1, 1.2, 1] } : undefined, transition: { duration: 0.2 }, "aria-label": "Increase value", children: customButtons.increment || (showPlusMinus ? (jsx("span", { className: styles$r.buttonIcon, style: customStyles.buttonIcon, children: "+" })) : (jsx("svg", { className: styles$r.buttonIcon, style: customStyles.buttonIcon, viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M9 18L15 12L9 6", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) }))) })] }));
1565
1566
  // ── Tally variant: pen-stroke counter with explicit +/- buttons.
1566
1567
  if (variant === 'tally') {
1567
1568
  return (jsx(TallyRow, { value: value, label: label, icon: icon, color: color, disabled: disabled, emptyHint: tallyEmptyHint, className: containerClasses, customStyles: customStyles, onIncrement: handleIncrement, onDecrement: handleDecrement, ariaLabel: label || 'Tally counter', isDecrementDisabled: isDecrementDisabled, isIncrementDisabled: isIncrementDisabled }));
1568
1569
  }
1569
1570
  // For custom variant with horizontal layout, render differently
1570
1571
  if (variant === 'custom' && (label || icon)) {
1571
- return (jsxs("div", { className: containerClasses, style: { ...customStyles.container, display: 'flex', alignItems: 'center' }, children: [jsxs("div", { className: styles$q.header, style: { ...customStyles.header, flex: 1, marginBottom: 0 }, children: [icon && jsx("span", { className: styles$q.icon, style: customStyles.icon, children: icon }), label && jsx("label", { className: styles$q.label, style: customStyles.label, children: label })] }), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxs("div", { className: styles$q.limits, style: customStyles.limits, children: [jsx("span", { className: styles$q.limit, children: min !== -Infinity && `Min: ${min}` }), jsx("span", { className: styles$q.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
1572
+ return (jsxs("div", { className: containerClasses, style: { ...customStyles.container, display: 'flex', alignItems: 'center' }, children: [jsxs("div", { className: styles$r.header, style: { ...customStyles.header, flex: 1, marginBottom: 0 }, children: [icon && jsx("span", { className: styles$r.icon, style: customStyles.icon, children: icon }), label && jsx("label", { className: styles$r.label, style: customStyles.label, children: label })] }), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxs("div", { className: styles$r.limits, style: customStyles.limits, children: [jsx("span", { className: styles$r.limit, children: min !== -Infinity && `Min: ${min}` }), jsx("span", { className: styles$r.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
1572
1573
  }
1573
- return (jsxs("div", { className: containerClasses, style: customStyles.container, children: [(label || icon) && (jsxs("div", { className: styles$q.header, style: customStyles.header, children: [icon && jsx("span", { className: styles$q.icon, style: customStyles.icon, children: icon }), label && jsx("label", { className: styles$q.label, style: customStyles.label, children: label })] })), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxs("div", { className: styles$q.limits, style: customStyles.limits, children: [jsx("span", { className: styles$q.limit, children: min !== -Infinity && `Min: ${min}` }), jsx("span", { className: styles$q.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
1574
+ return (jsxs("div", { className: containerClasses, style: customStyles.container, children: [(label || icon) && (jsxs("div", { className: styles$r.header, style: customStyles.header, children: [icon && jsx("span", { className: styles$r.icon, style: customStyles.icon, children: icon }), label && jsx("label", { className: styles$r.label, style: customStyles.label, children: label })] })), stepperContent, !hideLimits && (min !== -Infinity || max !== Infinity) && (jsxs("div", { className: styles$r.limits, style: customStyles.limits, children: [jsx("span", { className: styles$r.limit, children: min !== -Infinity && `Min: ${min}` }), jsx("span", { className: styles$r.limit, children: max !== Infinity && `Max: ${max}` })] }))] }));
1574
1575
  };
1575
1576
  const TallyMarks = ({ count, color }) => {
1576
1577
  const groups = [];
@@ -1580,14 +1581,14 @@ const TallyMarks = ({ count, color }) => {
1580
1581
  groups.push(n);
1581
1582
  left -= n;
1582
1583
  }
1583
- return (jsx("div", { className: styles$q.tallyMarks, "aria-hidden": "true", children: groups.map((n, i) => (jsxs("svg", { className: styles$q.tallyGroup, width: "38", height: "22", viewBox: "0 0 38 22", children: [[0, 1, 2, 3].slice(0, Math.min(4, n)).map((j) => (jsx("line", { x1: 4 + j * 6, y1: "2", x2: 4 + j * 6, y2: "20", stroke: color, strokeWidth: "2", strokeLinecap: "round" }, j))), n === 5 && (jsx("line", { x1: "1", y1: "18", x2: "27", y2: "4", stroke: color, strokeWidth: "2", strokeLinecap: "round" }))] }, i))) }));
1584
+ return (jsx("div", { className: styles$r.tallyMarks, "aria-hidden": "true", children: groups.map((n, i) => (jsxs("svg", { className: styles$r.tallyGroup, width: "38", height: "22", viewBox: "0 0 38 22", children: [[0, 1, 2, 3].slice(0, Math.min(4, n)).map((j) => (jsx("line", { x1: 4 + j * 6, y1: "2", x2: 4 + j * 6, y2: "20", stroke: color, strokeWidth: "2", strokeLinecap: "round" }, j))), n === 5 && (jsx("line", { x1: "1", y1: "18", x2: "27", y2: "4", stroke: color, strokeWidth: "2", strokeLinecap: "round" }))] }, i))) }));
1584
1585
  };
1585
1586
  const TallyRow = ({ value, label, icon, color, disabled, emptyHint, className, customStyles, onIncrement, onDecrement, ariaLabel, isDecrementDisabled, isIncrementDisabled }) => {
1586
1587
  const resolvedColor = color || 'currentColor';
1587
- return (jsxs("div", { "aria-label": ariaLabel, "aria-disabled": disabled || undefined, className: `${className} ${styles$q.tallyRow}`, style: customStyles.container, children: [icon && (jsx("span", { className: styles$q.tallyIcon, style: { color: resolvedColor, ...customStyles.icon }, children: icon })), label && (jsx("span", { className: styles$q.tallyLabel, style: customStyles.label, children: label })), jsx("div", { className: styles$q.tallyBody, children: value <= 0 ? (jsx("span", { className: styles$q.tallyHint, children: emptyHint })) : (jsx(TallyMarks, { count: value, color: resolvedColor })) }), jsx("button", { type: "button", className: styles$q.tallyButton, onClick: onDecrement, disabled: isDecrementDisabled, "aria-label": `Decrease ${label || 'value'}`, children: jsx("span", { className: styles$q.tallyButtonIcon, children: "\u2212" }) }), jsx("span", { className: styles$q.tallyValue, style: { color: resolvedColor, ...customStyles.value }, "aria-hidden": "true", children: value }), jsx("button", { type: "button", className: styles$q.tallyButton, onClick: onIncrement, disabled: isIncrementDisabled, "aria-label": `Increase ${label || 'value'}`, children: jsx("span", { className: styles$q.tallyButtonIcon, children: "+" }) })] }));
1588
+ return (jsxs("div", { "aria-label": ariaLabel, "aria-disabled": disabled || undefined, className: `${className} ${styles$r.tallyRow}`, style: customStyles.container, children: [icon && (jsx("span", { className: styles$r.tallyIcon, style: { color: resolvedColor, ...customStyles.icon }, children: icon })), label && (jsx("span", { className: styles$r.tallyLabel, style: customStyles.label, children: label })), jsx("div", { className: styles$r.tallyBody, children: value <= 0 ? (jsx("span", { className: styles$r.tallyHint, children: emptyHint })) : (jsx(TallyMarks, { count: value, color: resolvedColor })) }), jsx("button", { type: "button", className: styles$r.tallyButton, onClick: onDecrement, disabled: isDecrementDisabled, "aria-label": `Decrease ${label || 'value'}`, children: jsx("span", { className: styles$r.tallyButtonIcon, children: "\u2212" }) }), jsx("span", { className: styles$r.tallyValue, style: { color: resolvedColor, ...customStyles.value }, "aria-hidden": "true", children: value }), jsx("button", { type: "button", className: styles$r.tallyButton, onClick: onIncrement, disabled: isIncrementDisabled, "aria-label": `Increase ${label || 'value'}`, children: jsx("span", { className: styles$r.tallyButtonIcon, children: "+" }) })] }));
1588
1589
  };
1589
1590
 
1590
- var styles$p = {"button":"ToggleButton-module_button__DTuyY","background":"ToggleButton-module_background__NwfTp","content":"ToggleButton-module_content__NHqIN","iconWrapper":"ToggleButton-module_iconWrapper__yN4sP","icon":"ToggleButton-module_icon__r8juX","label":"ToggleButton-module_label__4mPJP","hideMobile":"ToggleButton-module_hideMobile__GFAc3","checkmark":"ToggleButton-module_checkmark__ZJwf-","ripple":"ToggleButton-module_ripple__2-faB","small":"ToggleButton-module_small__MhfoN","large":"ToggleButton-module_large__A3naL","default":"ToggleButton-module_default__q8QaZ","active":"ToggleButton-module_active__4DjlR","outlined":"ToggleButton-module_outlined__OtqJB","filled":"ToggleButton-module_filled__LySNn","ghost":"ToggleButton-module_ghost__9KXcb","active-primary":"ToggleButton-module_active-primary__vXMP7","active-secondary":"ToggleButton-module_active-secondary__9Ttdx","active-success":"ToggleButton-module_active-success__oi0rr","active-danger":"ToggleButton-module_active-danger__VUdxr","active-warning":"ToggleButton-module_active-warning__77nSu","animation-scale":"ToggleButton-module_animation-scale__j-3mJ","scaleAnimation":"ToggleButton-module_scaleAnimation__Ms1j2","animation-rotate":"ToggleButton-module_animation-rotate__pBmfc","rotateAnimation":"ToggleButton-module_rotateAnimation__xWZJ5","animation-flip":"ToggleButton-module_animation-flip__ErAbm","flipAnimation":"ToggleButton-module_flipAnimation__qwDTb","disabled":"ToggleButton-module_disabled__Gv5ji"};
1591
+ var styles$q = {"button":"ToggleButton-module_button__DTuyY","background":"ToggleButton-module_background__NwfTp","content":"ToggleButton-module_content__NHqIN","iconWrapper":"ToggleButton-module_iconWrapper__yN4sP","icon":"ToggleButton-module_icon__r8juX","label":"ToggleButton-module_label__4mPJP","hideMobile":"ToggleButton-module_hideMobile__GFAc3","checkmark":"ToggleButton-module_checkmark__ZJwf-","ripple":"ToggleButton-module_ripple__2-faB","small":"ToggleButton-module_small__MhfoN","large":"ToggleButton-module_large__A3naL","default":"ToggleButton-module_default__q8QaZ","active":"ToggleButton-module_active__4DjlR","outlined":"ToggleButton-module_outlined__OtqJB","filled":"ToggleButton-module_filled__LySNn","ghost":"ToggleButton-module_ghost__9KXcb","active-primary":"ToggleButton-module_active-primary__vXMP7","active-secondary":"ToggleButton-module_active-secondary__9Ttdx","active-success":"ToggleButton-module_active-success__oi0rr","active-danger":"ToggleButton-module_active-danger__VUdxr","active-warning":"ToggleButton-module_active-warning__77nSu","animation-scale":"ToggleButton-module_animation-scale__j-3mJ","scaleAnimation":"ToggleButton-module_scaleAnimation__Ms1j2","animation-rotate":"ToggleButton-module_animation-rotate__pBmfc","rotateAnimation":"ToggleButton-module_rotateAnimation__xWZJ5","animation-flip":"ToggleButton-module_animation-flip__ErAbm","flipAnimation":"ToggleButton-module_flipAnimation__qwDTb","disabled":"ToggleButton-module_disabled__Gv5ji"};
1591
1592
 
1592
1593
  /**
1593
1594
  * ToggleButton Component
@@ -1626,18 +1627,18 @@ var styles$p = {"button":"ToggleButton-module_button__DTuyY","background":"Toggl
1626
1627
  const ToggleButton = ({ active, onClick, icon, label, disabled = false, size = 'medium', variant = 'default', activeColor = 'primary', showCheckmark = false, animation = 'scale', className = '', style = {}, color, tooltip, hideLabelOnMobile = false, soundConfig }) => {
1627
1628
  const { handlers, playSound } = useComponentSound(soundConfig);
1628
1629
  const buttonClasses = [
1629
- styles$p.button,
1630
- styles$p[size],
1631
- styles$p[variant],
1632
- active && styles$p.active,
1633
- active && styles$p[`active-${activeColor}`],
1634
- disabled && styles$p.disabled,
1635
- animation !== 'none' && styles$p[`animation-${animation}`],
1630
+ styles$q.button,
1631
+ styles$q[size],
1632
+ styles$q[variant],
1633
+ active && styles$q.active,
1634
+ active && styles$q[`active-${activeColor}`],
1635
+ disabled && styles$q.disabled,
1636
+ animation !== 'none' && styles$q[`animation-${animation}`],
1636
1637
  className
1637
1638
  ].filter(Boolean).join(' ');
1638
1639
  const labelClasses = [
1639
- styles$p.label,
1640
- hideLabelOnMobile && styles$p.hideMobile
1640
+ styles$q.label,
1641
+ hideLabelOnMobile && styles$q.hideMobile
1641
1642
  ].filter(Boolean).join(' ');
1642
1643
  const iconVariants = {
1643
1644
  scale: {
@@ -1701,10 +1702,10 @@ const ToggleButton = ({ active, onClick, icon, label, disabled = false, size = '
1701
1702
  return (jsxs(motion.button, { className: buttonClasses, style: dynamicStyle, onClick: () => {
1702
1703
  playSound('toggle');
1703
1704
  onClick();
1704
- }, disabled: disabled, whileHover: !disabled ? { scale: 1.05 } : undefined, whileTap: !disabled ? { scale: 0.95 } : undefined, title: tooltip, "aria-pressed": active, "aria-label": label, ...handlers, children: [jsx(motion.div, { className: styles$p.background, variants: backgroundVariants, initial: "inactive", animate: active ? "active" : "inactive" }), jsxs("div", { className: styles$p.content, children: [icon && (jsx(motion.div, { className: styles$p.iconWrapper, variants: iconVariants[animation], initial: "inactive", animate: active ? "active" : "inactive", transition: { duration: 0.3 }, children: typeof icon === 'string' ? (jsx("span", { className: styles$p.icon, children: icon })) : (jsx("div", { className: styles$p.icon, children: icon })) })), label && jsx("span", { className: labelClasses, children: label }), jsx(AnimatePresence, { children: showCheckmark && active && (jsx(motion.div, { className: styles$p.checkmark, variants: checkmarkVariants, initial: "hidden", animate: "visible", exit: "hidden", children: jsx("svg", { viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M20 6L9 17L4 12", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" }) }) })) })] }), jsx(AnimatePresence, { children: active && (jsx(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 } })) })] }));
1705
+ }, disabled: disabled, whileHover: !disabled ? { scale: 1.05 } : undefined, whileTap: !disabled ? { scale: 0.95 } : undefined, title: tooltip, "aria-pressed": active, "aria-label": label, ...handlers, children: [jsx(motion.div, { className: styles$q.background, variants: backgroundVariants, initial: "inactive", animate: active ? "active" : "inactive" }), jsxs("div", { className: styles$q.content, children: [icon && (jsx(motion.div, { className: styles$q.iconWrapper, variants: iconVariants[animation], initial: "inactive", animate: active ? "active" : "inactive", transition: { duration: 0.3 }, children: typeof icon === 'string' ? (jsx("span", { className: styles$q.icon, children: icon })) : (jsx("div", { className: styles$q.icon, children: icon })) })), label && jsx("span", { className: labelClasses, children: label }), jsx(AnimatePresence, { children: showCheckmark && active && (jsx(motion.div, { className: styles$q.checkmark, variants: checkmarkVariants, initial: "hidden", animate: "visible", exit: "hidden", children: jsx("svg", { viewBox: "0 0 24 24", fill: "none", children: jsx("path", { d: "M20 6L9 17L4 12", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round" }) }) })) })] }), jsx(AnimatePresence, { children: active && (jsx(motion.div, { className: styles$q.ripple, initial: { scale: 0, opacity: 0.5 }, animate: { scale: 2, opacity: 0 }, exit: { scale: 0, opacity: 0 }, transition: { duration: 0.6 } })) })] }));
1705
1706
  };
1706
1707
 
1707
- 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"};
1708
+ var styles$p = {"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"};
1708
1709
 
1709
1710
  /**
1710
1711
  * Slider component — responsive, accessible range input with a styled track, fill, and thumb.
@@ -1712,7 +1713,7 @@ var styles$o = {"slider":"Slider-module_slider__RD4G7","label":"Slider-module_la
1712
1713
  * The thumb is inset at the track endpoints so it never overflows. Drag state is tracked
1713
1714
  * via pointer events (works on mouse, touch, and pen).
1714
1715
  */
1715
- 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, }) {
1716
+ 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', }) {
1716
1717
  const { handlers, playSound } = useComponentSound(soundConfig);
1717
1718
  const [isDragging, setIsDragging] = useState(false);
1718
1719
  const { colors = {}, size = 'md' } = config;
@@ -1743,11 +1744,33 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
1743
1744
  };
1744
1745
  const endDrag = () => setIsDragging(false);
1745
1746
  const dynamicColor = getDynamicColor();
1746
- const sizeClass = styles$o[`size-${size}`];
1747
- const stateClass = disabled ? styles$o.disabled : '';
1748
- const dragClass = isDragging ? styles$o.dragging : '';
1747
+ const sizeClass = styles$p[`size-${size}`];
1748
+ const stateClass = disabled ? styles$p.disabled : '';
1749
+ const dragClass = isDragging ? styles$p.dragging : '';
1749
1750
  if (loading) {
1750
- return (jsxs("div", { className: `${styles$o.slider} ${sizeClass} ${styles$o.loading} ${className}`, style: style, children: [label && jsx("label", { className: styles$o.label, children: label }), jsx("div", { className: styles$o.loadingTrack, children: jsx(motion.div, { className: styles$o.loadingIndicator, animate: { x: ['-100%', '200%'] }, transition: { repeat: Infinity, duration: 1.5, ease: 'easeInOut' } }) })] }));
1751
+ return (jsxs("div", { className: `${styles$p.slider} ${sizeClass} ${styles$p.loading} ${className}`, style: style, children: [label && jsx("label", { className: styles$p.label, children: label }), jsx("div", { className: styles$p.loadingTrack, children: jsx(motion.div, { className: styles$p.loadingIndicator, animate: { x: ['-100%', '200%'] }, transition: { repeat: Infinity, duration: 1.5, ease: 'easeInOut' } }) })] }));
1752
+ }
1753
+ if (variant === 'dots') {
1754
+ const dotCount = Math.max(0, Math.floor((max - min) / step));
1755
+ const dotValues = Array.from({ length: dotCount }, (_, i) => min + (i + 1) * step);
1756
+ const handleDotClick = (dotValue) => {
1757
+ if (disabled || loading)
1758
+ return;
1759
+ playSound('click');
1760
+ const next = value === dotValue ? dotValue - step : dotValue;
1761
+ onChange(Math.max(min, next));
1762
+ };
1763
+ return (jsxs("div", { className: `${styles$p.slider} ${sizeClass} ${stateClass} ${className}`, style: style, ...handlers, children: [label && jsx("label", { className: styles$p.label, children: label }), jsx("div", { className: styles$p.dotsContainer, role: "slider", "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": value, "aria-label": label, children: dotValues.map((dotValue) => {
1764
+ const filled = dotValue <= value;
1765
+ return (jsx("button", { type: "button", className: `${styles$p.dot} ${filled ? styles$p.dotFilled : ''}`, style: filled
1766
+ ? {
1767
+ backgroundColor: dynamicColor,
1768
+ borderColor: dynamicColor,
1769
+ }
1770
+ : undefined, onClick: () => handleDotClick(dotValue), disabled: disabled, "aria-label": valueFormatter
1771
+ ? valueFormatter(dotValue)
1772
+ : `Set to ${dotValue}` }, dotValue));
1773
+ }) }), showValue && (jsx("div", { className: styles$p.valueDisplay, style: { color: dynamicColor }, children: formatValue(value) }))] }));
1751
1774
  }
1752
1775
  // Inset the thumb so its bounding box stays inside the track at 0/100%.
1753
1776
  // At percentage=0: marginLeft=0 → thumb flush-left. At 100%: marginLeft=-thumbSize → flush-right.
@@ -1755,11 +1778,11 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
1755
1778
  left: `${percentage}%`,
1756
1779
  marginLeft: `calc(var(--slider-thumb-size) * ${-percentage / 100})`,
1757
1780
  };
1758
- return (jsxs("div", { className: `${styles$o.slider} ${sizeClass} ${stateClass} ${dragClass} ${className}`, style: style, children: [label && jsx("label", { className: styles$o.label, children: label }), jsxs("div", { className: styles$o.sliderContainer, children: [jsx("div", { className: styles$o.track, children: jsx("div", { className: styles$o.fill, style: { width: `${percentage}%`, backgroundColor: dynamicColor } }) }), jsx("input", { type: "range", min: min, max: max, step: step, value: value, onChange: handleChange, onPointerDown: startDrag, onPointerUp: endDrag, onPointerCancel: endDrag, onBlur: endDrag, ...handlers, className: styles$o.input, disabled: disabled, "aria-label": label }), jsx("div", { className: styles$o.thumb, style: {
1781
+ return (jsxs("div", { className: `${styles$p.slider} ${sizeClass} ${stateClass} ${dragClass} ${className}`, style: style, children: [label && jsx("label", { className: styles$p.label, children: label }), jsxs("div", { className: styles$p.sliderContainer, children: [jsx("div", { className: styles$p.track, children: jsx("div", { className: styles$p.fill, style: { width: `${percentage}%`, backgroundColor: dynamicColor } }) }), jsx("input", { type: "range", min: min, max: max, step: step, value: value, onChange: handleChange, onPointerDown: startDrag, onPointerUp: endDrag, onPointerCancel: endDrag, onBlur: endDrag, ...handlers, className: styles$p.input, disabled: disabled, "aria-label": label }), jsx("div", { className: styles$p.thumb, style: {
1759
1782
  ...insetStyle,
1760
1783
  backgroundColor: dynamicColor,
1761
1784
  borderColor: colors.thumb || dynamicColor,
1762
- } }), jsx(AnimatePresence, { children: showTooltip && isDragging && !disabled && (jsxs(motion.div, { className: styles$o.tooltip, style: { ...insetStyle, backgroundColor: dynamicColor }, initial: { opacity: 0, y: 6, scale: 0.9 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: 6, scale: 0.9 }, transition: { duration: 0.15 }, children: [tooltipContent ? tooltipContent(value) : formatValue(value), jsx("div", { className: styles$o.tooltipArrow, style: { borderTopColor: dynamicColor } })] })) })] }), showValue && (jsx("div", { className: styles$o.valueDisplay, style: { color: dynamicColor }, children: formatValue(value) })), labels.length > 0 && (jsx("div", { className: styles$o.labelsContainer, children: labels.map((labelConfig, index) => {
1785
+ } }), jsx(AnimatePresence, { children: showTooltip && isDragging && !disabled && (jsxs(motion.div, { className: styles$p.tooltip, style: { ...insetStyle, backgroundColor: dynamicColor }, initial: { opacity: 0, y: 6, scale: 0.9 }, animate: { opacity: 1, y: 0, scale: 1 }, exit: { opacity: 0, y: 6, scale: 0.9 }, transition: { duration: 0.15 }, children: [tooltipContent ? tooltipContent(value) : formatValue(value), jsx("div", { className: styles$p.tooltipArrow, style: { borderTopColor: dynamicColor } })] })) })] }), showValue && (jsx("div", { className: styles$p.valueDisplay, style: { color: dynamicColor }, children: formatValue(value) })), labels.length > 0 && (jsx("div", { className: styles$p.labelsContainer, children: labels.map((labelConfig, index) => {
1763
1786
  let position = 0;
1764
1787
  if (labelConfig.position === 'start')
1765
1788
  position = 0;
@@ -1767,11 +1790,11 @@ function Slider({ value, onChange, min = 0, max = 100, step = 1, label, showValu
1767
1790
  position = 100;
1768
1791
  else if (typeof labelConfig.position === 'number')
1769
1792
  position = labelConfig.position;
1770
- return (jsx("div", { className: styles$o.labelItem, style: { left: `${position}%`, color: labelConfig.color }, children: labelConfig.label }, index));
1793
+ return (jsx("div", { className: styles$p.labelItem, style: { left: `${position}%`, color: labelConfig.color }, children: labelConfig.label }, index));
1771
1794
  }) }))] }));
1772
1795
  }
1773
1796
 
1774
- var styles$n = {"loadingContainer":"LoadingSpinner-module_loadingContainer__m5u51","fullScreen":"LoadingSpinner-module_fullScreen__TuAem","overlay":"LoadingSpinner-module_overlay__X7FTa","shimmer":"LoadingSpinner-module_shimmer__xw4AH","small":"LoadingSpinner-module_small__nq8A3","loadingText":"LoadingSpinner-module_loadingText__wWwna","medium":"LoadingSpinner-module_medium__3JC1S","large":"LoadingSpinner-module_large__4MvAc","dotsSpinner":"LoadingSpinner-module_dotsSpinner__PXtfs","dot1":"LoadingSpinner-module_dot1__5YKSi","dot2":"LoadingSpinner-module_dot2__l6Rbu","dot3":"LoadingSpinner-module_dot3__b9YPW","circleSpinner":"LoadingSpinner-module_circleSpinner__ZmmWs","pulseSpinner":"LoadingSpinner-module_pulseSpinner__wTtDJ","textGradient":"LoadingSpinner-module_textGradient__QDrTY","sparkleContainer":"LoadingSpinner-module_sparkleContainer__9XLJG","sparkle":"LoadingSpinner-module_sparkle__LtFFf"};
1797
+ var styles$o = {"loadingContainer":"LoadingSpinner-module_loadingContainer__m5u51","fullScreen":"LoadingSpinner-module_fullScreen__TuAem","overlay":"LoadingSpinner-module_overlay__X7FTa","shimmer":"LoadingSpinner-module_shimmer__xw4AH","small":"LoadingSpinner-module_small__nq8A3","loadingText":"LoadingSpinner-module_loadingText__wWwna","medium":"LoadingSpinner-module_medium__3JC1S","large":"LoadingSpinner-module_large__4MvAc","dotsSpinner":"LoadingSpinner-module_dotsSpinner__PXtfs","dot1":"LoadingSpinner-module_dot1__5YKSi","dot2":"LoadingSpinner-module_dot2__l6Rbu","dot3":"LoadingSpinner-module_dot3__b9YPW","circleSpinner":"LoadingSpinner-module_circleSpinner__ZmmWs","pulseSpinner":"LoadingSpinner-module_pulseSpinner__wTtDJ","textGradient":"LoadingSpinner-module_textGradient__QDrTY","sparkleContainer":"LoadingSpinner-module_sparkleContainer__9XLJG","sparkle":"LoadingSpinner-module_sparkle__LtFFf"};
1775
1798
 
1776
1799
  const defaultMessages = [
1777
1800
  'Loading your content...',
@@ -1855,22 +1878,22 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1855
1878
  }
1856
1879
  }, [currentMessageIndex, message, messagesToUse, showMessage]);
1857
1880
  const containerClasses = [
1858
- styles$n.loadingContainer,
1859
- styles$n[size],
1860
- styles$n[variant],
1861
- fullScreen && styles$n.fullScreen,
1862
- overlay && styles$n.overlay,
1881
+ styles$o.loadingContainer,
1882
+ styles$o[size],
1883
+ styles$o[variant],
1884
+ fullScreen && styles$o.fullScreen,
1885
+ overlay && styles$o.overlay,
1863
1886
  className
1864
1887
  ].filter(Boolean).join(' ');
1865
1888
  const customStyle = {
1866
1889
  ...(color && { '--spinner-color': color }),
1867
1890
  ...(backgroundColor && { '--spinner-background': backgroundColor }),
1868
1891
  };
1869
- const renderDots = () => (jsxs(motion.div, { className: styles$n.dotsSpinner, animate: { rotate: 360 }, transition: {
1892
+ const renderDots = () => (jsxs(motion.div, { className: styles$o.dotsSpinner, animate: { rotate: 360 }, transition: {
1870
1893
  duration: 2,
1871
1894
  repeat: Infinity,
1872
1895
  ease: 'linear'
1873
- }, children: [jsx(motion.div, { className: styles$n.dot1, animate: {
1896
+ }, children: [jsx(motion.div, { className: styles$o.dot1, animate: {
1874
1897
  scale: [1, 1.3, 1],
1875
1898
  y: [0, -6, 0]
1876
1899
  }, transition: {
@@ -1878,7 +1901,7 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1878
1901
  repeat: Infinity,
1879
1902
  ease: 'easeInOut',
1880
1903
  delay: 0
1881
- } }), jsx(motion.div, { className: styles$n.dot2, animate: {
1904
+ } }), jsx(motion.div, { className: styles$o.dot2, animate: {
1882
1905
  scale: [1, 1.3, 1],
1883
1906
  y: [0, -6, 0]
1884
1907
  }, transition: {
@@ -1886,7 +1909,7 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1886
1909
  repeat: Infinity,
1887
1910
  ease: 'easeInOut',
1888
1911
  delay: 0.5
1889
- } }), jsx(motion.div, { className: styles$n.dot3, animate: {
1912
+ } }), jsx(motion.div, { className: styles$o.dot3, animate: {
1890
1913
  scale: [1, 1.3, 1],
1891
1914
  y: [0, -6, 0]
1892
1915
  }, transition: {
@@ -1895,12 +1918,12 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1895
1918
  ease: 'easeInOut',
1896
1919
  delay: 1
1897
1920
  } })] }));
1898
- const renderSpinner = () => (jsx(motion.div, { className: styles$n.circleSpinner, animate: { rotate: 360 }, transition: {
1921
+ const renderSpinner = () => (jsx(motion.div, { className: styles$o.circleSpinner, animate: { rotate: 360 }, transition: {
1899
1922
  duration: 1,
1900
1923
  repeat: Infinity,
1901
1924
  ease: 'linear'
1902
1925
  } }));
1903
- const renderPulse = () => (jsx(motion.div, { className: styles$n.pulseSpinner, animate: {
1926
+ const renderPulse = () => (jsx(motion.div, { className: styles$o.pulseSpinner, animate: {
1904
1927
  scale: [1, 1.2, 1],
1905
1928
  opacity: [1, 0.7, 1]
1906
1929
  }, transition: {
@@ -1919,10 +1942,10 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1919
1942
  return renderDots();
1920
1943
  }
1921
1944
  };
1922
- return (jsxs("div", { className: containerClasses, style: customStyle, children: [renderSpinnerVariant(), showMessage && (jsx(AnimatePresence, { mode: "wait", children: jsx(motion.p, { className: styles$n.loadingText, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: {
1945
+ return (jsxs("div", { className: containerClasses, style: customStyle, children: [renderSpinnerVariant(), showMessage && (jsx(AnimatePresence, { mode: "wait", children: jsx(motion.p, { className: styles$o.loadingText, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: {
1923
1946
  duration: 0.4,
1924
1947
  ease: 'easeOut'
1925
- }, children: currentMessage }, currentMessage) })), showSparkles && (jsx("div", { className: styles$n.sparkleContainer, children: [...Array(4)].map((_, i) => (jsx(motion.div, { className: styles$n.sparkle, animate: {
1948
+ }, children: currentMessage }, currentMessage) })), showSparkles && (jsx("div", { className: styles$o.sparkleContainer, children: [...Array(4)].map((_, i) => (jsx(motion.div, { className: styles$o.sparkle, animate: {
1926
1949
  opacity: [0, 1, 0],
1927
1950
  scale: [0.5, 1, 0.5],
1928
1951
  rotate: [0, 180, 360]
@@ -1937,7 +1960,7 @@ const LoadingSpinner = ({ message, size = 'medium', variant = 'dots', className
1937
1960
  } }, i))) }))] }));
1938
1961
  };
1939
1962
 
1940
- var styles$m = {"wrapper":"DecryptedText-module_wrapper__tuLvf","srOnly":"DecryptedText-module_srOnly__A-K2T"};
1963
+ var styles$n = {"wrapper":"DecryptedText-module_wrapper__tuLvf","srOnly":"DecryptedText-module_srOnly__A-K2T"};
1941
1964
 
1942
1965
  /**
1943
1966
  * DecryptedText Component
@@ -2121,13 +2144,13 @@ const DecryptedText = ({ text, speed = 50, maxIterations = 10, sequential = fals
2121
2144
  onMouseLeave: () => setIsHovering(false),
2122
2145
  }
2123
2146
  : {};
2124
- return (jsxs(motion.span, { className: `${styles$m.wrapper} ${parentClassName}`, ref: containerRef, ...hoverProps, ...props, children: [jsx("span", { className: styles$m.srOnly, children: displayText }), jsx("span", { "aria-hidden": "true", children: displayText.split('').map((char, index) => {
2147
+ return (jsxs(motion.span, { className: `${styles$n.wrapper} ${parentClassName}`, ref: containerRef, ...hoverProps, ...props, children: [jsx("span", { className: styles$n.srOnly, children: displayText }), jsx("span", { "aria-hidden": "true", children: displayText.split('').map((char, index) => {
2125
2148
  const isRevealedOrDone = revealedIndices.has(index) || !isScrambling || !isHovering;
2126
2149
  return (jsx("span", { className: isRevealedOrDone ? className : encryptedClassName, children: char }, index));
2127
2150
  }) })] }));
2128
2151
  };
2129
2152
 
2130
- var styles$l = {"arrayInput":"ArrayInput-module_arrayInput__q1x7A","arrayInputLabel":"ArrayInput-module_arrayInputLabel__HyUC7","arrayInputItem":"ArrayInput-module_arrayInputItem__bFtgl","inputWrapper":"ArrayInput-module_inputWrapper__ajhbW","input":"ArrayInput-module_input__1uywi","complexItem":"ArrayInput-module_complexItem__zr-Q-","fieldsWrapper":"ArrayInput-module_fieldsWrapper__7BVPa","removeButton":"ArrayInput-module_removeButton__gYf8Y","addButton":"ArrayInput-module_addButton__mia29"};
2153
+ var styles$m = {"arrayInput":"ArrayInput-module_arrayInput__q1x7A","arrayInputLabel":"ArrayInput-module_arrayInputLabel__HyUC7","arrayInputItem":"ArrayInput-module_arrayInputItem__bFtgl","inputWrapper":"ArrayInput-module_inputWrapper__ajhbW","input":"ArrayInput-module_input__1uywi","complexItem":"ArrayInput-module_complexItem__zr-Q-","fieldsWrapper":"ArrayInput-module_fieldsWrapper__7BVPa","removeButton":"ArrayInput-module_removeButton__gYf8Y","addButton":"ArrayInput-module_addButton__mia29"};
2131
2154
 
2132
2155
  /**
2133
2156
  * ArrayInput component - Versatile dynamic list manager
@@ -2194,11 +2217,11 @@ function SimpleArrayInput({ label, values, onChange, placeholder, itemStyle, inp
2194
2217
  itemIdsRef.current.splice(index, 1);
2195
2218
  onChange(newValues);
2196
2219
  };
2197
- return (jsxs("div", { className: styles$l.arrayInput, children: [jsx("h3", { className: styles$l.arrayInputLabel, children: label }), jsx("div", { children: jsx(AnimatePresence, { children: values.map((value, index) => (jsxs(motion.div, { className: styles$l.arrayInputItem, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
2220
+ return (jsxs("div", { className: styles$m.arrayInput, children: [jsx("h3", { className: styles$m.arrayInputLabel, children: label }), jsx("div", { children: jsx(AnimatePresence, { children: values.map((value, index) => (jsxs(motion.div, { className: styles$m.arrayInputItem, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
2198
2221
  duration: 0.3,
2199
2222
  ease: "easeInOut",
2200
2223
  layout: { duration: 0.2 }
2201
- }, children: [jsx("div", { className: styles$l.inputWrapper, children: multiline ? (jsx("div", { style: inputStyle, children: jsx(TextArea, { label: "", value: value, onChange: (newValue) => handleChange(index, newValue), placeholder: placeholder, rows: rows, compact: true }) })) : (jsx("input", { type: "text", value: value, onChange: (e) => handleChange(index, e.target.value), placeholder: placeholder, className: styles$l.input, style: inputStyle })) }), jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$l.removeButton, children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, itemIdsRef.current[index]))) }) }), jsx(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$l.addButton, children: label })] }));
2224
+ }, children: [jsx("div", { className: styles$m.inputWrapper, children: multiline ? (jsx("div", { style: inputStyle, children: jsx(TextArea, { label: "", value: value, onChange: (newValue) => handleChange(index, newValue), placeholder: placeholder, rows: rows, compact: true }) })) : (jsx("input", { type: "text", value: value, onChange: (e) => handleChange(index, e.target.value), placeholder: placeholder, className: styles$m.input, style: inputStyle })) }), jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$m.removeButton, children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, itemIdsRef.current[index]))) }) }), jsx(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$m.addButton, children: label })] }));
2202
2225
  }
2203
2226
  // Complex object array implementation
2204
2227
  function ComplexArrayInput({ label, values, onChange, fields, getKey, itemStyle, inputStyle, buttonVariant = 'primary' }) {
@@ -2223,14 +2246,14 @@ function ComplexArrayInput({ label, values, onChange, fields, getKey, itemStyle,
2223
2246
  // Generate key from all field values
2224
2247
  return fields.map(f => item[f.name] || '').join('-') + `-${index}`;
2225
2248
  };
2226
- return (jsxs("div", { className: styles$l.arrayInput, children: [jsx("h3", { className: styles$l.arrayInputLabel, children: label }), jsx("div", { children: jsx(AnimatePresence, { children: values.map((value, index) => (jsxs(motion.div, { className: `${styles$l.arrayInputItem} ${fields.length > 1 ? styles$l.complexItem : ''}`, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
2249
+ return (jsxs("div", { className: styles$m.arrayInput, children: [jsx("h3", { className: styles$m.arrayInputLabel, children: label }), jsx("div", { children: jsx(AnimatePresence, { children: values.map((value, index) => (jsxs(motion.div, { className: `${styles$m.arrayInputItem} ${fields.length > 1 ? styles$m.complexItem : ''}`, style: itemStyle, initial: { opacity: 0, y: 10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: {
2227
2250
  duration: 0.3,
2228
2251
  ease: "easeInOut",
2229
2252
  layout: { duration: 0.2 }
2230
- }, children: [jsx("div", { className: styles$l.fieldsWrapper, children: fields.map((field) => (jsx("div", { style: inputStyle, children: field.multiline ? (jsx(TextArea, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, placeholder: field.placeholder, rows: field.rows, compact: true })) : (jsx(TextInput, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, type: field.type, placeholder: field.placeholder })) }, field.name))) }), jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$l.removeButton, children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, generateKey(value, index)))) }) }), jsxs(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$l.addButton, children: ["Add ", label] })] }));
2253
+ }, children: [jsx("div", { className: styles$m.fieldsWrapper, children: fields.map((field) => (jsx("div", { style: inputStyle, children: field.multiline ? (jsx(TextArea, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, placeholder: field.placeholder, rows: field.rows, compact: true })) : (jsx(TextInput, { value: value[field.name] || '', onChange: (newValue) => handleChange(index, field.name, newValue), label: field.label, type: field.type, placeholder: field.placeholder })) }, field.name))) }), jsx(Button, { variant: "ghost", size: "small", onClick: () => handleRemove(index), "aria-label": "Remove item", className: styles$m.removeButton, children: jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "currentColor", children: jsx("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }) }) })] }, generateKey(value, index)))) }) }), jsxs(Button, { variant: buttonVariant, size: "small", onClick: handleAdd, className: styles$m.addButton, children: ["Add ", label] })] }));
2231
2254
  }
2232
2255
 
2233
- var styles$k = {"fab":"EditFAB-module_fab__nSrTJ","primary":"EditFAB-module_primary__zbA9n","secondary":"EditFAB-module_secondary__BnXs0","success":"EditFAB-module_success__kcLg3","loader":"EditFAB-module_loader__TaJOm","draggable":"EditFAB-module_draggable__eE2vE","dragging":"EditFAB-module_dragging__btRJe"};
2256
+ var styles$l = {"fab":"EditFAB-module_fab__nSrTJ","primary":"EditFAB-module_primary__zbA9n","secondary":"EditFAB-module_secondary__BnXs0","success":"EditFAB-module_success__kcLg3","loader":"EditFAB-module_loader__TaJOm","draggable":"EditFAB-module_draggable__eE2vE","dragging":"EditFAB-module_dragging__btRJe"};
2234
2257
 
2235
2258
  const EditFAB = ({ canEdit, isEditMode, hasUnsavedChanges = false, isSaving = false, onEnterEditMode, onExitEditMode, position = { bottom: 32, right: 32 } }) => {
2236
2259
  const [isMobile, setIsMobile] = useState(false);
@@ -2315,15 +2338,15 @@ const EditFAB = ({ canEdit, isEditMode, hasUnsavedChanges = false, isSaving = fa
2315
2338
  };
2316
2339
  const getVariantClass = () => {
2317
2340
  if (isSaving)
2318
- return styles$k.primary;
2341
+ return styles$l.primary;
2319
2342
  if (isEditMode) {
2320
- return hasUnsavedChanges ? styles$k.success : styles$k.secondary;
2343
+ return hasUnsavedChanges ? styles$l.success : styles$l.secondary;
2321
2344
  }
2322
- return styles$k.primary;
2345
+ return styles$l.primary;
2323
2346
  };
2324
2347
  const getIcon = () => {
2325
2348
  if (isSaving) {
2326
- return jsx("div", { className: styles$k.loader });
2349
+ return jsx("div", { className: styles$l.loader });
2327
2350
  }
2328
2351
  if (isEditMode) {
2329
2352
  return hasUnsavedChanges ? jsx(Check, { size: 24 }) : jsx(X, { size: 24 });
@@ -2338,14 +2361,14 @@ const EditFAB = ({ canEdit, isEditMode, hasUnsavedChanges = false, isSaving = fa
2338
2361
  }
2339
2362
  return "Enter edit mode";
2340
2363
  };
2341
- return (jsx(motion.button, { ref: fabRef, className: `${styles$k.fab} ${getVariantClass()} ${isMobile ? styles$k.draggable : ''} ${isDragging ? styles$k.dragging : ''}`, style: getPositionStyles(), onClick: handleClick, onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, onTouchEnd: handleTouchEnd, disabled: isSaving, "aria-label": getAriaLabel(), initial: { scale: 0, opacity: 0 }, animate: { scale: 1, opacity: 1 }, exit: { scale: 0, opacity: 0 }, whileHover: !isSaving && !isDragging ? { scale: 1.1 } : {}, whileTap: !isSaving && !isDragging ? { scale: 0.9 } : {}, transition: {
2364
+ return (jsx(motion.button, { ref: fabRef, className: `${styles$l.fab} ${getVariantClass()} ${isMobile ? styles$l.draggable : ''} ${isDragging ? styles$l.dragging : ''}`, style: getPositionStyles(), onClick: handleClick, onTouchStart: handleTouchStart, onTouchMove: handleTouchMove, onTouchEnd: handleTouchEnd, disabled: isSaving, "aria-label": getAriaLabel(), initial: { scale: 0, opacity: 0 }, animate: { scale: 1, opacity: 1 }, exit: { scale: 0, opacity: 0 }, whileHover: !isSaving && !isDragging ? { scale: 1.1 } : {}, whileTap: !isSaving && !isDragging ? { scale: 0.9 } : {}, transition: {
2342
2365
  type: "spring",
2343
2366
  stiffness: 260,
2344
2367
  damping: 20
2345
2368
  }, children: getIcon() }));
2346
2369
  };
2347
2370
 
2348
- var styles$j = {"searchContainer":"SearchBar-module_searchContainer__TdM1w","searchInputWrapper":"SearchBar-module_searchInputWrapper__kCZLU","searchIcon":"SearchBar-module_searchIcon__IIxEu","searchInput":"SearchBar-module_searchInput__V4gkE","clearButton":"SearchBar-module_clearButton__7fNIY","filterSelect":"SearchBar-module_filterSelect__xIVE4","resultsDropdown":"SearchBar-module_resultsDropdown__yh6NF","loadingState":"SearchBar-module_loadingState__4gidK","emptyState":"SearchBar-module_emptyState__RbI4s","spinner":"SearchBar-module_spinner__PMc6-","resultsGroups":"SearchBar-module_resultsGroups__U24DC","resultGroup":"SearchBar-module_resultGroup__SoTQH","groupHeader":"SearchBar-module_groupHeader__bFRHA","groupIcon":"SearchBar-module_groupIcon__9ENM-","groupTitle":"SearchBar-module_groupTitle__ZekZs","groupCount":"SearchBar-module_groupCount__PQIqw","groupResults":"SearchBar-module_groupResults__xTF52","resultItem":"SearchBar-module_resultItem__VaKKy","highlighted":"SearchBar-module_highlighted__Q-3sH","resultTitle":"SearchBar-module_resultTitle__i1uqL","resultSubtitle":"SearchBar-module_resultSubtitle__LQOJ1","resultMeta":"SearchBar-module_resultMeta__Kmkrn","resultContent":"SearchBar-module_resultContent__TzVzL","highlight":"SearchBar-module_highlight__Q3PSP"};
2371
+ var styles$k = {"searchContainer":"SearchBar-module_searchContainer__TdM1w","searchInputWrapper":"SearchBar-module_searchInputWrapper__kCZLU","searchIcon":"SearchBar-module_searchIcon__IIxEu","searchInput":"SearchBar-module_searchInput__V4gkE","clearButton":"SearchBar-module_clearButton__7fNIY","filterSelect":"SearchBar-module_filterSelect__xIVE4","resultsDropdown":"SearchBar-module_resultsDropdown__yh6NF","loadingState":"SearchBar-module_loadingState__4gidK","emptyState":"SearchBar-module_emptyState__RbI4s","spinner":"SearchBar-module_spinner__PMc6-","resultsGroups":"SearchBar-module_resultsGroups__U24DC","resultGroup":"SearchBar-module_resultGroup__SoTQH","groupHeader":"SearchBar-module_groupHeader__bFRHA","groupIcon":"SearchBar-module_groupIcon__9ENM-","groupTitle":"SearchBar-module_groupTitle__ZekZs","groupCount":"SearchBar-module_groupCount__PQIqw","groupResults":"SearchBar-module_groupResults__xTF52","resultItem":"SearchBar-module_resultItem__VaKKy","highlighted":"SearchBar-module_highlighted__Q-3sH","resultTitle":"SearchBar-module_resultTitle__i1uqL","resultSubtitle":"SearchBar-module_resultSubtitle__LQOJ1","resultMeta":"SearchBar-module_resultMeta__Kmkrn","resultContent":"SearchBar-module_resultContent__TzVzL","highlight":"SearchBar-module_highlight__Q3PSP"};
2349
2372
 
2350
2373
  // Default filter options for backwards compatibility
2351
2374
  const defaultFilterOptions = [
@@ -2538,18 +2561,18 @@ const SearchBar = ({ className, placeholder = "Search (Ctrl+Space)...", onSearch
2538
2561
  return text || '';
2539
2562
  const regex = new RegExp(`(${highlight.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})`, 'gi');
2540
2563
  const parts = text.split(regex);
2541
- return parts.map((part, index) => regex.test(part) ? (jsx("mark", { className: styles$j.highlight, children: part }, index)) : (part));
2564
+ return parts.map((part, index) => regex.test(part) ? (jsx("mark", { className: styles$k.highlight, children: part }, index)) : (part));
2542
2565
  };
2543
- return (jsxs("div", { ref: searchRef, className: `${styles$j.searchContainer} ${className || ''}`, children: [jsxs("div", { className: styles$j.searchInputWrapper, children: [jsx(Search, { className: styles$j.searchIcon }), jsx("input", { ref: inputRef, type: "text", value: query, onChange: (e) => setQuery(e.target.value), onKeyDown: handleKeyDown, onFocus: () => query.trim() && results.length > 0 && setIsDropdownOpen(true), placeholder: placeholder, className: styles$j.searchInput, "aria-label": "Search", "aria-expanded": isDropdownOpen, "aria-controls": "search-results", "aria-autocomplete": "list" }), query && (jsx(motion.button, { className: styles$j.clearButton, onClick: handleClear, whileHover: { scale: 1.1 }, whileTap: { scale: 0.9 }, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, children: jsx(X, {}) })), showFilter && (jsx("select", { value: filter, onChange: (e) => setFilter(e.target.value), className: styles$j.filterSelect, "aria-label": "Filter search results", children: filterOptions.map(option => (jsx("option", { value: option.value, children: option.label }, option.value))) }))] }), jsx(AnimatePresence, { children: isDropdownOpen && (jsx(motion.div, { ref: resultsRef, id: "search-results", className: styles$j.resultsDropdown, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: { duration: 0.2 }, children: isLoading ? (jsxs("div", { className: styles$j.loadingState, children: [jsx("div", { className: styles$j.spinner }), jsx("span", { children: "Searching..." })] })) : results.length === 0 ? (jsxs("div", { className: styles$j.emptyState, children: ["No results found for \"", query, "\""] })) : (jsx("div", { className: styles$j.resultsGroups, children: Object.entries(groupedResults).map(([type, groupResults]) => {
2566
+ return (jsxs("div", { ref: searchRef, className: `${styles$k.searchContainer} ${className || ''}`, children: [jsxs("div", { className: styles$k.searchInputWrapper, children: [jsx(Search, { className: styles$k.searchIcon }), jsx("input", { ref: inputRef, type: "text", value: query, onChange: (e) => setQuery(e.target.value), onKeyDown: handleKeyDown, onFocus: () => query.trim() && results.length > 0 && setIsDropdownOpen(true), placeholder: placeholder, className: styles$k.searchInput, "aria-label": "Search", "aria-expanded": isDropdownOpen, "aria-controls": "search-results", "aria-autocomplete": "list" }), query && (jsx(motion.button, { className: styles$k.clearButton, onClick: handleClear, whileHover: { scale: 1.1 }, whileTap: { scale: 0.9 }, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, children: jsx(X, {}) })), showFilter && (jsx("select", { value: filter, onChange: (e) => setFilter(e.target.value), className: styles$k.filterSelect, "aria-label": "Filter search results", children: filterOptions.map(option => (jsx("option", { value: option.value, children: option.label }, option.value))) }))] }), jsx(AnimatePresence, { children: isDropdownOpen && (jsx(motion.div, { ref: resultsRef, id: "search-results", className: styles$k.resultsDropdown, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0, y: -10 }, transition: { duration: 0.2 }, children: isLoading ? (jsxs("div", { className: styles$k.loadingState, children: [jsx("div", { className: styles$k.spinner }), jsx("span", { children: "Searching..." })] })) : results.length === 0 ? (jsxs("div", { className: styles$k.emptyState, children: ["No results found for \"", query, "\""] })) : (jsx("div", { className: styles$k.resultsGroups, children: Object.entries(groupedResults).map(([type, groupResults]) => {
2544
2567
  const Icon = entityIcons[type];
2545
- return (jsxs("div", { className: styles$j.resultGroup, children: [jsxs("div", { className: styles$j.groupHeader, children: [Icon && jsx(Icon, { className: styles$j.groupIcon }), jsx("span", { className: styles$j.groupTitle, children: type.charAt(0).toUpperCase() + type.slice(1) }), jsx("span", { className: styles$j.groupCount, children: groupResults.length })] }), jsx("div", { className: styles$j.groupResults, children: groupResults.map((result) => {
2568
+ return (jsxs("div", { className: styles$k.resultGroup, children: [jsxs("div", { className: styles$k.groupHeader, children: [Icon && jsx(Icon, { className: styles$k.groupIcon }), jsx("span", { className: styles$k.groupTitle, children: type.charAt(0).toUpperCase() + type.slice(1) }), jsx("span", { className: styles$k.groupCount, children: groupResults.length })] }), jsx("div", { className: styles$k.groupResults, children: groupResults.map((result) => {
2546
2569
  const globalIndex = results.indexOf(result);
2547
- return (jsxs(motion.button, { "data-result-index": globalIndex, className: `${styles$j.resultItem} ${highlightedIndex === globalIndex ? styles$j.highlighted : ''}`, onClick: () => handleResultClick(result), whileHover: { x: 4 }, onMouseEnter: () => setHighlightedIndex(globalIndex), children: [jsxs("div", { className: styles$j.resultContent, children: [jsx("div", { className: styles$j.resultTitle, children: highlightMatch(result.title || 'Untitled', query) }), result.subtitle && (jsx("div", { className: styles$j.resultSubtitle, children: highlightMatch(result.subtitle, query) }))] }), result.meta && (jsx("div", { className: styles$j.resultMeta, children: result.meta }))] }, `${result.type}-${result.id}`));
2570
+ return (jsxs(motion.button, { "data-result-index": globalIndex, className: `${styles$k.resultItem} ${highlightedIndex === globalIndex ? styles$k.highlighted : ''}`, onClick: () => handleResultClick(result), whileHover: { x: 4 }, onMouseEnter: () => setHighlightedIndex(globalIndex), children: [jsxs("div", { className: styles$k.resultContent, children: [jsx("div", { className: styles$k.resultTitle, children: highlightMatch(result.title || 'Untitled', query) }), result.subtitle && (jsx("div", { className: styles$k.resultSubtitle, children: highlightMatch(result.subtitle, query) }))] }), result.meta && (jsx("div", { className: styles$k.resultMeta, children: result.meta }))] }, `${result.type}-${result.id}`));
2548
2571
  }) })] }, type));
2549
2572
  }) })) })) })] }));
2550
2573
  };
2551
2574
 
2552
- var styles$i = {"timeInput":"TimeInput-module_timeInput__h1DpT","label":"TimeInput-module_label__d4rZw","required":"TimeInput-module_required__rc1vq","picker":"TimeInput-module_picker__9c6EI","error":"TimeInput-module_error__gJnpk","disabled":"TimeInput-module_disabled__wxiZ-"};
2575
+ var styles$j = {"timeInput":"TimeInput-module_timeInput__h1DpT","label":"TimeInput-module_label__d4rZw","required":"TimeInput-module_required__rc1vq","picker":"TimeInput-module_picker__9c6EI","error":"TimeInput-module_error__gJnpk","disabled":"TimeInput-module_disabled__wxiZ-"};
2553
2576
 
2554
2577
  const lightTheme = createTheme({
2555
2578
  palette: {
@@ -2585,26 +2608,26 @@ function TimeInput({ label, value, onChange, error = false, success = false, loa
2585
2608
  !!document.documentElement.getAttribute('data-theme')?.includes('dark');
2586
2609
  const muiTheme = useMemo(() => (isDark ? darkTheme : lightTheme), [isDark]);
2587
2610
  const getContainerClassName = () => {
2588
- const classes = [styles$i.timeInput];
2611
+ const classes = [styles$j.timeInput];
2589
2612
  if (error)
2590
- classes.push(styles$i.error);
2613
+ classes.push(styles$j.error);
2591
2614
  if (success)
2592
- classes.push(styles$i.success);
2615
+ classes.push(styles$j.success);
2593
2616
  if (loading)
2594
- classes.push(styles$i.loading);
2617
+ classes.push(styles$j.loading);
2595
2618
  if (disabled)
2596
- classes.push(styles$i.disabled);
2619
+ classes.push(styles$j.disabled);
2597
2620
  if (className)
2598
2621
  classes.push(className);
2599
2622
  return classes.join(' ');
2600
2623
  };
2601
- return (jsxs("div", { className: getContainerClassName(), children: [label && (jsxs("label", { className: styles$i.label, children: [label, required && jsx("span", { className: styles$i.required, children: "*" })] })), jsx(ThemeProvider$1, { theme: muiTheme, children: jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: jsx(MobileTimePicker, { value: dayjsValue, onChange: (newValue) => {
2624
+ return (jsxs("div", { className: getContainerClassName(), children: [label && (jsxs("label", { className: styles$j.label, children: [label, required && jsx("span", { className: styles$j.required, children: "*" })] })), jsx(ThemeProvider$1, { theme: muiTheme, children: jsx(LocalizationProvider, { dateAdapter: AdapterDayjs, children: jsx(MobileTimePicker, { value: dayjsValue, onChange: (newValue) => {
2602
2625
  onChange(newValue ? newValue.format('HH:mm') : '');
2603
2626
  }, ampm: false, views: ['hours', 'minutes'], disabled: disabled || loading, slotProps: {
2604
2627
  textField: {
2605
2628
  size: 'small',
2606
2629
  fullWidth: true,
2607
- className: styles$i.picker,
2630
+ className: styles$j.picker,
2608
2631
  sx: {
2609
2632
  '& .MuiPickersOutlinedInput-root': {
2610
2633
  fontFamily: "'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, monospace",
@@ -2692,7 +2715,7 @@ const ThemeProvider = ({ children, defaultTheme = 'light', storageKey = 'app-the
2692
2715
  return (jsx(ThemeContext.Provider, { value: { theme, setTheme, toggleTheme }, children: children }));
2693
2716
  };
2694
2717
 
2695
- var styles$h = {"button":"ThemeSwitcher-module_button__VfRjU","iconButton":"ThemeSwitcher-module_iconButton__NKYBc","iconWrapper":"ThemeSwitcher-module_iconWrapper__FpHo8","label":"ThemeSwitcher-module_label__2Hfkp","toggle":"ThemeSwitcher-module_toggle__ATXx4","toggleTrack":"ThemeSwitcher-module_toggleTrack__x28Rv","toggleThumb":"ThemeSwitcher-module_toggleThumb__V8QeN","dropdown":"ThemeSwitcher-module_dropdown__3qLdt","dropdownTrigger":"ThemeSwitcher-module_dropdownTrigger__UzYV5","dropdownMenu":"ThemeSwitcher-module_dropdownMenu__3L5hT","dropdownItem":"ThemeSwitcher-module_dropdownItem__inw-K","active":"ThemeSwitcher-module_active__OHP19","icon":"ThemeSwitcher-module_icon__iRZiJ","text":"ThemeSwitcher-module_text__OCOoA"};
2718
+ var styles$i = {"button":"ThemeSwitcher-module_button__VfRjU","iconButton":"ThemeSwitcher-module_iconButton__NKYBc","iconWrapper":"ThemeSwitcher-module_iconWrapper__FpHo8","label":"ThemeSwitcher-module_label__2Hfkp","toggle":"ThemeSwitcher-module_toggle__ATXx4","toggleTrack":"ThemeSwitcher-module_toggleTrack__x28Rv","toggleThumb":"ThemeSwitcher-module_toggleThumb__V8QeN","dropdown":"ThemeSwitcher-module_dropdown__3qLdt","dropdownTrigger":"ThemeSwitcher-module_dropdownTrigger__UzYV5","dropdownMenu":"ThemeSwitcher-module_dropdownMenu__3L5hT","dropdownItem":"ThemeSwitcher-module_dropdownItem__inw-K","active":"ThemeSwitcher-module_active__OHP19","icon":"ThemeSwitcher-module_icon__iRZiJ","text":"ThemeSwitcher-module_text__OCOoA"};
2696
2719
 
2697
2720
  const ThemeSwitcher = ({ variant = 'button', showLabel = false, className = '', currentTheme, onThemeChange, themes: customThemes, }) => {
2698
2721
  // Use safe version that returns null when outside a ThemeProvider
@@ -2713,25 +2736,25 @@ const ThemeSwitcher = ({ variant = 'button', showLabel = false, className = '',
2713
2736
  if (variant === 'toggle') {
2714
2737
  // Simple toggle between light and dark
2715
2738
  const isDark = theme.includes('dark');
2716
- return (jsxs(motion.button, { className: `${styles$h.toggle} ${className}`, onClick: () => setTheme(isDark ? 'light' : 'dark'), whileTap: { scale: 0.95 }, "aria-label": "Toggle theme", children: [jsx(motion.div, { className: styles$h.toggleTrack, animate: { backgroundColor: isDark ? 'var(--color-primary)' : 'var(--color-border)' }, children: jsx(motion.div, { className: styles$h.toggleThumb, animate: { x: isDark ? 24 : 0 }, transition: { type: 'spring', stiffness: 500, damping: 30 }, children: isDark ? jsx(Moon, { size: 14 }) : jsx(Sun, { size: 14 }) }) }), showLabel && jsx("span", { className: styles$h.label, children: isDark ? 'Dark' : 'Light' })] }));
2739
+ return (jsxs(motion.button, { className: `${styles$i.toggle} ${className}`, onClick: () => setTheme(isDark ? 'light' : 'dark'), whileTap: { scale: 0.95 }, "aria-label": "Toggle theme", children: [jsx(motion.div, { className: styles$i.toggleTrack, animate: { backgroundColor: isDark ? 'var(--color-primary)' : 'var(--color-border)' }, children: jsx(motion.div, { className: styles$i.toggleThumb, animate: { x: isDark ? 24 : 0 }, transition: { type: 'spring', stiffness: 500, damping: 30 }, children: isDark ? jsx(Moon, { size: 14 }) : jsx(Sun, { size: 14 }) }) }), showLabel && jsx("span", { className: styles$i.label, children: isDark ? 'Dark' : 'Light' })] }));
2717
2740
  }
2718
2741
  if (variant === 'icon') {
2719
- return (jsxs("button", { type: "button", className: `${styles$h.iconButton} ${className}`, onClick: () => {
2742
+ return (jsxs("button", { type: "button", className: `${styles$i.iconButton} ${className}`, onClick: () => {
2720
2743
  const nextIndex = (currentThemeIndex + 1) % themes.length;
2721
2744
  setTheme(themes[nextIndex].value);
2722
- }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, title: currentThemeData.label, children: [currentThemeData.icon, showLabel && jsx("span", { className: styles$h.label, children: currentThemeData.label })] }));
2745
+ }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, title: currentThemeData.label, children: [currentThemeData.icon, showLabel && jsx("span", { className: styles$i.label, children: currentThemeData.label })] }));
2723
2746
  }
2724
2747
  if (variant === 'dropdown') {
2725
- return (jsxs("div", { className: `${styles$h.dropdown} ${className}`, children: [jsxs(motion.button, { className: styles$h.dropdownTrigger, whileTap: { scale: 0.98 }, children: [currentThemeData.icon, showLabel && jsx("span", { className: styles$h.label, children: currentThemeData.label })] }), jsx(motion.div, { className: styles$h.dropdownMenu, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, children: themes.map((t) => (jsxs(motion.button, { className: `${styles$h.dropdownItem} ${theme === t.value ? styles$h.active : ''}`, onClick: () => setTheme(t.value), whileHover: { x: 4 }, whileTap: { scale: 0.98 }, children: [jsx("span", { className: styles$h.icon, children: t.icon }), jsx("span", { className: styles$h.text, children: t.label })] }, t.value))) })] }));
2748
+ return (jsxs("div", { className: `${styles$i.dropdown} ${className}`, children: [jsxs(motion.button, { className: styles$i.dropdownTrigger, whileTap: { scale: 0.98 }, children: [currentThemeData.icon, showLabel && jsx("span", { className: styles$i.label, children: currentThemeData.label })] }), jsx(motion.div, { className: styles$i.dropdownMenu, initial: { opacity: 0, y: -10 }, animate: { opacity: 1, y: 0 }, children: themes.map((t) => (jsxs(motion.button, { className: `${styles$i.dropdownItem} ${theme === t.value ? styles$i.active : ''}`, onClick: () => setTheme(t.value), whileHover: { x: 4 }, whileTap: { scale: 0.98 }, children: [jsx("span", { className: styles$i.icon, children: t.icon }), jsx("span", { className: styles$i.text, children: t.label })] }, t.value))) })] }));
2726
2749
  }
2727
2750
  // Default button variant - cycles through themes
2728
- return (jsxs(motion.button, { className: `${styles$h.button} ${className}`, onClick: () => {
2751
+ return (jsxs(motion.button, { className: `${styles$i.button} ${className}`, onClick: () => {
2729
2752
  const nextIndex = (currentThemeIndex + 1) % themes.length;
2730
2753
  setTheme(themes[nextIndex].value);
2731
- }, whileTap: { scale: 0.95 }, whileHover: { scale: 1.05 }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, children: [jsx(motion.div, { initial: { rotate: -180, opacity: 0 }, animate: { rotate: 0, opacity: 1 }, exit: { rotate: 180, opacity: 0 }, transition: { duration: 0.3 }, className: styles$h.iconWrapper, children: currentThemeData.icon }, theme), showLabel && jsx("span", { className: styles$h.label, children: currentThemeData.label })] }));
2754
+ }, whileTap: { scale: 0.95 }, whileHover: { scale: 1.05 }, "aria-label": `Current theme: ${currentThemeData.label}. Click to change.`, children: [jsx(motion.div, { initial: { rotate: -180, opacity: 0 }, animate: { rotate: 0, opacity: 1 }, exit: { rotate: 180, opacity: 0 }, transition: { duration: 0.3 }, className: styles$i.iconWrapper, children: currentThemeData.icon }, theme), showLabel && jsx("span", { className: styles$i.label, children: currentThemeData.label })] }));
2732
2755
  };
2733
2756
 
2734
- var styles$g = {"tabs":"Tabs-module_tabs__Vlvn7","tab":"Tabs-module_tab__uQKim","tabIcon":"Tabs-module_tabIcon__AgN-O","fullWidth":"Tabs-module_fullWidth__X-GHP"};
2757
+ var styles$h = {"tabs":"Tabs-module_tabs__Vlvn7","tab":"Tabs-module_tab__uQKim","tabIcon":"Tabs-module_tabIcon__AgN-O","fullWidth":"Tabs-module_fullWidth__X-GHP"};
2735
2758
 
2736
2759
  // Default tabs for backwards compatibility
2737
2760
  const defaultTabs = [
@@ -2742,39 +2765,39 @@ const defaultTabs = [
2742
2765
  ];
2743
2766
  const Tabs = ({ activeTab, onTabChange, tabs: customTabs, className = '', fullWidth = false }) => {
2744
2767
  const tabs = customTabs ?? defaultTabs;
2745
- return (jsx("div", { className: `${styles$g.tabs} ${fullWidth ? styles$g.fullWidth : ''} ${className}`, children: tabs.map((tab) => {
2768
+ return (jsx("div", { className: `${styles$h.tabs} ${fullWidth ? styles$h.fullWidth : ''} ${className}`, children: tabs.map((tab) => {
2746
2769
  const isActive = activeTab === tab.id;
2747
- return (jsxs(motion.button, { className: styles$g.tab, "data-active": isActive, onClick: () => onTabChange(tab.id), style: { position: 'relative' }, children: [jsx(motion.div, { animate: {
2770
+ return (jsxs(motion.button, { className: styles$h.tab, "data-active": isActive, onClick: () => onTabChange(tab.id), style: { position: 'relative' }, children: [jsx(motion.div, { animate: {
2748
2771
  rotate: isActive ? [0, -10, 10, -5, 5, 0] : 0,
2749
2772
  }, transition: {
2750
2773
  rotate: {
2751
2774
  duration: 0.5,
2752
2775
  ease: 'easeInOut'
2753
2776
  }
2754
- }, children: tab.icon && (React.isValidElement(tab.icon) ? (jsx("span", { className: styles$g.tabIcon, children: tab.icon })) : (jsx("span", { className: styles$g.tabIcon, children: React.createElement(tab.icon) }))) }), jsx("span", { children: tab.label })] }, tab.id));
2777
+ }, children: tab.icon && (React.isValidElement(tab.icon) ? (jsx("span", { className: styles$h.tabIcon, children: tab.icon })) : (jsx("span", { className: styles$h.tabIcon, children: React.createElement(tab.icon) }))) }), jsx("span", { children: tab.label })] }, tab.id));
2755
2778
  }) }));
2756
2779
  };
2757
2780
 
2758
- var styles$f = {"toastContainer":"Toast-module_toastContainer__gp5C0","toast":"Toast-module_toast__eenNR","toastSuccess":"Toast-module_toastSuccess__e-cSx","toastError":"Toast-module_toastError__6JO9w","toastWarning":"Toast-module_toastWarning__pJoF1","toastInfo":"Toast-module_toastInfo__y33kR","icon":"Toast-module_icon__Z-D6i","iconSuccess":"Toast-module_iconSuccess__ehY27","iconError":"Toast-module_iconError__nXhZz","iconWarning":"Toast-module_iconWarning__Ie8oD","iconInfo":"Toast-module_iconInfo__8vOf5","content":"Toast-module_content__eBhK8","title":"Toast-module_title__EfUfZ","message":"Toast-module_message__l4pyr","closeButton":"Toast-module_closeButton__UWOVG","progressBar":"Toast-module_progressBar__fGwBU"};
2781
+ var styles$g = {"toastContainer":"Toast-module_toastContainer__gp5C0","toast":"Toast-module_toast__eenNR","toastSuccess":"Toast-module_toastSuccess__e-cSx","toastError":"Toast-module_toastError__6JO9w","toastWarning":"Toast-module_toastWarning__pJoF1","toastInfo":"Toast-module_toastInfo__y33kR","icon":"Toast-module_icon__Z-D6i","iconSuccess":"Toast-module_iconSuccess__ehY27","iconError":"Toast-module_iconError__nXhZz","iconWarning":"Toast-module_iconWarning__Ie8oD","iconInfo":"Toast-module_iconInfo__8vOf5","content":"Toast-module_content__eBhK8","title":"Toast-module_title__EfUfZ","message":"Toast-module_message__l4pyr","closeButton":"Toast-module_closeButton__UWOVG","progressBar":"Toast-module_progressBar__fGwBU"};
2759
2782
 
2760
2783
  const getIcon = (type) => {
2761
2784
  switch (type) {
2762
2785
  case 'success':
2763
- return (jsx("svg", { className: `${styles$f.icon} ${styles$f.iconSuccess}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }));
2786
+ return (jsx("svg", { className: `${styles$g.icon} ${styles$g.iconSuccess}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M5 13l4 4L19 7" }) }));
2764
2787
  case 'error':
2765
- return (jsx("svg", { className: `${styles$f.icon} ${styles$f.iconError}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }));
2788
+ return (jsx("svg", { className: `${styles$g.icon} ${styles$g.iconError}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }));
2766
2789
  case 'warning':
2767
- return (jsx("svg", { className: `${styles$f.icon} ${styles$f.iconWarning}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }));
2790
+ return (jsx("svg", { className: `${styles$g.icon} ${styles$g.iconWarning}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }));
2768
2791
  case 'info':
2769
- return (jsx("svg", { className: `${styles$f.icon} ${styles$f.iconInfo}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }));
2792
+ return (jsx("svg", { className: `${styles$g.icon} ${styles$g.iconInfo}`, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }));
2770
2793
  }
2771
2794
  };
2772
2795
  const getToastStyle = (type) => {
2773
2796
  switch (type) {
2774
- case 'success': return styles$f.toastSuccess;
2775
- case 'error': return styles$f.toastError;
2776
- case 'warning': return styles$f.toastWarning;
2777
- case 'info': return styles$f.toastInfo;
2797
+ case 'success': return styles$g.toastSuccess;
2798
+ case 'error': return styles$g.toastError;
2799
+ case 'warning': return styles$g.toastWarning;
2800
+ case 'info': return styles$g.toastInfo;
2778
2801
  default: return '';
2779
2802
  }
2780
2803
  };
@@ -2796,7 +2819,7 @@ const ToastItem = ({ toast, removeToast, }) => {
2796
2819
  clearInterval(interval);
2797
2820
  };
2798
2821
  }, [toast.id, duration, removeToast]);
2799
- return (jsxs(motion.div, { className: `${styles$f.toast} ${getToastStyle(toast.type)}`, initial: { opacity: 0, x: 100, scale: 0.9 }, animate: { opacity: 1, x: 0, scale: 1 }, exit: { opacity: 0, x: 100, scale: 0.9 }, transition: { type: 'spring', stiffness: 500, damping: 40 }, layout: true, children: [getIcon(toast.type), jsxs("div", { className: styles$f.content, children: [toast.title && jsx("p", { className: styles$f.title, children: toast.title }), jsx("p", { className: styles$f.message, children: toast.message })] }), jsx("button", { className: styles$f.closeButton, onClick: () => removeToast(toast.id), "aria-label": "Close notification", children: jsx("svg", { width: "16", height: "16", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }), jsx(motion.div, { className: styles$f.progressBar, initial: { width: '100%' }, animate: { width: `${progress}%` }, style: {
2822
+ return (jsxs(motion.div, { className: `${styles$g.toast} ${getToastStyle(toast.type)}`, initial: { opacity: 0, x: 100, scale: 0.9 }, animate: { opacity: 1, x: 0, scale: 1 }, exit: { opacity: 0, x: 100, scale: 0.9 }, transition: { type: 'spring', stiffness: 500, damping: 40 }, layout: true, children: [getIcon(toast.type), jsxs("div", { className: styles$g.content, children: [toast.title && jsx("p", { className: styles$g.title, children: toast.title }), jsx("p", { className: styles$g.message, children: toast.message })] }), jsx("button", { className: styles$g.closeButton, onClick: () => removeToast(toast.id), "aria-label": "Close notification", children: jsx("svg", { width: "16", height: "16", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) }), jsx(motion.div, { className: styles$g.progressBar, initial: { width: '100%' }, animate: { width: `${progress}%` }, style: {
2800
2823
  color: toast.type === 'success' ? '#10B981'
2801
2824
  : toast.type === 'error' ? '#EF4444'
2802
2825
  : toast.type === 'warning' ? '#F59E0B'
@@ -2806,10 +2829,10 @@ const ToastItem = ({ toast, removeToast, }) => {
2806
2829
  const ToastContainer = ({ toasts, removeToast }) => {
2807
2830
  if (typeof document === 'undefined')
2808
2831
  return null;
2809
- return createPortal(jsx("div", { className: styles$f.toastContainer, children: jsx(AnimatePresence, { mode: "sync", children: toasts.map((toast) => (jsx(ToastItem, { toast: toast, removeToast: removeToast }, toast.id))) }) }), document.body);
2832
+ return createPortal(jsx("div", { className: styles$g.toastContainer, children: jsx(AnimatePresence, { mode: "sync", children: toasts.map((toast) => (jsx(ToastItem, { toast: toast, removeToast: removeToast }, toast.id))) }) }), document.body);
2810
2833
  };
2811
2834
 
2812
- var styles$e = {"breadcrumb":"Breadcrumb-module_breadcrumb__pGabz","separator":"Breadcrumb-module_separator__UCmyy","item":"Breadcrumb-module_item__0cLOg","link":"Breadcrumb-module_link__udp8M","current":"Breadcrumb-module_current__3DpQc"};
2835
+ var styles$f = {"breadcrumb":"Breadcrumb-module_breadcrumb__pGabz","separator":"Breadcrumb-module_separator__UCmyy","item":"Breadcrumb-module_item__0cLOg","link":"Breadcrumb-module_link__udp8M","current":"Breadcrumb-module_current__3DpQc"};
2813
2836
 
2814
2837
  /**
2815
2838
  * Breadcrumb Component
@@ -2828,13 +2851,13 @@ var styles$e = {"breadcrumb":"Breadcrumb-module_breadcrumb__pGabz","separator":"
2828
2851
  * />
2829
2852
  */
2830
2853
  const Breadcrumb = ({ items, onNavigate, className = '' }) => {
2831
- return (jsx("nav", { className: `${styles$e.breadcrumb} ${className}`, "aria-label": "Breadcrumb", children: items.map((item, index) => {
2854
+ return (jsx("nav", { className: `${styles$f.breadcrumb} ${className}`, "aria-label": "Breadcrumb", children: items.map((item, index) => {
2832
2855
  const isLast = index === items.length - 1;
2833
- return (jsxs(React.Fragment, { children: [index > 0 && jsx(ChevronRight, { size: 14, className: styles$e.separator }), isLast || !item.href ? (jsx("span", { className: `${styles$e.item} ${isLast ? styles$e.current : ''}`, children: item.label })) : (jsx("button", { className: `${styles$e.item} ${styles$e.link}`, onClick: () => onNavigate?.(item.href), children: item.label }))] }, index));
2856
+ return (jsxs(React.Fragment, { children: [index > 0 && jsx(ChevronRight, { size: 14, className: styles$f.separator }), isLast || !item.href ? (jsx("span", { className: `${styles$f.item} ${isLast ? styles$f.current : ''}`, children: item.label })) : (jsx("button", { className: `${styles$f.item} ${styles$f.link}`, onClick: () => onNavigate?.(item.href), children: item.label }))] }, index));
2834
2857
  }) }));
2835
2858
  };
2836
2859
 
2837
- var styles$d = {"overlay":"LiquidButton-module_overlay__-P-xm","container":"LiquidButton-module_container__f1COS","actions":"LiquidButton-module_actions__XBz7p","actionButton":"LiquidButton-module_actionButton__PlEOk","actionLabel":"LiquidButton-module_actionLabel__tIGHE","button":"LiquidButton-module_button__znjyS"};
2860
+ var styles$e = {"overlay":"LiquidButton-module_overlay__-P-xm","container":"LiquidButton-module_container__f1COS","actions":"LiquidButton-module_actions__XBz7p","actionButton":"LiquidButton-module_actionButton__PlEOk","actionLabel":"LiquidButton-module_actionLabel__tIGHE","button":"LiquidButton-module_button__znjyS"};
2838
2861
 
2839
2862
  /**
2840
2863
  * LiquidButton Component
@@ -2860,10 +2883,167 @@ const LiquidButton = ({ actions, icon: Icon = Plus, className = '', }) => {
2860
2883
  setExpanded(false);
2861
2884
  action.onClick();
2862
2885
  }, []);
2863
- return (jsxs(Fragment, { children: [jsx(AnimatePresence, { children: expanded && (jsx(motion.div, { className: styles$d.overlay, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: handleToggle })) }), jsxs("div", { className: `${styles$d.container} ${className}`, children: [jsx(AnimatePresence, { children: expanded && (jsx("div", { className: styles$d.actions, children: actions.map((action, index) => (jsxs(motion.button, { type: "button", className: styles$d.actionButton, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, transition: {
2886
+ return (jsxs(Fragment, { children: [jsx(AnimatePresence, { children: expanded && (jsx(motion.div, { className: styles$e.overlay, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: handleToggle })) }), jsxs("div", { className: `${styles$e.container} ${className}`, children: [jsx(AnimatePresence, { children: expanded && (jsx("div", { className: styles$e.actions, children: actions.map((action, index) => (jsxs(motion.button, { type: "button", className: styles$e.actionButton, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, transition: {
2864
2887
  duration: 0.15,
2865
2888
  delay: (actions.length - 1 - index) * 0.05,
2866
- }, onClick: () => handleAction(action), children: [jsx(action.icon, { size: 18, color: action.color }), jsx("span", { className: styles$d.actionLabel, children: action.label })] }, action.key))) })) }), jsx(motion.button, { type: "button", className: styles$d.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 }) })] })] }));
2889
+ }, onClick: () => handleAction(action), children: [jsx(action.icon, { size: 18, color: action.color }), jsx("span", { className: styles$e.actionLabel, children: action.label })] }, action.key))) })) }), jsx(motion.button, { type: "button", className: styles$e.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 }) })] })] }));
2890
+ };
2891
+
2892
+ var styles$d = {"container":"RecurrencePicker-module_container__2Ewc4","field":"RecurrencePicker-module_field__3rsnB","fieldCentered":"RecurrencePicker-module_fieldCentered__wP27Q","fieldLabel":"RecurrencePicker-module_fieldLabel__HCMBQ","fieldRow":"RecurrencePicker-module_fieldRow__AQ4k7","fieldUnit":"RecurrencePicker-module_fieldUnit__WHbVN","dayPicker":"RecurrencePicker-module_dayPicker__a5ue6","dayBtn":"RecurrencePicker-module_dayBtn__WIxNY","dayBtnActive":"RecurrencePicker-module_dayBtnActive__mX7FB","preview":"RecurrencePicker-module_preview__tfAQ-"};
2893
+
2894
+ const DEFAULT_STATE = {
2895
+ freq: 'WEEKLY',
2896
+ interval: 1,
2897
+ byDay: ['MO'],
2898
+ byMonthDay: 1,
2899
+ monthlyLast: false,
2900
+ byMonth: 1,
2901
+ yearDay: 1,
2902
+ };
2903
+ const WEEKDAYS = [
2904
+ { code: 'MO', label: 'M', rrule: RRule.MO },
2905
+ { code: 'TU', label: 'T', rrule: RRule.TU },
2906
+ { code: 'WE', label: 'W', rrule: RRule.WE },
2907
+ { code: 'TH', label: 'T', rrule: RRule.TH },
2908
+ { code: 'FR', label: 'F', rrule: RRule.FR },
2909
+ { code: 'SA', label: 'S', rrule: RRule.SA },
2910
+ { code: 'SU', label: 'S', rrule: RRule.SU },
2911
+ ];
2912
+ const MONTHS$1 = [
2913
+ 'January',
2914
+ 'February',
2915
+ 'March',
2916
+ 'April',
2917
+ 'May',
2918
+ 'June',
2919
+ 'July',
2920
+ 'August',
2921
+ 'September',
2922
+ 'October',
2923
+ 'November',
2924
+ 'December',
2925
+ ];
2926
+ const FREQ_MAP = {
2927
+ DAILY: RRule.DAILY,
2928
+ WEEKLY: RRule.WEEKLY,
2929
+ MONTHLY: RRule.MONTHLY,
2930
+ YEARLY: RRule.YEARLY,
2931
+ };
2932
+ const REVERSE_FREQ = {
2933
+ [RRule.DAILY]: 'DAILY',
2934
+ [RRule.WEEKLY]: 'WEEKLY',
2935
+ [RRule.MONTHLY]: 'MONTHLY',
2936
+ [RRule.YEARLY]: 'YEARLY',
2937
+ };
2938
+ const buildRule = (s) => {
2939
+ const opts = { freq: FREQ_MAP[s.freq] };
2940
+ if (s.interval > 1)
2941
+ opts.interval = s.interval;
2942
+ if (s.freq === 'WEEKLY' && s.byDay.length > 0) {
2943
+ opts.byweekday = s.byDay
2944
+ .map(c => WEEKDAYS.find(w => w.code === c)?.rrule)
2945
+ .filter((w) => !!w);
2946
+ }
2947
+ if (s.freq === 'MONTHLY') {
2948
+ opts.bymonthday = s.monthlyLast ? -1 : s.byMonthDay;
2949
+ }
2950
+ if (s.freq === 'YEARLY') {
2951
+ opts.bymonth = s.byMonth;
2952
+ opts.bymonthday = s.yearDay;
2953
+ }
2954
+ const rule = new RRule(opts);
2955
+ return rule.toString().replace(/^(?:DTSTART:[^\n]*\n)?RRULE:/, '');
2956
+ };
2957
+ const parseRule = (rule) => {
2958
+ try {
2959
+ const opts = RRule.parseString(rule);
2960
+ const freq = REVERSE_FREQ[opts.freq];
2961
+ if (!freq)
2962
+ return null;
2963
+ const byweekday = opts.byweekday ?? [];
2964
+ const byDay = byweekday
2965
+ .map(w => {
2966
+ const n = typeof w === 'number' ? w : w.weekday;
2967
+ return WEEKDAYS.find(d => d.rrule.weekday === n)?.code;
2968
+ })
2969
+ .filter((c) => !!c);
2970
+ const bmd = opts.bymonthday;
2971
+ const bymonthday = Array.isArray(bmd) ? bmd[0] : bmd;
2972
+ const bm = opts.bymonth;
2973
+ const bymonth = Array.isArray(bm) ? bm[0] : bm;
2974
+ return {
2975
+ freq,
2976
+ interval: opts.interval || 1,
2977
+ byDay: byDay.length > 0 ? byDay : ['MO'],
2978
+ byMonthDay: freq === 'MONTHLY' && bymonthday && bymonthday > 0 ? bymonthday : 1,
2979
+ monthlyLast: freq === 'MONTHLY' && bymonthday === -1,
2980
+ byMonth: freq === 'YEARLY' ? bymonth || 1 : 1,
2981
+ yearDay: freq === 'YEARLY' && bymonthday ? bymonthday : 1,
2982
+ };
2983
+ }
2984
+ catch {
2985
+ return null;
2986
+ }
2987
+ };
2988
+ const stateFromValue = (value) => {
2989
+ if (!value)
2990
+ return DEFAULT_STATE;
2991
+ return parseRule(value) ?? DEFAULT_STATE;
2992
+ };
2993
+ const RecurrencePicker = ({ value, onChange, className, }) => {
2994
+ const [state, setState] = useState(() => stateFromValue(value));
2995
+ const built = useMemo(() => buildRule(state), [state]);
2996
+ // Re-sync internal state if the parent passes a different rule than the one
2997
+ // we currently render. The `built === value` guard prevents the loop where
2998
+ // our own emit comes back through `value` and triggers a redundant resync.
2999
+ useEffect(() => {
3000
+ if (value && value !== built) {
3001
+ const parsed = parseRule(value);
3002
+ if (parsed)
3003
+ setState(parsed);
3004
+ }
3005
+ }, [value, built]);
3006
+ // On mount, if the parent didn't seed a rule, push our default up so its
3007
+ // state matches what we visually display. Runs once.
3008
+ useEffect(() => {
3009
+ if (!value)
3010
+ onChange(built);
3011
+ // eslint-disable-next-line react-hooks/exhaustive-deps
3012
+ }, []);
3013
+ const update = (patch) => {
3014
+ const next = { ...state, ...patch };
3015
+ setState(next);
3016
+ onChange(buildRule(next));
3017
+ };
3018
+ const toggleDay = (code) => {
3019
+ const byDay = state.byDay.includes(code)
3020
+ ? state.byDay.filter(c => c !== code)
3021
+ : [...state.byDay, code];
3022
+ update({ byDay });
3023
+ };
3024
+ const preview = useMemo(() => {
3025
+ try {
3026
+ return RRule.fromString(built).toText();
3027
+ }
3028
+ catch {
3029
+ return built;
3030
+ }
3031
+ }, [built]);
3032
+ const unitLabel = {
3033
+ DAILY: state.interval === 1 ? 'day' : 'days',
3034
+ WEEKLY: state.interval === 1 ? 'week' : 'weeks',
3035
+ MONTHLY: state.interval === 1 ? 'month' : 'months',
3036
+ YEARLY: state.interval === 1 ? 'year' : 'years',
3037
+ };
3038
+ return (jsxs("div", { className: `${styles$d.container}${className ? ` ${className}` : ''}`, children: [jsx("div", { className: styles$d.field, children: jsx(SelectInput, { label: "Frequency", value: state.freq, onChange: v => update({ freq: v }), options: [
3039
+ { value: 'DAILY', label: 'Daily' },
3040
+ { value: 'WEEKLY', label: 'Weekly' },
3041
+ { value: 'MONTHLY', label: 'Monthly' },
3042
+ { value: 'YEARLY', label: 'Yearly' },
3043
+ ] }) }), jsxs("div", { className: styles$d.field, children: [jsx("span", { className: styles$d.fieldLabel, children: "Every" }), jsxs("div", { className: styles$d.fieldRow, children: [jsx(NumberStepper, { value: state.interval, onChange: v => update({ interval: Math.max(1, v) }), min: 1, max: 99, hideLimits: true, size: "small" }), jsx("span", { className: styles$d.fieldUnit, children: unitLabel[state.freq] })] })] }), state.freq === 'WEEKLY' && (jsxs("div", { className: `${styles$d.field} ${styles$d.fieldCentered}`, children: [jsx("span", { className: styles$d.fieldLabel, children: "On" }), jsx("div", { className: styles$d.dayPicker, children: WEEKDAYS.map(d => (jsx("button", { type: "button", className: `${styles$d.dayBtn} ${state.byDay.includes(d.code) ? styles$d.dayBtnActive : ''}`, onClick: () => toggleDay(d.code), "aria-label": d.code, children: d.label }, d.code))) })] })), state.freq === 'MONTHLY' && (jsxs("div", { className: styles$d.field, children: [jsx("span", { className: styles$d.fieldLabel, children: "Day of month" }), jsxs("div", { className: styles$d.fieldRow, children: [jsx(NumberStepper, { value: state.byMonthDay, onChange: v => update({ byMonthDay: Math.min(31, Math.max(1, v)) }), min: 1, max: 31, disabled: state.monthlyLast, hideLimits: true, size: "small" }), jsx(Checkbox, { checked: state.monthlyLast, onChange: v => update({ monthlyLast: v }), label: "Last day" })] })] })), state.freq === 'YEARLY' && (jsxs(Fragment, { children: [jsx("div", { className: styles$d.field, children: jsx(SelectInput, { label: "Month", value: String(state.byMonth), onChange: v => update({ byMonth: Number(v) }), options: MONTHS$1.map((m, i) => ({
3044
+ value: String(i + 1),
3045
+ label: m,
3046
+ })) }) }), jsxs("div", { className: styles$d.field, children: [jsx("span", { className: styles$d.fieldLabel, children: "Day" }), jsx(NumberStepper, { value: state.yearDay, onChange: v => update({ yearDay: Math.min(31, Math.max(1, v)) }), min: 1, max: 31, hideLimits: true, size: "small" })] })] })), jsx("div", { className: styles$d.preview, children: preview })] }));
2867
3047
  };
2868
3048
 
2869
3049
  var styles$c = {"wrap":"StreamConsole-module_wrap__MnVWw","header":"StreamConsole-module_header__FjnRM","headerLeft":"StreamConsole-module_headerLeft__gNDyh","statusDot":"StreamConsole-module_statusDot__xQ254","spin":"StreamConsole-module_spin__OrOeL","label":"StreamConsole-module_label__rJIDm","statusText":"StreamConsole-module_statusText__oG-ej","dismiss":"StreamConsole-module_dismiss__WH3Kv","body":"StreamConsole-module_body__-HIK-","hint":"StreamConsole-module_hint__BA4SI","line":"StreamConsole-module_line__5hMY2","linePrefix":"StreamConsole-module_linePrefix__xR-Oj","lineText":"StreamConsole-module_lineText__IyRSF","lineLabel":"StreamConsole-module_lineLabel__z-qj4"};
@@ -4573,7 +4753,7 @@ const HabitTimeOfDayChart = ({ events, width = 800, height = 400, startDate, end
4573
4753
  : ''] }), tooltipData.count > 1 && (jsxs("div", { className: styles$7.tooltipValue, children: [jsx("strong", { children: tooltipData.count }), jsx("span", { className: styles$7.tooltipUnits, children: "events" })] }))] })] })) : (jsxs(Fragment, { children: [jsx("div", { className: styles$7.tooltipHeader, children: jsx("span", { children: formatHour(tooltipData.hour) }) }), jsxs("div", { className: styles$7.tooltipInfo, children: [jsxs("div", { className: styles$7.tooltipValue, children: [jsx("strong", { children: tooltipData.count }), jsxs("span", { className: styles$7.tooltipUnits, children: ["event", tooltipData.count === 1 ? '' : 's'] })] }), tooltipData.breakdown && tooltipData.breakdown.length > 1 && (jsx("div", { className: styles$7.tooltipBreakdown, children: tooltipData.breakdown.map(({ habit, count }) => (jsxs("div", { className: styles$7.tooltipBreakdownRow, children: [jsx("span", { className: styles$7.tooltipDot, style: { backgroundColor: getColor(habit) } }), jsxs("span", { children: [customHabitEmojis[habit] || '', " ", habit] }), jsx("span", { className: styles$7.tooltipCount, children: count })] }, habit))) }))] })] })) }))] }));
4574
4754
  };
4575
4755
 
4576
- 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"};
4756
+ 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"};
4577
4757
 
4578
4758
  const parseTimeToDecimal = (time) => {
4579
4759
  const [hours, minutes] = time.split(':').map(Number);
@@ -4581,288 +4761,217 @@ const parseTimeToDecimal = (time) => {
4581
4761
  };
4582
4762
  const formatTime = (hour) => {
4583
4763
  const h24 = Math.floor(hour % 24);
4584
- const h12 = h24 === 0 ? 12 : h24 > 12 ? h24 - 12 : h24;
4585
- const ampm = h24 >= 12 ? 'PM' : 'AM';
4586
4764
  const minutes = Math.round((hour % 1) * 60);
4587
- return `${Math.floor(h12)}:${minutes.toString().padStart(2, '0')} ${ampm}`;
4765
+ return `${h24.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`;
4766
+ };
4767
+ const formatDuration = (decimal) => {
4768
+ const h = Math.floor(decimal);
4769
+ const m = Math.round((decimal % 1) * 60);
4770
+ return `${h}h ${m.toString().padStart(2, '0')}m`;
4588
4771
  };
4589
- const SleepChart = ({ sleepData, width = 800, height = 400, onDateClick }) => {
4772
+ // Build an SVG sine-wave path between two x-coordinates at a given baseline y.
4773
+ // Two quadratic curves per cycle keep the curve smooth without needing cubic control points.
4774
+ const buildSquigglePath = (x1, x2, y, amplitude, wavelength) => {
4775
+ const distance = Math.max(0, x2 - x1);
4776
+ if (distance === 0)
4777
+ return `M ${x1} ${y}`;
4778
+ const cycles = Math.max(1, Math.round(distance / wavelength));
4779
+ const halfStep = distance / (cycles * 2);
4780
+ let path = `M ${x1} ${y}`;
4781
+ for (let i = 0; i < cycles * 2; i++) {
4782
+ const cx = x1 + (i + 0.5) * halfStep;
4783
+ const cy = y + (i % 2 === 0 ? -amplitude : amplitude);
4784
+ const ex = x1 + (i + 1) * halfStep;
4785
+ path += ` Q ${cx} ${cy} ${ex} ${y}`;
4786
+ }
4787
+ return path;
4788
+ };
4789
+ const SleepChart = ({ sleepData, width = 800, height = 400, onDateClick, }) => {
4590
4790
  const svgRef = useRef(null);
4591
4791
  const [tooltipData, setTooltipData] = useState(null);
4592
- const margin = useMemo(() => ({ top: 30, right: 30, bottom: 50, left: 80 }), []);
4792
+ const margin = useMemo(() => ({ top: 12, right: 16, bottom: 32, left: 64 }), []);
4593
4793
  const chartWidth = width - margin.left - margin.right;
4594
4794
  const chartHeight = height - margin.top - margin.bottom;
4595
- // Hide tooltip on scroll
4596
4795
  useEffect(() => {
4597
- const handleScroll = () => {
4598
- setTooltipData(null);
4599
- };
4796
+ const handleScroll = () => setTooltipData(null);
4600
4797
  window.addEventListener('scroll', handleScroll, true);
4601
- return () => {
4602
- window.removeEventListener('scroll', handleScroll, true);
4603
- };
4798
+ return () => window.removeEventListener('scroll', handleScroll, true);
4604
4799
  }, []);
4605
4800
  useEffect(() => {
4606
4801
  if (!svgRef.current || sleepData.length === 0)
4607
4802
  return;
4608
4803
  const svg = d3.select(svgRef.current);
4609
4804
  svg.selectAll('*').remove();
4610
- // Add invisible rect to detect mouse leave events
4611
4805
  svg.append('rect')
4612
4806
  .attr('width', width)
4613
4807
  .attr('height', height)
4614
4808
  .attr('fill', 'transparent')
4615
4809
  .style('pointer-events', 'all')
4616
- .on('mouseleave', () => {
4617
- setTooltipData(null);
4618
- });
4619
- const g = svg.append('g')
4810
+ .on('mouseleave', () => setTooltipData(null));
4811
+ const g = svg
4812
+ .append('g')
4620
4813
  .attr('transform', `translate(${margin.left},${margin.top})`);
4621
- const xScale = d3.scaleLinear()
4622
- .domain([18, 42])
4623
- .range([0, chartWidth]);
4624
- const yDomain = sleepData.map(d => d.date);
4625
- const yScale = d3.scaleBand()
4814
+ const xScale = d3.scaleLinear().domain([18, 42]).range([0, chartWidth]);
4815
+ const yDomain = sleepData.map((d) => d.date);
4816
+ const yScale = d3
4817
+ .scaleBand()
4626
4818
  .domain(yDomain)
4627
4819
  .range([0, chartHeight])
4628
- .paddingInner(0.2)
4820
+ .paddingInner(0.35)
4629
4821
  .paddingOuter(0.1);
4630
- // Add vertical grid lines with midnight/noon highlights
4822
+ // Dotted vertical gridlines; midnight/noon are slightly more present.
4631
4823
  g.selectAll('.grid-line-x')
4632
- .data(d3.range(18, 43, 1))
4633
- .enter().append('line')
4824
+ .data(d3.range(18, 43, 3))
4825
+ .enter()
4826
+ .append('line')
4634
4827
  .attr('class', styles$6.gridLine)
4635
- .attr('x1', d => xScale(d))
4828
+ .attr('x1', (d) => xScale(d))
4636
4829
  .attr('y1', 0)
4637
- .attr('x2', d => xScale(d))
4830
+ .attr('x2', (d) => xScale(d))
4638
4831
  .attr('y2', chartHeight)
4639
- .style('stroke', d => {
4640
- const hour = d % 24;
4641
- if (hour === 0)
4642
- return 'var(--color-border)'; // Midnight
4643
- if (hour === 12)
4644
- return 'var(--color-border)'; // Noon
4645
- return 'var(--color-border)';
4646
- })
4647
- .style('stroke-opacity', d => {
4832
+ .classed(styles$6.gridLineAccent, (d) => {
4648
4833
  const hour = d % 24;
4649
- if (hour === 0 || hour === 12)
4650
- return 0.3;
4651
- if (hour % 3 === 0)
4652
- return 0.15;
4653
- return 0.05;
4654
- })
4655
- .style('stroke-width', d => {
4656
- const hour = d % 24;
4657
- if (hour === 0 || hour === 12)
4658
- return 2;
4659
- return 1;
4834
+ return hour === 0 || hour === 12;
4660
4835
  });
4661
4836
  sleepData.forEach((dayData) => {
4662
4837
  const yValue = yScale(dayData.date);
4663
4838
  if (yValue === undefined)
4664
4839
  return;
4665
4840
  const barHeight = yScale.bandwidth();
4666
- const sleepGroup = g.append('g')
4841
+ const sleepGroup = g
4842
+ .append('g')
4667
4843
  .attr('class', styles$6.sleepBar)
4668
- .style('cursor', 'pointer')
4844
+ .style('cursor', onDateClick ? 'pointer' : 'default')
4669
4845
  .on('click', () => onDateClick?.(dayData.date));
4670
- // Handle sleep time and wake hour separately
4671
4846
  let sleepHour = null;
4672
4847
  let wakeHour = null;
4673
4848
  if (dayData.sleep_time) {
4674
4849
  sleepHour = parseTimeToDecimal(dayData.sleep_time);
4675
- // Convert evening hours to 24+ scale (e.g., 22:00 stays 22, but early morning like 02:00 becomes 26)
4676
- if (sleepHour < 18) {
4850
+ if (sleepHour < 18)
4677
4851
  sleepHour += 24;
4678
- }
4679
4852
  }
4680
4853
  if (dayData.wake_hour) {
4681
4854
  wakeHour = parseTimeToDecimal(dayData.wake_hour);
4682
- // If we have sleep time, wake time should be after sleep time
4683
4855
  if (sleepHour !== null) {
4684
- // If wake hour is before sleep hour or very early, it's next day
4685
4856
  if (wakeHour < sleepHour || (sleepHour >= 18 && wakeHour < 18)) {
4686
4857
  wakeHour += 24;
4687
4858
  }
4688
4859
  }
4689
- else {
4690
- // No sleep time - if wake time is early morning, assume next day
4691
- if (wakeHour < 12) {
4692
- wakeHour += 24;
4693
- }
4860
+ else if (wakeHour < 12) {
4861
+ wakeHour += 24;
4694
4862
  }
4695
4863
  }
4696
- // Draw the bar only if both values exist
4697
4864
  if (sleepHour !== null && wakeHour !== null) {
4698
- const rect = sleepGroup.append('rect')
4699
- .attr('x', xScale(sleepHour))
4700
- .attr('y', yValue)
4701
- .attr('width', 0) // Start with 0 width for animation
4702
- .attr('height', barHeight)
4703
- .attr('rx', barHeight / 2)
4704
- .attr('fill', 'url(#sleepGradient)')
4705
- .attr('opacity', 0) // Start invisible
4706
- .attr('stroke', 'rgba(255,255,255,0.3)')
4707
- .attr('stroke-width', 1)
4708
- .style('filter', 'drop-shadow(0 2px 8px rgba(155, 89, 182, 0.3))');
4709
- // Animate the bar
4710
- rect.transition()
4711
- .duration(800)
4712
- .delay(Math.random() * 200) // Stagger the animations
4865
+ const x1 = xScale(sleepHour);
4866
+ const x2 = xScale(wakeHour);
4867
+ const y = yValue + barHeight / 2;
4868
+ const amplitude = Math.min(barHeight / 2.2, 7);
4869
+ const wavelength = 14;
4870
+ const d = buildSquigglePath(x1, x2, y, amplitude, wavelength);
4871
+ const path = sleepGroup
4872
+ .append('path')
4873
+ .attr('class', styles$6.squiggle)
4874
+ .attr('d', d)
4875
+ .attr('fill', 'none');
4876
+ const node = path.node();
4877
+ const length = typeof node.getTotalLength === 'function'
4878
+ ? node.getTotalLength()
4879
+ : (x2 - x1) * 1.8;
4880
+ path.attr('stroke-dasharray', length)
4881
+ .attr('stroke-dashoffset', length)
4882
+ .transition()
4883
+ .duration(540)
4713
4884
  .ease(d3.easeCubicOut)
4714
- .attr('width', Math.max(0, xScale(wakeHour) - xScale(sleepHour)))
4715
- .attr('opacity', 0.85);
4885
+ .attr('stroke-dashoffset', 0);
4716
4886
  }
4717
- // Draw sleep dot if sleep time exists
4718
4887
  if (sleepHour !== null) {
4719
- const sleepDot = sleepGroup.append('circle')
4888
+ sleepGroup
4889
+ .append('circle')
4890
+ .attr('class', `${styles$6.endpoint} ${styles$6.endpointSleep}`)
4720
4891
  .attr('cx', xScale(sleepHour))
4721
4892
  .attr('cy', yValue + barHeight / 2)
4722
- .attr('r', 0) // Start with 0 radius
4723
- .attr('fill', '#9B59B6')
4724
- .attr('stroke', '#ffffff')
4725
- .attr('stroke-width', 2)
4726
- .style('filter', 'drop-shadow(0 3px 6px rgba(155, 89, 182, 0.4))')
4727
- .style('transition', 'all 0.3s ease');
4728
- // Animate the dot
4729
- sleepDot.transition()
4730
- .duration(400)
4731
- .delay(300 + Math.random() * 100)
4732
- .ease(d3.easeBackOut)
4733
- .attr('r', 6);
4893
+ .attr('r', 0)
4894
+ .transition()
4895
+ .duration(280)
4896
+ .delay(160)
4897
+ .ease(d3.easeCubicOut)
4898
+ .attr('r', 3.5);
4734
4899
  }
4735
- // Draw wake dot if wake hour exists
4736
4900
  if (wakeHour !== null) {
4737
- const wakeDot = sleepGroup.append('circle')
4901
+ sleepGroup
4902
+ .append('circle')
4903
+ .attr('class', `${styles$6.endpoint} ${styles$6.endpointWake}`)
4738
4904
  .attr('cx', xScale(wakeHour))
4739
4905
  .attr('cy', yValue + barHeight / 2)
4740
- .attr('r', 0) // Start with 0 radius
4741
- .attr('fill', '#3498DB')
4742
- .attr('stroke', '#ffffff')
4743
- .attr('stroke-width', 2)
4744
- .style('filter', 'drop-shadow(0 3px 6px rgba(52, 152, 219, 0.4))')
4745
- .style('transition', 'all 0.3s ease');
4746
- // Animate the dot
4747
- wakeDot.transition()
4748
- .duration(400)
4749
- .delay(500 + Math.random() * 100)
4750
- .ease(d3.easeBackOut)
4751
- .attr('r', 6);
4906
+ .attr('r', 0)
4907
+ .transition()
4908
+ .duration(280)
4909
+ .delay(220)
4910
+ .ease(d3.easeCubicOut)
4911
+ .attr('r', 3.5);
4752
4912
  }
4753
- // Add hover interactions with tooltip
4754
4913
  sleepGroup
4755
4914
  .on('mouseenter', function (event) {
4756
- // Highlight the bar
4757
- d3.select(this).select('rect')
4758
- .transition()
4759
- .duration(200)
4760
- .attr('opacity', 1)
4761
- .style('filter', 'drop-shadow(0 4px 12px rgba(155, 89, 182, 0.5)) brightness(1.1)');
4762
- // Scale up the dots
4763
- d3.select(this).selectAll('circle')
4764
- .transition()
4765
- .duration(200)
4766
- .attr('r', 8);
4767
- // Calculate tooltip data
4768
- const rect = svgRef.current?.getBoundingClientRect();
4769
- if (rect) {
4770
- const duration = (sleepHour !== null && wakeHour !== null)
4771
- ? wakeHour - sleepHour
4772
- : null;
4773
- setTooltipData({
4774
- date: dayData.date,
4775
- sleepTime: sleepHour !== null ? formatTime(sleepHour) : null,
4776
- wakeTime: wakeHour !== null ? formatTime(wakeHour) : null,
4777
- duration: duration !== null ? Math.round(duration * 100) / 100 : null,
4778
- x: event.pageX,
4779
- y: event.pageY - 80
4780
- });
4781
- }
4915
+ d3.select(this).classed(styles$6.sleepBarHover, true);
4916
+ const duration = sleepHour !== null && wakeHour !== null ? wakeHour - sleepHour : null;
4917
+ setTooltipData({
4918
+ date: dayData.date,
4919
+ sleepTime: sleepHour !== null ? formatTime(sleepHour) : null,
4920
+ wakeTime: wakeHour !== null ? formatTime(wakeHour) : null,
4921
+ duration: duration !== null ? Math.round(duration * 100) / 100 : null,
4922
+ x: event.pageX,
4923
+ y: event.pageY - 12,
4924
+ });
4782
4925
  })
4783
4926
  .on('mouseleave', function () {
4784
- // Reset bar appearance
4785
- d3.select(this).select('rect')
4786
- .transition()
4787
- .duration(200)
4788
- .attr('opacity', 0.85)
4789
- .style('filter', 'drop-shadow(0 2px 8px rgba(155, 89, 182, 0.3))');
4790
- // Reset dots
4791
- d3.select(this).selectAll('circle')
4792
- .transition()
4793
- .duration(200)
4794
- .attr('r', 6);
4795
- // Hide tooltip
4927
+ d3.select(this).classed(styles$6.sleepBarHover, false);
4796
4928
  setTooltipData(null);
4797
4929
  })
4798
4930
  .on('mousemove', function (event) {
4799
- // Update tooltip position
4800
- setTooltipData(prev => prev ? {
4801
- ...prev,
4802
- x: event.pageX,
4803
- y: event.pageY - 80
4804
- } : null);
4931
+ setTooltipData((prev) => prev ? { ...prev, x: event.pageX, y: event.pageY - 12 } : null);
4805
4932
  });
4806
4933
  });
4807
- // Create gradient definition
4808
- const defs = svg.append('defs');
4809
- const gradient = defs.append('linearGradient')
4810
- .attr('id', 'sleepGradient')
4811
- .attr('x1', '0%')
4812
- .attr('x2', '100%');
4813
- gradient.append('stop')
4814
- .attr('offset', '0%')
4815
- .attr('stop-color', '#9B59B6')
4816
- .attr('stop-opacity', 1);
4817
- gradient.append('stop')
4818
- .attr('offset', '50%')
4819
- .attr('stop-color', '#7B68A6')
4820
- .attr('stop-opacity', 1);
4821
- gradient.append('stop')
4822
- .attr('offset', '100%')
4823
- .attr('stop-color', '#3498DB')
4824
- .attr('stop-opacity', 1);
4825
- const xAxisTicks = d3.range(18, 43, 3).map(hour => ({
4934
+ const xAxisTicks = d3.range(18, 43, 3).map((hour) => ({
4826
4935
  value: hour,
4827
- label: hour === 24 ? '12 AM' : hour === 36 ? '12 PM' :
4828
- (hour % 24) === 0 ? '12 AM' :
4829
- (hour % 24) < 12 ? `${hour % 24} AM` :
4830
- (hour % 24) === 12 ? '12 PM' : `${(hour % 24) - 12} PM`
4936
+ label: `${(hour % 24).toString().padStart(2, '0')}:00`,
4831
4937
  }));
4832
- const xAxis = g.append('g')
4938
+ const xAxis = g
4939
+ .append('g')
4833
4940
  .attr('class', styles$6.xAxis)
4834
4941
  .attr('transform', `translate(0,${chartHeight})`)
4835
- .call(d3.axisBottom(xScale)
4836
- .tickValues(xAxisTicks.map(t => t.value))
4942
+ .call(d3
4943
+ .axisBottom(xScale)
4944
+ .tickValues(xAxisTicks.map((t) => t.value))
4837
4945
  .tickFormat((d) => {
4838
- const tick = xAxisTicks.find(t => t.value === d);
4946
+ const tick = xAxisTicks.find((t) => t.value === d);
4839
4947
  return tick ? tick.label : '';
4840
4948
  })
4841
- .tickSizeOuter(0));
4842
- // Style axis ticks
4843
- xAxis.selectAll('text')
4844
- .style('font-weight', d => {
4845
- const hour = d % 24;
4846
- return hour === 0 || hour === 12 ? '600' : '400';
4847
- });
4848
- const yAxisTicks = yDomain.filter((_, i) => i % Math.ceil(yDomain.length / 10) === 0);
4849
- g.append('g')
4949
+ .tickSize(0)
4950
+ .tickPadding(10));
4951
+ xAxis.select('.domain').remove();
4952
+ const tickEvery = Math.max(1, Math.ceil(yDomain.length / 8));
4953
+ const yAxisTicks = yDomain.filter((_, i) => i % tickEvery === 0);
4954
+ const yAxis = g
4955
+ .append('g')
4850
4956
  .attr('class', styles$6.yAxis)
4851
- .call(d3.axisLeft(yScale)
4957
+ .call(d3
4958
+ .axisLeft(yScale)
4852
4959
  .tickValues(yAxisTicks)
4853
- .tickFormat(d => {
4960
+ .tickFormat((d) => {
4854
4961
  const date = new Date(d);
4855
- return `${(date.getMonth() + 1).toString().padStart(2, '0')}/${date.getDate().toString().padStart(2, '0')}`;
4856
- }));
4962
+ return `${(date.getMonth() + 1)
4963
+ .toString()
4964
+ .padStart(2, '0')}/${date.getDate().toString().padStart(2, '0')}`;
4965
+ })
4966
+ .tickSize(0)
4967
+ .tickPadding(12));
4968
+ yAxis.select('.domain').remove();
4857
4969
  }, [sleepData, chartWidth, chartHeight, margin, onDateClick, height, width]);
4858
- return (jsxs("div", { className: styles$6.container, children: [jsxs("div", { className: styles$6.header, children: [jsx("h3", { className: styles$6.title, children: "Sleep Pattern" }), jsxs("div", { className: styles$6.legend, children: [jsxs("div", { className: styles$6.legendItem, children: [jsx("span", { className: styles$6.sleepDot }), jsx("span", { children: "Sleep Time" })] }), jsxs("div", { className: styles$6.legendItem, children: [jsx("span", { className: styles$6.wakeDot }), jsx("span", { children: "Wake Time" })] })] })] }), jsx("svg", { ref: svgRef, width: width, height: height, className: styles$6.chart }), tooltipData && (jsxs("div", { className: `${styles$6.tooltip} ${tooltipData ? styles$6.visible : ''}`, style: {
4859
- left: `${tooltipData.x}px`,
4860
- top: `${tooltipData.y}px`
4861
- }, children: [jsxs("div", { className: styles$6.tooltipHeader, children: [jsx("span", { className: styles$6.tooltipEmoji, children: "\uD83D\uDE34" }), jsx("span", { children: new Date(tooltipData.date).toLocaleDateString('en-US', {
4862
- weekday: 'short',
4863
- month: 'short',
4864
- day: 'numeric'
4865
- }) })] }), jsxs("div", { className: styles$6.tooltipInfo, children: [tooltipData.sleepTime && (jsxs("div", { className: styles$6.tooltipRow, children: [jsxs("span", { className: styles$6.tooltipLabel, children: [jsx("span", { children: "\uD83C\uDF19" }), jsx("span", { children: "Sleep:" })] }), jsx("span", { className: styles$6.tooltipValue, children: tooltipData.sleepTime })] })), tooltipData.wakeTime && (jsxs("div", { className: styles$6.tooltipRow, children: [jsxs("span", { className: styles$6.tooltipLabel, children: [jsx("span", { children: "\u2600\uFE0F" }), jsx("span", { children: "Wake:" })] }), jsx("span", { className: styles$6.tooltipValue, children: tooltipData.wakeTime })] })), tooltipData.duration !== null && (jsxs("div", { className: styles$6.tooltipDuration, children: [jsx("span", { children: "\u23F1\uFE0F" }), jsxs("span", { children: [Math.floor(tooltipData.duration), "h ", Math.round((tooltipData.duration % 1) * 60), "m"] })] }))] })] }))] }));
4970
+ return (jsxs("div", { className: styles$6.container, children: [jsxs("header", { className: styles$6.header, children: [jsx("span", { className: styles$6.eyebrow, children: "the night" }), jsxs("h3", { className: styles$6.title, children: [jsx("em", { children: "Sleep" }), " pattern"] })] }), jsx("svg", { ref: svgRef, width: width, height: height, className: styles$6.chart }), tooltipData && (jsxs("div", { className: `${styles$6.tooltip} ${styles$6.visible}`, style: { left: `${tooltipData.x}px`, top: `${tooltipData.y}px` }, children: [jsx("div", { className: styles$6.tooltipDate, children: new Date(tooltipData.date).toLocaleDateString('en-US', {
4971
+ weekday: 'short',
4972
+ month: 'short',
4973
+ day: 'numeric',
4974
+ }) }), jsxs("div", { className: styles$6.tooltipBody, children: [tooltipData.sleepTime && (jsxs("div", { className: styles$6.tooltipRow, children: [jsx("em", { children: "sleep" }), jsx("time", { children: tooltipData.sleepTime })] })), tooltipData.wakeTime && (jsxs("div", { className: styles$6.tooltipRow, children: [jsx("em", { children: "wake" }), jsx("time", { children: tooltipData.wakeTime })] })), tooltipData.duration !== null && (jsxs("div", { className: `${styles$6.tooltipRow} ${styles$6.tooltipTotal}`, children: [jsx("em", { children: "total" }), jsx("time", { children: formatDuration(tooltipData.duration) })] }))] })] }))] }));
4866
4975
  };
4867
4976
 
4868
4977
  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"};
@@ -5143,7 +5252,7 @@ const SunburstChart = ({ data, width = 500, height = 500, title = 'Sunburst Char
5143
5252
  }
5144
5253
  // Calculate new positions based on the original positions
5145
5254
  // ALWAYS scale to fill the full circle, no minimum size preservation
5146
- let newX0 = xScale(node.x0Original);
5255
+ const newX0 = xScale(node.x0Original);
5147
5256
  let newX1 = xScale(node.x1Original);
5148
5257
  // Ensure proper scaling even for very small segments
5149
5258
  // The clicked node's extent should always map to full circle
@@ -5244,7 +5353,7 @@ const SunburstChart = ({ data, width = 500, height = 500, title = 'Sunburst Char
5244
5353
  if (focusedNodeRef.current) {
5245
5354
  return;
5246
5355
  }
5247
- const hoveredElement = this;
5356
+ const hoveredElement = event.currentTarget;
5248
5357
  // Show tooltip for all nodes
5249
5358
  tooltip.transition().duration(200).style('opacity', 1);
5250
5359
  const value = d.value || 0;
@@ -6199,5 +6308,5 @@ const ConfirmationModal = ({ isOpen, onClose, onConfirm, title, message, confirm
6199
6308
  return (jsx(AnimatePresence, { children: isOpen && (jsxs(Fragment, { children: [jsx(motion.div, { className: styles.overlay, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: !isLoading ? onClose : undefined }), jsx("div", { className: styles.positioner, children: jsxs(motion.div, { className: styles.modal, initial: { opacity: 0, scale: 0.9, y: 20 }, animate: { opacity: 1, scale: 1, y: 0 }, exit: { opacity: 0, scale: 0.9, y: 20 }, transition: { type: 'spring', stiffness: 300, damping: 30 }, children: [jsxs("div", { className: `${styles.header} ${styles[variant]}`, children: [jsx("h2", { className: styles.title, children: title }), !isLoading && (jsx("button", { className: styles.closeButton, onClick: onClose, type: "button", "aria-label": "Close", children: "\u2715" }))] }), jsx("div", { className: styles.content, children: jsx("p", { className: styles.message, children: message }) }), jsxs("div", { className: styles.footer, children: [jsx(Button, { type: "button", variant: "ghost", onClick: onClose, disabled: isLoading, children: cancelText }), jsx(Button, { type: "button", variant: variant === 'danger' ? 'danger' : 'primary', onClick: handleConfirm, disabled: isLoading, loading: isLoading, children: confirmText })] })] }) })] })) }));
6200
6309
  };
6201
6310
 
6202
- export { ArrayInput, BooleansHeatmap, Breadcrumb, Button, Calendar, Card, Checkbox, ConfirmationModal, DateInput, DecryptedText, EditFAB, EmptyState, HabitTimeOfDayChart, ImageSlideshow, LiquidButton, LoadingSpinner, Modal, MoodChart, Navbar, NumberStepper, PieChart, QuantifiableHabitsChart, SearchBar, SearchableDropdown, SelectInput, SleepChart, Slider, StreamConsole, SunburstChart, Table, Tabs, TextArea, TextInput, ThemeProvider, ThemeSwitcher, TimeInput, ToastContainer, Toggle, ToggleButton, soundManager, useComponentSound, useSound, useTheme, useThemeSafe };
6311
+ export { ArrayInput, BooleansHeatmap, Breadcrumb, Button, Calendar, Card, Checkbox, ConfirmationModal, DateInput, DecryptedText, EditFAB, EmptyState, HabitTimeOfDayChart, ImageSlideshow, LiquidButton, LoadingSpinner, Modal, MoodChart, Navbar, NumberStepper, PieChart, QuantifiableHabitsChart, RecurrencePicker, SearchBar, SearchableDropdown, SelectInput, SleepChart, Slider, StreamConsole, SunburstChart, Table, Tabs, TextArea, TextInput, ThemeProvider, ThemeSwitcher, TimeInput, ToastContainer, Toggle, ToggleButton, soundManager, useComponentSound, useSound, useTheme, useThemeSafe };
6203
6312
  //# sourceMappingURL=index.esm.js.map