@xbg.solutions/create-frontend 1.1.2 → 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,189 @@
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
+ }
8
+
9
+ const { class: className }: Props = $props();
10
+
11
+ let cardNumber = $state('');
12
+ let cardholderName = $state('John Doe');
13
+ let expiryMonth = $state('');
14
+ let expiryYear = $state('');
15
+ let cvv = $state('');
16
+
17
+ const totalAmount = 154.99;
18
+
19
+ function LockIcon() {
20
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>`;
21
+ }
22
+
23
+ function formatCardNumber(value: string): string {
24
+ const v = value.replace(/\s+/g, '').replace(/[^0-9]/gi, '');
25
+ const matches = v.match(/\d{4,16}/g);
26
+ const match = (matches && matches[0]) || '';
27
+ const parts = [];
28
+
29
+ for (let i = 0, len = match.length; i < len; i += 4) {
30
+ parts.push(match.substring(i, i + 4));
31
+ }
32
+
33
+ if (parts.length) {
34
+ return parts.join(' ');
35
+ } else {
36
+ return value;
37
+ }
38
+ }
39
+
40
+ function handleCardInput(e: Event) {
41
+ const input = e.target as HTMLInputElement;
42
+ cardNumber = formatCardNumber(input.value);
43
+ }
44
+ </script>
45
+
46
+ <div class={cn('space-y-8', className)}>
47
+ <div>
48
+ <h1 class="text-3xl font-bold">Payment</h1>
49
+ <p class="text-muted-foreground mt-2">Enter your payment details to complete your order</p>
50
+ </div>
51
+
52
+ <div class="grid gap-8 lg:grid-cols-3">
53
+ <!-- Payment Form -->
54
+ <div class="lg:col-span-2">
55
+ <div class="rounded-lg border bg-background p-8 space-y-6">
56
+ <!-- Card Preview -->
57
+ <div class="rounded-lg bg-gradient-to-br from-slate-900 to-slate-700 p-8 text-white aspect-video flex flex-col justify-between">
58
+ <div class="text-lg font-light tracking-widest">
59
+ {cardNumber || '•••• •••• •••• ••••'}
60
+ </div>
61
+ <div class="flex justify-between items-end">
62
+ <div>
63
+ <p class="text-xs opacity-75 mb-1">Card holder</p>
64
+ <p class="font-semibold">{cardholderName || 'YOUR NAME'}</p>
65
+ </div>
66
+ <div class="text-right">
67
+ <p class="text-xs opacity-75 mb-1">Expires</p>
68
+ <p class="font-semibold">{expiryMonth || 'MM'}/{expiryYear || 'YY'}</p>
69
+ </div>
70
+ </div>
71
+ </div>
72
+
73
+ <!-- Form Fields -->
74
+ <div class="space-y-4">
75
+ <div>
76
+ <label class="block text-sm font-medium mb-2">Card number</label>
77
+ <input
78
+ type="text"
79
+ value={cardNumber}
80
+ onchange={handleCardInput}
81
+ oninput={handleCardInput}
82
+ placeholder="1234 5678 9012 3456"
83
+ maxlength="19"
84
+ class="w-full rounded-md border bg-background px-4 py-3 text-sm outline-none focus:ring-2 focus:ring-ring font-mono"
85
+ />
86
+ </div>
87
+
88
+ <div>
89
+ <label class="block text-sm font-medium mb-2">Cardholder name</label>
90
+ <input
91
+ type="text"
92
+ bind:value={cardholderName}
93
+ placeholder="Full name"
94
+ class="w-full rounded-md border bg-background px-4 py-3 text-sm outline-none focus:ring-2 focus:ring-ring"
95
+ />
96
+ </div>
97
+
98
+ <div class="grid grid-cols-3 gap-4">
99
+ <div>
100
+ <label class="block text-sm font-medium mb-2">Month</label>
101
+ <input
102
+ type="text"
103
+ bind:value={expiryMonth}
104
+ placeholder="MM"
105
+ maxlength="2"
106
+ class="w-full rounded-md border bg-background px-4 py-3 text-sm outline-none focus:ring-2 focus:ring-ring"
107
+ />
108
+ </div>
109
+ <div>
110
+ <label class="block text-sm font-medium mb-2">Year</label>
111
+ <input
112
+ type="text"
113
+ bind:value={expiryYear}
114
+ placeholder="YY"
115
+ maxlength="2"
116
+ class="w-full rounded-md border bg-background px-4 py-3 text-sm outline-none focus:ring-2 focus:ring-ring"
117
+ />
118
+ </div>
119
+ <div>
120
+ <label class="block text-sm font-medium mb-2">CVV</label>
121
+ <input
122
+ type="text"
123
+ bind:value={cvv}
124
+ placeholder="•••"
125
+ maxlength="4"
126
+ class="w-full rounded-md border bg-background px-4 py-3 text-sm outline-none focus:ring-2 focus:ring-ring font-mono"
127
+ />
128
+ </div>
129
+ </div>
130
+
131
+ <div class="flex items-center gap-2 p-3 rounded-lg bg-green-50 border border-green-200">
132
+ <div class="text-green-600">
133
+ {@html LockIcon()}
134
+ </div>
135
+ <p class="text-sm text-green-700">Secured by SSL encryption</p>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ </div>
140
+
141
+ <!-- Order Summary -->
142
+ <div class="lg:col-span-1">
143
+ <div class="rounded-lg border bg-background p-6 sticky top-6 space-y-6">
144
+ <div>
145
+ <h2 class="text-lg font-semibold mb-4">Order Summary</h2>
146
+
147
+ <div class="space-y-3 mb-4 text-sm">
148
+ <div class="flex justify-between">
149
+ <span class="text-muted-foreground">Wireless Headphones x 1</span>
150
+ <span>$129.99</span>
151
+ </div>
152
+ <div class="flex justify-between">
153
+ <span class="text-muted-foreground">Phone Case x 1</span>
154
+ <span>$24.99</span>
155
+ </div>
156
+ </div>
157
+
158
+ <div class="border-t pt-4 space-y-2 text-sm">
159
+ <div class="flex justify-between">
160
+ <span class="text-muted-foreground">Subtotal</span>
161
+ <span>$154.98</span>
162
+ </div>
163
+ <div class="flex justify-between">
164
+ <span class="text-muted-foreground">Shipping</span>
165
+ <span>FREE</span>
166
+ </div>
167
+ <div class="flex justify-between">
168
+ <span class="text-muted-foreground">Tax</span>
169
+ <span>$15.01</span>
170
+ </div>
171
+ </div>
172
+
173
+ <div class="border-t mt-4 pt-4 flex justify-between font-semibold text-base">
174
+ <span>Total</span>
175
+ <span>${totalAmount.toFixed(2)}</span>
176
+ </div>
177
+ </div>
178
+
179
+ <Button class="w-full" size="lg">
180
+ Pay ${totalAmount.toFixed(2)}
181
+ </Button>
182
+
183
+ <p class="text-xs text-muted-foreground text-center">
184
+ Your payment information is safe and secure
185
+ </p>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ </div>
@@ -0,0 +1,109 @@
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
+ }
8
+
9
+ const { class: className }: Props = $props();
10
+
11
+ const orderNumber = 'ORD-2024-789456';
12
+ const estimatedDelivery = 'April 5, 2026';
13
+ const orderDate = 'March 31, 2026';
14
+
15
+ function CheckmarkIcon() {
16
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>`;
17
+ }
18
+ </script>
19
+
20
+ <div class={cn('flex flex-col items-center justify-center min-h-screen bg-background px-4', className)}>
21
+ <div class="w-full max-w-2xl text-center space-y-8">
22
+ <!-- Checkmark Circle -->
23
+ <div class="flex justify-center">
24
+ <div class="w-32 h-32 rounded-full bg-green-100 flex items-center justify-center text-green-600">
25
+ {@html CheckmarkIcon()}
26
+ </div>
27
+ </div>
28
+
29
+ <!-- Confirmation Message -->
30
+ <div class="space-y-2">
31
+ <h1 class="text-4xl font-bold">Order Confirmed</h1>
32
+ <p class="text-muted-foreground text-lg">Thank you for your purchase!</p>
33
+ </div>
34
+
35
+ <!-- Order Details -->
36
+ <div class="rounded-lg border bg-background p-8 space-y-6 text-left">
37
+ <div class="grid grid-cols-2 gap-4">
38
+ <div>
39
+ <p class="text-sm text-muted-foreground mb-1">Order number</p>
40
+ <p class="text-lg font-semibold font-mono">{orderNumber}</p>
41
+ </div>
42
+ <div>
43
+ <p class="text-sm text-muted-foreground mb-1">Order date</p>
44
+ <p class="text-lg font-semibold">{orderDate}</p>
45
+ </div>
46
+ </div>
47
+
48
+ <!-- Items Summary -->
49
+ <div class="border-t pt-6">
50
+ <h2 class="font-semibold mb-4">Order Items</h2>
51
+ <div class="space-y-3">
52
+ <div class="flex justify-between py-2">
53
+ <span>Wireless Headphones x 1</span>
54
+ <span class="font-semibold">$129.99</span>
55
+ </div>
56
+ <div class="flex justify-between py-2">
57
+ <span>Phone Case x 1</span>
58
+ <span class="font-semibold">$24.99</span>
59
+ </div>
60
+ </div>
61
+ </div>
62
+
63
+ <!-- Totals -->
64
+ <div class="border-t pt-6 space-y-2">
65
+ <div class="flex justify-between text-muted-foreground">
66
+ <span>Subtotal</span>
67
+ <span>$154.98</span>
68
+ </div>
69
+ <div class="flex justify-between text-muted-foreground">
70
+ <span>Shipping</span>
71
+ <span>FREE</span>
72
+ </div>
73
+ <div class="flex justify-between text-muted-foreground">
74
+ <span>Tax</span>
75
+ <span>$15.01</span>
76
+ </div>
77
+ <div class="flex justify-between font-semibold text-lg border-t pt-2 mt-2">
78
+ <span>Total paid</span>
79
+ <span>$154.99</span>
80
+ </div>
81
+ </div>
82
+
83
+ <!-- Delivery Info -->
84
+ <div class="bg-blue-50 border border-blue-200 rounded-lg p-4">
85
+ <p class="text-sm text-blue-900">
86
+ <span class="font-semibold">Estimated delivery:</span> {estimatedDelivery}
87
+ </p>
88
+ <p class="text-sm text-blue-800 mt-1">
89
+ A tracking link will be sent to your email shortly.
90
+ </p>
91
+ </div>
92
+ </div>
93
+
94
+ <!-- Action Buttons -->
95
+ <div class="flex flex-col sm:flex-row gap-4 justify-center">
96
+ <Button size="lg">
97
+ Track your order
98
+ </Button>
99
+ <Button variant="outline" size="lg">
100
+ Continue shopping
101
+ </Button>
102
+ </div>
103
+
104
+ <!-- Confirmation Email -->
105
+ <p class="text-sm text-muted-foreground">
106
+ A confirmation email has been sent to <span class="font-semibold">customer@example.com</span>
107
+ </p>
108
+ </div>
109
+ </div>
@@ -0,0 +1,4 @@
1
+ export { default as Checkout01 } from './Checkout01.svelte';
2
+ export { default as Checkout02 } from './Checkout02.svelte';
3
+ export { default as Checkout03 } from './Checkout03.svelte';
4
+ export { default as Checkout04 } from './Checkout04.svelte';
@@ -0,0 +1,116 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface PricingPlan {
6
+ name: string;
7
+ price: string;
8
+ period?: string;
9
+ description?: string;
10
+ features: string[];
11
+ highlighted?: boolean;
12
+ ctaLabel?: string;
13
+ }
14
+
15
+ interface Props {
16
+ class?: string;
17
+ title?: string;
18
+ plans?: PricingPlan[];
19
+ }
20
+
21
+ const defaultPlans: PricingPlan[] = [
22
+ {
23
+ name: 'Starter',
24
+ price: '$0',
25
+ period: '/month',
26
+ description: 'Perfect for individuals and small projects.',
27
+ features: ['5 projects', '10GB storage', 'Basic analytics', 'Email support'],
28
+ ctaLabel: 'Get started free'
29
+ },
30
+ {
31
+ name: 'Pro',
32
+ price: '$29',
33
+ period: '/month',
34
+ description: 'Best for growing teams and businesses.',
35
+ features: [
36
+ 'Unlimited projects',
37
+ '100GB storage',
38
+ 'Advanced analytics',
39
+ 'Priority support',
40
+ 'Custom domain',
41
+ 'API access'
42
+ ],
43
+ highlighted: true,
44
+ ctaLabel: 'Start free trial'
45
+ },
46
+ {
47
+ name: 'Enterprise',
48
+ price: '$99',
49
+ period: '/month',
50
+ description: 'For large-scale operations.',
51
+ features: [
52
+ 'Everything in Pro',
53
+ 'Unlimited storage',
54
+ 'Dedicated support',
55
+ 'SLA guarantee',
56
+ 'Custom integrations',
57
+ 'SSO/SAML'
58
+ ],
59
+ ctaLabel: 'Contact sales'
60
+ }
61
+ ];
62
+
63
+ const {
64
+ class: className,
65
+ title = 'Choose the right plan',
66
+ plans = defaultPlans
67
+ }: Props = $props();
68
+ </script>
69
+
70
+ <section class={cn('w-full bg-background py-16 px-4 sm:px-6', className)}>
71
+ <div class="mx-auto max-w-6xl">
72
+ <div class="text-center mb-12">
73
+ <p class="text-sm font-semibold text-muted-foreground uppercase tracking-wide">
74
+ Comparison Section
75
+ </p>
76
+ <h2 class="mt-2 text-3xl font-bold">{title}</h2>
77
+ <p class="mt-4 text-muted-foreground">Choose a plan that fits your needs.</p>
78
+ </div>
79
+
80
+ <div class="mt-10 grid grid-cols-1 gap-6 sm:grid-cols-3">
81
+ {#each plans as plan}
82
+ <div
83
+ class={cn(
84
+ 'rounded-xl border bg-background p-6',
85
+ plan.highlighted ? 'border-foreground ring-2 ring-foreground' : ''
86
+ )}
87
+ >
88
+ <h3 class="text-lg font-semibold">{plan.name}</h3>
89
+ <div class="mt-4">
90
+ <span class="text-4xl font-bold">{plan.price}</span>
91
+ <span class="text-muted-foreground">{plan.period}</span>
92
+ </div>
93
+ <p class="mt-4 text-sm text-muted-foreground">{plan.description}</p>
94
+
95
+ <ul class="mt-6 space-y-3">
96
+ {#each plan.features as feature}
97
+ <li class="flex items-center gap-2 text-sm">
98
+ <svg class="h-4 w-4 text-foreground" viewBox="0 0 24 24" fill="none" stroke="currentColor">
99
+ <polyline points="20 6 9 17 4 12" />
100
+ </svg>
101
+ {feature}
102
+ </li>
103
+ {/each}
104
+ </ul>
105
+
106
+ <Button
107
+ class="w-full mt-6"
108
+ variant={plan.highlighted ? 'default' : 'outline'}
109
+ >
110
+ {plan.ctaLabel}
111
+ </Button>
112
+ </div>
113
+ {/each}
114
+ </div>
115
+ </div>
116
+ </section>
@@ -0,0 +1,98 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface Feature {
5
+ name: string;
6
+ starter: string | boolean;
7
+ pro: string | boolean;
8
+ enterprise: string | boolean;
9
+ }
10
+
11
+ interface Props {
12
+ class?: string;
13
+ title?: string;
14
+ features?: Feature[];
15
+ }
16
+
17
+ const defaultFeatures: Feature[] = [
18
+ { name: 'Projects', starter: '5', pro: 'Unlimited', enterprise: 'Unlimited' },
19
+ { name: 'Storage', starter: '10GB', pro: '100GB', enterprise: 'Unlimited' },
20
+ { name: 'Support', starter: 'Email', pro: 'Priority', enterprise: 'Dedicated' },
21
+ { name: 'API', starter: false, pro: true, enterprise: true },
22
+ { name: 'Custom Domain', starter: false, pro: true, enterprise: true },
23
+ { name: 'SSO', starter: false, pro: false, enterprise: true }
24
+ ];
25
+
26
+ const {
27
+ class: className,
28
+ title = 'Feature Comparison',
29
+ features = defaultFeatures
30
+ }: Props = $props();
31
+
32
+ function renderValue(value: string | boolean) {
33
+ if (typeof value === 'boolean') {
34
+ if (value) {
35
+ return `<svg class="h-4 w-4 text-foreground" viewBox="0 0 24 24" fill="none" stroke="currentColor"><polyline points="20 6 9 17 4 12" /></svg>`;
36
+ } else {
37
+ return `<svg class="h-4 w-4 text-muted-foreground" viewBox="0 0 24 24" fill="none" stroke="currentColor"><line x1="18" y1="6" x2="6" y2="18" /><line x1="6" y1="6" x2="18" y2="18" /></svg>`;
38
+ }
39
+ }
40
+ return value;
41
+ }
42
+ </script>
43
+
44
+ <section class={cn('w-full bg-background py-16 px-4 sm:px-6', className)}>
45
+ <div class="mx-auto max-w-6xl">
46
+ <div class="text-center mb-12">
47
+ <h2 class="text-3xl font-bold">{title}</h2>
48
+ <p class="mt-4 text-muted-foreground">Compare all features across plans.</p>
49
+ </div>
50
+
51
+ <div class="overflow-x-auto">
52
+ <table class="w-full mt-8 text-sm">
53
+ <thead class="border-b">
54
+ <tr>
55
+ <th class="text-left py-4 px-4 font-semibold">Feature</th>
56
+ <th class="text-center py-4 px-4 font-semibold">Starter</th>
57
+ <th class="text-center py-4 px-4 font-semibold">Pro</th>
58
+ <th class="text-center py-4 px-4 font-semibold">Enterprise</th>
59
+ </tr>
60
+ </thead>
61
+ <tbody>
62
+ {#each features as feature}
63
+ <tr class="border-b hover:bg-muted/50">
64
+ <td class="py-4 px-4">{feature.name}</td>
65
+ <td class="py-4 px-4 text-center">
66
+ {#if typeof feature.starter === 'boolean'}
67
+ <div class="flex justify-center">
68
+ {@html renderValue(feature.starter)}
69
+ </div>
70
+ {:else}
71
+ {feature.starter}
72
+ {/if}
73
+ </td>
74
+ <td class="py-4 px-4 text-center">
75
+ {#if typeof feature.pro === 'boolean'}
76
+ <div class="flex justify-center">
77
+ {@html renderValue(feature.pro)}
78
+ </div>
79
+ {:else}
80
+ {feature.pro}
81
+ {/if}
82
+ </td>
83
+ <td class="py-4 px-4 text-center">
84
+ {#if typeof feature.enterprise === 'boolean'}
85
+ <div class="flex justify-center">
86
+ {@html renderValue(feature.enterprise)}
87
+ </div>
88
+ {:else}
89
+ {feature.enterprise}
90
+ {/if}
91
+ </td>
92
+ </tr>
93
+ {/each}
94
+ </tbody>
95
+ </table>
96
+ </div>
97
+ </div>
98
+ </section>
@@ -0,0 +1,93 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface Props {
5
+ class?: string;
6
+ beforeTitle?: string;
7
+ afterTitle?: string;
8
+ beforePoints?: string[];
9
+ afterPoints?: string[];
10
+ }
11
+
12
+ let showAfter = $state(false);
13
+
14
+ const {
15
+ class: className,
16
+ beforeTitle = 'Before',
17
+ afterTitle = 'After',
18
+ beforePoints = [
19
+ 'Manual processes taking hours',
20
+ 'Scattered data across systems',
21
+ 'Limited visibility into progress'
22
+ ],
23
+ afterPoints = [
24
+ 'Automated workflows save time',
25
+ 'Centralized data repository',
26
+ 'Real-time insights and reporting'
27
+ ]
28
+ }: Props = $props();
29
+ </script>
30
+
31
+ <section class={cn('w-full bg-background py-16 px-4 sm:px-6', className)}>
32
+ <div class="mx-auto max-w-2xl">
33
+ <div class="text-center mb-12">
34
+ <h2 class="text-3xl font-bold">See the difference</h2>
35
+
36
+ <div class="mt-8 flex items-center justify-center gap-4">
37
+ <p class={cn('text-sm font-semibold', !showAfter ? 'text-foreground' : 'text-muted-foreground')}>
38
+ Before
39
+ </p>
40
+ <button
41
+ onclick={() => (showAfter = !showAfter)}
42
+ class={cn(
43
+ 'relative inline-flex h-8 w-14 items-center rounded-full transition-colors',
44
+ showAfter ? 'bg-foreground' : 'bg-muted'
45
+ )}
46
+ >
47
+ <span
48
+ class={cn(
49
+ 'inline-block h-6 w-6 transform rounded-full bg-background transition-transform',
50
+ showAfter ? 'translate-x-7' : 'translate-x-1'
51
+ )}
52
+ />
53
+ </button>
54
+ <p class={cn('text-sm font-semibold', showAfter ? 'text-foreground' : 'text-muted-foreground')}>
55
+ After
56
+ </p>
57
+ </div>
58
+ </div>
59
+
60
+ <div class="space-y-6">
61
+ {#if !showAfter}
62
+ <div class="rounded-xl border border-red-200 bg-red-50/50 p-6">
63
+ <h3 class="font-semibold text-red-900">{beforeTitle}</h3>
64
+ <ul class="mt-4 space-y-2">
65
+ {#each beforePoints as point}
66
+ <li class="flex items-start gap-3">
67
+ <svg class="h-5 w-5 text-red-600 flex-shrink-0 mt-0.5" viewBox="0 0 24 24">
68
+ <line x1="18" y1="6" x2="6" y2="18" />
69
+ <line x1="6" y1="6" x2="18" y2="18" />
70
+ </svg>
71
+ <span class="text-red-900">{point}</span>
72
+ </li>
73
+ {/each}
74
+ </ul>
75
+ </div>
76
+ {:else}
77
+ <div class="rounded-xl border border-green-200 bg-green-50/50 p-6">
78
+ <h3 class="font-semibold text-green-900">{afterTitle}</h3>
79
+ <ul class="mt-4 space-y-2">
80
+ {#each afterPoints as point}
81
+ <li class="flex items-start gap-3">
82
+ <svg class="h-5 w-5 text-green-600 flex-shrink-0 mt-0.5" viewBox="0 0 24 24" fill="none" stroke="currentColor">
83
+ <polyline points="20 6 9 17 4 12" />
84
+ </svg>
85
+ <span class="text-green-900">{point}</span>
86
+ </li>
87
+ {/each}
88
+ </ul>
89
+ </div>
90
+ {/if}
91
+ </div>
92
+ </div>
93
+ </section>