@stfrigerio/sito-template 0.1.35 → 0.1.37

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 (258) hide show
  1. package/dist/__tests__/setup.d.ts +2 -0
  2. package/dist/__tests__/setup.d.ts.map +1 -0
  3. package/dist/components/atoms/AllAtoms.stories.d.ts +1 -1
  4. package/dist/components/atoms/AllAtoms.stories.d.ts.map +1 -1
  5. package/dist/components/atoms/Button/Button.stories.d.ts +2 -14
  6. package/dist/components/atoms/Button/Button.stories.d.ts.map +1 -1
  7. package/dist/components/atoms/Card/Card.stories.d.ts +4 -23
  8. package/dist/components/atoms/Card/Card.stories.d.ts.map +1 -1
  9. package/dist/components/atoms/Checkbox/Checkbox.stories.d.ts +1 -1
  10. package/dist/components/atoms/Checkbox/Checkbox.stories.d.ts.map +1 -1
  11. package/dist/components/atoms/DateInput/DateInput.d.ts +1 -1
  12. package/dist/components/atoms/DateInput/DateInput.d.ts.map +1 -1
  13. package/dist/components/atoms/DateInput/DateInput.stories.d.ts +1 -1
  14. package/dist/components/atoms/DateInput/DateInput.stories.d.ts.map +1 -1
  15. package/dist/components/atoms/DecryptedText/DecryptedText.d.ts +50 -0
  16. package/dist/components/atoms/DecryptedText/DecryptedText.d.ts.map +1 -0
  17. package/dist/components/atoms/DecryptedText/index.d.ts +3 -0
  18. package/dist/components/atoms/DecryptedText/index.d.ts.map +1 -0
  19. package/dist/components/atoms/EmptyState/EmptyState.d.ts +53 -0
  20. package/dist/components/atoms/EmptyState/EmptyState.d.ts.map +1 -0
  21. package/dist/components/atoms/EmptyState/index.d.ts +3 -0
  22. package/dist/components/atoms/EmptyState/index.d.ts.map +1 -0
  23. package/dist/components/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +1 -1
  24. package/dist/components/atoms/LoadingSpinner/LoadingSpinner.stories.d.ts +1 -1
  25. package/dist/components/atoms/LoadingSpinner/LoadingSpinner.stories.d.ts.map +1 -1
  26. package/dist/components/atoms/Modal/Modal.d.ts +61 -0
  27. package/dist/components/atoms/Modal/Modal.d.ts.map +1 -0
  28. package/dist/components/atoms/Modal/index.d.ts +3 -0
  29. package/dist/components/atoms/Modal/index.d.ts.map +1 -0
  30. package/dist/components/atoms/NumberStepper/NumberStepper.d.ts.map +1 -1
  31. package/dist/components/atoms/NumberStepper/NumberStepper.stories.d.ts +1 -1
  32. package/dist/components/atoms/NumberStepper/NumberStepper.stories.d.ts.map +1 -1
  33. package/dist/components/atoms/SearchableDropdown/SearchableDropdown.stories.d.ts +1 -1
  34. package/dist/components/atoms/SearchableDropdown/SearchableDropdown.stories.d.ts.map +1 -1
  35. package/dist/components/atoms/SelectInput/SelectInput.d.ts +4 -2
  36. package/dist/components/atoms/SelectInput/SelectInput.d.ts.map +1 -1
  37. package/dist/components/atoms/Slider/Slider.stories.d.ts +2 -10
  38. package/dist/components/atoms/Slider/Slider.stories.d.ts.map +1 -1
  39. package/dist/components/atoms/SoundDemo/SoundDemo.d.ts +11 -0
  40. package/dist/components/atoms/SoundDemo/SoundDemo.d.ts.map +1 -0
  41. package/dist/components/atoms/SoundDemo/SoundDemo.stories.d.ts +1 -1
  42. package/dist/components/atoms/SoundDemo/SoundDemo.stories.d.ts.map +1 -1
  43. package/dist/components/atoms/TextArea/TextArea.d.ts.map +1 -1
  44. package/dist/components/atoms/TextArea/TextArea.stories.d.ts +1 -1
  45. package/dist/components/atoms/TextArea/TextArea.stories.d.ts.map +1 -1
  46. package/dist/components/atoms/TextInput/TextInput.d.ts +1 -1
  47. package/dist/components/atoms/TextInput/TextInput.d.ts.map +1 -1
  48. package/dist/components/atoms/TextInput/TextInput.stories.d.ts +1 -4
  49. package/dist/components/atoms/TextInput/TextInput.stories.d.ts.map +1 -1
  50. package/dist/components/atoms/Toggle/Toggle.d.ts +5 -4
  51. package/dist/components/atoms/Toggle/Toggle.d.ts.map +1 -1
  52. package/dist/components/atoms/Toggle/Toggle.stories.d.ts +1 -1
  53. package/dist/components/atoms/Toggle/Toggle.stories.d.ts.map +1 -1
  54. package/dist/components/atoms/ToggleButton/ToggleButton.stories.d.ts +1 -1
  55. package/dist/components/atoms/ToggleButton/ToggleButton.stories.d.ts.map +1 -1
  56. package/dist/components/atoms/index.d.ts +6 -0
  57. package/dist/components/atoms/index.d.ts.map +1 -1
  58. package/dist/components/molecules/ArrayInput/ArrayInput.d.ts +3 -3
  59. package/dist/components/molecules/ArrayInput/ArrayInput.d.ts.map +1 -1
  60. package/dist/components/molecules/ArrayInput/ArrayInput.stories.d.ts +1 -1
  61. package/dist/components/molecules/ArrayInput/ArrayInput.stories.d.ts.map +1 -1
  62. package/dist/components/molecules/Breadcrumb/Breadcrumb.d.ts +28 -0
  63. package/dist/components/molecules/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  64. package/dist/components/molecules/Breadcrumb/index.d.ts +3 -0
  65. package/dist/components/molecules/Breadcrumb/index.d.ts.map +1 -0
  66. package/dist/components/molecules/EditFAB/EditFAB.stories.d.ts +1 -1
  67. package/dist/components/molecules/EditFAB/EditFAB.stories.d.ts.map +1 -1
  68. package/dist/components/molecules/LiquidButton/LiquidButton.d.ts +33 -0
  69. package/dist/components/molecules/LiquidButton/LiquidButton.d.ts.map +1 -0
  70. package/dist/components/molecules/LiquidButton/index.d.ts +3 -0
  71. package/dist/components/molecules/LiquidButton/index.d.ts.map +1 -0
  72. package/dist/components/molecules/SearchBar/SearchBar.stories.d.ts +1 -1
  73. package/dist/components/molecules/SearchBar/SearchBar.stories.d.ts.map +1 -1
  74. package/dist/components/molecules/Tabs/Tabs.d.ts +1 -1
  75. package/dist/components/molecules/Tabs/Tabs.d.ts.map +1 -1
  76. package/dist/components/molecules/Tabs/Tabs.stories.d.ts +1 -1
  77. package/dist/components/molecules/Tabs/Tabs.stories.d.ts.map +1 -1
  78. package/dist/components/molecules/ThemeSwitcher/ThemeSwitcher.d.ts +4 -3
  79. package/dist/components/molecules/ThemeSwitcher/ThemeSwitcher.d.ts.map +1 -1
  80. package/dist/components/molecules/ThemeSwitcher/ThemeSwitcher.stories.d.ts +1 -1
  81. package/dist/components/molecules/ThemeSwitcher/ThemeSwitcher.stories.d.ts.map +1 -1
  82. package/dist/components/molecules/TimeInput/TimeInput.stories.d.ts +1 -1
  83. package/dist/components/molecules/TimeInput/TimeInput.stories.d.ts.map +1 -1
  84. package/dist/components/molecules/Toast/Toast.d.ts +16 -0
  85. package/dist/components/molecules/Toast/Toast.d.ts.map +1 -0
  86. package/dist/components/molecules/Toast/index.d.ts +3 -0
  87. package/dist/components/molecules/Toast/index.d.ts.map +1 -0
  88. package/dist/components/molecules/index.d.ts +6 -0
  89. package/dist/components/molecules/index.d.ts.map +1 -1
  90. package/dist/components/organisms/Calendar/Calendar.d.ts +1 -1
  91. package/dist/components/organisms/Calendar/Calendar.d.ts.map +1 -1
  92. package/dist/components/organisms/Calendar/Calendar.stories.d.ts +1 -1
  93. package/dist/components/organisms/Calendar/Calendar.stories.d.ts.map +1 -1
  94. package/dist/components/organisms/ConfirmationModal/ConfirmationModal.d.ts +30 -0
  95. package/dist/components/organisms/ConfirmationModal/ConfirmationModal.d.ts.map +1 -0
  96. package/dist/components/organisms/ConfirmationModal/index.d.ts +3 -0
  97. package/dist/components/organisms/ConfirmationModal/index.d.ts.map +1 -0
  98. package/dist/components/organisms/ImageSlideshow/ImageSlideshow.d.ts +1 -1
  99. package/dist/components/organisms/ImageSlideshow/ImageSlideshow.d.ts.map +1 -1
  100. package/dist/components/organisms/ImageSlideshow/ImageSlideshow.stories.d.ts +1 -6
  101. package/dist/components/organisms/ImageSlideshow/ImageSlideshow.stories.d.ts.map +1 -1
  102. package/dist/components/organisms/Navbar/Navbar.d.ts +3 -2
  103. package/dist/components/organisms/Navbar/Navbar.d.ts.map +1 -1
  104. package/dist/components/organisms/Navbar/Navbar.stories.d.ts +1 -1
  105. package/dist/components/organisms/Navbar/Navbar.stories.d.ts.map +1 -1
  106. package/dist/components/organisms/Table/Table.d.ts +6 -6
  107. package/dist/components/organisms/Table/Table.d.ts.map +1 -1
  108. package/dist/components/organisms/Table/Table.stories.d.ts +26 -14
  109. package/dist/components/organisms/Table/Table.stories.d.ts.map +1 -1
  110. package/dist/components/organisms/ThemeProvider/ThemeProvider.d.ts +3 -1
  111. package/dist/components/organisms/ThemeProvider/ThemeProvider.d.ts.map +1 -1
  112. package/dist/components/organisms/charts/BooleansHeatmap/BooleansHeatmap.d.ts.map +1 -1
  113. package/dist/components/organisms/charts/BooleansHeatmap/BooleansHeatmap.stories.d.ts +1 -1
  114. package/dist/components/organisms/charts/BooleansHeatmap/BooleansHeatmap.stories.d.ts.map +1 -1
  115. package/dist/components/organisms/charts/MoodChart/MoodChart.stories.d.ts +1 -1
  116. package/dist/components/organisms/charts/MoodChart/MoodChart.stories.d.ts.map +1 -1
  117. package/dist/components/organisms/charts/PieChart/PieChart.d.ts.map +1 -1
  118. package/dist/components/organisms/charts/PieChart/PieChart.stories.d.ts +1 -1
  119. package/dist/components/organisms/charts/PieChart/PieChart.stories.d.ts.map +1 -1
  120. package/dist/components/organisms/charts/QuantifiableHabitsChart/QuantifiableHabitsChart.d.ts +2 -0
  121. package/dist/components/organisms/charts/QuantifiableHabitsChart/QuantifiableHabitsChart.d.ts.map +1 -1
  122. package/dist/components/organisms/charts/QuantifiableHabitsChart/QuantifiableHabitsChart.stories.d.ts +1 -1
  123. package/dist/components/organisms/charts/QuantifiableHabitsChart/QuantifiableHabitsChart.stories.d.ts.map +1 -1
  124. package/dist/components/organisms/charts/SleepChart/SleepChart.stories.d.ts +1 -1
  125. package/dist/components/organisms/charts/SleepChart/SleepChart.stories.d.ts.map +1 -1
  126. package/dist/components/organisms/charts/SunburstChart/SunburstChart.d.ts.map +1 -1
  127. package/dist/components/organisms/charts/SunburstChart/SunburstChart.stories.d.ts +1 -1
  128. package/dist/components/organisms/charts/SunburstChart/SunburstChart.stories.d.ts.map +1 -1
  129. package/dist/components/organisms/index.d.ts +3 -1
  130. package/dist/components/organisms/index.d.ts.map +1 -1
  131. package/dist/index.d.ts +0 -1
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.esm.js +813 -465
  134. package/dist/index.esm.js.map +1 -1
  135. package/dist/index.js +833 -477
  136. package/dist/index.js.map +1 -1
  137. package/dist/stories/utils.d.ts +2 -2
  138. package/dist/stories/utils.d.ts.map +1 -1
  139. package/dist/styles.css +1 -1
  140. package/dist/styles.css.map +1 -1
  141. package/dist/themes/default.css +47 -0
  142. package/dist/themes/dmood.css +46 -0
  143. package/dist/themes/globals.css +110 -0
  144. package/dist/themes/lossito.css +52 -0
  145. package/dist/tokens/tokens.css +79 -0
  146. package/dist/utils/formUtils.d.ts +0 -5
  147. package/dist/utils/formUtils.d.ts.map +1 -1
  148. package/package.json +32 -10
  149. package/storybook-static/addon-visual-tests-assets/visual-test-illustration.mp4 +0 -0
  150. package/storybook-static/assets/AllAtoms.stories-DBoQZmq-.js +109 -0
  151. package/storybook-static/assets/AnimationPlayer-UXJjBKtF.css +1 -0
  152. package/storybook-static/assets/AnimationPlayer.stories-yXQ8fqUT.js +379 -0
  153. package/storybook-static/assets/ArrayInput-CkUpk1TR.css +1 -0
  154. package/storybook-static/assets/ArrayInput.stories-CRqKExgm.js +221 -0
  155. package/storybook-static/assets/BooleansHeatmap-BV4VTyo6.css +1 -0
  156. package/storybook-static/assets/BooleansHeatmap.stories-2u4SThph.js +123 -0
  157. package/storybook-static/assets/Button-O-w2-ag3.css +1 -0
  158. package/storybook-static/assets/Button-VfdDKp2T.js +37 -0
  159. package/storybook-static/assets/Button.stories-BeeBKHoX.js +117 -0
  160. package/storybook-static/assets/Calendar-BTQfDDfP.css +1 -0
  161. package/storybook-static/assets/Calendar.stories-CKOG4XAn.js +545 -0
  162. package/storybook-static/assets/Card-Bc7TyfBx.css +1 -0
  163. package/storybook-static/assets/Card-D-kcaQHV.js +49 -0
  164. package/storybook-static/assets/Card.stories-CpcboxKs.js +130 -0
  165. package/storybook-static/assets/Checkbox-BHwlDfRP.js +33 -0
  166. package/storybook-static/assets/Checkbox-DMUHtq9s.css +1 -0
  167. package/storybook-static/assets/Checkbox.stories-DxTQrFgm.js +83 -0
  168. package/storybook-static/assets/Color-AVL7NMMY-BzNNgCT5.js +1 -0
  169. package/storybook-static/assets/DateInput-C4-Rlnpy.css +1 -0
  170. package/storybook-static/assets/DateInput-Cu3PZYc0.js +33 -0
  171. package/storybook-static/assets/DateInput.stories-BGB5zJBm.js +119 -0
  172. package/storybook-static/assets/DocsRenderer-PQXLIZUC-q9kcQxfH.js +1243 -0
  173. package/storybook-static/assets/EditFAB-CntUhqRB.css +1 -0
  174. package/storybook-static/assets/EditFAB.stories-CmfJxWns.js +408 -0
  175. package/storybook-static/assets/MoodChart-2hr_Y2GI.css +1 -0
  176. package/storybook-static/assets/MoodChart.stories-V-wKOSu-.js +40 -0
  177. package/storybook-static/assets/Navbar-B8vEvGnB.css +1 -0
  178. package/storybook-static/assets/Navbar.stories-Dkf77idX.js +235 -0
  179. package/storybook-static/assets/NumberStepper-BVHPJutJ.css +1 -0
  180. package/storybook-static/assets/NumberStepper-BZGlrWCN.js +30 -0
  181. package/storybook-static/assets/NumberStepper.stories-NZw7r4Oh.js +127 -0
  182. package/storybook-static/assets/PieChart-OfDGlJ4g.css +1 -0
  183. package/storybook-static/assets/PieChart.stories-BkfNODjW.js +199 -0
  184. package/storybook-static/assets/QuantifiableHabitsChart-BEfzqND4.css +1 -0
  185. package/storybook-static/assets/QuantifiableHabitsChart.stories-Df6rcrdD.js +105 -0
  186. package/storybook-static/assets/SearchBar-CYhuHFt7.css +1 -0
  187. package/storybook-static/assets/SearchBar.stories-DmHIaDZB.js +154 -0
  188. package/storybook-static/assets/SearchableDropdown-ByAXm1md.js +38 -0
  189. package/storybook-static/assets/SearchableDropdown-CLYLzeoj.css +1 -0
  190. package/storybook-static/assets/SearchableDropdown.stories-ByZj6lJu.js +282 -0
  191. package/storybook-static/assets/SelectInput-BTPptV1H.css +1 -0
  192. package/storybook-static/assets/SelectInput-D-AwfWVz.js +31 -0
  193. package/storybook-static/assets/SelectInput.stories-MyE-GqOw.js +112 -0
  194. package/storybook-static/assets/SleepChart-yGsG5RlQ.css +1 -0
  195. package/storybook-static/assets/SleepChart.stories-Dsz1U6F9.js +58 -0
  196. package/storybook-static/assets/SunburstChart-ChXvU9py.css +1 -0
  197. package/storybook-static/assets/SunburstChart.stories-CphfyDsR.js +285 -0
  198. package/storybook-static/assets/Tabs-BfJ7skOE.css +1 -0
  199. package/storybook-static/assets/Tabs.stories-c24Ffu3K.js +49 -0
  200. package/storybook-static/assets/TextArea-B2UrQsuf.css +1 -0
  201. package/storybook-static/assets/TextArea-B_sATPlw.js +28 -0
  202. package/storybook-static/assets/TextArea.stories-CCqRRpwq.js +145 -0
  203. package/storybook-static/assets/TextInput-BjVJQEYN.css +1 -0
  204. package/storybook-static/assets/TextInput-ZGg8LTL_.js +28 -0
  205. package/storybook-static/assets/TextInput.stories-CtvOb60q.js +203 -0
  206. package/storybook-static/assets/ThemeSwitcher-XCVQ6hhy.css +1 -0
  207. package/storybook-static/assets/ThemeSwitcher.stories-BvkX1SDm.js +62 -0
  208. package/storybook-static/assets/TimeInput-C3enPYoV.css +1 -0
  209. package/storybook-static/assets/TimeInput.stories-BchhRfKo.js +50 -0
  210. package/storybook-static/assets/Toggle-BQ2KHBDr.js +39 -0
  211. package/storybook-static/assets/Toggle-DhKq5lh5.css +1 -0
  212. package/storybook-static/assets/Toggle.stories-BUSZc6m3.js +194 -0
  213. package/storybook-static/assets/ToggleButton-Dl6hvkJv.js +32 -0
  214. package/storybook-static/assets/ToggleButton-gfPoPxTQ.css +1 -0
  215. package/storybook-static/assets/ToggleButton.stories-BKN4zU3N.js +143 -0
  216. package/storybook-static/assets/arc-DgcIQOLP.js +1 -0
  217. package/storybook-static/assets/array-BKyUJesY.js +1 -0
  218. package/storybook-static/assets/defaultLocale-DJ2q5QjE.js +1 -0
  219. package/storybook-static/assets/iframe-BOc1hSA-.css +1 -0
  220. package/storybook-static/assets/iframe-BUaP2gIF.js +1087 -0
  221. package/storybook-static/assets/index-5bdJXrkD.js +1 -0
  222. package/storybook-static/assets/index-CBmvvqzc.js +1 -0
  223. package/storybook-static/assets/index-CZs7_DA6.js +9 -0
  224. package/storybook-static/assets/linear-4t_RuQok.js +1 -0
  225. package/storybook-static/assets/monotone-BYG7Mesf.js +1 -0
  226. package/storybook-static/assets/path-CbwjOpE9.js +1 -0
  227. package/storybook-static/assets/preload-helper-C1FmrZbK.js +1 -0
  228. package/storybook-static/assets/proxy-9Y4F2rF8.js +1 -0
  229. package/storybook-static/assets/react-18-D4c-_GAk.js +24 -0
  230. package/storybook-static/assets/transform-NloTqvdv.js +1 -0
  231. package/storybook-static/favicon-wrapper.svg +46 -0
  232. package/storybook-static/favicon.svg +1 -0
  233. package/storybook-static/iframe.html +726 -0
  234. package/storybook-static/index.html +164 -0
  235. package/storybook-static/index.json +1 -0
  236. package/storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  237. package/storybook-static/nunito-sans-bold.woff2 +0 -0
  238. package/storybook-static/nunito-sans-italic.woff2 +0 -0
  239. package/storybook-static/nunito-sans-regular.woff2 +0 -0
  240. package/storybook-static/project.json +1 -0
  241. package/storybook-static/sb-addons/chromatic-com-storybook-4/manager-bundle.js +356 -0
  242. package/storybook-static/sb-addons/chromatic-com-storybook-4/manager-bundle.js.LEGAL.txt +40 -0
  243. package/storybook-static/sb-addons/docs-2/manager-bundle.js +151 -0
  244. package/storybook-static/sb-addons/links-3/manager-bundle.js +3 -0
  245. package/storybook-static/sb-addons/onboarding-1/manager-bundle.js +127 -0
  246. package/storybook-static/sb-addons/storybook-5/manager-bundle.js +3 -0
  247. package/storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +971 -0
  248. package/storybook-static/sb-common-assets/favicon-wrapper.svg +46 -0
  249. package/storybook-static/sb-common-assets/favicon.svg +1 -0
  250. package/storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  251. package/storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  252. package/storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  253. package/storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  254. package/storybook-static/sb-manager/globals-module-info.js +797 -0
  255. package/storybook-static/sb-manager/globals-runtime.js +69653 -0
  256. package/storybook-static/sb-manager/globals.js +34 -0
  257. package/storybook-static/sb-manager/runtime.js +13181 -0
  258. package/storybook-static/vite-inject-mocker-entry.js +18 -0
