matrix-design-system 1.0.0

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 (317) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +95 -0
  3. package/dist/atoms/animation/motion-div/index.d.mts +2 -0
  4. package/dist/atoms/animation/motion-div/motion-div.d.mts +7 -0
  5. package/dist/atoms/animation/motion-div/motion-div.mjs +37 -0
  6. package/dist/atoms/animation/motion-div/use-motion-div-store.mjs +17 -0
  7. package/dist/atoms/buttons/button/button.d.mts +8 -0
  8. package/dist/atoms/buttons/button/button.mjs +12 -0
  9. package/dist/atoms/buttons/button/index.d.mts +2 -0
  10. package/dist/atoms/buttons/switch/index.d.mts +2 -0
  11. package/dist/atoms/buttons/switch/switch.d.mts +10 -0
  12. package/dist/atoms/buttons/switch/switch.mjs +40 -0
  13. package/dist/atoms/buttons/switch/use-switch-store.mjs +7 -0
  14. package/dist/atoms/call-to-actions/call-to-action-external-with-tracking/call-to-action-external-with-tracking.d.mts +13 -0
  15. package/dist/atoms/call-to-actions/call-to-action-external-with-tracking/call-to-action-external-with-tracking.mjs +30 -0
  16. package/dist/atoms/call-to-actions/call-to-action-external-with-tracking/index.d.mts +2 -0
  17. package/dist/atoms/call-to-actions/call-to-action-internal-with-tracking/call-to-action-internal-with-tracking.d.mts +14 -0
  18. package/dist/atoms/call-to-actions/call-to-action-internal-with-tracking/call-to-action-internal-with-tracking.mjs +29 -0
  19. package/dist/atoms/call-to-actions/call-to-action-internal-with-tracking/index.d.mts +2 -0
  20. package/dist/atoms/chip/chip.d.mts +10 -0
  21. package/dist/atoms/chip/chip.mjs +10 -0
  22. package/dist/atoms/chip/index.d.mts +2 -0
  23. package/dist/atoms/effects/glassmorphism-background/glassmorphism-background.d.mts +8 -0
  24. package/dist/atoms/effects/glassmorphism-background/glassmorphism-background.mjs +33 -0
  25. package/dist/atoms/effects/glassmorphism-background/index.d.mts +2 -0
  26. package/dist/atoms/effects/glassmorphism-background/use-glassmorphism-background-store.mjs +17 -0
  27. package/dist/atoms/effects/image-glow/image-glow.d.mts +12 -0
  28. package/dist/atoms/effects/image-glow/image-glow.mjs +20 -0
  29. package/dist/atoms/effects/image-glow/index.d.mts +2 -0
  30. package/dist/atoms/effects/image-shimmer-placeholder/image-shimmer-placeholder.d.mts +6 -0
  31. package/dist/atoms/effects/image-shimmer-placeholder/image-shimmer-placeholder.mjs +22 -0
  32. package/dist/atoms/effects/image-shimmer-placeholder/index.d.mts +2 -0
  33. package/dist/atoms/effects/matrix-rain/matrix-rain/index.d.mts +2 -0
  34. package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-2d-canvas/debounce.mjs +12 -0
  35. package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-2d-canvas/matrix-2d-canvas.mjs +25 -0
  36. package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-2d-canvas/use-matrix-2d-canvas-store.mjs +186 -0
  37. package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-rain.d.mts +5 -0
  38. package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-rain.mjs +68 -0
  39. package/dist/atoms/effects/matrix-rain/matrix-rain/use-matrix-rain-activity.mjs +40 -0
  40. package/dist/atoms/effects/matrix-rain/matrix-rain/use-matrix-rain-store.mjs +69 -0
  41. package/dist/atoms/effects/overlay/index.d.mts +2 -0
  42. package/dist/atoms/effects/overlay/overlay.d.mts +11 -0
  43. package/dist/atoms/effects/overlay/overlay.mjs +61 -0
  44. package/dist/atoms/effects/overlay/use-overlay-store.mjs +8 -0
  45. package/dist/atoms/effects/pills/index.d.mts +2 -0
  46. package/dist/atoms/effects/pills/pills.d.mts +10 -0
  47. package/dist/atoms/effects/pills/pills.mjs +121 -0
  48. package/dist/atoms/effects/pills/use-pills-store.mjs +17 -0
  49. package/dist/atoms/effects/plain-image/index.d.mts +2 -0
  50. package/dist/atoms/effects/plain-image/plain-image.d.mts +45 -0
  51. package/dist/atoms/effects/plain-image/plain-image.mjs +140 -0
  52. package/dist/atoms/effects/plain-image/use-plain-image-store.mjs +62 -0
  53. package/dist/atoms/icons/chat-icon/chat-icon.d.mts +4 -0
  54. package/dist/atoms/icons/chat-icon/chat-icon.mjs +13 -0
  55. package/dist/atoms/icons/copy-icon/copy-icon.d.mts +6 -0
  56. package/dist/atoms/icons/copy-icon/copy-icon.mjs +17 -0
  57. package/dist/atoms/icons/rounded-icon/index.d.mts +2 -0
  58. package/dist/atoms/icons/rounded-icon/rounded-icon.d.mts +8 -0
  59. package/dist/atoms/icons/rounded-icon/rounded-icon.mjs +8 -0
  60. package/dist/atoms/links/anchor-link/anchor-link.d.mts +31 -0
  61. package/dist/atoms/links/anchor-link/anchor-link.mjs +14 -0
  62. package/dist/atoms/links/anchor-link/index.d.mts +2 -0
  63. package/dist/atoms/links/external-link/external-link.d.mts +13 -0
  64. package/dist/atoms/links/external-link/external-link.mjs +29 -0
  65. package/dist/atoms/links/external-link/index.d.mts +2 -0
  66. package/dist/atoms/links/internal-link/index.d.mts +2 -0
  67. package/dist/atoms/links/internal-link/internal-link.d.mts +15 -0
  68. package/dist/atoms/links/internal-link/internal-link.mjs +12 -0
  69. package/dist/atoms/loader/loader/index.d.mts +2 -0
  70. package/dist/atoms/loader/loader/loader.d.mts +10 -0
  71. package/dist/atoms/loader/loader/loader.mjs +62 -0
  72. package/dist/atoms/typography/input-field/index.d.mts +2 -0
  73. package/dist/atoms/typography/input-field/input-field.d.mts +9 -0
  74. package/dist/atoms/typography/input-field/input-field.mjs +8 -0
  75. package/dist/atoms/typography/label/index.d.mts +2 -0
  76. package/dist/atoms/typography/label/label.d.mts +9 -0
  77. package/dist/atoms/typography/label/label.mjs +11 -0
  78. package/dist/atoms/typography/markdown/markdown-plugins.mjs +16 -0
  79. package/dist/atoms/typography/markdown/markdown.d.mts +7 -0
  80. package/dist/atoms/typography/markdown/markdown.mjs +23 -0
  81. package/dist/atoms/typography/markdown/use-markdown-store.mjs +24 -0
  82. package/dist/atoms/typography/terminal-blocks/index.d.mts +2 -0
  83. package/dist/atoms/typography/terminal-blocks/terminal-blocks.d.mts +13 -0
  84. package/dist/atoms/typography/terminal-blocks/terminal-blocks.mjs +42 -0
  85. package/dist/atoms/typography/textarea/index.d.mts +2 -0
  86. package/dist/atoms/typography/textarea/textarea.d.mts +9 -0
  87. package/dist/atoms/typography/textarea/textarea.mjs +8 -0
  88. package/dist/chart.d.mts +7 -0
  89. package/dist/chart.mjs +4 -0
  90. package/dist/command-palette.d.mts +6 -0
  91. package/dist/command-palette.mjs +5 -0
  92. package/dist/hooks/use-clipboard-available.d.mts +4 -0
  93. package/dist/hooks/use-clipboard-available.mjs +10 -0
  94. package/dist/hooks/use-device-capabilities.d.mts +10 -0
  95. package/dist/hooks/use-device-capabilities.mjs +30 -0
  96. package/dist/hooks/use-glassmorphism.d.mts +10 -0
  97. package/dist/hooks/use-glassmorphism.mjs +9 -0
  98. package/dist/hooks/use-in-view-list.d.mts +7 -0
  99. package/dist/hooks/use-in-view-list.mjs +63 -0
  100. package/dist/hooks/use-in-view.d.mts +9 -0
  101. package/dist/hooks/use-in-view.mjs +68 -0
  102. package/dist/hooks/use-is-ios.d.mts +4 -0
  103. package/dist/hooks/use-is-ios.mjs +7 -0
  104. package/dist/hooks/use-lock-body-scroll.d.mts +4 -0
  105. package/dist/hooks/use-lock-body-scroll.mjs +40 -0
  106. package/dist/hooks/use-matrix-settings-store.d.mts +5 -0
  107. package/dist/hooks/use-matrix-settings-store.mjs +15 -0
  108. package/dist/hooks/use-motion-store.d.mts +13 -0
  109. package/dist/hooks/use-motion-store.mjs +29 -0
  110. package/dist/hooks/use-os-modifier-key.d.mts +5 -0
  111. package/dist/hooks/use-os-modifier-key.mjs +15 -0
  112. package/dist/hooks/use-reading-progress.d.mts +8 -0
  113. package/dist/hooks/use-reading-progress.mjs +49 -0
  114. package/dist/hooks/use-reduced-motions.d.mts +4 -0
  115. package/dist/hooks/use-reduced-motions.mjs +10 -0
  116. package/dist/hooks/use-scroll-direction.d.mts +8 -0
  117. package/dist/hooks/use-scroll-direction.mjs +43 -0
  118. package/dist/hooks/use-typewriter.d.mts +15 -0
  119. package/dist/hooks/use-typewriter.mjs +89 -0
  120. package/dist/hooks/use-webgpu-supported.d.mts +4 -0
  121. package/dist/hooks/use-webgpu-supported.mjs +16 -0
  122. package/dist/index.d.mts +153 -0
  123. package/dist/index.mjs +88 -0
  124. package/dist/markdown.d.mts +2 -0
  125. package/dist/markdown.mjs +2 -0
  126. package/dist/molecules/accordion/accordion/accordion.d.mts +12 -0
  127. package/dist/molecules/accordion/accordion/accordion.mjs +130 -0
  128. package/dist/molecules/accordion/accordion/index.d.mts +2 -0
  129. package/dist/molecules/accordion/accordion/use-accordion-store.mjs +55 -0
  130. package/dist/molecules/breadcrumbs/breadcrumb/breadcrumb.d.mts +21 -0
  131. package/dist/molecules/breadcrumbs/breadcrumb/breadcrumb.mjs +186 -0
  132. package/dist/molecules/breadcrumbs/breadcrumb/index.d.mts +2 -0
  133. package/dist/molecules/breadcrumbs/breadcrumb/use-breadcrumb-store.mjs +29 -0
  134. package/dist/molecules/buttons/pagination-navigation/index.d.mts +2 -0
  135. package/dist/molecules/buttons/pagination-navigation/pagination-navigation.d.mts +11 -0
  136. package/dist/molecules/buttons/pagination-navigation/pagination-navigation.mjs +17 -0
  137. package/dist/molecules/buttons/pills-buttons/index.d.mts +2 -0
  138. package/dist/molecules/buttons/pills-buttons/pills-buttons.d.mts +10 -0
  139. package/dist/molecules/buttons/pills-buttons/pills-buttons.mjs +55 -0
  140. package/dist/molecules/buttons/segmented-control/segmented-control.d.mts +13 -0
  141. package/dist/molecules/buttons/segmented-control/segmented-control.mjs +46 -0
  142. package/dist/molecules/buttons/segmented-control/use-segmented-control-store.mjs +8 -0
  143. package/dist/molecules/buttons/social-contact/index.d.mts +2 -0
  144. package/dist/molecules/buttons/social-contact/social-contact.d.mts +10 -0
  145. package/dist/molecules/buttons/social-contact/social-contact.mjs +13 -0
  146. package/dist/molecules/buttons/tag/index.d.mts +2 -0
  147. package/dist/molecules/buttons/tag/tag.d.mts +17 -0
  148. package/dist/molecules/buttons/tag/tag.mjs +20 -0
  149. package/dist/molecules/buttons/terminal-button/index.d.mts +2 -0
  150. package/dist/molecules/buttons/terminal-button/terminal-button.d.mts +15 -0
  151. package/dist/molecules/buttons/terminal-button/terminal-button.mjs +38 -0
  152. package/dist/molecules/chart/chart-panel/chart-panel.d.mts +9 -0
  153. package/dist/molecules/chart/chart-panel/chart-panel.mjs +12 -0
  154. package/dist/molecules/chart/chart-panel/index.d.mts +2 -0
  155. package/dist/molecules/chart/chart-tooltip/chart-tooltip.d.mts +8 -0
  156. package/dist/molecules/chart/chart-tooltip/chart-tooltip.mjs +18 -0
  157. package/dist/molecules/chart/chart-tooltip/index.d.mts +2 -0
  158. package/dist/molecules/chart/donut-chart/donut-chart.d.mts +15 -0
  159. package/dist/molecules/chart/donut-chart/donut-chart.mjs +142 -0
  160. package/dist/molecules/chart/donut-chart/index.d.mts +2 -0
  161. package/dist/molecules/containers/content-container/content-container.d.mts +5 -0
  162. package/dist/molecules/containers/content-container/content-container.mjs +8 -0
  163. package/dist/molecules/containers/content-container/index.d.mts +2 -0
  164. package/dist/molecules/controls/control-slider/control-slider.d.mts +14 -0
  165. package/dist/molecules/controls/control-slider/control-slider.mjs +76 -0
  166. package/dist/molecules/controls/control-slider/index.d.mts +2 -0
  167. package/dist/molecules/controls/control-slider/use-control-slider-store.mjs +10 -0
  168. package/dist/molecules/effects/matrix-background/index.d.mts +2 -0
  169. package/dist/molecules/effects/matrix-background/matrix-background.d.mts +8 -0
  170. package/dist/molecules/effects/matrix-background/matrix-background.mjs +15 -0
  171. package/dist/molecules/effects/matrix-header-background/index.d.mts +2 -0
  172. package/dist/molecules/effects/matrix-header-background/matrix-header-background.d.mts +8 -0
  173. package/dist/molecules/effects/matrix-header-background/matrix-header-background.mjs +14 -0
  174. package/dist/molecules/effects/matrix-terminal/index.d.mts +2 -0
  175. package/dist/molecules/effects/matrix-terminal/matrix-terminal.d.mts +15 -0
  176. package/dist/molecules/effects/matrix-terminal/matrix-terminal.mjs +101 -0
  177. package/dist/molecules/effects/matrix-terminal/use-matrix-terminal-store.mjs +59 -0
  178. package/dist/molecules/form/filter-input/filter-input.d.mts +10 -0
  179. package/dist/molecules/form/filter-input/filter-input.mjs +35 -0
  180. package/dist/molecules/form/filter-input/index.d.mts +2 -0
  181. package/dist/molecules/form/form-error-summary/form-error-summary.d.mts +10 -0
  182. package/dist/molecules/form/form-error-summary/form-error-summary.mjs +71 -0
  183. package/dist/molecules/form/form-error-summary/index.d.mts +2 -0
  184. package/dist/molecules/form/form-field/form-field.d.mts +10 -0
  185. package/dist/molecules/form/form-field/form-field.mjs +60 -0
  186. package/dist/molecules/form/form-field/index.d.mts +2 -0
  187. package/dist/molecules/form/form-success-message/form-success-message.d.mts +8 -0
  188. package/dist/molecules/form/form-success-message/form-success-message.mjs +21 -0
  189. package/dist/molecules/form/form-success-message/index.d.mts +2 -0
  190. package/dist/molecules/form/form-textarea/form-textarea.d.mts +10 -0
  191. package/dist/molecules/form/form-textarea/form-textarea.mjs +60 -0
  192. package/dist/molecules/form/form-textarea/index.d.mts +2 -0
  193. package/dist/molecules/lightbox-image/index.d.mts +2 -0
  194. package/dist/molecules/lightbox-image/lightbox-image.d.mts +6 -0
  195. package/dist/molecules/lightbox-image/lightbox-image.mjs +49 -0
  196. package/dist/molecules/lightbox-image/use-lightbox-image-store.mjs +29 -0
  197. package/dist/molecules/links/pills-links/index.d.mts +2 -0
  198. package/dist/molecules/links/pills-links/pills-links.d.mts +13 -0
  199. package/dist/molecules/links/pills-links/pills-links.mjs +60 -0
  200. package/dist/molecules/menu/close/close.d.mts +8 -0
  201. package/dist/molecules/menu/close/close.mjs +9 -0
  202. package/dist/molecules/menu/close/index.d.mts +2 -0
  203. package/dist/molecules/menu/dropdown-menu/dropdown-menu.d.mts +25 -0
  204. package/dist/molecules/menu/dropdown-menu/dropdown-menu.mjs +143 -0
  205. package/dist/molecules/menu/dropdown-menu/index.d.mts +2 -0
  206. package/dist/molecules/menu/dropdown-menu/use-dropdown-menu-store.mjs +108 -0
  207. package/dist/molecules/menu/hamburger-menu/hamburger-menu.d.mts +8 -0
  208. package/dist/molecules/menu/hamburger-menu/hamburger-menu.mjs +9 -0
  209. package/dist/molecules/menu/hamburger-menu/index.d.mts +2 -0
  210. package/dist/molecules/menu/menu-item/index.d.mts +2 -0
  211. package/dist/molecules/menu/menu-item/menu-item.d.mts +16 -0
  212. package/dist/molecules/menu/menu-item/menu-item.mjs +65 -0
  213. package/dist/molecules/menu/menu-item/use-menu-item-store.mjs +10 -0
  214. package/dist/molecules/stat-card/index.d.mts +2 -0
  215. package/dist/molecules/stat-card/stat-card.d.mts +10 -0
  216. package/dist/molecules/stat-card/stat-card.mjs +21 -0
  217. package/dist/molecules/terminal-list-item/index.d.mts +2 -0
  218. package/dist/molecules/terminal-list-item/terminal-list-item.d.mts +9 -0
  219. package/dist/molecules/terminal-list-item/terminal-list-item.mjs +13 -0
  220. package/dist/molecules/terminal-progress-bar/index.d.mts +2 -0
  221. package/dist/molecules/terminal-progress-bar/terminal-progress-bar.d.mts +11 -0
  222. package/dist/molecules/terminal-progress-bar/terminal-progress-bar.mjs +20 -0
  223. package/dist/molecules/typography/page-title/index.d.mts +2 -0
  224. package/dist/molecules/typography/page-title/page-title.d.mts +5 -0
  225. package/dist/molecules/typography/page-title/page-title.mjs +8 -0
  226. package/dist/molecules/typography/paragraph-title-with-icon/index.d.mts +2 -0
  227. package/dist/molecules/typography/paragraph-title-with-icon/paragraph-title-with-icon.d.mts +8 -0
  228. package/dist/molecules/typography/paragraph-title-with-icon/paragraph-title-with-icon.mjs +13 -0
  229. package/dist/molecules/typography/section-heading/index.d.mts +2 -0
  230. package/dist/molecules/typography/section-heading/section-heading.d.mts +9 -0
  231. package/dist/molecules/typography/section-heading/section-heading.mjs +17 -0
  232. package/dist/molecules/video/self-hosted-video/index.d.mts +2 -0
  233. package/dist/molecules/video/self-hosted-video/self-hosted-video.d.mts +17 -0
  234. package/dist/molecules/video/self-hosted-video/self-hosted-video.mjs +39 -0
  235. package/dist/molecules/video/youtube/index.d.mts +2 -0
  236. package/dist/molecules/video/youtube/youtube.d.mts +9 -0
  237. package/dist/molecules/video/youtube/youtube.mjs +12 -0
  238. package/dist/organism/command-palette/command-palette/command-palette.d.mts +12 -0
  239. package/dist/organism/command-palette/command-palette/command-palette.mjs +148 -0
  240. package/dist/organism/command-palette/command-palette/index.d.mts +2 -0
  241. package/dist/organism/command-palette/command-palette/use-command-palette-store.mjs +121 -0
  242. package/dist/organism/command-palette/command-palette-group/command-palette-group.d.mts +9 -0
  243. package/dist/organism/command-palette/command-palette-group/command-palette-group.mjs +24 -0
  244. package/dist/organism/command-palette/command-palette-group/index.d.mts +2 -0
  245. package/dist/organism/command-palette/command-palette-item/command-palette-item.d.mts +11 -0
  246. package/dist/organism/command-palette/command-palette-item/command-palette-item.mjs +29 -0
  247. package/dist/organism/command-palette/command-palette-item/index.d.mts +2 -0
  248. package/dist/organism/command-palette/command-palette-item/use-command-palette-item-store.mjs +30 -0
  249. package/dist/organism/command-palette/index.d.mts +9 -0
  250. package/dist/organism/command-palette/toggle-motion-item/index.d.mts +2 -0
  251. package/dist/organism/command-palette/toggle-motion-item/toggle-motion-item.d.mts +8 -0
  252. package/dist/organism/command-palette/toggle-motion-item/toggle-motion-item.mjs +63 -0
  253. package/dist/organism/command-palette/toggle-motion-item/use-toggle-motion-item-store.mjs +45 -0
  254. package/dist/organism/cookie-consent-banner/cookie-consent-banner.d.mts +9 -0
  255. package/dist/organism/cookie-consent-banner/cookie-consent-banner.mjs +71 -0
  256. package/dist/organism/cookie-consent-banner/use-cookie-consent-banner-store.mjs +10 -0
  257. package/dist/organism/footer/footer.d.mts +26 -0
  258. package/dist/organism/footer/footer.mjs +193 -0
  259. package/dist/organism/footer/index.d.mts +3 -0
  260. package/dist/organism/footer/use-footer-store.d.mts +22 -0
  261. package/dist/organism/footer/use-footer-store.mjs +57 -0
  262. package/dist/organism/header/brand-header/brand-header.d.mts +14 -0
  263. package/dist/organism/header/brand-header/brand-header.mjs +132 -0
  264. package/dist/organism/header/brand-header/index.d.mts +2 -0
  265. package/dist/organism/image-carousel/fullscreen-modal/fullscreen-modal.mjs +148 -0
  266. package/dist/organism/image-carousel/fullscreen-modal/use-fullscreen-modal-store.mjs +129 -0
  267. package/dist/organism/image-carousel/image-carousel.d.mts +14 -0
  268. package/dist/organism/image-carousel/image-carousel.mjs +225 -0
  269. package/dist/organism/image-carousel/index.d.mts +2 -0
  270. package/dist/organism/image-carousel/navigation-buttons/navigation-buttons.mjs +22 -0
  271. package/dist/organism/image-carousel/navigation-buttons/use-navigation-buttons-store.mjs +18 -0
  272. package/dist/organism/image-carousel/page-indicators/page-indicator-button/page-indicator-button.mjs +14 -0
  273. package/dist/organism/image-carousel/page-indicators/page-indicator-button/use-page-indicator-button-store.mjs +11 -0
  274. package/dist/organism/image-carousel/page-indicators/page-indicators.mjs +20 -0
  275. package/dist/organism/image-carousel/use-image-carousel-store.mjs +88 -0
  276. package/dist/organism/lightbox/index.d.mts +2 -0
  277. package/dist/organism/lightbox/lightbox.d.mts +5 -0
  278. package/dist/organism/lightbox/lightbox.mjs +100 -0
  279. package/dist/organism/lightbox/use-lightbox-store.mjs +120 -0
  280. package/dist/organism/loading-bar/loading-bar.d.mts +7 -0
  281. package/dist/organism/loading-bar/loading-bar.mjs +48 -0
  282. package/dist/organism/loading-bar/use-loading-bar-store.mjs +52 -0
  283. package/dist/organism/menu/index.d.mts +3 -0
  284. package/dist/organism/menu/menu.d.mts +33 -0
  285. package/dist/organism/menu/menu.mjs +396 -0
  286. package/dist/organism/menu/use-menu-store.d.mts +22 -0
  287. package/dist/organism/menu/use-menu-store.mjs +265 -0
  288. package/dist/organism/profile-hero/index.d.mts +2 -0
  289. package/dist/organism/profile-hero/profile-hero.d.mts +15 -0
  290. package/dist/organism/profile-hero/profile-hero.mjs +72 -0
  291. package/dist/organism/profile-photo/index.d.mts +2 -0
  292. package/dist/organism/profile-photo/profile-photo.d.mts +12 -0
  293. package/dist/organism/profile-photo/profile-photo.mjs +17 -0
  294. package/dist/organism/reading-content-progress-bar/index.d.mts +2 -0
  295. package/dist/organism/reading-content-progress-bar/reading-content-progress-bar.d.mts +8 -0
  296. package/dist/organism/reading-content-progress-bar/reading-content-progress-bar.mjs +76 -0
  297. package/dist/organism/reading-content-progress-bar/use-reading-content-progress-bar-store.mjs +29 -0
  298. package/dist/organism/social-contacts/index.d.mts +2 -0
  299. package/dist/organism/social-contacts/social-contacts.d.mts +29 -0
  300. package/dist/organism/social-contacts/social-contacts.mjs +78 -0
  301. package/dist/state/command-palette/command-palette-context.d.mts +9 -0
  302. package/dist/state/command-palette/command-palette-context.mjs +10 -0
  303. package/dist/state/command-palette/command-palette-events.d.mts +11 -0
  304. package/dist/state/command-palette/command-palette-events.mjs +15 -0
  305. package/dist/state/command-palette/command-palette-trigger.d.mts +8 -0
  306. package/dist/state/lightbox/lightbox-events.d.mts +9 -0
  307. package/dist/state/lightbox/lightbox-events.mjs +7 -0
  308. package/dist/state/matrix-rain/matrix-settings.d.mts +37 -0
  309. package/dist/state/matrix-rain/matrix-settings.mjs +122 -0
  310. package/dist/state/motion/motion.d.mts +6 -0
  311. package/dist/state/motion/motion.mjs +17 -0
  312. package/package.json +160 -0
  313. package/src/styles/base.css +130 -0
  314. package/src/styles/components.css +57 -0
  315. package/src/styles/index.css +23 -0
  316. package/src/styles/pills.css +85 -0
  317. package/src/styles/theme.css +254 -0
