@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,30 +0,0 @@
1
- ---
2
- /**
3
- * @component TeamMember.WithSocial
4
- *
5
- * @description
6
- * 带社交媒体链接的团队成员展示组件示例,展示如何添加社交媒体链接。
7
- */
8
- import '../style.ts';
9
- import TeamMember from './TeamMember.astro';
10
- import { getExampleImage } from '../utils/image';
11
-
12
- const avatar = getExampleImage({
13
- width: 200,
14
- height: 200,
15
- provider: 'robohash',
16
- randomSeed: 'member2',
17
- });
18
- ---
19
-
20
- <TeamMember
21
- name="李四"
22
- role="高级开发工程师"
23
- avatar={avatar}
24
- bio="全栈开发专家,热爱开源项目,专注于前端框架和性能优化"
25
- socialLinks={[
26
- { platform: 'github', url: 'https://github.com' },
27
- { platform: 'twitter', url: 'https://twitter.com' },
28
- { platform: 'linkedin', url: 'https://linkedin.com' },
29
- ]}
30
- />
@@ -1,11 +0,0 @@
1
- ---
2
- import Text from './Text.astro';
3
- ---
4
-
5
- <div class="cosy:space-y-4">
6
- <Text size="xs">超小号文本 (xs)</Text>
7
- <Text size="sm">小号文本 (sm)</Text>
8
- <Text size="md">中号文本 (md)</Text>
9
- <Text size="lg">大号文本 (lg)</Text>
10
- <Text size="xl">超大号文本 (xl)</Text>
11
- </div>
@@ -1,120 +0,0 @@
1
- ---
2
- /**
3
- * @component ThemeSwitcher
4
- *
5
- * @description
6
- * ThemeSwitcher 组件提供一个主题切换下拉菜单,允许用户在多个预定义主题之间切换。
7
- * 组件会记住用户的主题选择,并在页面重新加载或访问网站的其他页面时保持该主题。
8
- *
9
- * @design
10
- * 设计理念:
11
- * 1. 简洁直观 - 使用图标按钮和下拉菜单提供清晰的交互方式
12
- * 2. 主题持久化 - 使用本地存储记住用户的主题选择
13
- * 3. 无缝集成 - 与 DaisyUI 主题系统无缝集成
14
- * 4. 广泛兼容 - 支持多种主题选项,适应不同的视觉偏好
15
- *
16
- * @usage
17
- * 基本用法:
18
- * ```astro
19
- * <ThemeSwitcher />
20
- * ```
21
- *
22
- * 自定义样式:
23
- * ```astro
24
- * <ThemeSwitcher class="cosy:top-4 cosy:right-4 cosy:fixed" />
25
- * ```
26
- */
27
-
28
- import { SunCloudyIcon } from '../index';
29
- import ThemeItem from './ThemeItem.astro';
30
- import '../style.ts';
31
-
32
- interface Props {
33
- /**
34
- * 自定义类名
35
- */
36
- class?: string;
37
- }
38
-
39
- const { class: className } = Astro.props;
40
-
41
- const themes = [
42
- { id: 'default', name: 'Default' },
43
- { id: 'light', name: 'Light' },
44
- { id: 'dark', name: 'Dark' },
45
- { id: 'pastel', name: 'Pastel' },
46
- { id: 'lemonade', name: 'Lemonade' },
47
- { id: 'cupcake', name: 'Cupcake' },
48
- { id: 'nord', name: 'Nord' },
49
- { id: 'business', name: 'Business' },
50
- { id: 'luxury', name: 'Luxury' },
51
- ];
52
- ---
53
-
54
- <!-- 主题切换按钮 -->
55
- <div class:list={['cosy:dropdown-end cosy:dropdown', className]}>
56
- <div tabindex="0" role="button" class:list={['cosy:btn cosy:btn-ghost']}>
57
- <SunCloudyIcon size="16px" class="cosy:w-4 cosy:h-4" />
58
- </div>
59
- <ul
60
- tabindex={0}
61
- class="cosy:dropdown-content cosy:menu cosy:bg-base-100 cosy:dark:bg-neutral-800 cosy:rounded-box cosy:z-[1] cosy:w-56 cosy:p-2 cosy:shadow-lg">
62
- {themes.map((theme) => <ThemeItem theme={theme.id} label={theme.name} />)}
63
- </ul>
64
- </div>
65
-
66
- <script>
67
- import { createThemeManager } from '../utils/theme';
68
-
69
- const themeManager = createThemeManager();
70
-
71
- function updateActiveTheme() {
72
- const currentTheme = document.documentElement.getAttribute('data-theme') || 'default';
73
- document.querySelectorAll('.cosy\\:theme-item').forEach((item) => {
74
- const isActive = item.getAttribute('data-theme') === currentTheme;
75
- item.setAttribute('data-active', String(isActive));
76
-
77
- // 更新视觉状态
78
- const checkmark = item.querySelector('.cosy\\:theme-check');
79
- if (checkmark) {
80
- if (isActive) {
81
- checkmark.classList.remove('cosy:hidden');
82
- item.classList.add('cosy:bg-base-200', 'cosy:font-medium');
83
- } else {
84
- checkmark.classList.add('cosy:hidden');
85
- item.classList.remove('cosy:bg-base-200', 'cosy:font-medium');
86
- }
87
- }
88
- });
89
- }
90
-
91
- // 初始化主题切换按钮
92
- function initThemeSwitcher() {
93
- document.querySelectorAll('.cosy\\:theme-item').forEach((item) => {
94
- item.addEventListener('click', () => {
95
- console.log('Theme item clicked:', item);
96
- const theme = item.getAttribute('data-theme');
97
- if (theme) {
98
- themeManager.setTheme(theme);
99
- updateActiveTheme();
100
- }
101
- });
102
- });
103
- }
104
-
105
- // 初始加载时初始化
106
- function initialize() {
107
- themeManager.initialize();
108
- initThemeSwitcher();
109
- updateActiveTheme();
110
- }
111
-
112
- // 初始化
113
- document.addEventListener('DOMContentLoaded', initialize);
114
-
115
- // Astro view transitions 后重新初始化
116
- document.addEventListener('astro:after-swap', initialize);
117
-
118
- // 确保脚本加载后立即初始化
119
- initialize();
120
- </script>
@@ -1,405 +0,0 @@
1
- ---
2
- /**
3
- * @component TableOfContents
4
- *
5
- * @description
6
- * TableOfContents 组件是一个目录导航组件,用于显示页面内容的标题结构。
7
- * 它会自动检测页面中的标题元素,生成目录列表,并在用户滚动页面时高亮当前可见的标题。
8
- * 当页面只有一个标题或没有足够的标题结构时,组件会自动隐藏。
9
- *
10
- * @design
11
- * 设计理念:
12
- * 1. 导航辅助 - 帮助用户快速了解页面结构和导航到特定内容
13
- * 2. 上下文感知 - 自动高亮当前阅读位置,提供阅读进度反馈
14
- * 3. 视觉层次 - 通过缩进和样式区分不同级别的标题
15
- * 4. 响应式设计 - 在小屏幕设备上自动隐藏,优化空间利用
16
- * 5. 智能显示 - 当页面结构不需要目录时自动隐藏
17
- * 6. 多语言支持 - 支持多种语言显示,自动检测当前语言环境
18
- *
19
- * @usage
20
- * 基本用法:
21
- * ```astro
22
- * <TableOfContents />
23
- * ```
24
- *
25
- * 自定义标题和选择器:
26
- * ```astro
27
- * <TableOfContents
28
- * title="章节导航"
29
- * selector="h2, h3, h4"
30
- * maxDepth={4}
31
- * />
32
- * ```
33
- *
34
- * 非固定位置:
35
- * ```astro
36
- * <TableOfContents fixed={false} />
37
- * ```
38
- *
39
- * 指定内容容器:
40
- * ```astro
41
- * <TableOfContents containerSelector=".article-content" />
42
- * ```
43
- *
44
- * 指定语言:
45
- * ```astro
46
- * <TableOfContents lang="zh-cn" />
47
- * ```
48
- *
49
- * 启用日志:
50
- * ```astro
51
- * <TableOfContents enableLogging={true} />
52
- * ```
53
- */
54
-
55
- // 导入样式
56
- import '../style.ts';
57
- import { createTextGetter } from '../utils/i18n';
58
- import { LanguageUtil } from '../utils/language';
59
-
60
- interface Props {
61
- /**
62
- * 是否固定在右侧
63
- * @default true
64
- */
65
- fixed?: boolean;
66
- /**
67
- * 自定义类名
68
- */
69
- class?: string;
70
- /**
71
- * 标题选择器
72
- * @default "h2, h3"
73
- */
74
- selector?: string;
75
- /**
76
- * 最大深度
77
- * @default 3
78
- */
79
- maxDepth?: number;
80
- /**
81
- * 标题文本
82
- * @default 根据语言自动选择
83
- */
84
- title?: string;
85
- /**
86
- * 内容容器选择器,用于限制标题搜索范围
87
- * @default "main"
88
- */
89
- containerSelector?: string;
90
- /**
91
- * 显示目录所需的最少标题数量
92
- * @default 2
93
- */
94
- minHeadings?: number;
95
- /**
96
- * 语言
97
- * @default 自动检测
98
- */
99
- lang?: string;
100
- }
101
-
102
- const {
103
- fixed = true,
104
- class: className = '',
105
- selector = 'h2, h3',
106
- maxDepth = 3,
107
- containerSelector = 'main',
108
- minHeadings = 2,
109
- title,
110
- } = Astro.props;
111
-
112
- // 获取当前语言
113
- const langInfo = LanguageUtil.getCurrentLanguage(Astro);
114
- // 创建文本获取函数
115
- const t = createTextGetter(langInfo, 'tableOfContents');
116
- // 获取标题文本,如果用户提供了标题则使用用户提供的标题
117
- const titleText = title || t('title');
118
-
119
- // 生成唯一ID,确保多个TOC实例不会冲突
120
- const tocId = `toc-${Math.random().toString(36).substring(2, 9)}`;
121
- ---
122
-
123
- <aside class:list={['cosy:hidden cosy:xl:block cosy:w-64 cosy:shrink-0', className]}>
124
- <div class="cosy:top-18 cosy:sticky">
125
- <div
126
- class={`toc-container toc-scroll-container ${fixed ? 'cosy:w-64' : 'cosy:w-full cosy:max-w-xs'}`}
127
- id={`${tocId}-container`}
128
- style="display: none;">
129
- <div class="cosy:bg-base-100 cosy:shadow-inner cosy:card">
130
- <div class="cosy:p-4 cosy:card-body">
131
- <div class="cosy:mb-2 cosy:font-bold cosy:text-lg cosy:card-title">{titleText}</div>
132
- <ul class="cosy:menu cosy:menu-sm" id={tocId}>
133
- <!-- 目录项将通过 JavaScript 动态生成 -->
134
- <li class="cosy:text-base-content/60">{t('loading')}</li>
135
- </ul>
136
- </div>
137
- </div>
138
- </div>
139
- </div>
140
- </aside>
141
-
142
- <script
143
- is:inline
144
- define:vars={{ selector, maxDepth, tocId, containerSelector, minHeadings, langInfo }}
145
- >
146
- // @ts-nocheck
147
- // 在页面加载完成后生成目录
148
- function generateTOC() {
149
- // 使用指定的容器选择器查找内容容器
150
- const container = document.querySelector(containerSelector);
151
- if (!container) return;
152
-
153
- // 排除 IgnoreHeading 组件中的标题
154
- const headings = Array.from(container.querySelectorAll(selector)).filter((heading) => {
155
- // 检查标题本身或任何祖先元素是否有 ignore-heading 属性
156
- const isInIgnoreHeading =
157
- heading.hasAttribute('ignore-heading') || heading.closest('[ignore-heading]') !== null;
158
- return !isInIgnoreHeading;
159
- });
160
-
161
- const tocList = document.getElementById(tocId);
162
- const tocContainer = document.getElementById(`${tocId}-container`);
163
-
164
- if (!tocList || !tocContainer) return;
165
-
166
- // 如果标题数量少于最小要求,保持隐藏状态并退出
167
- if (headings.length < minHeadings) {
168
- tocContainer.style.display = 'none';
169
- return;
170
- }
171
-
172
- // 显示目录容器
173
- tocContainer.style.display = 'block';
174
-
175
- // 清空占位符
176
- tocList.innerHTML = '';
177
-
178
- // 用于存储已使用的 ID,确保唯一性
179
- const usedIds = new Set();
180
-
181
- // 为每个标题创建目录项
182
- headings.forEach((heading) => {
183
- // 如果标题没有 ID 或 ID 为空,则生成一个
184
- if (!heading.id || heading.id.trim() === '') {
185
- // 从标题文本生成 ID
186
- let newId = generateIdFromText(heading.textContent || '');
187
-
188
- // 确保 ID 唯一
189
- let counter = 0;
190
- let uniqueId = newId;
191
- while (usedIds.has(uniqueId) || document.getElementById(uniqueId)) {
192
- counter++;
193
- uniqueId = `${newId}-${counter}`;
194
- }
195
-
196
- // 设置标题的 ID
197
- heading.id = uniqueId;
198
- }
199
-
200
- // 记录已使用的 ID
201
- usedIds.add(heading.id);
202
-
203
- const level = parseInt(heading.tagName.substring(1));
204
- if (level > maxDepth) return;
205
-
206
- const listItem = document.createElement('li');
207
- listItem.className = `toc-level-${level}`;
208
- listItem.dataset.headingId = heading.id;
209
-
210
- const link = document.createElement('a');
211
- link.href = `#${heading.id}`;
212
- link.textContent = heading.textContent;
213
- link.className = 'cosy:text-base-content/80 cosy:hover:text-primary cosy:transition-colors';
214
-
215
- // 添加缩进
216
- if (level === 3) {
217
- link.style.paddingLeft = '1.5rem';
218
- }
219
-
220
- listItem.appendChild(link);
221
- tocList.appendChild(listItem);
222
-
223
- // 添加点击事件,平滑滚动到目标位置
224
- link.addEventListener('click', (e) => {
225
- e.preventDefault();
226
- const targetId = link.getAttribute('href').substring(1);
227
- const targetElement = document.getElementById(targetId);
228
-
229
- if (targetElement) {
230
- // 滚动到目标位置,并添加一些偏移以避免被固定导航遮挡
231
- const offset = 80; // 可根据实际情况调整
232
- const targetPosition =
233
- targetElement.getBoundingClientRect().top + window.scrollY - offset;
234
-
235
- window.scrollTo({
236
- top: targetPosition,
237
- behavior: 'smooth',
238
- });
239
-
240
- // 更新 URL,但不跳转
241
- history.pushState(null, null, `#${targetId}`);
242
-
243
- // 添加高亮效果
244
- setTimeout(() => {
245
- highlightActiveHeading();
246
- }, 500);
247
- }
248
- });
249
- });
250
-
251
- // 如果没有找到标题或标题数量不足,隐藏目录
252
- if (tocList.children.length < minHeadings) {
253
- tocContainer.style.display = 'none';
254
- return;
255
- }
256
-
257
- // 添加活动标题高亮
258
- highlightActiveHeading();
259
-
260
- // 使用节流函数优化滚动事件
261
- window.addEventListener('scroll', throttle(highlightActiveHeading, 200));
262
- }
263
-
264
- // 从文本生成有效的 ID
265
- function generateIdFromText(text) {
266
- return (
267
- text
268
- .trim()
269
- .toLowerCase()
270
- .replace(/[\s\n]+/g, '-') // 将空格和换行替换为连字符
271
- .replace(/[^\w\u4e00-\u9fa5-]/g, '') // 只保留字母、数字、中文和连字符
272
- .replace(/^-+|-+$/g, '') // 移除开头和结尾的连字符
273
- .replace(/-{2,}/g, '-') || // 将多个连字符替换为单个
274
- 'heading'
275
- ); // 如果结果为空,则使用默认值
276
- }
277
-
278
- // 高亮当前可见的标题
279
- function highlightActiveHeading() {
280
- const tocContainer = document.getElementById(`${tocId}-container`);
281
- if (!tocContainer || tocContainer.style.display === 'none') return;
282
-
283
- const container = document.querySelector(containerSelector);
284
- if (!container) return;
285
-
286
- const headings = Array.from(container.querySelectorAll(selector));
287
- if (headings.length < minHeadings) return;
288
-
289
- // 获取视口高度和滚动位置
290
- const viewportHeight = window.innerHeight;
291
- const scrollTop = window.scrollY;
292
-
293
- // 计算视口中心位置
294
- const viewportMiddle = scrollTop + viewportHeight / 3;
295
-
296
- let activeHeadingId = null;
297
- let closestHeading = null;
298
- let closestDistance = Infinity;
299
-
300
- // 找到最接近视口中心的标题
301
- for (const heading of headings) {
302
- const headingTop = heading.getBoundingClientRect().top + scrollTop;
303
- const distance = Math.abs(headingTop - viewportMiddle);
304
-
305
- if (distance < closestDistance) {
306
- closestDistance = distance;
307
- closestHeading = heading;
308
- }
309
- }
310
-
311
- // 如果找到了最接近的标题,使用它的ID
312
- if (closestHeading) {
313
- activeHeadingId = closestHeading.id;
314
- } else if (headings.length > 0) {
315
- // 如果没有找到,使用第一个标题
316
- activeHeadingId = headings[0].id;
317
- }
318
-
319
- // 更新活动链接样式
320
- const tocLinks = document.querySelectorAll(`#${tocId} a`);
321
- let activeLink = document.querySelector(`#${tocId} a.active-toc-link`);
322
- let currentActiveId = activeLink ? activeLink.getAttribute('href').substring(1) : null;
323
-
324
- // 如果当前活动标题没有变化,避免不必要的样式更新
325
- if (currentActiveId === activeHeadingId) {
326
- return;
327
- }
328
-
329
- let hasActiveLink = false;
330
-
331
- tocLinks.forEach((link) => {
332
- const href = link.getAttribute('href').substring(1);
333
-
334
- // 清除所有高亮
335
- link.classList.remove('cosy:text-primary', 'cosy:font-medium', 'active-toc-link');
336
-
337
- // 添加当前活动标题的高亮
338
- if (href === activeHeadingId) {
339
- link.classList.add('cosy:text-primary', 'cosy:font-medium', 'active-toc-link');
340
- hasActiveLink = true;
341
-
342
- // 只在首次高亮时添加一个轻微的过渡效果,而不是每次滚动都动画
343
- if (href !== currentActiveId) {
344
- link.style.transition = 'color 0.3s ease';
345
- }
346
- }
347
- });
348
-
349
- // 如果没有找到活动链接,尝试高亮第一个标题
350
- if (!hasActiveLink && tocLinks.length > 0) {
351
- tocLinks[0].classList.add('cosy:text-primary', 'cosy:font-medium', 'active-toc-link');
352
- }
353
-
354
- // 确保活动链接在视图中可见
355
- const newActiveLink = document.querySelector(`#${tocId} a.active-toc-link`);
356
- const tocList = document.getElementById(tocId);
357
- if (newActiveLink && tocList) {
358
- const tocScrollContainer = document.querySelector('.toc-scroll-container');
359
- if (tocScrollContainer) {
360
- const linkTop = newActiveLink.offsetTop;
361
- const containerScrollTop = tocScrollContainer.scrollTop;
362
- const containerHeight = tocScrollContainer.clientHeight;
363
-
364
- // 如果链接不在可视区域内,平滑滚动到可见位置
365
- if (linkTop < containerScrollTop || linkTop > containerScrollTop + containerHeight) {
366
- tocScrollContainer.scrollTo({
367
- top: linkTop - containerHeight / 2,
368
- behavior: 'smooth',
369
- });
370
- }
371
- }
372
- }
373
- }
374
-
375
- // 节流函数,限制函数调用频率
376
- function throttle(func, delay) {
377
- let lastCall = 0;
378
- return function (...args) {
379
- const now = new Date().getTime();
380
- if (now - lastCall < delay) {
381
- return;
382
- }
383
- lastCall = now;
384
- return func(...args);
385
- };
386
- }
387
-
388
- // 页面加载时初始化
389
- document.addEventListener('astro:page-load', generateTOC);
390
- // 初始加载时也初始化
391
- generateTOC();
392
-
393
- // 添加resize事件监听,在窗口大小变化时重新计算高亮
394
- window.addEventListener(
395
- 'resize',
396
- throttle(() => {
397
- generateTOC(); // 重新生成TOC,以防窗口大小变化导致标题可见性变化
398
- highlightActiveHeading();
399
- }, 200)
400
- );
401
-
402
- // 立即触发一次高亮计算
403
- setTimeout(generateTOC, 100);
404
- setTimeout(highlightActiveHeading, 500);
405
- </script>
@@ -1,25 +0,0 @@
1
- ---
2
- import TableOfContents from './TableOfContents.astro';
3
- ---
4
-
5
- <div class="cosy:flex cosy:gap-4">
6
- <div class="cosy:w-64">
7
- <TableOfContents />
8
- </div>
9
- <div class="cosy:flex-1">
10
- <h2 id="introduction">介绍</h2>
11
- <p>这是一个示例内容。</p>
12
-
13
- <h2 id="features">功能特点</h2>
14
- <p>这里列出了主要功能。</p>
15
-
16
- <h3 id="feature-1">功能 1</h3>
17
- <p>功能 1 的详细说明。</p>
18
-
19
- <h3 id="feature-2">功能 2</h3>
20
- <p>功能 2 的详细说明。</p>
21
-
22
- <h2 id="conclusion">总结</h2>
23
- <p>这是总结部分。</p>
24
- </div>
25
- </div>
@@ -1,22 +0,0 @@
1
- export interface IArticleProps {
2
- /**
3
- * 文章的类名
4
- */
5
- class?: string;
6
-
7
- /**
8
- * 类名列表
9
- */
10
- 'class:list'?: any;
11
-
12
- /**
13
- * 内联样式
14
- */
15
- style?: string;
16
-
17
- /**
18
- * 文章宽度
19
- * @default "medium"
20
- */
21
- width?: 'narrow' | 'medium' | 'wide' | 'full';
22
- }