@coffic/cosy-ui 0.7.2 → 0.8.6

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 (607) hide show
  1. package/dist/app.css +1 -1
  2. package/dist/index-astro.ts +86 -0
  3. package/dist/index-collection.ts +104 -0
  4. package/dist/index-vue.ts +33 -0
  5. package/dist/{alert → src-astro/alert}/Alert.astro +39 -33
  6. package/dist/{alert → src-astro/alert}/EAlertBasic.astro +1 -1
  7. package/dist/{alert → src-astro/alert}/EAlertBasicContainer.astro +4 -4
  8. package/dist/src-astro/alert/EAlertCustomStyle.astro +16 -0
  9. package/dist/{alert → src-astro/alert}/EAlertCustomStyleContainer.astro +4 -4
  10. package/dist/src-astro/alert/EAlertError.astro +6 -0
  11. package/dist/src-astro/alert/EAlertInfo.astro +6 -0
  12. package/dist/src-astro/alert/EAlertSuccess.astro +6 -0
  13. package/dist/{alert → src-astro/alert}/EAlertTypesContainer.astro +21 -21
  14. package/dist/src-astro/alert/EAlertWarning.astro +6 -0
  15. package/dist/{alert → src-astro/alert}/EAlertWithTitle.astro +2 -2
  16. package/dist/{alert → src-astro/alert}/EAlertWithTitleContainer.astro +4 -4
  17. package/dist/{alert → src-astro/alert}/index.ts +9 -9
  18. package/dist/{article → src-astro/article}/Article.astro +17 -17
  19. package/dist/src-astro/article/ArticleBasic.astro +35 -0
  20. package/dist/{article → src-astro/article}/index.ts +1 -1
  21. package/dist/src-astro/assets/iconData.ts +117 -0
  22. package/dist/src-astro/banner/Banner.astro +174 -0
  23. package/dist/src-astro/banner/BannerAllAnimations.astro +10 -0
  24. package/dist/{banner → src-astro/banner}/BannerBasic.astro +1 -1
  25. package/dist/src-astro/banner/BannerCustomStyle.astro +8 -0
  26. package/dist/{banner → src-astro/banner}/BannerDanger.astro +1 -1
  27. package/dist/{banner → src-astro/banner}/BannerFadeIn.astro +1 -1
  28. package/dist/{banner → src-astro/banner}/BannerInfo.astro +1 -1
  29. package/dist/{banner → src-astro/banner}/BannerPrimary.astro +1 -1
  30. package/dist/{banner → src-astro/banner}/BannerSecondary.astro +1 -1
  31. package/dist/{banner → src-astro/banner}/BannerSlideUp.astro +1 -1
  32. package/dist/{banner → src-astro/banner}/BannerSuccess.astro +1 -1
  33. package/dist/{banner → src-astro/banner}/BannerWarning.astro +1 -1
  34. package/dist/{banner → src-astro/banner}/index.ts +15 -2
  35. package/dist/src-astro/button/Button.astro +192 -0
  36. package/dist/src-astro/button/ButtonBasic.astro +18 -0
  37. package/dist/{button → src-astro/button}/ButtonBasicContainer.astro +4 -4
  38. package/dist/src-astro/button/ButtonIconBoth.astro +9 -0
  39. package/dist/{button → src-astro/button}/ButtonIconLeft.astro +2 -2
  40. package/dist/{button → src-astro/button}/ButtonIconRight.astro +2 -2
  41. package/dist/{button → src-astro/button}/ButtonLinkContainer.astro +9 -9
  42. package/dist/{button → src-astro/button}/ButtonLinkExternal.astro +2 -2
  43. package/dist/src-astro/button/ButtonShapes.astro +23 -0
  44. package/dist/{button → src-astro/button}/ButtonShapesContainer.astro +16 -12
  45. package/dist/src-astro/button/ButtonSizes.astro +15 -0
  46. package/dist/{button → src-astro/button}/ButtonSizesContainer.astro +4 -4
  47. package/dist/src-astro/button/ButtonStates.astro +12 -0
  48. package/dist/{button → src-astro/button}/ButtonStatesContainer.astro +4 -4
  49. package/dist/src-astro/button/ButtonVariants.astro +14 -0
  50. package/dist/{button → src-astro/button}/ButtonVariantsContainer.astro +45 -36
  51. package/dist/{button → src-astro/button}/ButtonWidth.astro +2 -2
  52. package/dist/{button → src-astro/button}/ButtonWidthContainer.astro +9 -9
  53. package/dist/src-astro/button/ButtonWithIcons.astro +25 -0
  54. package/dist/{button → src-astro/button}/ButtonWithIconsContainer.astro +16 -12
  55. package/dist/{button → src-astro/button}/index_astro.ts +29 -31
  56. package/dist/{card → src-astro/card}/Card.astro +75 -15
  57. package/dist/src-astro/card/CardCourse.astro +34 -0
  58. package/dist/src-astro/card/ECardBasic.astro +13 -0
  59. package/dist/src-astro/card/ECardBasicContainer.astro +11 -0
  60. package/dist/src-astro/card/ECardClickable.astro +16 -0
  61. package/dist/src-astro/card/ECardClickableContainer.astro +11 -0
  62. package/dist/src-astro/card/ECardCompact.astro +13 -0
  63. package/dist/src-astro/card/ECardCompactContainer.astro +11 -0
  64. package/dist/src-astro/card/ECardCustomStyle.astro +17 -0
  65. package/dist/src-astro/card/ECardCustomStyleContainer.astro +11 -0
  66. package/dist/src-astro/card/ECardWithImage.astro +16 -0
  67. package/dist/src-astro/card/ECardWithImageContainer.astro +11 -0
  68. package/dist/src-astro/card/ECardWithSubtitle.astro +13 -0
  69. package/dist/src-astro/card/ECardWithSubtitleContainer.astro +11 -0
  70. package/dist/src-astro/card/index.ts +27 -0
  71. package/dist/src-astro/code-block/CodeBlock.astro +155 -0
  72. package/dist/src-astro/code-block/index.ts +1 -0
  73. package/dist/src-astro/code-container/CodeContainer.astro +280 -0
  74. package/dist/{code-container → src-astro/code-container}/ECodeContainerBasic.astro +3 -3
  75. package/dist/{code-container → src-astro/code-container}/ECodeContainerMultiple.astro +16 -16
  76. package/dist/{code-container → src-astro/code-container}/index.ts +2 -2
  77. package/dist/src-astro/code-example/CodeExample.astro +185 -0
  78. package/dist/src-astro/code-example/index.ts +1 -0
  79. package/dist/src-astro/contact/Contact.astro +321 -0
  80. package/dist/src-astro/contact/EContactBasic.astro +15 -0
  81. package/dist/src-astro/contact/EContactBasicContainer.astro +11 -0
  82. package/dist/src-astro/contact/EContactCompact.astro +11 -0
  83. package/dist/src-astro/contact/EContactCompactContainer.astro +11 -0
  84. package/dist/src-astro/contact/EContactCustomStyle.astro +21 -0
  85. package/dist/src-astro/contact/EContactCustomStyleContainer.astro +11 -0
  86. package/dist/src-astro/contact/EContactSocial.astro +20 -0
  87. package/dist/src-astro/contact/EContactSocialContainer.astro +11 -0
  88. package/dist/src-astro/contact/EContactWithTitle.astro +17 -0
  89. package/dist/src-astro/contact/EContactWithTitleContainer.astro +11 -0
  90. package/dist/src-astro/contact/index.ts +21 -0
  91. package/dist/src-astro/container/Container.astro +211 -0
  92. package/dist/src-astro/container/EContainerBasic.astro +15 -0
  93. package/dist/{container → src-astro/container}/EContainerBasicContainer.astro +4 -4
  94. package/dist/src-astro/container/EContainerFlexBetween.astro +23 -0
  95. package/dist/src-astro/container/EContainerFlexCenter.astro +30 -0
  96. package/dist/src-astro/container/EContainerFlexColumn.astro +23 -0
  97. package/dist/{container → src-astro/container}/EContainerFlexContainer.astro +20 -20
  98. package/dist/src-astro/container/EContainerFlexRow.astro +23 -0
  99. package/dist/src-astro/container/EContainerPadding.astro +32 -0
  100. package/dist/{container → src-astro/container}/EContainerPaddingContainer.astro +4 -4
  101. package/dist/src-astro/container/EContainerSizes.astro +36 -0
  102. package/dist/{container → src-astro/container}/EContainerSizesContainer.astro +4 -4
  103. package/dist/{container → src-astro/container}/index.ts +8 -8
  104. package/dist/{cosy.ts → src-astro/cosy.ts} +1 -1
  105. package/dist/src-astro/database/BaseDB.ts +264 -0
  106. package/dist/src-astro/database/BlogDB.ts +198 -0
  107. package/dist/src-astro/database/CourseDB.ts +90 -0
  108. package/dist/{database → src-astro/database}/ExperimentDB.ts +51 -47
  109. package/dist/{database → src-astro/database}/LessonDB.ts +51 -47
  110. package/dist/src-astro/database/MetaDB.ts +74 -0
  111. package/dist/src-astro/entities/BaseDoc.ts +207 -0
  112. package/dist/{entities → src-astro/entities}/BlogDoc.ts +50 -47
  113. package/dist/src-astro/entities/CourseDoc.ts +101 -0
  114. package/dist/src-astro/entities/ExperimentDoc.ts +119 -0
  115. package/dist/src-astro/entities/Feature.ts +53 -0
  116. package/dist/src-astro/entities/LessonDoc.ts +153 -0
  117. package/dist/src-astro/entities/MetaDoc.ts +93 -0
  118. package/dist/src-astro/entities/SidebarItem.ts +89 -0
  119. package/dist/src-astro/entities/Tag.ts +42 -0
  120. package/dist/src-astro/env.d.ts +42 -0
  121. package/dist/src-astro/errors/403.astro +135 -0
  122. package/dist/src-astro/errors/404.astro +124 -0
  123. package/dist/src-astro/errors/404Basic.astro +7 -0
  124. package/dist/src-astro/errors/500.astro +165 -0
  125. package/dist/src-astro/errors/503.astro +189 -0
  126. package/dist/src-astro/errors/E403Basic.astro +11 -0
  127. package/dist/src-astro/errors/E403BasicContainer.astro +20 -0
  128. package/dist/src-astro/errors/E404Basic.astro +11 -0
  129. package/dist/src-astro/errors/E404BasicContainer.astro +20 -0
  130. package/dist/src-astro/errors/E404WithDebug.astro +18 -0
  131. package/dist/src-astro/errors/E500Basic.astro +11 -0
  132. package/dist/src-astro/errors/E500BasicContainer.astro +20 -0
  133. package/dist/src-astro/errors/E503Maintenance.astro +20 -0
  134. package/dist/src-astro/errors/E503MaintenanceContainer.astro +21 -0
  135. package/dist/src-astro/errors/EErrorPageCustomStyle.astro +21 -0
  136. package/dist/src-astro/errors/EErrorPageCustomStyleContainer.astro +21 -0
  137. package/dist/src-astro/errors/EErrorPageShowcase.astro +68 -0
  138. package/dist/src-astro/errors/EErrorPageShowcaseContainer.astro +21 -0
  139. package/dist/src-astro/errors/ErrorPage.astro +119 -0
  140. package/dist/src-astro/errors/index.ts +77 -0
  141. package/dist/{flex → src-astro/flex}/Flex.astro +31 -31
  142. package/dist/src-astro/flex/FlexBasic.astro +26 -0
  143. package/dist/{flex → src-astro/flex}/index.ts +1 -1
  144. package/dist/src-astro/footer/EFooterBasic.astro +18 -0
  145. package/dist/{footer → src-astro/footer}/EFooterBasicContainer.astro +4 -4
  146. package/dist/src-astro/footer/EFooterComplete.astro +50 -0
  147. package/dist/{footer → src-astro/footer}/EFooterCompleteContainer.astro +4 -4
  148. package/dist/{footer → src-astro/footer}/EFooterFeaturesContainer.astro +24 -24
  149. package/dist/src-astro/footer/EFooterWithLogo.astro +28 -0
  150. package/dist/{footer → src-astro/footer}/EFooterWithLogoContainer.astro +4 -4
  151. package/dist/src-astro/footer/EFooterWithNavigation.astro +24 -0
  152. package/dist/{footer → src-astro/footer}/EFooterWithNavigationContainer.astro +4 -4
  153. package/dist/src-astro/footer/EFooterWithProducts.astro +24 -0
  154. package/dist/{footer → src-astro/footer}/EFooterWithProductsContainer.astro +4 -4
  155. package/dist/src-astro/footer/EFooterWithSocial.astro +24 -0
  156. package/dist/{footer → src-astro/footer}/EFooterWithSocialContainer.astro +4 -4
  157. package/dist/{footer → src-astro/footer}/Footer.astro +170 -158
  158. package/dist/src-astro/footer/FooterSection.astro +49 -0
  159. package/dist/{footer → src-astro/footer}/index.ts +11 -11
  160. package/dist/{grid → src-astro/grid}/Grid.astro +99 -99
  161. package/dist/src-astro/grid/GridBasic.astro +21 -0
  162. package/dist/{grid → src-astro/grid}/index.ts +1 -1
  163. package/dist/src-astro/header/Header.astro +209 -0
  164. package/dist/{header → src-astro/header}/HeaderBasic.astro +6 -1
  165. package/dist/src-astro/header/HeaderCustomNavbarCenter.astro +28 -0
  166. package/dist/src-astro/header/HeaderCustomNavbarEnd.astro +25 -0
  167. package/dist/src-astro/header/HeaderCustomNavbarStart.astro +27 -0
  168. package/dist/{header → src-astro/header}/HeaderCustomPosition.astro +17 -6
  169. package/dist/src-astro/header/HeaderWithNavigation.astro +27 -0
  170. package/dist/{header → src-astro/header}/index.ts +22 -8
  171. package/dist/src-astro/heading/Heading.astro +245 -0
  172. package/dist/{heading → src-astro/heading}/index.ts +1 -1
  173. package/dist/src-astro/hero/Hero.astro +381 -0
  174. package/dist/src-astro/hero/HeroAlignCenter.astro +13 -0
  175. package/dist/{hero → src-astro/hero}/HeroAlignContainer.astro +16 -12
  176. package/dist/src-astro/hero/HeroAlignLeft.astro +13 -0
  177. package/dist/src-astro/hero/HeroAlignRight.astro +13 -0
  178. package/dist/{hero → src-astro/hero}/HeroBackgroundContainer.astro +9 -9
  179. package/dist/src-astro/hero/HeroBackgroundImage.astro +16 -0
  180. package/dist/{hero → src-astro/hero}/HeroBackgroundImageContainer.astro +4 -4
  181. package/dist/src-astro/hero/HeroBasic.astro +12 -0
  182. package/dist/{hero → src-astro/hero}/HeroBasicContainer.astro +4 -4
  183. package/dist/src-astro/hero/HeroGradientBackground.astro +10 -0
  184. package/dist/src-astro/hero/HeroPlainBackground.astro +10 -0
  185. package/dist/src-astro/hero/HeroWithButton.astro +15 -0
  186. package/dist/{hero → src-astro/hero}/HeroWithButtonContainer.astro +4 -4
  187. package/dist/src-astro/hero/HeroWithImage.astro +16 -0
  188. package/dist/{hero → src-astro/hero}/HeroWithImageContainer.astro +4 -4
  189. package/dist/{hero → src-astro/hero}/index.ts +19 -19
  190. package/dist/src-astro/icons/AlertTriangle.astro +28 -0
  191. package/dist/src-astro/icons/AstroIcon.astro +62 -0
  192. package/dist/src-astro/icons/CalendarIcon.astro +28 -0
  193. package/dist/src-astro/icons/CheckCircle.astro +27 -0
  194. package/dist/src-astro/icons/CheckIcon.astro +31 -0
  195. package/dist/src-astro/icons/ChevronDownIcon.astro +28 -0
  196. package/dist/src-astro/icons/ClipboardIcon.astro +31 -0
  197. package/dist/src-astro/icons/CloseIcon.astro +31 -0
  198. package/dist/src-astro/icons/ErrorIcon.astro +28 -0
  199. package/dist/src-astro/icons/GithubIcon.astro +25 -0
  200. package/dist/src-astro/icons/InboxArchive.astro +27 -0
  201. package/dist/src-astro/icons/InfoCircle.astro +28 -0
  202. package/dist/src-astro/icons/InfoIcon.astro +30 -0
  203. package/dist/src-astro/icons/LinkIcon.astro +31 -0
  204. package/dist/src-astro/icons/LinkedinIcon.astro +27 -0
  205. package/dist/src-astro/icons/MenuIcon.astro +31 -0
  206. package/dist/src-astro/icons/SearchIcon.astro +27 -0
  207. package/dist/{icons → src-astro/icons}/SettingsIcon.astro +8 -8
  208. package/dist/{icons → src-astro/icons}/SocialIcon.astro +36 -36
  209. package/dist/src-astro/icons/SuccessIcon.astro +28 -0
  210. package/dist/src-astro/icons/SunCloudyIcon.astro +27 -0
  211. package/dist/src-astro/icons/TwitterIcon.astro +28 -0
  212. package/dist/src-astro/icons/UserIcon.astro +28 -0
  213. package/dist/src-astro/icons/WarningIcon.astro +31 -0
  214. package/dist/src-astro/icons/XCircle.astro +28 -0
  215. package/dist/src-astro/icons/index.ts +25 -0
  216. package/dist/src-astro/image/Image.astro +338 -0
  217. package/dist/src-astro/image/ImageBasic.astro +0 -0
  218. package/dist/src-astro/image/ImageEffects.astro +34 -0
  219. package/dist/src-astro/image/ImageLoading.astro +37 -0
  220. package/dist/{image → src-astro/image}/index.ts +3 -3
  221. package/dist/src-astro/integration.ts +14 -0
  222. package/dist/{language-switcher → src-astro/language-switcher}/LanguageSwitcher.astro +22 -22
  223. package/dist/{language-switcher → src-astro/language-switcher}/LanguageSwitcherBasic.astro +1 -1
  224. package/dist/{language-switcher → src-astro/language-switcher}/index.ts +1 -1
  225. package/dist/{layout-app → src-astro/layout-app}/AppLayout.astro +83 -75
  226. package/dist/src-astro/layout-app/AppLayoutBasic.astro +54 -0
  227. package/dist/{layout-app → src-astro/layout-app}/index.ts +1 -1
  228. package/dist/{layout-basic → src-astro/layout-basic}/BaseLayout.astro +35 -31
  229. package/dist/src-astro/layout-basic/BaseLayoutBasic.astro +17 -0
  230. package/dist/{layout-basic → src-astro/layout-basic}/index.ts +1 -1
  231. package/dist/src-astro/layout-dashboard/DashboardLayout.astro +686 -0
  232. package/dist/src-astro/layout-dashboard/DashboardLayoutBasic.astro +51 -0
  233. package/dist/{layout-dashboard → src-astro/layout-dashboard}/index.ts +1 -1
  234. package/dist/{link → src-astro/link}/Link.astro +72 -57
  235. package/dist/src-astro/link/LinkAnimations.astro +29 -0
  236. package/dist/src-astro/link/LinkBasic.astro +17 -0
  237. package/dist/src-astro/link/LinkVariants.astro +20 -0
  238. package/dist/{link → src-astro/link}/index.ts +3 -3
  239. package/dist/{main → src-astro/main}/Main.astro +68 -60
  240. package/dist/src-astro/main/index.ts +1 -0
  241. package/dist/src-astro/modal/Modal.astro +126 -0
  242. package/dist/src-astro/modal/index.ts +1 -0
  243. package/dist/{module → src-astro/module}/Module.astro +30 -23
  244. package/dist/src-astro/module/ModuleBasic.astro +12 -0
  245. package/dist/src-astro/module/ModuleCustom.astro +14 -0
  246. package/dist/src-astro/module/ModuleGrid.astro +27 -0
  247. package/dist/{module → src-astro/module}/index.ts +3 -3
  248. package/dist/src-astro/nav-item/NavItems.astro +44 -0
  249. package/dist/src-astro/nav-item/NavItemsBasic.astro +30 -0
  250. package/dist/{nav-item → src-astro/nav-item}/index.ts +1 -1
  251. package/dist/src-astro/nav-section/NavSection.astro +41 -0
  252. package/dist/src-astro/nav-section/NavSectionBasic.astro +12 -0
  253. package/dist/{nav-section → src-astro/nav-section}/index.ts +1 -1
  254. package/dist/src-astro/products/ProductCard.astro +374 -0
  255. package/dist/src-astro/products/Products.astro +200 -0
  256. package/dist/src-astro/products/index.ts +2 -0
  257. package/dist/src-astro/section/Section.astro +150 -0
  258. package/dist/src-astro/section/index.ts +1 -0
  259. package/dist/src-astro/sidebar/Sidebar.astro +192 -0
  260. package/dist/src-astro/sidebar/SidebarBasic.astro +0 -0
  261. package/dist/{sidebar → src-astro/sidebar}/index.ts +1 -1
  262. package/dist/src-astro/sidebar-nav/SidebarNav.astro +136 -0
  263. package/dist/src-astro/sidebar-nav/SidebarNavBasic.astro +32 -0
  264. package/dist/{sidebar-nav → src-astro/sidebar-nav}/index.ts +1 -1
  265. package/dist/src-astro/speak/Speak.astro +73 -0
  266. package/dist/src-astro/speak/SpeakBasic.astro +13 -0
  267. package/dist/src-astro/speak/SpeakGrid.astro +30 -0
  268. package/dist/{speak → src-astro/speak}/index.ts +2 -2
  269. package/dist/{stack → src-astro/stack}/Stack.astro +67 -65
  270. package/dist/src-astro/stack/StackBasic.astro +21 -0
  271. package/dist/{stack → src-astro/stack}/index.ts +1 -1
  272. package/dist/src-astro/team-member/TeamMember.astro +137 -0
  273. package/dist/src-astro/team-member/TeamMemberBasic.astro +25 -0
  274. package/dist/src-astro/team-member/TeamMemberCustomStyle.astro +26 -0
  275. package/dist/src-astro/team-member/TeamMemberGroup.astro +60 -0
  276. package/dist/src-astro/team-member/TeamMemberWithSocial.astro +30 -0
  277. package/dist/{team-member → src-astro/team-member}/TeamMembers.astro +40 -48
  278. package/dist/{team-member → src-astro/team-member}/index.ts +9 -2
  279. package/dist/{text → src-astro/text}/Text.astro +50 -50
  280. package/dist/{text → src-astro/text}/TextBasic.astro +1 -1
  281. package/dist/src-astro/text/TextSizes.astro +11 -0
  282. package/dist/{text → src-astro/text}/index.ts +1 -1
  283. package/dist/{theme-switcher → src-astro/theme-switcher}/ThemeItem.astro +20 -20
  284. package/dist/src-astro/theme-switcher/ThemeSwitcher.astro +121 -0
  285. package/dist/{theme-switcher → src-astro/theme-switcher}/ThemeSwitcherBasic.astro +1 -1
  286. package/dist/{theme-switcher → src-astro/theme-switcher}/index.ts +1 -1
  287. package/dist/src-astro/toc/TableOfContents.astro +438 -0
  288. package/dist/src-astro/toc/TableOfContentsBasic.astro +25 -0
  289. package/dist/{toc → src-astro/toc}/index.ts +1 -1
  290. package/dist/src-astro/types/article.ts +22 -0
  291. package/dist/src-astro/types/footer.ts +129 -0
  292. package/dist/src-astro/types/header.ts +87 -0
  293. package/dist/src-astro/types/heading.ts +13 -0
  294. package/dist/{types → src-astro/types}/image.ts +4 -4
  295. package/dist/src-astro/types/layout.ts +71 -0
  296. package/dist/src-astro/types/main.ts +86 -0
  297. package/dist/src-astro/types/menu.ts +24 -0
  298. package/dist/src-astro/types/meta.ts +55 -0
  299. package/dist/src-astro/types/product.ts +10 -0
  300. package/dist/src-astro/types/sidebar.ts +59 -0
  301. package/dist/src-astro/types/static-path.ts +8 -0
  302. package/dist/src-astro/utils/component.ts +42 -0
  303. package/dist/src-astro/utils/i18n.ts +83 -0
  304. package/dist/src-astro/utils/image.ts +128 -0
  305. package/dist/src-astro/utils/lang_entry.ts +240 -0
  306. package/dist/src-astro/utils/lang_package.ts +150 -0
  307. package/dist/src-astro/utils/language.ts +121 -0
  308. package/dist/src-astro/utils/link.ts +250 -0
  309. package/dist/src-astro/utils/logger.ts +136 -0
  310. package/dist/src-astro/utils/path.ts +59 -0
  311. package/dist/src-astro/utils/social.ts +90 -0
  312. package/dist/src-astro/utils/theme.ts +122 -0
  313. package/dist/{utils → src-astro/utils}/url.ts +2 -2
  314. package/dist/vue/SmartLink.vue +21 -0
  315. package/dist/vue/TagList.vue +23 -0
  316. package/dist/vue/alert-dialog-vue/AlertDialog.vue +130 -0
  317. package/dist/vue/alert-dialog-vue/Basic.vue +38 -0
  318. package/dist/vue/alert-dialog-vue/Multilang.vue +58 -0
  319. package/dist/vue/alert-dialog-vue/index.ts +20 -0
  320. package/dist/vue/banner-box-vue/BannerBox.vue +336 -0
  321. package/dist/vue/banner-box-vue/DownloadButton.vue +244 -0
  322. package/dist/vue/banner-box-vue/ExampleBasic.vue +34 -0
  323. package/dist/vue/banner-box-vue/ExampleCustomBg.vue +34 -0
  324. package/dist/vue/banner-box-vue/ExampleDisplayModeAlways.vue +36 -0
  325. package/dist/vue/banner-box-vue/ExampleDisplayModeHover.vue +36 -0
  326. package/dist/vue/banner-box-vue/ExampleDisplayModeNever.vue +36 -0
  327. package/dist/vue/banner-box-vue/ExampleImageExport.vue +42 -0
  328. package/dist/vue/banner-box-vue/ExampleSizePreset.vue +39 -0
  329. package/dist/vue/banner-box-vue/FeatureCard.vue +205 -0
  330. package/dist/vue/banner-box-vue/SmartBanner.vue +48 -0
  331. package/dist/vue/banner-box-vue/bgStyles.ts +55 -0
  332. package/dist/vue/banner-box-vue/index.ts +48 -0
  333. package/dist/vue/banner-box-vue/sizePresets.ts +23 -0
  334. package/dist/vue/blog-vue/Basic.vue +30 -0
  335. package/dist/vue/blog-vue/BlogList.vue +102 -0
  336. package/dist/vue/blog-vue/Empty.vue +8 -0
  337. package/dist/vue/blog-vue/EmptyEnglish.vue +8 -0
  338. package/dist/vue/blog-vue/English.vue +24 -0
  339. package/dist/vue/blog-vue/index.ts +29 -0
  340. package/dist/vue/buttons-vue/Button.vue +105 -0
  341. package/dist/vue/buttons-vue/ButtonBasic.vue +11 -0
  342. package/dist/vue/buttons-vue/ButtonFeature.vue +100 -0
  343. package/dist/vue/buttons-vue/ButtonFeatureBasic.vue +8 -0
  344. package/dist/vue/buttons-vue/ButtonFeatureWithTips.vue +7 -0
  345. package/dist/vue/buttons-vue/ButtonLink.vue +13 -0
  346. package/dist/vue/buttons-vue/ButtonSizes.vue +12 -0
  347. package/dist/{button → vue/buttons-vue}/ButtonVariants.vue +2 -2
  348. package/dist/vue/buttons-vue/ButtonWithIcons.vue +21 -0
  349. package/dist/vue/buttons-vue/index.ts +1 -0
  350. package/dist/vue/confirm-dialog-vue/Basic.vue +62 -0
  351. package/dist/vue/confirm-dialog-vue/ConfirmDialog.vue +147 -0
  352. package/dist/vue/confirm-dialog-vue/CustomButtons.vue +81 -0
  353. package/dist/vue/confirm-dialog-vue/index.ts +20 -0
  354. package/dist/vue/cosy.ts +6 -0
  355. package/dist/vue/counter-vue/VueCounter.vue +29 -0
  356. package/dist/vue/counter-vue/index.ts +1 -0
  357. package/dist/vue/iPhone-vue/Basic.vue +33 -0
  358. package/dist/vue/iPhone-vue/CustomBackground.vue +35 -0
  359. package/dist/vue/iPhone-vue/NoFrame.vue +33 -0
  360. package/dist/vue/iPhone-vue/WeatherApp.vue +143 -0
  361. package/dist/vue/iPhone-vue/assets/iPhone 14 Pro - Deep Purple - Landscape.png +0 -0
  362. package/dist/vue/iPhone-vue/assets/iPhone 14 Pro - Deep Purple - Portrait.png +0 -0
  363. package/dist/vue/iPhone-vue/assets/iPhone 14 Pro - Gold - Landscape.png +0 -0
  364. package/dist/vue/iPhone-vue/assets/iPhone 14 Pro - Gold - Portrait.png +0 -0
  365. package/dist/vue/iPhone-vue/assets/iPhone 14 Pro - Silver - Landscape.png +0 -0
  366. package/dist/vue/iPhone-vue/assets/iPhone 14 Pro - Silver - Portrait.png +0 -0
  367. package/dist/vue/iPhone-vue/assets/iPhone 14 Pro - Space Black - Landscape.png +0 -0
  368. package/dist/vue/iPhone-vue/assets/iPhone 14 Pro - Space Black - Portrait.png +0 -0
  369. package/dist/vue/iPhone-vue/iPhoneWindow.vue +247 -0
  370. package/dist/vue/iPhone-vue/index.ts +31 -0
  371. package/dist/vue/icons-vue/AlertTriangleIcon.vue +30 -0
  372. package/dist/vue/icons-vue/CalendarIcon.vue +30 -0
  373. package/dist/vue/icons-vue/CheckCircleIcon.vue +30 -0
  374. package/dist/vue/icons-vue/CheckIcon.vue +30 -0
  375. package/dist/vue/icons-vue/ChevronDownIcon.vue +30 -0
  376. package/dist/vue/icons-vue/ClipboardIcon.vue +30 -0
  377. package/dist/vue/icons-vue/CloseIcon.vue +30 -0
  378. package/dist/vue/icons-vue/InboxArchiveIcon.vue +30 -0
  379. package/dist/vue/icons-vue/InfoCircleIcon.vue +30 -0
  380. package/dist/vue/icons-vue/InfoIcon.vue +30 -0
  381. package/dist/vue/icons-vue/LinkIcon.vue +30 -0
  382. package/dist/vue/icons-vue/MenuIcon.vue +30 -0
  383. package/dist/vue/icons-vue/SearchIcon.vue +30 -0
  384. package/dist/vue/icons-vue/SettingsIcon.vue +30 -0
  385. package/dist/vue/icons-vue/UserIcon.vue +30 -0
  386. package/dist/vue/icons-vue/VueIcon.vue +86 -0
  387. package/dist/vue/icons-vue/XCircleIcon.vue +30 -0
  388. package/dist/vue/icons-vue/index.ts +1 -0
  389. package/dist/vue/list-vue/ListItem.vue +5 -0
  390. package/dist/vue/list-vue/index.ts +1 -0
  391. package/dist/vue/mac-window-vue/Basic.vue +9 -0
  392. package/dist/vue/mac-window-vue/CustomHeight.vue +13 -0
  393. package/dist/vue/mac-window-vue/MacWindow.vue +283 -0
  394. package/dist/vue/mac-window-vue/WithEvents.vue +40 -0
  395. package/dist/vue/mac-window-vue/WithSidebar.vue +31 -0
  396. package/dist/vue/mac-window-vue/WithTabs.vue +26 -0
  397. package/dist/vue/mac-window-vue/WithToolbar.vue +44 -0
  398. package/dist/vue/mac-window-vue/index.ts +36 -0
  399. package/dist/vue/utils/component.ts +42 -0
  400. package/dist/vue/utils/i18n.ts +83 -0
  401. package/dist/vue/utils/image.ts +128 -0
  402. package/dist/vue/utils/lang_entry.ts +240 -0
  403. package/dist/vue/utils/lang_package.ts +150 -0
  404. package/dist/vue/utils/language.ts +121 -0
  405. package/dist/vue/utils/link.ts +250 -0
  406. package/dist/vue/utils/logger.ts +136 -0
  407. package/dist/vue/utils/path.ts +59 -0
  408. package/dist/vue/utils/social.ts +90 -0
  409. package/dist/vue/utils/theme.ts +122 -0
  410. package/dist/vue/utils/url.ts +17 -0
  411. package/package.json +85 -82
  412. package/LICENSE +0 -21
  413. package/README.md +0 -31
  414. package/dist/alert/EAlertCustomStyle.astro +0 -14
  415. package/dist/alert/EAlertError.astro +0 -6
  416. package/dist/alert/EAlertInfo.astro +0 -6
  417. package/dist/alert/EAlertSuccess.astro +0 -6
  418. package/dist/alert/EAlertWarning.astro +0 -6
  419. package/dist/article/ArticleBasic.astro +0 -31
  420. package/dist/assets/iconData.ts +0 -116
  421. package/dist/banner/Banner.astro +0 -165
  422. package/dist/banner/BannerAllAnimations.astro +0 -10
  423. package/dist/banner/BannerCustomStyle.astro +0 -7
  424. package/dist/blog/Blog.astro +0 -249
  425. package/dist/blog/index.ts +0 -1
  426. package/dist/button/Button.astro +0 -192
  427. package/dist/button/ButtonBasic.astro +0 -18
  428. package/dist/button/ButtonIconBoth.astro +0 -9
  429. package/dist/button/ButtonShapes.astro +0 -23
  430. package/dist/button/ButtonSizes.astro +0 -15
  431. package/dist/button/ButtonStates.astro +0 -12
  432. package/dist/button/ButtonVariants.astro +0 -14
  433. package/dist/button/ButtonWithIcons.astro +0 -25
  434. package/dist/card/CardCompact.astro +0 -77
  435. package/dist/card/CardCourse.astro +0 -32
  436. package/dist/card/CardLink.astro +0 -75
  437. package/dist/card/CardWithImage.astro +0 -39
  438. package/dist/card/index.ts +0 -7
  439. package/dist/code-block/CodeBlock.astro +0 -152
  440. package/dist/code-block/index.ts +0 -1
  441. package/dist/code-container/CodeContainer.astro +0 -254
  442. package/dist/code-example/CodeExample.astro +0 -157
  443. package/dist/code-example/index.ts +0 -1
  444. package/dist/container/Container.astro +0 -211
  445. package/dist/container/EContainerBasic.astro +0 -13
  446. package/dist/container/EContainerFlexBetween.astro +0 -16
  447. package/dist/container/EContainerFlexCenter.astro +0 -23
  448. package/dist/container/EContainerFlexColumn.astro +0 -16
  449. package/dist/container/EContainerFlexRow.astro +0 -16
  450. package/dist/container/EContainerPadding.astro +0 -32
  451. package/dist/container/EContainerSizes.astro +0 -36
  452. package/dist/database/BaseDB.ts +0 -231
  453. package/dist/database/BlogDB.ts +0 -198
  454. package/dist/database/CourseDB.ts +0 -84
  455. package/dist/database/MetaDB.ts +0 -74
  456. package/dist/entities/BaseDoc.ts +0 -195
  457. package/dist/entities/CourseDoc.ts +0 -96
  458. package/dist/entities/ExperimentDoc.ts +0 -114
  459. package/dist/entities/Feature.ts +0 -53
  460. package/dist/entities/LessonDoc.ts +0 -148
  461. package/dist/entities/MetaDoc.ts +0 -90
  462. package/dist/entities/SidebarItem.ts +0 -89
  463. package/dist/entities/Tag.ts +0 -42
  464. package/dist/env.d.ts +0 -32
  465. package/dist/errors/404.astro +0 -27
  466. package/dist/errors/404Basic.astro +0 -5
  467. package/dist/errors/index.ts +0 -11
  468. package/dist/flex/FlexBasic.astro +0 -9
  469. package/dist/footer/EFooterBasic.astro +0 -18
  470. package/dist/footer/EFooterComplete.astro +0 -45
  471. package/dist/footer/EFooterWithLogo.astro +0 -23
  472. package/dist/footer/EFooterWithNavigation.astro +0 -24
  473. package/dist/footer/EFooterWithProducts.astro +0 -24
  474. package/dist/footer/EFooterWithSocial.astro +0 -24
  475. package/dist/footer/FooterSection.astro +0 -48
  476. package/dist/grid/GridBasic.astro +0 -9
  477. package/dist/header/Header.astro +0 -204
  478. package/dist/header/HeaderCustomNavbarCenter.astro +0 -23
  479. package/dist/header/HeaderCustomNavbarEnd.astro +0 -20
  480. package/dist/header/HeaderCustomNavbarStart.astro +0 -20
  481. package/dist/header/HeaderWithNavigation.astro +0 -22
  482. package/dist/heading/Heading.astro +0 -238
  483. package/dist/hero/Hero.astro +0 -368
  484. package/dist/hero/HeroAlignCenter.astro +0 -13
  485. package/dist/hero/HeroAlignLeft.astro +0 -13
  486. package/dist/hero/HeroAlignRight.astro +0 -13
  487. package/dist/hero/HeroBackgroundImage.astro +0 -12
  488. package/dist/hero/HeroBasic.astro +0 -12
  489. package/dist/hero/HeroGradientBackground.astro +0 -10
  490. package/dist/hero/HeroPlainBackground.astro +0 -10
  491. package/dist/hero/HeroWithButton.astro +0 -11
  492. package/dist/hero/HeroWithImage.astro +0 -16
  493. package/dist/icons/AlertTriangle.astro +0 -24
  494. package/dist/icons/AstroIcon.astro +0 -61
  495. package/dist/icons/CalendarIcon.astro +0 -24
  496. package/dist/icons/CheckCircle.astro +0 -23
  497. package/dist/icons/CheckIcon.astro +0 -27
  498. package/dist/icons/ChevronDownIcon.astro +0 -24
  499. package/dist/icons/ClipboardIcon.astro +0 -27
  500. package/dist/icons/CloseIcon.astro +0 -27
  501. package/dist/icons/ErrorIcon.astro +0 -24
  502. package/dist/icons/GithubIcon.astro +0 -19
  503. package/dist/icons/InboxArchive.astro +0 -23
  504. package/dist/icons/InfoCircle.astro +0 -24
  505. package/dist/icons/InfoIcon.astro +0 -26
  506. package/dist/icons/LinkIcon.astro +0 -27
  507. package/dist/icons/LinkedinIcon.astro +0 -23
  508. package/dist/icons/MenuIcon.astro +0 -27
  509. package/dist/icons/SearchIcon.astro +0 -23
  510. package/dist/icons/SuccessIcon.astro +0 -24
  511. package/dist/icons/SunCloudyIcon.astro +0 -23
  512. package/dist/icons/TwitterIcon.astro +0 -24
  513. package/dist/icons/UserIcon.astro +0 -24
  514. package/dist/icons/WarningIcon.astro +0 -27
  515. package/dist/icons/XCircle.astro +0 -24
  516. package/dist/icons/index.ts +0 -3
  517. package/dist/image/Image.astro +0 -342
  518. package/dist/image/ImageBasic.astro +0 -1
  519. package/dist/image/ImageEffects.astro +0 -32
  520. package/dist/image/ImageLoading.astro +0 -35
  521. package/dist/index.ts +0 -3
  522. package/dist/index_astro.ts +0 -68
  523. package/dist/index_collection.ts +0 -104
  524. package/dist/index_icons.ts +0 -24
  525. package/dist/index_utils.ts +0 -8
  526. package/dist/index_vue.ts +0 -44
  527. package/dist/integration.ts +0 -14
  528. package/dist/layout-app/AppLayoutBasic.astro +0 -53
  529. package/dist/layout-basic/BaseLayoutBasic.astro +0 -16
  530. package/dist/layout-dashboard/DashboardLayout.astro +0 -671
  531. package/dist/layout-dashboard/DashboardLayoutBasic.astro +0 -48
  532. package/dist/link/LinkAnimations.astro +0 -21
  533. package/dist/link/LinkBasic.astro +0 -17
  534. package/dist/link/LinkVariants.astro +0 -20
  535. package/dist/main/index.ts +0 -1
  536. package/dist/modal/Modal.astro +0 -119
  537. package/dist/modal/index.ts +0 -1
  538. package/dist/module/ModuleBasic.astro +0 -12
  539. package/dist/module/ModuleCustom.astro +0 -14
  540. package/dist/module/ModuleGrid.astro +0 -26
  541. package/dist/nav-item/NavItems.astro +0 -44
  542. package/dist/nav-item/NavItemsBasic.astro +0 -27
  543. package/dist/nav-section/NavSection.astro +0 -42
  544. package/dist/nav-section/NavSectionBasic.astro +0 -12
  545. package/dist/products/ProductCard.astro +0 -375
  546. package/dist/products/Products.astro +0 -195
  547. package/dist/products/index.ts +0 -2
  548. package/dist/section/Section.astro +0 -140
  549. package/dist/section/index.ts +0 -1
  550. package/dist/sidebar/Sidebar.astro +0 -174
  551. package/dist/sidebar/SidebarBasic.astro +0 -1
  552. package/dist/sidebar-nav/SidebarNav.astro +0 -117
  553. package/dist/sidebar-nav/SidebarNavBasic.astro +0 -32
  554. package/dist/speak/Speak.astro +0 -65
  555. package/dist/speak/SpeakBasic.astro +0 -13
  556. package/dist/speak/SpeakGrid.astro +0 -29
  557. package/dist/stack/StackBasic.astro +0 -15
  558. package/dist/team-member/TeamMember.astro +0 -135
  559. package/dist/team-member/TeamMemberBasic.astro +0 -25
  560. package/dist/team-member/TeamMemberCustomStyle.astro +0 -26
  561. package/dist/team-member/TeamMemberGroup.astro +0 -60
  562. package/dist/team-member/TeamMemberWithSocial.astro +0 -30
  563. package/dist/text/TextSizes.astro +0 -11
  564. package/dist/theme-switcher/ThemeSwitcher.astro +0 -120
  565. package/dist/toc/TableOfContents.astro +0 -405
  566. package/dist/toc/TableOfContentsBasic.astro +0 -25
  567. package/dist/types/article.ts +0 -22
  568. package/dist/types/footer.ts +0 -129
  569. package/dist/types/header.ts +0 -87
  570. package/dist/types/heading.ts +0 -13
  571. package/dist/types/layout.ts +0 -71
  572. package/dist/types/main.ts +0 -80
  573. package/dist/types/menu.ts +0 -24
  574. package/dist/types/meta.ts +0 -55
  575. package/dist/types/product.ts +0 -10
  576. package/dist/types/sidebar.ts +0 -39
  577. package/dist/types/static-path.ts +0 -8
  578. package/dist/utils/component.ts +0 -39
  579. package/dist/utils/i18n.ts +0 -83
  580. package/dist/utils/image.ts +0 -126
  581. package/dist/utils/lang_entry.ts +0 -240
  582. package/dist/utils/lang_package.ts +0 -150
  583. package/dist/utils/language.ts +0 -118
  584. package/dist/utils/link.ts +0 -248
  585. package/dist/utils/logger.ts +0 -130
  586. package/dist/utils/path.ts +0 -55
  587. package/dist/utils/social.ts +0 -90
  588. package/dist/utils/theme.ts +0 -114
  589. /package/dist/{assets → src-astro/assets}/book.png +0 -0
  590. /package/dist/{assets → src-astro/assets}/logo-rounded.png +0 -0
  591. /package/dist/{assets → src-astro/assets}/logo.png +0 -0
  592. /package/dist/{button → src-astro/button}/ButtonBlock.astro +0 -0
  593. /package/dist/{button → src-astro/button}/ButtonError.astro +0 -0
  594. /package/dist/{button → src-astro/button}/ButtonGhost.astro +0 -0
  595. /package/dist/{button → src-astro/button}/ButtonInfo.astro +0 -0
  596. /package/dist/{button → src-astro/button}/ButtonLink.astro +0 -0
  597. /package/dist/{button → src-astro/button}/ButtonNeutral.astro +0 -0
  598. /package/dist/{button → src-astro/button}/ButtonOutline.astro +0 -0
  599. /package/dist/{button → src-astro/button}/ButtonShapeCircle.astro +0 -0
  600. /package/dist/{button → src-astro/button}/ButtonShapeDefault.astro +0 -0
  601. /package/dist/{button → src-astro/button}/ButtonShapeSquare.astro +0 -0
  602. /package/dist/{button → src-astro/button}/ButtonSuccess.astro +0 -0
  603. /package/dist/{button → src-astro/button}/ButtonWarning.astro +0 -0
  604. /package/dist/{button → src-astro/button}/ButtonWide.astro +0 -0
  605. /package/dist/{card → src-astro/card}/CardBasic.astro +0 -0
  606. /package/dist/{heading → src-astro/heading}/HeadingBasic.astro +0 -0
  607. /package/dist/{types → src-astro/types}/nav.ts +0 -0
