@xbg.solutions/create-frontend 1.1.1 → 1.2.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 (493) hide show
  1. package/bin/xbg-frontend.cjs +32 -0
  2. package/package.json +17 -3
  3. package/src/commands/add.cjs +470 -0
  4. package/src/commands/generate.cjs +24 -0
  5. package/src/manifest.json +1578 -0
  6. package/src/registry/advanced/ChartWrapper.svelte +587 -0
  7. package/src/registry/advanced/DataTable.svelte +645 -0
  8. package/src/registry/advanced/FormWizard.svelte +546 -0
  9. package/src/registry/advanced/ImageUpload.svelte +663 -0
  10. package/src/registry/advanced/index.ts +33 -0
  11. package/src/registry/atoms/calendar/Calendar.svelte +181 -0
  12. package/src/registry/atoms/calendar/index.ts +1 -0
  13. package/src/registry/atoms/dialog/Dialog.svelte +179 -0
  14. package/src/registry/atoms/dialog/DialogDescription.svelte +16 -0
  15. package/src/registry/atoms/dialog/DialogFooter.svelte +16 -0
  16. package/src/registry/atoms/dialog/DialogHeader.svelte +16 -0
  17. package/src/registry/atoms/dialog/DialogTitle.svelte +16 -0
  18. package/src/registry/atoms/dialog/index.ts +10 -0
  19. package/src/registry/atoms/icon/BrandIcon.svelte +47 -0
  20. package/src/registry/atoms/icon/DynamicIcon.svelte +49 -0
  21. package/src/registry/atoms/icon/index.ts +2 -0
  22. package/src/registry/atoms/legend/Legend.svelte +32 -0
  23. package/src/registry/atoms/legend/index.ts +1 -0
  24. package/src/registry/atoms/menu/MenuItem.svelte +85 -0
  25. package/src/registry/atoms/menu/index.ts +1 -0
  26. package/src/registry/atoms/message/Message.svelte +62 -0
  27. package/src/registry/atoms/message/index.ts +1 -0
  28. package/src/registry/atoms/nav/NavItem.svelte +67 -0
  29. package/src/registry/atoms/nav/index.ts +1 -0
  30. package/src/registry/atoms/notification-badge/NotificationBadge.svelte +30 -0
  31. package/src/registry/atoms/notification-badge/index.ts +1 -0
  32. package/src/registry/atoms/otp-input/OtpInput.svelte +108 -0
  33. package/src/registry/atoms/otp-input/index.ts +1 -0
  34. package/src/registry/atoms/select/Select.svelte +216 -0
  35. package/src/registry/atoms/select/index.ts +6 -0
  36. package/src/registry/atoms/settings-card/SettingsCard.svelte +48 -0
  37. package/src/registry/atoms/settings-card/index.ts +1 -0
  38. package/src/registry/atoms/sidebar-item/SidebarItem.svelte +90 -0
  39. package/src/registry/atoms/sidebar-item/index.ts +1 -0
  40. package/src/registry/atoms/statistic-card/StatisticCard.svelte +53 -0
  41. package/src/registry/atoms/statistic-card/index.ts +1 -0
  42. package/src/registry/atoms/text-editor/TextEditor.svelte +77 -0
  43. package/src/registry/atoms/text-editor/index.ts +1 -0
  44. package/src/registry/atoms/uploader/Uploader.svelte +102 -0
  45. package/src/registry/atoms/uploader/index.ts +1 -0
  46. package/src/registry/atoms/user-item/UserItem.svelte +39 -0
  47. package/src/registry/atoms/user-item/index.ts +1 -0
  48. package/src/registry/blocks/account-section/AccountSection01.svelte +112 -0
  49. package/src/registry/blocks/account-section/AccountSection02.svelte +190 -0
  50. package/src/registry/blocks/account-section/AccountSection03.svelte +161 -0
  51. package/src/registry/blocks/account-section/AccountSection04.svelte +164 -0
  52. package/src/registry/blocks/account-section/AccountSection05.svelte +76 -0
  53. package/src/registry/blocks/account-section/index.ts +5 -0
  54. package/src/registry/blocks/app-shell/AppShell01.svelte +74 -0
  55. package/src/registry/blocks/app-shell/AppShell02.svelte +87 -0
  56. package/src/registry/blocks/app-shell/AppShell03.svelte +79 -0
  57. package/src/registry/blocks/app-shell/AppShell04.svelte +177 -0
  58. package/src/registry/blocks/app-shell/index.ts +4 -0
  59. package/src/registry/blocks/auth/AuthSplitScreen.svelte +132 -0
  60. package/src/registry/blocks/auth/LoginBlock01.svelte +94 -0
  61. package/src/registry/blocks/auth/LoginBlock02.svelte +103 -0
  62. package/src/registry/blocks/auth/LoginBlock03.svelte +53 -0
  63. package/src/registry/blocks/auth/LoginBlock04.svelte +99 -0
  64. package/src/registry/blocks/auth/LoginBlock05.svelte +101 -0
  65. package/src/registry/blocks/auth/OtpBlock01.svelte +115 -0
  66. package/src/registry/blocks/auth/OtpBlock02.svelte +113 -0
  67. package/src/registry/blocks/auth/OtpBlock03.svelte +143 -0
  68. package/src/registry/blocks/auth/OtpBlock04.svelte +122 -0
  69. package/src/registry/blocks/auth/OtpBlock05.svelte +81 -0
  70. package/src/registry/blocks/auth/SignupBlock01.svelte +103 -0
  71. package/src/registry/blocks/auth/SignupBlock02.svelte +94 -0
  72. package/src/registry/blocks/auth/SignupBlock03.svelte +120 -0
  73. package/src/registry/blocks/auth/SignupBlock04.svelte +112 -0
  74. package/src/registry/blocks/auth/SignupBlock05.svelte +77 -0
  75. package/src/registry/blocks/auth/index.ts +31 -0
  76. package/src/registry/blocks/banner/Banner01.svelte +67 -0
  77. package/src/registry/blocks/banner/Banner02.svelte +61 -0
  78. package/src/registry/blocks/banner/Banner03.svelte +54 -0
  79. package/src/registry/blocks/banner/Banner04.svelte +49 -0
  80. package/src/registry/blocks/banner/Banner05.svelte +47 -0
  81. package/src/registry/blocks/banner/index.ts +5 -0
  82. package/src/registry/blocks/bento-grid/BentoGrid01.svelte +92 -0
  83. package/src/registry/blocks/bento-grid/BentoGrid02.svelte +79 -0
  84. package/src/registry/blocks/bento-grid/BentoGrid03.svelte +79 -0
  85. package/src/registry/blocks/bento-grid/BentoGrid04.svelte +58 -0
  86. package/src/registry/blocks/bento-grid/BentoGrid05.svelte +92 -0
  87. package/src/registry/blocks/bento-grid/BentoGrid06.svelte +42 -0
  88. package/src/registry/blocks/bento-grid/index.ts +14 -0
  89. package/src/registry/blocks/blog-section/BlogSection01.svelte +100 -0
  90. package/src/registry/blocks/blog-section/BlogSection02.svelte +93 -0
  91. package/src/registry/blocks/blog-section/BlogSection03.svelte +92 -0
  92. package/src/registry/blocks/blog-section/BlogSection04.svelte +97 -0
  93. package/src/registry/blocks/blog-section/BlogSection05.svelte +120 -0
  94. package/src/registry/blocks/blog-section/index.ts +15 -0
  95. package/src/registry/blocks/buttons/ButtonBookmark.svelte +37 -0
  96. package/src/registry/blocks/buttons/ButtonLike.svelte +37 -0
  97. package/src/registry/blocks/buttons/ButtonMenu.svelte +37 -0
  98. package/src/registry/blocks/buttons/ButtonSplitDropdown.svelte +46 -0
  99. package/src/registry/blocks/buttons/ButtonStepper.svelte +55 -0
  100. package/src/registry/blocks/buttons/ButtonSteps.svelte +73 -0
  101. package/src/registry/blocks/buttons/ButtonToggleGroup.svelte +35 -0
  102. package/src/registry/blocks/buttons/ButtonsGroup.svelte +63 -0
  103. package/src/registry/blocks/buttons/SocialButtonsHorizontal.svelte +41 -0
  104. package/src/registry/blocks/buttons/SocialButtonsVertical.svelte +53 -0
  105. package/src/registry/blocks/buttons/index.ts +10 -0
  106. package/src/registry/blocks/calendar/CalendarBlock01.svelte +169 -0
  107. package/src/registry/blocks/calendar/CalendarBlock02.svelte +133 -0
  108. package/src/registry/blocks/calendar/CalendarBlock03.svelte +194 -0
  109. package/src/registry/blocks/calendar/CalendarBlock04.svelte +96 -0
  110. package/src/registry/blocks/calendar/CalendarBlock05.svelte +97 -0
  111. package/src/registry/blocks/calendar/CalendarBlock06.svelte +98 -0
  112. package/src/registry/blocks/calendar/CalendarBlock07.svelte +109 -0
  113. package/src/registry/blocks/calendar/CalendarBlock08.svelte +71 -0
  114. package/src/registry/blocks/calendar/CalendarBlock09.svelte +99 -0
  115. package/src/registry/blocks/calendar/CalendarBlock10.svelte +88 -0
  116. package/src/registry/blocks/calendar/CalendarBlock11.svelte +99 -0
  117. package/src/registry/blocks/calendar/CalendarBlock12.svelte +121 -0
  118. package/src/registry/blocks/calendar/CalendarBlock13.svelte +92 -0
  119. package/src/registry/blocks/calendar/CalendarBlock14.svelte +71 -0
  120. package/src/registry/blocks/calendar/CalendarBlock15.svelte +96 -0
  121. package/src/registry/blocks/calendar/CalendarBlock16.svelte +98 -0
  122. package/src/registry/blocks/calendar/CalendarBlock17.svelte +88 -0
  123. package/src/registry/blocks/calendar/CalendarBlock18.svelte +84 -0
  124. package/src/registry/blocks/calendar/CalendarBlock19.svelte +105 -0
  125. package/src/registry/blocks/calendar/CalendarBlock20.svelte +78 -0
  126. package/src/registry/blocks/calendar/CalendarBlock21.svelte +115 -0
  127. package/src/registry/blocks/calendar/CalendarBlock22.svelte +136 -0
  128. package/src/registry/blocks/calendar/CalendarBlock23.svelte +112 -0
  129. package/src/registry/blocks/calendar/CalendarBlock24.svelte +116 -0
  130. package/src/registry/blocks/calendar/CalendarBlock25.svelte +144 -0
  131. package/src/registry/blocks/calendar/CalendarBlock26.svelte +163 -0
  132. package/src/registry/blocks/calendar/CalendarBlock27.svelte +112 -0
  133. package/src/registry/blocks/calendar/CalendarBlock28.svelte +109 -0
  134. package/src/registry/blocks/calendar/CalendarBlock29.svelte +126 -0
  135. package/src/registry/blocks/calendar/CalendarBlock30.svelte +122 -0
  136. package/src/registry/blocks/calendar/CalendarBlock31.svelte +161 -0
  137. package/src/registry/blocks/calendar/CalendarBlock32.svelte +154 -0
  138. package/src/registry/blocks/calendar/index.ts +32 -0
  139. package/src/registry/blocks/card/Card01.svelte +69 -0
  140. package/src/registry/blocks/card/Card02.svelte +50 -0
  141. package/src/registry/blocks/card/Card03.svelte +60 -0
  142. package/src/registry/blocks/card/Card04.svelte +89 -0
  143. package/src/registry/blocks/card/Card05.svelte +51 -0
  144. package/src/registry/blocks/card/Card06.svelte +77 -0
  145. package/src/registry/blocks/card/Card07.svelte +35 -0
  146. package/src/registry/blocks/card/Card08.svelte +36 -0
  147. package/src/registry/blocks/card/index.ts +8 -0
  148. package/src/registry/blocks/cart/Cart01.svelte +183 -0
  149. package/src/registry/blocks/cart/Cart02.svelte +103 -0
  150. package/src/registry/blocks/cart/Cart03.svelte +38 -0
  151. package/src/registry/blocks/cart/Cart04.svelte +174 -0
  152. package/src/registry/blocks/cart/index.ts +4 -0
  153. package/src/registry/blocks/checkout/Checkout01.svelte +237 -0
  154. package/src/registry/blocks/checkout/Checkout02.svelte +205 -0
  155. package/src/registry/blocks/checkout/Checkout03.svelte +189 -0
  156. package/src/registry/blocks/checkout/Checkout04.svelte +109 -0
  157. package/src/registry/blocks/checkout/index.ts +4 -0
  158. package/src/registry/blocks/comparison-section/ComparisonSection01.svelte +116 -0
  159. package/src/registry/blocks/comparison-section/ComparisonSection02.svelte +98 -0
  160. package/src/registry/blocks/comparison-section/ComparisonSection03.svelte +93 -0
  161. package/src/registry/blocks/comparison-section/ComparisonSection04.svelte +98 -0
  162. package/src/registry/blocks/comparison-section/ComparisonSection05.svelte +119 -0
  163. package/src/registry/blocks/comparison-section/ComparisonSection06.svelte +154 -0
  164. package/src/registry/blocks/comparison-section/index.ts +6 -0
  165. package/src/registry/blocks/contact-section/ContactSection01.svelte +64 -0
  166. package/src/registry/blocks/contact-section/ContactSection02.svelte +108 -0
  167. package/src/registry/blocks/contact-section/ContactSection03.svelte +64 -0
  168. package/src/registry/blocks/contact-section/ContactSection04.svelte +30 -0
  169. package/src/registry/blocks/contact-section/ContactSection05.svelte +71 -0
  170. package/src/registry/blocks/contact-section/ContactSection06.svelte +88 -0
  171. package/src/registry/blocks/contact-section/index.ts +6 -0
  172. package/src/registry/blocks/cta/CTA01.svelte +44 -0
  173. package/src/registry/blocks/cta/CTA02.svelte +48 -0
  174. package/src/registry/blocks/cta/CTA03.svelte +53 -0
  175. package/src/registry/blocks/cta/CTA04.svelte +60 -0
  176. package/src/registry/blocks/cta/CTA05.svelte +53 -0
  177. package/src/registry/blocks/cta/CTA06.svelte +44 -0
  178. package/src/registry/blocks/cta/CTA07.svelte +39 -0
  179. package/src/registry/blocks/cta/index.ts +7 -0
  180. package/src/registry/blocks/dashboard/ChartsBlock01.svelte +275 -0
  181. package/src/registry/blocks/dashboard/DashboardBlock01.svelte +207 -0
  182. package/src/registry/blocks/dashboard/DashboardBlock02.svelte +259 -0
  183. package/src/registry/blocks/dashboard/DashboardBlock03.svelte +315 -0
  184. package/src/registry/blocks/dashboard/DashboardBlock04.svelte +220 -0
  185. package/src/registry/blocks/dashboard/DashboardBlock05.svelte +158 -0
  186. package/src/registry/blocks/dashboard/DashboardBlock06.svelte +173 -0
  187. package/src/registry/blocks/dashboard/DashboardBlock07.svelte +103 -0
  188. package/src/registry/blocks/dashboard/index.ts +16 -0
  189. package/src/registry/blocks/description-list/DescriptionList01.svelte +75 -0
  190. package/src/registry/blocks/description-list/DescriptionList02.svelte +50 -0
  191. package/src/registry/blocks/description-list/DescriptionList03.svelte +74 -0
  192. package/src/registry/blocks/description-list/DescriptionList04.svelte +88 -0
  193. package/src/registry/blocks/description-list/index.ts +4 -0
  194. package/src/registry/blocks/empty-lp/EmptyLP01.svelte +46 -0
  195. package/src/registry/blocks/empty-lp/EmptyLP02.svelte +49 -0
  196. package/src/registry/blocks/empty-lp/EmptyLP03.svelte +61 -0
  197. package/src/registry/blocks/empty-lp/EmptyLP04.svelte +37 -0
  198. package/src/registry/blocks/empty-lp/index.ts +4 -0
  199. package/src/registry/blocks/empty-section/EmptySection01.svelte +47 -0
  200. package/src/registry/blocks/empty-section/EmptySection02.svelte +93 -0
  201. package/src/registry/blocks/empty-section/EmptySection03.svelte +101 -0
  202. package/src/registry/blocks/empty-section/EmptySection04.svelte +76 -0
  203. package/src/registry/blocks/empty-section/index.ts +4 -0
  204. package/src/registry/blocks/faq-section/FaqSection01.svelte +114 -0
  205. package/src/registry/blocks/faq-section/FaqSection02.svelte +137 -0
  206. package/src/registry/blocks/faq-section/FaqSection03.svelte +107 -0
  207. package/src/registry/blocks/faq-section/FaqSection04.svelte +74 -0
  208. package/src/registry/blocks/faq-section/FaqSection05.svelte +69 -0
  209. package/src/registry/blocks/faq-section/index.ts +11 -0
  210. package/src/registry/blocks/feature-section/FeatureSection01.svelte +94 -0
  211. package/src/registry/blocks/feature-section/FeatureSection02.svelte +61 -0
  212. package/src/registry/blocks/feature-section/FeatureSection03.svelte +85 -0
  213. package/src/registry/blocks/feature-section/FeatureSection04.svelte +67 -0
  214. package/src/registry/blocks/feature-section/FeatureSection05.svelte +61 -0
  215. package/src/registry/blocks/feature-section/FeatureSection06.svelte +58 -0
  216. package/src/registry/blocks/feature-section/FeatureSection07.svelte +79 -0
  217. package/src/registry/blocks/feature-section/FeatureSection08.svelte +92 -0
  218. package/src/registry/blocks/feature-section/FeatureSection09.svelte +58 -0
  219. package/src/registry/blocks/feature-section/FeatureSection10.svelte +87 -0
  220. package/src/registry/blocks/feature-section/FeatureSection11.svelte +118 -0
  221. package/src/registry/blocks/feature-section/FeatureSection12.svelte +76 -0
  222. package/src/registry/blocks/feature-section/FeatureSection13.svelte +88 -0
  223. package/src/registry/blocks/feature-section/FeatureSection14.svelte +119 -0
  224. package/src/registry/blocks/feature-section/FeatureSection15.svelte +122 -0
  225. package/src/registry/blocks/feature-section/FeatureSection16.svelte +113 -0
  226. package/src/registry/blocks/feature-section/FeatureSection17.svelte +93 -0
  227. package/src/registry/blocks/feature-section/FeatureSection18.svelte +97 -0
  228. package/src/registry/blocks/feature-section/FeatureSection19.svelte +74 -0
  229. package/src/registry/blocks/feature-section/FeatureSection20.svelte +69 -0
  230. package/src/registry/blocks/feature-section/index.ts +20 -0
  231. package/src/registry/blocks/footer/Footer01.svelte +62 -0
  232. package/src/registry/blocks/footer/Footer02.svelte +67 -0
  233. package/src/registry/blocks/footer/Footer03.svelte +87 -0
  234. package/src/registry/blocks/footer/Footer04.svelte +67 -0
  235. package/src/registry/blocks/footer/Footer05.svelte +20 -0
  236. package/src/registry/blocks/footer/Footer06.svelte +107 -0
  237. package/src/registry/blocks/footer/Footer07.svelte +88 -0
  238. package/src/registry/blocks/footer/Footer08.svelte +84 -0
  239. package/src/registry/blocks/footer/Footer09.svelte +65 -0
  240. package/src/registry/blocks/footer/index.ts +19 -0
  241. package/src/registry/blocks/forms/SettingsBlock.svelte +329 -0
  242. package/src/registry/blocks/forms/index.ts +1 -0
  243. package/src/registry/blocks/gallery-section/GallerySection01.svelte +43 -0
  244. package/src/registry/blocks/gallery-section/GallerySection02.svelte +45 -0
  245. package/src/registry/blocks/gallery-section/GallerySection03.svelte +43 -0
  246. package/src/registry/blocks/gallery-section/GallerySection04.svelte +49 -0
  247. package/src/registry/blocks/gallery-section/GallerySection05.svelte +45 -0
  248. package/src/registry/blocks/gallery-section/GallerySection06.svelte +49 -0
  249. package/src/registry/blocks/gallery-section/GallerySection07.svelte +48 -0
  250. package/src/registry/blocks/gallery-section/GallerySection08.svelte +43 -0
  251. package/src/registry/blocks/gallery-section/GallerySection09.svelte +55 -0
  252. package/src/registry/blocks/gallery-section/GallerySection10.svelte +43 -0
  253. package/src/registry/blocks/gallery-section/GallerySection11.svelte +75 -0
  254. package/src/registry/blocks/gallery-section/GallerySection12.svelte +76 -0
  255. package/src/registry/blocks/gallery-section/index.ts +12 -0
  256. package/src/registry/blocks/header-section/HeaderSection01.svelte +53 -0
  257. package/src/registry/blocks/header-section/HeaderSection02.svelte +53 -0
  258. package/src/registry/blocks/header-section/HeaderSection03.svelte +61 -0
  259. package/src/registry/blocks/header-section/HeaderSection04.svelte +63 -0
  260. package/src/registry/blocks/header-section/HeaderSection05.svelte +53 -0
  261. package/src/registry/blocks/header-section/HeaderSection06.svelte +70 -0
  262. package/src/registry/blocks/header-section/HeaderSection07.svelte +97 -0
  263. package/src/registry/blocks/header-section/HeaderSection08.svelte +61 -0
  264. package/src/registry/blocks/header-section/HeaderSection09.svelte +53 -0
  265. package/src/registry/blocks/header-section/HeaderSection10.svelte +63 -0
  266. package/src/registry/blocks/header-section/HeaderSection11.svelte +68 -0
  267. package/src/registry/blocks/header-section/HeaderSection12.svelte +60 -0
  268. package/src/registry/blocks/header-section/HeaderSection13.svelte +92 -0
  269. package/src/registry/blocks/header-section/HeaderSection14.svelte +77 -0
  270. package/src/registry/blocks/header-section/HeaderSection15.svelte +49 -0
  271. package/src/registry/blocks/header-section/HeaderSection16.svelte +74 -0
  272. package/src/registry/blocks/header-section/HeaderSection17.svelte +58 -0
  273. package/src/registry/blocks/header-section/HeaderSection18.svelte +66 -0
  274. package/src/registry/blocks/header-section/HeaderSection19.svelte +47 -0
  275. package/src/registry/blocks/header-section/HeaderSection20.svelte +53 -0
  276. package/src/registry/blocks/header-section/index.ts +20 -0
  277. package/src/registry/blocks/hero-section/HeroSection01.svelte +69 -0
  278. package/src/registry/blocks/hero-section/HeroSection02.svelte +47 -0
  279. package/src/registry/blocks/hero-section/HeroSection03.svelte +56 -0
  280. package/src/registry/blocks/hero-section/HeroSection04.svelte +69 -0
  281. package/src/registry/blocks/hero-section/HeroSection05.svelte +73 -0
  282. package/src/registry/blocks/hero-section/HeroSection06.svelte +78 -0
  283. package/src/registry/blocks/hero-section/HeroSection07.svelte +48 -0
  284. package/src/registry/blocks/hero-section/HeroSection08.svelte +73 -0
  285. package/src/registry/blocks/hero-section/HeroSection09.svelte +51 -0
  286. package/src/registry/blocks/hero-section/HeroSection10.svelte +47 -0
  287. package/src/registry/blocks/hero-section/HeroSection11.svelte +60 -0
  288. package/src/registry/blocks/hero-section/HeroSection12.svelte +74 -0
  289. package/src/registry/blocks/hero-section/HeroSection13.svelte +86 -0
  290. package/src/registry/blocks/hero-section/HeroSection14.svelte +116 -0
  291. package/src/registry/blocks/hero-section/HeroSection15.svelte +75 -0
  292. package/src/registry/blocks/hero-section/HeroSection16.svelte +92 -0
  293. package/src/registry/blocks/hero-section/HeroSection17.svelte +78 -0
  294. package/src/registry/blocks/hero-section/HeroSection18.svelte +82 -0
  295. package/src/registry/blocks/hero-section/HeroSection19.svelte +72 -0
  296. package/src/registry/blocks/hero-section/HeroSection20.svelte +79 -0
  297. package/src/registry/blocks/hero-section/HeroSection21.svelte +75 -0
  298. package/src/registry/blocks/hero-section/HeroSection22.svelte +103 -0
  299. package/src/registry/blocks/hero-section/index.ts +22 -0
  300. package/src/registry/blocks/logo-section/LogoSection01.svelte +54 -0
  301. package/src/registry/blocks/logo-section/LogoSection02.svelte +56 -0
  302. package/src/registry/blocks/logo-section/LogoSection03.svelte +58 -0
  303. package/src/registry/blocks/logo-section/LogoSection04.svelte +58 -0
  304. package/src/registry/blocks/logo-section/LogoSection05.svelte +43 -0
  305. package/src/registry/blocks/logo-section/LogoSection06.svelte +43 -0
  306. package/src/registry/blocks/logo-section/LogoSection07.svelte +56 -0
  307. package/src/registry/blocks/logo-section/index.ts +7 -0
  308. package/src/registry/blocks/lp-navbar/LPNavbar01.svelte +94 -0
  309. package/src/registry/blocks/lp-navbar/LPNavbar02.svelte +96 -0
  310. package/src/registry/blocks/lp-navbar/LPNavbar03.svelte +97 -0
  311. package/src/registry/blocks/lp-navbar/LPNavbar04.svelte +103 -0
  312. package/src/registry/blocks/lp-navbar/LPNavbar05.svelte +173 -0
  313. package/src/registry/blocks/lp-navbar/LPNavbar06.svelte +200 -0
  314. package/src/registry/blocks/lp-navbar/LPNavbar07.svelte +202 -0
  315. package/src/registry/blocks/lp-navbar/index.ts +7 -0
  316. package/src/registry/blocks/mail/MailBlock.svelte +321 -0
  317. package/src/registry/blocks/mail/index.ts +2 -0
  318. package/src/registry/blocks/music/MusicBlock.svelte +239 -0
  319. package/src/registry/blocks/music/index.ts +1 -0
  320. package/src/registry/blocks/navbar/Navbar01.svelte +234 -0
  321. package/src/registry/blocks/navbar/Navbar02.svelte +111 -0
  322. package/src/registry/blocks/navbar/Navbar03.svelte +88 -0
  323. package/src/registry/blocks/navbar/index.ts +3 -0
  324. package/src/registry/blocks/not-found/NotFound01.svelte +29 -0
  325. package/src/registry/blocks/not-found/NotFound02.svelte +28 -0
  326. package/src/registry/blocks/not-found/NotFound03.svelte +25 -0
  327. package/src/registry/blocks/not-found/index.ts +3 -0
  328. package/src/registry/blocks/order-history/OrderHistory01.svelte +208 -0
  329. package/src/registry/blocks/order-history/OrderHistory02.svelte +131 -0
  330. package/src/registry/blocks/order-history/OrderHistory03.svelte +133 -0
  331. package/src/registry/blocks/order-history/index.ts +3 -0
  332. package/src/registry/blocks/page-header/PageHeader01.svelte +39 -0
  333. package/src/registry/blocks/page-header/PageHeader02.svelte +58 -0
  334. package/src/registry/blocks/page-header/PageHeader03.svelte +64 -0
  335. package/src/registry/blocks/page-header/PageHeader04.svelte +49 -0
  336. package/src/registry/blocks/page-header/PageHeader05.svelte +49 -0
  337. package/src/registry/blocks/page-header/PageHeader06.svelte +58 -0
  338. package/src/registry/blocks/page-header/PageHeader07.svelte +64 -0
  339. package/src/registry/blocks/page-header/PageHeader08.svelte +68 -0
  340. package/src/registry/blocks/page-header/index.ts +8 -0
  341. package/src/registry/blocks/playground/PlaygroundBlock01.svelte +162 -0
  342. package/src/registry/blocks/playground/PlaygroundBlock02.svelte +156 -0
  343. package/src/registry/blocks/playground/index.ts +2 -0
  344. package/src/registry/blocks/pricing-section/PricingSection01.svelte +109 -0
  345. package/src/registry/blocks/pricing-section/PricingSection02.svelte +145 -0
  346. package/src/registry/blocks/pricing-section/PricingSection03.svelte +94 -0
  347. package/src/registry/blocks/pricing-section/PricingSection04.svelte +103 -0
  348. package/src/registry/blocks/pricing-section/PricingSection05.svelte +128 -0
  349. package/src/registry/blocks/pricing-section/index.ts +20 -0
  350. package/src/registry/blocks/product-card/ProductCard01.svelte +74 -0
  351. package/src/registry/blocks/product-card/ProductCard02.svelte +108 -0
  352. package/src/registry/blocks/product-card/ProductCard03.svelte +80 -0
  353. package/src/registry/blocks/product-card/ProductCard04.svelte +50 -0
  354. package/src/registry/blocks/product-card/ProductCard05.svelte +107 -0
  355. package/src/registry/blocks/product-card/index.ts +5 -0
  356. package/src/registry/blocks/product-detail/ProductDetail01.svelte +174 -0
  357. package/src/registry/blocks/product-detail/ProductDetail02.svelte +170 -0
  358. package/src/registry/blocks/product-detail/ProductDetail03.svelte +159 -0
  359. package/src/registry/blocks/product-detail/ProductDetail04.svelte +106 -0
  360. package/src/registry/blocks/product-detail/ProductDetail05.svelte +181 -0
  361. package/src/registry/blocks/product-detail/index.ts +5 -0
  362. package/src/registry/blocks/product-listing/ProductListing01.svelte +194 -0
  363. package/src/registry/blocks/product-listing/ProductListing02.svelte +163 -0
  364. package/src/registry/blocks/product-listing/ProductListing03.svelte +173 -0
  365. package/src/registry/blocks/product-listing/ProductListing04.svelte +179 -0
  366. package/src/registry/blocks/product-listing/ProductListing05.svelte +126 -0
  367. package/src/registry/blocks/product-listing/index.ts +5 -0
  368. package/src/registry/blocks/product-reviews/ProductReviews01.svelte +156 -0
  369. package/src/registry/blocks/product-reviews/ProductReviews02.svelte +139 -0
  370. package/src/registry/blocks/product-reviews/ProductReviews03.svelte +137 -0
  371. package/src/registry/blocks/product-reviews/ProductReviews04.svelte +129 -0
  372. package/src/registry/blocks/product-reviews/index.ts +4 -0
  373. package/src/registry/blocks/promo-section/PromoSection01.svelte +72 -0
  374. package/src/registry/blocks/promo-section/PromoSection02.svelte +61 -0
  375. package/src/registry/blocks/promo-section/PromoSection03.svelte +110 -0
  376. package/src/registry/blocks/promo-section/PromoSection04.svelte +103 -0
  377. package/src/registry/blocks/promo-section/index.ts +4 -0
  378. package/src/registry/blocks/rich-text/RichText01.svelte +30 -0
  379. package/src/registry/blocks/rich-text/RichText02.svelte +72 -0
  380. package/src/registry/blocks/rich-text/RichText03.svelte +52 -0
  381. package/src/registry/blocks/rich-text/RichText04.svelte +44 -0
  382. package/src/registry/blocks/rich-text/RichText05.svelte +56 -0
  383. package/src/registry/blocks/rich-text/index.ts +5 -0
  384. package/src/registry/blocks/section/Section01.svelte +38 -0
  385. package/src/registry/blocks/section/Section02.svelte +90 -0
  386. package/src/registry/blocks/section/Section03.svelte +95 -0
  387. package/src/registry/blocks/section/Section04.svelte +117 -0
  388. package/src/registry/blocks/section/index.ts +4 -0
  389. package/src/registry/blocks/section-footer/SectionFooter01.svelte +39 -0
  390. package/src/registry/blocks/section-footer/SectionFooter02.svelte +33 -0
  391. package/src/registry/blocks/section-footer/SectionFooter03.svelte +33 -0
  392. package/src/registry/blocks/section-footer/SectionFooter04.svelte +34 -0
  393. package/src/registry/blocks/section-footer/SectionFooter05.svelte +69 -0
  394. package/src/registry/blocks/section-footer/index.ts +5 -0
  395. package/src/registry/blocks/section-header/SectionHeader01.svelte +39 -0
  396. package/src/registry/blocks/section-header/SectionHeader02.svelte +58 -0
  397. package/src/registry/blocks/section-header/SectionHeader03.svelte +88 -0
  398. package/src/registry/blocks/section-header/SectionHeader04.svelte +45 -0
  399. package/src/registry/blocks/section-header/SectionHeader05.svelte +64 -0
  400. package/src/registry/blocks/section-header/index.ts +5 -0
  401. package/src/registry/blocks/settings/Settings01.svelte +202 -0
  402. package/src/registry/blocks/settings/Settings02.svelte +201 -0
  403. package/src/registry/blocks/settings/Settings03.svelte +156 -0
  404. package/src/registry/blocks/settings/Settings04.svelte +175 -0
  405. package/src/registry/blocks/settings/Settings05.svelte +248 -0
  406. package/src/registry/blocks/settings/Settings06.svelte +120 -0
  407. package/src/registry/blocks/settings/Settings07.svelte +136 -0
  408. package/src/registry/blocks/settings/index.ts +7 -0
  409. package/src/registry/blocks/sidebar/SidebarLayout01.svelte +108 -0
  410. package/src/registry/blocks/sidebar/SidebarLayout02.svelte +75 -0
  411. package/src/registry/blocks/sidebar/SidebarLayout03.svelte +108 -0
  412. package/src/registry/blocks/sidebar/SidebarLayout04.svelte +111 -0
  413. package/src/registry/blocks/sidebar/SidebarLayout05.svelte +103 -0
  414. package/src/registry/blocks/sidebar/SidebarLayout06.svelte +122 -0
  415. package/src/registry/blocks/sidebar/SidebarLayout07.svelte +183 -0
  416. package/src/registry/blocks/sidebar/SidebarLayout08.svelte +162 -0
  417. package/src/registry/blocks/sidebar/SidebarLayout09.svelte +167 -0
  418. package/src/registry/blocks/sidebar/SidebarLayout10.svelte +159 -0
  419. package/src/registry/blocks/sidebar/SidebarLayout11.svelte +135 -0
  420. package/src/registry/blocks/sidebar/SidebarLayout12.svelte +159 -0
  421. package/src/registry/blocks/sidebar/SidebarLayout13.svelte +103 -0
  422. package/src/registry/blocks/sidebar/SidebarLayout14.svelte +87 -0
  423. package/src/registry/blocks/sidebar/SidebarLayout15.svelte +228 -0
  424. package/src/registry/blocks/sidebar/index.ts +15 -0
  425. package/src/registry/blocks/sign-in/SignIn01.svelte +140 -0
  426. package/src/registry/blocks/sign-in/SignIn02.svelte +155 -0
  427. package/src/registry/blocks/sign-in/SignIn03.svelte +214 -0
  428. package/src/registry/blocks/sign-in/SignIn04.svelte +163 -0
  429. package/src/registry/blocks/sign-in/SignIn05.svelte +209 -0
  430. package/src/registry/blocks/sign-in/SignIn06.svelte +233 -0
  431. package/src/registry/blocks/sign-in/SignIn07.svelte +268 -0
  432. package/src/registry/blocks/sign-in/SignIn08.svelte +125 -0
  433. package/src/registry/blocks/sign-in/SignIn09.svelte +93 -0
  434. package/src/registry/blocks/sign-in/SignIn10.svelte +74 -0
  435. package/src/registry/blocks/sign-in/index.ts +10 -0
  436. package/src/registry/blocks/sign-up/SignUp01.svelte +124 -0
  437. package/src/registry/blocks/sign-up/SignUp02.svelte +110 -0
  438. package/src/registry/blocks/sign-up/SignUp03.svelte +182 -0
  439. package/src/registry/blocks/sign-up/SignUp04.svelte +126 -0
  440. package/src/registry/blocks/sign-up/SignUp05.svelte +182 -0
  441. package/src/registry/blocks/sign-up/SignUp06.svelte +221 -0
  442. package/src/registry/blocks/sign-up/SignUp07.svelte +98 -0
  443. package/src/registry/blocks/sign-up/index.ts +7 -0
  444. package/src/registry/blocks/stats-section/StatsSection01.svelte +66 -0
  445. package/src/registry/blocks/stats-section/StatsSection02.svelte +60 -0
  446. package/src/registry/blocks/stats-section/StatsSection03.svelte +66 -0
  447. package/src/registry/blocks/stats-section/StatsSection04.svelte +66 -0
  448. package/src/registry/blocks/stats-section/StatsSection05.svelte +60 -0
  449. package/src/registry/blocks/stats-section/StatsSection06.svelte +48 -0
  450. package/src/registry/blocks/stats-section/StatsSection07.svelte +66 -0
  451. package/src/registry/blocks/stats-section/index.ts +7 -0
  452. package/src/registry/blocks/store-navbar/StoreNavbar01.svelte +101 -0
  453. package/src/registry/blocks/store-navbar/StoreNavbar02.svelte +65 -0
  454. package/src/registry/blocks/store-navbar/StoreNavbar03.svelte +83 -0
  455. package/src/registry/blocks/store-navbar/StoreNavbar04.svelte +110 -0
  456. package/src/registry/blocks/store-navbar/StoreNavbar05.svelte +80 -0
  457. package/src/registry/blocks/store-navbar/index.ts +5 -0
  458. package/src/registry/blocks/table-header/TableHeader01.svelte +96 -0
  459. package/src/registry/blocks/table-header/TableHeader02.svelte +86 -0
  460. package/src/registry/blocks/table-header/TableHeader03.svelte +99 -0
  461. package/src/registry/blocks/table-header/TableHeader04.svelte +107 -0
  462. package/src/registry/blocks/table-header/index.ts +4 -0
  463. package/src/registry/blocks/tasks/TasksBlock.svelte +286 -0
  464. package/src/registry/blocks/tasks/index.ts +1 -0
  465. package/src/registry/blocks/team-section/TeamSection01.svelte +80 -0
  466. package/src/registry/blocks/team-section/TeamSection02.svelte +102 -0
  467. package/src/registry/blocks/team-section/TeamSection03.svelte +76 -0
  468. package/src/registry/blocks/team-section/TeamSection04.svelte +106 -0
  469. package/src/registry/blocks/team-section/index.ts +13 -0
  470. package/src/registry/blocks/testimonials/Testimonial01.svelte +74 -0
  471. package/src/registry/blocks/testimonials/Testimonial02.svelte +74 -0
  472. package/src/registry/blocks/testimonials/Testimonial03.svelte +79 -0
  473. package/src/registry/blocks/testimonials/Testimonial04.svelte +113 -0
  474. package/src/registry/blocks/testimonials/Testimonial05.svelte +74 -0
  475. package/src/registry/blocks/testimonials/Testimonial06.svelte +114 -0
  476. package/src/registry/blocks/testimonials/Testimonial07.svelte +131 -0
  477. package/src/registry/blocks/testimonials/Testimonials01.svelte +60 -0
  478. package/src/registry/blocks/testimonials/Testimonials02.svelte +61 -0
  479. package/src/registry/blocks/testimonials/Testimonials03.svelte +79 -0
  480. package/src/registry/blocks/testimonials/Testimonials04.svelte +74 -0
  481. package/src/registry/blocks/testimonials/Testimonials05.svelte +68 -0
  482. package/src/registry/blocks/testimonials/Testimonials06.svelte +82 -0
  483. package/src/registry/blocks/testimonials/Testimonials07.svelte +98 -0
  484. package/src/registry/blocks/testimonials/index.ts +16 -0
  485. package/src/registry/templates/cn.ts +42 -0
  486. package/src/index.ts +0 -2
  487. package/tsconfig.json +0 -20
  488. /package/src/{generate-component.cjs → commands/generate-component.cjs} +0 -0
  489. /package/src/{generate-route.cjs → commands/generate-route.cjs} +0 -0
  490. /package/src/{generate-service.cjs → commands/generate-service.cjs} +0 -0
  491. /package/src/{manage-auth-users.cjs → commands/manage-auth-users.cjs} +0 -0
  492. /package/src/{setup.cjs → commands/setup.cjs} +0 -0
  493. /package/src/{validate-setup.cjs → commands/validate.cjs} +0 -0
