@xbg.solutions/create-frontend 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/bin/xbg-frontend.cjs +32 -0
  2. package/package.json +17 -3
  3. package/src/commands/add.cjs +470 -0
  4. package/src/commands/generate.cjs +24 -0
  5. package/src/manifest.json +1578 -0
  6. package/src/registry/advanced/ChartWrapper.svelte +587 -0
  7. package/src/registry/advanced/DataTable.svelte +645 -0
  8. package/src/registry/advanced/FormWizard.svelte +546 -0
  9. package/src/registry/advanced/ImageUpload.svelte +663 -0
  10. package/src/registry/advanced/index.ts +33 -0
  11. package/src/registry/atoms/calendar/Calendar.svelte +181 -0
  12. package/src/registry/atoms/calendar/index.ts +1 -0
  13. package/src/registry/atoms/dialog/Dialog.svelte +179 -0
  14. package/src/registry/atoms/dialog/DialogDescription.svelte +16 -0
  15. package/src/registry/atoms/dialog/DialogFooter.svelte +16 -0
  16. package/src/registry/atoms/dialog/DialogHeader.svelte +16 -0
  17. package/src/registry/atoms/dialog/DialogTitle.svelte +16 -0
  18. package/src/registry/atoms/dialog/index.ts +10 -0
  19. package/src/registry/atoms/icon/BrandIcon.svelte +47 -0
  20. package/src/registry/atoms/icon/DynamicIcon.svelte +49 -0
  21. package/src/registry/atoms/icon/index.ts +2 -0
  22. package/src/registry/atoms/legend/Legend.svelte +32 -0
  23. package/src/registry/atoms/legend/index.ts +1 -0
  24. package/src/registry/atoms/menu/MenuItem.svelte +85 -0
  25. package/src/registry/atoms/menu/index.ts +1 -0
  26. package/src/registry/atoms/message/Message.svelte +62 -0
  27. package/src/registry/atoms/message/index.ts +1 -0
  28. package/src/registry/atoms/nav/NavItem.svelte +67 -0
  29. package/src/registry/atoms/nav/index.ts +1 -0
  30. package/src/registry/atoms/notification-badge/NotificationBadge.svelte +30 -0
  31. package/src/registry/atoms/notification-badge/index.ts +1 -0
  32. package/src/registry/atoms/otp-input/OtpInput.svelte +108 -0
  33. package/src/registry/atoms/otp-input/index.ts +1 -0
  34. package/src/registry/atoms/select/Select.svelte +216 -0
  35. package/src/registry/atoms/select/index.ts +6 -0
  36. package/src/registry/atoms/settings-card/SettingsCard.svelte +48 -0
  37. package/src/registry/atoms/settings-card/index.ts +1 -0
  38. package/src/registry/atoms/sidebar-item/SidebarItem.svelte +90 -0
  39. package/src/registry/atoms/sidebar-item/index.ts +1 -0
  40. package/src/registry/atoms/statistic-card/StatisticCard.svelte +53 -0
  41. package/src/registry/atoms/statistic-card/index.ts +1 -0
  42. package/src/registry/atoms/text-editor/TextEditor.svelte +77 -0
  43. package/src/registry/atoms/text-editor/index.ts +1 -0
  44. package/src/registry/atoms/uploader/Uploader.svelte +102 -0
  45. package/src/registry/atoms/uploader/index.ts +1 -0
  46. package/src/registry/atoms/user-item/UserItem.svelte +39 -0
  47. package/src/registry/atoms/user-item/index.ts +1 -0
  48. package/src/registry/blocks/account-section/AccountSection01.svelte +112 -0
  49. package/src/registry/blocks/account-section/AccountSection02.svelte +190 -0
  50. package/src/registry/blocks/account-section/AccountSection03.svelte +161 -0
  51. package/src/registry/blocks/account-section/AccountSection04.svelte +164 -0
  52. package/src/registry/blocks/account-section/AccountSection05.svelte +76 -0
  53. package/src/registry/blocks/account-section/index.ts +5 -0
  54. package/src/registry/blocks/app-shell/AppShell01.svelte +74 -0
  55. package/src/registry/blocks/app-shell/AppShell02.svelte +87 -0
  56. package/src/registry/blocks/app-shell/AppShell03.svelte +79 -0
  57. package/src/registry/blocks/app-shell/AppShell04.svelte +177 -0
  58. package/src/registry/blocks/app-shell/index.ts +4 -0
  59. package/src/registry/blocks/auth/AuthSplitScreen.svelte +132 -0
  60. package/src/registry/blocks/auth/LoginBlock01.svelte +94 -0
  61. package/src/registry/blocks/auth/LoginBlock02.svelte +103 -0
  62. package/src/registry/blocks/auth/LoginBlock03.svelte +53 -0
  63. package/src/registry/blocks/auth/LoginBlock04.svelte +99 -0
  64. package/src/registry/blocks/auth/LoginBlock05.svelte +101 -0
  65. package/src/registry/blocks/auth/OtpBlock01.svelte +115 -0
  66. package/src/registry/blocks/auth/OtpBlock02.svelte +113 -0
  67. package/src/registry/blocks/auth/OtpBlock03.svelte +143 -0
  68. package/src/registry/blocks/auth/OtpBlock04.svelte +122 -0
  69. package/src/registry/blocks/auth/OtpBlock05.svelte +81 -0
  70. package/src/registry/blocks/auth/SignupBlock01.svelte +103 -0
  71. package/src/registry/blocks/auth/SignupBlock02.svelte +94 -0
  72. package/src/registry/blocks/auth/SignupBlock03.svelte +120 -0
  73. package/src/registry/blocks/auth/SignupBlock04.svelte +112 -0
  74. package/src/registry/blocks/auth/SignupBlock05.svelte +77 -0
  75. package/src/registry/blocks/auth/index.ts +31 -0
  76. package/src/registry/blocks/banner/Banner01.svelte +67 -0
  77. package/src/registry/blocks/banner/Banner02.svelte +61 -0
  78. package/src/registry/blocks/banner/Banner03.svelte +54 -0
  79. package/src/registry/blocks/banner/Banner04.svelte +49 -0
  80. package/src/registry/blocks/banner/Banner05.svelte +47 -0
  81. package/src/registry/blocks/banner/index.ts +5 -0
  82. package/src/registry/blocks/bento-grid/BentoGrid01.svelte +92 -0
  83. package/src/registry/blocks/bento-grid/BentoGrid02.svelte +79 -0
  84. package/src/registry/blocks/bento-grid/BentoGrid03.svelte +79 -0
  85. package/src/registry/blocks/bento-grid/BentoGrid04.svelte +58 -0
  86. package/src/registry/blocks/bento-grid/BentoGrid05.svelte +92 -0
  87. package/src/registry/blocks/bento-grid/BentoGrid06.svelte +42 -0
  88. package/src/registry/blocks/bento-grid/index.ts +14 -0
  89. package/src/registry/blocks/blog-section/BlogSection01.svelte +100 -0
  90. package/src/registry/blocks/blog-section/BlogSection02.svelte +93 -0
  91. package/src/registry/blocks/blog-section/BlogSection03.svelte +92 -0
  92. package/src/registry/blocks/blog-section/BlogSection04.svelte +97 -0
  93. package/src/registry/blocks/blog-section/BlogSection05.svelte +120 -0
  94. package/src/registry/blocks/blog-section/index.ts +15 -0
  95. package/src/registry/blocks/buttons/ButtonBookmark.svelte +37 -0
  96. package/src/registry/blocks/buttons/ButtonLike.svelte +37 -0
  97. package/src/registry/blocks/buttons/ButtonMenu.svelte +37 -0
  98. package/src/registry/blocks/buttons/ButtonSplitDropdown.svelte +46 -0
  99. package/src/registry/blocks/buttons/ButtonStepper.svelte +55 -0
  100. package/src/registry/blocks/buttons/ButtonSteps.svelte +73 -0
  101. package/src/registry/blocks/buttons/ButtonToggleGroup.svelte +35 -0
  102. package/src/registry/blocks/buttons/ButtonsGroup.svelte +63 -0
  103. package/src/registry/blocks/buttons/SocialButtonsHorizontal.svelte +41 -0
  104. package/src/registry/blocks/buttons/SocialButtonsVertical.svelte +53 -0
  105. package/src/registry/blocks/buttons/index.ts +10 -0
  106. package/src/registry/blocks/calendar/CalendarBlock01.svelte +169 -0
  107. package/src/registry/blocks/calendar/CalendarBlock02.svelte +133 -0
  108. package/src/registry/blocks/calendar/CalendarBlock03.svelte +194 -0
  109. package/src/registry/blocks/calendar/CalendarBlock04.svelte +96 -0
  110. package/src/registry/blocks/calendar/CalendarBlock05.svelte +97 -0
  111. package/src/registry/blocks/calendar/CalendarBlock06.svelte +98 -0
  112. package/src/registry/blocks/calendar/CalendarBlock07.svelte +109 -0
  113. package/src/registry/blocks/calendar/CalendarBlock08.svelte +71 -0
  114. package/src/registry/blocks/calendar/CalendarBlock09.svelte +99 -0
  115. package/src/registry/blocks/calendar/CalendarBlock10.svelte +88 -0
  116. package/src/registry/blocks/calendar/CalendarBlock11.svelte +99 -0
  117. package/src/registry/blocks/calendar/CalendarBlock12.svelte +121 -0
  118. package/src/registry/blocks/calendar/CalendarBlock13.svelte +92 -0
  119. package/src/registry/blocks/calendar/CalendarBlock14.svelte +71 -0
  120. package/src/registry/blocks/calendar/CalendarBlock15.svelte +96 -0
  121. package/src/registry/blocks/calendar/CalendarBlock16.svelte +98 -0
  122. package/src/registry/blocks/calendar/CalendarBlock17.svelte +88 -0
  123. package/src/registry/blocks/calendar/CalendarBlock18.svelte +84 -0
  124. package/src/registry/blocks/calendar/CalendarBlock19.svelte +105 -0
  125. package/src/registry/blocks/calendar/CalendarBlock20.svelte +78 -0
  126. package/src/registry/blocks/calendar/CalendarBlock21.svelte +115 -0
  127. package/src/registry/blocks/calendar/CalendarBlock22.svelte +136 -0
  128. package/src/registry/blocks/calendar/CalendarBlock23.svelte +112 -0
  129. package/src/registry/blocks/calendar/CalendarBlock24.svelte +116 -0
  130. package/src/registry/blocks/calendar/CalendarBlock25.svelte +144 -0
  131. package/src/registry/blocks/calendar/CalendarBlock26.svelte +163 -0
  132. package/src/registry/blocks/calendar/CalendarBlock27.svelte +112 -0
  133. package/src/registry/blocks/calendar/CalendarBlock28.svelte +109 -0
  134. package/src/registry/blocks/calendar/CalendarBlock29.svelte +126 -0
  135. package/src/registry/blocks/calendar/CalendarBlock30.svelte +122 -0
  136. package/src/registry/blocks/calendar/CalendarBlock31.svelte +161 -0
  137. package/src/registry/blocks/calendar/CalendarBlock32.svelte +154 -0
  138. package/src/registry/blocks/calendar/index.ts +32 -0
  139. package/src/registry/blocks/card/Card01.svelte +69 -0
  140. package/src/registry/blocks/card/Card02.svelte +50 -0
  141. package/src/registry/blocks/card/Card03.svelte +60 -0
  142. package/src/registry/blocks/card/Card04.svelte +89 -0
  143. package/src/registry/blocks/card/Card05.svelte +51 -0
  144. package/src/registry/blocks/card/Card06.svelte +77 -0
  145. package/src/registry/blocks/card/Card07.svelte +35 -0
  146. package/src/registry/blocks/card/Card08.svelte +36 -0
  147. package/src/registry/blocks/card/index.ts +8 -0
  148. package/src/registry/blocks/cart/Cart01.svelte +183 -0
  149. package/src/registry/blocks/cart/Cart02.svelte +103 -0
  150. package/src/registry/blocks/cart/Cart03.svelte +38 -0
  151. package/src/registry/blocks/cart/Cart04.svelte +174 -0
  152. package/src/registry/blocks/cart/index.ts +4 -0
  153. package/src/registry/blocks/checkout/Checkout01.svelte +237 -0
  154. package/src/registry/blocks/checkout/Checkout02.svelte +205 -0
  155. package/src/registry/blocks/checkout/Checkout03.svelte +189 -0
  156. package/src/registry/blocks/checkout/Checkout04.svelte +109 -0
  157. package/src/registry/blocks/checkout/index.ts +4 -0
  158. package/src/registry/blocks/comparison-section/ComparisonSection01.svelte +116 -0
  159. package/src/registry/blocks/comparison-section/ComparisonSection02.svelte +98 -0
  160. package/src/registry/blocks/comparison-section/ComparisonSection03.svelte +93 -0
  161. package/src/registry/blocks/comparison-section/ComparisonSection04.svelte +98 -0
  162. package/src/registry/blocks/comparison-section/ComparisonSection05.svelte +119 -0
  163. package/src/registry/blocks/comparison-section/ComparisonSection06.svelte +154 -0
  164. package/src/registry/blocks/comparison-section/index.ts +6 -0
  165. package/src/registry/blocks/contact-section/ContactSection01.svelte +64 -0
  166. package/src/registry/blocks/contact-section/ContactSection02.svelte +108 -0
  167. package/src/registry/blocks/contact-section/ContactSection03.svelte +64 -0
  168. package/src/registry/blocks/contact-section/ContactSection04.svelte +30 -0
  169. package/src/registry/blocks/contact-section/ContactSection05.svelte +71 -0
  170. package/src/registry/blocks/contact-section/ContactSection06.svelte +88 -0
  171. package/src/registry/blocks/contact-section/index.ts +6 -0
  172. package/src/registry/blocks/cta/CTA01.svelte +44 -0
  173. package/src/registry/blocks/cta/CTA02.svelte +48 -0
  174. package/src/registry/blocks/cta/CTA03.svelte +53 -0
  175. package/src/registry/blocks/cta/CTA04.svelte +60 -0
  176. package/src/registry/blocks/cta/CTA05.svelte +53 -0
  177. package/src/registry/blocks/cta/CTA06.svelte +44 -0
  178. package/src/registry/blocks/cta/CTA07.svelte +39 -0
  179. package/src/registry/blocks/cta/index.ts +7 -0
  180. package/src/registry/blocks/dashboard/ChartsBlock01.svelte +275 -0
  181. package/src/registry/blocks/dashboard/DashboardBlock01.svelte +207 -0
  182. package/src/registry/blocks/dashboard/DashboardBlock02.svelte +259 -0
  183. package/src/registry/blocks/dashboard/DashboardBlock03.svelte +315 -0
  184. package/src/registry/blocks/dashboard/DashboardBlock04.svelte +220 -0
  185. package/src/registry/blocks/dashboard/DashboardBlock05.svelte +158 -0
  186. package/src/registry/blocks/dashboard/DashboardBlock06.svelte +173 -0
  187. package/src/registry/blocks/dashboard/DashboardBlock07.svelte +103 -0
  188. package/src/registry/blocks/dashboard/index.ts +16 -0
  189. package/src/registry/blocks/description-list/DescriptionList01.svelte +75 -0
  190. package/src/registry/blocks/description-list/DescriptionList02.svelte +50 -0
  191. package/src/registry/blocks/description-list/DescriptionList03.svelte +74 -0
  192. package/src/registry/blocks/description-list/DescriptionList04.svelte +88 -0
  193. package/src/registry/blocks/description-list/index.ts +4 -0
  194. package/src/registry/blocks/empty-lp/EmptyLP01.svelte +46 -0
  195. package/src/registry/blocks/empty-lp/EmptyLP02.svelte +49 -0
  196. package/src/registry/blocks/empty-lp/EmptyLP03.svelte +61 -0
  197. package/src/registry/blocks/empty-lp/EmptyLP04.svelte +37 -0
  198. package/src/registry/blocks/empty-lp/index.ts +4 -0
  199. package/src/registry/blocks/empty-section/EmptySection01.svelte +47 -0
  200. package/src/registry/blocks/empty-section/EmptySection02.svelte +93 -0
  201. package/src/registry/blocks/empty-section/EmptySection03.svelte +101 -0
  202. package/src/registry/blocks/empty-section/EmptySection04.svelte +76 -0
  203. package/src/registry/blocks/empty-section/index.ts +4 -0
  204. package/src/registry/blocks/faq-section/FaqSection01.svelte +114 -0
  205. package/src/registry/blocks/faq-section/FaqSection02.svelte +137 -0
  206. package/src/registry/blocks/faq-section/FaqSection03.svelte +107 -0
  207. package/src/registry/blocks/faq-section/FaqSection04.svelte +74 -0
  208. package/src/registry/blocks/faq-section/FaqSection05.svelte +69 -0
  209. package/src/registry/blocks/faq-section/index.ts +11 -0
  210. package/src/registry/blocks/feature-section/FeatureSection01.svelte +94 -0
  211. package/src/registry/blocks/feature-section/FeatureSection02.svelte +61 -0
  212. package/src/registry/blocks/feature-section/FeatureSection03.svelte +85 -0
  213. package/src/registry/blocks/feature-section/FeatureSection04.svelte +67 -0
  214. package/src/registry/blocks/feature-section/FeatureSection05.svelte +61 -0
  215. package/src/registry/blocks/feature-section/FeatureSection06.svelte +58 -0
  216. package/src/registry/blocks/feature-section/FeatureSection07.svelte +79 -0
  217. package/src/registry/blocks/feature-section/FeatureSection08.svelte +92 -0
  218. package/src/registry/blocks/feature-section/FeatureSection09.svelte +58 -0
  219. package/src/registry/blocks/feature-section/FeatureSection10.svelte +87 -0
  220. package/src/registry/blocks/feature-section/FeatureSection11.svelte +118 -0
  221. package/src/registry/blocks/feature-section/FeatureSection12.svelte +76 -0
  222. package/src/registry/blocks/feature-section/FeatureSection13.svelte +88 -0
  223. package/src/registry/blocks/feature-section/FeatureSection14.svelte +119 -0
  224. package/src/registry/blocks/feature-section/FeatureSection15.svelte +122 -0
  225. package/src/registry/blocks/feature-section/FeatureSection16.svelte +113 -0
  226. package/src/registry/blocks/feature-section/FeatureSection17.svelte +93 -0
  227. package/src/registry/blocks/feature-section/FeatureSection18.svelte +97 -0
  228. package/src/registry/blocks/feature-section/FeatureSection19.svelte +74 -0
  229. package/src/registry/blocks/feature-section/FeatureSection20.svelte +69 -0
  230. package/src/registry/blocks/feature-section/index.ts +20 -0
  231. package/src/registry/blocks/footer/Footer01.svelte +62 -0
  232. package/src/registry/blocks/footer/Footer02.svelte +67 -0
  233. package/src/registry/blocks/footer/Footer03.svelte +87 -0
  234. package/src/registry/blocks/footer/Footer04.svelte +67 -0
  235. package/src/registry/blocks/footer/Footer05.svelte +20 -0
  236. package/src/registry/blocks/footer/Footer06.svelte +107 -0
  237. package/src/registry/blocks/footer/Footer07.svelte +88 -0
  238. package/src/registry/blocks/footer/Footer08.svelte +84 -0
  239. package/src/registry/blocks/footer/Footer09.svelte +65 -0
  240. package/src/registry/blocks/footer/index.ts +19 -0
  241. package/src/registry/blocks/forms/SettingsBlock.svelte +329 -0
  242. package/src/registry/blocks/forms/index.ts +1 -0
  243. package/src/registry/blocks/gallery-section/GallerySection01.svelte +43 -0
  244. package/src/registry/blocks/gallery-section/GallerySection02.svelte +45 -0
  245. package/src/registry/blocks/gallery-section/GallerySection03.svelte +43 -0
  246. package/src/registry/blocks/gallery-section/GallerySection04.svelte +49 -0
  247. package/src/registry/blocks/gallery-section/GallerySection05.svelte +45 -0
  248. package/src/registry/blocks/gallery-section/GallerySection06.svelte +49 -0
  249. package/src/registry/blocks/gallery-section/GallerySection07.svelte +48 -0
  250. package/src/registry/blocks/gallery-section/GallerySection08.svelte +43 -0
  251. package/src/registry/blocks/gallery-section/GallerySection09.svelte +55 -0
  252. package/src/registry/blocks/gallery-section/GallerySection10.svelte +43 -0
  253. package/src/registry/blocks/gallery-section/GallerySection11.svelte +75 -0
  254. package/src/registry/blocks/gallery-section/GallerySection12.svelte +76 -0
  255. package/src/registry/blocks/gallery-section/index.ts +12 -0
  256. package/src/registry/blocks/header-section/HeaderSection01.svelte +53 -0
  257. package/src/registry/blocks/header-section/HeaderSection02.svelte +53 -0
  258. package/src/registry/blocks/header-section/HeaderSection03.svelte +61 -0
  259. package/src/registry/blocks/header-section/HeaderSection04.svelte +63 -0
  260. package/src/registry/blocks/header-section/HeaderSection05.svelte +53 -0
  261. package/src/registry/blocks/header-section/HeaderSection06.svelte +70 -0
  262. package/src/registry/blocks/header-section/HeaderSection07.svelte +97 -0
  263. package/src/registry/blocks/header-section/HeaderSection08.svelte +61 -0
  264. package/src/registry/blocks/header-section/HeaderSection09.svelte +53 -0
  265. package/src/registry/blocks/header-section/HeaderSection10.svelte +63 -0
  266. package/src/registry/blocks/header-section/HeaderSection11.svelte +68 -0
  267. package/src/registry/blocks/header-section/HeaderSection12.svelte +60 -0
  268. package/src/registry/blocks/header-section/HeaderSection13.svelte +92 -0
  269. package/src/registry/blocks/header-section/HeaderSection14.svelte +77 -0
  270. package/src/registry/blocks/header-section/HeaderSection15.svelte +49 -0
  271. package/src/registry/blocks/header-section/HeaderSection16.svelte +74 -0
  272. package/src/registry/blocks/header-section/HeaderSection17.svelte +58 -0
  273. package/src/registry/blocks/header-section/HeaderSection18.svelte +66 -0
  274. package/src/registry/blocks/header-section/HeaderSection19.svelte +47 -0
  275. package/src/registry/blocks/header-section/HeaderSection20.svelte +53 -0
  276. package/src/registry/blocks/header-section/index.ts +20 -0
  277. package/src/registry/blocks/hero-section/HeroSection01.svelte +69 -0
  278. package/src/registry/blocks/hero-section/HeroSection02.svelte +47 -0
  279. package/src/registry/blocks/hero-section/HeroSection03.svelte +56 -0
  280. package/src/registry/blocks/hero-section/HeroSection04.svelte +69 -0
  281. package/src/registry/blocks/hero-section/HeroSection05.svelte +73 -0
  282. package/src/registry/blocks/hero-section/HeroSection06.svelte +78 -0
  283. package/src/registry/blocks/hero-section/HeroSection07.svelte +48 -0
  284. package/src/registry/blocks/hero-section/HeroSection08.svelte +73 -0
  285. package/src/registry/blocks/hero-section/HeroSection09.svelte +51 -0
  286. package/src/registry/blocks/hero-section/HeroSection10.svelte +47 -0
  287. package/src/registry/blocks/hero-section/HeroSection11.svelte +60 -0
  288. package/src/registry/blocks/hero-section/HeroSection12.svelte +74 -0
  289. package/src/registry/blocks/hero-section/HeroSection13.svelte +86 -0
  290. package/src/registry/blocks/hero-section/HeroSection14.svelte +116 -0
  291. package/src/registry/blocks/hero-section/HeroSection15.svelte +75 -0
  292. package/src/registry/blocks/hero-section/HeroSection16.svelte +92 -0
  293. package/src/registry/blocks/hero-section/HeroSection17.svelte +78 -0
  294. package/src/registry/blocks/hero-section/HeroSection18.svelte +82 -0
  295. package/src/registry/blocks/hero-section/HeroSection19.svelte +72 -0
  296. package/src/registry/blocks/hero-section/HeroSection20.svelte +79 -0
  297. package/src/registry/blocks/hero-section/HeroSection21.svelte +75 -0
  298. package/src/registry/blocks/hero-section/HeroSection22.svelte +103 -0
  299. package/src/registry/blocks/hero-section/index.ts +22 -0
  300. package/src/registry/blocks/logo-section/LogoSection01.svelte +54 -0
  301. package/src/registry/blocks/logo-section/LogoSection02.svelte +56 -0
  302. package/src/registry/blocks/logo-section/LogoSection03.svelte +58 -0
  303. package/src/registry/blocks/logo-section/LogoSection04.svelte +58 -0
  304. package/src/registry/blocks/logo-section/LogoSection05.svelte +43 -0
  305. package/src/registry/blocks/logo-section/LogoSection06.svelte +43 -0
  306. package/src/registry/blocks/logo-section/LogoSection07.svelte +56 -0
  307. package/src/registry/blocks/logo-section/index.ts +7 -0
  308. package/src/registry/blocks/lp-navbar/LPNavbar01.svelte +94 -0
  309. package/src/registry/blocks/lp-navbar/LPNavbar02.svelte +96 -0
  310. package/src/registry/blocks/lp-navbar/LPNavbar03.svelte +97 -0
  311. package/src/registry/blocks/lp-navbar/LPNavbar04.svelte +103 -0
  312. package/src/registry/blocks/lp-navbar/LPNavbar05.svelte +173 -0
  313. package/src/registry/blocks/lp-navbar/LPNavbar06.svelte +200 -0
  314. package/src/registry/blocks/lp-navbar/LPNavbar07.svelte +202 -0
  315. package/src/registry/blocks/lp-navbar/index.ts +7 -0
  316. package/src/registry/blocks/mail/MailBlock.svelte +321 -0
  317. package/src/registry/blocks/mail/index.ts +2 -0
  318. package/src/registry/blocks/music/MusicBlock.svelte +239 -0
  319. package/src/registry/blocks/music/index.ts +1 -0
  320. package/src/registry/blocks/navbar/Navbar01.svelte +234 -0
  321. package/src/registry/blocks/navbar/Navbar02.svelte +111 -0
  322. package/src/registry/blocks/navbar/Navbar03.svelte +88 -0
  323. package/src/registry/blocks/navbar/index.ts +3 -0
  324. package/src/registry/blocks/not-found/NotFound01.svelte +29 -0
  325. package/src/registry/blocks/not-found/NotFound02.svelte +28 -0
  326. package/src/registry/blocks/not-found/NotFound03.svelte +25 -0
  327. package/src/registry/blocks/not-found/index.ts +3 -0
  328. package/src/registry/blocks/order-history/OrderHistory01.svelte +208 -0
  329. package/src/registry/blocks/order-history/OrderHistory02.svelte +131 -0
  330. package/src/registry/blocks/order-history/OrderHistory03.svelte +133 -0
  331. package/src/registry/blocks/order-history/index.ts +3 -0
  332. package/src/registry/blocks/page-header/PageHeader01.svelte +39 -0
  333. package/src/registry/blocks/page-header/PageHeader02.svelte +58 -0
  334. package/src/registry/blocks/page-header/PageHeader03.svelte +64 -0
  335. package/src/registry/blocks/page-header/PageHeader04.svelte +49 -0
  336. package/src/registry/blocks/page-header/PageHeader05.svelte +49 -0
  337. package/src/registry/blocks/page-header/PageHeader06.svelte +58 -0
  338. package/src/registry/blocks/page-header/PageHeader07.svelte +64 -0
  339. package/src/registry/blocks/page-header/PageHeader08.svelte +68 -0
  340. package/src/registry/blocks/page-header/index.ts +8 -0
  341. package/src/registry/blocks/playground/PlaygroundBlock01.svelte +162 -0
  342. package/src/registry/blocks/playground/PlaygroundBlock02.svelte +156 -0
  343. package/src/registry/blocks/playground/index.ts +2 -0
  344. package/src/registry/blocks/pricing-section/PricingSection01.svelte +109 -0
  345. package/src/registry/blocks/pricing-section/PricingSection02.svelte +145 -0
  346. package/src/registry/blocks/pricing-section/PricingSection03.svelte +94 -0
  347. package/src/registry/blocks/pricing-section/PricingSection04.svelte +103 -0
  348. package/src/registry/blocks/pricing-section/PricingSection05.svelte +128 -0
  349. package/src/registry/blocks/pricing-section/index.ts +20 -0
  350. package/src/registry/blocks/product-card/ProductCard01.svelte +74 -0
  351. package/src/registry/blocks/product-card/ProductCard02.svelte +108 -0
  352. package/src/registry/blocks/product-card/ProductCard03.svelte +80 -0
  353. package/src/registry/blocks/product-card/ProductCard04.svelte +50 -0
  354. package/src/registry/blocks/product-card/ProductCard05.svelte +107 -0
  355. package/src/registry/blocks/product-card/index.ts +5 -0
  356. package/src/registry/blocks/product-detail/ProductDetail01.svelte +174 -0
  357. package/src/registry/blocks/product-detail/ProductDetail02.svelte +170 -0
  358. package/src/registry/blocks/product-detail/ProductDetail03.svelte +159 -0
  359. package/src/registry/blocks/product-detail/ProductDetail04.svelte +106 -0
  360. package/src/registry/blocks/product-detail/ProductDetail05.svelte +181 -0
  361. package/src/registry/blocks/product-detail/index.ts +5 -0
  362. package/src/registry/blocks/product-listing/ProductListing01.svelte +194 -0
  363. package/src/registry/blocks/product-listing/ProductListing02.svelte +163 -0
  364. package/src/registry/blocks/product-listing/ProductListing03.svelte +173 -0
  365. package/src/registry/blocks/product-listing/ProductListing04.svelte +179 -0
  366. package/src/registry/blocks/product-listing/ProductListing05.svelte +126 -0
  367. package/src/registry/blocks/product-listing/index.ts +5 -0
  368. package/src/registry/blocks/product-reviews/ProductReviews01.svelte +156 -0
  369. package/src/registry/blocks/product-reviews/ProductReviews02.svelte +139 -0
  370. package/src/registry/blocks/product-reviews/ProductReviews03.svelte +137 -0
  371. package/src/registry/blocks/product-reviews/ProductReviews04.svelte +129 -0
  372. package/src/registry/blocks/product-reviews/index.ts +4 -0
  373. package/src/registry/blocks/promo-section/PromoSection01.svelte +72 -0
  374. package/src/registry/blocks/promo-section/PromoSection02.svelte +61 -0
  375. package/src/registry/blocks/promo-section/PromoSection03.svelte +110 -0
  376. package/src/registry/blocks/promo-section/PromoSection04.svelte +103 -0
  377. package/src/registry/blocks/promo-section/index.ts +4 -0
  378. package/src/registry/blocks/rich-text/RichText01.svelte +30 -0
  379. package/src/registry/blocks/rich-text/RichText02.svelte +72 -0
  380. package/src/registry/blocks/rich-text/RichText03.svelte +52 -0
  381. package/src/registry/blocks/rich-text/RichText04.svelte +44 -0
  382. package/src/registry/blocks/rich-text/RichText05.svelte +56 -0
  383. package/src/registry/blocks/rich-text/index.ts +5 -0
  384. package/src/registry/blocks/section/Section01.svelte +38 -0
  385. package/src/registry/blocks/section/Section02.svelte +90 -0
  386. package/src/registry/blocks/section/Section03.svelte +95 -0
  387. package/src/registry/blocks/section/Section04.svelte +117 -0
  388. package/src/registry/blocks/section/index.ts +4 -0
  389. package/src/registry/blocks/section-footer/SectionFooter01.svelte +39 -0
  390. package/src/registry/blocks/section-footer/SectionFooter02.svelte +33 -0
  391. package/src/registry/blocks/section-footer/SectionFooter03.svelte +33 -0
  392. package/src/registry/blocks/section-footer/SectionFooter04.svelte +34 -0
  393. package/src/registry/blocks/section-footer/SectionFooter05.svelte +69 -0
  394. package/src/registry/blocks/section-footer/index.ts +5 -0
  395. package/src/registry/blocks/section-header/SectionHeader01.svelte +39 -0
  396. package/src/registry/blocks/section-header/SectionHeader02.svelte +58 -0
  397. package/src/registry/blocks/section-header/SectionHeader03.svelte +88 -0
  398. package/src/registry/blocks/section-header/SectionHeader04.svelte +45 -0
  399. package/src/registry/blocks/section-header/SectionHeader05.svelte +64 -0
  400. package/src/registry/blocks/section-header/index.ts +5 -0
  401. package/src/registry/blocks/settings/Settings01.svelte +202 -0
  402. package/src/registry/blocks/settings/Settings02.svelte +201 -0
  403. package/src/registry/blocks/settings/Settings03.svelte +156 -0
  404. package/src/registry/blocks/settings/Settings04.svelte +175 -0
  405. package/src/registry/blocks/settings/Settings05.svelte +248 -0
  406. package/src/registry/blocks/settings/Settings06.svelte +120 -0
  407. package/src/registry/blocks/settings/Settings07.svelte +136 -0
  408. package/src/registry/blocks/settings/index.ts +7 -0
  409. package/src/registry/blocks/sidebar/SidebarLayout01.svelte +108 -0
  410. package/src/registry/blocks/sidebar/SidebarLayout02.svelte +75 -0
  411. package/src/registry/blocks/sidebar/SidebarLayout03.svelte +108 -0
  412. package/src/registry/blocks/sidebar/SidebarLayout04.svelte +111 -0
  413. package/src/registry/blocks/sidebar/SidebarLayout05.svelte +103 -0
  414. package/src/registry/blocks/sidebar/SidebarLayout06.svelte +122 -0
  415. package/src/registry/blocks/sidebar/SidebarLayout07.svelte +183 -0
  416. package/src/registry/blocks/sidebar/SidebarLayout08.svelte +162 -0
  417. package/src/registry/blocks/sidebar/SidebarLayout09.svelte +167 -0
  418. package/src/registry/blocks/sidebar/SidebarLayout10.svelte +159 -0
  419. package/src/registry/blocks/sidebar/SidebarLayout11.svelte +135 -0
  420. package/src/registry/blocks/sidebar/SidebarLayout12.svelte +159 -0
  421. package/src/registry/blocks/sidebar/SidebarLayout13.svelte +103 -0
  422. package/src/registry/blocks/sidebar/SidebarLayout14.svelte +87 -0
  423. package/src/registry/blocks/sidebar/SidebarLayout15.svelte +228 -0
  424. package/src/registry/blocks/sidebar/index.ts +15 -0
  425. package/src/registry/blocks/sign-in/SignIn01.svelte +140 -0
  426. package/src/registry/blocks/sign-in/SignIn02.svelte +155 -0
  427. package/src/registry/blocks/sign-in/SignIn03.svelte +214 -0
  428. package/src/registry/blocks/sign-in/SignIn04.svelte +163 -0
  429. package/src/registry/blocks/sign-in/SignIn05.svelte +209 -0
  430. package/src/registry/blocks/sign-in/SignIn06.svelte +233 -0
  431. package/src/registry/blocks/sign-in/SignIn07.svelte +268 -0
  432. package/src/registry/blocks/sign-in/SignIn08.svelte +125 -0
  433. package/src/registry/blocks/sign-in/SignIn09.svelte +93 -0
  434. package/src/registry/blocks/sign-in/SignIn10.svelte +74 -0
  435. package/src/registry/blocks/sign-in/index.ts +10 -0
  436. package/src/registry/blocks/sign-up/SignUp01.svelte +124 -0
  437. package/src/registry/blocks/sign-up/SignUp02.svelte +110 -0
  438. package/src/registry/blocks/sign-up/SignUp03.svelte +182 -0
  439. package/src/registry/blocks/sign-up/SignUp04.svelte +126 -0
  440. package/src/registry/blocks/sign-up/SignUp05.svelte +182 -0
  441. package/src/registry/blocks/sign-up/SignUp06.svelte +221 -0
  442. package/src/registry/blocks/sign-up/SignUp07.svelte +98 -0
  443. package/src/registry/blocks/sign-up/index.ts +7 -0
  444. package/src/registry/blocks/stats-section/StatsSection01.svelte +66 -0
  445. package/src/registry/blocks/stats-section/StatsSection02.svelte +60 -0
  446. package/src/registry/blocks/stats-section/StatsSection03.svelte +66 -0
  447. package/src/registry/blocks/stats-section/StatsSection04.svelte +66 -0
  448. package/src/registry/blocks/stats-section/StatsSection05.svelte +60 -0
  449. package/src/registry/blocks/stats-section/StatsSection06.svelte +48 -0
  450. package/src/registry/blocks/stats-section/StatsSection07.svelte +66 -0
  451. package/src/registry/blocks/stats-section/index.ts +7 -0
  452. package/src/registry/blocks/store-navbar/StoreNavbar01.svelte +101 -0
  453. package/src/registry/blocks/store-navbar/StoreNavbar02.svelte +65 -0
  454. package/src/registry/blocks/store-navbar/StoreNavbar03.svelte +83 -0
  455. package/src/registry/blocks/store-navbar/StoreNavbar04.svelte +110 -0
  456. package/src/registry/blocks/store-navbar/StoreNavbar05.svelte +80 -0
  457. package/src/registry/blocks/store-navbar/index.ts +5 -0
  458. package/src/registry/blocks/table-header/TableHeader01.svelte +96 -0
  459. package/src/registry/blocks/table-header/TableHeader02.svelte +86 -0
  460. package/src/registry/blocks/table-header/TableHeader03.svelte +99 -0
  461. package/src/registry/blocks/table-header/TableHeader04.svelte +107 -0
  462. package/src/registry/blocks/table-header/index.ts +4 -0
  463. package/src/registry/blocks/tasks/TasksBlock.svelte +286 -0
  464. package/src/registry/blocks/tasks/index.ts +1 -0
  465. package/src/registry/blocks/team-section/TeamSection01.svelte +80 -0
  466. package/src/registry/blocks/team-section/TeamSection02.svelte +102 -0
  467. package/src/registry/blocks/team-section/TeamSection03.svelte +76 -0
  468. package/src/registry/blocks/team-section/TeamSection04.svelte +106 -0
  469. package/src/registry/blocks/team-section/index.ts +13 -0
  470. package/src/registry/blocks/testimonials/Testimonial01.svelte +74 -0
  471. package/src/registry/blocks/testimonials/Testimonial02.svelte +74 -0
  472. package/src/registry/blocks/testimonials/Testimonial03.svelte +79 -0
  473. package/src/registry/blocks/testimonials/Testimonial04.svelte +113 -0
  474. package/src/registry/blocks/testimonials/Testimonial05.svelte +74 -0
  475. package/src/registry/blocks/testimonials/Testimonial06.svelte +114 -0
  476. package/src/registry/blocks/testimonials/Testimonial07.svelte +131 -0
  477. package/src/registry/blocks/testimonials/Testimonials01.svelte +60 -0
  478. package/src/registry/blocks/testimonials/Testimonials02.svelte +61 -0
  479. package/src/registry/blocks/testimonials/Testimonials03.svelte +79 -0
  480. package/src/registry/blocks/testimonials/Testimonials04.svelte +74 -0
  481. package/src/registry/blocks/testimonials/Testimonials05.svelte +68 -0
  482. package/src/registry/blocks/testimonials/Testimonials06.svelte +82 -0
  483. package/src/registry/blocks/testimonials/Testimonials07.svelte +98 -0
  484. package/src/registry/blocks/testimonials/index.ts +16 -0
  485. package/src/registry/templates/cn.ts +42 -0
  486. package/src/index.ts +0 -2
  487. package/tsconfig.json +0 -20
  488. /package/src/{generate-component.cjs → commands/generate-component.cjs} +0 -0
  489. /package/src/{generate-route.cjs → commands/generate-route.cjs} +0 -0
  490. /package/src/{generate-service.cjs → commands/generate-service.cjs} +0 -0
  491. /package/src/{manage-auth-users.cjs → commands/manage-auth-users.cjs} +0 -0
  492. /package/src/{setup.cjs → commands/setup.cjs} +0 -0
  493. /package/src/{validate-setup.cjs → commands/validate.cjs} +0 -0
