@coffic/cosy-ui 0.7.4 → 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 (809) 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/src-astro/alert/Alert.astro +100 -0
  6. package/dist/src-astro/alert/EAlertBasic.astro +11 -0
  7. package/dist/src-astro/alert/EAlertBasicContainer.astro +11 -0
  8. package/dist/src-astro/alert/EAlertCustomStyle.astro +16 -0
  9. package/dist/src-astro/alert/EAlertCustomStyleContainer.astro +11 -0
  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/src-astro/alert/EAlertTypesContainer.astro +43 -0
  14. package/dist/src-astro/alert/EAlertWarning.astro +6 -0
  15. package/dist/src-astro/alert/EAlertWithTitle.astro +12 -0
  16. package/dist/src-astro/alert/EAlertWithTitleContainer.astro +11 -0
  17. package/dist/src-astro/alert/index.ts +16 -0
  18. package/dist/src-astro/article/Article.astro +139 -0
  19. package/dist/src-astro/article/ArticleBasic.astro +35 -0
  20. package/dist/src-astro/article/index.ts +11 -0
  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/src-astro/banner/BannerBasic.astro +5 -0
  25. package/dist/src-astro/banner/BannerCustomStyle.astro +8 -0
  26. package/dist/src-astro/banner/BannerDanger.astro +5 -0
  27. package/dist/src-astro/banner/BannerFadeIn.astro +5 -0
  28. package/dist/src-astro/banner/BannerInfo.astro +5 -0
  29. package/dist/src-astro/banner/BannerPrimary.astro +5 -0
  30. package/dist/src-astro/banner/BannerSecondary.astro +5 -0
  31. package/dist/src-astro/banner/BannerSlideUp.astro +5 -0
  32. package/dist/src-astro/banner/BannerSuccess.astro +5 -0
  33. package/dist/src-astro/banner/BannerWarning.astro +5 -0
  34. package/dist/src-astro/banner/index.ts +54 -0
  35. package/dist/src-astro/button/Button.astro +192 -0
  36. package/dist/src-astro/button/ButtonBasic.astro +18 -0
  37. package/dist/src-astro/button/ButtonBasicContainer.astro +11 -0
  38. package/dist/src-astro/button/ButtonIconBoth.astro +9 -0
  39. package/dist/src-astro/button/ButtonIconLeft.astro +8 -0
  40. package/dist/src-astro/button/ButtonIconRight.astro +8 -0
  41. package/dist/src-astro/button/ButtonLinkContainer.astro +19 -0
  42. package/dist/src-astro/button/ButtonLinkExternal.astro +8 -0
  43. package/dist/src-astro/button/ButtonShapes.astro +23 -0
  44. package/dist/src-astro/button/ButtonShapesContainer.astro +29 -0
  45. package/dist/src-astro/button/ButtonSizes.astro +15 -0
  46. package/dist/src-astro/button/ButtonSizesContainer.astro +11 -0
  47. package/dist/src-astro/button/ButtonStates.astro +12 -0
  48. package/dist/src-astro/button/ButtonStatesContainer.astro +11 -0
  49. package/dist/src-astro/button/ButtonVariants.astro +14 -0
  50. package/dist/src-astro/button/ButtonVariantsContainer.astro +73 -0
  51. package/dist/src-astro/button/ButtonWidth.astro +8 -0
  52. package/dist/src-astro/button/ButtonWidthContainer.astro +19 -0
  53. package/dist/src-astro/button/ButtonWithIcons.astro +25 -0
  54. package/dist/src-astro/button/ButtonWithIconsContainer.astro +29 -0
  55. package/dist/src-astro/button/index_astro.ts +60 -0
  56. package/dist/src-astro/card/Card.astro +151 -0
  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/src-astro/code-container/ECodeContainerBasic.astro +19 -0
  75. package/dist/src-astro/code-container/ECodeContainerMultiple.astro +49 -0
  76. package/dist/src-astro/code-container/index.ts +14 -0
  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/src-astro/container/EContainerBasicContainer.astro +11 -0
  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/src-astro/container/EContainerFlexContainer.astro +34 -0
  98. package/dist/src-astro/container/EContainerFlexRow.astro +23 -0
  99. package/dist/src-astro/container/EContainerPadding.astro +32 -0
  100. package/dist/src-astro/container/EContainerPaddingContainer.astro +11 -0
  101. package/dist/src-astro/container/EContainerSizes.astro +36 -0
  102. package/dist/src-astro/container/EContainerSizesContainer.astro +11 -0
  103. package/dist/src-astro/container/index.ts +16 -0
  104. package/dist/src-astro/cosy.ts +6 -0
  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/src-astro/database/ExperimentDB.ts +106 -0
  109. package/dist/src-astro/database/LessonDB.ts +106 -0
  110. package/dist/src-astro/database/MetaDB.ts +74 -0
  111. package/dist/src-astro/entities/BaseDoc.ts +207 -0
  112. package/dist/src-astro/entities/BlogDoc.ts +107 -0
  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/src-astro/flex/Flex.astro +138 -0
  142. package/dist/src-astro/flex/FlexBasic.astro +26 -0
  143. package/dist/src-astro/flex/index.ts +11 -0
  144. package/dist/src-astro/footer/EFooterBasic.astro +18 -0
  145. package/dist/src-astro/footer/EFooterBasicContainer.astro +11 -0
  146. package/dist/src-astro/footer/EFooterComplete.astro +50 -0
  147. package/dist/src-astro/footer/EFooterCompleteContainer.astro +11 -0
  148. package/dist/src-astro/footer/EFooterFeaturesContainer.astro +40 -0
  149. package/dist/src-astro/footer/EFooterWithLogo.astro +28 -0
  150. package/dist/src-astro/footer/EFooterWithLogoContainer.astro +11 -0
  151. package/dist/src-astro/footer/EFooterWithNavigation.astro +24 -0
  152. package/dist/src-astro/footer/EFooterWithNavigationContainer.astro +11 -0
  153. package/dist/src-astro/footer/EFooterWithProducts.astro +24 -0
  154. package/dist/src-astro/footer/EFooterWithProductsContainer.astro +11 -0
  155. package/dist/src-astro/footer/EFooterWithSocial.astro +24 -0
  156. package/dist/src-astro/footer/EFooterWithSocialContainer.astro +11 -0
  157. package/dist/src-astro/footer/Footer.astro +351 -0
  158. package/dist/src-astro/footer/FooterSection.astro +49 -0
  159. package/dist/src-astro/footer/index.ts +31 -0
  160. package/dist/src-astro/grid/Grid.astro +190 -0
  161. package/dist/src-astro/grid/GridBasic.astro +21 -0
  162. package/dist/src-astro/grid/index.ts +11 -0
  163. package/dist/src-astro/header/Header.astro +209 -0
  164. package/dist/src-astro/header/HeaderBasic.astro +19 -0
  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/src-astro/header/HeaderCustomPosition.astro +34 -0
  169. package/dist/src-astro/header/HeaderWithNavigation.astro +27 -0
  170. package/dist/src-astro/header/index.ts +40 -0
  171. package/dist/src-astro/heading/Heading.astro +245 -0
  172. package/dist/src-astro/heading/index.ts +11 -0
  173. package/dist/src-astro/hero/Hero.astro +381 -0
  174. package/dist/src-astro/hero/HeroAlignCenter.astro +13 -0
  175. package/dist/src-astro/hero/HeroAlignContainer.astro +27 -0
  176. package/dist/src-astro/hero/HeroAlignLeft.astro +13 -0
  177. package/dist/src-astro/hero/HeroAlignRight.astro +13 -0
  178. package/dist/src-astro/hero/HeroBackgroundContainer.astro +18 -0
  179. package/dist/src-astro/hero/HeroBackgroundImage.astro +16 -0
  180. package/dist/src-astro/hero/HeroBackgroundImageContainer.astro +11 -0
  181. package/dist/src-astro/hero/HeroBasic.astro +12 -0
  182. package/dist/src-astro/hero/HeroBasicContainer.astro +11 -0
  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/src-astro/hero/HeroWithButtonContainer.astro +11 -0
  187. package/dist/src-astro/hero/HeroWithImage.astro +16 -0
  188. package/dist/src-astro/hero/HeroWithImageContainer.astro +11 -0
  189. package/dist/src-astro/hero/index.ts +39 -0
  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/src-astro/icons/SettingsIcon.astro +18 -0
  208. package/dist/src-astro/icons/SocialIcon.astro +100 -0
  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/src-astro/image/index.ts +17 -0
  221. package/dist/src-astro/integration.ts +14 -0
  222. package/dist/src-astro/language-switcher/LanguageSwitcher.astro +64 -0
  223. package/dist/src-astro/language-switcher/LanguageSwitcherBasic.astro +7 -0
  224. package/dist/src-astro/language-switcher/index.ts +11 -0
  225. package/dist/src-astro/layout-app/AppLayout.astro +267 -0
  226. package/dist/src-astro/layout-app/AppLayoutBasic.astro +54 -0
  227. package/dist/src-astro/layout-app/index.ts +11 -0
  228. package/dist/src-astro/layout-basic/BaseLayout.astro +103 -0
  229. package/dist/src-astro/layout-basic/BaseLayoutBasic.astro +17 -0
  230. package/dist/src-astro/layout-basic/index.ts +11 -0
  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/src-astro/layout-dashboard/index.ts +11 -0
  234. package/dist/src-astro/link/Link.astro +160 -0
  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/src-astro/link/index.ts +17 -0
  239. package/dist/src-astro/main/Main.astro +155 -0
  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/src-astro/module/Module.astro +68 -0
  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/src-astro/module/index.ts +17 -0
  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/src-astro/nav-item/index.ts +11 -0
  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/src-astro/nav-section/index.ts +11 -0
  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/src-astro/sidebar/index.ts +11 -0
  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/src-astro/sidebar-nav/index.ts +11 -0
  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/src-astro/speak/index.ts +14 -0
  269. package/dist/src-astro/stack/Stack.astro +153 -0
  270. package/dist/src-astro/stack/StackBasic.astro +21 -0
  271. package/dist/src-astro/stack/index.ts +11 -0
  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/src-astro/team-member/TeamMembers.astro +96 -0
  278. package/dist/src-astro/team-member/index.ts +30 -0
  279. package/dist/src-astro/text/Text.astro +189 -0
  280. package/dist/src-astro/text/TextBasic.astro +12 -0
  281. package/dist/src-astro/text/TextSizes.astro +11 -0
  282. package/dist/src-astro/text/index.ts +11 -0
  283. package/dist/src-astro/theme-switcher/ThemeItem.astro +45 -0
  284. package/dist/src-astro/theme-switcher/ThemeSwitcher.astro +121 -0
  285. package/dist/src-astro/theme-switcher/ThemeSwitcherBasic.astro +7 -0
  286. package/dist/src-astro/theme-switcher/index.ts +11 -0
  287. package/dist/src-astro/toc/TableOfContents.astro +438 -0
  288. package/dist/src-astro/toc/TableOfContentsBasic.astro +25 -0
  289. package/dist/src-astro/toc/index.ts +11 -0
  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/src-astro/types/image.ts +16 -0
  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/src-astro/utils/url.ts +17 -0
  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/vue/buttons-vue/ButtonVariants.vue +16 -0
  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/iPhoneWindow.vue +247 -0
  362. package/dist/vue/iPhone-vue/index.ts +31 -0
  363. package/dist/vue/icons-vue/AlertTriangleIcon.vue +30 -0
  364. package/dist/vue/icons-vue/CalendarIcon.vue +30 -0
  365. package/dist/vue/icons-vue/CheckCircleIcon.vue +30 -0
  366. package/dist/vue/icons-vue/CheckIcon.vue +30 -0
  367. package/dist/vue/icons-vue/ChevronDownIcon.vue +30 -0
  368. package/dist/vue/icons-vue/ClipboardIcon.vue +30 -0
  369. package/dist/vue/icons-vue/CloseIcon.vue +30 -0
  370. package/dist/vue/icons-vue/InboxArchiveIcon.vue +30 -0
  371. package/dist/vue/icons-vue/InfoCircleIcon.vue +30 -0
  372. package/dist/vue/icons-vue/InfoIcon.vue +30 -0
  373. package/dist/vue/icons-vue/LinkIcon.vue +30 -0
  374. package/dist/vue/icons-vue/MenuIcon.vue +30 -0
  375. package/dist/vue/icons-vue/SearchIcon.vue +30 -0
  376. package/dist/vue/icons-vue/SettingsIcon.vue +30 -0
  377. package/dist/vue/icons-vue/UserIcon.vue +30 -0
  378. package/dist/vue/icons-vue/VueIcon.vue +86 -0
  379. package/dist/vue/icons-vue/XCircleIcon.vue +30 -0
  380. package/dist/vue/icons-vue/index.ts +1 -0
  381. package/dist/vue/list-vue/ListItem.vue +5 -0
  382. package/dist/vue/list-vue/index.ts +1 -0
  383. package/dist/vue/mac-window-vue/Basic.vue +9 -0
  384. package/dist/vue/mac-window-vue/CustomHeight.vue +13 -0
  385. package/dist/vue/mac-window-vue/MacWindow.vue +283 -0
  386. package/dist/vue/mac-window-vue/WithEvents.vue +40 -0
  387. package/dist/vue/mac-window-vue/WithSidebar.vue +31 -0
  388. package/dist/vue/mac-window-vue/WithTabs.vue +26 -0
  389. package/dist/vue/mac-window-vue/WithToolbar.vue +44 -0
  390. package/dist/vue/mac-window-vue/index.ts +36 -0
  391. package/dist/vue/utils/component.ts +42 -0
  392. package/dist/vue/utils/i18n.ts +83 -0
  393. package/dist/vue/utils/image.ts +128 -0
  394. package/dist/vue/utils/lang_entry.ts +240 -0
  395. package/dist/vue/utils/lang_package.ts +150 -0
  396. package/dist/vue/utils/language.ts +121 -0
  397. package/dist/vue/utils/link.ts +250 -0
  398. package/dist/vue/utils/logger.ts +136 -0
  399. package/dist/vue/utils/path.ts +59 -0
  400. package/dist/vue/utils/social.ts +90 -0
  401. package/dist/vue/utils/theme.ts +122 -0
  402. package/dist/vue/utils/url.ts +17 -0
  403. package/package.json +85 -82
  404. package/LICENSE +0 -21
  405. package/README.md +0 -31
  406. package/dist/alert/Alert.astro +0 -94
  407. package/dist/alert/EAlertBasic.astro +0 -11
  408. package/dist/alert/EAlertBasicContainer.astro +0 -11
  409. package/dist/alert/EAlertCustomStyle.astro +0 -14
  410. package/dist/alert/EAlertCustomStyleContainer.astro +0 -11
  411. package/dist/alert/EAlertError.astro +0 -6
  412. package/dist/alert/EAlertInfo.astro +0 -6
  413. package/dist/alert/EAlertSuccess.astro +0 -6
  414. package/dist/alert/EAlertTypesContainer.astro +0 -43
  415. package/dist/alert/EAlertWarning.astro +0 -6
  416. package/dist/alert/EAlertWithTitle.astro +0 -12
  417. package/dist/alert/EAlertWithTitleContainer.astro +0 -11
  418. package/dist/alert/index.ts +0 -16
  419. package/dist/alert-dialog-vue/AlertDialog.vue +0 -120
  420. package/dist/alert-dialog-vue/Basic.vue +0 -38
  421. package/dist/alert-dialog-vue/Multilang.vue +0 -48
  422. package/dist/alert-dialog-vue/index.ts +0 -20
  423. package/dist/article/Article.astro +0 -139
  424. package/dist/article/ArticleBasic.astro +0 -31
  425. package/dist/article/index.ts +0 -11
  426. package/dist/assets/iconData.ts +0 -116
  427. package/dist/banner/Banner.astro +0 -165
  428. package/dist/banner/BannerAllAnimations.astro +0 -10
  429. package/dist/banner/BannerBasic.astro +0 -5
  430. package/dist/banner/BannerCustomStyle.astro +0 -7
  431. package/dist/banner/BannerDanger.astro +0 -5
  432. package/dist/banner/BannerFadeIn.astro +0 -5
  433. package/dist/banner/BannerInfo.astro +0 -5
  434. package/dist/banner/BannerPrimary.astro +0 -5
  435. package/dist/banner/BannerSecondary.astro +0 -5
  436. package/dist/banner/BannerSlideUp.astro +0 -5
  437. package/dist/banner/BannerSuccess.astro +0 -5
  438. package/dist/banner/BannerWarning.astro +0 -5
  439. package/dist/banner/index.ts +0 -41
  440. package/dist/banner-box-vue/BannerBox.vue +0 -296
  441. package/dist/banner-box-vue/DownloadButton.vue +0 -202
  442. package/dist/banner-box-vue/ExampleBasic.vue +0 -32
  443. package/dist/banner-box-vue/ExampleCustomBg.vue +0 -32
  444. package/dist/banner-box-vue/ExampleDisplayModeAlways.vue +0 -34
  445. package/dist/banner-box-vue/ExampleDisplayModeHover.vue +0 -34
  446. package/dist/banner-box-vue/ExampleDisplayModeNever.vue +0 -34
  447. package/dist/banner-box-vue/ExampleImageExport.vue +0 -37
  448. package/dist/banner-box-vue/ExampleSizePreset.vue +0 -35
  449. package/dist/banner-box-vue/FeatureCard.vue +0 -190
  450. package/dist/banner-box-vue/SmartBanner.vue +0 -44
  451. package/dist/banner-box-vue/bgStyles.ts +0 -55
  452. package/dist/banner-box-vue/index.ts +0 -48
  453. package/dist/banner-box-vue/sizePresets.ts +0 -23
  454. package/dist/blog/Blog.astro +0 -249
  455. package/dist/blog/index.ts +0 -1
  456. package/dist/blog-vue/Basic.vue +0 -30
  457. package/dist/blog-vue/BlogList.vue +0 -100
  458. package/dist/blog-vue/Empty.vue +0 -8
  459. package/dist/blog-vue/EmptyEnglish.vue +0 -8
  460. package/dist/blog-vue/English.vue +0 -24
  461. package/dist/blog-vue/index.ts +0 -29
  462. package/dist/button/Button.astro +0 -192
  463. package/dist/button/ButtonBasic.astro +0 -18
  464. package/dist/button/ButtonBasicContainer.astro +0 -11
  465. package/dist/button/ButtonIconBoth.astro +0 -9
  466. package/dist/button/ButtonIconLeft.astro +0 -8
  467. package/dist/button/ButtonIconRight.astro +0 -8
  468. package/dist/button/ButtonLinkContainer.astro +0 -19
  469. package/dist/button/ButtonLinkExternal.astro +0 -8
  470. package/dist/button/ButtonShapes.astro +0 -23
  471. package/dist/button/ButtonShapesContainer.astro +0 -25
  472. package/dist/button/ButtonSizes.astro +0 -15
  473. package/dist/button/ButtonSizesContainer.astro +0 -11
  474. package/dist/button/ButtonStates.astro +0 -12
  475. package/dist/button/ButtonStatesContainer.astro +0 -11
  476. package/dist/button/ButtonVariants.astro +0 -14
  477. package/dist/button/ButtonVariantsContainer.astro +0 -64
  478. package/dist/button/ButtonWidth.astro +0 -8
  479. package/dist/button/ButtonWidthContainer.astro +0 -19
  480. package/dist/button/ButtonWithIcons.astro +0 -25
  481. package/dist/button/ButtonWithIconsContainer.astro +0 -25
  482. package/dist/button/index_astro.ts +0 -62
  483. package/dist/buttons-vue/Button.vue +0 -105
  484. package/dist/buttons-vue/ButtonBasic.vue +0 -11
  485. package/dist/buttons-vue/ButtonFeature.vue +0 -91
  486. package/dist/buttons-vue/ButtonFeatureBasic.vue +0 -8
  487. package/dist/buttons-vue/ButtonFeatureWithTips.vue +0 -7
  488. package/dist/buttons-vue/ButtonLink.vue +0 -13
  489. package/dist/buttons-vue/ButtonSizes.vue +0 -12
  490. package/dist/buttons-vue/ButtonVariants.vue +0 -16
  491. package/dist/buttons-vue/ButtonWithIcons.vue +0 -21
  492. package/dist/buttons-vue/index.ts +0 -1
  493. package/dist/card/Card.astro +0 -140
  494. package/dist/card/CardCompact.astro +0 -77
  495. package/dist/card/CardCourse.astro +0 -32
  496. package/dist/card/CardLink.astro +0 -75
  497. package/dist/card/CardWithImage.astro +0 -39
  498. package/dist/card/ECardBasic.astro +0 -11
  499. package/dist/card/ECardBasicContainer.astro +0 -11
  500. package/dist/card/ECardClickable.astro +0 -13
  501. package/dist/card/ECardClickableContainer.astro +0 -11
  502. package/dist/card/ECardCompact.astro +0 -13
  503. package/dist/card/ECardCompactContainer.astro +0 -11
  504. package/dist/card/ECardCustomStyle.astro +0 -17
  505. package/dist/card/ECardCustomStyleContainer.astro +0 -11
  506. package/dist/card/ECardWithImage.astro +0 -16
  507. package/dist/card/ECardWithImageContainer.astro +0 -11
  508. package/dist/card/ECardWithSubtitle.astro +0 -13
  509. package/dist/card/ECardWithSubtitleContainer.astro +0 -11
  510. package/dist/card/index.ts +0 -33
  511. package/dist/code-block/CodeBlock.astro +0 -152
  512. package/dist/code-block/index.ts +0 -1
  513. package/dist/code-container/CodeContainer.astro +0 -254
  514. package/dist/code-container/ECodeContainerBasic.astro +0 -19
  515. package/dist/code-container/ECodeContainerMultiple.astro +0 -49
  516. package/dist/code-container/index.ts +0 -14
  517. package/dist/code-example/CodeExample.astro +0 -157
  518. package/dist/code-example/index.ts +0 -1
  519. package/dist/confirm-dialog-vue/Basic.vue +0 -57
  520. package/dist/confirm-dialog-vue/ConfirmDialog.vue +0 -134
  521. package/dist/confirm-dialog-vue/CustomButtons.vue +0 -69
  522. package/dist/confirm-dialog-vue/index.ts +0 -20
  523. package/dist/contact/Contact.astro +0 -279
  524. package/dist/contact/EContactBasic.astro +0 -15
  525. package/dist/contact/EContactBasicContainer.astro +0 -12
  526. package/dist/contact/EContactCompact.astro +0 -12
  527. package/dist/contact/EContactCompactContainer.astro +0 -12
  528. package/dist/contact/EContactCustomStyle.astro +0 -22
  529. package/dist/contact/EContactCustomStyleContainer.astro +0 -12
  530. package/dist/contact/EContactSocial.astro +0 -21
  531. package/dist/contact/EContactSocialContainer.astro +0 -12
  532. package/dist/contact/EContactWithTitle.astro +0 -18
  533. package/dist/contact/EContactWithTitleContainer.astro +0 -12
  534. package/dist/contact/index.ts +0 -21
  535. package/dist/container/Container.astro +0 -211
  536. package/dist/container/EContainerBasic.astro +0 -13
  537. package/dist/container/EContainerBasicContainer.astro +0 -11
  538. package/dist/container/EContainerFlexBetween.astro +0 -16
  539. package/dist/container/EContainerFlexCenter.astro +0 -23
  540. package/dist/container/EContainerFlexColumn.astro +0 -16
  541. package/dist/container/EContainerFlexContainer.astro +0 -34
  542. package/dist/container/EContainerFlexRow.astro +0 -16
  543. package/dist/container/EContainerPadding.astro +0 -32
  544. package/dist/container/EContainerPaddingContainer.astro +0 -11
  545. package/dist/container/EContainerSizes.astro +0 -36
  546. package/dist/container/EContainerSizesContainer.astro +0 -11
  547. package/dist/container/index.ts +0 -16
  548. package/dist/cosy.ts +0 -6
  549. package/dist/counter-vue/VueCounter.vue +0 -29
  550. package/dist/counter-vue/index.ts +0 -1
  551. package/dist/database/BaseDB.ts +0 -231
  552. package/dist/database/BlogDB.ts +0 -198
  553. package/dist/database/CourseDB.ts +0 -84
  554. package/dist/database/ExperimentDB.ts +0 -102
  555. package/dist/database/LessonDB.ts +0 -102
  556. package/dist/database/MetaDB.ts +0 -74
  557. package/dist/entities/BaseDoc.ts +0 -195
  558. package/dist/entities/BlogDoc.ts +0 -104
  559. package/dist/entities/CourseDoc.ts +0 -96
  560. package/dist/entities/ExperimentDoc.ts +0 -114
  561. package/dist/entities/Feature.ts +0 -53
  562. package/dist/entities/LessonDoc.ts +0 -148
  563. package/dist/entities/MetaDoc.ts +0 -90
  564. package/dist/entities/SidebarItem.ts +0 -89
  565. package/dist/entities/Tag.ts +0 -42
  566. package/dist/env.d.ts +0 -32
  567. package/dist/errors/404.astro +0 -27
  568. package/dist/errors/404Basic.astro +0 -5
  569. package/dist/errors/index.ts +0 -11
  570. package/dist/flex/Flex.astro +0 -138
  571. package/dist/flex/FlexBasic.astro +0 -9
  572. package/dist/flex/index.ts +0 -11
  573. package/dist/footer/EFooterBasic.astro +0 -18
  574. package/dist/footer/EFooterBasicContainer.astro +0 -11
  575. package/dist/footer/EFooterComplete.astro +0 -45
  576. package/dist/footer/EFooterCompleteContainer.astro +0 -11
  577. package/dist/footer/EFooterFeaturesContainer.astro +0 -40
  578. package/dist/footer/EFooterWithLogo.astro +0 -23
  579. package/dist/footer/EFooterWithLogoContainer.astro +0 -11
  580. package/dist/footer/EFooterWithNavigation.astro +0 -24
  581. package/dist/footer/EFooterWithNavigationContainer.astro +0 -11
  582. package/dist/footer/EFooterWithProducts.astro +0 -24
  583. package/dist/footer/EFooterWithProductsContainer.astro +0 -11
  584. package/dist/footer/EFooterWithSocial.astro +0 -24
  585. package/dist/footer/EFooterWithSocialContainer.astro +0 -11
  586. package/dist/footer/Footer.astro +0 -339
  587. package/dist/footer/FooterSection.astro +0 -48
  588. package/dist/footer/index.ts +0 -31
  589. package/dist/grid/Grid.astro +0 -190
  590. package/dist/grid/GridBasic.astro +0 -9
  591. package/dist/grid/index.ts +0 -11
  592. package/dist/header/Header.astro +0 -204
  593. package/dist/header/HeaderBasic.astro +0 -14
  594. package/dist/header/HeaderCustomNavbarCenter.astro +0 -23
  595. package/dist/header/HeaderCustomNavbarEnd.astro +0 -20
  596. package/dist/header/HeaderCustomNavbarStart.astro +0 -20
  597. package/dist/header/HeaderCustomPosition.astro +0 -23
  598. package/dist/header/HeaderWithNavigation.astro +0 -22
  599. package/dist/header/index.ts +0 -26
  600. package/dist/heading/Heading.astro +0 -238
  601. package/dist/heading/index.ts +0 -11
  602. package/dist/hero/Hero.astro +0 -368
  603. package/dist/hero/HeroAlignCenter.astro +0 -13
  604. package/dist/hero/HeroAlignContainer.astro +0 -23
  605. package/dist/hero/HeroAlignLeft.astro +0 -13
  606. package/dist/hero/HeroAlignRight.astro +0 -13
  607. package/dist/hero/HeroBackgroundContainer.astro +0 -18
  608. package/dist/hero/HeroBackgroundImage.astro +0 -12
  609. package/dist/hero/HeroBackgroundImageContainer.astro +0 -11
  610. package/dist/hero/HeroBasic.astro +0 -12
  611. package/dist/hero/HeroBasicContainer.astro +0 -11
  612. package/dist/hero/HeroGradientBackground.astro +0 -10
  613. package/dist/hero/HeroPlainBackground.astro +0 -10
  614. package/dist/hero/HeroWithButton.astro +0 -11
  615. package/dist/hero/HeroWithButtonContainer.astro +0 -11
  616. package/dist/hero/HeroWithImage.astro +0 -16
  617. package/dist/hero/HeroWithImageContainer.astro +0 -11
  618. package/dist/hero/index.ts +0 -39
  619. package/dist/iPhone-vue/Basic.vue +0 -33
  620. package/dist/iPhone-vue/CustomBackground.vue +0 -33
  621. package/dist/iPhone-vue/NoFrame.vue +0 -33
  622. package/dist/iPhone-vue/WeatherApp.vue +0 -97
  623. package/dist/iPhone-vue/iPhoneWindow.vue +0 -193
  624. package/dist/iPhone-vue/index.ts +0 -28
  625. package/dist/icons/AlertTriangle.astro +0 -24
  626. package/dist/icons/AstroIcon.astro +0 -61
  627. package/dist/icons/CalendarIcon.astro +0 -24
  628. package/dist/icons/CheckCircle.astro +0 -23
  629. package/dist/icons/CheckIcon.astro +0 -27
  630. package/dist/icons/ChevronDownIcon.astro +0 -24
  631. package/dist/icons/ClipboardIcon.astro +0 -27
  632. package/dist/icons/CloseIcon.astro +0 -27
  633. package/dist/icons/ErrorIcon.astro +0 -24
  634. package/dist/icons/GithubIcon.astro +0 -19
  635. package/dist/icons/InboxArchive.astro +0 -23
  636. package/dist/icons/InfoCircle.astro +0 -24
  637. package/dist/icons/InfoIcon.astro +0 -26
  638. package/dist/icons/LinkIcon.astro +0 -27
  639. package/dist/icons/LinkedinIcon.astro +0 -23
  640. package/dist/icons/MenuIcon.astro +0 -27
  641. package/dist/icons/SearchIcon.astro +0 -23
  642. package/dist/icons/SettingsIcon.astro +0 -18
  643. package/dist/icons/SocialIcon.astro +0 -100
  644. package/dist/icons/SuccessIcon.astro +0 -24
  645. package/dist/icons/SunCloudyIcon.astro +0 -23
  646. package/dist/icons/TwitterIcon.astro +0 -24
  647. package/dist/icons/UserIcon.astro +0 -24
  648. package/dist/icons/WarningIcon.astro +0 -27
  649. package/dist/icons/XCircle.astro +0 -24
  650. package/dist/icons/index.ts +0 -3
  651. package/dist/icons-vue/AlertTriangleIcon.vue +0 -30
  652. package/dist/icons-vue/CalendarIcon.vue +0 -30
  653. package/dist/icons-vue/CheckCircleIcon.vue +0 -30
  654. package/dist/icons-vue/CheckIcon.vue +0 -30
  655. package/dist/icons-vue/ChevronDownIcon.vue +0 -30
  656. package/dist/icons-vue/ClipboardIcon.vue +0 -30
  657. package/dist/icons-vue/CloseIcon.vue +0 -30
  658. package/dist/icons-vue/InboxArchiveIcon.vue +0 -30
  659. package/dist/icons-vue/InfoCircleIcon.vue +0 -30
  660. package/dist/icons-vue/InfoIcon.vue +0 -30
  661. package/dist/icons-vue/LinkIcon.vue +0 -30
  662. package/dist/icons-vue/MenuIcon.vue +0 -30
  663. package/dist/icons-vue/SearchIcon.vue +0 -30
  664. package/dist/icons-vue/SettingsIcon.vue +0 -30
  665. package/dist/icons-vue/UserIcon.vue +0 -30
  666. package/dist/icons-vue/VueIcon.vue +0 -76
  667. package/dist/icons-vue/XCircleIcon.vue +0 -30
  668. package/dist/icons-vue/index.ts +0 -1
  669. package/dist/image/Image.astro +0 -342
  670. package/dist/image/ImageBasic.astro +0 -1
  671. package/dist/image/ImageEffects.astro +0 -32
  672. package/dist/image/ImageLoading.astro +0 -35
  673. package/dist/image/index.ts +0 -17
  674. package/dist/index.ts +0 -3
  675. package/dist/index_astro.ts +0 -77
  676. package/dist/index_collection.ts +0 -104
  677. package/dist/index_icons.ts +0 -24
  678. package/dist/index_utils.ts +0 -8
  679. package/dist/index_vue.ts +0 -33
  680. package/dist/integration.ts +0 -14
  681. package/dist/language-switcher/LanguageSwitcher.astro +0 -64
  682. package/dist/language-switcher/LanguageSwitcherBasic.astro +0 -7
  683. package/dist/language-switcher/index.ts +0 -11
  684. package/dist/layout-app/AppLayout.astro +0 -259
  685. package/dist/layout-app/AppLayoutBasic.astro +0 -53
  686. package/dist/layout-app/index.ts +0 -11
  687. package/dist/layout-basic/BaseLayout.astro +0 -99
  688. package/dist/layout-basic/BaseLayoutBasic.astro +0 -16
  689. package/dist/layout-basic/index.ts +0 -11
  690. package/dist/layout-dashboard/DashboardLayout.astro +0 -671
  691. package/dist/layout-dashboard/DashboardLayoutBasic.astro +0 -48
  692. package/dist/layout-dashboard/index.ts +0 -11
  693. package/dist/link/Link.astro +0 -145
  694. package/dist/link/LinkAnimations.astro +0 -21
  695. package/dist/link/LinkBasic.astro +0 -17
  696. package/dist/link/LinkVariants.astro +0 -20
  697. package/dist/link/index.ts +0 -17
  698. package/dist/list-vue/ListItem.vue +0 -5
  699. package/dist/list-vue/index.ts +0 -1
  700. package/dist/mac-window-vue/Basic.vue +0 -11
  701. package/dist/mac-window-vue/CustomHeight.vue +0 -13
  702. package/dist/mac-window-vue/MacWindow.vue +0 -262
  703. package/dist/mac-window-vue/WithEvents.vue +0 -34
  704. package/dist/mac-window-vue/WithSidebar.vue +0 -21
  705. package/dist/mac-window-vue/WithTabs.vue +0 -21
  706. package/dist/mac-window-vue/WithToolbar.vue +0 -43
  707. package/dist/mac-window-vue/index.ts +0 -36
  708. package/dist/main/Main.astro +0 -147
  709. package/dist/main/index.ts +0 -1
  710. package/dist/modal/Modal.astro +0 -119
  711. package/dist/modal/index.ts +0 -1
  712. package/dist/module/Module.astro +0 -61
  713. package/dist/module/ModuleBasic.astro +0 -12
  714. package/dist/module/ModuleCustom.astro +0 -14
  715. package/dist/module/ModuleGrid.astro +0 -26
  716. package/dist/module/index.ts +0 -17
  717. package/dist/nav-item/NavItems.astro +0 -44
  718. package/dist/nav-item/NavItemsBasic.astro +0 -27
  719. package/dist/nav-item/index.ts +0 -11
  720. package/dist/nav-section/NavSection.astro +0 -42
  721. package/dist/nav-section/NavSectionBasic.astro +0 -12
  722. package/dist/nav-section/index.ts +0 -11
  723. package/dist/products/ProductCard.astro +0 -375
  724. package/dist/products/Products.astro +0 -195
  725. package/dist/products/index.ts +0 -2
  726. package/dist/section/Section.astro +0 -140
  727. package/dist/section/index.ts +0 -1
  728. package/dist/sidebar/Sidebar.astro +0 -174
  729. package/dist/sidebar/SidebarBasic.astro +0 -1
  730. package/dist/sidebar/index.ts +0 -11
  731. package/dist/sidebar-nav/SidebarNav.astro +0 -117
  732. package/dist/sidebar-nav/SidebarNavBasic.astro +0 -32
  733. package/dist/sidebar-nav/index.ts +0 -11
  734. package/dist/speak/Speak.astro +0 -65
  735. package/dist/speak/SpeakBasic.astro +0 -13
  736. package/dist/speak/SpeakGrid.astro +0 -29
  737. package/dist/speak/index.ts +0 -14
  738. package/dist/stack/Stack.astro +0 -151
  739. package/dist/stack/StackBasic.astro +0 -15
  740. package/dist/stack/index.ts +0 -11
  741. package/dist/team-member/TeamMember.astro +0 -135
  742. package/dist/team-member/TeamMemberBasic.astro +0 -25
  743. package/dist/team-member/TeamMemberCustomStyle.astro +0 -26
  744. package/dist/team-member/TeamMemberGroup.astro +0 -60
  745. package/dist/team-member/TeamMemberWithSocial.astro +0 -30
  746. package/dist/team-member/TeamMembers.astro +0 -104
  747. package/dist/team-member/index.ts +0 -23
  748. package/dist/text/Text.astro +0 -189
  749. package/dist/text/TextBasic.astro +0 -12
  750. package/dist/text/TextSizes.astro +0 -11
  751. package/dist/text/index.ts +0 -11
  752. package/dist/theme-switcher/ThemeItem.astro +0 -45
  753. package/dist/theme-switcher/ThemeSwitcher.astro +0 -120
  754. package/dist/theme-switcher/ThemeSwitcherBasic.astro +0 -7
  755. package/dist/theme-switcher/index.ts +0 -11
  756. package/dist/toc/TableOfContents.astro +0 -405
  757. package/dist/toc/TableOfContentsBasic.astro +0 -25
  758. package/dist/toc/index.ts +0 -11
  759. package/dist/types/article.ts +0 -22
  760. package/dist/types/footer.ts +0 -129
  761. package/dist/types/header.ts +0 -87
  762. package/dist/types/heading.ts +0 -13
  763. package/dist/types/image.ts +0 -16
  764. package/dist/types/layout.ts +0 -71
  765. package/dist/types/main.ts +0 -80
  766. package/dist/types/menu.ts +0 -24
  767. package/dist/types/meta.ts +0 -55
  768. package/dist/types/product.ts +0 -10
  769. package/dist/types/sidebar.ts +0 -39
  770. package/dist/types/static-path.ts +0 -8
  771. package/dist/utils/component.ts +0 -39
  772. package/dist/utils/i18n.ts +0 -83
  773. package/dist/utils/image.ts +0 -126
  774. package/dist/utils/lang_entry.ts +0 -240
  775. package/dist/utils/lang_package.ts +0 -150
  776. package/dist/utils/language.ts +0 -118
  777. package/dist/utils/link.ts +0 -248
  778. package/dist/utils/logger.ts +0 -130
  779. package/dist/utils/path.ts +0 -55
  780. package/dist/utils/social.ts +0 -90
  781. package/dist/utils/theme.ts +0 -114
  782. package/dist/utils/url.ts +0 -17
  783. /package/dist/{assets → src-astro/assets}/book.png +0 -0
  784. /package/dist/{assets → src-astro/assets}/logo-rounded.png +0 -0
  785. /package/dist/{assets → src-astro/assets}/logo.png +0 -0
  786. /package/dist/{button → src-astro/button}/ButtonBlock.astro +0 -0
  787. /package/dist/{button → src-astro/button}/ButtonError.astro +0 -0
  788. /package/dist/{button → src-astro/button}/ButtonGhost.astro +0 -0
  789. /package/dist/{button → src-astro/button}/ButtonInfo.astro +0 -0
  790. /package/dist/{button → src-astro/button}/ButtonLink.astro +0 -0
  791. /package/dist/{button → src-astro/button}/ButtonNeutral.astro +0 -0
  792. /package/dist/{button → src-astro/button}/ButtonOutline.astro +0 -0
  793. /package/dist/{button → src-astro/button}/ButtonShapeCircle.astro +0 -0
  794. /package/dist/{button → src-astro/button}/ButtonShapeDefault.astro +0 -0
  795. /package/dist/{button → src-astro/button}/ButtonShapeSquare.astro +0 -0
  796. /package/dist/{button → src-astro/button}/ButtonSuccess.astro +0 -0
  797. /package/dist/{button → src-astro/button}/ButtonWarning.astro +0 -0
  798. /package/dist/{button → src-astro/button}/ButtonWide.astro +0 -0
  799. /package/dist/{card → src-astro/card}/CardBasic.astro +0 -0
  800. /package/dist/{heading → src-astro/heading}/HeadingBasic.astro +0 -0
  801. /package/dist/{types → src-astro/types}/nav.ts +0 -0
  802. /package/dist/{iPhone-vue → vue/iPhone-vue}/assets/iPhone 14 Pro - Deep Purple - Landscape.png +0 -0
  803. /package/dist/{iPhone-vue → vue/iPhone-vue}/assets/iPhone 14 Pro - Deep Purple - Portrait.png +0 -0
  804. /package/dist/{iPhone-vue → vue/iPhone-vue}/assets/iPhone 14 Pro - Gold - Landscape.png +0 -0
  805. /package/dist/{iPhone-vue → vue/iPhone-vue}/assets/iPhone 14 Pro - Gold - Portrait.png +0 -0
  806. /package/dist/{iPhone-vue → vue/iPhone-vue}/assets/iPhone 14 Pro - Silver - Landscape.png +0 -0
  807. /package/dist/{iPhone-vue → vue/iPhone-vue}/assets/iPhone 14 Pro - Silver - Portrait.png +0 -0
  808. /package/dist/{iPhone-vue → vue/iPhone-vue}/assets/iPhone 14 Pro - Space Black - Landscape.png +0 -0
  809. /package/dist/{iPhone-vue → vue/iPhone-vue}/assets/iPhone 14 Pro - Space Black - Portrait.png +0 -0