@@ -1,671 +0,0 @@
1
- ---
2
- /**
3
- * @component DashboardLayout
4
- *
5
- * @description
6
- * DashboardLayout 组件适用于管理后台的布局,包含侧边栏导航和顶部导航栏。
7
- * 提供了完整的管理界面框架,包括响应式设计和暗色主题支持。
8
- *
9
- * @design
10
- * 设计理念:
11
- * 1. 清晰的信息层次 - 通过侧边栏和顶部导航提供明确的导航结构
12
- * 2. 响应式布局 - 在不同设备上提供良好的用户体验
13
- * 3. 可定制性 - 支持自定义导航项、系统名称和用户信息
14
- * 4. 状态保持 - 记住用户的侧边栏折叠状态
15
- *
16
- * @example
17
- * ```astro
18
- * ---
19
- * import DashboardLayout from '../layouts/DashboardLayout.astro';
20
- *
21
- * const navItems = [
22
- * { href: "/dashboard", icon: "home", text: "仪表盘" },
23
- * { href: "/dashboard/users", icon: "user", text: "用户管理" },
24
- * { href: "/dashboard/settings", icon: "settings", text: "系统设置" }
25
- * ];
26
- * ---
27
- *
28
- * <DashboardLayout
29
- * title="管理后台"
30
- * navItems={navItems}
31
- * userName="管理员"
32
- * >
33
- * <h1>仪表盘内容</h1>
34
- * <p>这是仪表盘的主要内容</p>
35
- * </DashboardLayout>
36
- * ```
37
- */
38
-
39
- import { BaseLayout } from '../index';
40
- import '../style.ts';
41
-
42
- export interface NavItem {
43
- href: string;
44
- icon: string;
45
- text: string;
46
- badge?: string | number;
47
- items?: NavItem[];
48
- }
49
-
50
- export interface Props {
51
- /**
52
- * 页面标题
53
- */
54
- title: string;
55
-
56
- /**
57
- * 页面描述
58
- */
59
- description?: string;
60
-
61
- /**
62
- * 系统名称
63
- * @default "管理系统"
64
- */
65
- systemName?: string;
66
-
67
- /**
68
- * 导航项目
69
- */
70
- navItems: NavItem[];
71
-
72
- /**
73
- * 用户名
74
- */
75
- userName?: string;
76
-
77
- /**
78
- * 用户头像
79
- */
80
- userAvatar?: string;
81
-
82
- /**
83
- * 是否折叠侧边栏
84
- * @default false
85
- */
86
- sidebarCollapsed?: boolean;
87
-
88
- /**
89
- * 自定义头部内容
90
- */
91
- head?: astroHTML.JSX.Element;
92
-
93
- /**
94
- * 页面类名
95
- */
96
- class?: string;
97
-
98
- /**
99
- * 类名列表
100
- */
101
- 'class:list'?: any;
102
- }
103
-
104
- const {
105
- title,
106
- description,
107
- systemName = '管理系统',
108
- navItems,
109
- userName,
110
- userAvatar,
111
- sidebarCollapsed = false,
112
- head,
113
- class: className,
114
- 'class:list': classList,
115
- ...rest
116
- } = Astro.props;
117
-
118
- const currentPath = Astro.url.pathname;
119
-
120
- // 图标映射
121
- const iconMap: Record<string, string> = {
122
- home: '🏠',
123
- user: '👤',
124
- users: '👥',
125
- settings: '⚙️',
126
- chart: '📊',
127
- document: '📄',
128
- calendar: '📅',
129
- notification: '🔔',
130
- message: '💬',
131
- search: '🔍',
132
- star: '⭐',
133
- heart: '❤️',
134
- menu: '☰',
135
- };
136
- ---
137
-
138
- <BaseLayout
139
- title={title}
140
- description={description || ''}
141
- head={head}
142
- keywords=""
143
- author=""
144
- robots=""
145
- class="dashboard-layout"
146
- {...rest}>
147
- <div class:list={['dashboard-container', { collapsed: sidebarCollapsed }]}>
148
- <!-- 侧边栏 -->
149
- <aside class="sidebar">
150
- <div class="sidebar-header">
151
- <a href="/dashboard" class="logo">
152
- <span class="logo-icon">⚡</span>
153
- <span class="logo-text">{systemName}</span>
154
- </a>
155
- <button class="collapse-button" id="collapse-sidebar">
156
- <span class="collapse-icon">{iconMap.menu}</span>
157
- </button>
158
- </div>
159
-
160
- <nav class="sidebar-nav">
161
- <ul class="nav-list">
162
- {
163
- navItems.map((item: NavItem) => {
164
- const isActive =
165
- currentPath === item.href ||
166
- (item.items && item.items.some((subitem: NavItem) => currentPath === subitem.href));
167
-
168
- return (
169
- <li class:list={['nav-item', { active: isActive }]}>
170
- <a href={item.href} class="nav-link">
171
- <span class="nav-icon">{iconMap[item.icon] || '📁'}</span>
172
- <span class="nav-text">{item.text}</span>
173
- {item.badge && <span class="nav-badge">{item.badge}</span>}
174
- </a>
175
-
176
- {item.items && (
177
- <ul class="subnav-list">
178
- {item.items.map((subitem: NavItem) => {
179
- const isSubActive = currentPath === subitem.href;
180
- return (
181
- <li class:list={['subnav-item', { active: isSubActive }]}>
182
- <a href={subitem.href} class="subnav-link">
183
- <span class="subnav-icon">{iconMap[subitem.icon] || '📄'}</span>
184
- <span class="subnav-text">{subitem.text}</span>
185
- {subitem.badge && <span class="subnav-badge">{subitem.badge}</span>}
186
- </a>
187
- </li>
188
- );
189
- })}
190
- </ul>
191
- )}
192
- </li>
193
- );
194
- })
195
- }
196
- </ul>
197
- </nav>
198
- </aside>
199
-
200
- <!-- 主内容区 -->
201
- <div class="main-content">
202
- <!-- 顶部导航栏 -->
203
- <header class="top-navbar">
204
- <div class="navbar-left">
205
- <button class="menu-button" id="toggle-sidebar">
206
- <span class="menu-icon">{iconMap.menu}</span>
207
- </button>
208
-
209
- <div class="breadcrumb">
210
- <span class="breadcrumb-item">{title}</span>
211
- </div>
212
- </div>
213
-
214
- <div class="navbar-right">
215
- <div class="search-box">
216
- <input type="text" placeholder="搜索..." class="search-input" />
217
- <span class="search-icon">{iconMap.search}</span>
218
- </div>
219
-
220
- <button class="notification-button">
221
- <span class="notification-icon">{iconMap.notification}</span>
222
- <span class="notification-badge">3</span>
223
- </button>
224
-
225
- {
226
- userName && (
227
- <div class="user-dropdown">
228
- <button class="user-button">
229
- {userAvatar ? (
230
- <img src={userAvatar} alt={userName} class="user-avatar" />
231
- ) : (
232
- <span class="user-avatar-placeholder">{userName.charAt(0)}</span>
233
- )}
234
- <span class="user-name">{userName}</span>
235
- </button>
236
- </div>
237
- )
238
- }
239
- </div>
240
- </header>
241
-
242
- <!-- 页面内容 -->
243
- <main class="page-content">
244
- <div class="content-container">
245
- <slot />
246
- </div>
247
- </main>
248
- </div>
249
- </div>
250
- </BaseLayout>
251
-
252
- <script>
253
- // 侧边栏折叠/展开功能
254
- document.addEventListener('DOMContentLoaded', () => {
255
- const toggleSidebarBtn = document.getElementById('toggle-sidebar');
256
- const collapseSidebarBtn = document.getElementById('collapse-sidebar');
257
- const dashboardContainer = document.querySelector('.dashboard-container');
258
-
259
- if (toggleSidebarBtn && dashboardContainer) {
260
- toggleSidebarBtn.addEventListener('click', () => {
261
- dashboardContainer.classList.toggle('collapsed');
262
- // 保存状态到本地存储
263
- localStorage.setItem(
264
- 'sidebarCollapsed',
265
- dashboardContainer.classList.contains('collapsed') ? 'true' : 'false'
266
- );
267
- });
268
- }
269
-
270
- if (collapseSidebarBtn && dashboardContainer) {
271
- collapseSidebarBtn.addEventListener('click', () => {
272
- dashboardContainer.classList.toggle('collapsed');
273
- // 保存状态到本地存储
274
- localStorage.setItem(
275
- 'sidebarCollapsed',
276
- dashboardContainer.classList.contains('collapsed') ? 'true' : 'false'
277
- );
278
- });
279
- }
280
-
281
- // 从本地存储恢复状态
282
- const savedState = localStorage.getItem('sidebarCollapsed');
283
- if (savedState === 'true' && dashboardContainer) {
284
- dashboardContainer.classList.add('collapsed');
285
- }
286
- });
287
- </script>
288
-
289
- <style>
290
- /* 基础布局 */
291
- .dashboard-layout {
292
- min-height: 100vh;
293
- background-color: #f5f7fa;
294
- }
295
-
296
- .dashboard-container {
297
- display: flex;
298
- min-height: 100vh;
299
- }
300
-
301
- /* 侧边栏 */
302
- .sidebar {
303
- width: 260px;
304
- background-color: #1e293b;
305
- color: #e2e8f0;
306
- transition: width 0.3s ease;
307
- display: flex;
308
- flex-direction: column;
309
- position: fixed;
310
- top: 0;
311
- left: 0;
312
- bottom: 0;
313
- z-index: 50;
314
- overflow-y: auto;
315
- }
316
-
317
- .sidebar-header {
318
- display: flex;
319
- align-items: center;
320
- justify-content: space-between;
321
- padding: 1rem;
322
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
323
- }
324
-
325
- .logo {
326
- display: flex;
327
- align-items: center;
328
- gap: 0.75rem;
329
- color: #fff;
330
- text-decoration: none;
331
- }
332
-
333
- .logo-icon {
334
- font-size: 1.5rem;
335
- }
336
-
337
- .logo-text {
338
- font-size: 1.25rem;
339
- font-weight: 600;
340
- white-space: nowrap;
341
- }
342
-
343
- .collapse-button {
344
- background: none;
345
- border: none;
346
- color: #e2e8f0;
347
- cursor: pointer;
348
- padding: 0.5rem;
349
- border-radius: 0.375rem;
350
- }
351
-
352
- .collapse-button:hover {
353
- background-color: rgba(255, 255, 255, 0.1);
354
- }
355
-
356
- .sidebar-nav {
357
- flex: 1;
358
- padding: 1rem 0;
359
- }
360
-
361
- .nav-list {
362
- list-style: none;
363
- padding: 0;
364
- margin: 0;
365
- }
366
-
367
- .nav-item {
368
- margin-bottom: 0.25rem;
369
- }
370
-
371
- .nav-link {
372
- display: flex;
373
- align-items: center;
374
- padding: 0.75rem 1rem;
375
- color: #e2e8f0;
376
- text-decoration: none;
377
- border-radius: 0.375rem;
378
- margin: 0 0.5rem;
379
- gap: 0.75rem;
380
- }
381
-
382
- .nav-link:hover {
383
- background-color: rgba(255, 255, 255, 0.1);
384
- }
385
-
386
- .nav-item.active .nav-link {
387
- background-color: rgba(59, 130, 246, 0.5);
388
- color: #fff;
389
- }
390
-
391
- .nav-icon {
392
- font-size: 1.25rem;
393
- width: 1.5rem;
394
- text-align: center;
395
- }
396
-
397
- .nav-text {
398
- flex: 1;
399
- white-space: nowrap;
400
- }
401
-
402
- .nav-badge {
403
- background-color: #ef4444;
404
- color: #fff;
405
- font-size: 0.75rem;
406
- padding: 0.125rem 0.375rem;
407
- border-radius: 9999px;
408
- }
409
-
410
- .subnav-list {
411
- list-style: none;
412
- padding: 0;
413
- margin: 0.25rem 0 0.5rem 2.5rem;
414
- }
415
-
416
- .subnav-link {
417
- display: flex;
418
- align-items: center;
419
- padding: 0.5rem 1rem;
420
- color: #cbd5e1;
421
- text-decoration: none;
422
- border-radius: 0.375rem;
423
- gap: 0.5rem;
424
- font-size: 0.875rem;
425
- }
426
-
427
- .subnav-link:hover {
428
- background-color: rgba(255, 255, 255, 0.05);
429
- }
430
-
431
- .subnav-item.active .subnav-link {
432
- color: #3b82f6;
433
- font-weight: 500;
434
- }
435
-
436
- .subnav-icon {
437
- font-size: 1rem;
438
- width: 1.25rem;
439
- text-align: center;
440
- }
441
-
442
- /* 主内容区 */
443
- .main-content {
444
- flex: 1;
445
- margin-left: 260px;
446
- transition: margin-left 0.3s ease;
447
- display: flex;
448
- flex-direction: column;
449
- min-height: 100vh;
450
- }
451
-
452
- /* 顶部导航栏 */
453
- .top-navbar {
454
- display: flex;
455
- justify-content: space-between;
456
- align-items: center;
457
- padding: 0.75rem 1.5rem;
458
- background-color: #fff;
459
- border-bottom: 1px solid #e2e8f0;
460
- height: 64px;
461
- position: sticky;
462
- top: 0;
463
- z-index: 40;
464
- }
465
-
466
- .navbar-left {
467
- display: flex;
468
- align-items: center;
469
- gap: 1rem;
470
- }
471
-
472
- .menu-button {
473
- background: none;
474
- border: none;
475
- color: #64748b;
476
- cursor: pointer;
477
- padding: 0.5rem;
478
- border-radius: 0.375rem;
479
- display: flex;
480
- align-items: center;
481
- justify-content: center;
482
- }
483
-
484
- .menu-button:hover {
485
- background-color: #f1f5f9;
486
- }
487
-
488
- .breadcrumb {
489
- color: #64748b;
490
- font-size: 0.875rem;
491
- }
492
-
493
- .navbar-right {
494
- display: flex;
495
- align-items: center;
496
- gap: 1rem;
497
- }
498
-
499
- .search-box {
500
- position: relative;
501
- }
502
-
503
- .search-input {
504
- padding: 0.5rem 1rem 0.5rem 2.5rem;
505
- border: 1px solid #e2e8f0;
506
- border-radius: 0.375rem;
507
- background-color: #f8fafc;
508
- width: 240px;
509
- font-size: 0.875rem;
510
- }
511
-
512
- .search-icon {
513
- position: absolute;
514
- left: 0.75rem;
515
- top: 50%;
516
- transform: translateY(-50%);
517
- color: #94a3b8;
518
- }
519
-
520
- .notification-button {
521
- background: none;
522
- border: none;
523
- color: #64748b;
524
- cursor: pointer;
525
- padding: 0.5rem;
526
- border-radius: 0.375rem;
527
- position: relative;
528
- }
529
-
530
- .notification-button:hover {
531
- background-color: #f1f5f9;
532
- }
533
-
534
- .notification-badge {
535
- position: absolute;
536
- top: 0;
537
- right: 0;
538
- background-color: #ef4444;
539
- color: #fff;
540
- font-size: 0.75rem;
541
- width: 1rem;
542
- height: 1rem;
543
- border-radius: 9999px;
544
- display: flex;
545
- align-items: center;
546
- justify-content: center;
547
- }
548
-
549
- .user-dropdown {
550
- position: relative;
551
- }
552
-
553
- .user-button {
554
- display: flex;
555
- align-items: center;
556
- gap: 0.5rem;
557
- background: none;
558
- border: none;
559
- cursor: pointer;
560
- padding: 0.5rem;
561
- border-radius: 0.375rem;
562
- }
563
-
564
- .user-button:hover {
565
- background-color: #f1f5f9;
566
- }
567
-
568
- .user-avatar {
569
- width: 2rem;
570
- height: 2rem;
571
- border-radius: 9999px;
572
- object-fit: cover;
573
- }
574
-
575
- .user-avatar-placeholder {
576
- width: 2rem;
577
- height: 2rem;
578
- border-radius: 9999px;
579
- background-color: #3b82f6;
580
- color: #fff;
581
- display: flex;
582
- align-items: center;
583
- justify-content: center;
584
- font-weight: 600;
585
- }
586
-
587
- .user-name {
588
- color: #334155;
589
- font-weight: 500;
590
- }
591
-
592
- /* 页面内容 */
593
- .page-content {
594
- flex: 1;
595
- padding: 1.5rem;
596
- }
597
-
598
- .content-container {
599
- background-color: #fff;
600
- border-radius: 0.5rem;
601
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
602
- padding: 1.5rem;
603
- }
604
-
605
- /* 折叠状态 */
606
- .dashboard-container.collapsed .sidebar {
607
- width: 80px;
608
- }
609
-
610
- .dashboard-container.collapsed .logo-text,
611
- .dashboard-container.collapsed .nav-text,
612
- .dashboard-container.collapsed .nav-badge,
613
- .dashboard-container.collapsed .subnav-list {
614
- display: none;
615
- }
616
-
617
- .dashboard-container.collapsed .nav-link {
618
- justify-content: center;
619
- padding: 0.75rem;
620
- }
621
-
622
- .dashboard-container.collapsed .nav-icon {
623
- margin: 0;
624
- }
625
-
626
- .dashboard-container.collapsed .main-content {
627
- margin-left: 80px;
628
- }
629
-
630
- /* 响应式调整 */
631
- @media (max-width: 1024px) {
632
- .sidebar {
633
- transform: translateX(-100%);
634
- width: 260px;
635
- }
636
-
637
- .main-content {
638
- margin-left: 0;
639
- }
640
-
641
- .dashboard-container.collapsed .sidebar {
642
- transform: translateX(0);
643
- }
644
-
645
- .dashboard-container:not(.collapsed) .sidebar {
646
- transform: translateX(-100%);
647
- }
648
- }
649
-
650
- @media (max-width: 640px) {
651
- .search-box {
652
- display: none;
653
- }
654
-
655
- .user-name {
656
- display: none;
657
- }
658
-
659
- .top-navbar {
660
- padding: 0.75rem 1rem;
661
- }
662
-
663
- .page-content {
664
- padding: 1rem;
665
- }
666
-
667
- .content-container {
668
- padding: 1rem;
669
- }
670
- }
671
- </style>
@@ -1,48 +0,0 @@
1
- ---
2
- import DashboardLayout from './DashboardLayout.astro';
3
- import type { IMenuItem } from '../types/menu';
4
-
5
- const menuItems: IMenuItem[] = [
6
- {
7
- text: '仪表盘',
8
- href: '/dashboard',
9
- icon: 'dashboard',
10
- },
11
- {
12
- text: '用户管理',
13
- href: '/dashboard/users',
14
- icon: 'users',
15
- },
16
- {
17
- text: '设置',
18
- href: '/dashboard/settings',
19
- icon: 'settings',
20
- },
21
- ];
22
- ---
23
-
24
- <DashboardLayout
25
- title="仪表盘布局示例"
26
- description="这是一个仪表盘布局的示例页面"
27
- navItems={menuItems}>
28
- <div class="cosy:grid cosy:grid-cols-1 cosy:md:grid-cols-2 cosy:lg:grid-cols-3 cosy:gap-4">
29
- <div class="cosy:card cosy:bg-base-100 cosy:shadow-xl">
30
- <div class="cosy:card-body">
31
- <h2 class="cosy:card-title">总用户数</h2>
32
- <p class="cosy:text-4xl cosy:font-bold">1,234</p>
33
- </div>
34
- </div>
35
- <div class="cosy:card cosy:bg-base-100 cosy:shadow-xl">
36
- <div class="cosy:card-body">
37
- <h2 class="cosy:card-title">今日活跃</h2>
38
- <p class="cosy:text-4xl cosy:font-bold">567</p>
39
- </div>
40
- </div>
41
- <div class="cosy:card cosy:bg-base-100 cosy:shadow-xl">
42
- <div class="cosy:card-body">
43
- <h2 class="cosy:card-title">转化率</h2>
44
- <p class="cosy:text-4xl cosy:font-bold">45.8%</p>
45
- </div>
46
- </div>
47
- </div>
48
- </DashboardLayout>