astro-component-kit 0.0.1

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 (445) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +262 -0
  3. package/dist/AnimatedInput.astro +82 -0
  4. package/dist/Badge.astro +52 -0
  5. package/dist/GlassButton.astro +87 -0
  6. package/dist/GlassCard.astro +72 -0
  7. package/dist/GlassNavbar.astro +65 -0
  8. package/dist/GlowButton.astro +60 -0
  9. package/dist/buttons/3dPushButton.astro +136 -0
  10. package/dist/buttons/AnimatedIconButton.astro +146 -0
  11. package/dist/buttons/BorderDrawButton.astro +112 -0
  12. package/dist/buttons/CyberpunkButton.astro +148 -0
  13. package/dist/buttons/DoubleBorderButton.astro +131 -0
  14. package/dist/buttons/GhostOutlineButton.astro +109 -0
  15. package/dist/buttons/GlassButton.astro +165 -0
  16. package/dist/buttons/GlowButton.astro +119 -0
  17. package/dist/buttons/LiquidButton.astro +167 -0
  18. package/dist/buttons/LoadingButton.astro +148 -0
  19. package/dist/buttons/MagneticButton.astro +134 -0
  20. package/dist/buttons/MinimalPillButton.astro +102 -0
  21. package/dist/buttons/NeumorphicButton.astro +158 -0
  22. package/dist/buttons/PulseButton.astro +111 -0
  23. package/dist/buttons/RetroArcadeButton.astro +105 -0
  24. package/dist/buttons/RetroShadowButton.astro +82 -0
  25. package/dist/buttons/ShimmerButton.astro +113 -0
  26. package/dist/buttons/ShinyButton.astro +121 -0
  27. package/dist/buttons/TiltGlowButton.astro +145 -0
  28. package/dist/buttons/index.mjs +19 -0
  29. package/dist/buttons/index.ts +19 -0
  30. package/dist/cards/BlogHorizontalCard.astro +18 -0
  31. package/dist/cards/CyberFeatureCard.astro +12 -0
  32. package/dist/cards/EcommerceProductCard.astro +24 -0
  33. package/dist/cards/GlassCard.astro +17 -0
  34. package/dist/cards/GlassEventCard.astro +19 -0
  35. package/dist/cards/GlowPortfolioCard.astro +16 -0
  36. package/dist/cards/InteractiveTiltCard.astro +25 -0
  37. package/dist/cards/KanbanItemCard.astro +15 -0
  38. package/dist/cards/MinimalLinkCard.astro +12 -0
  39. package/dist/cards/MusicPlayerMini.astro +21 -0
  40. package/dist/cards/NeumorphicCard.astro +6 -0
  41. package/dist/cards/NotificationCard.astro +15 -0
  42. package/dist/cards/PricingCard.astro +17 -0
  43. package/dist/cards/ProfileCard.astro +17 -0
  44. package/dist/cards/RetroGameCard.astro +15 -0
  45. package/dist/cards/StatCard.astro +15 -0
  46. package/dist/cards/TaskKanbanCard.astro +18 -0
  47. package/dist/cards/TestimonialCardClean.astro +20 -0
  48. package/dist/cards/WeatherWidgetCard.astro +17 -0
  49. package/dist/cards/index.mjs +19 -0
  50. package/dist/cards/index.ts +19 -0
  51. package/dist/data/AccordionGroupGlass.astro +21 -0
  52. package/dist/data/AvatarGroupStack.astro +15 -0
  53. package/dist/data/CalendarGridView.astro +18 -0
  54. package/dist/data/DataChipsGroup.astro +16 -0
  55. package/dist/data/DescriptionListHoriz.astro +14 -0
  56. package/dist/data/FileTreeView.astro +22 -0
  57. package/dist/data/GanttChartMinimal.astro +12 -0
  58. package/dist/data/GlassTable.astro +23 -0
  59. package/dist/data/KeyValuePillGroup.astro +12 -0
  60. package/dist/data/PriceCompareTable.astro +22 -0
  61. package/dist/data/ProgressListSmall.astro +17 -0
  62. package/dist/data/RatingBreakdownBar.astro +13 -0
  63. package/dist/data/SparklineStatCard.astro +16 -0
  64. package/dist/data/StatsGridDashboard.astro +16 -0
  65. package/dist/data/StepperDataVertical.astro +15 -0
  66. package/dist/data/TagCloudData.astro +14 -0
  67. package/dist/data/TimelineHorizSteps.astro +18 -0
  68. package/dist/data/TreeItemInteractive.astro +18 -0
  69. package/dist/data/UserDirectoryItem.astro +15 -0
  70. package/dist/data/VerticalTimeline.astro +21 -0
  71. package/dist/data/index.mjs +20 -0
  72. package/dist/data/index.ts +20 -0
  73. package/dist/feedback/AnimatedCheckmark.astro +13 -0
  74. package/dist/feedback/Badge.astro +19 -0
  75. package/dist/feedback/CircleProgress.astro +22 -0
  76. package/dist/feedback/ConfettiFeedback.astro +18 -0
  77. package/dist/feedback/CyberGlitchAlert.astro +11 -0
  78. package/dist/feedback/EmptyStateCard.astro +13 -0
  79. package/dist/feedback/GlassAlert.astro +20 -0
  80. package/dist/feedback/GlassModal.astro +19 -0
  81. package/dist/feedback/GlassProgress.astro +10 -0
  82. package/dist/feedback/IndicatorBadgeMinimal.astro +10 -0
  83. package/dist/feedback/NeonSpinner.astro +7 -0
  84. package/dist/feedback/PulseDot.astro +12 -0
  85. package/dist/feedback/RatingPill.astro +13 -0
  86. package/dist/feedback/ShakeErrorGroup.astro +7 -0
  87. package/dist/feedback/SimpleTooltip.astro +10 -0
  88. package/dist/feedback/SkeletonList.astro +20 -0
  89. package/dist/feedback/Spotlight.astro +9 -0
  90. package/dist/feedback/StepProgress.astro +14 -0
  91. package/dist/feedback/ToastNotif.astro +11 -0
  92. package/dist/feedback/TypingIndicator.astro +12 -0
  93. package/dist/feedback/index.mjs +20 -0
  94. package/dist/feedback/index.ts +20 -0
  95. package/dist/forms/AnimatedInput.astro +16 -0
  96. package/dist/forms/ChipInput.astro +13 -0
  97. package/dist/forms/ColorPickerInput.astro +13 -0
  98. package/dist/forms/CurrencyInput.astro +11 -0
  99. package/dist/forms/CustomRadioGroup.astro +13 -0
  100. package/dist/forms/CyberpunkCheckbox.astro +15 -0
  101. package/dist/forms/DragDropUpload.astro +12 -0
  102. package/dist/forms/ErrorInput.astro +11 -0
  103. package/dist/forms/FloatingPassword.astro +20 -0
  104. package/dist/forms/FormGroupVertical.astro +14 -0
  105. package/dist/forms/GlassSlider.astro +7 -0
  106. package/dist/forms/GlassTextarea.astro +14 -0
  107. package/dist/forms/ModernSelect.astro +16 -0
  108. package/dist/forms/NeumorphicSwitch.astro +55 -0
  109. package/dist/forms/OTPInput.astro +22 -0
  110. package/dist/forms/RatingStars.astro +15 -0
  111. package/dist/forms/SearchReveal.astro +13 -0
  112. package/dist/forms/SegmentedControl.astro +13 -0
  113. package/dist/forms/SimpleFileInput.astro +11 -0
  114. package/dist/forms/StepperInput.astro +14 -0
  115. package/dist/forms/index.mjs +20 -0
  116. package/dist/forms/index.ts +20 -0
  117. package/dist/index.js +1 -0
  118. package/dist/index.mjs +1 -0
  119. package/dist/layout/BentoGrid3.astro +14 -0
  120. package/dist/layout/CenterFixedBox.astro +6 -0
  121. package/dist/layout/CenteredContainer.astro +8 -0
  122. package/dist/layout/ClusterHorizontal.astro +6 -0
  123. package/dist/layout/FeatureHero.astro +17 -0
  124. package/dist/layout/FooterCenteredMinimal.astro +11 -0
  125. package/dist/layout/FullBleedSection.astro +6 -0
  126. package/dist/layout/GalleryGrid4.astro +7 -0
  127. package/dist/layout/GlassCardGrid.astro +6 -0
  128. package/dist/layout/GlassSectionHeader.astro +15 -0
  129. package/dist/layout/LandingSectionSplit.astro +13 -0
  130. package/dist/layout/MasonryGrid.astro +7 -0
  131. package/dist/layout/MinimalFooterGrid.astro +20 -0
  132. package/dist/layout/ScrollSnapSection.astro +7 -0
  133. package/dist/layout/SectionDividerText.astro +7 -0
  134. package/dist/layout/SidebarLayoutWrapper.astro +11 -0
  135. package/dist/layout/SplitScreenLayout.astro +11 -0
  136. package/dist/layout/StepLayoutVertical.astro +21 -0
  137. package/dist/layout/StickySidebarWrapper.astro +10 -0
  138. package/dist/layout/VerticalStack.astro +8 -0
  139. package/dist/layout/index.mjs +20 -0
  140. package/dist/layout/index.ts +20 -0
  141. package/dist/navigation/AnchorSideNav.astro +13 -0
  142. package/dist/navigation/BottomNavMobile.astro +13 -0
  143. package/dist/navigation/BreadcrumbsMinimal.astro +16 -0
  144. package/dist/navigation/BurgerMorphIcon.astro +12 -0
  145. package/dist/navigation/CommandPaletteUI.astro +17 -0
  146. package/dist/navigation/DotNavigationSlider.astro +13 -0
  147. package/dist/navigation/FloatingTabBar.astro +12 -0
  148. package/dist/navigation/GlassNavbar.astro +19 -0
  149. package/dist/navigation/LangSwitcherPill.astro +17 -0
  150. package/dist/navigation/MegaMenuGlass.astro +25 -0
  151. package/dist/navigation/MinimalSidebar.astro +18 -0
  152. package/dist/navigation/PaginationGlass.astro +20 -0
  153. package/dist/navigation/PaginationInfiniteUI.astro +11 -0
  154. package/dist/navigation/RadialIconMenu.astro +15 -0
  155. package/dist/navigation/RetroArcadeMenu.astro +12 -0
  156. package/dist/navigation/ScrollProgressTop.astro +15 -0
  157. package/dist/navigation/SimpleFooterGlass.astro +21 -0
  158. package/dist/navigation/TabUnderline.astro +14 -0
  159. package/dist/navigation/UserProfileNav.astro +21 -0
  160. package/dist/navigation/VerticalTabs.astro +14 -0
  161. package/dist/navigation/index.mjs +20 -0
  162. package/dist/navigation/index.ts +20 -0
  163. package/dist/overlays/AgeVerificationOverlay.astro +20 -0
  164. package/dist/overlays/BackdropBlurMask.astro +6 -0
  165. package/dist/overlays/BottomSheetMobile.astro +16 -0
  166. package/dist/overlays/CommandDialog.astro +19 -0
  167. package/dist/overlays/ContextMenuOverlay.astro +17 -0
  168. package/dist/overlays/CookieBannerGlass.astro +14 -0
  169. package/dist/overlays/ExitIntentOverlay.astro +19 -0
  170. package/dist/overlays/FloatingTrayActions.astro +13 -0
  171. package/dist/overlays/HelpBubbleOverlay.astro +11 -0
  172. package/dist/overlays/LightboxOverlay.astro +13 -0
  173. package/dist/overlays/LoadingOverlayFull.astro +10 -0
  174. package/dist/overlays/MobileNavOverlay.astro +18 -0
  175. package/dist/overlays/OverlayModal.astro +24 -0
  176. package/dist/overlays/PopoverMenuGlass.astro +17 -0
  177. package/dist/overlays/SearchOverlayFullscreen.astro +15 -0
  178. package/dist/overlays/SideDrawerRight.astro +16 -0
  179. package/dist/overlays/SplashIntroOverlay.astro +11 -0
  180. package/dist/overlays/SpotlightIndicator.astro +6 -0
  181. package/dist/overlays/ToastStackOverlay.astro +12 -0
  182. package/dist/overlays/TooltipActionTray.astro +14 -0
  183. package/dist/overlays/index.mjs +20 -0
  184. package/dist/overlays/index.ts +20 -0
  185. package/dist/styles/global.css +142 -0
  186. package/dist/typography/AnimatedUnderlineLink.astro +10 -0
  187. package/dist/typography/BackgroundClipMask.astro +7 -0
  188. package/dist/typography/CodeInlineGlass.astro +6 -0
  189. package/dist/typography/CyberpunkGlitchText.astro +20 -0
  190. package/dist/typography/DropCapParagraph.astro +7 -0
  191. package/dist/typography/FadedVerticalText.astro +6 -0
  192. package/dist/typography/FloatingTextLabel.astro +10 -0
  193. package/dist/typography/GlassBlockQuote.astro +13 -0
  194. package/dist/typography/GlassTextReveal.astro +7 -0
  195. package/dist/typography/GradientHeading.astro +9 -0
  196. package/dist/typography/GradientUnderlineLink.astro +7 -0
  197. package/dist/typography/KbdIndicator.astro +6 -0
  198. package/dist/typography/LetterSpacingWide.astro +6 -0
  199. package/dist/typography/MinimalListMarkers.astro +10 -0
  200. package/dist/typography/MonospaceStatLine.astro +6 -0
  201. package/dist/typography/NeonTextHighlight.astro +6 -0
  202. package/dist/typography/ShadowRevealText.astro +7 -0
  203. package/dist/typography/StrokeHeadingOutline.astro +8 -0
  204. package/dist/typography/Text3DLayer.astro +7 -0
  205. package/dist/typography/TypewriterText.astro +15 -0
  206. package/dist/typography/index.mjs +20 -0
  207. package/dist/typography/index.ts +20 -0
  208. package/dist/utilities/AspectRatioBox.astro +11 -0
  209. package/dist/utilities/BackgroundDotPattern.astro +6 -0
  210. package/dist/utilities/CircularMask.astro +7 -0
  211. package/dist/utilities/ClickRippleWrapper.astro +7 -0
  212. package/dist/utilities/FadeInWrapper.astro +11 -0
  213. package/dist/utilities/FixedRatioImage.astro +7 -0
  214. package/dist/utilities/GlassBlurLayer.astro +6 -0
  215. package/dist/utilities/GradientBorderMask.astro +7 -0
  216. package/dist/utilities/HoverLift.astro +7 -0
  217. package/dist/utilities/ResponsiveSpacer.astro +15 -0
  218. package/dist/utilities/ResponsiveVisToggle.astro +11 -0
  219. package/dist/utilities/ScrollLockParent.astro +11 -0
  220. package/dist/utilities/ScrollMarginTarget.astro +10 -0
  221. package/dist/utilities/SlideUpReveal.astro +7 -0
  222. package/dist/utilities/SmoothAnchorLink.astro +22 -0
  223. package/dist/utilities/StackLayering.astro +12 -0
  224. package/dist/utilities/StickyObserver.astro +8 -0
  225. package/dist/utilities/TextTruncate.astro +10 -0
  226. package/dist/utilities/TruncateSingleLine.astro +6 -0
  227. package/dist/utilities/VisuallyHidden.astro +6 -0
  228. package/dist/utilities/index.mjs +20 -0
  229. package/dist/utilities/index.ts +20 -0
  230. package/package.json +108 -0
  231. package/src/components/lib/AnimatedInput.astro +82 -0
  232. package/src/components/lib/Badge.astro +52 -0
  233. package/src/components/lib/GlassButton.astro +87 -0
  234. package/src/components/lib/GlassCard.astro +72 -0
  235. package/src/components/lib/GlassNavbar.astro +65 -0
  236. package/src/components/lib/GlowButton.astro +60 -0
  237. package/src/components/lib/buttons/3dPushButton.astro +136 -0
  238. package/src/components/lib/buttons/AnimatedIconButton.astro +146 -0
  239. package/src/components/lib/buttons/BorderDrawButton.astro +112 -0
  240. package/src/components/lib/buttons/CyberpunkButton.astro +148 -0
  241. package/src/components/lib/buttons/DoubleBorderButton.astro +131 -0
  242. package/src/components/lib/buttons/GhostOutlineButton.astro +109 -0
  243. package/src/components/lib/buttons/GlassButton.astro +165 -0
  244. package/src/components/lib/buttons/GlowButton.astro +119 -0
  245. package/src/components/lib/buttons/LiquidButton.astro +167 -0
  246. package/src/components/lib/buttons/LoadingButton.astro +148 -0
  247. package/src/components/lib/buttons/MagneticButton.astro +134 -0
  248. package/src/components/lib/buttons/MinimalPillButton.astro +102 -0
  249. package/src/components/lib/buttons/NeumorphicButton.astro +158 -0
  250. package/src/components/lib/buttons/PulseButton.astro +111 -0
  251. package/src/components/lib/buttons/RetroArcadeButton.astro +105 -0
  252. package/src/components/lib/buttons/RetroShadowButton.astro +82 -0
  253. package/src/components/lib/buttons/ShimmerButton.astro +113 -0
  254. package/src/components/lib/buttons/ShinyButton.astro +121 -0
  255. package/src/components/lib/buttons/TiltGlowButton.astro +145 -0
  256. package/src/components/lib/buttons/index.ts +19 -0
  257. package/src/components/lib/cards/BlogHorizontalCard.astro +18 -0
  258. package/src/components/lib/cards/CyberFeatureCard.astro +12 -0
  259. package/src/components/lib/cards/EcommerceProductCard.astro +24 -0
  260. package/src/components/lib/cards/GlassCard.astro +17 -0
  261. package/src/components/lib/cards/GlassEventCard.astro +19 -0
  262. package/src/components/lib/cards/GlowPortfolioCard.astro +16 -0
  263. package/src/components/lib/cards/InteractiveTiltCard.astro +25 -0
  264. package/src/components/lib/cards/KanbanItemCard.astro +15 -0
  265. package/src/components/lib/cards/MinimalLinkCard.astro +12 -0
  266. package/src/components/lib/cards/MusicPlayerMini.astro +21 -0
  267. package/src/components/lib/cards/NeumorphicCard.astro +6 -0
  268. package/src/components/lib/cards/NotificationCard.astro +15 -0
  269. package/src/components/lib/cards/PricingCard.astro +17 -0
  270. package/src/components/lib/cards/ProfileCard.astro +17 -0
  271. package/src/components/lib/cards/RetroGameCard.astro +15 -0
  272. package/src/components/lib/cards/StatCard.astro +15 -0
  273. package/src/components/lib/cards/TaskKanbanCard.astro +18 -0
  274. package/src/components/lib/cards/TestimonialCardClean.astro +20 -0
  275. package/src/components/lib/cards/WeatherWidgetCard.astro +17 -0
  276. package/src/components/lib/cards/index.ts +19 -0
  277. package/src/components/lib/data/AccordionGroupGlass.astro +21 -0
  278. package/src/components/lib/data/AvatarGroupStack.astro +15 -0
  279. package/src/components/lib/data/CalendarGridView.astro +18 -0
  280. package/src/components/lib/data/DataChipsGroup.astro +16 -0
  281. package/src/components/lib/data/DescriptionListHoriz.astro +14 -0
  282. package/src/components/lib/data/FileTreeView.astro +22 -0
  283. package/src/components/lib/data/GanttChartMinimal.astro +12 -0
  284. package/src/components/lib/data/GlassTable.astro +23 -0
  285. package/src/components/lib/data/KeyValuePillGroup.astro +12 -0
  286. package/src/components/lib/data/PriceCompareTable.astro +22 -0
  287. package/src/components/lib/data/ProgressListSmall.astro +17 -0
  288. package/src/components/lib/data/RatingBreakdownBar.astro +13 -0
  289. package/src/components/lib/data/SparklineStatCard.astro +16 -0
  290. package/src/components/lib/data/StatsGridDashboard.astro +16 -0
  291. package/src/components/lib/data/StepperDataVertical.astro +15 -0
  292. package/src/components/lib/data/TagCloudData.astro +14 -0
  293. package/src/components/lib/data/TimelineHorizSteps.astro +18 -0
  294. package/src/components/lib/data/TreeItemInteractive.astro +18 -0
  295. package/src/components/lib/data/UserDirectoryItem.astro +15 -0
  296. package/src/components/lib/data/VerticalTimeline.astro +21 -0
  297. package/src/components/lib/data/index.ts +20 -0
  298. package/src/components/lib/feedback/AnimatedCheckmark.astro +13 -0
  299. package/src/components/lib/feedback/Badge.astro +19 -0
  300. package/src/components/lib/feedback/CircleProgress.astro +22 -0
  301. package/src/components/lib/feedback/ConfettiFeedback.astro +18 -0
  302. package/src/components/lib/feedback/CyberGlitchAlert.astro +11 -0
  303. package/src/components/lib/feedback/EmptyStateCard.astro +13 -0
  304. package/src/components/lib/feedback/GlassAlert.astro +20 -0
  305. package/src/components/lib/feedback/GlassModal.astro +19 -0
  306. package/src/components/lib/feedback/GlassProgress.astro +10 -0
  307. package/src/components/lib/feedback/IndicatorBadgeMinimal.astro +10 -0
  308. package/src/components/lib/feedback/NeonSpinner.astro +7 -0
  309. package/src/components/lib/feedback/PulseDot.astro +12 -0
  310. package/src/components/lib/feedback/RatingPill.astro +13 -0
  311. package/src/components/lib/feedback/ShakeErrorGroup.astro +7 -0
  312. package/src/components/lib/feedback/SimpleTooltip.astro +10 -0
  313. package/src/components/lib/feedback/SkeletonList.astro +20 -0
  314. package/src/components/lib/feedback/Spotlight.astro +9 -0
  315. package/src/components/lib/feedback/StepProgress.astro +14 -0
  316. package/src/components/lib/feedback/ToastNotif.astro +11 -0
  317. package/src/components/lib/feedback/TypingIndicator.astro +12 -0
  318. package/src/components/lib/feedback/index.ts +20 -0
  319. package/src/components/lib/forms/AnimatedInput.astro +16 -0
  320. package/src/components/lib/forms/ChipInput.astro +13 -0
  321. package/src/components/lib/forms/ColorPickerInput.astro +13 -0
  322. package/src/components/lib/forms/CurrencyInput.astro +11 -0
  323. package/src/components/lib/forms/CustomRadioGroup.astro +13 -0
  324. package/src/components/lib/forms/CyberpunkCheckbox.astro +15 -0
  325. package/src/components/lib/forms/DragDropUpload.astro +12 -0
  326. package/src/components/lib/forms/ErrorInput.astro +11 -0
  327. package/src/components/lib/forms/FloatingPassword.astro +20 -0
  328. package/src/components/lib/forms/FormGroupVertical.astro +14 -0
  329. package/src/components/lib/forms/GlassSlider.astro +7 -0
  330. package/src/components/lib/forms/GlassTextarea.astro +14 -0
  331. package/src/components/lib/forms/ModernSelect.astro +16 -0
  332. package/src/components/lib/forms/NeumorphicSwitch.astro +55 -0
  333. package/src/components/lib/forms/OTPInput.astro +22 -0
  334. package/src/components/lib/forms/RatingStars.astro +15 -0
  335. package/src/components/lib/forms/SearchReveal.astro +13 -0
  336. package/src/components/lib/forms/SegmentedControl.astro +13 -0
  337. package/src/components/lib/forms/SimpleFileInput.astro +11 -0
  338. package/src/components/lib/forms/StepperInput.astro +14 -0
  339. package/src/components/lib/forms/index.ts +20 -0
  340. package/src/components/lib/index.ts +6 -0
  341. package/src/components/lib/layout/BentoGrid3.astro +14 -0
  342. package/src/components/lib/layout/CenterFixedBox.astro +6 -0
  343. package/src/components/lib/layout/CenteredContainer.astro +8 -0
  344. package/src/components/lib/layout/ClusterHorizontal.astro +6 -0
  345. package/src/components/lib/layout/FeatureHero.astro +17 -0
  346. package/src/components/lib/layout/FooterCenteredMinimal.astro +11 -0
  347. package/src/components/lib/layout/FullBleedSection.astro +6 -0
  348. package/src/components/lib/layout/GalleryGrid4.astro +7 -0
  349. package/src/components/lib/layout/GlassCardGrid.astro +6 -0
  350. package/src/components/lib/layout/GlassSectionHeader.astro +15 -0
  351. package/src/components/lib/layout/LandingSectionSplit.astro +13 -0
  352. package/src/components/lib/layout/MasonryGrid.astro +7 -0
  353. package/src/components/lib/layout/MinimalFooterGrid.astro +20 -0
  354. package/src/components/lib/layout/ScrollSnapSection.astro +7 -0
  355. package/src/components/lib/layout/SectionDividerText.astro +7 -0
  356. package/src/components/lib/layout/SidebarLayoutWrapper.astro +11 -0
  357. package/src/components/lib/layout/SplitScreenLayout.astro +11 -0
  358. package/src/components/lib/layout/StepLayoutVertical.astro +21 -0
  359. package/src/components/lib/layout/StickySidebarWrapper.astro +10 -0
  360. package/src/components/lib/layout/VerticalStack.astro +8 -0
  361. package/src/components/lib/layout/index.ts +20 -0
  362. package/src/components/lib/navigation/AnchorSideNav.astro +13 -0
  363. package/src/components/lib/navigation/BottomNavMobile.astro +13 -0
  364. package/src/components/lib/navigation/BreadcrumbsMinimal.astro +16 -0
  365. package/src/components/lib/navigation/BurgerMorphIcon.astro +12 -0
  366. package/src/components/lib/navigation/CommandPaletteUI.astro +17 -0
  367. package/src/components/lib/navigation/DotNavigationSlider.astro +13 -0
  368. package/src/components/lib/navigation/FloatingTabBar.astro +12 -0
  369. package/src/components/lib/navigation/GlassNavbar.astro +19 -0
  370. package/src/components/lib/navigation/LangSwitcherPill.astro +17 -0
  371. package/src/components/lib/navigation/MegaMenuGlass.astro +25 -0
  372. package/src/components/lib/navigation/MinimalSidebar.astro +18 -0
  373. package/src/components/lib/navigation/PaginationGlass.astro +20 -0
  374. package/src/components/lib/navigation/PaginationInfiniteUI.astro +11 -0
  375. package/src/components/lib/navigation/RadialIconMenu.astro +15 -0
  376. package/src/components/lib/navigation/RetroArcadeMenu.astro +12 -0
  377. package/src/components/lib/navigation/ScrollProgressTop.astro +15 -0
  378. package/src/components/lib/navigation/SimpleFooterGlass.astro +21 -0
  379. package/src/components/lib/navigation/TabUnderline.astro +14 -0
  380. package/src/components/lib/navigation/UserProfileNav.astro +21 -0
  381. package/src/components/lib/navigation/VerticalTabs.astro +14 -0
  382. package/src/components/lib/navigation/index.ts +20 -0
  383. package/src/components/lib/overlays/AgeVerificationOverlay.astro +20 -0
  384. package/src/components/lib/overlays/BackdropBlurMask.astro +6 -0
  385. package/src/components/lib/overlays/BottomSheetMobile.astro +16 -0
  386. package/src/components/lib/overlays/CommandDialog.astro +19 -0
  387. package/src/components/lib/overlays/ContextMenuOverlay.astro +17 -0
  388. package/src/components/lib/overlays/CookieBannerGlass.astro +14 -0
  389. package/src/components/lib/overlays/ExitIntentOverlay.astro +19 -0
  390. package/src/components/lib/overlays/FloatingTrayActions.astro +13 -0
  391. package/src/components/lib/overlays/HelpBubbleOverlay.astro +11 -0
  392. package/src/components/lib/overlays/LightboxOverlay.astro +13 -0
  393. package/src/components/lib/overlays/LoadingOverlayFull.astro +10 -0
  394. package/src/components/lib/overlays/MobileNavOverlay.astro +18 -0
  395. package/src/components/lib/overlays/OverlayModal.astro +24 -0
  396. package/src/components/lib/overlays/PopoverMenuGlass.astro +17 -0
  397. package/src/components/lib/overlays/SearchOverlayFullscreen.astro +15 -0
  398. package/src/components/lib/overlays/SideDrawerRight.astro +16 -0
  399. package/src/components/lib/overlays/SplashIntroOverlay.astro +11 -0
  400. package/src/components/lib/overlays/SpotlightIndicator.astro +6 -0
  401. package/src/components/lib/overlays/ToastStackOverlay.astro +12 -0
  402. package/src/components/lib/overlays/TooltipActionTray.astro +14 -0
  403. package/src/components/lib/overlays/index.ts +20 -0
  404. package/src/components/lib/typography/AnimatedUnderlineLink.astro +10 -0
  405. package/src/components/lib/typography/BackgroundClipMask.astro +7 -0
  406. package/src/components/lib/typography/CodeInlineGlass.astro +6 -0
  407. package/src/components/lib/typography/CyberpunkGlitchText.astro +20 -0
  408. package/src/components/lib/typography/DropCapParagraph.astro +7 -0
  409. package/src/components/lib/typography/FadedVerticalText.astro +6 -0
  410. package/src/components/lib/typography/FloatingTextLabel.astro +10 -0
  411. package/src/components/lib/typography/GlassBlockQuote.astro +13 -0
  412. package/src/components/lib/typography/GlassTextReveal.astro +7 -0
  413. package/src/components/lib/typography/GradientHeading.astro +9 -0
  414. package/src/components/lib/typography/GradientUnderlineLink.astro +7 -0
  415. package/src/components/lib/typography/KbdIndicator.astro +6 -0
  416. package/src/components/lib/typography/LetterSpacingWide.astro +6 -0
  417. package/src/components/lib/typography/MinimalListMarkers.astro +10 -0
  418. package/src/components/lib/typography/MonospaceStatLine.astro +6 -0
  419. package/src/components/lib/typography/NeonTextHighlight.astro +6 -0
  420. package/src/components/lib/typography/ShadowRevealText.astro +7 -0
  421. package/src/components/lib/typography/StrokeHeadingOutline.astro +8 -0
  422. package/src/components/lib/typography/Text3DLayer.astro +7 -0
  423. package/src/components/lib/typography/TypewriterText.astro +15 -0
  424. package/src/components/lib/typography/index.ts +20 -0
  425. package/src/components/lib/utilities/AspectRatioBox.astro +11 -0
  426. package/src/components/lib/utilities/BackgroundDotPattern.astro +6 -0
  427. package/src/components/lib/utilities/CircularMask.astro +7 -0
  428. package/src/components/lib/utilities/ClickRippleWrapper.astro +7 -0
  429. package/src/components/lib/utilities/FadeInWrapper.astro +11 -0
  430. package/src/components/lib/utilities/FixedRatioImage.astro +7 -0
  431. package/src/components/lib/utilities/GlassBlurLayer.astro +6 -0
  432. package/src/components/lib/utilities/GradientBorderMask.astro +7 -0
  433. package/src/components/lib/utilities/HoverLift.astro +7 -0
  434. package/src/components/lib/utilities/ResponsiveSpacer.astro +15 -0
  435. package/src/components/lib/utilities/ResponsiveVisToggle.astro +11 -0
  436. package/src/components/lib/utilities/ScrollLockParent.astro +11 -0
  437. package/src/components/lib/utilities/ScrollMarginTarget.astro +10 -0
  438. package/src/components/lib/utilities/SlideUpReveal.astro +7 -0
  439. package/src/components/lib/utilities/SmoothAnchorLink.astro +22 -0
  440. package/src/components/lib/utilities/StackLayering.astro +12 -0
  441. package/src/components/lib/utilities/StickyObserver.astro +8 -0
  442. package/src/components/lib/utilities/TextTruncate.astro +10 -0
  443. package/src/components/lib/utilities/TruncateSingleLine.astro +6 -0
  444. package/src/components/lib/utilities/VisuallyHidden.astro +6 -0
  445. package/src/components/lib/utilities/index.ts +20 -0
