@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,248 +0,0 @@
1
- import { cosyLogger } from '../cosy';
2
-
3
- export class LinkUtil {
4
- // 从 astro.config.ts 中获取基础路径
5
- static getBaseUrl = (): string => {
6
- return import.meta.env.BASE_URL;
7
- };
8
-
9
- // 生成带基础路径的完整 URL
10
- static createUrl = (path: string): string => {
11
- const baseUrl = LinkUtil.getBaseUrl();
12
- // 如果路径以 '/' 开头,去除开头的 '/'
13
- if (path.startsWith('/')) {
14
- path = path.substring(1);
15
- }
16
-
17
- return `${baseUrl}${path}`;
18
- };
19
-
20
- /**
21
- * 规范化语言代码
22
- * @param lang - 语言代码
23
- * @returns 规范化后的语言代码
24
- */
25
- static normalizeLanguage(lang: string): string {
26
- const normalizedLang = lang.toLowerCase().replace('zh-CN', 'zh-cn');
27
- if (normalizedLang.length == 0) {
28
- console.error('lang is empty');
29
- return 'en';
30
- }
31
- return normalizedLang;
32
- }
33
-
34
- static getHomeLink(lang: string): string {
35
- return `${this.getBaseUrl}/${lang}`;
36
- }
37
-
38
- static getLessonsLink(lang: string): string {
39
- return `/${lang}/lessons`;
40
- }
41
-
42
- static getExperimentsLink(lang: string): string {
43
- return `/${lang}/experiments`;
44
- }
45
-
46
- static getExperimentLink(lang: string, experimentId: string): string {
47
- if (experimentId.endsWith(lang)) {
48
- return `/${lang}/experiments/${experimentId.replace(`${lang}`, '')}`;
49
- } else {
50
- const idWithoutLang = experimentId.replace(`${lang}/`, '');
51
- return `/${lang}/experiments/${idWithoutLang}`;
52
- }
53
- }
54
-
55
- static getCoursesLink(lang: string): string {
56
- return `/${lang}/courses`;
57
- }
58
-
59
- static getBlogsLink(lang: string): string {
60
- return `/${lang}/blogs`;
61
- }
62
-
63
- static getLessonLink(lang: string, lessonId: string): string {
64
- if (lessonId.endsWith(lang)) {
65
- return `/${lang}/lessons/${lessonId.replace(`${lang}`, '')}`;
66
- } else {
67
- const idWithoutLang = lessonId.replace(`${lang}/`, '');
68
- return `/${lang}/lessons/${idWithoutLang}`;
69
- }
70
- }
71
-
72
- static getTagLink(lang: string, tagName: string): string {
73
- return `/${lang}/blogs/tag/${tagName}`;
74
- }
75
-
76
- static getBlogLink(blogId: string, lang: string): string {
77
- const debug = false;
78
- const blogIdWithoutLang = blogId.replace(`${lang}/`, '');
79
-
80
- if (debug) {
81
- cosyLogger.info(`获取博客文档链接,博客文档ID: ${blogId}`);
82
- }
83
-
84
- return `/${lang}/blogs/${blogIdWithoutLang}`;
85
- }
86
-
87
- static getCourseLink(courseId: string): string {
88
- const debug = false;
89
- const lang = courseId.split('/')[0];
90
- const courseIdWithoutLang = courseId.replace(`${lang}/`, '');
91
-
92
- if (debug) {
93
- cosyLogger.info(`获取课程文档链接,课程文档ID: ${courseId}`);
94
- }
95
-
96
- return LinkUtil.createUrl(`/${lang}/courses/${courseIdWithoutLang}`);
97
- }
98
-
99
- static getMetaLink(lang: string, slug: string): string {
100
- return `/${this.normalizeLanguage(lang)}/meta/${slug}`;
101
- }
102
-
103
- static getSigninLink(lang: string): string {
104
- return `/${this.normalizeLanguage(lang)}/signin`;
105
- }
106
-
107
- static getAuthCallbackCookieLink(lang: string): string {
108
- return `/${this.normalizeLanguage(lang)}/auth/callback_cookie`;
109
- }
110
-
111
- static getAuthCallbackTokenLink(lang: string): string {
112
- return `/${this.normalizeLanguage(lang)}/auth/callback_token`;
113
- }
114
-
115
- static getAuthAccountLink(lang: string): string {
116
- return `/${this.normalizeLanguage(lang)}/auth/account`;
117
- }
118
-
119
- static getDashboardUrl(lang: string): string {
120
- return `/${this.normalizeLanguage(lang)}/auth/dashboard`;
121
- }
122
-
123
- static getAuthErrorLink(lang: string): string {
124
- return `/${this.normalizeLanguage(lang)}/auth/error`;
125
- }
126
-
127
- static getPrivacyLink(lang: string): string {
128
- return this.getMetaLink(lang, 'privacy');
129
- }
130
-
131
- static getTermsLink(lang: string): string {
132
- return this.getMetaLink(lang, 'terms');
133
- }
134
-
135
- static getAboutLink(lang: string): string {
136
- return this.getMetaLink(lang, 'about');
137
- }
138
-
139
- /**
140
- * 根据ID生成链接
141
- *
142
- * 该函数根据文档ID生成对应的链接路径。
143
- *
144
- * @param {string} id - 文档ID, 例如 'courses/zh-cn/supervisor/index.md'
145
- * @returns {string} 返回生成的链接路径
146
- * @example
147
- * // 例如:
148
- * // id=courses/zh-cn/supervisor/index.md,则返回/zh-cn/courses/supervisor
149
- * // id=courses/en/supervisor/index.md,则返回/en/courses/supervisor
150
- */
151
- static getLink(id: string): string {
152
- const category = id.split('/')[0];
153
- const lang = id.split('/')[1];
154
- const path = id.split('/').slice(2).join('/');
155
-
156
- const link = `/${lang}/${category}/${path}`;
157
- return link.replace(/\/+/g, '/');
158
- }
159
-
160
- /**
161
- * 根据分类生成顶级链接
162
- *
163
- * @param {string} category - 分类名称
164
- * @param {string} lang - 语言代码,例如 'zh-cn', 'en'
165
- * @returns {string} 返回生成的顶级链接路径
166
- * @example
167
- * // 例如:
168
- * // category=courses, lang=zh-cn,则返回/zh-cn/courses
169
- * // category=courses, lang=en,则返回/en/courses
170
- */
171
- static getTopLevelLink(category: string, lang: string): string {
172
- return `/${lang}/${category}`;
173
- }
174
-
175
- /**
176
- * 处理首页重定向
177
- * @param locale - 语言代码
178
- * @returns 规范化的语言代码
179
- */
180
- static homeRedirect(locale: string): string {
181
- return locale || 'en';
182
- }
183
-
184
- /**
185
- * 检查是否为首页路径
186
- * @param pathname - 路径
187
- * @returns 是否为首页
188
- */
189
- static isHomePath(pathname: string): boolean {
190
- return pathname === '/' || pathname === '';
191
- }
192
-
193
- static isHomeLink(path: string, lang: string): boolean {
194
- return path === `/${lang}` || path === `/${lang}/`;
195
- }
196
-
197
- static isLessonsLink(path: string, lang: string): boolean {
198
- return (
199
- path === `/${lang}/lessons` ||
200
- path === `/${lang}/lessons/` ||
201
- path.startsWith(`/${lang}/lessons/`)
202
- );
203
- }
204
-
205
- static isExperimentsLink(path: string, lang: string): boolean {
206
- return (
207
- path === `/${lang}/experiments` ||
208
- path === `/${lang}/experiments/` ||
209
- path.startsWith(`/${lang}/experiments/`)
210
- );
211
- }
212
-
213
- static isCoursesLink(path: string, lang: string): boolean {
214
- return (
215
- path === `/${lang}/courses` ||
216
- path === `/${lang}/courses/` ||
217
- path.startsWith(`/${lang}/courses/`)
218
- );
219
- }
220
-
221
- static isBlogsLink(path: string, lang: string): boolean {
222
- return (
223
- path === `/${lang}/blogs` || path === `/${lang}/blogs/` || path.startsWith(`/${lang}/blogs/`)
224
- );
225
- }
226
-
227
- static getOAuthSuccessLink(currentOrigin: string): string {
228
- return `${currentOrigin}/api/callback_success`;
229
- }
230
-
231
- static getOAuthErrorLink(currentOrigin: string): string {
232
- return `${currentOrigin}/api/callback_error`;
233
- }
234
-
235
- static getLoginLink(currentOrigin: string): string {
236
- return `${currentOrigin}/api/login`;
237
- }
238
-
239
- static getActiveLink(currentLink: string, links: string[]): string {
240
- let activeLink = '';
241
- for (const link of links) {
242
- if (currentLink.startsWith(link) && link.length > activeLink.length) {
243
- activeLink = link;
244
- }
245
- }
246
- return activeLink;
247
- }
248
- }
@@ -1,130 +0,0 @@
1
- type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
-
3
- // 控制是否显示时间戳
4
- const SHOW_TIMESTAMP = false;
5
-
6
- // ANSI 颜色代码
7
- const colors = {
8
- reset: '\x1b[0m',
9
- debug: '\x1b[36m', // 青色
10
- info: '\x1b[32m', // 绿色
11
- warn: '\x1b[33m', // 黄色
12
- error: '\x1b[31m', // 红色
13
- gray: '\x1b[90m', // 灰色用于时间戳
14
- };
15
-
16
- export class Logger {
17
- private topic: string = '';
18
-
19
- private formatArray(arr: any[]): string {
20
- const MAX_LINES = 70;
21
- const MAX_LENGTH = 100;
22
-
23
- const truncateString = (str: string): string => {
24
- return str.length > MAX_LENGTH ? str.slice(0, MAX_LENGTH) + '...' : str;
25
- };
26
-
27
- const truncateObject = (obj: any): any => {
28
- if (typeof obj !== 'object' || obj === null) {
29
- return typeof obj === 'string' ? truncateString(obj) : obj;
30
- }
31
-
32
- const result: any = Array.isArray(obj) ? [] : {};
33
- for (const [key, value] of Object.entries(obj)) {
34
- result[key] =
35
- typeof value === 'string'
36
- ? truncateString(value)
37
- : typeof value === 'object'
38
- ? truncateObject(value)
39
- : value;
40
- }
41
- return result;
42
- };
43
-
44
- const items = arr.slice(0, MAX_LINES).map((item) => {
45
- const truncatedItem = truncateObject(item);
46
- // 使用2个空格缩进,并在每行前添加 " • "
47
- const jsonString = JSON.stringify(truncatedItem, null, 2)
48
- .split('\n')
49
- .map((line, index) => (index === 0 ? ` • ${line}` : ` ${line}`))
50
- .join('\n');
51
- return jsonString;
52
- });
53
-
54
- let output = items.join('\n');
55
- if (arr.length > MAX_LINES) {
56
- const remainingCount = arr.length - MAX_LINES;
57
- output += `\n ⋮ ... and ${remainingCount} more items`;
58
- }
59
-
60
- return output;
61
- }
62
-
63
- private log(level: LogLevel, message: string | object | any[], newLine: boolean = false) {
64
- // 使用本地时间,并格式化为 HH:mm:ss 格式
65
- const timestamp = new Date().toLocaleTimeString('zh-CN', {
66
- hour12: false,
67
- hour: '2-digit',
68
- minute: '2-digit',
69
- second: '2-digit',
70
- });
71
-
72
- const formattedMessage = Array.isArray(message)
73
- ? this.formatArray(message)
74
- : typeof message === 'object'
75
- ? JSON.stringify(message, null, 2)
76
- : message;
77
-
78
- const timestampPart = SHOW_TIMESTAMP ? `${colors.gray}${timestamp}${colors.reset} ` : '';
79
-
80
- const emoji = {
81
- debug: '🔍',
82
- info: '🐳',
83
- warn: '🚨',
84
- error: '❌',
85
- }[level];
86
-
87
- if (newLine) {
88
- console.log("")
89
- }
90
-
91
- console.log(
92
- timestampPart +
93
- `${colors[level]}${emoji} ` +
94
- this.getPrefix() +
95
- `${level.toUpperCase()}${colors.reset} ` +
96
- `${colors.gray}:${colors.reset} ` +
97
- `${colors[level]}${formattedMessage}${colors.reset}`
98
- );
99
- }
100
-
101
- private getPrefix() {
102
- return this.topic ? `[${this.topic}] ` : '';
103
- }
104
-
105
- constructor(topic: string = '') {
106
- this.topic = topic;
107
- }
108
-
109
- debug(message: string | object) {
110
- this.log('debug', message);
111
- }
112
-
113
- info(message: string | object) {
114
- this.log('info', message);
115
- }
116
-
117
- warn(message: string | object) {
118
- this.log('warn', message);
119
- }
120
-
121
- error(message: string | object) {
122
- this.log('error', message, true);
123
- }
124
-
125
- array(title: string, arr: any[]) {
126
- this.log('info', title + '\n' + this.formatArray(arr));
127
- }
128
- }
129
-
130
- export const defaultLogger = new Logger();
@@ -1,55 +0,0 @@
1
- import { cosyLogger } from '../cosy';
2
-
3
- /**
4
- * 判断当前路径是否匹配目标路径
5
- * @param currentPath 当前路径
6
- * @param targetPath 目标路径
7
- * @returns 是否匹配
8
- */
9
- export function isPathMatch(currentPath: string, targetPath: string): boolean {
10
- const debug = false;
11
-
12
- if (debug) {
13
- cosyLogger.info(`判断 ${currentPath} 是否匹配 ${targetPath}`);
14
- }
15
-
16
- // 如果完全匹配,直接返回
17
- if (currentPath === targetPath) {
18
- if (debug) {
19
- cosyLogger.info(`${currentPath} 完全匹配 ${targetPath}`);
20
- }
21
- return true;
22
- }
23
-
24
- // 标准化路径,移除最后的斜杠
25
- const normalizedCurrentPath = currentPath.endsWith('/') ? currentPath.slice(0, -1) : currentPath;
26
-
27
- const normalizedTargetPath = targetPath.endsWith('/') ? targetPath.slice(0, -1) : targetPath;
28
-
29
- // 直接比较完整路径
30
- if (normalizedCurrentPath === normalizedTargetPath) {
31
- return true;
32
- }
33
-
34
- // 提取不带基础路径的部分进行比较
35
- // 例如把 /cosy-ui/zh-cn/components/button 中提取 /zh-cn/components/button
36
- const currentPathSegments = normalizedCurrentPath.split('/').filter(Boolean);
37
- const targetPathSegments = normalizedTargetPath.split('/').filter(Boolean);
38
-
39
- // 如果目标路径长度大于当前路径,不可能匹配
40
- if (targetPathSegments.length > currentPathSegments.length) {
41
- return false;
42
- }
43
-
44
- // 从后向前比较路径段
45
- for (let i = 1; i <= targetPathSegments.length; i++) {
46
- if (
47
- currentPathSegments[currentPathSegments.length - i] !==
48
- targetPathSegments[targetPathSegments.length - i]
49
- ) {
50
- return false;
51
- }
52
- }
53
-
54
- return true;
55
- }
@@ -1,90 +0,0 @@
1
- // 定义支持的社交平台及其配置
2
- interface PlatformConfig {
3
- name: string;
4
- domains: string[];
5
- }
6
-
7
- // 处理后的社交链接类型
8
- export interface ProcessedSocialLink {
9
- url: string;
10
- name: string;
11
- platform: string;
12
- }
13
-
14
- // 社交平台配置
15
- const platformConfigs: Record<string, PlatformConfig> = {
16
- github: {
17
- name: 'GitHub',
18
- domains: ['github.com'],
19
- },
20
- twitter: {
21
- name: 'Twitter',
22
- domains: ['twitter.com', 'x.com'],
23
- },
24
- linkedin: {
25
- name: 'LinkedIn',
26
- domains: ['linkedin.com'],
27
- },
28
- weibo: {
29
- name: '微博',
30
- domains: ['weibo.com'],
31
- },
32
- wechat: {
33
- name: '微信',
34
- domains: ['wechat.com', 'weixin.qq.com'],
35
- },
36
- zhihu: {
37
- name: '知乎',
38
- domains: ['zhihu.com'],
39
- },
40
- bilibili: {
41
- name: 'BiliBili',
42
- domains: ['bilibili.com'],
43
- },
44
- youtube: {
45
- name: 'YouTube',
46
- domains: ['youtube.com', 'youtu.be'],
47
- },
48
- discord: {
49
- name: 'Discord',
50
- domains: ['discord.com', 'discord.gg'],
51
- },
52
- };
53
-
54
- // 从 URL 判断社交平台
55
- function detectPlatform(url: string): [string, PlatformConfig] | null {
56
- try {
57
- const urlObj = new URL(url);
58
- const hostname = urlObj.hostname.toLowerCase();
59
-
60
- for (const [platform, config] of Object.entries(platformConfigs)) {
61
- if (config.domains.some((domain) => hostname.includes(domain))) {
62
- return [platform, config];
63
- }
64
- }
65
- } catch (e) {
66
- console.error('Invalid URL:', url, e);
67
- }
68
- return null;
69
- }
70
-
71
- // 处理社交链接
72
- export function processSocialLink(url: string): ProcessedSocialLink {
73
- const platformInfo = detectPlatform(url);
74
-
75
- if (!platformInfo) {
76
- // 如果无法识别平台,返回默认值
77
- return {
78
- url: url,
79
- name: '社交链接',
80
- platform: 'default',
81
- };
82
- }
83
-
84
- const [platform, config] = platformInfo;
85
- return {
86
- url: url,
87
- name: config.name,
88
- platform,
89
- };
90
- }
@@ -1,114 +0,0 @@
1
- interface ThemeManager {
2
- updateActiveTheme: (currentTheme: string) => void;
3
- handleThemeClick: (this: HTMLElement) => void;
4
- initialize: () => void;
5
- setTheme: (theme: string) => void;
6
- detectSystemTheme: () => string;
7
- }
8
-
9
- /**
10
- * 创建主题管理器
11
- *
12
- * 提供主题切换、主题持久化存储和系统主题检测等功能
13
- *
14
- * @returns ThemeManager 主题管理器对象
15
- */
16
- export function createThemeManager(): ThemeManager {
17
- const getThemeItems = () => document.querySelectorAll<HTMLElement>('[data-theme]');
18
-
19
- const updateActiveTheme = (currentTheme: string) => {
20
- const themeItems = getThemeItems();
21
- themeItems.forEach((item) => {
22
- const themeId = item.getAttribute('data-theme');
23
- const isActive = themeId === currentTheme;
24
-
25
- // 设置元素的 data-active 属性
26
- item.setAttribute('data-active', String(isActive));
27
-
28
- // 仅对于旧式主题按钮(data-set-theme 属性),保留旧的类切换行为
29
- if (item.hasAttribute('data-set-theme')) {
30
- item.classList.toggle('cosy:bg-primary', isActive);
31
- item.classList.toggle('cosy:text-primary-content', isActive);
32
- }
33
- });
34
- };
35
-
36
- function handleThemeClick(this: HTMLElement) {
37
- const theme = this.getAttribute('data-set-theme') || this.getAttribute('data-theme');
38
- if (theme) {
39
- setTheme(theme);
40
- }
41
- }
42
-
43
- /**
44
- * 设置主题
45
- *
46
- * @param theme 主题ID
47
- */
48
- const setTheme = (theme: string) => {
49
- document.documentElement.setAttribute('data-theme', theme);
50
- localStorage.setItem('theme', theme);
51
- updateActiveTheme(theme);
52
- };
53
-
54
- /**
55
- * 检测系统主题偏好(亮色/暗色)
56
- *
57
- * @returns 'dark' 或 'light'
58
- */
59
- const detectSystemTheme = (): string => {
60
- return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
61
- };
62
-
63
- /**
64
- * 初始化主题管理器
65
- *
66
- * 从本地存储中获取主题设置,如果没有则尝试使用系统主题,最后使用默认主题
67
- */
68
- const initialize = () => {
69
- // 从本地存储中获取主题
70
- let savedTheme = localStorage.getItem('theme');
71
-
72
- // 如果没有保存的主题,则尝试使用系统主题
73
- if (!savedTheme) {
74
- const systemTheme = detectSystemTheme();
75
- if (systemTheme === 'dark') {
76
- savedTheme = 'dark';
77
- } else {
78
- savedTheme = 'default'; // 默认使用默认主题
79
- }
80
- }
81
-
82
- // 设置主题
83
- document.documentElement.setAttribute('data-theme', savedTheme);
84
- updateActiveTheme(savedTheme);
85
-
86
- // 添加主题切换事件监听器
87
- // 支持新旧两种类型的主题切换按钮
88
- const themeItems = [
89
- ...Array.from(document.querySelectorAll<HTMLElement>('[data-set-theme]')),
90
- ...Array.from(document.querySelectorAll<HTMLElement>('.cosy\\:theme-item')),
91
- ];
92
-
93
- themeItems.forEach((item) => {
94
- item.removeEventListener('click', handleThemeClick);
95
- item.addEventListener('click', handleThemeClick);
96
- });
97
-
98
- // 监听系统主题变化
99
- window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
100
- // 只有当用户没有手动设置过主题时,才跟随系统主题变化
101
- if (!localStorage.getItem('theme')) {
102
- setTheme(e.matches ? 'dark' : 'default');
103
- }
104
- });
105
- };
106
-
107
- return {
108
- updateActiveTheme,
109
- handleThemeClick,
110
- initialize,
111
- setTheme,
112
- detectSystemTheme,
113
- };
114
- }
File without changes
File without changes
File without changes
File without changes