@@ -0,0 +1,286 @@
1
+ <!--
2
+ TasksBlock.svelte
3
+ Task list table with filtering, pagination, and status/priority badges.
4
+ -->
5
+ <script lang="ts">
6
+ import { cn } from '$lib/utils/cn';
7
+ import {
8
+ Button,
9
+ Input,
10
+ Badge,
11
+ Avatar,
12
+ Select,
13
+ Table,
14
+ TableHeader,
15
+ TableBody,
16
+ TableRow,
17
+ TableHead,
18
+ TableCell,
19
+ Checkbox,
20
+ DropdownMenu,
21
+ DropdownMenuContent,
22
+ DropdownMenuItem,
23
+ DropdownMenuTrigger
24
+ } from '$lib/components/ui';
25
+
26
+ let {
27
+ class: className = '',
28
+ tasks = [],
29
+ title = 'Welcome back!',
30
+ description = "Here's a list of your tasks for this month!",
31
+ onfilter,
32
+ onsort,
33
+ onpageChange
34
+ }: {
35
+ class?: string;
36
+ tasks?: Array<{
37
+ id: string;
38
+ title: string;
39
+ type: string;
40
+ status: string;
41
+ priority: string;
42
+ }>;
43
+ title?: string;
44
+ description?: string;
45
+ onfilter?: (data: { search: string; status: string; priority: string }) => void;
46
+ onsort?: (data: { column: string; direction: 'asc' | 'desc' }) => void;
47
+ onpageChange?: (data: { page: number }) => void;
48
+ } = $props();
49
+
50
+ // Filter state
51
+ let searchQuery = $state('');
52
+ let statusFilter = $state('');
53
+ let priorityFilter = $state('');
54
+
55
+ // Pagination state
56
+ let currentPage = $state(1);
57
+ let rowsPerPage = $state(10);
58
+ let selectedRows: Set<string> = $state(new Set());
59
+
60
+ // Status options
61
+ const statusOptions = [
62
+ { value: '', label: 'All statuses' },
63
+ { value: 'backlog', label: 'Backlog' },
64
+ { value: 'todo', label: 'Todo' },
65
+ { value: 'in-progress', label: 'In Progress' },
66
+ { value: 'done', label: 'Done' },
67
+ { value: 'cancelled', label: 'Cancelled' }
68
+ ];
69
+
70
+ const priorityOptions = [
71
+ { value: '', label: 'All priorities' },
72
+ { value: 'low', label: 'Low' },
73
+ { value: 'medium', label: 'Medium' },
74
+ { value: 'high', label: 'High' }
75
+ ];
76
+
77
+ // Computed
78
+ let filteredTasks = $derived(tasks.filter(task => {
79
+ const matchesSearch = !searchQuery || task.title.toLowerCase().includes(searchQuery.toLowerCase()) || task.id.toLowerCase().includes(searchQuery.toLowerCase());
80
+ const matchesStatus = !statusFilter || task.status === statusFilter;
81
+ const matchesPriority = !priorityFilter || task.priority === priorityFilter;
82
+ return matchesSearch && matchesStatus && matchesPriority;
83
+ }));
84
+
85
+ let totalPages = $derived(Math.max(1, Math.ceil(filteredTasks.length / rowsPerPage)));
86
+ let paginatedTasks = $derived(filteredTasks.slice((currentPage - 1) * rowsPerPage, currentPage * rowsPerPage));
87
+
88
+ function toggleRowSelection(id: string) {
89
+ if (selectedRows.has(id)) {
90
+ selectedRows.delete(id);
91
+ } else {
92
+ selectedRows.add(id);
93
+ }
94
+ selectedRows = new Set(selectedRows);
95
+ }
96
+
97
+ function getStatusColor(status: string): string {
98
+ switch (status) {
99
+ case 'done': return 'bg-green-500';
100
+ case 'in-progress': return 'bg-blue-500';
101
+ case 'todo': return 'bg-yellow-500';
102
+ case 'backlog': return 'bg-gray-400';
103
+ case 'cancelled': return 'bg-red-500';
104
+ default: return 'bg-gray-400';
105
+ }
106
+ }
107
+
108
+ function getTypeBadgeVariant(type: string): 'default' | 'secondary' | 'outline' | 'destructive' {
109
+ switch (type) {
110
+ case 'bug': return 'destructive';
111
+ case 'feature': return 'default';
112
+ case 'documentation': return 'secondary';
113
+ default: return 'outline';
114
+ }
115
+ }
116
+
117
+ function handleFilter() {
118
+ currentPage = 1;
119
+ onfilter?.({ search: searchQuery, status: statusFilter, priority: priorityFilter });
120
+ }
121
+
122
+ function goToPage(page: number) {
123
+ if (page >= 1 && page <= totalPages) {
124
+ currentPage = page;
125
+ onpageChange?.({ page });
126
+ }
127
+ }
128
+ </script>
129
+
130
+ <div class={cn('space-y-4', className)}>
131
+ <!-- Header -->
132
+ <div class="flex items-start justify-between">
133
+ <div>
134
+ <h2 class="text-2xl font-bold tracking-tight">{title}</h2>
135
+ <p class="text-muted-foreground">{description}</p>
136
+ </div>
137
+ <Avatar alt="User" class="h-10 w-10" />
138
+ </div>
139
+
140
+ <!-- Filter Row -->
141
+ <div class="flex items-center gap-2">
142
+ <Input
143
+ type="search"
144
+ placeholder="Filter tasks..."
145
+ bind:value={searchQuery}
146
+ class="max-w-sm"
147
+ oninput={handleFilter}
148
+ />
149
+ <Select
150
+ options={statusOptions}
151
+ bind:value={statusFilter}
152
+ placeholder="Status"
153
+ onchange={handleFilter}
154
+ />
155
+ <Select
156
+ options={priorityOptions}
157
+ bind:value={priorityFilter}
158
+ placeholder="Priority"
159
+ onchange={handleFilter}
160
+ />
161
+ <div class="ml-auto flex items-center gap-1">
162
+ <!-- Lucide: LayoutList -->
163
+ <Button variant="outline" size="sm">
164
+ <span class="text-xs">List</span>
165
+ </Button>
166
+ <!-- Lucide: LayoutGrid -->
167
+ <Button variant="outline" size="sm">
168
+ <span class="text-xs">Board</span>
169
+ </Button>
170
+ </div>
171
+ </div>
172
+
173
+ <!-- Task Table -->
174
+ <div class="rounded-md border">
175
+ <Table>
176
+ <TableHeader>
177
+ <TableRow>
178
+ <TableHead class="w-12">
179
+ <Checkbox />
180
+ </TableHead>
181
+ <TableHead class="w-24">Task</TableHead>
182
+ <TableHead>Title</TableHead>
183
+ <TableHead class="w-28">Type</TableHead>
184
+ <TableHead class="w-32">Status</TableHead>
185
+ <TableHead class="w-24">Priority</TableHead>
186
+ <TableHead class="w-12"></TableHead>
187
+ </TableRow>
188
+ </TableHeader>
189
+ <TableBody>
190
+ {#each paginatedTasks as task}
191
+ <TableRow>
192
+ <TableCell>
193
+ <Checkbox
194
+ checked={selectedRows.has(task.id)}
195
+ onchange={() => toggleRowSelection(task.id)}
196
+ />
197
+ </TableCell>
198
+ <TableCell class="font-mono text-xs text-muted-foreground">
199
+ {task.id}
200
+ </TableCell>
201
+ <TableCell class="font-medium">
202
+ {task.title}
203
+ </TableCell>
204
+ <TableCell>
205
+ <Badge variant={getTypeBadgeVariant(task.type)}>
206
+ {task.type}
207
+ </Badge>
208
+ </TableCell>
209
+ <TableCell>
210
+ <div class="flex items-center gap-2">
211
+ <span class={cn('h-2 w-2 rounded-full', getStatusColor(task.status))} />
212
+ <span class="text-sm capitalize">{task.status.replace('-', ' ')}</span>
213
+ </div>
214
+ </TableCell>
215
+ <TableCell class="capitalize">
216
+ {task.priority}
217
+ </TableCell>
218
+ <TableCell>
219
+ <DropdownMenu>
220
+ <DropdownMenuTrigger>
221
+ <Button variant="ghost" size="sm" class="h-8 w-8 p-0">
222
+ <!-- Lucide: MoreHorizontal -->
223
+ <span class="text-xs">...</span>
224
+ </Button>
225
+ </DropdownMenuTrigger>
226
+ <DropdownMenuContent>
227
+ <DropdownMenuItem>Edit</DropdownMenuItem>
228
+ <DropdownMenuItem>Copy ID</DropdownMenuItem>
229
+ <DropdownMenuItem>Delete</DropdownMenuItem>
230
+ </DropdownMenuContent>
231
+ </DropdownMenu>
232
+ </TableCell>
233
+ </TableRow>
234
+ {:else}
235
+ <TableRow>
236
+ <TableCell colspan={7} class="text-center text-muted-foreground py-8">
237
+ No tasks found.
238
+ </TableCell>
239
+ </TableRow>
240
+ {/each}
241
+ </TableBody>
242
+ </Table>
243
+ </div>
244
+
245
+ <!-- Pagination -->
246
+ <div class="flex items-center justify-between">
247
+ <p class="text-sm text-muted-foreground">
248
+ {selectedRows.size} of {filteredTasks.length} row(s) selected.
249
+ </p>
250
+ <div class="flex items-center gap-4">
251
+ <div class="flex items-center gap-2">
252
+ <span class="text-sm text-muted-foreground">Rows per page</span>
253
+ <Select
254
+ options={[
255
+ { value: '10', label: '10' },
256
+ { value: '20', label: '20' },
257
+ { value: '50', label: '50' }
258
+ ]}
259
+ value={String(rowsPerPage)}
260
+ onchange={(e: any) => { rowsPerPage = Number(e.target?.value ?? e.detail?.value ?? rowsPerPage); currentPage = 1; }}
261
+ />
262
+ </div>
263
+ <span class="text-sm text-muted-foreground">
264
+ Page {currentPage} of {totalPages}
265
+ </span>
266
+ <div class="flex items-center gap-1">
267
+ <Button
268
+ variant="outline"
269
+ size="sm"
270
+ disabled={currentPage <= 1}
271
+ onclick={() => goToPage(currentPage - 1)}
272
+ >
273
+ Previous
274
+ </Button>
275
+ <Button
276
+ variant="outline"
277
+ size="sm"
278
+ disabled={currentPage >= totalPages}
279
+ onclick={() => goToPage(currentPage + 1)}
280
+ >
281
+ Next
282
+ </Button>
283
+ </div>
284
+ </div>
285
+ </div>
286
+ </div>
@@ -0,0 +1 @@
1
+ export { default as TasksBlock } from './TasksBlock.svelte';
@@ -0,0 +1,80 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface TeamMember {
5
+ name: string;
6
+ role?: string;
7
+ bio?: string;
8
+ avatarUrl?: string;
9
+ twitter?: string;
10
+ linkedin?: string;
11
+ }
12
+
13
+ const defaultMembers: TeamMember[] = [
14
+ {
15
+ name: 'Sarah Johnson',
16
+ role: 'CEO & Co-Founder',
17
+ bio: 'Passionate about building products that empower designers and developers to create better digital experiences.',
18
+ },
19
+ {
20
+ name: 'Marcus Chen',
21
+ role: 'CTO & Co-Founder',
22
+ bio: 'Full-stack engineer with 10+ years building design systems and developer tools.',
23
+ },
24
+ {
25
+ name: 'Priya Patel',
26
+ role: 'Head of Design',
27
+ bio: 'Former lead designer at top tech companies, passionate about accessible and beautiful interfaces.',
28
+ },
29
+ {
30
+ name: 'James Rivera',
31
+ role: 'Head of Engineering',
32
+ bio: 'Loves clean code, performance optimization, and mentoring engineers.',
33
+ },
34
+ {
35
+ name: 'Lena Schmidt',
36
+ role: 'Product Manager',
37
+ bio: 'Bridges design and engineering to ship products users love.',
38
+ },
39
+ {
40
+ name: 'Noah Williams',
41
+ role: 'Marketing Lead',
42
+ bio: 'Data-driven marketer focused on developer communities and content.',
43
+ },
44
+ ];
45
+
46
+ let { class: className, title = 'Meet our team', description = 'Our diverse team of experts is passionate about creating the best possible product for you.', members = defaultMembers } = $props();
47
+ </script>
48
+
49
+ <section class={cn('w-full bg-background py-16 px-4', className)}>
50
+ <div class="mx-auto max-w-6xl">
51
+ <div class="text-center mb-12">
52
+ <p class="text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2">Team Section</p>
53
+ <h2 class="text-2xl sm:text-3xl font-bold mb-4">{title}</h2>
54
+ <p class="text-muted-foreground max-w-2xl mx-auto">{description}</p>
55
+ </div>
56
+
57
+ <div class="grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3">
58
+ {#each members as member}
59
+ <div class="flex flex-col items-center text-center">
60
+ <div class="h-16 w-16 rounded-full bg-muted text-sm font-semibold flex items-center justify-center text-muted-foreground mb-4">
61
+ {member.name
62
+ .split(' ')
63
+ .map((n) => n[0])
64
+ .join('')}
65
+ </div>
66
+
67
+ <h3 class="font-medium text-lg">{member.name}</h3>
68
+
69
+ {#if member.role}
70
+ <p class="text-xs text-muted-foreground font-medium">{member.role}</p>
71
+ {/if}
72
+
73
+ {#if member.bio}
74
+ <p class="mt-2 text-sm text-muted-foreground">{member.bio}</p>
75
+ {/if}
76
+ </div>
77
+ {/each}
78
+ </div>
79
+ </div>
80
+ </section>
@@ -0,0 +1,102 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface TeamMember {
5
+ name: string;
6
+ role?: string;
7
+ bio?: string;
8
+ avatarUrl?: string;
9
+ twitter?: string;
10
+ linkedin?: string;
11
+ }
12
+
13
+ const defaultMembers: TeamMember[] = [
14
+ {
15
+ name: 'Sarah Johnson',
16
+ role: 'CEO & Co-Founder',
17
+ bio: 'Passionate about building products that empower designers and developers to create better digital experiences.',
18
+ },
19
+ {
20
+ name: 'Marcus Chen',
21
+ role: 'CTO & Co-Founder',
22
+ bio: 'Full-stack engineer with 10+ years building design systems and developer tools.',
23
+ },
24
+ {
25
+ name: 'Priya Patel',
26
+ role: 'Head of Design',
27
+ bio: 'Former lead designer at top tech companies, passionate about accessible and beautiful interfaces.',
28
+ },
29
+ {
30
+ name: 'James Rivera',
31
+ role: 'Head of Engineering',
32
+ bio: 'Loves clean code, performance optimization, and mentoring engineers.',
33
+ },
34
+ {
35
+ name: 'Lena Schmidt',
36
+ role: 'Product Manager',
37
+ bio: 'Bridges design and engineering to ship products users love.',
38
+ },
39
+ {
40
+ name: 'Noah Williams',
41
+ role: 'Marketing Lead',
42
+ bio: 'Data-driven marketer focused on developer communities and content.',
43
+ },
44
+ ];
45
+
46
+ let { class: className, title = 'Meet our team', description = 'Our diverse team of experts is passionate about creating the best possible product for you.', members = defaultMembers } = $props();
47
+ </script>
48
+
49
+ <section class={cn('w-full bg-background py-16 px-4', className)}>
50
+ <div class="mx-auto max-w-6xl">
51
+ <div class="mb-12">
52
+ <p class="text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2">Team Section</p>
53
+ <h2 class="text-2xl sm:text-3xl font-bold mb-4">{title}</h2>
54
+ <p class="text-muted-foreground max-w-2xl">{description}</p>
55
+ </div>
56
+
57
+ <div class="grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3">
58
+ {#each members as member}
59
+ <div class="flex flex-col items-center text-center">
60
+ <div class="h-16 w-16 rounded-full bg-muted text-sm font-semibold flex items-center justify-center text-muted-foreground mb-4">
61
+ {member.name
62
+ .split(' ')
63
+ .map((n) => n[0])
64
+ .join('')}
65
+ </div>
66
+
67
+ <h3 class="font-medium text-lg">{member.name}</h3>
68
+
69
+ {#if member.role}
70
+ <p class="text-xs text-muted-foreground font-medium">{member.role}</p>
71
+ {/if}
72
+
73
+ {#if member.bio}
74
+ <p class="mt-2 text-sm text-muted-foreground">{member.bio}</p>
75
+ {/if}
76
+
77
+ {#if member.twitter || member.linkedin}
78
+ <div class="mt-3 flex gap-2">
79
+ {#if member.twitter}
80
+ <a href={member.twitter} target="_blank" rel="noopener noreferrer" class="p-2 hover:bg-muted rounded-md transition-colors">
81
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="text-muted-foreground hover:text-foreground">
82
+ <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.744l7.737-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z" />
83
+ </svg>
84
+ </a>
85
+ {/if}
86
+
87
+ {#if member.linkedin}
88
+ <a href={member.linkedin} target="_blank" rel="noopener noreferrer" class="p-2 hover:bg-muted rounded-md transition-colors">
89
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="text-muted-foreground hover:text-foreground">
90
+ <path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" />
91
+ <rect x="2" y="9" width="4" height="12" />
92
+ <circle cx="4" cy="4" r="2" />
93
+ </svg>
94
+ </a>
95
+ {/if}
96
+ </div>
97
+ {/if}
98
+ </div>
99
+ {/each}
100
+ </div>
101
+ </div>
102
+ </section>
@@ -0,0 +1,76 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface TeamMember {
5
+ name: string;
6
+ role?: string;
7
+ bio?: string;
8
+ avatarUrl?: string;
9
+ twitter?: string;
10
+ linkedin?: string;
11
+ }
12
+
13
+ const defaultMembers: TeamMember[] = [
14
+ {
15
+ name: 'Sarah Johnson',
16
+ role: 'CEO & Co-Founder',
17
+ bio: 'Passionate about building products that empower designers and developers to create better digital experiences.',
18
+ },
19
+ {
20
+ name: 'Marcus Chen',
21
+ role: 'CTO & Co-Founder',
22
+ bio: 'Full-stack engineer with 10+ years building design systems and developer tools.',
23
+ },
24
+ {
25
+ name: 'Priya Patel',
26
+ role: 'Head of Design',
27
+ bio: 'Former lead designer at top tech companies, passionate about accessible and beautiful interfaces.',
28
+ },
29
+ {
30
+ name: 'James Rivera',
31
+ role: 'Head of Engineering',
32
+ bio: 'Loves clean code, performance optimization, and mentoring engineers.',
33
+ },
34
+ {
35
+ name: 'Lena Schmidt',
36
+ role: 'Product Manager',
37
+ bio: 'Bridges design and engineering to ship products users love.',
38
+ },
39
+ {
40
+ name: 'Noah Williams',
41
+ role: 'Marketing Lead',
42
+ bio: 'Data-driven marketer focused on developer communities and content.',
43
+ },
44
+ ];
45
+
46
+ let { class: className, title = 'Meet our team', description = 'Our diverse team of experts is passionate about creating the best possible product for you.', members = defaultMembers.slice(0, 4) } = $props();
47
+ </script>
48
+
49
+ <section class={cn('w-full bg-background py-16 px-4', className)}>
50
+ <div class="mx-auto max-w-6xl">
51
+ <div class="text-center mb-12">
52
+ <p class="text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2">Team Section</p>
53
+ <h2 class="text-2xl sm:text-3xl font-bold mb-4">{title}</h2>
54
+ <p class="text-muted-foreground max-w-2xl mx-auto">{description}</p>
55
+ </div>
56
+
57
+ <div class="grid grid-cols-2 gap-6 sm:grid-cols-4">
58
+ {#each members as member}
59
+ <div class="flex flex-col items-center text-center">
60
+ <div class="h-12 w-12 rounded-full bg-muted text-xs font-semibold flex items-center justify-center text-muted-foreground mb-3">
61
+ {member.name
62
+ .split(' ')
63
+ .map((n) => n[0])
64
+ .join('')}
65
+ </div>
66
+
67
+ <h3 class="font-medium text-sm">{member.name}</h3>
68
+
69
+ {#if member.role}
70
+ <p class="text-xs text-muted-foreground">{member.role}</p>
71
+ {/if}
72
+ </div>
73
+ {/each}
74
+ </div>
75
+ </div>
76
+ </section>
@@ -0,0 +1,106 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+
4
+ interface TeamMember {
5
+ name: string;
6
+ role?: string;
7
+ bio?: string;
8
+ avatarUrl?: string;
9
+ twitter?: string;
10
+ linkedin?: string;
11
+ }
12
+
13
+ const defaultMembers: TeamMember[] = [
14
+ {
15
+ name: 'Sarah Johnson',
16
+ role: 'CEO & Co-Founder',
17
+ bio: 'Passionate about building products that empower designers and developers to create better digital experiences.',
18
+ },
19
+ {
20
+ name: 'Marcus Chen',
21
+ role: 'CTO & Co-Founder',
22
+ bio: 'Full-stack engineer with 10+ years building design systems and developer tools.',
23
+ },
24
+ {
25
+ name: 'Priya Patel',
26
+ role: 'Head of Design',
27
+ bio: 'Former lead designer at top tech companies, passionate about accessible and beautiful interfaces.',
28
+ },
29
+ {
30
+ name: 'James Rivera',
31
+ role: 'Head of Engineering',
32
+ bio: 'Loves clean code, performance optimization, and mentoring engineers.',
33
+ },
34
+ {
35
+ name: 'Lena Schmidt',
36
+ role: 'Product Manager',
37
+ bio: 'Bridges design and engineering to ship products users love.',
38
+ },
39
+ {
40
+ name: 'Noah Williams',
41
+ role: 'Marketing Lead',
42
+ bio: 'Data-driven marketer focused on developer communities and content.',
43
+ },
44
+ ];
45
+
46
+ let { class: className, title = 'Meet our team', description = 'Our diverse team of experts is passionate about creating the best possible product for you.', members = defaultMembers.slice(0, 4) } = $props();
47
+ </script>
48
+
49
+ <section class={cn('w-full bg-background py-16 px-4', className)}>
50
+ <div class="mx-auto max-w-6xl">
51
+ <div class="mb-12">
52
+ <p class="text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2">Team Section</p>
53
+ <h2 class="text-2xl sm:text-3xl font-bold mb-4">{title}</h2>
54
+ <p class="text-muted-foreground max-w-2xl">{description}</p>
55
+ </div>
56
+
57
+ <div class="flex flex-col divide-y">
58
+ {#each members as member}
59
+ <div class="flex items-center justify-between gap-4 py-5">
60
+ <div class="flex items-center gap-4 flex-1">
61
+ <div class="h-12 w-12 rounded-full bg-muted text-sm font-semibold flex items-center justify-center text-muted-foreground flex-shrink-0">
62
+ {member.name
63
+ .split(' ')
64
+ .map((n) => n[0])
65
+ .join('')}
66
+ </div>
67
+
68
+ <div class="text-left">
69
+ <h3 class="font-medium text-sm">{member.name}</h3>
70
+
71
+ {#if member.role}
72
+ <p class="text-xs text-muted-foreground">{member.role}</p>
73
+ {/if}
74
+
75
+ {#if member.bio}
76
+ <p class="mt-1 text-xs text-muted-foreground line-clamp-1">{member.bio}</p>
77
+ {/if}
78
+ </div>
79
+ </div>
80
+
81
+ {#if member.twitter || member.linkedin}
82
+ <div class="flex gap-2 flex-shrink-0">
83
+ {#if member.twitter}
84
+ <a href={member.twitter} target="_blank" rel="noopener noreferrer" class="p-2 hover:bg-muted rounded-md transition-colors">
85
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="text-muted-foreground hover:text-foreground">
86
+ <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.744l7.737-8.835L1.254 2.25H8.08l4.253 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z" />
87
+ </svg>
88
+ </a>
89
+ {/if}
90
+
91
+ {#if member.linkedin}
92
+ <a href={member.linkedin} target="_blank" rel="noopener noreferrer" class="p-2 hover:bg-muted rounded-md transition-colors">
93
+ <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor" class="text-muted-foreground hover:text-foreground">
94
+ <path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" />
95
+ <rect x="2" y="9" width="4" height="12" />
96
+ <circle cx="4" cy="4" r="2" />
97
+ </svg>
98
+ </a>
99
+ {/if}
100
+ </div>
101
+ {/if}
102
+ </div>
103
+ {/each}
104
+ </div>
105
+ </div>
106
+ </section>
@@ -0,0 +1,13 @@
1
+ export { default as TeamSection01 } from './TeamSection01.svelte';
2
+ export { default as TeamSection02 } from './TeamSection02.svelte';
3
+ export { default as TeamSection03 } from './TeamSection03.svelte';
4
+ export { default as TeamSection04 } from './TeamSection04.svelte';
5
+
6
+ export interface TeamMember {
7
+ name: string;
8
+ role?: string;
9
+ bio?: string;
10
+ avatarUrl?: string;
11
+ twitter?: string;
12
+ linkedin?: string;
13
+ }