@@ -0,0 +1,43 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface Props {
5
+ class?: string;
6
+ title?: string;
7
+ description?: string;
8
+ images?: Array<{ src?: string; alt?: string; caption?: string }>;
9
+ }
10
+
11
+ let {
12
+ class: className,
13
+ title = 'Explore our gallery',
14
+ description,
15
+ images = Array.from({ length: 12 }, (_, i) => ({ alt: `Image ${i + 1}` }))
16
+ }: Props = $props();
17
+
18
+ const imagePlaceholder = `<div class="w-full h-full bg-muted rounded-lg flex items-center justify-center overflow-hidden"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" class="text-muted-foreground/40"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg></div>`;
19
+ </script>
20
+
21
+ <section class={cn('w-full px-4 py-16', className)}>
22
+ <div class="mx-auto max-w-6xl">
23
+ {#if title || description}
24
+ <div class="mb-8 text-center">
25
+ <p class="mb-2 text-sm font-medium text-muted-foreground">Gallery Section</p>
26
+ {#if title}
27
+ <h2 class="mb-2 text-3xl font-bold tracking-tight sm:text-4xl">{title}</h2>
28
+ {/if}
29
+ {#if description}
30
+ <p class="text-lg text-muted-foreground">{description}</p>
31
+ {/if}
32
+ </div>
33
+ {/if}
34
+
35
+ <div class="mt-8 flex gap-4 overflow-x-auto pb-4 snap-x snap-mandatory scrollbar-hide">
36
+ {#each images.slice(0, 12) as image}
37
+ <div class="snap-start shrink-0 w-72 aspect-[3/4]">
38
+ {@html imagePlaceholder}
39
+ </div>
40
+ {/each}
41
+ </div>
42
+ </div>
43
+ </section>
@@ -0,0 +1,55 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface Props {
5
+ class?: string;
6
+ title?: string;
7
+ description?: string;
8
+ images?: Array<{ src?: string; alt?: string; caption?: string }>;
9
+ }
10
+
11
+ let {
12
+ class: className,
13
+ title = 'Explore our gallery',
14
+ description,
15
+ images = Array.from({ length: 4 }, (_, i) => ({ alt: `Image ${i + 1}`, caption: `Featured Item ${i + 1}` }))
16
+ }: Props = $props();
17
+
18
+ const imagePlaceholder = `<div class="w-full h-full bg-muted rounded-lg flex items-center justify-center overflow-hidden"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" class="text-muted-foreground/40"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg></div>`;
19
+ </script>
20
+
21
+ <section class={cn('w-full px-4 py-16', className)}>
22
+ <div class="mx-auto max-w-6xl">
23
+ {#if title || description}
24
+ <div class="mb-8 text-center">
25
+ <p class="mb-2 text-sm font-medium text-muted-foreground">Gallery Section</p>
26
+ {#if title}
27
+ <h2 class="mb-2 text-3xl font-bold tracking-tight sm:text-4xl">{title}</h2>
28
+ {/if}
29
+ {#if description}
30
+ <p class="text-lg text-muted-foreground">{description}</p>
31
+ {/if}
32
+ </div>
33
+ {/if}
34
+
35
+ <div class="mt-8">
36
+ <div class="aspect-[21/9] w-full">
37
+ {@html imagePlaceholder}
38
+ </div>
39
+
40
+ <div class="mt-8 grid grid-cols-1 gap-6 sm:grid-cols-3">
41
+ {#each images.slice(1, 4) as item}
42
+ <div class="group cursor-pointer">
43
+ <div class="aspect-square overflow-hidden rounded-lg">
44
+ {@html imagePlaceholder}
45
+ </div>
46
+ {#if item.caption}
47
+ <h3 class="mt-3 font-semibold group-hover:text-foreground/80">{item.caption}</h3>
48
+ <p class="mt-1 text-sm text-muted-foreground">Explore this gallery item</p>
49
+ {/if}
50
+ </div>
51
+ {/each}
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </section>
@@ -0,0 +1,43 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface Props {
5
+ class?: string;
6
+ title?: string;
7
+ description?: string;
8
+ images?: Array<{ src?: string; alt?: string; caption?: string }>;
9
+ }
10
+
11
+ let {
12
+ class: className,
13
+ title = 'Explore our gallery',
14
+ description,
15
+ images = Array.from({ length: 12 }, (_, i) => ({ alt: `Image ${i + 1}` }))
16
+ }: Props = $props();
17
+
18
+ const imagePlaceholder = `<div class="w-full h-full bg-muted rounded-lg flex items-center justify-center overflow-hidden"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" class="text-muted-foreground/40"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg></div>`;
19
+ </script>
20
+
21
+ <section class="w-full bg-foreground py-16 px-4">
22
+ <div class="mx-auto max-w-6xl">
23
+ {#if title || description}
24
+ <div class="mb-8 text-center">
25
+ <p class="mb-2 text-sm font-medium text-background/60">Gallery Section</p>
26
+ {#if title}
27
+ <h2 class="mb-2 text-3xl font-bold tracking-tight text-background sm:text-4xl">{title}</h2>
28
+ {/if}
29
+ {#if description}
30
+ <p class="text-lg text-background/80">{description}</p>
31
+ {/if}
32
+ </div>
33
+ {/if}
34
+
35
+ <div class="mt-8 grid grid-cols-2 gap-3 sm:grid-cols-3">
36
+ {#each images.slice(0, 12) as image}
37
+ <div class="aspect-square">
38
+ {@html imagePlaceholder}
39
+ </div>
40
+ {/each}
41
+ </div>
42
+ </div>
43
+ </section>
@@ -0,0 +1,75 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface Props {
5
+ class?: string;
6
+ title?: string;
7
+ description?: string;
8
+ images?: Array<{ src?: string; alt?: string; caption?: string }>;
9
+ }
10
+
11
+ let {
12
+ class: className,
13
+ title = 'Explore our gallery',
14
+ description,
15
+ images = Array.from({ length: 12 }, (_, i) => ({ alt: `Image ${i + 1}` }))
16
+ }: Props = $props();
17
+
18
+ let selectedIndex: number | null = $state(null);
19
+
20
+ const imagePlaceholder = `<div class="w-full h-full bg-muted rounded-lg flex items-center justify-center overflow-hidden"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" class="text-muted-foreground/40"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg></div>`;
21
+ </script>
22
+
23
+ <section class={cn('w-full px-4 py-16', className)}>
24
+ <div class="mx-auto max-w-6xl">
25
+ {#if title || description}
26
+ <div class="mb-8 text-center">
27
+ <p class="mb-2 text-sm font-medium text-muted-foreground">Gallery Section</p>
28
+ {#if title}
29
+ <h2 class="mb-2 text-3xl font-bold tracking-tight sm:text-4xl">{title}</h2>
30
+ {/if}
31
+ {#if description}
32
+ <p class="text-lg text-muted-foreground">{description}</p>
33
+ {/if}
34
+ </div>
35
+ {/if}
36
+
37
+ <div class="mt-8 grid grid-cols-2 gap-3 sm:grid-cols-3">
38
+ {#each images.slice(0, 12) as image, index}
39
+ <button
40
+ class="aspect-square cursor-pointer transition-opacity hover:opacity-80"
41
+ onclick={() => (selectedIndex = index)}
42
+ type="button"
43
+ aria-label={`Open image ${index + 1}`}
44
+ >
45
+ {@html imagePlaceholder}
46
+ </button>
47
+ {/each}
48
+ </div>
49
+ </div>
50
+
51
+ {#if selectedIndex !== null}
52
+ <div
53
+ class="fixed inset-0 z-50 bg-black/80 flex items-center justify-center"
54
+ onclick={() => (selectedIndex = null)}
55
+ role="dialog"
56
+ aria-label="Image lightbox"
57
+ >
58
+ <div class="max-w-4xl w-full mx-4 relative" onclick={(e) => e.stopPropagation()}>
59
+ <div class="aspect-video bg-black rounded-lg flex items-center justify-center">
60
+ {@html imagePlaceholder}
61
+ </div>
62
+ <button
63
+ class="absolute top-4 right-4 text-white hover:text-white/80 transition-opacity"
64
+ onclick={() => (selectedIndex = null)}
65
+ type="button"
66
+ aria-label="Close lightbox"
67
+ >
68
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
69
+ <line x1="18" y1="6" x2="6" y2="18"></line>
70
+ <line x1="6" y1="6" x2="18" y2="18"></line>
71
+ </svg>
72
+ </button>
73
+ </div>
74
+ </div>
75
+ {/if}
@@ -0,0 +1,76 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface Props {
5
+ class?: string;
6
+ title?: string;
7
+ description?: string;
8
+ images?: Array<{ src?: string; alt?: string; caption?: string }>;
9
+ }
10
+
11
+ let {
12
+ class: className,
13
+ title = 'Explore our gallery',
14
+ description = 'Premium featured showcase with curated highlights',
15
+ images = Array.from({ length: 1 }, (_, i) => ({ alt: `Feature ${i + 1}` }))
16
+ }: Props = $props();
17
+
18
+ const features = ['Premium quality materials', 'Handcrafted details', 'Sustainable practices', 'Limited edition availability'];
19
+
20
+ const imagePlaceholder = `<div class="w-full h-full bg-muted rounded-lg flex items-center justify-center overflow-hidden"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" class="text-muted-foreground/40"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg></div>`;
21
+ </script>
22
+
23
+ <section class={cn('w-full px-4 py-16', className)}>
24
+ <div class="mx-auto max-w-6xl">
25
+ {#if title || description}
26
+ <div class="mb-12 text-center">
27
+ <p class="mb-2 text-sm font-medium text-muted-foreground">Gallery Section</p>
28
+ {#if title}
29
+ <h2 class="mb-2 text-3xl font-bold tracking-tight sm:text-4xl">{title}</h2>
30
+ {/if}
31
+ {#if description}
32
+ <p class="text-lg text-muted-foreground">{description}</p>
33
+ {/if}
34
+ </div>
35
+ {/if}
36
+
37
+ <div class="grid grid-cols-1 gap-12 sm:grid-cols-2 items-center">
38
+ <div class="aspect-square">
39
+ {@html imagePlaceholder}
40
+ </div>
41
+
42
+ <div>
43
+ <h3 class="text-2xl font-bold mb-4">Premium Feature Collection</h3>
44
+ <p class="text-muted-foreground mb-6">Discover our handpicked selection of exceptional items carefully curated for discerning customers.</p>
45
+
46
+ <ul class="space-y-4 mb-8">
47
+ {#each features as feature}
48
+ <li class="flex items-start gap-3">
49
+ <svg
50
+ width="20"
51
+ height="20"
52
+ viewBox="0 0 24 24"
53
+ fill="none"
54
+ stroke="currentColor"
55
+ stroke-width="2"
56
+ class="shrink-0 text-foreground mt-0.5"
57
+ >
58
+ <polyline points="20 6 9 17 4 12"></polyline>
59
+ </svg>
60
+ <span class="text-base">{feature}</span>
61
+ </li>
62
+ {/each}
63
+ </ul>
64
+
65
+ <div class="flex gap-3">
66
+ <button class="px-6 py-2 bg-foreground text-background rounded-lg font-medium hover:bg-foreground/90 transition-colors">
67
+ Learn More
68
+ </button>
69
+ <button class="px-6 py-2 border border-foreground rounded-lg font-medium hover:bg-foreground/5 transition-colors">
70
+ View Collection
71
+ </button>
72
+ </div>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </section>
@@ -0,0 +1,12 @@
1
+ export { default as GallerySection01 } from './GallerySection01.svelte';
2
+ export { default as GallerySection02 } from './GallerySection02.svelte';
3
+ export { default as GallerySection03 } from './GallerySection03.svelte';
4
+ export { default as GallerySection04 } from './GallerySection04.svelte';
5
+ export { default as GallerySection05 } from './GallerySection05.svelte';
6
+ export { default as GallerySection06 } from './GallerySection06.svelte';
7
+ export { default as GallerySection07 } from './GallerySection07.svelte';
8
+ export { default as GallerySection08 } from './GallerySection08.svelte';
9
+ export { default as GallerySection09 } from './GallerySection09.svelte';
10
+ export { default as GallerySection10 } from './GallerySection10.svelte';
11
+ export { default as GallerySection11 } from './GallerySection11.svelte';
12
+ export { default as GallerySection12 } from './GallerySection12.svelte';
@@ -0,0 +1,53 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ eyebrow?: string;
8
+ title?: string;
9
+ description?: string;
10
+ primaryLabel?: string;
11
+ secondaryLabel?: string;
12
+ onPrimary?: () => void;
13
+ onSecondary?: () => void;
14
+ }
15
+
16
+ let {
17
+ class: className,
18
+ eyebrow = 'New release ✦',
19
+ title = 'The modern way to build for the web',
20
+ description,
21
+ primaryLabel = 'Get started',
22
+ secondaryLabel = 'View demo',
23
+ onPrimary,
24
+ onSecondary
25
+ }: Props = $props();
26
+ </script>
27
+
28
+ <section class={cn('w-full bg-background px-4 py-20 sm:py-28', className)}>
29
+ <div class="mx-auto max-w-3xl text-center">
30
+ {#if eyebrow}
31
+ <div class="mb-6 inline-flex items-center gap-2 rounded-full border bg-muted/50 px-3 py-1 text-xs">
32
+ {eyebrow}
33
+ </div>
34
+ {/if}
35
+
36
+ {#if title}
37
+ <h1 class="text-4xl sm:text-6xl font-bold tracking-tight mb-4">{title}</h1>
38
+ {/if}
39
+
40
+ {#if description}
41
+ <p class="text-lg text-muted-foreground mb-8">{description}</p>
42
+ {/if}
43
+
44
+ <div class="flex flex-col sm:flex-row gap-4 justify-center">
45
+ <Button onclick={onPrimary} size="lg">
46
+ {primaryLabel}
47
+ </Button>
48
+ <Button onclick={onSecondary} variant="outline" size="lg">
49
+ {secondaryLabel}
50
+ </Button>
51
+ </div>
52
+ </div>
53
+ </section>
@@ -0,0 +1,53 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ eyebrow?: string;
8
+ title?: string;
9
+ description?: string;
10
+ primaryLabel?: string;
11
+ secondaryLabel?: string;
12
+ onPrimary?: () => void;
13
+ onSecondary?: () => void;
14
+ }
15
+
16
+ let {
17
+ class: className,
18
+ eyebrow = 'New release ✦',
19
+ title = 'The modern way to build for the web',
20
+ description,
21
+ primaryLabel = 'Get started',
22
+ secondaryLabel = 'View demo',
23
+ onPrimary,
24
+ onSecondary
25
+ }: Props = $props();
26
+ </script>
27
+
28
+ <section class={cn('w-full bg-background px-4 py-20 sm:py-28', className)}>
29
+ <div class="mx-auto max-w-2xl">
30
+ {#if eyebrow}
31
+ <div class="mb-6 inline-flex items-center gap-2 rounded-full border bg-muted/50 px-3 py-1 text-xs">
32
+ {eyebrow}
33
+ </div>
34
+ {/if}
35
+
36
+ {#if title}
37
+ <h1 class="text-4xl sm:text-6xl font-bold tracking-tight mb-4">{title}</h1>
38
+ {/if}
39
+
40
+ {#if description}
41
+ <p class="text-lg text-muted-foreground mb-8">{description}</p>
42
+ {/if}
43
+
44
+ <div class="flex flex-col sm:flex-row gap-4">
45
+ <Button onclick={onPrimary} size="lg">
46
+ {primaryLabel}
47
+ </Button>
48
+ <Button onclick={onSecondary} variant="outline" size="lg">
49
+ {secondaryLabel}
50
+ </Button>
51
+ </div>
52
+ </div>
53
+ </section>
@@ -0,0 +1,61 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ eyebrow?: string;
8
+ title?: string;
9
+ description?: string;
10
+ primaryLabel?: string;
11
+ secondaryLabel?: string;
12
+ onPrimary?: () => void;
13
+ onSecondary?: () => void;
14
+ }
15
+
16
+ let {
17
+ class: className,
18
+ eyebrow = 'New release ✦',
19
+ title = 'The modern way to build for the web',
20
+ description,
21
+ primaryLabel = 'Get started',
22
+ secondaryLabel = 'View demo',
23
+ onPrimary,
24
+ onSecondary
25
+ }: Props = $props();
26
+
27
+ const imagePlaceholder = `<div class="aspect-video w-full rounded-2xl bg-muted shadow-2xl flex items-center justify-center"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" class="text-muted-foreground/40"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg></div>`;
28
+ </script>
29
+
30
+ <section class={cn('w-full bg-background px-4 py-20 sm:py-28', className)}>
31
+ <div class="mx-auto max-w-3xl">
32
+ <div class="text-center mb-12">
33
+ {#if eyebrow}
34
+ <div class="mb-6 inline-flex items-center gap-2 rounded-full border bg-muted/50 px-3 py-1 text-xs">
35
+ {eyebrow}
36
+ </div>
37
+ {/if}
38
+
39
+ {#if title}
40
+ <h1 class="text-4xl sm:text-6xl font-bold tracking-tight mb-4">{title}</h1>
41
+ {/if}
42
+
43
+ {#if description}
44
+ <p class="text-lg text-muted-foreground mb-8">{description}</p>
45
+ {/if}
46
+
47
+ <div class="flex flex-col sm:flex-row gap-4 justify-center">
48
+ <Button onclick={onPrimary} size="lg">
49
+ {primaryLabel}
50
+ </Button>
51
+ <Button onclick={onSecondary} variant="outline" size="lg">
52
+ {secondaryLabel}
53
+ </Button>
54
+ </div>
55
+ </div>
56
+
57
+ <div class="mt-12">
58
+ {@html imagePlaceholder}
59
+ </div>
60
+ </div>
61
+ </section>
@@ -0,0 +1,63 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ eyebrow?: string;
8
+ title?: string;
9
+ description?: string;
10
+ primaryLabel?: string;
11
+ secondaryLabel?: string;
12
+ onPrimary?: () => void;
13
+ onSecondary?: () => void;
14
+ }
15
+
16
+ let {
17
+ class: className,
18
+ eyebrow = 'New release ✦',
19
+ title = 'The modern way to build for the web',
20
+ description,
21
+ primaryLabel = 'Get started',
22
+ secondaryLabel = 'View demo',
23
+ onPrimary,
24
+ onSecondary
25
+ }: Props = $props();
26
+
27
+ const imagePlaceholder = `<div class="aspect-video w-full rounded-2xl bg-muted shadow-2xl flex items-center justify-center"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" class="text-muted-foreground/40"><rect x="3" y="3" width="18" height="18" rx="2"/><circle cx="8.5" cy="8.5" r="1.5"/><polyline points="21 15 16 10 5 21"/></svg></div>`;
28
+ </script>
29
+
30
+ <section class={cn('w-full bg-background px-4 py-20 sm:py-28', className)}>
31
+ <div class="mx-auto max-w-6xl">
32
+ <div class="grid grid-cols-1 gap-12 sm:grid-cols-2 items-center">
33
+ <div>
34
+ {#if eyebrow}
35
+ <div class="mb-6 inline-flex items-center gap-2 rounded-full border bg-muted/50 px-3 py-1 text-xs">
36
+ {eyebrow}
37
+ </div>
38
+ {/if}
39
+
40
+ {#if title}
41
+ <h1 class="text-4xl sm:text-5xl font-bold tracking-tight mb-4">{title}</h1>
42
+ {/if}
43
+
44
+ {#if description}
45
+ <p class="text-lg text-muted-foreground mb-8">{description}</p>
46
+ {/if}
47
+
48
+ <div class="flex flex-col sm:flex-row gap-4">
49
+ <Button onclick={onPrimary} size="lg">
50
+ {primaryLabel}
51
+ </Button>
52
+ <Button onclick={onSecondary} variant="outline" size="lg">
53
+ {secondaryLabel}
54
+ </Button>
55
+ </div>
56
+ </div>
57
+
58
+ <div>
59
+ {@html imagePlaceholder}
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </section>
@@ -0,0 +1,53 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ eyebrow?: string;
8
+ title?: string;
9
+ description?: string;
10
+ primaryLabel?: string;
11
+ secondaryLabel?: string;
12
+ onPrimary?: () => void;
13
+ onSecondary?: () => void;
14
+ }
15
+
16
+ let {
17
+ class: className,
18
+ eyebrow = 'New release ✦',
19
+ title = 'The modern way to build for the web',
20
+ description,
21
+ primaryLabel = 'Get started',
22
+ secondaryLabel = 'View demo',
23
+ onPrimary,
24
+ onSecondary
25
+ }: Props = $props();
26
+ </script>
27
+
28
+ <section class={cn('w-full bg-foreground text-background py-20 sm:py-28 px-4', className)}>
29
+ <div class="mx-auto max-w-3xl text-center">
30
+ {#if eyebrow}
31
+ <div class="mb-6 inline-flex items-center gap-2 rounded-full border border-background/20 bg-background/10 px-3 py-1 text-xs">
32
+ {eyebrow}
33
+ </div>
34
+ {/if}
35
+
36
+ {#if title}
37
+ <h1 class="text-4xl sm:text-6xl font-bold tracking-tight mb-4">{title}</h1>
38
+ {/if}
39
+
40
+ {#if description}
41
+ <p class="text-lg text-background/80 mb-8">{description}</p>
42
+ {/if}
43
+
44
+ <div class="flex flex-col sm:flex-row gap-4 justify-center">
45
+ <Button onclick={onPrimary} size="lg" variant="secondary">
46
+ {primaryLabel}
47
+ </Button>
48
+ <Button onclick={onSecondary} variant="outline" size="lg" class="border-background/30 text-background hover:bg-background/10">
49
+ {secondaryLabel}
50
+ </Button>
51
+ </div>
52
+ </div>
53
+ </section>
@@ -0,0 +1,70 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ eyebrow?: string;
8
+ title?: string;
9
+ description?: string;
10
+ primaryLabel?: string;
11
+ secondaryLabel?: string;
12
+ onPrimary?: () => void;
13
+ onSecondary?: () => void;
14
+ }
15
+
16
+ let {
17
+ class: className,
18
+ eyebrow = 'New release ✦',
19
+ title = 'The modern way to build for the web',
20
+ description,
21
+ primaryLabel = 'Get started',
22
+ secondaryLabel = 'View demo',
23
+ onPrimary,
24
+ onSecondary
25
+ }: Props = $props();
26
+
27
+ const stats = [
28
+ { value: '10K+', label: 'Active Users' },
29
+ { value: '99.9%', label: 'Uptime' },
30
+ { value: '4.9/5', label: 'Rating' }
31
+ ];
32
+ </script>
33
+
34
+ <section class={cn('w-full bg-background px-4 py-20 sm:py-28', className)}>
35
+ <div class="mx-auto max-w-3xl">
36
+ <div class="text-center">
37
+ {#if eyebrow}
38
+ <div class="mb-6 inline-flex items-center gap-2 rounded-full border bg-muted/50 px-3 py-1 text-xs">
39
+ {eyebrow}
40
+ </div>
41
+ {/if}
42
+
43
+ {#if title}
44
+ <h1 class="text-4xl sm:text-6xl font-bold tracking-tight mb-4">{title}</h1>
45
+ {/if}
46
+
47
+ {#if description}
48
+ <p class="text-lg text-muted-foreground mb-8">{description}</p>
49
+ {/if}
50
+
51
+ <div class="flex flex-col sm:flex-row gap-4 justify-center">
52
+ <Button onclick={onPrimary} size="lg">
53
+ {primaryLabel}
54
+ </Button>
55
+ <Button onclick={onSecondary} variant="outline" size="lg">
56
+ {secondaryLabel}
57
+ </Button>
58
+ </div>
59
+ </div>
60
+
61
+ <div class="mt-12 grid grid-cols-3 gap-8 border-t pt-8">
62
+ {#each stats as stat}
63
+ <div class="text-center">
64
+ <p class="text-3xl font-bold">{stat.value}</p>
65
+ <p class="mt-2 text-sm text-muted-foreground">{stat.label}</p>
66
+ </div>
67
+ {/each}
68
+ </div>
69
+ </div>
70
+ </section>