@@ -0,0 +1,132 @@
1
+ "use client";
2
+ import { useGlassmorphism } from "../../../hooks/use-glassmorphism.mjs";
3
+ import { ImageGlow } from "../../../atoms/effects/image-glow/image-glow.mjs";
4
+ import { Cursor } from "../../../atoms/typography/terminal-blocks/terminal-blocks.mjs";
5
+ import { MatrixHeaderBackground } from "../../../molecules/effects/matrix-header-background/matrix-header-background.mjs";
6
+ import { c } from "react/compiler-runtime";
7
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/organism/header/brand-header/brand-header.tsx
9
+ const Passthrough = (t0) => {
10
+ const $ = c(2);
11
+ const { children } = t0;
12
+ let t1;
13
+ if ($[0] !== children) {
14
+ t1 = /* @__PURE__ */ jsx(Fragment, { children });
15
+ $[0] = children;
16
+ $[1] = t1;
17
+ } else t1 = $[1];
18
+ return t1;
19
+ };
20
+ const BrandHeader = (t0) => {
21
+ const $ = c(23);
22
+ const { big, wrapper: t1, logo, imageComponent } = t0;
23
+ const Wrapper = t1 === void 0 ? Passthrough : t1;
24
+ let t2;
25
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
26
+ t2 = { noScale: true };
27
+ $[0] = t2;
28
+ } else t2 = $[0];
29
+ const { glassmorphismClass } = useGlassmorphism(t2);
30
+ const height = big ? "h-auto" : "h-[170px] md:h-[200px]";
31
+ const margins = big ? "mt-14 mb-8" : "mt-12";
32
+ const t3 = `block ${height}`;
33
+ let t4;
34
+ if ($[1] !== big) {
35
+ t4 = /* @__PURE__ */ jsx(MatrixHeaderBackground, { big });
36
+ $[1] = big;
37
+ $[2] = t4;
38
+ } else t4 = $[2];
39
+ const t5 = `flex items-center ${margins}`;
40
+ const t6 = `${glassmorphismClass} w-full p-5 md:p-9 z-30`;
41
+ let t7;
42
+ if ($[3] !== imageComponent || $[4] !== logo) {
43
+ t7 = /* @__PURE__ */ jsx(ImageGlow, {
44
+ imageComponent,
45
+ src: logo,
46
+ alt: "blog logo",
47
+ width: 80,
48
+ height: 80,
49
+ placeholder: "blur",
50
+ className: "mr-3 h-[50px] w-[50px] object-cover sm:h-[80px] sm:w-[80px]"
51
+ });
52
+ $[3] = imageComponent;
53
+ $[4] = logo;
54
+ $[5] = t7;
55
+ } else t7 = $[5];
56
+ let t8;
57
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
58
+ t8 = /* @__PURE__ */ jsxs("span", {
59
+ className: "text-shadow-md",
60
+ children: [">", " "]
61
+ });
62
+ $[6] = t8;
63
+ } else t8 = $[6];
64
+ let t9;
65
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
66
+ t9 = /* @__PURE__ */ jsxs("div", {
67
+ className: "flex flex-col justify-start",
68
+ children: [/* @__PURE__ */ jsxs("span", {
69
+ className: "text-accent m-0 block font-mono text-2xl font-bold uppercase text-shadow-lg sm:text-4xl",
70
+ children: [
71
+ t8,
72
+ "CHICIO CODING",
73
+ /* @__PURE__ */ jsx(Cursor, {})
74
+ ]
75
+ }), /* @__PURE__ */ jsx("span", {
76
+ className: "text-primary-text font-mono text-xs font-normal text-shadow-md sm:text-lg",
77
+ children: "Pixels. Code. Unplugged."
78
+ })]
79
+ });
80
+ $[7] = t9;
81
+ } else t9 = $[7];
82
+ let t10;
83
+ if ($[8] !== t7) {
84
+ t10 = /* @__PURE__ */ jsxs("div", {
85
+ className: "flex w-full items-center",
86
+ children: [t7, t9]
87
+ });
88
+ $[8] = t7;
89
+ $[9] = t10;
90
+ } else t10 = $[9];
91
+ let t11;
92
+ if ($[10] !== t10 || $[11] !== t6) {
93
+ t11 = /* @__PURE__ */ jsx("div", {
94
+ className: t6,
95
+ children: t10
96
+ });
97
+ $[10] = t10;
98
+ $[11] = t6;
99
+ $[12] = t11;
100
+ } else t11 = $[12];
101
+ let t12;
102
+ if ($[13] !== t11 || $[14] !== t5) {
103
+ t12 = /* @__PURE__ */ jsx("div", {
104
+ className: t5,
105
+ children: t11
106
+ });
107
+ $[13] = t11;
108
+ $[14] = t5;
109
+ $[15] = t12;
110
+ } else t12 = $[15];
111
+ let t13;
112
+ if ($[16] !== Wrapper || $[17] !== t12) {
113
+ t13 = /* @__PURE__ */ jsx(Wrapper, { children: t12 });
114
+ $[16] = Wrapper;
115
+ $[17] = t12;
116
+ $[18] = t13;
117
+ } else t13 = $[18];
118
+ let t14;
119
+ if ($[19] !== t13 || $[20] !== t3 || $[21] !== t4) {
120
+ t14 = /* @__PURE__ */ jsxs("div", {
121
+ className: t3,
122
+ children: [t4, t13]
123
+ });
124
+ $[19] = t13;
125
+ $[20] = t3;
126
+ $[21] = t4;
127
+ $[22] = t14;
128
+ } else t14 = $[22];
129
+ return t14;
130
+ };
131
+ //#endregion
132
+ export { BrandHeader };
@@ -0,0 +1,2 @@
1
+ import { BrandHeader, BrandHeaderProps } from "./brand-header.mjs";
2
+ export { BrandHeader, type BrandHeaderProps };
@@ -0,0 +1,148 @@
1
+ "use client";
2
+ import { MotionDiv } from "../../../atoms/animation/motion-div/motion-div.mjs";
3
+ import { Button } from "../../../atoms/buttons/button/button.mjs";
4
+ import { PlainImage } from "../../../atoms/effects/plain-image/plain-image.mjs";
5
+ import { NavigationButtons } from "../navigation-buttons/navigation-buttons.mjs";
6
+ import { PageIndicators } from "../page-indicators/page-indicators.mjs";
7
+ import { useFullscreenModalStore } from "./use-fullscreen-modal-store.mjs";
8
+ import { c } from "react/compiler-runtime";
9
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
+ import { BiX } from "react-icons/bi";
11
+ //#region src/organism/image-carousel/fullscreen-modal/fullscreen-modal.tsx
12
+ const FullscreenModal = (t0) => {
13
+ const $ = c(34);
14
+ const { images, currentIndex: initialIndex, onClose, onNavigate, alt, imageComponent: t1 } = t0;
15
+ const Image = t1 === void 0 ? PlainImage : t1;
16
+ const { state, effects } = useFullscreenModalStore(images, initialIndex, onClose, onNavigate);
17
+ const { currentIndex } = state;
18
+ const { setModalEl, goToPrevious, goToNext, navigateTo, stopPropagation, handleKeyDown, handleDragEnd } = effects;
19
+ let t2;
20
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
21
+ t2 = /* @__PURE__ */ jsx(BiX, { className: "size-8 md:size-10" });
22
+ $[0] = t2;
23
+ } else t2 = $[0];
24
+ let t3;
25
+ if ($[1] !== onClose) {
26
+ t3 = /* @__PURE__ */ jsx(Button, {
27
+ onClick: onClose,
28
+ className: "absolute top-4 right-4 z-10 p-2!",
29
+ "aria-label": "Close fullscreen",
30
+ children: t2
31
+ });
32
+ $[1] = onClose;
33
+ $[2] = t3;
34
+ } else t3 = $[2];
35
+ let t4;
36
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
37
+ t4 = {
38
+ left: 0,
39
+ right: 0
40
+ };
41
+ $[3] = t4;
42
+ } else t4 = $[3];
43
+ let t5;
44
+ if ($[4] !== Image || $[5] !== alt || $[6] !== currentIndex || $[7] !== images || $[8] !== initialIndex) {
45
+ let t6;
46
+ if ($[10] !== Image || $[11] !== alt || $[12] !== currentIndex || $[13] !== initialIndex) {
47
+ t6 = (src, index) => /* @__PURE__ */ jsx(MotionDiv, {
48
+ initial: false,
49
+ animate: {
50
+ opacity: index === currentIndex ? 1 : 0,
51
+ x: index === currentIndex ? 0 : index < currentIndex ? -300 : 300
52
+ },
53
+ transition: {
54
+ type: "spring",
55
+ stiffness: 300,
56
+ damping: 30
57
+ },
58
+ className: "absolute inset-0",
59
+ children: /* @__PURE__ */ jsx(Image, {
60
+ src,
61
+ alt: `${alt} - Image ${index + 1}`,
62
+ fill: true,
63
+ loading: index === initialIndex ? "eager" : "lazy",
64
+ className: "object-contain"
65
+ })
66
+ }, index);
67
+ $[10] = Image;
68
+ $[11] = alt;
69
+ $[12] = currentIndex;
70
+ $[13] = initialIndex;
71
+ $[14] = t6;
72
+ } else t6 = $[14];
73
+ t5 = images.map(t6);
74
+ $[4] = Image;
75
+ $[5] = alt;
76
+ $[6] = currentIndex;
77
+ $[7] = images;
78
+ $[8] = initialIndex;
79
+ $[9] = t5;
80
+ } else t5 = $[9];
81
+ let t6;
82
+ if ($[15] !== handleDragEnd || $[16] !== t5) {
83
+ t6 = /* @__PURE__ */ jsx(MotionDiv, {
84
+ drag: "x",
85
+ dragConstraints: t4,
86
+ dragElastic: .2,
87
+ onDragEnd: handleDragEnd,
88
+ className: "relative h-full w-full cursor-grab active:cursor-grabbing",
89
+ children: t5
90
+ });
91
+ $[15] = handleDragEnd;
92
+ $[16] = t5;
93
+ $[17] = t6;
94
+ } else t6 = $[17];
95
+ let t7;
96
+ if ($[18] !== currentIndex || $[19] !== goToNext || $[20] !== goToPrevious || $[21] !== images || $[22] !== navigateTo) {
97
+ t7 = images.length > 1 && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(NavigationButtons, {
98
+ onPrevious: goToPrevious,
99
+ onNext: goToNext,
100
+ stopPropagation: true
101
+ }), /* @__PURE__ */ jsx(PageIndicators, {
102
+ images,
103
+ currentIndex,
104
+ onSelect: navigateTo,
105
+ glassmorphism: true
106
+ })] });
107
+ $[18] = currentIndex;
108
+ $[19] = goToNext;
109
+ $[20] = goToPrevious;
110
+ $[21] = images;
111
+ $[22] = navigateTo;
112
+ $[23] = t7;
113
+ } else t7 = $[23];
114
+ let t8;
115
+ if ($[24] !== stopPropagation || $[25] !== t6 || $[26] !== t7) {
116
+ t8 = /* @__PURE__ */ jsxs("div", {
117
+ className: "glow-container relative flex h-10/12 sm:h-full w-full max-w-11/12 sm:max-w-10/12 items-center bg-general-background justify-center overflow-hidden",
118
+ onClick: stopPropagation,
119
+ children: [t6, t7]
120
+ });
121
+ $[24] = stopPropagation;
122
+ $[25] = t6;
123
+ $[26] = t7;
124
+ $[27] = t8;
125
+ } else t8 = $[27];
126
+ let t9;
127
+ if ($[28] !== handleKeyDown || $[29] !== onClose || $[30] !== setModalEl || $[31] !== t3 || $[32] !== t8) {
128
+ t9 = /* @__PURE__ */ jsxs("div", {
129
+ ref: setModalEl,
130
+ className: "fixed inset-0 z-50 flex items-center justify-center bg-black/90 p-4",
131
+ onClick: onClose,
132
+ onKeyDown: handleKeyDown,
133
+ role: "dialog",
134
+ "aria-modal": "true",
135
+ tabIndex: 0,
136
+ children: [t3, t8]
137
+ });
138
+ $[28] = handleKeyDown;
139
+ $[29] = onClose;
140
+ $[30] = setModalEl;
141
+ $[31] = t3;
142
+ $[32] = t8;
143
+ $[33] = t9;
144
+ } else t9 = $[33];
145
+ return t9;
146
+ };
147
+ //#endregion
148
+ export { FullscreenModal };
@@ -0,0 +1,129 @@
1
+ "use client";
2
+ import { c } from "react/compiler-runtime";
3
+ import { useEffect, useState } from "react";
4
+ //#region src/organism/image-carousel/fullscreen-modal/use-fullscreen-modal-store.ts
5
+ const useFullscreenModalStore = (images, initialIndex, onClose, onNavigate) => {
6
+ const $ = c(32);
7
+ const [currentIndex, setCurrentIndex] = useState(initialIndex);
8
+ const [modalEl, setModalEl] = useState(null);
9
+ let t0;
10
+ let t1;
11
+ if ($[0] !== modalEl) {
12
+ t0 = () => {
13
+ modalEl?.focus();
14
+ };
15
+ t1 = [modalEl];
16
+ $[0] = modalEl;
17
+ $[1] = t0;
18
+ $[2] = t1;
19
+ } else {
20
+ t0 = $[1];
21
+ t1 = $[2];
22
+ }
23
+ useEffect(t0, t1);
24
+ let t2;
25
+ if ($[3] !== currentIndex || $[4] !== images || $[5] !== onNavigate) {
26
+ t2 = () => {
27
+ const newIndex = currentIndex === 0 ? images.length - 1 : currentIndex - 1;
28
+ setCurrentIndex(newIndex);
29
+ onNavigate?.(newIndex);
30
+ };
31
+ $[3] = currentIndex;
32
+ $[4] = images;
33
+ $[5] = onNavigate;
34
+ $[6] = t2;
35
+ } else t2 = $[6];
36
+ const goToPrevious = t2;
37
+ let t3;
38
+ if ($[7] !== currentIndex || $[8] !== images || $[9] !== onNavigate) {
39
+ t3 = () => {
40
+ const newIndex_0 = currentIndex === images.length - 1 ? 0 : currentIndex + 1;
41
+ setCurrentIndex(newIndex_0);
42
+ onNavigate?.(newIndex_0);
43
+ };
44
+ $[7] = currentIndex;
45
+ $[8] = images;
46
+ $[9] = onNavigate;
47
+ $[10] = t3;
48
+ } else t3 = $[10];
49
+ const goToNext = t3;
50
+ let t4;
51
+ if ($[11] !== onNavigate) {
52
+ t4 = (index) => {
53
+ setCurrentIndex(index);
54
+ onNavigate?.(index);
55
+ };
56
+ $[11] = onNavigate;
57
+ $[12] = t4;
58
+ } else t4 = $[12];
59
+ const navigateTo = t4;
60
+ const stopPropagation = _temp;
61
+ let t5;
62
+ if ($[13] !== goToNext || $[14] !== goToPrevious || $[15] !== onClose) {
63
+ t5 = (e_0) => {
64
+ if (e_0.key === "Escape") onClose();
65
+ if (e_0.key === "ArrowLeft") goToPrevious();
66
+ if (e_0.key === "ArrowRight") goToNext();
67
+ };
68
+ $[13] = goToNext;
69
+ $[14] = goToPrevious;
70
+ $[15] = onClose;
71
+ $[16] = t5;
72
+ } else t5 = $[16];
73
+ const handleKeyDown = t5;
74
+ let t6;
75
+ if ($[17] !== goToNext || $[18] !== goToPrevious) {
76
+ t6 = (_, info) => {
77
+ if (info.offset.x > 50) goToPrevious();
78
+ else if (info.offset.x < -50) goToNext();
79
+ };
80
+ $[17] = goToNext;
81
+ $[18] = goToPrevious;
82
+ $[19] = t6;
83
+ } else t6 = $[19];
84
+ const handleDragEnd = t6;
85
+ let t7;
86
+ if ($[20] !== currentIndex || $[21] !== modalEl) {
87
+ t7 = {
88
+ currentIndex,
89
+ modalEl
90
+ };
91
+ $[20] = currentIndex;
92
+ $[21] = modalEl;
93
+ $[22] = t7;
94
+ } else t7 = $[22];
95
+ let t8;
96
+ if ($[23] !== goToNext || $[24] !== goToPrevious || $[25] !== handleDragEnd || $[26] !== handleKeyDown || $[27] !== navigateTo) {
97
+ t8 = {
98
+ setModalEl,
99
+ goToPrevious,
100
+ goToNext,
101
+ navigateTo,
102
+ stopPropagation,
103
+ handleKeyDown,
104
+ handleDragEnd
105
+ };
106
+ $[23] = goToNext;
107
+ $[24] = goToPrevious;
108
+ $[25] = handleDragEnd;
109
+ $[26] = handleKeyDown;
110
+ $[27] = navigateTo;
111
+ $[28] = t8;
112
+ } else t8 = $[28];
113
+ let t9;
114
+ if ($[29] !== t7 || $[30] !== t8) {
115
+ t9 = {
116
+ state: t7,
117
+ effects: t8
118
+ };
119
+ $[29] = t7;
120
+ $[30] = t8;
121
+ $[31] = t9;
122
+ } else t9 = $[31];
123
+ return t9;
124
+ };
125
+ function _temp(e) {
126
+ return e.stopPropagation();
127
+ }
128
+ //#endregion
129
+ export { useFullscreenModalStore };
@@ -0,0 +1,14 @@
1
+ import { ImageComponent } from "../../atoms/effects/plain-image/plain-image.mjs";
2
+ import "../../atoms/effects/plain-image/index.mjs";
3
+ import { FC } from "react";
4
+ //#region src/organism/image-carousel/image-carousel.d.ts
5
+ interface ImageCarouselProps {
6
+ images: string[];
7
+ alt: string;
8
+ caption?: string;
9
+ className?: string;
10
+ imageComponent?: ImageComponent;
11
+ }
12
+ declare const ImageCarousel: FC<ImageCarouselProps>;
13
+ //#endregion
14
+ export { ImageCarousel, ImageCarouselProps };
@@ -0,0 +1,225 @@
1
+ "use client";
2
+ import { MotionDiv } from "../../atoms/animation/motion-div/motion-div.mjs";
3
+ import { imageShimmerPlaceholder } from "../../atoms/effects/image-shimmer-placeholder/image-shimmer-placeholder.mjs";
4
+ import { PlainImage } from "../../atoms/effects/plain-image/plain-image.mjs";
5
+ import { ImageGlow } from "../../atoms/effects/image-glow/image-glow.mjs";
6
+ import { NavigationButtons } from "./navigation-buttons/navigation-buttons.mjs";
7
+ import { PageIndicators } from "./page-indicators/page-indicators.mjs";
8
+ import { FullscreenModal } from "./fullscreen-modal/fullscreen-modal.mjs";
9
+ import { useImageCarouselStore } from "./use-image-carousel-store.mjs";
10
+ import { c } from "react/compiler-runtime";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+ //#region src/organism/image-carousel/image-carousel.tsx
13
+ const ImageCarousel = (t0) => {
14
+ const $ = c(59);
15
+ const { images, alt, caption, className, imageComponent: t1 } = t0;
16
+ const Image = t1 === void 0 ? PlainImage : t1;
17
+ const { state, effects } = useImageCarouselStore(images.length);
18
+ const { currentIndex, isFullscreen } = state;
19
+ const { goToPrevious, goToNext, openFullscreen, closeFullscreen, setCurrentIndex, handleDragEnd } = effects;
20
+ if (images.length === 1) {
21
+ const singleImage = images[0];
22
+ let t2;
23
+ if ($[0] !== Image || $[1] !== alt || $[2] !== openFullscreen || $[3] !== singleImage) {
24
+ t2 = /* @__PURE__ */ jsx(ImageGlow, {
25
+ imageComponent: Image,
26
+ src: singleImage,
27
+ alt,
28
+ width: 800,
29
+ height: 450,
30
+ className: "h-96 w-full cursor-pointer object-contain bg-general-background-light overflow-hidden",
31
+ onClick: openFullscreen
32
+ });
33
+ $[0] = Image;
34
+ $[1] = alt;
35
+ $[2] = openFullscreen;
36
+ $[3] = singleImage;
37
+ $[4] = t2;
38
+ } else t2 = $[4];
39
+ let t3;
40
+ if ($[5] !== caption) {
41
+ t3 = caption && /* @__PURE__ */ jsx("figcaption", { children: caption });
42
+ $[5] = caption;
43
+ $[6] = t3;
44
+ } else t3 = $[6];
45
+ let t4;
46
+ if ($[7] !== Image || $[8] !== alt || $[9] !== closeFullscreen || $[10] !== images || $[11] !== isFullscreen) {
47
+ t4 = isFullscreen && /* @__PURE__ */ jsx(FullscreenModal, {
48
+ images,
49
+ currentIndex: 0,
50
+ onClose: closeFullscreen,
51
+ alt,
52
+ imageComponent: Image
53
+ });
54
+ $[7] = Image;
55
+ $[8] = alt;
56
+ $[9] = closeFullscreen;
57
+ $[10] = images;
58
+ $[11] = isFullscreen;
59
+ $[12] = t4;
60
+ } else t4 = $[12];
61
+ let t5;
62
+ if ($[13] !== className || $[14] !== t2 || $[15] !== t3 || $[16] !== t4) {
63
+ t5 = /* @__PURE__ */ jsxs("div", {
64
+ className,
65
+ children: [
66
+ t2,
67
+ t3,
68
+ t4
69
+ ]
70
+ });
71
+ $[13] = className;
72
+ $[14] = t2;
73
+ $[15] = t3;
74
+ $[16] = t4;
75
+ $[17] = t5;
76
+ } else t5 = $[17];
77
+ return t5;
78
+ }
79
+ const t2 = `relative ${className}`;
80
+ let t3;
81
+ if ($[18] === Symbol.for("react.memo_cache_sentinel")) {
82
+ t3 = {
83
+ left: 0,
84
+ right: 0
85
+ };
86
+ $[18] = t3;
87
+ } else t3 = $[18];
88
+ let t4;
89
+ if ($[19] !== Image || $[20] !== alt || $[21] !== currentIndex || $[22] !== images || $[23] !== openFullscreen) {
90
+ let t5;
91
+ if ($[25] !== Image || $[26] !== alt || $[27] !== currentIndex || $[28] !== openFullscreen) {
92
+ t5 = (src, index) => /* @__PURE__ */ jsx(MotionDiv, {
93
+ initial: false,
94
+ animate: {
95
+ opacity: index === currentIndex ? 1 : 0,
96
+ x: index === currentIndex ? 0 : index < currentIndex ? -300 : 300
97
+ },
98
+ transition: {
99
+ type: "spring",
100
+ stiffness: 300,
101
+ damping: 30
102
+ },
103
+ className: "absolute inset-0",
104
+ children: /* @__PURE__ */ jsx(Image, {
105
+ src,
106
+ alt: `${alt} - Image ${index + 1}`,
107
+ width: 800,
108
+ height: 450,
109
+ loading: index === 0 ? "eager" : "lazy",
110
+ className: "h-96 w-full cursor-pointer object-contain bg-general-background-light overflow-hidden",
111
+ onClick: openFullscreen,
112
+ placeholder: imageShimmerPlaceholder
113
+ })
114
+ }, index);
115
+ $[25] = Image;
116
+ $[26] = alt;
117
+ $[27] = currentIndex;
118
+ $[28] = openFullscreen;
119
+ $[29] = t5;
120
+ } else t5 = $[29];
121
+ t4 = images.map(t5);
122
+ $[19] = Image;
123
+ $[20] = alt;
124
+ $[21] = currentIndex;
125
+ $[22] = images;
126
+ $[23] = openFullscreen;
127
+ $[24] = t4;
128
+ } else t4 = $[24];
129
+ let t5;
130
+ if ($[30] !== handleDragEnd || $[31] !== t4) {
131
+ t5 = /* @__PURE__ */ jsx(MotionDiv, {
132
+ drag: "x",
133
+ dragConstraints: t3,
134
+ dragElastic: .2,
135
+ onDragEnd: handleDragEnd,
136
+ className: "relative h-96 cursor-grab active:cursor-grabbing",
137
+ children: t4
138
+ });
139
+ $[30] = handleDragEnd;
140
+ $[31] = t4;
141
+ $[32] = t5;
142
+ } else t5 = $[32];
143
+ let t6;
144
+ if ($[33] !== goToNext || $[34] !== goToPrevious) {
145
+ t6 = /* @__PURE__ */ jsx(NavigationButtons, {
146
+ onPrevious: goToPrevious,
147
+ onNext: goToNext
148
+ });
149
+ $[33] = goToNext;
150
+ $[34] = goToPrevious;
151
+ $[35] = t6;
152
+ } else t6 = $[35];
153
+ let t7;
154
+ if ($[36] !== currentIndex || $[37] !== images || $[38] !== setCurrentIndex) {
155
+ t7 = /* @__PURE__ */ jsx(PageIndicators, {
156
+ images,
157
+ currentIndex,
158
+ onSelect: setCurrentIndex,
159
+ glassmorphism: true
160
+ });
161
+ $[36] = currentIndex;
162
+ $[37] = images;
163
+ $[38] = setCurrentIndex;
164
+ $[39] = t7;
165
+ } else t7 = $[39];
166
+ let t8;
167
+ if ($[40] !== t5 || $[41] !== t6 || $[42] !== t7) {
168
+ t8 = /* @__PURE__ */ jsxs("div", {
169
+ className: "glow-container relative overflow-hidden",
170
+ children: [
171
+ t5,
172
+ t6,
173
+ t7
174
+ ]
175
+ });
176
+ $[40] = t5;
177
+ $[41] = t6;
178
+ $[42] = t7;
179
+ $[43] = t8;
180
+ } else t8 = $[43];
181
+ let t9;
182
+ if ($[44] !== caption) {
183
+ t9 = caption && /* @__PURE__ */ jsx("figcaption", { children: caption });
184
+ $[44] = caption;
185
+ $[45] = t9;
186
+ } else t9 = $[45];
187
+ let t10;
188
+ if ($[46] !== Image || $[47] !== alt || $[48] !== closeFullscreen || $[49] !== currentIndex || $[50] !== images || $[51] !== isFullscreen || $[52] !== setCurrentIndex) {
189
+ t10 = isFullscreen && /* @__PURE__ */ jsx(FullscreenModal, {
190
+ images,
191
+ currentIndex,
192
+ onClose: closeFullscreen,
193
+ onNavigate: setCurrentIndex,
194
+ alt,
195
+ imageComponent: Image
196
+ });
197
+ $[46] = Image;
198
+ $[47] = alt;
199
+ $[48] = closeFullscreen;
200
+ $[49] = currentIndex;
201
+ $[50] = images;
202
+ $[51] = isFullscreen;
203
+ $[52] = setCurrentIndex;
204
+ $[53] = t10;
205
+ } else t10 = $[53];
206
+ let t11;
207
+ if ($[54] !== t10 || $[55] !== t2 || $[56] !== t8 || $[57] !== t9) {
208
+ t11 = /* @__PURE__ */ jsxs("div", {
209
+ className: t2,
210
+ children: [
211
+ t8,
212
+ t9,
213
+ t10
214
+ ]
215
+ });
216
+ $[54] = t10;
217
+ $[55] = t2;
218
+ $[56] = t8;
219
+ $[57] = t9;
220
+ $[58] = t11;
221
+ } else t11 = $[58];
222
+ return t11;
223
+ };
224
+ //#endregion
225
+ export { ImageCarousel };
@@ -0,0 +1,2 @@
1
+ import { ImageCarousel, ImageCarouselProps } from "./image-carousel.mjs";
2
+ export { ImageCarousel, type ImageCarouselProps };
@@ -0,0 +1,22 @@
1
+ import { Button } from "../../../atoms/buttons/button/button.mjs";
2
+ import { useNavigationButtonsStore } from "./use-navigation-buttons-store.mjs";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
+ import { BiChevronLeft, BiChevronRight } from "react-icons/bi";
5
+ //#region src/organism/image-carousel/navigation-buttons/navigation-buttons.tsx
6
+ const NavigationButtons = ({ onPrevious, onNext, stopPropagation = false }) => {
7
+ const { effects } = useNavigationButtonsStore(onPrevious, onNext, stopPropagation);
8
+ const { handlePrevious, handleNext } = effects;
9
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Button, {
10
+ onClick: handlePrevious,
11
+ className: "absolute top-1/2 left-4 -translate-y-1/2 hidden md:flex",
12
+ "aria-label": "Previous image",
13
+ children: /* @__PURE__ */ jsx(BiChevronLeft, { className: "size-10 md:size-12" })
14
+ }), /* @__PURE__ */ jsx(Button, {
15
+ onClick: handleNext,
16
+ className: "absolute top-1/2 right-4 -translate-y-1/2 hidden md:flex",
17
+ "aria-label": "Next image",
18
+ children: /* @__PURE__ */ jsx(BiChevronRight, { className: "size-10 md:size-12" })
19
+ })] });
20
+ };
21
+ //#endregion
22
+ export { NavigationButtons };
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ //#region src/organism/image-carousel/navigation-buttons/use-navigation-buttons-store.ts
3
+ const useNavigationButtonsStore = (onPrevious, onNext, stopPropagation) => {
4
+ const handlePrevious = (e) => {
5
+ if (stopPropagation) e.stopPropagation();
6
+ onPrevious();
7
+ };
8
+ const handleNext = (e) => {
9
+ if (stopPropagation) e.stopPropagation();
10
+ onNext();
11
+ };
12
+ return { effects: {
13
+ handlePrevious,
14
+ handleNext
15
+ } };
16
+ };
17
+ //#endregion
18
+ export { useNavigationButtonsStore };