@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,159 @@
1
+ <!--
2
+ SidebarLayout12.svelte
3
+ Calendar app sidebar: user header, mini calendar, calendar lists with checkboxes.
4
+ -->
5
+ <script lang="ts">
6
+ import type { Snippet } from 'svelte';
7
+ import { cn } from '$lib/utils/cn';
8
+ import { Checkbox } from '$lib/components/ui';
9
+
10
+ type CalendarList = {
11
+ label: string;
12
+ items: Array<{ label: string; checked: boolean; color?: string }>;
13
+ collapsible?: boolean;
14
+ };
15
+
16
+ let {
17
+ class: className = '',
18
+ user = { name: 'shadcn', email: 'm@example.com' },
19
+ calendarLists = [],
20
+ contentTitle = '',
21
+ children
22
+ }: {
23
+ class?: string;
24
+ user?: { name: string; email: string };
25
+ calendarLists?: CalendarList[];
26
+ contentTitle?: string;
27
+ children?: Snippet;
28
+ } = $props();
29
+
30
+ const today = new Date();
31
+ let viewYear = $state(today.getFullYear());
32
+ let viewMonth = $state(today.getMonth());
33
+
34
+ const DAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];
35
+ const MONTHS = ['January','February','March','April','May','June','July','August','September','October','November','December'];
36
+ const MONTHS_SHORT = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
37
+
38
+ function getDaysInMonth(y: number, m: number) { return new Date(y, m + 1, 0).getDate(); }
39
+ function getFirstDay(y: number, m: number) { return new Date(y, m, 1).getDay(); }
40
+
41
+ function getCalDays(y: number, m: number) {
42
+ const dim = getDaysInMonth(y, m);
43
+ const fd = getFirstDay(y, m);
44
+ const prev = getDaysInMonth(y, m - 1);
45
+ const days: Array<{ day: number; cur: boolean }> = [];
46
+ for (let i = fd - 1; i >= 0; i--) days.push({ day: prev - i, cur: false });
47
+ for (let i = 1; i <= dim; i++) days.push({ day: i, cur: true });
48
+ while (days.length < 42) days.push({ day: days.length - dim - fd + 2, cur: false });
49
+ return days;
50
+ }
51
+
52
+ let calDays = $derived(getCalDays(viewYear, viewMonth));
53
+ let selectedDay = $state(today.getDate());
54
+
55
+ function prev() { if (viewMonth === 0) { viewMonth = 11; viewYear--; } else viewMonth--; }
56
+ function next() { if (viewMonth === 11) { viewMonth = 0; viewYear++; } else viewMonth++; }
57
+
58
+ let openSections = $state<Set<string>>(new Set(calendarLists.map(l => l.label)));
59
+
60
+ function toggleSection(label: string) {
61
+ openSections = openSections.has(label)
62
+ ? new Set([...openSections].filter(s => s !== label))
63
+ : new Set([...openSections, label]);
64
+ }
65
+ </script>
66
+
67
+ <div class={cn('flex h-screen', className)}>
68
+ <aside class="flex w-64 flex-col border-r bg-background">
69
+ <!-- User header -->
70
+ <div class="flex items-center justify-between border-b px-4 py-3">
71
+ <div class="flex items-center gap-2">
72
+ <div class="flex h-8 w-8 items-center justify-center rounded-full bg-muted text-xs font-medium">
73
+ {user.name.slice(0, 2).toUpperCase()}
74
+ </div>
75
+ <div>
76
+ <p class="text-sm font-medium">{user.name}</p>
77
+ <p class="text-xs text-muted-foreground">{user.email}</p>
78
+ </div>
79
+ </div>
80
+ <button type="button" class="text-muted-foreground hover:text-foreground">
81
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/></svg>
82
+ </button>
83
+ </div>
84
+
85
+ <!-- Mini calendar -->
86
+ <div class="border-b p-3">
87
+ <div class="mb-2 flex items-center justify-between">
88
+ <button type="button" onclick={prev} class="rounded p-1 hover:bg-muted">
89
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"/></svg>
90
+ </button>
91
+ <span class="text-sm font-medium">{MONTHS_SHORT[viewMonth]} {viewYear}</span>
92
+ <button type="button" onclick={next} class="rounded p-1 hover:bg-muted">
93
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m9 18 6-6-6-6"/></svg>
94
+ </button>
95
+ </div>
96
+ <div class="grid grid-cols-7">
97
+ {#each DAYS as d}
98
+ <div class="flex h-7 w-7 items-center justify-center text-xs font-medium text-muted-foreground">{d}</div>
99
+ {/each}
100
+ {#each calDays as { day, cur }}
101
+ <button
102
+ type="button"
103
+ class={cn(
104
+ 'flex h-7 w-7 items-center justify-center rounded-full text-xs transition-colors',
105
+ !cur && 'text-muted-foreground/40',
106
+ cur && 'hover:bg-muted',
107
+ cur && day === selectedDay && viewYear === today.getFullYear() && viewMonth === today.getMonth() && 'bg-primary text-primary-foreground hover:bg-primary'
108
+ )}
109
+ onclick={() => cur && (selectedDay = day)}
110
+ >{day}</button>
111
+ {/each}
112
+ </div>
113
+ </div>
114
+
115
+ <!-- Calendar lists -->
116
+ <nav class="flex-1 overflow-y-auto px-3 py-2">
117
+ {#each calendarLists as list}
118
+ <div class="mb-3">
119
+ <button
120
+ type="button"
121
+ class="mb-1 flex w-full items-center justify-between rounded px-1 py-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground hover:text-foreground"
122
+ onclick={() => toggleSection(list.label)}
123
+ >
124
+ {list.label}
125
+ <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class={cn('transition-transform', !openSections.has(list.label) && '-rotate-90')}><path d="m6 9 6 6 6-6"/></svg>
126
+ </button>
127
+ {#if openSections.has(list.label)}
128
+ <ul class="space-y-1">
129
+ {#each list.items as item}
130
+ <li class="flex items-center gap-2 px-1">
131
+ <Checkbox checked={item.checked} />
132
+ <span class="text-sm">{item.label}</span>
133
+ </li>
134
+ {/each}
135
+ </ul>
136
+ {/if}
137
+ </div>
138
+ {/each}
139
+ </nav>
140
+
141
+ <!-- New Calendar -->
142
+ <div class="border-t px-4 py-3">
143
+ <button type="button" class="flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground">
144
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="M12 5v14"/></svg>
145
+ New Calendar
146
+ </button>
147
+ </div>
148
+ </aside>
149
+
150
+ <!-- Main content -->
151
+ <main class="flex flex-1 flex-col overflow-hidden">
152
+ {#if contentTitle}
153
+ <div class="border-b px-6 py-4">
154
+ <h1 class="text-xl font-semibold">{contentTitle}</h1>
155
+ </div>
156
+ {/if}
157
+ <div class="flex-1 overflow-y-auto p-6">{@render children?.()}</div>
158
+ </main>
159
+ </div>
@@ -0,0 +1,103 @@
1
+ <!--
2
+ SidebarLayout13.svelte
3
+ Settings modal/dialog: left nav list, right content panel, close button, breadcrumb.
4
+ -->
5
+ <script lang="ts">
6
+ import { cn } from '$lib/utils/cn';
7
+
8
+ type SettingsItem = { label: string; href?: string; icon?: string; active?: boolean };
9
+
10
+ let {
11
+ class: className = '',
12
+ items = [],
13
+ title = 'Settings',
14
+ onclose
15
+ }: {
16
+ class?: string;
17
+ items?: SettingsItem[];
18
+ title?: string;
19
+ onclose?: () => void;
20
+ } = $props();
21
+
22
+ // Lucide-style icon paths for common settings items
23
+ const ICONS: Record<string, string> = {
24
+ notifications: 'M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9 M13.73 21a2 2 0 0 1-3.46 0',
25
+ navigation: 'M3 12h18 M3 6h18 M3 18h18',
26
+ home: 'M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z',
27
+ appearance: 'M12 2a5 5 0 1 0 0 10A5 5 0 0 0 12 2z M12 12a7 7 0 1 0 0 14A7 7 0 0 0 12 12z',
28
+ messages: 'M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z',
29
+ language: 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20z M2 12h20 M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z',
30
+ accessibility: 'M12 2a2 2 0 1 0 0 4 2 2 0 0 0 0-4z M12 8l-4 1 M12 8l4 1 M8 9l-2 8 M16 9l2 8 M10 17l2 5 M14 17l-2 5',
31
+ read: 'M20 6 9 17l-5-5',
32
+ audio: 'M11 5 6 9H2v6h4l5 4V5z M15.54 8.46a5 5 0 0 1 0 7.07',
33
+ accounts: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2 M9 7a4 4 0 1 0 8 0 4 4 0 0 0-8 0 M22 21v-2a4 4 0 0 0-3-3.87 M16 3.13a4 4 0 0 1 0 7.75',
34
+ privacy: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',
35
+ advanced: 'M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z',
36
+ };
37
+
38
+ const activeItem = $derived(items.find(i => i.active)?.label ?? items[0]?.label ?? '');
39
+
40
+ function iconPath(item: SettingsItem): string {
41
+ if (!item.icon) return '';
42
+ return ICONS[item.icon] ?? ICONS['advanced'];
43
+ }
44
+ </script>
45
+
46
+ <!-- Modal overlay -->
47
+ <div class={cn('fixed inset-0 z-50 flex items-center justify-center bg-black/50', className)}>
48
+ <div class="relative flex h-[600px] w-[900px] max-w-[95vw] overflow-hidden rounded-xl border bg-background shadow-xl">
49
+ <!-- Left nav -->
50
+ <nav class="flex w-56 flex-col border-r bg-muted/30">
51
+ <div class="border-b px-4 py-4">
52
+ <h2 class="font-semibold">{title}</h2>
53
+ </div>
54
+ <ul class="flex-1 overflow-y-auto px-2 py-3 space-y-0.5">
55
+ {#each items as item}
56
+ <li>
57
+ <a
58
+ href={item.href ?? '#'}
59
+ class={cn(
60
+ 'flex items-center gap-3 rounded-md px-3 py-2 text-sm transition-colors',
61
+ item.active || item.label === activeItem
62
+ ? 'bg-muted font-medium text-foreground'
63
+ : 'text-muted-foreground hover:bg-muted hover:text-foreground'
64
+ )}
65
+ >
66
+ {#if item.icon}
67
+ <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="shrink-0">
68
+ <path d={iconPath(item)} />
69
+ </svg>
70
+ {/if}
71
+ {item.label}
72
+ </a>
73
+ </li>
74
+ {/each}
75
+ </ul>
76
+ </nav>
77
+
78
+ <!-- Right content -->
79
+ <div class="flex flex-1 flex-col overflow-hidden">
80
+ <!-- Content header -->
81
+ <div class="flex items-center justify-between border-b px-6 py-4">
82
+ <div class="flex items-center gap-2 text-sm text-muted-foreground">
83
+ <span>{title}</span>
84
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m9 18 6-6-6-6"/></svg>
85
+ <span class="font-medium text-foreground">{activeItem}</span>
86
+ </div>
87
+ <button
88
+ type="button"
89
+ class="rounded-md p-1 text-muted-foreground hover:bg-muted hover:text-foreground"
90
+ onclick={onclose}
91
+ aria-label="Close settings"
92
+ >
93
+ <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="M18 6 6 18"/><path d="m6 6 12 12"/></svg>
94
+ </button>
95
+ </div>
96
+
97
+ <!-- Slot content -->
98
+ <div class="flex-1 overflow-y-auto p-6">
99
+ <slot />
100
+ </div>
101
+ </div>
102
+ </div>
103
+ </div>
@@ -0,0 +1,87 @@
1
+ <!--
2
+ SidebarLayout14.svelte
3
+ Right-side table of contents: main content left, sticky TOC panel on right.
4
+ -->
5
+ <script lang="ts">
6
+ import type { Snippet } from 'svelte';
7
+ import { cn } from '$lib/utils/cn';
8
+ import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbSeparator } from '$lib/components/ui';
9
+
10
+ type TocEntry = { label: string; href: string; level?: number; active?: boolean };
11
+ type TocSection = { title: string; items: TocEntry[] };
12
+
13
+ let {
14
+ class: className = '',
15
+ tocSections = [],
16
+ breadcrumbs = [],
17
+ showPanelToggle = true,
18
+ children
19
+ }: {
20
+ class?: string;
21
+ tocSections?: TocSection[];
22
+ breadcrumbs?: Array<{ label: string; href?: string }>;
23
+ showPanelToggle?: boolean;
24
+ children?: Snippet;
25
+ } = $props();
26
+ </script>
27
+
28
+ <div class={cn('flex h-screen', className)}>
29
+ <!-- Main content -->
30
+ <main class="flex flex-1 flex-col overflow-hidden">
31
+ {#if breadcrumbs.length > 0}
32
+ <div class="flex items-center gap-2 border-b px-6 py-3">
33
+ {#if showPanelToggle}
34
+ <button type="button" class="text-muted-foreground hover:text-foreground">
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"><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M9 3v18"/></svg>
36
+ </button>
37
+ {/if}
38
+ <Breadcrumb>
39
+ {#each breadcrumbs as crumb, i}
40
+ <BreadcrumbItem>
41
+ {#if crumb.href}<BreadcrumbLink href={crumb.href}>{crumb.label}</BreadcrumbLink>
42
+ {:else}<span class="text-sm text-foreground">{crumb.label}</span>
43
+ {/if}
44
+ </BreadcrumbItem>
45
+ {#if i < breadcrumbs.length - 1}<BreadcrumbSeparator />{/if}
46
+ {/each}
47
+ </Breadcrumb>
48
+ <!-- Right-side panel toggle -->
49
+ {#if showPanelToggle}
50
+ <div class="ml-auto">
51
+ <button type="button" class="text-muted-foreground hover:text-foreground">
52
+ <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 width="18" height="18" x="3" y="3" rx="2"/><path d="M15 3v18"/></svg>
53
+ </button>
54
+ </div>
55
+ {/if}
56
+ </div>
57
+ {/if}
58
+ <div class="flex-1 overflow-y-auto p-6">{@render children?.()}</div>
59
+ </main>
60
+
61
+ <!-- Right TOC panel -->
62
+ <aside class="flex w-56 flex-col border-l bg-background">
63
+ <div class="overflow-y-auto px-4 py-4">
64
+ {#each tocSections as section}
65
+ <div class="mb-4">
66
+ <p class="mb-2 text-xs font-semibold text-foreground">{section.title}</p>
67
+ <ul class="space-y-1">
68
+ {#each section.items as item}
69
+ <li>
70
+ <a
71
+ href={item.href}
72
+ class={cn(
73
+ 'block text-sm transition-colors leading-snug',
74
+ item.level && item.level > 1 ? 'pl-3' : '',
75
+ item.active
76
+ ? 'font-medium text-foreground'
77
+ : 'text-muted-foreground hover:text-foreground'
78
+ )}
79
+ >{item.label}</a>
80
+ </li>
81
+ {/each}
82
+ </ul>
83
+ </div>
84
+ {/each}
85
+ </div>
86
+ </aside>
87
+ </div>
@@ -0,0 +1,228 @@
1
+ <!--
2
+ SidebarLayout15.svelte
3
+ Notion workspace with left sidebar + right calendar panel (mini cal + calendar lists).
4
+ -->
5
+ <script lang="ts">
6
+ import type { Snippet } from 'svelte';
7
+ import { cn } from '$lib/utils/cn';
8
+ import { Checkbox } from '$lib/components/ui';
9
+
10
+ type PageItem = { label: string; href: string; icon?: string; active?: boolean };
11
+ type PageGroup = { title: string; items: PageItem[]; showMore?: boolean };
12
+ type CalList = { label: string; items: Array<{ label: string; checked: boolean }> };
13
+
14
+ let {
15
+ class: className = '',
16
+ workspace = 'Acme Inc',
17
+ quickLinks = [],
18
+ groups = [],
19
+ footerLinks = [],
20
+ calendarLists = [],
21
+ breadcrumbs = [],
22
+ children
23
+ }: {
24
+ class?: string;
25
+ workspace?: string;
26
+ quickLinks?: Array<{ label: string; href: string }>;
27
+ groups?: PageGroup[];
28
+ footerLinks?: Array<{ label: string; href: string }>;
29
+ calendarLists?: CalList[];
30
+ breadcrumbs?: Array<{ label: string; href?: string }>;
31
+ children?: Snippet;
32
+ } = $props();
33
+
34
+ // Mini calendar
35
+ const today = new Date();
36
+ let viewYear = $state(today.getFullYear());
37
+ let viewMonth = $state(today.getMonth());
38
+ const DAYS = ['Su','Mo','Tu','We','Th','Fr','Sa'];
39
+ const MONTHS_SHORT = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
40
+
41
+ function getDim(y: number, m: number) { return new Date(y, m + 1, 0).getDate(); }
42
+ function getCalDays(y: number, m: number) {
43
+ const dim = getDim(y, m);
44
+ const fd = new Date(y, m, 1).getDay();
45
+ const prev = getDim(y, m - 1);
46
+ const days: Array<{ day: number; cur: boolean }> = [];
47
+ for (let i = fd - 1; i >= 0; i--) days.push({ day: prev - i, cur: false });
48
+ for (let i = 1; i <= dim; i++) days.push({ day: i, cur: true });
49
+ while (days.length < 42) days.push({ day: days.length - dim - fd + 2, cur: false });
50
+ return days;
51
+ }
52
+ let calDays = $derived(getCalDays(viewYear, viewMonth));
53
+ let selectedDay = $state(today.getDate());
54
+ function prev() { if (viewMonth === 0) { viewMonth = 11; viewYear--; } else viewMonth--; }
55
+ function next() { if (viewMonth === 11) { viewMonth = 0; viewYear++; } else viewMonth++; }
56
+
57
+ let openSections = $state<Set<string>>(new Set(calendarLists.map(l => l.label)));
58
+ function toggleSection(label: string) {
59
+ openSections = openSections.has(label)
60
+ ? new Set([...openSections].filter(s => s !== label))
61
+ : new Set([...openSections, label]);
62
+ }
63
+
64
+ // User (placeholder)
65
+ const user = { name: 'shadcn', email: 'm@example.com' };
66
+ </script>
67
+
68
+ <div class={cn('flex h-screen', className)}>
69
+ <!-- Left workspace sidebar -->
70
+ <aside class="flex w-60 flex-col border-r bg-background">
71
+ <div class="flex items-center justify-between border-b px-3 py-3">
72
+ <button type="button" class="flex items-center gap-2 rounded-md px-2 py-1 text-sm font-semibold hover:bg-muted">
73
+ <div class="flex h-5 w-5 items-center justify-center rounded bg-primary text-xs font-bold text-primary-foreground">{workspace.slice(0,1)}</div>
74
+ {workspace}
75
+ <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></svg>
76
+ </button>
77
+ </div>
78
+
79
+ {#if quickLinks.length > 0}
80
+ <nav class="border-b px-2 py-2">
81
+ <ul class="space-y-0.5">
82
+ {#each quickLinks as link}
83
+ <li>
84
+ <a href={link.href} class="flex items-center gap-2 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground">
85
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/></svg>
86
+ {link.label}
87
+ </a>
88
+ </li>
89
+ {/each}
90
+ </ul>
91
+ </nav>
92
+ {/if}
93
+
94
+ <div class="flex-1 overflow-y-auto px-2 py-2">
95
+ {#each groups as group}
96
+ <div class="mb-3">
97
+ <p class="mb-1 px-2 text-xs font-semibold text-muted-foreground">{group.title}</p>
98
+ <ul class="space-y-0.5">
99
+ {#each group.items as item}
100
+ <li>
101
+ <a href={item.href} class={cn('flex items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors', item.active ? 'bg-muted font-medium text-foreground' : 'text-muted-foreground hover:bg-muted hover:text-foreground')}>
102
+ {#if item.icon}<span class="text-base leading-none">{item.icon}</span>
103
+ {:else}<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3"/></svg>
104
+ {/if}
105
+ <span class="flex-1 truncate">{item.label}</span>
106
+ <button type="button" class="text-muted-foreground hover:text-foreground opacity-0 group-hover:opacity-100" onclick={(e) => e.preventDefault()}>
107
+ <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg>
108
+ </button>
109
+ </a>
110
+ </li>
111
+ {/each}
112
+ {#if group.showMore}
113
+ <li>
114
+ <button type="button" class="flex items-center gap-2 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground">
115
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></svg>
116
+ More
117
+ </button>
118
+ </li>
119
+ {/if}
120
+ </ul>
121
+ </div>
122
+ {/each}
123
+ </div>
124
+
125
+ {#if footerLinks.length > 0}
126
+ <nav class="border-t px-2 py-2">
127
+ <ul class="space-y-0.5">
128
+ {#each footerLinks as link}
129
+ <li>
130
+ <a href={link.href} class="flex items-center gap-2 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground">
131
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/></svg>
132
+ {link.label}
133
+ </a>
134
+ </li>
135
+ {/each}
136
+ </ul>
137
+ </nav>
138
+ {/if}
139
+ </aside>
140
+
141
+ <!-- Main content -->
142
+ <main class="flex flex-1 flex-col overflow-hidden">
143
+ {#if breadcrumbs.length > 0}
144
+ <div class="flex items-center gap-2 border-b px-6 py-3">
145
+ {#each breadcrumbs as crumb, i}
146
+ {#if i > 0}<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m9 18 6-6-6-6"/></svg>{/if}
147
+ <a href={crumb.href ?? '#'} class={cn('text-sm', i === breadcrumbs.length - 1 ? 'font-medium text-foreground' : 'text-muted-foreground hover:text-foreground')}>{crumb.label}</a>
148
+ {/each}
149
+ </div>
150
+ {/if}
151
+ <div class="flex-1 overflow-y-auto p-6">{@render children?.()}</div>
152
+ </main>
153
+
154
+ <!-- Right calendar panel -->
155
+ <aside class="flex w-64 flex-col border-l bg-background">
156
+ <!-- User header -->
157
+ <div class="flex items-center justify-between border-b px-4 py-3">
158
+ <div class="flex items-center gap-2">
159
+ <div class="flex h-8 w-8 items-center justify-center rounded-full bg-muted text-xs font-medium">{user.name.slice(0,2).toUpperCase()}</div>
160
+ <div>
161
+ <p class="text-sm font-medium">{user.name}</p>
162
+ <p class="text-xs text-muted-foreground">{user.email}</p>
163
+ </div>
164
+ </div>
165
+ <button type="button" class="text-muted-foreground hover:text-foreground">
166
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m7 15 5 5 5-5"/><path d="m7 9 5-5 5 5"/></svg>
167
+ </button>
168
+ </div>
169
+
170
+ <!-- Mini calendar -->
171
+ <div class="border-b p-3">
172
+ <div class="mb-2 flex items-center justify-between">
173
+ <button type="button" onclick={prev} class="rounded p-1 hover:bg-muted">
174
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6"/></svg>
175
+ </button>
176
+ <span class="text-sm font-medium">{MONTHS_SHORT[viewMonth]} {viewYear}</span>
177
+ <button type="button" onclick={next} class="rounded p-1 hover:bg-muted">
178
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m9 18 6-6-6-6"/></svg>
179
+ </button>
180
+ </div>
181
+ <div class="grid grid-cols-7">
182
+ {#each DAYS as d}
183
+ <div class="flex h-7 w-7 items-center justify-center text-xs font-medium text-muted-foreground">{d}</div>
184
+ {/each}
185
+ {#each calDays as { day, cur }}
186
+ <button
187
+ type="button"
188
+ class={cn('flex h-7 w-7 items-center justify-center rounded-full text-xs transition-colors',
189
+ !cur && 'text-muted-foreground/40',
190
+ cur && 'hover:bg-muted',
191
+ cur && day === selectedDay && 'bg-primary text-primary-foreground hover:bg-primary'
192
+ )}
193
+ onclick={() => cur && (selectedDay = day)}
194
+ >{day}</button>
195
+ {/each}
196
+ </div>
197
+ </div>
198
+
199
+ <!-- Calendar lists -->
200
+ <nav class="flex-1 overflow-y-auto px-3 py-2">
201
+ {#each calendarLists as list}
202
+ <div class="mb-3">
203
+ <button type="button" class="mb-1 flex w-full items-center justify-between rounded px-1 py-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground hover:text-foreground" onclick={() => toggleSection(list.label)}>
204
+ {list.label}
205
+ <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class={cn('transition-transform', !openSections.has(list.label) && '-rotate-90')}><path d="m6 9 6 6 6-6"/></svg>
206
+ </button>
207
+ {#if openSections.has(list.label)}
208
+ <ul class="space-y-1">
209
+ {#each list.items as item}
210
+ <li class="flex items-center gap-2 px-1">
211
+ <Checkbox checked={item.checked} />
212
+ <span class="text-sm">{item.label}</span>
213
+ </li>
214
+ {/each}
215
+ </ul>
216
+ {/if}
217
+ </div>
218
+ {/each}
219
+ </nav>
220
+
221
+ <div class="border-t px-4 py-3">
222
+ <button type="button" class="flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground">
223
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"/><path d="M12 5v14"/></svg>
224
+ New Calendar
225
+ </button>
226
+ </div>
227
+ </aside>
228
+ </div>
@@ -0,0 +1,15 @@
1
+ export { default as SidebarLayout01 } from './SidebarLayout01.svelte';
2
+ export { default as SidebarLayout02 } from './SidebarLayout02.svelte';
3
+ export { default as SidebarLayout03 } from './SidebarLayout03.svelte';
4
+ export { default as SidebarLayout04 } from './SidebarLayout04.svelte';
5
+ export { default as SidebarLayout05 } from './SidebarLayout05.svelte';
6
+ export { default as SidebarLayout06 } from './SidebarLayout06.svelte';
7
+ export { default as SidebarLayout07 } from './SidebarLayout07.svelte';
8
+ export { default as SidebarLayout08 } from './SidebarLayout08.svelte';
9
+ export { default as SidebarLayout09 } from './SidebarLayout09.svelte';
10
+ export { default as SidebarLayout10 } from './SidebarLayout10.svelte';
11
+ export { default as SidebarLayout11 } from './SidebarLayout11.svelte';
12
+ export { default as SidebarLayout12 } from './SidebarLayout12.svelte';
13
+ export { default as SidebarLayout13 } from './SidebarLayout13.svelte';
14
+ export { default as SidebarLayout14 } from './SidebarLayout14.svelte';
15
+ export { default as SidebarLayout15 } from './SidebarLayout15.svelte';