@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,101 @@
1
+ <!--
2
+ EmptySection03.svelte
3
+ Empty state: "Add members" title + description + email input + Send invite button
4
+ + scrollable list of suggested people (avatar + name + role + + button).
5
+ Flat and card variants.
6
+ -->
7
+ <script lang="ts">
8
+ import { cn } from '$lib/utils/cn';
9
+ import { Button } from '$lib/components/ui';
10
+
11
+ interface Person { name: string; role?: string; avatar?: string; }
12
+
13
+ let {
14
+ class: className = '',
15
+ variant = 'flat' as 'flat' | 'card',
16
+ title = 'Add members',
17
+ description = 'Add the first person to start creating your team.',
18
+ emailPlaceholder = 'Email',
19
+ inviteLabel = 'Send invite',
20
+ people = [
21
+ { name: 'Kurt Bates', role: 'Innovation Specialist' },
22
+ { name: 'Dennis Callis', role: 'Dennis Callis' },
23
+ { name: 'Frances Swann', role: 'UI/UX Designer' }
24
+ ] as Person[],
25
+ oninvite = (_email: string) => {},
26
+ onadd = (_name: string) => {}
27
+ }: {
28
+ class?: string;
29
+ variant?: 'flat' | 'card';
30
+ title?: string;
31
+ description?: string;
32
+ emailPlaceholder?: string;
33
+ inviteLabel?: string;
34
+ people?: Person[];
35
+ oninvite?: (email: string) => void;
36
+ onadd?: (name: string) => void;
37
+ } = $props();
38
+
39
+ let email = $state('');
40
+
41
+ function initials(n: string) {
42
+ return n.split(' ').map(w => w[0]).join('').slice(0, 2).toUpperCase();
43
+ }
44
+ </script>
45
+
46
+ <div
47
+ class={cn(
48
+ variant === 'card' && 'rounded-lg border bg-background p-4 sm:p-6',
49
+ className
50
+ )}
51
+ >
52
+ <!-- Icon + title + description -->
53
+ <div class="flex flex-col items-center text-center">
54
+ <div class="mb-3 flex h-12 w-12 items-center justify-center rounded-full border bg-muted">
55
+ <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="text-muted-foreground"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></svg>
56
+ </div>
57
+ <p class="font-semibold">{title}</p>
58
+ {#if description}
59
+ <p class="mt-0.5 text-sm text-muted-foreground">{description}</p>
60
+ {/if}
61
+ </div>
62
+
63
+ <!-- Email input + invite -->
64
+ <div class="mt-4 flex gap-2">
65
+ <input
66
+ type="email"
67
+ placeholder={emailPlaceholder}
68
+ bind:value={email}
69
+ class="flex-1 rounded-md border bg-background px-3 py-1.5 text-sm outline-none focus:ring-2 focus:ring-ring"
70
+ />
71
+ <Button size="sm" onclick={() => { oninvite(email); email = ''; }}>{inviteLabel}</Button>
72
+ </div>
73
+
74
+ <!-- People list -->
75
+ {#if people.length}
76
+ <div class="mt-3 flex flex-col gap-1">
77
+ {#each people as person}
78
+ <div class="flex items-center gap-3 rounded-md border px-3 py-2">
79
+ <div class="h-8 w-8 shrink-0 overflow-hidden rounded-full">
80
+ {#if person.avatar}
81
+ <img src={person.avatar} alt={person.name} class="h-full w-full object-cover" />
82
+ {:else}
83
+ <div class="flex h-full w-full items-center justify-center bg-muted text-xs font-semibold">{initials(person.name)}</div>
84
+ {/if}
85
+ </div>
86
+ <div class="flex-1 min-w-0">
87
+ <p class="text-sm font-medium truncate">{person.name}</p>
88
+ {#if person.role}<p class="text-xs text-muted-foreground truncate">{person.role}</p>{/if}
89
+ </div>
90
+ <button
91
+ type="button"
92
+ onclick={() => onadd(person.name)}
93
+ class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full border text-muted-foreground hover:bg-muted"
94
+ >
95
+ <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
96
+ </button>
97
+ </div>
98
+ {/each}
99
+ </div>
100
+ {/if}
101
+ </div>
@@ -0,0 +1,76 @@
1
+ <!--
2
+ EmptySection04.svelte
3
+ Empty state: title + description + list of action items (avatar/icon + label + description + + button).
4
+ Flat and card variants.
5
+ -->
6
+ <script lang="ts">
7
+ import { cn } from '$lib/utils/cn';
8
+
9
+ interface ActionItem { label: string; description?: string; icon?: string; onclick?: () => void; }
10
+
11
+ let {
12
+ class: className = '',
13
+ variant = 'flat' as 'flat' | 'card',
14
+ title = 'Projects',
15
+ description = 'Create your first project by selecting a template or starting from scratch.',
16
+ actions = [
17
+ { label: 'Create a list', description: 'Organize tasks into simple lists.' },
18
+ { label: 'Create a gallery', description: 'Plan events with clear schedules.' },
19
+ { label: 'Create a calendar', description: 'Plan events with clear schedules.' }
20
+ ] as ActionItem[]
21
+ }: {
22
+ class?: string;
23
+ variant?: 'flat' | 'card';
24
+ title?: string;
25
+ description?: string;
26
+ actions?: ActionItem[];
27
+ } = $props();
28
+ </script>
29
+
30
+ <div
31
+ class={cn(
32
+ variant === 'card' && 'rounded-lg border bg-background p-4 sm:p-6',
33
+ className
34
+ )}
35
+ >
36
+ <h2 class="font-semibold">{title}</h2>
37
+ {#if description}
38
+ <p class="mt-0.5 text-sm text-muted-foreground">{description}</p>
39
+ {/if}
40
+
41
+ <div class="mt-4 flex flex-col gap-2">
42
+ {#each actions as action}
43
+ <button
44
+ type="button"
45
+ onclick={action.onclick}
46
+ class="flex items-center gap-3 rounded-md border bg-background px-3 py-2.5 text-left transition-colors hover:bg-muted/50"
47
+ >
48
+ <!-- Avatar/icon -->
49
+ <div class="h-8 w-8 shrink-0 overflow-hidden rounded-full bg-muted">
50
+ {#if action.icon}
51
+ <img src={action.icon} alt="" class="h-full w-full object-cover" />
52
+ {:else}
53
+ <div class="flex h-full w-full items-center justify-center">
54
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-muted-foreground"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
55
+ </div>
56
+ {/if}
57
+ </div>
58
+
59
+ <div class="flex-1 min-w-0">
60
+ <p class="text-sm font-medium">{action.label}</p>
61
+ {#if action.description}
62
+ <p class="text-xs text-muted-foreground">{action.description}</p>
63
+ {/if}
64
+ </div>
65
+
66
+ <button
67
+ type="button"
68
+ onclick={(e) => { e.stopPropagation(); action.onclick?.(); }}
69
+ class="flex h-6 w-6 shrink-0 items-center justify-center rounded-full border text-muted-foreground hover:bg-muted"
70
+ >
71
+ <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
72
+ </button>
73
+ </button>
74
+ {/each}
75
+ </div>
76
+ </div>
@@ -0,0 +1,4 @@
1
+ export { default as EmptySection01 } from './EmptySection01.svelte';
2
+ export { default as EmptySection02 } from './EmptySection02.svelte';
3
+ export { default as EmptySection03 } from './EmptySection03.svelte';
4
+ export { default as EmptySection04 } from './EmptySection04.svelte';
@@ -0,0 +1,114 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface FaqItem {
6
+ question: string;
7
+ answer: string;
8
+ category?: string;
9
+ }
10
+
11
+ interface Props {
12
+ class?: string;
13
+ title?: string;
14
+ description?: string;
15
+ items?: FaqItem[];
16
+ eyebrow?: string;
17
+ onContact?: () => void;
18
+ }
19
+
20
+ const defaultFaqs: FaqItem[] = [
21
+ {
22
+ question: 'What is shadcn/ui?',
23
+ answer:
24
+ 'Shadcn/ui is a popular, open-source UI component library for React that focuses on flexibility and customization. It provides a set of accessible, customizable components that you can use to build modern web applications.'
25
+ },
26
+ {
27
+ question: 'What is shadcn/ui kit for Figma?',
28
+ answer:
29
+ 'The shadcn/ui kit for Figma is our comprehensive design kit that brings the shadcn/ui components into the Figma environment.'
30
+ },
31
+ {
32
+ question: "I'm not familiar with shadcn/ui. Can I still use this kit?",
33
+ answer:
34
+ 'Absolutely! Our kit is intuitive and comes with documentation to help you get started, regardless of your familiarity with Figma or shadcn/ui.'
35
+ },
36
+ {
37
+ question: 'Can I create multi-brand design systems with this UI kit?',
38
+ answer:
39
+ 'Yes! Our kit is designed with multi-brand support in mind. You can easily create and manage multiple styles for different brands within a single design system using Figma variables.'
40
+ },
41
+ {
42
+ question: 'How will this kit save me time?',
43
+ answer:
44
+ 'By providing pre-built, customizable components and templates, you can skip the repetitive setup work and focus on the unique aspects of your design.'
45
+ },
46
+ {
47
+ question: 'How does this improve my collaboration with developers?',
48
+ answer:
49
+ 'Our components are built to closely match the shadcn/ui library, significantly reducing misinterpretations and implementation errors.'
50
+ }
51
+ ];
52
+
53
+ let { class: className, title = 'Frequently Asked Questions', description = 'Find answers to common questions.', items = defaultFaqs, eyebrow = 'FAQ Section', onContact }: Props = $props();
54
+
55
+ let openIndex: number | null = $state(0);
56
+
57
+ function toggle(index: number) {
58
+ openIndex = openIndex === index ? null : index;
59
+ }
60
+
61
+ function handleContact() {
62
+ onContact?.();
63
+ }
64
+ </script>
65
+
66
+ <section class={cn('w-full bg-background py-16 px-4 sm:px-6 lg:px-8', className)}>
67
+ <div class="mx-auto max-w-6xl text-center">
68
+ <p class="text-xs uppercase tracking-widest text-muted-foreground">{eyebrow}</p>
69
+ <h2 class="mt-2 text-3xl sm:text-4xl font-bold tracking-tight">{title}</h2>
70
+ <p class="mt-3 text-muted-foreground">
71
+ {description}
72
+ <a href="#" class="underline hover:text-foreground">Contact us.</a>
73
+ </p>
74
+ </div>
75
+
76
+ <div class="mt-8 mx-auto max-w-2xl">
77
+ <div class="flex flex-col divide-y border-t">
78
+ {#each items as item, index (item.question)}
79
+ <button
80
+ onclick={() => toggle(index)}
81
+ class="flex w-full items-center justify-between py-4 text-left text-sm font-medium hover:text-foreground transition-colors"
82
+ >
83
+ <span>{item.question}</span>
84
+ <svg
85
+ width="16"
86
+ height="16"
87
+ viewBox="0 0 24 24"
88
+ fill="none"
89
+ stroke="currentColor"
90
+ stroke-width="2"
91
+ class="flex-shrink-0 transition-transform duration-200 {openIndex === index ? 'rotate-180' : ''}"
92
+ >
93
+ <polyline points="6 9 12 15 18 9" />
94
+ </svg>
95
+ </button>
96
+ {#if openIndex === index}
97
+ <div class="pb-4 text-sm text-muted-foreground">
98
+ {item.answer}
99
+ </div>
100
+ {/if}
101
+ {/each}
102
+ </div>
103
+ </div>
104
+
105
+ <div class="mt-8 mx-auto max-w-2xl rounded-lg bg-muted p-6 text-center">
106
+ <h3 class="text-base font-semibold">Need more help?</h3>
107
+ <p class="mt-2 text-sm text-muted-foreground">
108
+ Can't find the answer you're looking for? Please contact our support team.
109
+ </p>
110
+ <div class="mt-4">
111
+ <Button onclick={handleContact}>Contact us</Button>
112
+ </div>
113
+ </div>
114
+ </section>
@@ -0,0 +1,137 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface FaqItem {
5
+ question: string;
6
+ answer: string;
7
+ category?: string;
8
+ }
9
+
10
+ interface Props {
11
+ class?: string;
12
+ title?: string;
13
+ description?: string;
14
+ items?: FaqItem[];
15
+ eyebrow?: string;
16
+ }
17
+
18
+ const defaultFaqs: FaqItem[] = [
19
+ {
20
+ question: 'What is shadcn/ui?',
21
+ answer:
22
+ 'Shadcn/ui is a popular, open-source UI component library for React that focuses on flexibility and customization. It provides a set of accessible, customizable components that you can use to build modern web applications.'
23
+ },
24
+ {
25
+ question: 'What is shadcn/ui kit for Figma?',
26
+ answer:
27
+ 'The shadcn/ui kit for Figma is our comprehensive design kit that brings the shadcn/ui components into the Figma environment.'
28
+ },
29
+ {
30
+ question: "I'm not familiar with shadcn/ui. Can I still use this kit?",
31
+ answer:
32
+ 'Absolutely! Our kit is intuitive and comes with documentation to help you get started, regardless of your familiarity with Figma or shadcn/ui.'
33
+ },
34
+ {
35
+ question: 'Can I create multi-brand design systems with this UI kit?',
36
+ answer:
37
+ 'Yes! Our kit is designed with multi-brand support in mind. You can easily create and manage multiple styles for different brands within a single design system using Figma variables.'
38
+ },
39
+ {
40
+ question: 'How will this kit save me time?',
41
+ answer:
42
+ 'By providing pre-built, customizable components and templates, you can skip the repetitive setup work and focus on the unique aspects of your design.'
43
+ },
44
+ {
45
+ question: 'How does this improve my collaboration with developers?',
46
+ answer:
47
+ 'Our components are built to closely match the shadcn/ui library, significantly reducing misinterpretations and implementation errors.'
48
+ }
49
+ ];
50
+
51
+ let { class: className, title = 'FAQ', description = 'Get answers to your questions.', items = defaultFaqs, eyebrow = 'FAQ Section' }: Props = $props();
52
+
53
+ let openIndexLeft: number | null = $state(0);
54
+ let openIndexRight: number | null = $state(0);
55
+
56
+ function toggleLeft(index: number) {
57
+ openIndexLeft = openIndexLeft === index ? null : index;
58
+ }
59
+
60
+ function toggleRight(index: number) {
61
+ openIndexRight = openIndexRight === index ? null : index;
62
+ }
63
+ </script>
64
+
65
+ <section class={cn('w-full bg-background py-16 px-4 sm:px-6 lg:px-8', className)}>
66
+ <div class="mx-auto max-w-6xl">
67
+ <div>
68
+ <p class="text-xs uppercase tracking-widest text-muted-foreground">{eyebrow}</p>
69
+ <h2 class="mt-2 text-3xl sm:text-4xl font-bold tracking-tight">{title}</h2>
70
+ <p class="mt-3 text-muted-foreground">{description}</p>
71
+ </div>
72
+
73
+ <div class="mt-8 grid grid-cols-1 gap-8 sm:grid-cols-2">
74
+ {#if items.length > 0}
75
+ <div>
76
+ <h3 class="text-base font-semibold">General</h3>
77
+ <div class="mt-4 flex flex-col divide-y border-t">
78
+ {#each items.slice(0, 4) as item, index (item.question)}
79
+ <button
80
+ onclick={() => toggleLeft(index)}
81
+ class="flex w-full items-center justify-between py-4 text-left text-sm font-medium hover:text-foreground transition-colors"
82
+ >
83
+ <span>{item.question}</span>
84
+ <svg
85
+ width="16"
86
+ height="16"
87
+ viewBox="0 0 24 24"
88
+ fill="none"
89
+ stroke="currentColor"
90
+ stroke-width="2"
91
+ class="flex-shrink-0 transition-transform duration-200 {openIndexLeft === index ? 'rotate-180' : ''}"
92
+ >
93
+ <polyline points="6 9 12 15 18 9" />
94
+ </svg>
95
+ </button>
96
+ {#if openIndexLeft === index}
97
+ <div class="pb-4 text-sm text-muted-foreground">
98
+ {item.answer}
99
+ </div>
100
+ {/if}
101
+ {/each}
102
+ </div>
103
+ </div>
104
+
105
+ <div>
106
+ <h3 class="text-base font-semibold">Billing</h3>
107
+ <div class="mt-4 flex flex-col divide-y border-t">
108
+ {#each items.slice(0, 4) as item, index (item.question + '-billing')}
109
+ <button
110
+ onclick={() => toggleRight(index)}
111
+ class="flex w-full items-center justify-between py-4 text-left text-sm font-medium hover:text-foreground transition-colors"
112
+ >
113
+ <span>{item.question}</span>
114
+ <svg
115
+ width="16"
116
+ height="16"
117
+ viewBox="0 0 24 24"
118
+ fill="none"
119
+ stroke="currentColor"
120
+ stroke-width="2"
121
+ class="flex-shrink-0 transition-transform duration-200 {openIndexRight === index ? 'rotate-180' : ''}"
122
+ >
123
+ <polyline points="6 9 12 15 18 9" />
124
+ </svg>
125
+ </button>
126
+ {#if openIndexRight === index}
127
+ <div class="pb-4 text-sm text-muted-foreground">
128
+ {item.answer}
129
+ </div>
130
+ {/if}
131
+ {/each}
132
+ </div>
133
+ </div>
134
+ {/if}
135
+ </div>
136
+ </div>
137
+ </section>
@@ -0,0 +1,107 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface FaqItem {
6
+ question: string;
7
+ answer: string;
8
+ category?: string;
9
+ }
10
+
11
+ interface Props {
12
+ class?: string;
13
+ title?: string;
14
+ description?: string;
15
+ items?: FaqItem[];
16
+ eyebrow?: string;
17
+ }
18
+
19
+ const defaultFaqs: FaqItem[] = [
20
+ {
21
+ question: 'What is shadcn/ui?',
22
+ answer:
23
+ 'Shadcn/ui is a popular, open-source UI component library for React that focuses on flexibility and customization. It provides a set of accessible, customizable components that you can use to build modern web applications.'
24
+ },
25
+ {
26
+ question: 'What is shadcn/ui kit for Figma?',
27
+ answer:
28
+ 'The shadcn/ui kit for Figma is our comprehensive design kit that brings the shadcn/ui components into the Figma environment.'
29
+ },
30
+ {
31
+ question: "I'm not familiar with shadcn/ui. Can I still use this kit?",
32
+ answer:
33
+ 'Absolutely! Our kit is intuitive and comes with documentation to help you get started, regardless of your familiarity with Figma or shadcn/ui.'
34
+ },
35
+ {
36
+ question: 'Can I create multi-brand design systems with this UI kit?',
37
+ answer:
38
+ 'Yes! Our kit is designed with multi-brand support in mind. You can easily create and manage multiple styles for different brands within a single design system using Figma variables.'
39
+ },
40
+ {
41
+ question: 'How will this kit save me time?',
42
+ answer:
43
+ 'By providing pre-built, customizable components and templates, you can skip the repetitive setup work and focus on the unique aspects of your design.'
44
+ },
45
+ {
46
+ question: 'How does this improve my collaboration with developers?',
47
+ answer:
48
+ 'Our components are built to closely match the shadcn/ui library, significantly reducing misinterpretations and implementation errors.'
49
+ }
50
+ ];
51
+
52
+ let { class: className, title = 'Frequently Asked Questions', description = 'Find answers to common questions.', items = defaultFaqs.slice(0, 6), eyebrow = 'FAQ Section' }: Props = $props();
53
+ </script>
54
+
55
+ <section class={cn('w-full bg-background py-16 px-4 sm:px-6 lg:px-8', className)}>
56
+ <div class="mx-auto max-w-6xl">
57
+ <div class="flex flex-col sm:flex-row sm:items-start sm:justify-between gap-6 sm:gap-8">
58
+ <div class="flex-1">
59
+ <p class="text-xs uppercase tracking-widest text-muted-foreground">{eyebrow}</p>
60
+ <h2 class="mt-2 text-3xl sm:text-4xl font-bold tracking-tight">{title}</h2>
61
+ <p class="mt-3 text-muted-foreground">{description}</p>
62
+ </div>
63
+
64
+ <div class="hidden sm:flex gap-2 flex-shrink-0">
65
+ <Button variant="ghost" size="sm" class="gap-1">
66
+ Contact us
67
+ <svg
68
+ width="12"
69
+ height="12"
70
+ viewBox="0 0 24 24"
71
+ fill="none"
72
+ stroke="currentColor"
73
+ stroke-width="2"
74
+ >
75
+ <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" />
76
+ <polyline points="15 3 21 3 21 9" />
77
+ <line x1="10" y1="14" x2="21" y2="3" />
78
+ </svg>
79
+ </Button>
80
+ <Button variant="ghost" size="sm" class="gap-1">
81
+ View documentation
82
+ <svg
83
+ width="12"
84
+ height="12"
85
+ viewBox="0 0 24 24"
86
+ fill="none"
87
+ stroke="currentColor"
88
+ stroke-width="2"
89
+ >
90
+ <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" />
91
+ <polyline points="15 3 21 3 21 9" />
92
+ <line x1="10" y1="14" x2="21" y2="3" />
93
+ </svg>
94
+ </Button>
95
+ </div>
96
+ </div>
97
+
98
+ <div class="mt-10 grid grid-cols-1 gap-x-12 gap-y-8 sm:grid-cols-2">
99
+ {#each items as item (item.question)}
100
+ <div>
101
+ <h3 class="font-semibold text-sm">{item.question}</h3>
102
+ <p class="mt-2 text-sm text-muted-foreground">{item.answer}</p>
103
+ </div>
104
+ {/each}
105
+ </div>
106
+ </div>
107
+ </section>
@@ -0,0 +1,74 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface FaqItem {
5
+ question: string;
6
+ answer: string;
7
+ category?: string;
8
+ }
9
+
10
+ interface Props {
11
+ class?: string;
12
+ title?: string;
13
+ description?: string;
14
+ items?: FaqItem[];
15
+ eyebrow?: string;
16
+ }
17
+
18
+ const defaultFaqs: FaqItem[] = [
19
+ {
20
+ question: 'What is shadcn/ui?',
21
+ answer:
22
+ 'Shadcn/ui is a popular, open-source UI component library for React that focuses on flexibility and customization. It provides a set of accessible, customizable components that you can use to build modern web applications.'
23
+ },
24
+ {
25
+ question: 'What is shadcn/ui kit for Figma?',
26
+ answer:
27
+ 'The shadcn/ui kit for Figma is our comprehensive design kit that brings the shadcn/ui components into the Figma environment.'
28
+ },
29
+ {
30
+ question: "I'm not familiar with shadcn/ui. Can I still use this kit?",
31
+ answer:
32
+ 'Absolutely! Our kit is intuitive and comes with documentation to help you get started, regardless of your familiarity with Figma or shadcn/ui.'
33
+ },
34
+ {
35
+ question: 'Can I create multi-brand design systems with this UI kit?',
36
+ answer:
37
+ 'Yes! Our kit is designed with multi-brand support in mind. You can easily create and manage multiple styles for different brands within a single design system using Figma variables.'
38
+ },
39
+ {
40
+ question: 'How will this kit save me time?',
41
+ answer:
42
+ 'By providing pre-built, customizable components and templates, you can skip the repetitive setup work and focus on the unique aspects of your design.'
43
+ },
44
+ {
45
+ question: 'How does this improve my collaboration with developers?',
46
+ answer:
47
+ 'Our components are built to closely match the shadcn/ui library, significantly reducing misinterpretations and implementation errors.'
48
+ }
49
+ ];
50
+
51
+ let { class: className, title = 'Frequently Asked Questions', description = 'Find answers to your questions.', items = defaultFaqs, eyebrow = 'FAQ Section' }: Props = $props();
52
+ </script>
53
+
54
+ <section class={cn('w-full bg-background py-16 px-4 sm:px-6 lg:px-8', className)}>
55
+ <div class="mx-auto max-w-6xl text-center">
56
+ <p class="text-xs uppercase tracking-widest text-muted-foreground">{eyebrow}</p>
57
+ <h2 class="mt-2 text-3xl sm:text-4xl font-bold tracking-tight">{title}</h2>
58
+ <p class="mt-3 text-muted-foreground">
59
+ {description}
60
+ <a href="#" class="underline hover:text-foreground">Contact us.</a>
61
+ </p>
62
+ </div>
63
+
64
+ <div class="mt-10 mx-auto max-w-4xl">
65
+ <div class="flex flex-col divide-y border-t">
66
+ {#each items as item (item.question)}
67
+ <div class="grid grid-cols-1 gap-4 py-6 sm:grid-cols-2">
68
+ <h3 class="font-semibold text-sm">{item.question}</h3>
69
+ <p class="text-sm text-muted-foreground">{item.answer}</p>
70
+ </div>
71
+ {/each}
72
+ </div>
73
+ </div>
74
+ </section>