@@ -0,0 +1,545 @@
1
+ import{r as x,j as e}from"./iframe-BUaP2gIF.js";import{m as Y}from"./proxy-9Y4F2rF8.js";import"./preload-helper-C1FmrZbK.js";const _e="_calendar_1k9gq_2",je="_loading_1k9gq_14",Te="_loadingSpinner_1k9gq_21",ze="_header_1k9gq_27",Me="_navigation_1k9gq_35",$e="_navButton_1k9gq_41",Ne="_title_1k9gq_60",Re="_controls_1k9gq_70",Be="_todayButton_1k9gq_76",qe="_viewToggle_1k9gq_92",Le="_viewButton_1k9gq_99",Fe="_active_1k9gq_113",Ae="_weekDays_1k9gq_123",Ie="_weekNumberHeader_1k9gq_134",Pe="_weekDay_1k9gq_123",We="_daysGrid_1k9gq_151",Ve="_weekView_1k9gq_161",Oe="_dayCell_1k9gq_165",Ue="_dayNumber_1k9gq_194",He="_today_1k9gq_76",Ye="_events_1k9gq_213",Ge="_event_1k9gq_213",Je="_eventTitle_1k9gq_235",Ke="_eventTime_1k9gq_240",Qe="_otherMonth_1k9gq_280",Xe="_weekNumber_1k9gq_134",Ze="_completed_1k9gq_330",et="_completedIcon_1k9gq_351",tt="_moreEvents_1k9gq_358",nt="_emptyState_1k9gq_368",a={calendar:_e,loading:je,loadingSpinner:Te,header:ze,navigation:Me,navButton:$e,title:Ne,controls:Re,todayButton:Be,viewToggle:qe,viewButton:Le,active:Fe,weekDays:Ae,weekNumberHeader:Ie,weekDay:Pe,daysGrid:We,weekView:Ve,dayCell:Oe,dayNumber:Ue,today:He,events:Ye,event:Ge,eventTitle:Je,eventTime:Ke,otherMonth:Qe,weekNumber:Xe,completed:Ze,completedIcon:et,moreEvents:tt,emptyState:nt};function S({events:n,onEventClick:r,onDateClick:c,viewMode:m="month",initialDate:y=new Date,config:h={},className:i="",style:d={},loading:s=!1,emptyState:v}){const[u,B]=x.useState(y),[w,I]=x.useState(m),{eventColors:P={},iconRenderer:W,maxEventsPerDay:q=3,mondayStart:C=!1,showWeekNumbers:V=!1,dateFormat:O={month:"long",year:"numeric"},locale:b="en-US",dayLabels:ue,monthNames:_}=h,ye=ue||(C?["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),U=x.useMemo(()=>{const t=u.getFullYear(),l=u.getMonth();let o,p,k;if(w==="week"){o=new Date(u);const D=o.getDay(),f=C?o.getDate()-D+(D===0?-6:1):o.getDate()-D;o=new Date(o.setDate(f)),o.setHours(0,0,0,0),p=new Date(o),p.setDate(p.getDate()+6);const L=o.toLocaleDateString(b,{day:"numeric",month:"short"}),F=p.toLocaleDateString(b,{day:"numeric",month:"short"});k=`${L} - ${F}`}else{const D=new Date(t,l,1),f=new Date(t,l+1,0);o=new Date(D);const L=C?(D.getDay()+6)%7:D.getDay();o.setDate(o.getDate()-L),p=new Date(f);const F=C?(f.getDay()+6)%7:f.getDay();p.setDate(p.getDate()+(6-F)),_&&_[l]?k=`${_[l]} ${t}`:k=u.toLocaleDateString(b,O)}const E=[],g=new Date(o);for(;g<=p;)E.push(new Date(g)),g.setDate(g.getDate()+1);return{days:E,displayTitle:k}},[u,w,C,b,O,_]),he=t=>{const l=n.filter(o=>new Date(o.date).toDateString()===t.toDateString());return w==="week"?l.sort((o,p)=>{const k=o.time?H(o.time):999999,E=p.time?H(p.time):999999;return k-E}):l},H=t=>{const[l,o]=t.split(":").map(Number);return l*60+o},we=()=>{const t=new Date(u);w==="week"?t.setDate(t.getDate()-7):t.setMonth(t.getMonth()-1),B(t)},De=()=>{const t=new Date(u);w==="week"?t.setDate(t.getDate()+7):t.setMonth(t.getMonth()+1),B(t)},ke=()=>{B(new Date)},xe=t=>{if(t.color)return t.color;if(t.type&&P[t.type])return P[t.type];const l={high:"#FF4444",medium:"#FFA500",low:"#4A90E2"};return t.priority&&l[t.priority]?l[t.priority]:"#4A90E2"},fe=t=>{r&&r(t)},Se=t=>{c&&c(t)},Ee=t=>{const l=new Date;return t.toDateString()===l.toDateString()},Ce=t=>t.getMonth()===u.getMonth(),be=t=>{const l=new Date(t.getFullYear(),0,1),o=t.getTime()-l.getTime(),p=1e3*60*60*24*7;return Math.floor(o/p)+1};return s?e.jsx("div",{className:`${a.calendar} ${a.loading} ${i}`,style:d,children:e.jsx("div",{className:a.loadingSpinner,children:"Loading..."})}):e.jsxs("div",{className:`${a.calendar} ${i}`,style:d,children:[e.jsxs("div",{className:a.header,children:[e.jsxs("div",{className:a.navigation,children:[e.jsx("button",{onClick:we,className:a.navButton,"aria-label":"Previous",children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"15,18 9,12 15,6"})})}),e.jsx("h3",{className:a.title,children:U.displayTitle}),e.jsx("button",{onClick:De,className:a.navButton,"aria-label":"Next",children:e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"9,6 15,12 9,18"})})})]}),e.jsxs("div",{className:a.controls,children:[e.jsx("button",{onClick:ke,className:a.todayButton,children:"Today"}),e.jsxs("div",{className:a.viewToggle,children:[e.jsx("button",{className:`${a.viewButton} ${w==="month"?a.active:""}`,onClick:()=>I("month"),children:"Month"}),e.jsx("button",{className:`${a.viewButton} ${w==="week"?a.active:""}`,onClick:()=>I("week"),children:"Week"})]})]})]}),e.jsxs("div",{className:a.weekDays,children:[V&&e.jsx("div",{className:a.weekNumberHeader,children:"Week"}),ye.map(t=>e.jsx("div",{className:a.weekDay,children:t},t))]}),e.jsx("div",{className:`${a.daysGrid} ${w==="week"?a.weekView:""}`,children:U.days.map((t,l)=>{const o=he(t),p=Ee(t),k=w==="week"||Ce(t),E=V&&l%7===0;return e.jsxs(Y.div,{className:`${a.dayCell} ${p?a.today:""} ${k?"":a.otherMonth}`,initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.3,delay:l*.02,ease:"easeOut"},onClick:()=>Se(t),children:[E&&e.jsx("div",{className:a.weekNumber,children:be(t)}),e.jsx("div",{className:a.dayNumber,children:t.getDate()}),o.length>0&&e.jsxs("div",{className:a.events,children:[o.slice(0,q).map((g,D)=>e.jsxs(Y.div,{className:`${a.event} ${g.status==="completed"?a.completed:""}`,style:{backgroundColor:xe(g),opacity:g.status==="completed"?.7:1},onClick:f=>{f.stopPropagation(),fe(g)},initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{duration:.2,delay:D*.05,ease:"easeOut"},whileHover:{scale:1.02,y:-1,transition:{duration:.1}},whileTap:{scale:.98,transition:{duration:.1}},children:[W&&W(g),e.jsxs("span",{className:a.eventTitle,children:[g.time&&e.jsx("span",{className:a.eventTime,children:g.time}),g.title]}),g.status==="completed"&&e.jsx("svg",{className:a.completedIcon,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",children:e.jsx("polyline",{points:"20,6 9,17 4,12"})})]},g.id)),o.length>q&&e.jsxs("div",{className:a.moreEvents,children:["+",o.length-q," more"]})]}),o.length===0&&v&&e.jsx("div",{className:a.emptyState,children:v})]},`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`)})})]})}S.__docgenInfo={description:`Calendar component - A flexible, reusable calendar for displaying events
2
+
3
+ @component
4
+ @description
5
+ A highly customizable calendar component that can display events in month or week view.
6
+ Supports custom event types, colors, icons, and localization. Perfect for scheduling,
7
+ project management, habit tracking, or any date-based data visualization.
8
+
9
+ @example
10
+ // Basic usage
11
+ <Calendar
12
+ events={myEvents}
13
+ onEventClick={handleEventClick}
14
+ viewMode="month"
15
+ />
16
+
17
+ @example
18
+ // With custom configuration
19
+ <Calendar
20
+ events={projectEvents}
21
+ config={{
22
+ eventColors: { task: '#4A90E2', meeting: '#7ED321' },
23
+ maxEventsPerDay: 5,
24
+ mondayStart: true
25
+ }}
26
+ onEventClick={handleEventClick}
27
+ />`,methods:[],displayName:"Calendar",props:{events:{required:!0,tsType:{name:"Array",elements:[{name:"CalendarEvent"}],raw:"CalendarEvent[]"},description:"Array of events to display"},onEventClick:{required:!1,tsType:{name:"signature",type:"function",raw:"(event: CalendarEvent) => void",signature:{arguments:[{type:{name:"CalendarEvent"},name:"event"}],return:{name:"void"}}},description:"Callback when an event is clicked"},onDateClick:{required:!1,tsType:{name:"signature",type:"function",raw:"(date: Date) => void",signature:{arguments:[{type:{name:"Date"},name:"date"}],return:{name:"void"}}},description:"Callback when a date is clicked"},viewMode:{required:!1,tsType:{name:"union",raw:"'month' | 'week'",elements:[{name:"literal",value:"'month'"},{name:"literal",value:"'week'"}]},description:"Initial view mode",defaultValue:{value:"'month'",computed:!1}},initialDate:{required:!1,tsType:{name:"Date"},description:"Initial date to display",defaultValue:{value:"new Date()",computed:!1}},config:{required:!1,tsType:{name:"CalendarConfig"},description:"Configuration options",defaultValue:{value:"{}",computed:!1}},className:{required:!1,tsType:{name:"string"},description:"Custom CSS class",defaultValue:{value:"''",computed:!1}},style:{required:!1,tsType:{name:"ReactCSSProperties",raw:"React.CSSProperties"},description:"Custom styles",defaultValue:{value:"{}",computed:!1}},loading:{required:!1,tsType:{name:"boolean"},description:"Loading state",defaultValue:{value:"false",computed:!1}},emptyState:{required:!1,tsType:{name:"ReactReactNode",raw:"React.ReactNode"},description:"Custom empty state component"}}};const rt={title:"Organisms/Calendar",component:S,parameters:{layout:"padded",docs:{description:{component:"A flexible, customizable calendar component for displaying events in month or week view. Perfect for scheduling, project management, habit tracking, or any date-based data visualization."}}},tags:["autodocs"],argTypes:{events:{control:"object",description:"Array of events to display on the calendar"},viewMode:{control:"radio",options:["month","week"],description:"Initial view mode for the calendar"},onEventClick:{action:"event-clicked"},onDateClick:{action:"date-clicked"}}},A=()=>{const n=new Date,r=[];for(let c=0;c<15;c++){const m=new Date(n);m.setDate(n.getDate()+Math.floor(Math.random()*30)-15),r.push({id:`event-${c}`,title:`Event ${c+1}`,date:m,time:Math.random()>.5?`${9+Math.floor(Math.random()*8)}:${Math.random()>.5?"00":"30"}`:void 0,type:["meeting","task","deadline","milestone"][Math.floor(Math.random()*4)],status:Math.random()>.7?"completed":"pending",priority:["high","medium","low"][Math.floor(Math.random()*3)]})}return r},j={args:{events:A(),viewMode:"month"}},T={args:{events:A(),viewMode:"week"}},z={render:()=>{const[n,r]=x.useState(null),[c,m]=x.useState(null),[y,h]=x.useState(A()),i=s=>{r(s),console.log("Event clicked:",s),h(v=>v.map(u=>u.id===s.id?{...u,status:u.status==="completed"?"pending":"completed"}:u))},d=s=>{m(s),console.log("Date clicked:",s)};return e.jsxs("div",{children:[e.jsx(S,{events:y,onEventClick:i,onDateClick:d,viewMode:"month"}),e.jsxs("div",{style:{marginTop:"var(--spacing-lg)",padding:"var(--spacing-md)",background:"var(--color-background-secondary)",borderRadius:"var(--radius-md)"},children:[e.jsx("h4",{style:{margin:"0 0 var(--spacing-md) 0",color:"var(--color-primary)"},children:"🎯 Click Events Above to See Interaction"}),n&&e.jsxs("div",{style:{marginBottom:"var(--spacing-md)",padding:"var(--spacing-sm)",background:"var(--color-background)",borderRadius:"var(--radius-sm)",border:"1px solid var(--color-border)"},children:[e.jsx("h5",{style:{margin:"0 0 var(--spacing-xs) 0",color:"var(--color-text)"},children:"📅 Event Clicked (toggled status):"}),e.jsxs("p",{style:{margin:"4px 0",fontSize:"var(--font-size-sm)"},children:[e.jsx("strong",{children:"Title:"})," ",n.title]}),e.jsxs("p",{style:{margin:"4px 0",fontSize:"var(--font-size-sm)"},children:[e.jsx("strong",{children:"Date:"})," ",new Date(n.date).toLocaleDateString()]}),n.time&&e.jsxs("p",{style:{margin:"4px 0",fontSize:"var(--font-size-sm)"},children:[e.jsx("strong",{children:"Time:"})," ",n.time]}),e.jsxs("p",{style:{margin:"4px 0",fontSize:"var(--font-size-sm)"},children:[e.jsx("strong",{children:"Type:"})," ",n.type]}),e.jsxs("p",{style:{margin:"4px 0",fontSize:"var(--font-size-sm)"},children:[e.jsx("strong",{children:"Status:"}),e.jsx("span",{style:{marginLeft:"var(--spacing-xs)",padding:"2px 6px",borderRadius:"var(--radius-xs)",backgroundColor:n.status==="completed"?"#7ED321":"#FFA500",color:"white",fontSize:"var(--font-size-xs)"},children:n.status})]}),e.jsx("p",{style:{margin:"4px 0",fontSize:"var(--font-size-sm)"},children:e.jsx("strong",{children:"Full Event Object:"})}),e.jsx("pre",{style:{margin:"4px 0",padding:"var(--spacing-xs)",background:"var(--color-background-tertiary)",borderRadius:"var(--radius-xs)",fontSize:"var(--font-size-xs)",overflow:"auto"},children:JSON.stringify(n,null,2)})]}),c&&e.jsxs("div",{style:{padding:"var(--spacing-sm)",background:"var(--color-background)",borderRadius:"var(--radius-sm)",border:"1px solid var(--color-border)"},children:[e.jsx("h5",{style:{margin:"0 0 var(--spacing-xs) 0",color:"var(--color-text)"},children:"📆 Date Clicked:"}),e.jsx("p",{style:{margin:"4px 0",fontSize:"var(--font-size-sm)"},children:c.toLocaleDateString("en-US",{weekday:"long",year:"numeric",month:"long",day:"numeric"})}),e.jsx("p",{style:{margin:"4px 0",fontSize:"var(--font-size-xs)",color:"var(--color-text-secondary)"},children:"💡 You could create a new event here, open a day view, etc."})]}),!n&&!c&&e.jsx("p",{style:{margin:0,fontSize:"var(--font-size-sm)",color:"var(--color-text-secondary)",fontStyle:"italic"},children:"Click on any event or date above to see the interaction..."})]})]})}},M={render:()=>{const n=[],r=new Date,c=["Exercise","Meditation","Reading","Water intake","Sleep"],m=["💪","🧘","📚","💧","😴"];for(let y=-10;y<=10;y++){const h=new Date(r);h.setDate(r.getDate()+y),c.forEach((i,d)=>{Math.random()>.3&&n.push({id:`habit-${y}-${d}`,title:i,date:new Date(h),type:"habit",status:Math.random()>.1?"completed":"pending",color:`hsl(${d*70}, 70%, 50%)`,metadata:{icon:m[d]}})})}return e.jsx(S,{events:n,config:{iconRenderer:y=>{var h;return e.jsx("span",{style:{fontSize:"10px"},children:((h=y.metadata)==null?void 0:h.icon)||"✓"})},maxEventsPerDay:8,mondayStart:!0},viewMode:"month"})}},$={render:()=>{const n=new Date,r=[{id:"schedule-1",title:"Team Standup",date:new Date(n.getTime()-(n.getDay()-1)*24*60*60*1e3),time:"09:00",type:"meeting",status:"pending",priority:"medium"},{id:"schedule-2",title:"Code Review",date:new Date(n.getTime()-(n.getDay()-1)*24*60*60*1e3),time:"11:30",type:"review",status:"completed",priority:"high"},{id:"schedule-3",title:"Client Call",date:new Date(n.getTime()-(n.getDay()-2)*24*60*60*1e3),time:"10:00",type:"call",status:"pending",priority:"high"},{id:"schedule-4",title:"Sprint Planning",date:new Date(n.getTime()-(n.getDay()-2)*24*60*60*1e3),time:"14:00",type:"meeting",status:"pending",priority:"high"},{id:"schedule-5",title:"Design Review",date:new Date(n.getTime()-(n.getDay()-3)*24*60*60*1e3),time:"15:00",type:"review",status:"pending",priority:"medium"},{id:"schedule-6",title:"All Hands Meeting",date:new Date(n.getTime()-(n.getDay()-4)*24*60*60*1e3),time:"16:00",type:"meeting",status:"pending",priority:"low"},{id:"schedule-7",title:"Demo Day",date:new Date(n.getTime()-(n.getDay()-5)*24*60*60*1e3),time:"13:00",type:"presentation",status:"pending",priority:"high"},{id:"schedule-8",title:"Team Lunch",date:new Date(n.getTime()-(n.getDay()-5)*24*60*60*1e3),time:"12:00",type:"break",status:"pending",priority:"low"}];return e.jsx(S,{events:r,config:{eventColors:{meeting:"#4A90E2",call:"#7ED321",break:"#F5A623",review:"#BD10E0",presentation:"#FF6B6B"},iconRenderer:c=>{const m={meeting:"👥",call:"📞",break:"🍽️",review:"👀",presentation:"🎯"};return e.jsx("span",{style:{fontSize:"12px"},children:m[c.type]||"📅"})},maxEventsPerDay:6,mondayStart:!0},viewMode:"week"})}},N={render:()=>{const n=[{id:"custom-1",title:"VIP Client Meeting",date:new Date,time:"10:00",type:"vip",status:"pending",priority:"high"},{id:"custom-2",title:"Design Sprint",date:new Date(Date.now()+864e5),type:"workshop",status:"pending",priority:"medium"},{id:"custom-3",title:"Project Milestone ✓",date:new Date(Date.now()-864e5),type:"milestone",status:"completed",priority:"high"}];return e.jsxs("div",{children:[e.jsx("h3",{style:{marginBottom:"var(--spacing-md)",color:"var(--color-text)"},children:"🎨 Custom Colors, Icons & Configuration"}),e.jsx(S,{events:n,config:{eventColors:{vip:"#FF6B6B",workshop:"#4ECDC4",milestone:"#F39C12"},iconRenderer:r=>r.type==="vip"?e.jsx("span",{style:{fontSize:"12px"},children:"⭐"}):r.type==="workshop"?e.jsx("span",{style:{fontSize:"12px"},children:"🎨"}):r.type==="milestone"?e.jsx("span",{style:{fontSize:"12px"},children:"🎯"}):e.jsx("span",{style:{fontSize:"12px"},children:"📅"}),maxEventsPerDay:6,mondayStart:!0,showWeekNumbers:!0,locale:"en-US"},viewMode:"month"})]})}},R={render:()=>{const[n,r]=x.useState([{id:"1",title:"Project Kickoff Meeting",date:new Date,time:"10:00",type:"meeting",status:"pending",priority:"high",metadata:{attendees:["John","Sarah","Mike"],location:"Conference Room A",description:"Initial project planning and team introductions"}},{id:"2",title:"Design Review",date:new Date(Date.now()+864e5),time:"14:30",type:"review",status:"pending",priority:"medium",metadata:{reviewType:"UI/UX",reviewer:"Design Team"}},{id:"3",title:"Code Deployment",date:new Date(Date.now()+1728e5),type:"deployment",status:"pending",priority:"high",metadata:{environment:"production",version:"v2.1.0"}}]),[c,m]=x.useState([]),y=i=>{const d=new Date().toLocaleTimeString();switch(i.type){case"meeting":m(s=>[`[${d}] 📹 Opening meeting: "${i.title}"`,...s]);break;case"review":m(s=>[`[${d}] 👀 Opening review: "${i.title}"`,...s]);break;case"deployment":m(s=>[`[${d}] 🚀 Deployment details: "${i.title}"`,...s]);break;default:m(s=>[`[${d}] 📅 Event selected: "${i.title}"`,...s])}r(s=>s.map(v=>v.id===i.id?{...v,status:v.status==="completed"?"pending":"completed"}:v))},h=i=>{const d=new Date().toLocaleTimeString();m(v=>[`[${d}] 📆 Creating new event on ${i.toLocaleDateString()}`,...v]);const s={id:`new-${Date.now()}`,title:"Quick Meeting",date:i,time:"15:00",type:"meeting",status:"pending",priority:"medium"};r(v=>[...v,s])};return e.jsxs("div",{children:[e.jsx("h3",{style:{marginBottom:"var(--spacing-md)",color:"var(--color-text)"},children:"🎯 Real-World Usage Example"}),e.jsx("p",{style:{marginBottom:"var(--spacing-lg)",color:"var(--color-text-secondary)",fontSize:"var(--font-size-sm)"},children:"Click events to toggle status, click dates to add new events"}),e.jsx(S,{events:n,onEventClick:y,onDateClick:h,config:{eventColors:{meeting:"#4A90E2",review:"#BD10E0",deployment:"#FF6B6B"},iconRenderer:i=>{const d={meeting:"👥",review:"👀",deployment:"🚀"};return e.jsx("span",{children:d[i.type]||"📅"})},maxEventsPerDay:5},viewMode:"month"}),e.jsxs("div",{style:{marginTop:"var(--spacing-lg)",padding:"var(--spacing-md)",background:"var(--color-background-secondary)",borderRadius:"var(--radius-md)",maxHeight:"200px",overflow:"auto"},children:[e.jsx("h4",{style:{margin:"0 0 var(--spacing-sm) 0",color:"var(--color-text)"},children:"🔄 Action Log (Latest First)"}),c.length===0?e.jsx("p",{style:{margin:0,fontSize:"var(--font-size-sm)",color:"var(--color-text-secondary)",fontStyle:"italic"},children:"No actions yet - click on events or dates above"}):e.jsx("div",{children:c.map((i,d)=>e.jsx("div",{style:{padding:"var(--spacing-xs)",margin:"2px 0",background:"var(--color-background)",borderRadius:"var(--radius-xs)",fontSize:"var(--font-size-xs)",fontFamily:"monospace"},children:i},d))})]})]})}};var G,J,K;j.parameters={...j.parameters,docs:{...(G=j.parameters)==null?void 0:G.docs,source:{originalSource:`{
28
+ args: {
29
+ events: generateSampleEvents(),
30
+ viewMode: 'month'
31
+ }
32
+ }`,...(K=(J=j.parameters)==null?void 0:J.docs)==null?void 0:K.source}}};var Q,X,Z;T.parameters={...T.parameters,docs:{...(Q=T.parameters)==null?void 0:Q.docs,source:{originalSource:`{
33
+ args: {
34
+ events: generateSampleEvents(),
35
+ viewMode: 'week'
36
+ }
37
+ }`,...(Z=(X=T.parameters)==null?void 0:X.docs)==null?void 0:Z.source}}};var ee,te,ne;z.parameters={...z.parameters,docs:{...(ee=z.parameters)==null?void 0:ee.docs,source:{originalSource:`{
38
+ render: () => {
39
+ const [selectedEvent, setSelectedEvent] = useState<CalendarEvent | null>(null);
40
+ const [selectedDate, setSelectedDate] = useState<Date | null>(null);
41
+ const [events, setEvents] = useState(generateSampleEvents());
42
+
43
+ // This is where your consuming app would handle event clicks
44
+ const handleEventClick = (event: CalendarEvent) => {
45
+ setSelectedEvent(event);
46
+
47
+ // Example: You could open a modal, navigate to details, etc.
48
+ console.log('Event clicked:', event);
49
+
50
+ // Example: Toggle event status on click
51
+ setEvents(prevEvents => prevEvents.map(e => e.id === event.id ? {
52
+ ...e,
53
+ status: e.status === 'completed' ? 'pending' : 'completed'
54
+ } : e));
55
+ };
56
+
57
+ // This is where your consuming app would handle date clicks
58
+ const handleDateClick = (date: Date) => {
59
+ setSelectedDate(date);
60
+ console.log('Date clicked:', date);
61
+
62
+ // Example: You could create a new event on this date
63
+ // Example: Open a date picker or day view
64
+ };
65
+ return <div>
66
+ <Calendar events={events} onEventClick={handleEventClick} onDateClick={handleDateClick} viewMode="month" />
67
+
68
+ <div style={{
69
+ marginTop: 'var(--spacing-lg)',
70
+ padding: 'var(--spacing-md)',
71
+ background: 'var(--color-background-secondary)',
72
+ borderRadius: 'var(--radius-md)'
73
+ }}>
74
+ <h4 style={{
75
+ margin: '0 0 var(--spacing-md) 0',
76
+ color: 'var(--color-primary)'
77
+ }}>
78
+ 🎯 Click Events Above to See Interaction
79
+ </h4>
80
+
81
+ {selectedEvent && <div style={{
82
+ marginBottom: 'var(--spacing-md)',
83
+ padding: 'var(--spacing-sm)',
84
+ background: 'var(--color-background)',
85
+ borderRadius: 'var(--radius-sm)',
86
+ border: '1px solid var(--color-border)'
87
+ }}>
88
+ <h5 style={{
89
+ margin: '0 0 var(--spacing-xs) 0',
90
+ color: 'var(--color-text)'
91
+ }}>
92
+ 📅 Event Clicked (toggled status):
93
+ </h5>
94
+ <p style={{
95
+ margin: '4px 0',
96
+ fontSize: 'var(--font-size-sm)'
97
+ }}>
98
+ <strong>Title:</strong> {selectedEvent.title}
99
+ </p>
100
+ <p style={{
101
+ margin: '4px 0',
102
+ fontSize: 'var(--font-size-sm)'
103
+ }}>
104
+ <strong>Date:</strong> {new Date(selectedEvent.date).toLocaleDateString()}
105
+ </p>
106
+ {selectedEvent.time && <p style={{
107
+ margin: '4px 0',
108
+ fontSize: 'var(--font-size-sm)'
109
+ }}>
110
+ <strong>Time:</strong> {selectedEvent.time}
111
+ </p>}
112
+ <p style={{
113
+ margin: '4px 0',
114
+ fontSize: 'var(--font-size-sm)'
115
+ }}>
116
+ <strong>Type:</strong> {selectedEvent.type}
117
+ </p>
118
+ <p style={{
119
+ margin: '4px 0',
120
+ fontSize: 'var(--font-size-sm)'
121
+ }}>
122
+ <strong>Status:</strong>
123
+ <span style={{
124
+ marginLeft: 'var(--spacing-xs)',
125
+ padding: '2px 6px',
126
+ borderRadius: 'var(--radius-xs)',
127
+ backgroundColor: selectedEvent.status === 'completed' ? '#7ED321' : '#FFA500',
128
+ color: 'white',
129
+ fontSize: 'var(--font-size-xs)'
130
+ }}>
131
+ {selectedEvent.status}
132
+ </span>
133
+ </p>
134
+ <p style={{
135
+ margin: '4px 0',
136
+ fontSize: 'var(--font-size-sm)'
137
+ }}>
138
+ <strong>Full Event Object:</strong>
139
+ </p>
140
+ <pre style={{
141
+ margin: '4px 0',
142
+ padding: 'var(--spacing-xs)',
143
+ background: 'var(--color-background-tertiary)',
144
+ borderRadius: 'var(--radius-xs)',
145
+ fontSize: 'var(--font-size-xs)',
146
+ overflow: 'auto'
147
+ }}>
148
+ {JSON.stringify(selectedEvent, null, 2)}
149
+ </pre>
150
+ </div>}
151
+
152
+ {selectedDate && <div style={{
153
+ padding: 'var(--spacing-sm)',
154
+ background: 'var(--color-background)',
155
+ borderRadius: 'var(--radius-sm)',
156
+ border: '1px solid var(--color-border)'
157
+ }}>
158
+ <h5 style={{
159
+ margin: '0 0 var(--spacing-xs) 0',
160
+ color: 'var(--color-text)'
161
+ }}>
162
+ 📆 Date Clicked:
163
+ </h5>
164
+ <p style={{
165
+ margin: '4px 0',
166
+ fontSize: 'var(--font-size-sm)'
167
+ }}>
168
+ {selectedDate.toLocaleDateString('en-US', {
169
+ weekday: 'long',
170
+ year: 'numeric',
171
+ month: 'long',
172
+ day: 'numeric'
173
+ })}
174
+ </p>
175
+ <p style={{
176
+ margin: '4px 0',
177
+ fontSize: 'var(--font-size-xs)',
178
+ color: 'var(--color-text-secondary)'
179
+ }}>
180
+ 💡 You could create a new event here, open a day view, etc.
181
+ </p>
182
+ </div>}
183
+
184
+ {!selectedEvent && !selectedDate && <p style={{
185
+ margin: 0,
186
+ fontSize: 'var(--font-size-sm)',
187
+ color: 'var(--color-text-secondary)',
188
+ fontStyle: 'italic'
189
+ }}>
190
+ Click on any event or date above to see the interaction...
191
+ </p>}
192
+ </div>
193
+ </div>;
194
+ }
195
+ }`,...(ne=(te=z.parameters)==null?void 0:te.docs)==null?void 0:ne.source}}};var ae,oe,ie;M.parameters={...M.parameters,docs:{...(ae=M.parameters)==null?void 0:ae.docs,source:{originalSource:`{
196
+ render: () => {
197
+ const habitEvents: CalendarEvent[] = [];
198
+ const today = new Date();
199
+
200
+ // Generate habit tracking events
201
+ const habits = ['Exercise', 'Meditation', 'Reading', 'Water intake', 'Sleep'];
202
+ const habitIcons = ['💪', '🧘', '📚', '💧', '😴'];
203
+ for (let i = -10; i <= 10; i++) {
204
+ const date = new Date(today);
205
+ date.setDate(today.getDate() + i);
206
+ habits.forEach((habit, index) => {
207
+ if (Math.random() > 0.3) {
208
+ // 70% chance of doing the habit
209
+ habitEvents.push({
210
+ id: \`habit-\${i}-\${index}\`,
211
+ title: habit,
212
+ date: new Date(date),
213
+ type: 'habit',
214
+ status: Math.random() > 0.1 ? 'completed' : 'pending',
215
+ color: \`hsl(\${index * 70}, 70%, 50%)\`,
216
+ metadata: {
217
+ icon: habitIcons[index]
218
+ }
219
+ });
220
+ }
221
+ });
222
+ }
223
+ return <Calendar events={habitEvents} config={{
224
+ iconRenderer: event => <span style={{
225
+ fontSize: '10px'
226
+ }}>{event.metadata?.icon || '✓'}</span>,
227
+ maxEventsPerDay: 8,
228
+ mondayStart: true
229
+ }} viewMode="month" />;
230
+ }
231
+ }`,...(ie=(oe=M.parameters)==null?void 0:oe.docs)==null?void 0:ie.source}}};var se,re,de;$.parameters={...$.parameters,docs:{...(se=$.parameters)==null?void 0:se.docs,source:{originalSource:`{
232
+ render: () => {
233
+ const today = new Date();
234
+ const scheduleEvents: CalendarEvent[] = [
235
+ // Monday
236
+ {
237
+ id: 'schedule-1',
238
+ title: 'Team Standup',
239
+ date: new Date(today.getTime() - (today.getDay() - 1) * 24 * 60 * 60 * 1000),
240
+ time: '09:00',
241
+ type: 'meeting',
242
+ status: 'pending',
243
+ priority: 'medium'
244
+ }, {
245
+ id: 'schedule-2',
246
+ title: 'Code Review',
247
+ date: new Date(today.getTime() - (today.getDay() - 1) * 24 * 60 * 60 * 1000),
248
+ time: '11:30',
249
+ type: 'review',
250
+ status: 'completed',
251
+ priority: 'high'
252
+ },
253
+ // Tuesday
254
+ {
255
+ id: 'schedule-3',
256
+ title: 'Client Call',
257
+ date: new Date(today.getTime() - (today.getDay() - 2) * 24 * 60 * 60 * 1000),
258
+ time: '10:00',
259
+ type: 'call',
260
+ status: 'pending',
261
+ priority: 'high'
262
+ }, {
263
+ id: 'schedule-4',
264
+ title: 'Sprint Planning',
265
+ date: new Date(today.getTime() - (today.getDay() - 2) * 24 * 60 * 60 * 1000),
266
+ time: '14:00',
267
+ type: 'meeting',
268
+ status: 'pending',
269
+ priority: 'high'
270
+ },
271
+ // Wednesday
272
+ {
273
+ id: 'schedule-5',
274
+ title: 'Design Review',
275
+ date: new Date(today.getTime() - (today.getDay() - 3) * 24 * 60 * 60 * 1000),
276
+ time: '15:00',
277
+ type: 'review',
278
+ status: 'pending',
279
+ priority: 'medium'
280
+ },
281
+ // Thursday
282
+ {
283
+ id: 'schedule-6',
284
+ title: 'All Hands Meeting',
285
+ date: new Date(today.getTime() - (today.getDay() - 4) * 24 * 60 * 60 * 1000),
286
+ time: '16:00',
287
+ type: 'meeting',
288
+ status: 'pending',
289
+ priority: 'low'
290
+ },
291
+ // Friday
292
+ {
293
+ id: 'schedule-7',
294
+ title: 'Demo Day',
295
+ date: new Date(today.getTime() - (today.getDay() - 5) * 24 * 60 * 60 * 1000),
296
+ time: '13:00',
297
+ type: 'presentation',
298
+ status: 'pending',
299
+ priority: 'high'
300
+ }, {
301
+ id: 'schedule-8',
302
+ title: 'Team Lunch',
303
+ date: new Date(today.getTime() - (today.getDay() - 5) * 24 * 60 * 60 * 1000),
304
+ time: '12:00',
305
+ type: 'break',
306
+ status: 'pending',
307
+ priority: 'low'
308
+ }];
309
+ return <Calendar events={scheduleEvents} config={{
310
+ eventColors: {
311
+ meeting: '#4A90E2',
312
+ call: '#7ED321',
313
+ break: '#F5A623',
314
+ review: '#BD10E0',
315
+ presentation: '#FF6B6B'
316
+ },
317
+ iconRenderer: event => {
318
+ const icons = {
319
+ meeting: '👥',
320
+ call: '📞',
321
+ break: '🍽️',
322
+ review: '👀',
323
+ presentation: '🎯'
324
+ };
325
+ return <span style={{
326
+ fontSize: '12px'
327
+ }}>{icons[event.type as keyof typeof icons] || '📅'}</span>;
328
+ },
329
+ maxEventsPerDay: 6,
330
+ mondayStart: true
331
+ }} viewMode="week" />;
332
+ }
333
+ }`,...(de=(re=$.parameters)==null?void 0:re.docs)==null?void 0:de.source}}};var le,ce,me;N.parameters={...N.parameters,docs:{...(le=N.parameters)==null?void 0:le.docs,source:{originalSource:`{
334
+ render: () => {
335
+ const customEvents: CalendarEvent[] = [{
336
+ id: 'custom-1',
337
+ title: 'VIP Client Meeting',
338
+ date: new Date(),
339
+ time: '10:00',
340
+ type: 'vip',
341
+ status: 'pending',
342
+ priority: 'high'
343
+ }, {
344
+ id: 'custom-2',
345
+ title: 'Design Sprint',
346
+ date: new Date(Date.now() + 24 * 60 * 60 * 1000),
347
+ type: 'workshop',
348
+ status: 'pending',
349
+ priority: 'medium'
350
+ }, {
351
+ id: 'custom-3',
352
+ title: 'Project Milestone ✓',
353
+ date: new Date(Date.now() - 24 * 60 * 60 * 1000),
354
+ type: 'milestone',
355
+ status: 'completed',
356
+ priority: 'high'
357
+ }];
358
+ return <div>
359
+ <h3 style={{
360
+ marginBottom: 'var(--spacing-md)',
361
+ color: 'var(--color-text)'
362
+ }}>
363
+ 🎨 Custom Colors, Icons & Configuration
364
+ </h3>
365
+ <Calendar events={customEvents} config={{
366
+ eventColors: {
367
+ vip: '#FF6B6B',
368
+ workshop: '#4ECDC4',
369
+ milestone: '#F39C12'
370
+ },
371
+ iconRenderer: event => {
372
+ if (event.type === 'vip') return <span style={{
373
+ fontSize: '12px'
374
+ }}>⭐</span>;
375
+ if (event.type === 'workshop') return <span style={{
376
+ fontSize: '12px'
377
+ }}>🎨</span>;
378
+ if (event.type === 'milestone') return <span style={{
379
+ fontSize: '12px'
380
+ }}>🎯</span>;
381
+ return <span style={{
382
+ fontSize: '12px'
383
+ }}>📅</span>;
384
+ },
385
+ maxEventsPerDay: 6,
386
+ mondayStart: true,
387
+ showWeekNumbers: true,
388
+ locale: 'en-US'
389
+ }} viewMode="month" />
390
+ </div>;
391
+ }
392
+ }`,...(me=(ce=N.parameters)==null?void 0:ce.docs)==null?void 0:me.source}}};var pe,ge,ve;R.parameters={...R.parameters,docs:{...(pe=R.parameters)==null?void 0:pe.docs,source:{originalSource:`{
393
+ render: () => {
394
+ const [events, setEvents] = useState<CalendarEvent[]>([{
395
+ id: '1',
396
+ title: 'Project Kickoff Meeting',
397
+ date: new Date(),
398
+ time: '10:00',
399
+ type: 'meeting',
400
+ status: 'pending',
401
+ priority: 'high',
402
+ metadata: {
403
+ attendees: ['John', 'Sarah', 'Mike'],
404
+ location: 'Conference Room A',
405
+ description: 'Initial project planning and team introductions'
406
+ }
407
+ }, {
408
+ id: '2',
409
+ title: 'Design Review',
410
+ date: new Date(Date.now() + 24 * 60 * 60 * 1000),
411
+ time: '14:30',
412
+ type: 'review',
413
+ status: 'pending',
414
+ priority: 'medium',
415
+ metadata: {
416
+ reviewType: 'UI/UX',
417
+ reviewer: 'Design Team'
418
+ }
419
+ }, {
420
+ id: '3',
421
+ title: 'Code Deployment',
422
+ date: new Date(Date.now() + 2 * 24 * 60 * 60 * 1000),
423
+ type: 'deployment',
424
+ status: 'pending',
425
+ priority: 'high',
426
+ metadata: {
427
+ environment: 'production',
428
+ version: 'v2.1.0'
429
+ }
430
+ }]);
431
+ const [actionLog, setActionLog] = useState<string[]>([]);
432
+
433
+ // Real-world event click handler examples
434
+ const handleEventClick = (event: CalendarEvent) => {
435
+ const timestamp = new Date().toLocaleTimeString();
436
+
437
+ // Different actions based on event type
438
+ switch (event.type) {
439
+ case 'meeting':
440
+ // Could open meeting details modal, join video call, etc.
441
+ setActionLog(prev => [\`[\${timestamp}] 📹 Opening meeting: "\${event.title}"\`, ...prev]);
442
+ break;
443
+ case 'review':
444
+ // Could open review dashboard, show files to review, etc.
445
+ setActionLog(prev => [\`[\${timestamp}] 👀 Opening review: "\${event.title}"\`, ...prev]);
446
+ break;
447
+ case 'deployment':
448
+ // Could show deployment status, logs, rollback options, etc.
449
+ setActionLog(prev => [\`[\${timestamp}] 🚀 Deployment details: "\${event.title}"\`, ...prev]);
450
+ break;
451
+ default:
452
+ setActionLog(prev => [\`[\${timestamp}] 📅 Event selected: "\${event.title}"\`, ...prev]);
453
+ }
454
+
455
+ // Example: Mark as completed/pending on click
456
+ setEvents(prevEvents => prevEvents.map(e => e.id === event.id ? {
457
+ ...e,
458
+ status: e.status === 'completed' ? 'pending' : 'completed'
459
+ } : e));
460
+ };
461
+ const handleDateClick = (date: Date) => {
462
+ const timestamp = new Date().toLocaleTimeString();
463
+ setActionLog(prev => [\`[\${timestamp}] 📆 Creating new event on \${date.toLocaleDateString()}\`, ...prev]);
464
+
465
+ // Example: Add new event on date click
466
+ const newEvent: CalendarEvent = {
467
+ id: \`new-\${Date.now()}\`,
468
+ title: 'Quick Meeting',
469
+ date: date,
470
+ time: '15:00',
471
+ type: 'meeting',
472
+ status: 'pending',
473
+ priority: 'medium'
474
+ };
475
+ setEvents(prev => [...prev, newEvent]);
476
+ };
477
+ return <div>
478
+ <h3 style={{
479
+ marginBottom: 'var(--spacing-md)',
480
+ color: 'var(--color-text)'
481
+ }}>
482
+ 🎯 Real-World Usage Example
483
+ </h3>
484
+ <p style={{
485
+ marginBottom: 'var(--spacing-lg)',
486
+ color: 'var(--color-text-secondary)',
487
+ fontSize: 'var(--font-size-sm)'
488
+ }}>
489
+ Click events to toggle status, click dates to add new events
490
+ </p>
491
+
492
+ <Calendar events={events} onEventClick={handleEventClick} onDateClick={handleDateClick} config={{
493
+ eventColors: {
494
+ meeting: '#4A90E2',
495
+ review: '#BD10E0',
496
+ deployment: '#FF6B6B'
497
+ },
498
+ iconRenderer: event => {
499
+ const icons = {
500
+ meeting: '👥',
501
+ review: '👀',
502
+ deployment: '🚀'
503
+ };
504
+ return <span>{icons[event.type as keyof typeof icons] || '📅'}</span>;
505
+ },
506
+ maxEventsPerDay: 5
507
+ }} viewMode="month" />
508
+
509
+ <div style={{
510
+ marginTop: 'var(--spacing-lg)',
511
+ padding: 'var(--spacing-md)',
512
+ background: 'var(--color-background-secondary)',
513
+ borderRadius: 'var(--radius-md)',
514
+ maxHeight: '200px',
515
+ overflow: 'auto'
516
+ }}>
517
+ <h4 style={{
518
+ margin: '0 0 var(--spacing-sm) 0',
519
+ color: 'var(--color-text)'
520
+ }}>
521
+ 🔄 Action Log (Latest First)
522
+ </h4>
523
+ {actionLog.length === 0 ? <p style={{
524
+ margin: 0,
525
+ fontSize: 'var(--font-size-sm)',
526
+ color: 'var(--color-text-secondary)',
527
+ fontStyle: 'italic'
528
+ }}>
529
+ No actions yet - click on events or dates above
530
+ </p> : <div>
531
+ {actionLog.map((log, index) => <div key={index} style={{
532
+ padding: 'var(--spacing-xs)',
533
+ margin: '2px 0',
534
+ background: 'var(--color-background)',
535
+ borderRadius: 'var(--radius-xs)',
536
+ fontSize: 'var(--font-size-xs)',
537
+ fontFamily: 'monospace'
538
+ }}>
539
+ {log}
540
+ </div>)}
541
+ </div>}
542
+ </div>
543
+ </div>;
544
+ }
545
+ }`,...(ve=(ge=R.parameters)==null?void 0:ge.docs)==null?void 0:ve.source}}};const dt=["MonthView","WeekView","Interactive","HabitTracker","EventScheduler","CustomConfiguration","RealWorldUsage"];export{N as CustomConfiguration,$ as EventScheduler,M as HabitTracker,z as Interactive,j as MonthView,R as RealWorldUsage,T as WeekView,dt as __namedExportsOrder,rt as default};
@@ -0,0 +1 @@
1
+ ._card_1ebml_1{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);overflow:hidden;transition:all var(--transition-slow) cubic-bezier(.34,1.56,.64,1);position:relative}._card_1ebml_1:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,transparent 0%,rgba(255,255,255,.02) 100%);pointer-events:none;opacity:0;transition:opacity var(--transition-slow)}._card_1ebml_1:after{content:"";position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%);background:radial-gradient(circle at center,var(--color-primary-light),transparent 70%);border-radius:var(--radius-2xl);opacity:0;z-index:-1;transition:opacity var(--transition-slow);filter:blur(40px)}._card_1ebml_1:hover._hoverable_1ebml_50:before{opacity:1}._card_1ebml_1:hover._hoverable_1ebml_50:after{opacity:.15}._card_1ebml_1:hover._hoverable_1ebml_50{transform:translateY(-4px);box-shadow:var(--shadow-xl);border-color:var(--color-border-hover, var(--color-border))}._elevated_1ebml_65{box-shadow:var(--shadow-lg);border:none;background:var(--color-surface);transform:translateY(0)}._elevated_1ebml_65:hover._hoverable_1ebml_50{box-shadow:var(--shadow-2xl);transform:translateY(-6px)}._outlined_1ebml_78{background:var(--color-background);border:1px solid var(--color-border);box-shadow:none;position:relative;transition:all var(--transition-base)}._outlined_1ebml_78:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border-radius:var(--radius-2xl);opacity:0;z-index:-1;transition:opacity var(--transition-base)}._outlined_1ebml_78:hover._hoverable_1ebml_50{transform:translateY(-4px);border-color:transparent}._outlined_1ebml_78:hover._hoverable_1ebml_50:before{opacity:1}._flat_1ebml_111{border:none;box-shadow:none;background:linear-gradient(135deg,var(--color-background-secondary),rgba(255,255,255,.02));position:relative;overflow:hidden}._flat_1ebml_111:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.03),transparent);transition:left var(--transition-slow)}._flat_1ebml_111:hover._hoverable_1ebml_50{background:linear-gradient(135deg,var(--color-background-tertiary),rgba(255,255,255,.05));box-shadow:0 2px 8px #0000000a,inset 0 1px #ffffff0f;transform:translateY(-2px)}._flat_1ebml_111:hover._hoverable_1ebml_50:before{left:100%}._glass_1ebml_156{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 32px #0000000f,inset 0 0 0 1px #ffffff14}._glass_1ebml_156:before{background:radial-gradient(800px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),rgba(255,255,255,.06),transparent 40%)}._glass_1ebml_156:hover._hoverable_1ebml_50{transform:translateY(-6px) scale(1.01);box-shadow:0 12px 48px #00000014,inset 0 0 0 1px #ffffff1f;border-color:#ffffff40}._imageContainer_1ebml_187{position:relative;overflow:hidden;margin:-1px -1px 0;background:linear-gradient(135deg,var(--color-primary-lighter),var(--color-secondary-lighter))}._imageContainer_1ebml_187:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.4) 100%);opacity:0;transition:opacity var(--transition-slow);pointer-events:none}._card_1ebml_1:hover ._imageContainer_1ebml_187:after{opacity:1}._image_1ebml_187{width:100%;height:auto;display:block;transition:transform var(--transition-slower) cubic-bezier(.25,.46,.45,.94);filter:brightness(1) contrast(1)}._card_1ebml_1:hover._hoverable_1ebml_50 ._image_1ebml_187{transform:scale(1.1) translateY(-4px);filter:brightness(1.05) contrast(1.05)}._header_1ebml_233{padding:var(--spacing-lg);border-bottom:1px solid transparent;background:linear-gradient(180deg,rgba(255,255,255,.02) 0%,transparent 100%);position:relative}._header_1ebml_233:after{content:"";position:absolute;bottom:0;left:var(--spacing-lg);right:var(--spacing-lg);height:1px;background:linear-gradient(90deg,transparent,var(--color-border),transparent)}._body_1ebml_260{padding:var(--spacing-lg);position:relative}._footer_1ebml_266{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid transparent;display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-md);background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.02) 100%);position:relative}._footer_1ebml_266:before{content:"";position:absolute;top:0;left:var(--spacing-lg);right:var(--spacing-lg);height:1px;background:linear-gradient(90deg,transparent,var(--color-border),transparent)}._title_1ebml_297{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);transition:all var(--transition-base)}._card_1ebml_1:hover ._title_1ebml_297{color:var(--color-text);transform:translate(2px)}._subtitle_1ebml_313{margin:var(--spacing-xs) 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);opacity:.8;transition:opacity var(--transition-base)}._card_1ebml_1:hover ._subtitle_1ebml_313{opacity:1}._clickable_1ebml_327{cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--transition-fast)}._clickable_1ebml_327:active{transform:scale(.98);box-shadow:inset 0 2px 8px #00000014,0 1px 2px #0000000d}._padding_1ebml_341{padding:var(--spacing-lg)}._noPadding_1ebml_345{padding:0}._loading_1ebml_350{position:relative;overflow:hidden;pointer-events:none}._loading_1ebml_350:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.7) 50%,transparent 60%);animation:_loadingShimmer_1ebml_1 2s infinite;transform:rotate(0)}@keyframes _loadingShimmer_1ebml_1{0%{transform:translate(-100%) translateY(-100%) rotate(30deg)}to{transform:translate(100%) translateY(100%) rotate(30deg)}}._loading_1ebml_350 ._title_1ebml_297,._loading_1ebml_350 ._subtitle_1ebml_313,._loading_1ebml_350 ._body_1ebml_260{position:relative;color:transparent;background:linear-gradient(90deg,var(--color-background-secondary) 25%,var(--color-background-tertiary) 50%,var(--color-background-secondary) 75%);background-size:200% 100%;animation:_loadingPulse_1ebml_1 2s infinite;-webkit-background-clip:text;background-clip:text}@keyframes _loadingPulse_1ebml_1{0%{background-position:200% 0}to{background-position:-200% 0}}[data-theme=dark] ._card_1ebml_1{background:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] ._card_1ebml_1:before{opacity:0}[data-theme=dark] ._card_1ebml_1:after{background:radial-gradient(circle at center,rgba(124,58,237,.2),transparent 70%);filter:blur(60px)}[data-theme=dark] ._elevated_1ebml_65{background:var(--color-surface);box-shadow:var(--shadow-xl)}[data-theme=dark] ._outlined_1ebml_78:before{background:linear-gradient(135deg,#a78bfa66,#2dd4bf66)}[data-theme=dark] ._glass_1ebml_156{background:linear-gradient(135deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.08);box-shadow:0 8px 32px #0003,inset 0 0 0 1px #ffffff08}[data-theme=dark] ._header_1ebml_233{background:linear-gradient(180deg,rgba(255,255,255,.01) 0%,transparent 100%)}[data-theme=dark] ._footer_1ebml_266{background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.1) 100%)}@media (max-width: 768px){._card_1ebml_1{border-radius:var(--radius-xl)}._card_1ebml_1:hover._hoverable_1ebml_50{transform:translateY(-2px)}._header_1ebml_233,._body_1ebml_260,._footer_1ebml_266{padding:var(--spacing-md)}._title_1ebml_297{font-size:var(--font-size-lg)}}
@@ -0,0 +1,49 @@
1
+ import{j as a}from"./iframe-BUaP2gIF.js";import{m as v}from"./proxy-9Y4F2rF8.js";const C="_card_1ebml_1",y="_hoverable_1ebml_50",x="_elevated_1ebml_65",T="_outlined_1ebml_78",j="_flat_1ebml_111",N="_glass_1ebml_156",q="_imageContainer_1ebml_187",k="_image_1ebml_187",P="_header_1ebml_233",w="_body_1ebml_260",M="_footer_1ebml_266",V="_title_1ebml_297",S="_subtitle_1ebml_313",A="_clickable_1ebml_327",F="_padding_1ebml_341",R="_noPadding_1ebml_345",H="_loading_1ebml_350",I="_loadingShimmer_1ebml_1",L="_loadingPulse_1ebml_1",e={card:C,hoverable:y,elevated:x,outlined:T,flat:j,glass:N,imageContainer:q,image:k,header:P,body:w,footer:M,title:V,subtitle:S,clickable:A,padding:F,noPadding:R,loading:H,loadingShimmer:I,loadingPulse:L},W=({variant:m="elevated",hoverable:l=!1,clickable:i=!1,padding:r=!0,image:s,imageAlt:p="",title:t,subtitle:n,header:o,footer:d,children:c,className:u="",onClick:h,motionProps:f,..._})=>{const b=[e.card,e[m],l&&e.hoverable,i&&e.clickable,!r&&e.noPadding,u].filter(Boolean).join(" "),g=a.jsxs(a.Fragment,{children:[s&&a.jsx("div",{className:e.imageContainer,children:a.jsx("img",{src:s,alt:p,className:e.image})}),o&&a.jsx("div",{className:e.header,children:o}),(t||n)&&!o&&a.jsxs("div",{className:e.header,children:[t&&a.jsx("h3",{className:e.title,children:t}),n&&a.jsx("p",{className:e.subtitle,children:n})]}),c&&a.jsx("div",{className:r?e.body:void 0,children:c}),d&&a.jsx("div",{className:e.footer,children:d})]});return a.jsx(v.div,{className:b,onClick:i?h:void 0,whileHover:l?{y:-4}:void 0,transition:{type:"spring",stiffness:400,damping:17},...f,..._,children:g})};W.__docgenInfo={description:`Card Component
2
+
3
+ @component
4
+ @description
5
+ A flexible container component that can display content in a structured card layout.
6
+ Supports multiple visual styles, optional images, headers, footers, and smooth animations
7
+ powered by Framer Motion.
8
+
9
+ @example
10
+ // Basic card with content
11
+ <Card>
12
+ <p>This is card content</p>
13
+ </Card>
14
+
15
+ @example
16
+ // Card with title and subtitle
17
+ <Card
18
+ title="Card Title"
19
+ subtitle="Card subtitle"
20
+ variant="outlined"
21
+ >
22
+ Card body content here
23
+ </Card>
24
+
25
+ @example
26
+ // Interactive card with image
27
+ <Card
28
+ image="/path/to/image.jpg"
29
+ imageAlt="Description"
30
+ hoverable
31
+ clickable
32
+ onClick={handleCardClick}
33
+ >
34
+ <h4>Interactive Card</h4>
35
+ <p>Click me!</p>
36
+ </Card>
37
+
38
+ @example
39
+ // Card with custom header and footer
40
+ <Card
41
+ header={<CustomHeader />}
42
+ footer={<CustomFooter />}
43
+ variant="flat"
44
+ >
45
+ Main content area
46
+ </Card>
47
+
48
+ @param {CardProps} props - The props for the Card component
49
+ @returns {JSX.Element} The rendered Card component`,methods:[],displayName:"Card",props:{variant:{required:!1,tsType:{name:"union",raw:"'elevated' | 'outlined' | 'flat' | 'glass'",elements:[{name:"literal",value:"'elevated'"},{name:"literal",value:"'outlined'"},{name:"literal",value:"'flat'"},{name:"literal",value:"'glass'"}]},description:"Visual style variant of the card",defaultValue:{value:"'elevated'",computed:!1}},hoverable:{required:!1,tsType:{name:"boolean"},description:"Whether the card should have hover animations",defaultValue:{value:"false",computed:!1}},clickable:{required:!1,tsType:{name:"boolean"},description:"Whether the card should be clickable (adds pointer cursor and click handler)",defaultValue:{value:"false",computed:!1}},padding:{required:!1,tsType:{name:"boolean"},description:"Whether the card content should have padding",defaultValue:{value:"true",computed:!1}},image:{required:!1,tsType:{name:"string"},description:"URL for an optional image at the top of the card"},imageAlt:{required:!1,tsType:{name:"string"},description:"Alt text for the card image",defaultValue:{value:"''",computed:!1}},title:{required:!1,tsType:{name:"string"},description:"Title text for the card header"},subtitle:{required:!1,tsType:{name:"string"},description:"Subtitle text for the card header"},header:{required:!1,tsType:{name:"ReactNode"},description:"Custom header content (overrides title/subtitle)"},footer:{required:!1,tsType:{name:"ReactNode"},description:"Footer content for the bottom of the card"},children:{required:!1,tsType:{name:"ReactNode"},description:"Main content of the card"},motionProps:{required:!1,tsType:{name:"HTMLMotionProps",elements:[{name:"literal",value:'"div"'}],raw:'HTMLMotionProps<"div">'},description:"Additional Framer Motion props for custom animations"},className:{defaultValue:{value:"''",computed:!1},required:!1}},composes:["Omit"]};export{W as C};