@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,110 @@
1
+ <!--
2
+ StoreNavbar04.svelte
3
+ Navbar with mega menu: standard nav with hover states. Women category shows
4
+ mega menu dropdown panel below nav with 3 cols (New Arrivals / Clothing / Accessories)
5
+ and featured image placeholder on right.
6
+ -->
7
+ <script lang="ts">
8
+ import { cn } from '$lib/utils/cn';
9
+
10
+ interface Props {
11
+ class?: string;
12
+ cartCount?: number;
13
+ }
14
+
15
+ let { class: className = '', cartCount = 4 }: Props = $props();
16
+
17
+ let activeMegaMenu = $state<string | null>(null);
18
+ </script>
19
+
20
+ <nav class={cn('w-full border-b bg-white', className)}>
21
+ <!-- Main navbar -->
22
+ <div class="flex h-14 items-center gap-8 px-6">
23
+ <!-- Logo -->
24
+ <div class="flex items-center">
25
+ <div class="text-lg font-bold">Store</div>
26
+ </div>
27
+
28
+ <!-- Nav links -->
29
+ <div class="flex items-center gap-6">
30
+ <a href="#" class="text-sm font-medium text-gray-700 hover:text-gray-900">Men</a>
31
+
32
+ <div class="relative">
33
+ <button
34
+ type="button"
35
+ onmouseenter={() => (activeMegaMenu = 'women')}
36
+ onmouseleave={() => (activeMegaMenu = null)}
37
+ class="text-sm font-medium text-gray-700 hover:text-gray-900"
38
+ >
39
+ Women
40
+ </button>
41
+ </div>
42
+
43
+ <a href="#" class="text-sm font-medium text-gray-700 hover:text-gray-900">Kids</a>
44
+ <a href="#" class="text-sm font-medium text-gray-700 hover:text-gray-900">New</a>
45
+ <a href="#" class="text-sm font-medium text-gray-700 hover:text-gray-900">Sale</a>
46
+ </div>
47
+
48
+ <!-- Icons right -->
49
+ <div class="ml-auto flex items-center gap-4">
50
+ <button type="button" class="flex h-8 w-8 items-center justify-center rounded-full hover:bg-gray-100">
51
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
52
+ </button>
53
+
54
+ <button type="button" class="relative flex h-8 w-8 items-center justify-center rounded-full hover:bg-gray-100">
55
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>
56
+ {#if cartCount > 0}
57
+ <span class="absolute right-0 top-0 flex h-4 min-w-4 items-center justify-center rounded-full bg-blue-600 px-0.5 text-[10px] font-bold text-white">{cartCount}</span>
58
+ {/if}
59
+ </button>
60
+ </div>
61
+ </div>
62
+
63
+ <!-- Mega menu panel -->
64
+ {#if activeMegaMenu === 'women'}
65
+ <div
66
+ onmouseenter={() => (activeMegaMenu = 'women')}
67
+ onmouseleave={() => (activeMegaMenu = null)}
68
+ class="border-t bg-white px-6 py-8"
69
+ >
70
+ <div class="grid grid-cols-4 gap-8">
71
+ <!-- Column 1: New Arrivals -->
72
+ <div>
73
+ <h3 class="mb-4 text-sm font-semibold text-gray-900">New Arrivals</h3>
74
+ <div class="space-y-2">
75
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Latest Styles</a>
76
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Trending Now</a>
77
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Just In</a>
78
+ </div>
79
+ </div>
80
+
81
+ <!-- Column 2: Clothing -->
82
+ <div>
83
+ <h3 class="mb-4 text-sm font-semibold text-gray-900">Clothing</h3>
84
+ <div class="space-y-2">
85
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Dresses</a>
86
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Tops</a>
87
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Bottoms</a>
88
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Outerwear</a>
89
+ </div>
90
+ </div>
91
+
92
+ <!-- Column 3: Accessories -->
93
+ <div>
94
+ <h3 class="mb-4 text-sm font-semibold text-gray-900">Accessories</h3>
95
+ <div class="space-y-2">
96
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Bags</a>
97
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Shoes</a>
98
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Jewelry</a>
99
+ <a href="#" class="block text-sm text-gray-700 hover:text-gray-900">Scarves</a>
100
+ </div>
101
+ </div>
102
+
103
+ <!-- Column 4: Featured image -->
104
+ <div class="flex items-center justify-center bg-gray-100 rounded-lg h-48">
105
+ <div class="text-center text-gray-500 text-sm">Featured Image</div>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ {/if}
110
+ </nav>
@@ -0,0 +1,80 @@
1
+ <!--
2
+ StoreNavbar05.svelte
3
+ Mobile-first collapsible store navbar: compact nav with logo + hamburger.
4
+ When open: full-width mobile menu with search, nav links, user/cart links.
5
+ Smooth transform animation.
6
+ -->
7
+ <script lang="ts">
8
+ import { cn } from '$lib/utils/cn';
9
+
10
+ interface Props {
11
+ class?: string;
12
+ cartCount?: number;
13
+ }
14
+
15
+ let { class: className = '', cartCount = 2 }: Props = $props();
16
+
17
+ let isOpen = $state(false);
18
+ let searchQuery = $state('');
19
+ </script>
20
+
21
+ <nav class={cn('w-full border-b bg-white', className)}>
22
+ <!-- Header -->
23
+ <div class="flex h-14 items-center justify-between px-4">
24
+ <button type="button" onclick={() => (isOpen = !isOpen)} class="flex h-8 w-8 items-center justify-center rounded-md hover:bg-gray-100">
25
+ {#if isOpen}
26
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6 6 18"/><path d="m6 6 12 12"/></svg>
27
+ {:else}
28
+ <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" x2="20" y1="12" y2="12"/><line x1="4" x2="20" y1="6" y2="6"/><line x1="4" x2="20" y1="18" y2="18"/></svg>
29
+ {/if}
30
+ </button>
31
+
32
+ <div class="text-base font-bold">Store</div>
33
+
34
+ <div class="relative flex h-8 w-8 items-center justify-center rounded-full hover:bg-gray-100">
35
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>
36
+ {#if cartCount > 0}
37
+ <span class="absolute right-0 top-0 flex h-4 min-w-4 items-center justify-center rounded-full bg-blue-600 px-0.5 text-[10px] font-bold text-white">{cartCount}</span>
38
+ {/if}
39
+ </div>
40
+ </div>
41
+
42
+ <!-- Collapsible menu -->
43
+ {#if isOpen}
44
+ <div class="origin-top animate-in fade-in slide-in-from-top-2 border-t bg-white px-4 py-4 duration-300">
45
+ <!-- Search -->
46
+ <div class="mb-4 flex items-center rounded-lg border border-gray-300 bg-gray-50 px-3 py-2">
47
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="text-gray-400"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>
48
+ <input
49
+ type="text"
50
+ bind:value={searchQuery}
51
+ placeholder="Search..."
52
+ class="ml-2 flex-1 border-none bg-transparent text-sm outline-none placeholder:text-gray-500"
53
+ />
54
+ </div>
55
+
56
+ <!-- Nav links -->
57
+ <div class="space-y-1 mb-4">
58
+ <a href="#" class="block rounded-md px-2 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100">Men</a>
59
+ <a href="#" class="block rounded-md px-2 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100">Women</a>
60
+ <a href="#" class="block rounded-md px-2 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100">Kids</a>
61
+ <a href="#" class="block rounded-md px-2 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100">New Arrivals</a>
62
+ <a href="#" class="block rounded-md px-2 py-2 text-sm font-medium text-gray-700 hover:bg-gray-100">Sale</a>
63
+ </div>
64
+
65
+ <hr class="my-3" />
66
+
67
+ <!-- User and cart links -->
68
+ <div class="space-y-1">
69
+ <button type="button" class="flex w-full items-center gap-2 rounded-md px-2 py-2 text-sm text-gray-700 hover:bg-gray-100">
70
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
71
+ Account
72
+ </button>
73
+ <button type="button" class="flex w-full items-center gap-2 rounded-md px-2 py-2 text-sm text-gray-700 hover:bg-gray-100">
74
+ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>
75
+ Wishlist
76
+ </button>
77
+ </div>
78
+ </div>
79
+ {/if}
80
+ </nav>
@@ -0,0 +1,5 @@
1
+ export { default as StoreNavbar01 } from './StoreNavbar01.svelte';
2
+ export { default as StoreNavbar02 } from './StoreNavbar02.svelte';
3
+ export { default as StoreNavbar03 } from './StoreNavbar03.svelte';
4
+ export { default as StoreNavbar04 } from './StoreNavbar04.svelte';
5
+ export { default as StoreNavbar05 } from './StoreNavbar05.svelte';
@@ -0,0 +1,96 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ title?: string;
8
+ description?: string;
9
+ searchPlaceholder?: string;
10
+ newLabel?: string;
11
+ onNew?: () => void;
12
+ onFilter?: () => void;
13
+ }
14
+
15
+ const {
16
+ class: className,
17
+ title = 'Table name',
18
+ description = 'Read and write directly to databases and stores from your projects.',
19
+ searchPlaceholder = 'Search...',
20
+ newLabel = 'New',
21
+ onNew,
22
+ onFilter
23
+ }: Props = $props();
24
+
25
+ let searchQuery = $state('');
26
+
27
+ // SVG Icons
28
+ const SearchIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>`;
29
+
30
+ const FilterIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6h18M7 12h10M11 18h2"></path></svg>`;
31
+
32
+ const PlusIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>`;
33
+ </script>
34
+
35
+ <div class={cn('flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between', className)}>
36
+ <!-- Left: Title and Description -->
37
+ <div class="flex-1">
38
+ <h2 class="font-semibold">{title}</h2>
39
+ <p class="text-sm text-muted-foreground">{description}</p>
40
+ </div>
41
+
42
+ <!-- Right: Search, Filter, New (Desktop) -->
43
+ <div class="hidden sm:flex items-center gap-2">
44
+ <!-- Search Input -->
45
+ <div class="relative">
46
+ <div class="absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground">
47
+ {@html SearchIcon}
48
+ </div>
49
+ <input
50
+ type="text"
51
+ placeholder={searchPlaceholder}
52
+ bind:value={searchQuery}
53
+ class="pl-8 pr-3 py-2 border rounded-md bg-background text-sm w-64"
54
+ />
55
+ </div>
56
+
57
+ <!-- Filter Button -->
58
+ <Button variant="outline" size="sm" onclick={onFilter}>
59
+ <span class="mr-1">{@html FilterIcon}</span>
60
+ Filters
61
+ </Button>
62
+
63
+ <!-- New Button -->
64
+ <Button onclick={onNew}>
65
+ <span class="mr-1">{@html PlusIcon}</span>
66
+ {newLabel}
67
+ </Button>
68
+ </div>
69
+
70
+ <!-- Mobile Layout -->
71
+ <div class="sm:hidden space-y-2 w-full">
72
+ <!-- New and Filter buttons row -->
73
+ <div class="flex gap-2">
74
+ <Button onclick={onNew} class="flex-1">
75
+ <span class="mr-1">{@html PlusIcon}</span>
76
+ {newLabel}
77
+ </Button>
78
+ <Button variant="outline" onclick={onFilter}>
79
+ <span>{@html FilterIcon}</span>
80
+ </Button>
81
+ </div>
82
+
83
+ <!-- Search Input -->
84
+ <div class="relative w-full">
85
+ <div class="absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground">
86
+ {@html SearchIcon}
87
+ </div>
88
+ <input
89
+ type="text"
90
+ placeholder={searchPlaceholder}
91
+ bind:value={searchQuery}
92
+ class="w-full pl-8 pr-3 py-2 border rounded-md bg-background text-sm"
93
+ />
94
+ </div>
95
+ </div>
96
+ </div>
@@ -0,0 +1,86 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ title?: string;
8
+ description?: string;
9
+ dateRange?: string;
10
+ newLabel?: string;
11
+ onNew?: () => void;
12
+ onFilter?: () => void;
13
+ onDateRangeClick?: () => void;
14
+ }
15
+
16
+ const {
17
+ class: className,
18
+ title = 'Table name',
19
+ description = 'Read and write directly to databases and stores from your projects.',
20
+ dateRange = 'Jan 20, 2022 – Feb 09, 2022',
21
+ newLabel = 'New',
22
+ onNew,
23
+ onFilter,
24
+ onDateRangeClick
25
+ }: Props = $props();
26
+
27
+ // SVG Icons
28
+ const CalendarIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>`;
29
+
30
+ const FilterIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 6h18M7 12h10M11 18h2"></path></svg>`;
31
+
32
+ const PlusIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>`;
33
+ </script>
34
+
35
+ <div class={cn('flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between', className)}>
36
+ <!-- Left: Title and Description -->
37
+ <div class="flex-1">
38
+ <h2 class="font-semibold">{title}</h2>
39
+ <p class="text-sm text-muted-foreground">{description}</p>
40
+ </div>
41
+
42
+ <!-- Right: Date Range, Filter, New (Desktop) -->
43
+ <div class="hidden sm:flex items-center gap-2">
44
+ <!-- Date Range Button -->
45
+ <Button variant="outline" size="sm" onclick={onDateRangeClick} class="flex items-center gap-2">
46
+ <span>{@html CalendarIcon}</span>
47
+ {dateRange}
48
+ </Button>
49
+
50
+ <!-- Filter Button -->
51
+ <Button variant="outline" size="sm" onclick={onFilter}>
52
+ <span class="mr-1">{@html FilterIcon}</span>
53
+ Filters
54
+ </Button>
55
+
56
+ <!-- New Button -->
57
+ <Button onclick={onNew}>
58
+ <span class="mr-1">{@html PlusIcon}</span>
59
+ {newLabel}
60
+ </Button>
61
+ </div>
62
+
63
+ <!-- Mobile Layout -->
64
+ <div class="sm:hidden space-y-2 w-full">
65
+ <!-- New and Filters buttons row -->
66
+ <div class="flex gap-2">
67
+ <Button onclick={onNew} class="flex-1">
68
+ <span class="mr-1">{@html PlusIcon}</span>
69
+ {newLabel}
70
+ </Button>
71
+ <Button variant="outline" onclick={onFilter}>
72
+ <span>{@html FilterIcon}</span>
73
+ </Button>
74
+ </div>
75
+
76
+ <!-- Date Range Button -->
77
+ <Button
78
+ variant="outline"
79
+ onclick={onDateRangeClick}
80
+ class="w-full flex items-center justify-center gap-2"
81
+ >
82
+ <span>{@html CalendarIcon}</span>
83
+ {dateRange}
84
+ </Button>
85
+ </div>
86
+ </div>
@@ -0,0 +1,99 @@
1
+ <script lang="ts">
2
+ import { cn } from '$lib/utils/cn';
3
+ import { Button } from '$lib/components/ui';
4
+
5
+ interface Props {
6
+ class?: string;
7
+ title?: string;
8
+ description?: string;
9
+ searchPlaceholder?: string;
10
+ newLabel?: string;
11
+ exportLabel?: string;
12
+ onNew?: () => void;
13
+ onExport?: () => void;
14
+ }
15
+
16
+ const {
17
+ class: className,
18
+ title = 'Table name',
19
+ description = 'Read and write directly to databases and stores from your projects.',
20
+ searchPlaceholder = 'Search...',
21
+ newLabel = 'New',
22
+ exportLabel = 'Export',
23
+ onNew,
24
+ onExport
25
+ }: Props = $props();
26
+
27
+ let searchQuery = $state('');
28
+
29
+ // SVG Icons
30
+ const SearchIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>`;
31
+
32
+ const ExportIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>`;
33
+
34
+ const PlusIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>`;
35
+ </script>
36
+
37
+ <div class={cn('flex flex-col gap-4', className)}>
38
+ <!-- Row 1: Title + Description LEFT, Export + New RIGHT -->
39
+ <div class="flex items-start justify-between">
40
+ <div class="flex-1">
41
+ <h2 class="font-semibold">{title}</h2>
42
+ <p class="text-sm text-muted-foreground">{description}</p>
43
+ </div>
44
+
45
+ <!-- Desktop: Right side buttons -->
46
+ <div class="hidden sm:flex items-center gap-2">
47
+ <Button variant="outline" size="sm" onclick={onExport}>
48
+ <span class="mr-1">{@html ExportIcon}</span>
49
+ {exportLabel}
50
+ </Button>
51
+ <Button onclick={onNew}>
52
+ <span class="mr-1">{@html PlusIcon}</span>
53
+ {newLabel}
54
+ </Button>
55
+ </div>
56
+ </div>
57
+
58
+ <!-- Row 2: Search LEFT (Desktop) -->
59
+ <div class="hidden sm:flex items-center gap-2">
60
+ <div class="relative w-64">
61
+ <div class="absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground">
62
+ {@html SearchIcon}
63
+ </div>
64
+ <input
65
+ type="text"
66
+ placeholder={searchPlaceholder}
67
+ bind:value={searchQuery}
68
+ class="w-full pl-8 pr-3 py-2 border rounded-md bg-background text-sm"
69
+ />
70
+ </div>
71
+ </div>
72
+
73
+ <!-- Mobile Layout -->
74
+ <div class="sm:hidden space-y-2 w-full">
75
+ <!-- New + Export buttons -->
76
+ <div class="flex gap-2">
77
+ <Button onclick={onNew} class="flex-1">
78
+ <span class="mr-1">{@html PlusIcon}</span>
79
+ {newLabel}
80
+ </Button>
81
+ <Button variant="outline" onclick={onExport}>
82
+ <span>{@html ExportIcon}</span>
83
+ </Button>
84
+ </div>
85
+
86
+ <!-- Search Input -->
87
+ <div class="relative w-full">
88
+ <div class="absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground">
89
+ {@html SearchIcon}
90
+ </div>
91
+ <input
92
+ type="text"
93
+ placeholder={searchPlaceholder}
94
+ bind:value={searchQuery}
95
+ class="w-full pl-8 pr-3 py-2 border rounded-md bg-background text-sm"
96
+ />
97
+ </div>
98
+ </div>
99
+ </div>
@@ -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 Props {
6
+ class?: string;
7
+ title?: string;
8
+ description?: string;
9
+ tabs?: string[];
10
+ onTabChange?: (tab: string) => void;
11
+ onExport?: () => void;
12
+ }
13
+
14
+ const {
15
+ class: className,
16
+ title = 'Table name',
17
+ description = 'Read and write directly to databases and stores from your projects.',
18
+ tabs = ['All', 'Sent', 'Paid', 'Unpaid'],
19
+ onTabChange,
20
+ onExport
21
+ }: Props = $props();
22
+
23
+ let activeTab = $state(tabs[0]);
24
+ let searchQuery = $state('');
25
+
26
+ function handleTabChange(tab: string) {
27
+ activeTab = tab;
28
+ onTabChange?.(tab);
29
+ }
30
+
31
+ // SVG Icons
32
+ const SearchIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><path d="m21 21-4.35-4.35"></path></svg>`;
33
+
34
+ const ExportIcon = `<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>`;
35
+ </script>
36
+
37
+ <div class={cn('flex flex-col gap-4', className)}>
38
+ <!-- Row 1: Title + Description -->
39
+ <div>
40
+ <h2 class="font-semibold">{title}</h2>
41
+ <p class="text-sm text-muted-foreground">{description}</p>
42
+ </div>
43
+
44
+ <!-- Row 2: Tab filters LEFT, Search + Export RIGHT (Desktop) -->
45
+ <div class="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between">
46
+ <!-- Tabs -->
47
+ <div class="flex gap-1 overflow-x-auto pb-2 sm:pb-0">
48
+ {#each tabs as tab}
49
+ <button
50
+ class={cn(
51
+ 'px-3 py-1 rounded-full text-sm whitespace-nowrap transition-colors',
52
+ activeTab === tab
53
+ ? 'bg-foreground text-background'
54
+ : 'text-muted-foreground hover:text-foreground'
55
+ )}
56
+ onclick={() => handleTabChange(tab)}
57
+ >
58
+ {tab}
59
+ </button>
60
+ {/each}
61
+ </div>
62
+
63
+ <!-- Desktop: Search + Export -->
64
+ <div class="hidden sm:flex items-center gap-2">
65
+ <!-- Search Input -->
66
+ <div class="relative w-56">
67
+ <div class="absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground">
68
+ {@html SearchIcon}
69
+ </div>
70
+ <input
71
+ type="text"
72
+ placeholder="Search..."
73
+ bind:value={searchQuery}
74
+ class="w-full pl-8 pr-3 py-2 border rounded-md bg-background text-sm"
75
+ />
76
+ </div>
77
+
78
+ <!-- Export Button -->
79
+ <Button variant="outline" size="sm" onclick={onExport}>
80
+ <span class="mr-1">{@html ExportIcon}</span>
81
+ Export
82
+ </Button>
83
+ </div>
84
+ </div>
85
+
86
+ <!-- Mobile: Search + Export below tabs -->
87
+ <div class="sm:hidden flex flex-col gap-2">
88
+ <!-- Search Input -->
89
+ <div class="relative w-full">
90
+ <div class="absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground">
91
+ {@html SearchIcon}
92
+ </div>
93
+ <input
94
+ type="text"
95
+ placeholder="Search..."
96
+ bind:value={searchQuery}
97
+ class="w-full pl-8 pr-3 py-2 border rounded-md bg-background text-sm"
98
+ />
99
+ </div>
100
+
101
+ <!-- Export Button -->
102
+ <Button variant="outline" size="sm" onclick={onExport} class="w-full justify-center">
103
+ <span class="mr-1">{@html ExportIcon}</span>
104
+ Export
105
+ </Button>
106
+ </div>
107
+ </div>
@@ -0,0 +1,4 @@
1
+ export { default as TableHeader01 } from './TableHeader01.svelte';
2
+ export { default as TableHeader02 } from './TableHeader02.svelte';
3
+ export { default as TableHeader03 } from './TableHeader03.svelte';
4
+ export { default as TableHeader04 } from './TableHeader04.svelte';