@@ -0,0 +1,19 @@
1
+ ---
2
+ ---
3
+ <div class="modal-overlay">
4
+ <div class="modal-box anim-scale-up">
5
+ <div class="modal-header"><h3>Confirm Action</h3></div>
6
+ <div class="modal-body"><p>Are you sure you want to delete this resource? This cannot be undone.</p></div>
7
+ <div class="modal-footer"><button class="btn-sec">Cancel</button><button class="btn-pri">Confirm</button></div>
8
+ </div>
9
+ </div>
10
+ <style>
11
+ .modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.3); backdrop-filter: blur(8px); display: grid; place-items: center; z-index: 2000; }
12
+ .modal-box { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 24px; padding: 2rem; width: 100%; max-width: 400px; box-shadow: 0 30px 100px rgba(0,0,0,0.5); }
13
+ .modal-header h3 { margin: 0; color: #fff; }
14
+ .modal-body p { color: #94a3b8; font-size: 0.9rem; line-height: 1.6; }
15
+ .modal-footer { display: flex; justify-content: flex-end; gap: 1rem; margin-top: 2rem; }
16
+ button { padding: 0.6rem 1.2rem; border-radius: 10px; border: none; font-weight: 700; cursor: pointer; }
17
+ .btn-sec { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.1); }
18
+ .btn-pri { background: #6366f1; color: #fff; }
19
+ </style>
@@ -0,0 +1,10 @@
1
+ ---
2
+ interface Props { value: number; }
3
+ ---
4
+ <div class="progress-container">
5
+ <div class="progress-fill" style={`width: ${Astro.props.value}%`}></div>
6
+ </div>
7
+ <style>
8
+ .progress-container { height: 10px; background: rgba(255,255,255,0.05); border-radius: 10px; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); }
9
+ .progress-fill { height: 100%; background: linear-gradient(90deg, #6366f1, #c084fc); border-radius: inherit; transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 0 10px rgba(99,102,241,0.4); }
10
+ </style>
@@ -0,0 +1,10 @@
1
+ ---
2
+ ---
3
+ <div class="indicator-wrap">
4
+ <slot />
5
+ <span class="dot-indicator"></span>
6
+ </div>
7
+ <style>
8
+ .indicator-wrap { position: relative; width: fit-content; }
9
+ .dot-indicator { position: absolute; top: 0; right: 0; width: 10px; height: 10px; background: #6366f1; border: 2px solid #080b14; border-radius: 50%; }
10
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <div class="neon-ring"></div>
4
+ <style>
5
+ .neon-ring { width: 40px; height: 40px; border: 4px solid #111; border-top-color: #6366f1; border-radius: 50%; animation: spin 0.8s linear infinite; box-shadow: 0 0 10px rgba(99,102,241,0.5); }
6
+ @keyframes spin { to { transform: rotate(360deg); } }
7
+ </style>
@@ -0,0 +1,12 @@
1
+ ---
2
+ ---
3
+ <div class="status-wrap">
4
+ <div class="pulse-dot"></div>
5
+ <span>System Active</span>
6
+ </div>
7
+ <style>
8
+ .status-wrap { display: flex; align-items: center; gap: 0.6rem; color: #34d399; font-weight: 700; font-size: 0.75rem; text-transform: uppercase; }
9
+ .pulse-dot { width: 8px; height: 8px; background: #34d399; border-radius: 50%; position: relative; }
10
+ .pulse-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid #34d399; animation: pulse 1.5s infinite; }
11
+ @keyframes pulse { 100% { opacity: 0; transform: scale(3.5); } }
12
+ </style>
@@ -0,0 +1,13 @@
1
+ ---
2
+ interface Props { score: number; }
3
+ const { score } = Astro.props;
4
+ ---
5
+ <div class:list={["rate-pill", { "high": score >= 4, "mid": score >= 3 && score < 4, "low": score < 3 }]}>
6
+ {score.toFixed(1)} ★
7
+ </div>
8
+ <style>
9
+ .rate-pill { padding: 4px 12px; border-radius: 100px; font-weight: 800; font-size: 0.75rem; color: #fff; width: fit-content; }
10
+ .high { background: #10b981; }
11
+ .mid { background: #f59e0b; }
12
+ .low { background: #ef4444; }
13
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <div class="shake-box error"><span>Invalid Credentials</span></div>
4
+ <style>
5
+ .shake-box.error { animation: shake 0.4s cubic-bezier(.36,.07,.19,.97) both; background: rgba(239, 68, 68, 0.1); border: 1px solid #ef4444; color: #f87171; padding: 1rem; border-radius: 10px; text-align: center; font-weight: 600; }
6
+ @keyframes shake { 10%, 90% { transform: translateX(-1px); } 20%, 80% { transform: translateX(2px); } 30%, 50%, 70% { transform: translateX(-4px); } 40%, 60% { transform: translateX(4px); } }
7
+ </style>
@@ -0,0 +1,10 @@
1
+ ---
2
+ ---
3
+ <div class="tooltip-wrap" data-tip="Click to copy ID">
4
+ <slot />
5
+ </div>
6
+ <style>
7
+ .tooltip-wrap { position: relative; display: inline-block; cursor: help; }
8
+ .tooltip-wrap::after { content: attr(data-tip); position: absolute; bottom: 125%; left: 50%; transform: translateX(-50%); padding: 5px 10px; background: #111; color: #fff; font-size: 0.75rem; border-radius: 6px; white-space: nowrap; opacity: 0; pointer-events: none; transition: 0.2s; border: 1px solid rgba(255,255,255,0.1); box-shadow: 0 5px 15px rgba(0,0,0,0.4); }
9
+ .tooltip-wrap:hover::after { opacity: 1; bottom: 110%; }
10
+ </style>
@@ -0,0 +1,20 @@
1
+ ---
2
+ ---
3
+ <div class="skeleton-list">
4
+ {[1,2,3].map(() => (
5
+ <div class="skel-item">
6
+ <div class="skel-avatar"></div>
7
+ <div class="skel-lines"><div></div><div></div></div>
8
+ </div>
9
+ ))}
10
+ </div>
11
+ <style>
12
+ .skel-item { display: flex; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,0.05); }
13
+ .skel-avatar { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,0.05); }
14
+ .skel-lines { flex: 1; display: flex; flex-direction: column; gap: 8px; }
15
+ .skel-lines div { height: 10px; background: rgba(255,255,255,0.05); border-radius: 5px; }
16
+ .skel-lines div:last-child { width: 60%; }
17
+ .skel-item div { position: relative; overflow: hidden; }
18
+ .skel-item div::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.03), transparent); animation: shimmer 1.5s infinite; }
19
+ @keyframes shimmer { 100% { transform: translateX(100%); } }
20
+ </style>
@@ -0,0 +1,9 @@
1
+ ---
2
+ ---
3
+ <div class="spotlight">
4
+ <div class="focused-content"><slot /></div>
5
+ </div>
6
+ <style>
7
+ .spotlight { position: relative; z-index: 100; border-radius: 12px; box-shadow: 0 0 0 9999px rgba(0,0,0,0.7); }
8
+ .focused-content { background: #fff; border-radius: inherit; overflow: hidden; }
9
+ </style>
@@ -0,0 +1,14 @@
1
+ ---
2
+ ---
3
+ <div class="steps">
4
+ <div class="step active">1<span>Details</span></div>
5
+ <div class="step">2<span>Payment</span></div>
6
+ <div class="step">3<span>Finish</span></div>
7
+ </div>
8
+ <style>
9
+ .steps { display: flex; justify-content: space-between; position: relative; margin-bottom: 2rem; }
10
+ .steps::before { content: ""; position: absolute; top: 15px; left: 0; width: 100%; height: 2px; background: rgba(255,255,255,0.05); z-index: -1; }
11
+ .step { width: 32px; height: 32px; border-radius: 50%; background: #1e293b; color: #64748b; border: 2px solid rgba(255,255,255,0.1); display: grid; place-items: center; font-size: 0.8rem; font-weight: 800; position: relative; }
12
+ .step.active { background: #6366f1; border-color: #6366f1; color: #fff; box-shadow: 0 0 15px rgba(99,102,241,0.4); }
13
+ .step span { position: absolute; top: 100%; margin-top: 8px; font-size: 0.65rem; white-space: nowrap; color: inherit; }
14
+ </style>
@@ -0,0 +1,11 @@
1
+ ---
2
+ ---
3
+ <div class="toast show">
4
+ <span class="icon">✅</span>
5
+ <span>Settings saved successfully!</span>
6
+ </div>
7
+ <style>
8
+ .toast { position: fixed; bottom: 2rem; right: 2rem; background: #111; color: #fff; padding: 1rem 1.5rem; border-radius: 12px; border: 1px solid rgba(255,255,255,0.1); display: flex; align-items: center; gap: 0.8rem; box-shadow: 0 10px 40px rgba(0,0,0,0.5); transform: translateY(100px); transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); z-index: 1000; }
9
+ .toast.show { transform: translateY(0); }
10
+ .icon { background: rgba(52,211,153,0.1); padding: 4px; border-radius: 6px; }
11
+ </style>
@@ -0,0 +1,12 @@
1
+ ---
2
+ ---
3
+ <div class="typing">
4
+ <span></span><span></span><span></span>
5
+ </div>
6
+ <style>
7
+ .typing { display: flex; gap: 4px; padding: 10px 15px; background: rgba(255,255,255,0.05); border-radius: 15px; width: fit-content; }
8
+ .typing span { width: 6px; height: 6px; background: #64748b; border-radius: 50%; animation: type 1s infinite alternate; }
9
+ .typing span:nth-child(2) { animation-delay: 0.2s; }
10
+ .typing span:nth-child(3) { animation-delay: 0.4s; }
11
+ @keyframes type { to { transform: translateY(-5px); background: #6366f1; } }
12
+ </style>
@@ -0,0 +1,20 @@
1
+ export { default as AnimatedCheckmark } from './AnimatedCheckmark.astro';
2
+ export { default as Badge } from './Badge.astro';
3
+ export { default as CircleProgress } from './CircleProgress.astro';
4
+ export { default as ConfettiFeedback } from './ConfettiFeedback.astro';
5
+ export { default as CyberGlitchAlert } from './CyberGlitchAlert.astro';
6
+ export { default as EmptyStateCard } from './EmptyStateCard.astro';
7
+ export { default as GlassAlert } from './GlassAlert.astro';
8
+ export { default as GlassModal } from './GlassModal.astro';
9
+ export { default as GlassProgress } from './GlassProgress.astro';
10
+ export { default as IndicatorBadgeMinimal } from './IndicatorBadgeMinimal.astro';
11
+ export { default as NeonSpinner } from './NeonSpinner.astro';
12
+ export { default as PulseDot } from './PulseDot.astro';
13
+ export { default as RatingPill } from './RatingPill.astro';
14
+ export { default as ShakeErrorGroup } from './ShakeErrorGroup.astro';
15
+ export { default as SimpleTooltip } from './SimpleTooltip.astro';
16
+ export { default as SkeletonList } from './SkeletonList.astro';
17
+ export { default as Spotlight } from './Spotlight.astro';
18
+ export { default as StepProgress } from './StepProgress.astro';
19
+ export { default as ToastNotif } from './ToastNotif.astro';
20
+ export { default as TypingIndicator } from './TypingIndicator.astro';
@@ -0,0 +1,16 @@
1
+ ---
2
+ interface Props { label: string; id: string; type?: string; placeholder?: string; required?: boolean; name?: string; }
3
+ const { label, id, type = 'text', placeholder = ' ', required = false, name } = Astro.props;
4
+ ---
5
+ <div class="anim-input-wrap">
6
+ <input {id} {name} {type} {placeholder} {required} class="anim-input" autocomplete="off" />
7
+ <label for={id} class="anim-input-label">{label}</label>
8
+ </div>
9
+ <style>
10
+ .anim-input-wrap { position: relative; width: 100%; }
11
+ .anim-input { width: 100%; padding: 1.1rem 1rem 0.5rem; font-family: inherit; font-size: 0.95rem; color: #e2e8f0; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; outline: none; box-sizing: border-box; transition: border-color 0.25s ease, background 0.25s ease; }
12
+ .anim-input::placeholder { color: transparent; }
13
+ .anim-input:focus { background: rgba(99, 102, 241, 0.06); border-color: rgba(99, 102, 241, 0.5); box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12); }
14
+ .anim-input-label { position: absolute; top: 0.9rem; left: 1rem; font-size: 0.9rem; color: #64748b; pointer-events: none; transition: top 0.2s ease, font-size 0.2s ease, color 0.2s ease; }
15
+ .anim-input:focus ~ .anim-input-label, .anim-input:not(:placeholder-shown) ~ .anim-input-label { top: 0.28rem; font-size: 0.68rem; color: #818cf8; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
16
+ </style>
@@ -0,0 +1,13 @@
1
+ ---
2
+ ---
3
+ <div class="chip-input">
4
+ <span class="chip">Astro <button>×</button></span>
5
+ <span class="chip">UI <button>×</button></span>
6
+ <input type="text" placeholder="Add tag..." />
7
+ </div>
8
+ <style>
9
+ .chip-input { display: flex; flex-wrap: wrap; gap: 0.5rem; padding: 0.5rem; background: rgba(0,0,0,0.1); border: 1px solid var(--c-border); border-radius: 10px; }
10
+ .chip { background: #6366f1; color: #fff; padding: 0.2rem 0.6rem; border-radius: 6px; font-size: 0.8rem; display: flex; align-items: center; gap: 0.4rem; }
11
+ .chip button { background: none; border: none; color: #fff; cursor: pointer; font-size: 1rem; }
12
+ .chip-input input { background: none; border: none; outline: none; color: #fff; flex: 1; padding: 0.2rem; }
13
+ </style>
@@ -0,0 +1,13 @@
1
+ ---
2
+ ---
3
+ <div class="color-picker-wrap">
4
+ <input type="color" class="color-input" id="picker" value="#6366f1" />
5
+ <label for="picker">Primary Accent</label>
6
+ </div>
7
+ <style>
8
+ .color-picker-wrap { display: flex; align-items: center; gap: 1rem; }
9
+ .color-input { -webkit-appearance: none; border: none; width: 34px; height: 34px; border-radius: 50%; cursor: pointer; background: transparent; }
10
+ .color-input::-webkit-color-swatch-wrapper { padding: 0; }
11
+ .color-input::-webkit-color-swatch { border: 2px solid rgba(255,255,255,0.2); border-radius: 50%; }
12
+ label { font-size: 0.9rem; color: #e2e8f0; font-weight: 500; }
13
+ </style>
@@ -0,0 +1,11 @@
1
+ ---
2
+ ---
3
+ <div class="curr-wrap">
4
+ <span class="symbol">$</span>
5
+ <input type="number" step="0.01" value="0.00" />
6
+ </div>
7
+ <style>
8
+ .curr-wrap { display: flex; align-items: center; background: rgba(255,255,255,0.05); border-radius: 10px; border: 1px solid var(--c-border); overflow: hidden; }
9
+ .symbol { padding: 0.8rem; background: rgba(255,255,255,0.05); color: #94a3b8; font-weight: 700; }
10
+ .curr-wrap input { background: none; border: none; padding: 0.8rem; color: #fff; font-size: 1.1rem; width: 100%; outline: none; }
11
+ </style>
@@ -0,0 +1,13 @@
1
+ ---
2
+ ---
3
+ <div class="radio-group">
4
+ <label class="radio-item"><input type="radio" name="opt" checked /><span>Option A</span></label>
5
+ <label class="radio-item"><input type="radio" name="opt" /><span>Option B</span></label>
6
+ </div>
7
+ <style>
8
+ .radio-group { display: flex; flex-direction: column; gap: 0.8rem; }
9
+ .radio-item { display: flex; align-items: center; gap: 0.75rem; cursor: pointer; color: #94a3b8; }
10
+ .radio-item input { appearance: none; width: 20px; height: 20px; border: 2px solid #6366f1; border-radius: 50%; position: relative; cursor: pointer; }
11
+ .radio-item input:checked::after { content: ''; position: absolute; inset: 4px; background: #6366f1; border-radius: 50%; }
12
+ .radio-item input:checked + span { color: #fff; font-weight: 600; }
13
+ </style>
@@ -0,0 +1,15 @@
1
+ ---
2
+ ---
3
+ <label class="cyber-check">
4
+ <input type="checkbox" />
5
+ <span class="checkmark"></span>
6
+ <slot />
7
+ </label>
8
+ <style>
9
+ .cyber-check { display: flex; align-items: center; gap: 0.8rem; cursor: pointer; color: #00e0ff; font-family: monospace; font-weight: 700; text-transform: uppercase; }
10
+ .cyber-check input { display: none; }
11
+ .checkmark { width: 18px; height: 18px; border: 2px solid #ff003c; position: relative; transition: 0.2s; }
12
+ .cyber-check input:checked + .checkmark { background: #ff003c; box-shadow: 0 0 10px #ff003c; }
13
+ .checkmark::after { content: ''; position: absolute; display: none; left: 5px; top: 1px; width: 4px; height: 8px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
14
+ .cyber-check input:checked + .checkmark::after { display: block; }
15
+ </style>
@@ -0,0 +1,12 @@
1
+ ---
2
+ ---
3
+ <div class="upload-zone">
4
+ <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></svg>
5
+ <p>Drag files here or <span>browse</span></p>
6
+ <input type="file" hidden />
7
+ </div>
8
+ <style>
9
+ .upload-zone { border: 2px dashed rgba(255,255,255,0.1); border-radius: 20px; padding: 3rem; text-align: center; background: rgba(255,255,255,0.02); cursor: pointer; transition: 0.3s; color: #94a3b8; }
10
+ .upload-zone:hover { border-color: #6366f1; background: rgba(99, 102, 241, 0.05); color: #fff; }
11
+ .upload-zone span { color: #6366f1; font-weight: 600; text-decoration: underline; }
12
+ </style>
@@ -0,0 +1,11 @@
1
+ ---
2
+ ---
3
+ <div class="error-wrap">
4
+ <input type="text" class="input-error" value="invalid-email" />
5
+ <span class="error-msg">Please enter a valid email address</span>
6
+ </div>
7
+ <style>
8
+ .error-wrap { display: flex; flex-direction: column; gap: 0.4rem; }
9
+ .input-error { border: 1px solid #ef4444 !important; background: rgba(239, 68, 68, 0.05) !important; padding: 0.8rem; color: #fff; border-radius: 10px; outline: none; }
10
+ .error-msg { font-size: 0.75rem; color: #f87171; font-weight: 500; }
11
+ </style>
@@ -0,0 +1,20 @@
1
+ ---
2
+ ---
3
+ <div class="pass-wrap">
4
+ <input type="password" id="pass" placeholder="Password" />
5
+ <button type="button" id="toggle-pass">👁️</button>
6
+ </div>
7
+ <style>
8
+ .pass-wrap { position: relative; width: 100%; }
9
+ .pass-wrap input { width: 100%; padding: 0.8rem 3rem 0.8rem 1rem; background: rgba(0,0,0,0.2); border: 1px solid var(--c-border); border-radius: 10px; color: #fff; outline: none; }
10
+ #toggle-pass { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; opacity: 0.5; }
11
+ </style>
12
+ <script>
13
+ const btn = document.getElementById('toggle-pass');
14
+ const pass = document.getElementById('pass') as HTMLInputElement;
15
+ btn?.addEventListener('click', () => {
16
+ const isPass = pass.type === 'password';
17
+ pass.type = isPass ? 'text' : 'password';
18
+ btn.textContent = isPass ? '🙈' : '👁️';
19
+ });
20
+ </script>
@@ -0,0 +1,14 @@
1
+ ---
2
+ ---
3
+ <div class="form-group">
4
+ <label>Company Name</label>
5
+ <input type="text" placeholder="e.g. Acme Corp" />
6
+ <p class="help-text">Visible on your public profile.</p>
7
+ </div>
8
+ <style>
9
+ .form-group { display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1.5rem; }
10
+ label { font-size: 0.82rem; font-weight: 700; color: #e2e8f0; text-transform: uppercase; letter-spacing: 0.05em; }
11
+ input { background: #0f172a; border: 1px solid rgba(255,255,255,0.1); color: #fff; padding: 0.8rem; border-radius: 8px; outline: none; }
12
+ input:focus { border-color: #6366f1; }
13
+ .help-text { font-size: 0.75rem; color: #64748b; }
14
+ </style>
@@ -0,0 +1,7 @@
1
+ ---
2
+ ---
3
+ <input type="range" class="glass-slider" min="0" max="100" />
4
+ <style>
5
+ .glass-slider { -webkit-appearance: none; width: 100%; height: 6px; background: rgba(255,255,255,0.1); border-radius: 5px; outline: none; backdrop-filter: blur(5px); }
6
+ .glass-slider::-webkit-slider-thumb { -webkit-appearance: none; width: 20px; height: 20px; border-radius: 50%; background: #6366f1; cursor: pointer; border: 2px solid rgba(255,255,255,0.5); box-shadow: 0 0 10px rgba(99,102,241,0.5); }
7
+ </style>
@@ -0,0 +1,14 @@
1
+ ---
2
+ interface Props { label: string; id: string; rows?: number; }
3
+ const { label, id, rows = 4 } = Astro.props;
4
+ ---
5
+ <div class="glass-textarea-wrap">
6
+ <label for={id} class="glass-label">{label}</label>
7
+ <textarea {id} {rows} class="glass-textarea" placeholder="Start typing..."></textarea>
8
+ </div>
9
+ <style>
10
+ .glass-textarea-wrap { display: flex; flex-direction: column; gap: 0.5rem; width: 100%; }
11
+ .glass-label { font-size: 0.85rem; font-weight: 600; color: #94a3b8; margin-left: 0.5rem; }
12
+ .glass-textarea { width: 100%; padding: 1rem; background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 16px; color: #fff; font-family: inherit; font-size: 0.9rem; outline: none; transition: 0.3s; resize: vertical; }
13
+ .glass-textarea:focus { border-color: rgba(99, 102, 241, 0.4); background: rgba(255, 255, 255, 0.06); }
14
+ </style>
@@ -0,0 +1,16 @@
1
+ ---
2
+ ---
3
+ <div class="select-wrap">
4
+ <select class="custom-select">
5
+ <option>Select Option</option>
6
+ <option>Product Design</option>
7
+ <option>Web Development</option>
8
+ <option>Mobile Apps</option>
9
+ </select>
10
+ <div class="select-arrow"></div>
11
+ </div>
12
+ <style>
13
+ .select-wrap { position: relative; width: 100%; }
14
+ .custom-select { width: 100%; padding: 0.8rem 1rem; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); border-radius: 12px; color: #fff; appearance: none; cursor: pointer; outline: none; }
15
+ .select-arrow { position: absolute; top: 18px; right: 15px; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid #64748b; pointer-events: none; }
16
+ </style>
@@ -0,0 +1,55 @@
1
+ ---
2
+ ---
3
+ <label class="neu-switch">
4
+ <input type="checkbox" />
5
+ <span class="slider"></span>
6
+ </label>
7
+ <style>
8
+ .neu-switch {
9
+ position: relative;
10
+ display: inline-block;
11
+ width: 56px;
12
+ height: 30px;
13
+ }
14
+ .neu-switch input {
15
+ opacity: 0;
16
+ width: 0;
17
+ height: 0;
18
+ }
19
+ .slider {
20
+ position: absolute;
21
+ cursor: pointer;
22
+ inset: 0;
23
+ background: #1a1f2e;
24
+ transition: 0.4s;
25
+ border-radius: 34px;
26
+ border: 1px solid rgba(255, 255, 255, 0.05);
27
+ box-shadow:
28
+ inset 2px 2px 4px rgba(0, 0, 0, 0.4),
29
+ inset -2px -2px 4px rgba(255, 255, 255, 0.03);
30
+ }
31
+ .slider:before {
32
+ position: absolute;
33
+ content: "";
34
+ height: 22px;
35
+ width: 22px;
36
+ left: 3px;
37
+ top: 3px;
38
+ background: #4b5563;
39
+ transition: 0.4s;
40
+ border-radius: 50%;
41
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
42
+ }
43
+ input:checked + .slider {
44
+ background: #1e2433;
45
+ box-shadow:
46
+ inset 2px 2px 4px rgba(0, 0, 0, 0.5),
47
+ inset -2px -2px 4px rgba(255, 255, 255, 0.02);
48
+ }
49
+ input:checked + .slider:before {
50
+ transform: translateX(26px);
51
+ background: #818cf8;
52
+ box-shadow: 0 0 10px rgba(129, 140, 248, 0.4);
53
+ }
54
+ </style>
55
+
@@ -0,0 +1,22 @@
1
+ ---
2
+ ---
3
+ <div class="otp-wrap">
4
+ <input type="text" maxlength="1" />
5
+ <input type="text" maxlength="1" />
6
+ <input type="text" maxlength="1" />
7
+ <input type="text" maxlength="1" />
8
+ </div>
9
+ <style>
10
+ .otp-wrap { display: flex; gap: 0.75rem; justify-content: center; }
11
+ .otp-wrap input { width: 45px; height: 55px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 10px; text-align: center; color: #fff; font-size: 1.5rem; font-weight: 700; outline: none; transition: 0.2s; }
12
+ .otp-wrap input:focus { border-color: #6366f1; background: rgba(99, 102, 241, 0.1); box-shadow: 0 0 15px rgba(99, 102, 241, 0.3); }
13
+ </style>
14
+ <script>
15
+ document.querySelectorAll('.otp-wrap input').forEach((input, idx, inputs) => {
16
+ input.addEventListener('input', () => {
17
+ if ((input as HTMLInputElement).value && idx < inputs.length - 1) {
18
+ (inputs[idx+1] as HTMLInputElement).focus();
19
+ }
20
+ });
21
+ });
22
+ </script>
@@ -0,0 +1,15 @@
1
+ ---
2
+ ---
3
+ <div class="rating">
4
+ <input type="radio" name="star" id="star5" /><label for="star5"></label>
5
+ <input type="radio" name="star" id="star4" /><label for="star4"></label>
6
+ <input type="radio" name="star" id="star3" /><label for="star3"></label>
7
+ <input type="radio" name="star" id="star2" /><label for="star2"></label>
8
+ <input type="radio" name="star" id="star1" /><label for="star1"></label>
9
+ </div>
10
+ <style>
11
+ .rating { display: flex; flex-direction: row-reverse; gap: 5px; }
12
+ .rating input { display: none; }
13
+ .rating label { width: 24px; height: 24px; background: #334155; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); cursor: pointer; transition: 0.2s; }
14
+ .rating label:hover, .rating label:hover ~ label, .rating input:checked ~ label { background: #fbbf24; box-shadow: 0 0 10px #fbbf24; }
15
+ </style>
@@ -0,0 +1,13 @@
1
+ ---
2
+ ---
3
+ <div class="search-box">
4
+ <input type="text" placeholder="Search..." />
5
+ <button>🔍</button>
6
+ </div>
7
+ <style>
8
+ .search-box { position: relative; width: 40px; height: 40px; transition: 0.4s; }
9
+ .search-box:hover, .search-box:focus-within { width: 250px; }
10
+ .search-box input { width: 100%; height: 100%; background: #1e293b; border: 1px solid rgba(255,255,255,0.1); border-radius: 100px; padding: 0 45px 0 20px; color: #fff; outline: none; opacity: 0; transition: 0.3s; }
11
+ .search-box:hover input, .search-box:focus-within input { opacity: 1; }
12
+ .search-box button { position: absolute; right: 0; width: 40px; height: 40px; background: #6366f1; border: none; border-radius: 50%; color: #fff; cursor: pointer; }
13
+ </style>
@@ -0,0 +1,13 @@
1
+ ---
2
+ ---
3
+ <div class="segmented">
4
+ <input type="radio" name="seg" id="seg1" checked /><label for="seg1">Daily</label>
5
+ <input type="radio" name="seg" id="seg2" /><label for="seg2">Weekly</label>
6
+ <input type="radio" name="seg" id="seg3" /><label for="seg3">Monthly</label>
7
+ </div>
8
+ <style>
9
+ .segmented { display: flex; position: relative; background: rgba(255,255,255,0.05); padding: 4px; border-radius: 10px; width: fit-content; }
10
+ .segmented label { padding: 0.4rem 1.2rem; cursor: pointer; z-index: 1; font-size: 0.85rem; transition: 0.3s; color: #94a3b8; }
11
+ .segmented input { display: none; }
12
+ .segmented input:checked + label { color: #fff; font-weight: 600; background: rgba(99, 102, 241, 0.2); border-radius: 6px; }
13
+ </style>
@@ -0,0 +1,11 @@
1
+ ---
2
+ ---
3
+ <label class="file-btn">
4
+ <input type="file" />
5
+ <span>Upload Logo</span>
6
+ </label>
7
+ <style>
8
+ .file-btn { position: relative; overflow: hidden; display: inline-block; cursor: pointer; }
9
+ .file-btn input { position: absolute; font-size: 100px; right: 0; top: 0; opacity: 0; cursor: pointer; }
10
+ .file-btn span { background: #6366f1; color: #fff; padding: 0.7rem 1.5rem; border-radius: 8px; font-weight: 600; display: inline-block; }
11
+ </style>
@@ -0,0 +1,14 @@
1
+ ---
2
+ ---
3
+ <div class="stepper">
4
+ <button>-</button>
5
+ <input type="number" value="1" />
6
+ <button>+</button>
7
+ </div>
8
+ <style>
9
+ .stepper { display: flex; align-items: center; gap: 2px; }
10
+ .stepper button { width: 35px; height: 35px; background: #6366f1; border: none; color: #fff; font-size: 1.2rem; cursor: pointer; transition: 0.2s; }
11
+ .stepper button:hover { background: #4f46e5; }
12
+ .stepper input { width: 50px; height: 35px; background: rgba(255,255,255,0.05); border: none; text-align: center; color: #fff; outline: none; -moz-appearance: textfield; }
13
+ .stepper input::-webkit-inner-spin-button { display: none; }
14
+ </style>
@@ -0,0 +1,20 @@
1
+ export { default as AnimatedInput } from './AnimatedInput.astro';
2
+ export { default as ChipInput } from './ChipInput.astro';
3
+ export { default as ColorPickerInput } from './ColorPickerInput.astro';
4
+ export { default as CurrencyInput } from './CurrencyInput.astro';
5
+ export { default as CustomRadioGroup } from './CustomRadioGroup.astro';
6
+ export { default as CyberpunkCheckbox } from './CyberpunkCheckbox.astro';
7
+ export { default as DragDropUpload } from './DragDropUpload.astro';
8
+ export { default as ErrorInput } from './ErrorInput.astro';
9
+ export { default as FloatingPassword } from './FloatingPassword.astro';
10
+ export { default as FormGroupVertical } from './FormGroupVertical.astro';
11
+ export { default as GlassSlider } from './GlassSlider.astro';
12
+ export { default as GlassTextarea } from './GlassTextarea.astro';
13
+ export { default as ModernSelect } from './ModernSelect.astro';
14
+ export { default as NeumorphicSwitch } from './NeumorphicSwitch.astro';
15
+ export { default as OTPInput } from './OTPInput.astro';
16
+ export { default as RatingStars } from './RatingStars.astro';
17
+ export { default as SearchReveal } from './SearchReveal.astro';
18
+ export { default as SegmentedControl } from './SegmentedControl.astro';
19
+ export { default as SimpleFileInput } from './SimpleFileInput.astro';
20
+ export { default as StepperInput } from './StepperInput.astro';
@@ -0,0 +1,6 @@
1
+ export { default as AnimatedInput } from './AnimatedInput.astro';
2
+ export { default as Badge } from './Badge.astro';
3
+ export { default as GlassButton } from './GlassButton.astro';
4
+ export { default as GlassCard } from './GlassCard.astro';
5
+ export { default as GlassNavbar } from './GlassNavbar.astro';
6
+ export { default as GlowButton } from './GlowButton.astro';
@@ -0,0 +1,14 @@
1
+ ---
2
+ ---
3
+ <div class="bento">
4
+ <div class="item wide"><slot name="1" /></div>
5
+ <div class="item"><slot name="2" /></div>
6
+ <div class="item"><slot name="3" /></div>
7
+ <div class="item tall"><slot name="4" /></div>
8
+ </div>
9
+ <style>
10
+ .bento { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 200px; gap: 1rem; }
11
+ .item { background: rgba(255,255,255,0.03); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 16px; padding: 1rem; }
12
+ .wide { grid-column: span 2; }
13
+ .tall { grid-row: span 2; }
14
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <div class="abs-center"><slot /></div>
4
+ <style>
5
+ .abs-center { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 500; }
6
+ </style>
@@ -0,0 +1,8 @@
1
+ ---
2
+ interface Props { maxWidth?: string; }
3
+ const { maxWidth = '1200px' } = Astro.props;
4
+ ---
5
+ <div class="container" style={`--max-width: ${maxWidth}`}><slot /></div>
6
+ <style>
7
+ .container { width: 100%; max-width: var(--max-width); margin: 0 auto; padding: 0 1.5rem; }
8
+ </style>
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ <div class="cluster"><slot /></div>
4
+ <style>
5
+ .cluster { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
6
+ </style>