@@ -1,231 +0,0 @@
1
- import { getCollection, getEntry, type CollectionEntry, type DataEntryMap } from 'astro:content';
2
- import { cosyLogger, ERROR_PREFIX } from '../cosy';
3
- import type { BaseDoc } from '..';
4
-
5
- /**
6
- * BaseDB 是所有数据库类的基类,提供了通用的文档操作功能。
7
- *
8
- * 使用方法:
9
- * ```typescript
10
- * class MyDB extends BaseDB<'collection', MyEntry, MyDoc> {
11
- * protected collectionName = 'collection' as const;
12
- * protected createDoc(entry: MyEntry): MyDoc {
13
- * return new MyDoc(entry);
14
- * }
15
- * }
16
- *
17
- * // 使用单例模式获取实例
18
- * const db = MyDB.getInstance();
19
- * const docs = await db.allTopLevelDocs();
20
- * ```
21
- *
22
- * 类型参数说明:
23
- * @template Collection - Astro content collection 的名称,必须是 DataEntryMap 的键
24
- * @template Entry - Collection 对应的条目类型
25
- * @template Doc - 文档类型,通常是自定义的文档类
26
- */
27
- export abstract class BaseDB<
28
- Collection extends keyof DataEntryMap,
29
- Entry extends CollectionEntry<Collection>,
30
- Doc extends BaseDoc<Collection, Entry>,
31
- > {
32
- /** 集合名称,必须在子类中指定 */
33
- protected abstract collectionName: Collection;
34
-
35
- /**
36
- * 创建文档实例的方法,必须在子类中实现
37
- * @param entry - 集合条目
38
- * @returns 文档实例
39
- */
40
- protected abstract createDoc(entry: Entry): Doc;
41
-
42
- /**
43
- * 获取所有文档的ID
44
- * @returns 返回所有文档的ID数组
45
- */
46
- protected async getAllIds(): Promise<string[]> {
47
- const entries = await getCollection(this.collectionName);
48
- return entries.map(entry => entry.id);
49
- }
50
-
51
- /**
52
- * 获取集合中的所有条目
53
- * @returns 返回所有条目的数组
54
- */
55
- protected async getEntries(): Promise<Entry[]> {
56
- return await getCollection(this.collectionName);
57
- }
58
-
59
- /**
60
- * 获取指定深度的文档
61
- * 深度是指文档 ID 中斜杠的数量加1
62
- * 例如:
63
- * - "blog.md" 深度为1
64
- * - "zh-cn/blog.md" 深度为2
65
- * - "zh-cn/tech/blog.md" 深度为3
66
- *
67
- * @param depth - 文档深度
68
- * @returns 返回指定深度的文档数组
69
- */
70
- protected async getDocsByDepth(depth: number): Promise<Doc[]> {
71
- const entries = await getCollection(
72
- this.collectionName,
73
- ({ id }: { id: string }) => id.split('/').length === depth
74
- );
75
-
76
- if (entries.length === 0) {
77
- cosyLogger.warn(`[BaseDB] 没有找到深度为${depth}的文档(collection=${this.collectionName as string})`);
78
- const allEntries = await getCollection(this.collectionName);
79
- cosyLogger.array('[BaseDB] 所有文档', allEntries.map(entry => entry.id));
80
- return [];
81
- }
82
-
83
- return entries.map(entry => this.createDoc(entry as Entry));
84
- }
85
-
86
- /**
87
- * 根据ID查找单个文档
88
- * @param id - 文档ID
89
- * @param debug - 是否启用调试模式, 默认为false
90
- * @throws 如果ID不是字符串类型,则抛出错误
91
- * @throws 如果文档不存在,则返回null
92
- * @throws 如果发生其他错误,则抛出错误
93
- * @returns 返回找到的文档,如果不存在则返回null
94
- */
95
- async find(id: string, debug: boolean = false): Promise<Doc | null> {
96
- if (debug) {
97
- cosyLogger.info(`查找文档,ID: ${id}`);
98
- }
99
-
100
- if (id == undefined) {
101
- cosyLogger.error('ID is undefined');
102
- throw new Error(ERROR_PREFIX + 'ID is undefined');
103
- }
104
-
105
- if (typeof id !== 'string') {
106
- cosyLogger.error('ID must be a string, but got ' + typeof id);
107
- cosyLogger.debug(id);
108
- throw new Error(ERROR_PREFIX + 'ID must be a string, but got ' + typeof id);
109
- }
110
-
111
- // 获取所有文档的ID并排好顺序
112
- if (debug) {
113
- const allIds = (await this.getAllIds()).sort();
114
- cosyLogger.array('所有文档的ID', allIds);
115
- }
116
-
117
- // 根据ID查找文档
118
- const entry = await getEntry(this.collectionName, id);
119
- return entry ? this.createDoc(entry as Entry) : null;
120
- }
121
-
122
- /**
123
- * 获取指定文档的直接子文档(不包括更深层级的文档)
124
- * 例如对于文档 "zh-cn/blog":
125
- * - "zh-cn/blog/post1.md" 会被包含
126
- * - "zh-cn/blog/2024/post2.md" 不会被包含
127
- *
128
- * @param parentId - 父文档ID
129
- * @returns 返回子文档数组
130
- */
131
- async getChildren(parentId: string): Promise<Doc[]> {
132
- const parentLevel = parentId.split('/').length;
133
- const childrenLevel = parentLevel + 1;
134
-
135
- const entries = await getCollection(
136
- this.collectionName,
137
- ({ id }: { id: string }) => id.startsWith(parentId) && id.split('/').length === childrenLevel
138
- );
139
-
140
- return entries.map(entry => this.createDoc(entry as Entry));
141
- }
142
-
143
- /**
144
- * 获取指定文档的所有后代文档(包括所有层级)
145
- * 例如对于文档 "zh-cn/blog",以下都会被包含:
146
- * - "zh-cn/blog/post1.md"
147
- * - "zh-cn/blog/2024/post2.md"
148
- * - "zh-cn/blog/2024/tech/post3.md"
149
- *
150
- * @param parentId - 父文档ID
151
- * @returns 返回所有后代文档数组
152
- */
153
- async getDescendantDocs(parentId: string): Promise<Doc[]> {
154
- const entries = await getCollection(this.collectionName, ({ id }: { id: string }) => id.startsWith(parentId));
155
- return entries.map(entry => this.createDoc(entry as Entry));
156
- }
157
-
158
- /**
159
- * 获取指定语言和级别的文档
160
- * 通过检查文档ID是否以指定语言代码开头来筛选
161
- *
162
- * @param lang - 语言代码(如 'zh-cn', 'en')
163
- * @param level - 文档级别
164
- * @returns 返回指定语言和级别的文档数组
165
- */
166
- protected async allDocsByLangAndLevel(lang: string, level: number = 1, debug: boolean = false): Promise<Doc[]> {
167
- const collectionName = this.collectionName as string;
168
- const docs = await this.getDocsByDepth(level);
169
-
170
- if (debug) {
171
- cosyLogger.array(`[BaseDB] 所有${level}级文档(lang=any,collection=${collectionName})`, docs);
172
- }
173
-
174
- if (docs.length === 0) {
175
- cosyLogger.warn(`[BaseDB] 没有找到${level}级文档(lang=any,collection=${collectionName})`);
176
- return [];
177
- }
178
-
179
- const filteredDocs = docs.filter((doc) => {
180
- const id = (doc as any).getId();
181
- return id && typeof id === 'string' && id.startsWith(lang);
182
- });
183
-
184
- if (debug) {
185
- cosyLogger.array(`[BaseDB] 所有${level}级文档(lang=${lang},collection=${collectionName})`, filteredDocs);
186
- }
187
-
188
- if (filteredDocs.length === 0) {
189
- cosyLogger.warn(`[BaseDB] 没有找到${level}级文档(lang=${lang},collection=${collectionName})`);
190
- cosyLogger.array(`[BaseDB] 所有${level}级文档`, docs.map((doc) => doc.getId()));
191
- return [];
192
- }
193
-
194
- return filteredDocs;
195
- }
196
-
197
- /**
198
- * 获取用于 Astro 静态路由生成的路径参数
199
- * 为每个文档生成包含语言和slug的路径参数
200
- *
201
- * @returns 返回路径参数数组,每个元素包含 lang 和 slug
202
- * @example
203
- * ```typescript
204
- * const paths = await db.getStaticPaths();
205
- * // 返回格式:
206
- * // [
207
- * // { params: { lang: 'zh-cn', slug: 'post1' } },
208
- * // { params: { lang: 'en', slug: 'post1' } }
209
- * // ]
210
- * ```
211
- */
212
- async getStaticPaths() {
213
- const debug = false;
214
- const docs = await this.getDescendantDocs('');
215
- const paths = docs.map((doc) => {
216
- const docWithMethods = doc as any;
217
- return {
218
- params: {
219
- lang: docWithMethods.getLang?.() || '',
220
- slug: docWithMethods.getSlug?.() || '',
221
- },
222
- };
223
- });
224
-
225
- if (debug) {
226
- cosyLogger.array('所有文档的路径', paths);
227
- }
228
-
229
- return paths;
230
- }
231
- }
@@ -1,198 +0,0 @@
1
- import BlogDoc from '../entities/BlogDoc';
2
- import type Tag from '../entities/Tag';
3
- import { cosyLogger } from '../cosy';
4
- import { type CollectionEntry } from 'astro:content';
5
- import { BaseDB } from './BaseDB';
6
-
7
- export const COLLECTION_BLOG = 'blogs' as const;
8
- export type BlogEntry = CollectionEntry<typeof COLLECTION_BLOG>;
9
-
10
- /**
11
- * 博客数据库类,用于管理博客内容集合。
12
- *
13
- * 目录结构:
14
- * ```
15
- * blogs/
16
- * ├── zh-cn/
17
- * │ ├── typescript-intro.md # 文章内容
18
- * │ ├── images/ # 文章相关图片
19
- * │ └── web-performance.md
20
- * └── en/
21
- * └── typescript-intro.md
22
- * └── images/
23
- * └── web-performance.md
24
- * ```
25
- */
26
- class BlogDB extends BaseDB<typeof COLLECTION_BLOG, BlogEntry, BlogDoc> {
27
- protected collectionName = COLLECTION_BLOG;
28
-
29
- protected createDoc(entry: BlogEntry): BlogDoc {
30
- return BlogDoc.fromEntry(entry);
31
- }
32
-
33
- /**
34
- * 获取所有博客
35
- *
36
- * @returns {Promise<BlogDoc[]>} 返回所有博客
37
- */
38
- async allBlogs(): Promise<BlogDoc[]> {
39
- const debug = false;
40
- const entries = await this.getDocsByDepth(2);
41
-
42
- if (debug) {
43
- cosyLogger.array('所有博客文档', entries);
44
- }
45
-
46
- return entries;
47
- }
48
-
49
- /**
50
- * 获取指定语言的所有博客
51
- *
52
- * @param lang - 语言代码
53
- * @returns {Promise<BlogDoc[]>} 返回指定语言的所有博客
54
- */
55
- async allBlogsByLang(lang: string): Promise<BlogDoc[]> {
56
- const docs = await this.allBlogs();
57
- const filteredEntries = docs.filter((doc) => doc.getId().startsWith(lang));
58
-
59
- return filteredEntries;
60
- }
61
-
62
- /**
63
- * 获取用于 Astro 静态路由生成的路径参数,专门配合 [lang]/blogs/[slug].astro 使用
64
- *
65
- * @param debug - 是否开启调试模式
66
- * @returns 返回路径参数数组
67
- */
68
- async getStaticPaths(debug: boolean = false) {
69
- const docs = await this.allBlogs();
70
-
71
- const paths = docs.map((doc) => {
72
- return {
73
- params: {
74
- lang: doc.getLang(),
75
- slug: doc.getSlug(),
76
- },
77
- };
78
- });
79
-
80
- if (debug) {
81
- cosyLogger.array('所有博客文档的路径', paths);
82
- }
83
-
84
- return paths;
85
- }
86
-
87
- /**
88
- * 获取所有博客标签
89
- * 标签会根据语言和名称去重,使用复合键 "lang:name" 确保唯一性
90
- *
91
- * @returns 返回所有标签数组
92
- * 返回格式:
93
- * [
94
- * { name: 'typescript', lang: 'zh-cn', count: 5 },
95
- * { name: 'javascript', lang: 'en', count: 3 }
96
- * ]
97
- */
98
- async getTags(): Promise<Tag[]> {
99
- const tagsMap = new Map<string, Tag>();
100
- const posts = await this.allBlogs();
101
-
102
- posts.forEach((post) => {
103
- post.getTags().forEach((tag) => {
104
- const key = `${tag.lang}:${tag.name}`;
105
- if (!tagsMap.has(key)) {
106
- tagsMap.set(key, tag);
107
- }
108
- });
109
- });
110
-
111
- return Array.from(tagsMap.values());
112
- }
113
-
114
- /**
115
- * 获取指定语言的博客标签
116
- *
117
- * @param lang - 语言代码(如 'zh-cn', 'en')
118
- * @returns 返回指定语言的标签数组
119
- */
120
- async getTagsByLang(lang: string): Promise<Tag[]> {
121
- const debug = false;
122
- const tagsMap = new Map<string, Tag>();
123
- const posts = await this.allBlogsByLang(lang);
124
-
125
- if (debug) {
126
- cosyLogger.array('posts', posts);
127
- }
128
-
129
- if (posts.length === 0) {
130
- return [];
131
- }
132
-
133
- posts.forEach((post) => {
134
- post.getTags().forEach((tag) => {
135
- const key = `${tag.lang}:${tag.name}`;
136
- if (!tagsMap.has(key)) {
137
- tagsMap.set(key, tag);
138
- }
139
- });
140
- });
141
-
142
- if (debug) {
143
- cosyLogger.array('tags', Array.from(tagsMap.values()));
144
- }
145
-
146
- return Array.from(tagsMap.values());
147
- }
148
-
149
- /**
150
- * 获取指定标签和语言的博客文章
151
- *
152
- * @param tag - 标签名称
153
- * @param lang - 语言代码
154
- * @returns 返回匹配的博客文档数组
155
- * @example
156
- * ```typescript
157
- * const posts = await blogDB.getBlogsByTag('typescript', 'zh-cn');
158
- * // 返回所有包含 'typescript' 标签的中文博客
159
- * ```
160
- */
161
- async getBlogsByTag(tag: string, lang: string): Promise<BlogDoc[]> {
162
- const posts = await this.allBlogsByLang(lang);
163
- return posts.filter((post) => post.getTags().some((t) => t.name === tag));
164
- }
165
-
166
- /**
167
- * 获取标签的静态路径参数,用于生成标签页面的路由,专门配合 [lang]/blogs/tag/[name].astro 使用
168
- *
169
- * @returns 返回所有标签的路径参数数组
170
- * 返回格式:
171
- * [
172
- * { params: { lang: 'zh-cn', name: 'typescript' } },
173
- * { params: { lang: 'en', name: 'javascript' } }
174
- * ]
175
- */
176
- async getTagsStaticPaths() {
177
- const debug = false;
178
- const tags = await this.getTags();
179
-
180
- const paths = tags.map((tag) => {
181
- return {
182
- params: {
183
- lang: tag.lang,
184
- name: tag.name,
185
- },
186
- };
187
- });
188
-
189
- if (debug) {
190
- cosyLogger.array('所有的标签路径', paths);
191
- }
192
-
193
- return paths;
194
- }
195
- }
196
-
197
- // 创建并导出单例实例
198
- export const blogDB = new BlogDB();
@@ -1,84 +0,0 @@
1
- import CourseDoc from '../entities/CourseDoc';
2
- import { getCollection, type CollectionEntry } from 'astro:content';
3
- import { BaseDB } from './BaseDB';
4
-
5
- export const COLLECTION_COURSE = 'courses' as const;
6
- export type CourseEntry = CollectionEntry<typeof COLLECTION_COURSE>;
7
-
8
- /**
9
- * 课程数据库类,用于管理课程内容集合。
10
- *
11
- * 目录结构:
12
- * ```
13
- * courses/
14
- * ├── zh-cn/ # 中文版本
15
- * │ ├── web-development/ # 课程1
16
- * │ │ ├── index.md # 课程文档
17
- * │ │ ├── chapter1
18
- * │ │ │ ├── index.md
19
- * │ │ │ ├── content.md
20
- * │ │ │ └── ...
21
- * │ │ └── chapter2
22
- * │ │ ├── index.md
23
- * │ │ ├── content.md
24
- * │ │ └── ...
25
- * │ └── mobile-dev/ # 课程2
26
- * │ ├── index.md
27
- * │ └── ...
28
- * └── en/ # 英文版本
29
- * └── ...
30
- * ```
31
- */
32
- class CourseDB extends BaseDB<typeof COLLECTION_COURSE, CourseEntry, CourseDoc> {
33
- protected collectionName = COLLECTION_COURSE;
34
-
35
- protected createDoc(entry: CourseEntry): CourseDoc {
36
- return new CourseDoc(entry);
37
- }
38
-
39
- /**
40
- * 获取指定语言的所有顶级课程
41
- *
42
- * @param lang - 语言代码
43
- * @returns 返回指定语言的顶级课程数组
44
- */
45
- async allCoursesByLang(lang: string): Promise<CourseDoc[]> {
46
- const entries = await getCollection(COLLECTION_COURSE, ({ id }) => {
47
- return id.startsWith(lang) && id.split('/').length === 2;
48
- });
49
- return entries.map((entry) => new CourseDoc(entry));
50
- }
51
-
52
- /**
53
- * 获取用于 Astro 静态路由生成的路径参数,专门配合 [lang]/courses/[...slug].astro 使用
54
- *
55
- * @returns 返回路径参数数组
56
- */
57
- async getStaticPaths(): Promise<{ params: { lang: string; slug: string } }[]> {
58
- const entries = await getCollection(COLLECTION_COURSE);
59
- return entries.map((entry) => {
60
- const doc = new CourseDoc(entry);
61
- return {
62
- params: {
63
- lang: doc.getLang(),
64
- slug: doc.getSlug(),
65
- },
66
- };
67
- });
68
- }
69
-
70
- /**
71
- * 获取精选课程
72
- * 返回指定语言的前4个顶级课程文档
73
- *
74
- * @param lang - 语言代码(如 'zh-cn', 'en')
75
- * @returns 返回精选课程文档数组(最多4个)
76
- */
77
- async getFamousCourses(lang: string): Promise<CourseDoc[]> {
78
- const courses = await this.allCoursesByLang(lang);
79
- return courses.slice(0, 4);
80
- }
81
- }
82
-
83
- // 创建并导出单例实例
84
- export const courseDB = new CourseDB();
@@ -1,102 +0,0 @@
1
- import { type CollectionEntry } from 'astro:content';
2
- import { BaseDB } from './BaseDB';
3
- import ExperimentDoc from '../entities/ExperimentDoc';
4
- import { cosyLogger } from '../cosy';
5
-
6
- export const COLLECTION_EXPERIMENT = 'experiments' as const;
7
- export type ExperimentEntry = CollectionEntry<typeof COLLECTION_EXPERIMENT>;
8
-
9
- /**
10
- * 实验数据库类,用于管理实验内容集合
11
- *
12
- * 目录结构:
13
- * ```
14
- * experiments/
15
- * ├── safari_itp/ # 实验目录
16
- * │ ├── images/ # 实验图片资源
17
- * │ ├── components/ # 课程组件
18
- * │ ├── en/ # 英文版本
19
- * │ │ ├── index.mdx # 课程首页
20
- * │ │ ├── 1.mdx # 第一章
21
- * │ │ └── 2.mdx # 第二章
22
- * │ └── zh-cn/ # 中文版本
23
- * │ ├── index.mdx # 课程首页
24
- * │ ├── 1.mdx # 第一章
25
- * │ └── 2.mdx # 第二章
26
- * └── learn_astro/ # 另一个课程
27
- * ├── en/
28
- * │ ├── index.mdx
29
- * │ ├── 1.mdx
30
- * │ └── 2.mdx
31
- * └── zh-cn/
32
- * ├── index.mdx
33
- * ├── 1.mdx
34
- * └── 2.mdx
35
- * ```
36
- *
37
- * 说明:
38
- * - 每个课程(如 build_your_own_web_toolbox)是一个独立的目录
39
- * - 课程目录可以包含多语言版本(en, zh-cn 等)
40
- * - 每个语言版本包含完整的课程内容
41
- * - 课程目录可以作为 git 子模块独立管理
42
- */
43
- class ExperimentDB extends BaseDB<typeof COLLECTION_EXPERIMENT, ExperimentEntry, ExperimentDoc> {
44
- protected collectionName = COLLECTION_EXPERIMENT;
45
-
46
- protected createDoc(entry: ExperimentEntry): ExperimentDoc {
47
- return new ExperimentDoc(entry);
48
- }
49
-
50
- /**
51
- * 获取指定语言的所有课程
52
- *
53
- * @param {string} lang - 语言代码
54
- * @returns {Promise<ExperimentDoc[]>} 返回指定语言的所有课程
55
- */
56
- async allExperiments(lang: string): Promise<ExperimentDoc[]> {
57
- const docs = await this.getDocsByDepth(2);
58
- return docs.filter((doc) => doc.getId().endsWith(lang));
59
- }
60
-
61
- /**
62
- * 获取用于 Astro 静态路由生成的路径参数
63
- *
64
- * @param debug - 是否开启调试模式
65
- * @returns 返回路径参数数组
66
- */
67
- async getStaticPaths(debug: boolean = false) {
68
- const docs = await this.getEntries();
69
-
70
- if (debug) {
71
- cosyLogger.array('所有文档', docs);
72
- }
73
-
74
- const paths = docs.map((doc) => {
75
- const id = doc.id;
76
- const lang = id.split('/')[1];
77
-
78
- let slug = '';
79
- if (id.endsWith(lang)) {
80
- slug = id.replace(`${lang}`, '');
81
- } else {
82
- slug = id.replace(`${lang}/`, '');
83
- }
84
-
85
- return {
86
- params: {
87
- lang: lang,
88
- slug: slug,
89
- },
90
- };
91
- });
92
-
93
- if (debug) {
94
- cosyLogger.array('所有文档的路径', paths);
95
- }
96
-
97
- return paths;
98
- }
99
- }
100
-
101
- // 创建并导出单例实例
102
- export const experimentDB = new ExperimentDB();