@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
@@ -0,0 +1,200 @@
1
+ ---
2
+ /**
3
+ * @component Products
4
+ *
5
+ * @description
6
+ * Products 组件是ProductCard的容器集合,用于展示多个产品卡片。
7
+ * 组件会自动根据父容器大小调整布局,确保在任何视口大小下都能整齐排列产品卡片。
8
+ * 支持网格和列表两种布局模式,并提供多种配置选项以适应不同场景需求。
9
+ *
10
+ * @design
11
+ * 设计理念:
12
+ * 1. 响应式布局 - 自动适应父容器大小,在不同设备上呈现最佳效果
13
+ * 2. 灵活配置 - 提供多种布局选项、间距设置和对齐方式
14
+ * 3. 统一展示 - 确保所有产品卡片视觉一致,提供等高选项
15
+ * 4. 性能优化 - 支持懒加载和分页显示大量产品
16
+ *
17
+ * @usage
18
+ * 基本用法:
19
+ * ```astro
20
+ * <Products
21
+ * products={[
22
+ * {
23
+ * name: "产品1",
24
+ * image: "/images/products/product1.jpg",
25
+ * description: "产品1描述",
26
+ * productUrl: "https://product1.com"
27
+ * },
28
+ * {
29
+ * name: "产品2",
30
+ * image: "/images/products/product2.jpg",
31
+ * description: "产品2描述",
32
+ * appStoreUrl: "https://apps.apple.com/app/product2"
33
+ * }
34
+ * ]}
35
+ * />
36
+ * ```
37
+ *
38
+ * 使用网格布局并设置列数:
39
+ * ```astro
40
+ * <Products
41
+ * layout="grid"
42
+ * columns={{ base: 1, sm: 2, md: 3, lg: 4 }}
43
+ * products={products}
44
+ * />
45
+ * ```
46
+ *
47
+ * 使用列表布局:
48
+ * ```astro
49
+ * <Products
50
+ * layout="list"
51
+ * products={products}
52
+ * />
53
+ * ```
54
+ *
55
+ * 自定义卡片尺寸和间距:
56
+ * ```astro
57
+ * <Products
58
+ * cardSize="sm"
59
+ * gap="lg"
60
+ * products={products}
61
+ * />
62
+ * ```
63
+ */
64
+
65
+ import { ProductCard } from '../../index-astro';
66
+ import '../../style.ts';
67
+ import type { Props as ProductCardProps } from './ProductCard.astro';
68
+
69
+ // 定义产品项类型
70
+ type ProductItem = Omit<ProductCardProps, 'class'>;
71
+
72
+ // 定义响应式列数配置
73
+ type ResponsiveColumns = {
74
+ base?: number; // 默认列数
75
+ sm?: number; // 小屏幕列数
76
+ md?: number; // 中等屏幕列数
77
+ lg?: number; // 大屏幕列数
78
+ xl?: number; // 超大屏幕列数
79
+ };
80
+
81
+ // 定义间距大小
82
+ type GapSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
83
+
84
+ // 定义布局类型
85
+ type LayoutType = 'grid' | 'list';
86
+
87
+ export interface Props {
88
+ /**
89
+ * 产品数据数组
90
+ */
91
+ products: ProductItem[];
92
+ /**
93
+ * 布局类型
94
+ * - grid: 网格布局(默认)
95
+ * - list: 列表布局
96
+ */
97
+ layout?: LayoutType;
98
+ /**
99
+ * 列数配置
100
+ * 可以为固定数字或响应式对象
101
+ * 例如: { base: 1, sm: 2, md: 3, lg: 4 }
102
+ */
103
+ columns?: number | ResponsiveColumns;
104
+ /**
105
+ * 卡片尺寸
106
+ * 应用于所有ProductCard
107
+ */
108
+ cardSize?: ProductCardProps['size'];
109
+ /**
110
+ * 卡片间距
111
+ * - xs: 超小间距
112
+ * - sm: 小间距
113
+ * - md: 中等间距(默认)
114
+ * - lg: 大间距
115
+ * - xl: 超大间距
116
+ */
117
+ gap?: GapSize;
118
+ /**
119
+ * 是否启用等高卡片
120
+ * 确保所有卡片高度一致
121
+ */
122
+ equalHeight?: boolean;
123
+ /**
124
+ * 描述文本的最大行数
125
+ * 应用于所有ProductCard
126
+ */
127
+ descriptionLines?: number;
128
+ /**
129
+ * 自定义类名
130
+ */
131
+ class?: string;
132
+ }
133
+
134
+ const {
135
+ products,
136
+ layout = 'grid',
137
+ columns = { base: 1, sm: 2, md: 3, lg: 4 },
138
+ cardSize = 'md',
139
+ gap = 'md',
140
+ equalHeight = true,
141
+ descriptionLines,
142
+ class: className = '',
143
+ } = Astro.props;
144
+
145
+ // 间距映射
146
+ const gapMap = {
147
+ xs: 'cosy:gap-1',
148
+ sm: 'cosy:gap-2',
149
+ md: 'cosy:gap-4',
150
+ lg: 'cosy:gap-6',
151
+ xl: 'cosy:gap-8',
152
+ };
153
+
154
+ // 获取响应式列数类名
155
+ const getColumnsClasses = () => {
156
+ if (typeof columns === 'number') {
157
+ return `cosy:grid-cols-${columns}`;
158
+ }
159
+
160
+ const { base = 1, sm, md, lg, xl } = columns;
161
+ const classes = [`cosy:grid-cols-${base}`];
162
+
163
+ if (sm) classes.push(`cosy:sm:grid-cols-${sm}`);
164
+ if (md) classes.push(`cosy:md:grid-cols-${md}`);
165
+ if (lg) classes.push(`cosy:lg:grid-cols-${lg}`);
166
+ if (xl) classes.push(`cosy:xl:grid-cols-${xl}`);
167
+
168
+ return classes.join(' ');
169
+ };
170
+
171
+ // 获取布局类名
172
+ const getLayoutClasses = () => {
173
+ if (layout === 'grid') {
174
+ return ['cosy:grid', getColumnsClasses()];
175
+ } else {
176
+ return ['cosy:flex', 'cosy:flex-col'];
177
+ }
178
+ };
179
+
180
+ // 构建容器类名
181
+ const containerClasses = [
182
+ ...getLayoutClasses(),
183
+ gapMap[gap],
184
+ 'cosy:w-full',
185
+ className,
186
+ ];
187
+ ---
188
+
189
+ <div class:list={containerClasses}>
190
+ {
191
+ products.map((product) => (
192
+ <ProductCard
193
+ {...product}
194
+ size={cardSize}
195
+ equalHeight={equalHeight}
196
+ descriptionLines={descriptionLines}
197
+ />
198
+ ))
199
+ }
200
+ </div>
@@ -0,0 +1,2 @@
1
+ export { default as Products } from './Products.astro';
2
+ export { default as ProductCard } from './ProductCard.astro';
@@ -0,0 +1,150 @@
1
+ ---
2
+ /**
3
+ * Section组件
4
+ *
5
+ * 一个用于页面内容区块的组件,支持不同的内边距、背景和间距
6
+ *
7
+ * @example
8
+ * ```astro
9
+ * <Section>
10
+ * <h2>默认区块</h2>
11
+ * <p>内容将被包裹在一个合适的区块中</p>
12
+ * </Section>
13
+ *
14
+ * <Section padding="lg" background="gray" centered={true} border={true}>
15
+ * <h2>自定义区块</h2>
16
+ * <p>大内边距,灰色背景,内容居中,带边框</p>
17
+ * </Section>
18
+ * ```
19
+ */
20
+
21
+ import type { HTMLAttributes } from 'astro/types';
22
+ import Container from '../container/Container.astro';
23
+ import '../../style.ts';
24
+
25
+ interface Props extends HTMLAttributes<'section'> {
26
+ /**
27
+ * 内边距大小
28
+ * @default "md"
29
+ */
30
+ padding?: 'none' | 'sm' | 'md' | 'lg' | 'xl';
31
+
32
+ /**
33
+ * 背景颜色
34
+ * @default "transparent"
35
+ */
36
+ background?:
37
+ | 'transparent'
38
+ | 'white'
39
+ | 'gray'
40
+ | 'primary'
41
+ | 'secondary'
42
+ | 'dark';
43
+
44
+ /**
45
+ * 是否使用容器包裹内容
46
+ * @default true
47
+ */
48
+ container?: boolean;
49
+
50
+ /**
51
+ * 容器尺寸,仅当container为true时有效
52
+ * @default "md"
53
+ */
54
+ containerSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
55
+
56
+ /**
57
+ * 内容是否居中
58
+ * @default false
59
+ */
60
+ centered?: boolean;
61
+
62
+ /**
63
+ * 是否显示边框
64
+ * @default false
65
+ */
66
+ border?: boolean;
67
+
68
+ /**
69
+ * 自定义类名
70
+ */
71
+ class?: string;
72
+
73
+ /**
74
+ * 类名列表
75
+ */
76
+ 'class:list'?: any;
77
+
78
+ /**
79
+ * 自定义ID
80
+ */
81
+ id?: string;
82
+
83
+ /**
84
+ * 自定义内联样式
85
+ */
86
+ style?: string;
87
+ }
88
+
89
+ const {
90
+ padding = 'md',
91
+ background = 'transparent',
92
+ container = true,
93
+ containerSize = 'md',
94
+ centered = false,
95
+ border = false,
96
+ class: className = '',
97
+ 'class:list': classList,
98
+ id,
99
+ style,
100
+ ...rest
101
+ } = Astro.props;
102
+
103
+ // 内边距映射
104
+ const paddingClasses = {
105
+ none: 'cosy:py-0',
106
+ sm: 'cosy:py-6',
107
+ md: 'cosy:py-12',
108
+ lg: 'cosy:py-16',
109
+ xl: 'cosy:py-24',
110
+ };
111
+
112
+ // 背景颜色映射
113
+ const backgroundClasses = {
114
+ transparent: 'cosy:bg-transparent',
115
+ white: 'cosy:bg-base-100',
116
+ gray: 'cosy:bg-base-200',
117
+ primary: 'cosy:bg-primary/10',
118
+ secondary: 'cosy:bg-secondary/10',
119
+ dark: 'cosy:bg-neutral cosy:text-neutral-content',
120
+ };
121
+
122
+ // 构建最终类名
123
+ const sectionClasses = [
124
+ paddingClasses[padding as keyof typeof paddingClasses],
125
+ backgroundClasses[background as keyof typeof backgroundClasses],
126
+ border ? 'cosy:border cosy:rounded-lg' : '',
127
+ className,
128
+ ].join(' ');
129
+
130
+ // 内容类名
131
+ const contentClasses = centered ? 'cosy:text-center' : '';
132
+ ---
133
+
134
+ <section
135
+ id={id}
136
+ class:list={[sectionClasses, classList]}
137
+ style={style}
138
+ {...rest}>
139
+ {
140
+ container ? (
141
+ <Container size={containerSize} class={contentClasses}>
142
+ <slot />
143
+ </Container>
144
+ ) : (
145
+ <div class={contentClasses}>
146
+ <slot />
147
+ </div>
148
+ )
149
+ }
150
+ </section>
@@ -0,0 +1 @@
1
+ export { default as Section } from './Section.astro';
@@ -0,0 +1,192 @@
1
+ ---
2
+ /**
3
+ * Sidebar组件
4
+ *
5
+ * 用于文档页面的侧边栏导航
6
+ *
7
+ * @example
8
+ * ```astro
9
+ * ---
10
+ * import Sidebar from './Sidebar.astro';
11
+ *
12
+ * const sidebarItems = [
13
+ * { title: "入门", items: [
14
+ * { href: "/docs/getting-started", text: "快速开始" },
15
+ * { href: "/docs/installation", text: "安装" }
16
+ * ]}
17
+ * ];
18
+ * ---
19
+ *
20
+ * <Sidebar sidebarItems={sidebarItems} />
21
+ * ```
22
+ */
23
+
24
+ import '../../style.ts';
25
+ import { isPathMatch } from '../utils/path.ts';
26
+ import { MenuIcon, SidebarNav, Modal } from '../../index-astro';
27
+ import type { ISidebarProps } from '../../index-astro';
28
+
29
+ export interface Props extends ISidebarProps {}
30
+
31
+ const {
32
+ sidebarItems,
33
+ class: className,
34
+ debug = false,
35
+ marginTop = 'md',
36
+ marginBottom = 'md',
37
+ } = Astro.props;
38
+
39
+ // 自动获取当前路径
40
+ const currentPath = Astro.url.pathname;
41
+
42
+ const debugClass = debug ? 'cosy:border cosy:border-red-500' : '';
43
+
44
+ function getVerticalMarginTopClasses(marginTop: string) {
45
+ if (marginTop === 'none') return 'cosy:mt-0';
46
+ if (marginTop === 'xs') return 'cosy:mt-1';
47
+ if (marginTop === 'sm') return 'cosy:mt-2';
48
+ if (marginTop === 'md') return 'cosy:mt-4';
49
+ if (marginTop === 'lg') return 'cosy:mt-6';
50
+ if (marginTop === 'xl') return 'cosy:mt-8';
51
+ if (marginTop === '2xl') return 'cosy:mt-10';
52
+ if (marginTop === '3xl') return 'cosy:mt-12';
53
+ if (marginTop === '4xl') return 'cosy:mt-16';
54
+ if (marginTop === '5xl') return 'cosy:mt-20';
55
+ return '';
56
+ }
57
+
58
+ function getVerticalMarginBottomClasses(marginBottom: string) {
59
+ if (marginBottom === 'none') return 'cosy:mb-0';
60
+ if (marginBottom === 'xs') return 'cosy:mb-1';
61
+ if (marginBottom === 'sm') return 'cosy:mb-2';
62
+ if (marginBottom === 'md') return 'cosy:mb-4';
63
+ if (marginBottom === 'lg') return 'cosy:mb-6';
64
+ if (marginBottom === 'xl') return 'cosy:mb-8';
65
+ if (marginBottom === '2xl') return 'cosy:mb-10';
66
+ if (marginBottom === '3xl') return 'cosy:mb-12';
67
+ if (marginBottom === '4xl') return 'cosy:mb-16';
68
+ if (marginBottom === '5xl') return 'cosy:mb-20';
69
+ return '';
70
+ }
71
+
72
+ // 获取当前活动的一级导航项
73
+ const currentSection = sidebarItems.find((section) =>
74
+ section.items?.some((item) => isPathMatch(currentPath, item.href))
75
+ );
76
+ ---
77
+
78
+ {/* 移动端导航栏 */}
79
+ <div
80
+ class:list={[
81
+ 'cosy:flex cosy:lg:hidden cosy:items-center cosy:justify-between cosy:px-4 cosy:py-2 cosy:border-b cosy:border-base-300 cosy:bg-base-100 cosy:relative cosy:z-10',
82
+ debugClass,
83
+ ]}>
84
+ <div class="cosy:flex cosy:items-center cosy:gap-2">
85
+ <button
86
+ type="button"
87
+ class="cosy:p-2 cosy:btn cosy:btn-ghost cosy:btn-sm"
88
+ data-modal-target="mobile-sidebar">
89
+ <MenuIcon class="cosy:w-5 cosy:h-5" />
90
+ </button>
91
+ <span class="cosy:font-medium cosy:text-sm"
92
+ >{currentSection?.text || '导航'}</span
93
+ >
94
+ </div>
95
+ </div>
96
+
97
+ {/* 移动端侧边栏弹出层 */}
98
+ <Modal
99
+ id="mobile-sidebar"
100
+ class="cosy:mx-4 cosy:lg:w-80 cosy:w-[calc(100vw-2rem)] cosy:max-w-full">
101
+ <div class="cosy:h-[calc(100vh-8rem)] cosy:overflow-y-auto">
102
+ <SidebarNav
103
+ sidebarItems={sidebarItems}
104
+ currentPath={currentPath}
105
+ debug={debug}
106
+ />
107
+ </div>
108
+ </Modal>
109
+
110
+ {/* 桌面端侧边栏 */}
111
+ <aside
112
+ data-sidebar
113
+ data-current-path={currentPath}
114
+ data-margin-top={marginTop}
115
+ data-margin-bottom={marginBottom}
116
+ class:list={[
117
+ className,
118
+ debugClass,
119
+ 'cosy:hidden cosy:lg:block',
120
+ getVerticalMarginTopClasses(marginTop),
121
+ getVerticalMarginBottomClasses(marginBottom),
122
+ ]}>
123
+ <div
124
+ class="cosy:top-16 cosy:sticky cosy:pb-48 cosy:h-[calc(100vh-0rem)] cosy:overflow-y-auto">
125
+ <SidebarNav
126
+ sidebarItems={sidebarItems}
127
+ currentPath={currentPath}
128
+ debug={debug}
129
+ />
130
+ </div>
131
+ </aside>
132
+
133
+ <script>
134
+ // 处理侧边栏滚动位置保存和恢复
135
+ document.addEventListener('astro:before-preparation', () => {
136
+ // 获取桌面侧边栏滚动容器
137
+ const desktopSidebarContent = document.querySelector(
138
+ 'aside[data-sidebar] .cosy\\:overflow-y-auto'
139
+ );
140
+
141
+ // 保存滚动位置到localStorage
142
+ if (desktopSidebarContent) {
143
+ localStorage.setItem(
144
+ 'sidebarScrollPosition',
145
+ desktopSidebarContent.scrollTop.toString()
146
+ );
147
+ }
148
+
149
+ // 获取移动端侧边栏滚动容器
150
+ const mobileSidebarContent = document.querySelector(
151
+ '.cosy\\:h-\\[calc\\(100vh-8rem\\)\\].cosy\\:overflow-y-auto'
152
+ );
153
+
154
+ // 保存移动端滚动位置
155
+ if (mobileSidebarContent) {
156
+ localStorage.setItem(
157
+ 'mobileSidebarScrollPosition',
158
+ mobileSidebarContent.scrollTop.toString()
159
+ );
160
+ }
161
+ });
162
+
163
+ document.addEventListener('astro:page-load', () => {
164
+ // 获取桌面侧边栏滚动容器
165
+ const desktopSidebarContent = document.querySelector(
166
+ 'aside[data-sidebar] .cosy\\:overflow-y-auto'
167
+ );
168
+
169
+ // 恢复滚动位置
170
+ if (desktopSidebarContent) {
171
+ const savedPosition = localStorage.getItem('sidebarScrollPosition');
172
+ if (savedPosition) {
173
+ desktopSidebarContent.scrollTop = parseInt(savedPosition, 10);
174
+ }
175
+ }
176
+
177
+ // 获取移动端侧边栏滚动容器
178
+ const mobileSidebarContent = document.querySelector(
179
+ '.cosy\\:h-\\[calc\\(100vh-8rem\\)\\].cosy\\:overflow-y-auto'
180
+ );
181
+
182
+ // 恢复移动端滚动位置
183
+ if (mobileSidebarContent) {
184
+ const savedMobilePosition = localStorage.getItem(
185
+ 'mobileSidebarScrollPosition'
186
+ );
187
+ if (savedMobilePosition) {
188
+ mobileSidebarContent.scrollTop = parseInt(savedMobilePosition, 10);
189
+ }
190
+ }
191
+ });
192
+ </script>
File without changes
@@ -7,5 +7,5 @@ export { Sidebar, SidebarBasic };
7
7
 
8
8
  // 导出示例源代码
9
9
  export const SidebarExampleCodes = {
10
- Basic: extractSimpleExample(BasicSourceCode, 'Sidebar'),
10
+ Basic: extractSimpleExample(BasicSourceCode, 'Sidebar'),
11
11
  };
@@ -0,0 +1,136 @@
1
+ ---
2
+ /**
3
+ * SidebarNav组件
4
+ *
5
+ * 用于渲染侧边栏的导航内容
6
+ */
7
+
8
+ import { isPathMatch } from '../utils/path.ts';
9
+ import '../../style.ts';
10
+ import type { ISidebarItem } from '../types/sidebar.ts';
11
+
12
+ interface Props {
13
+ /**
14
+ * 侧边栏项目
15
+ */
16
+ sidebarItems: ISidebarItem[];
17
+
18
+ /**
19
+ * 当前路径
20
+ */
21
+ currentPath: string;
22
+
23
+ /**
24
+ * 是否开启调试模式,显示边框
25
+ * @default false
26
+ */
27
+ debug?: boolean;
28
+
29
+ /**
30
+ * 自定义类名
31
+ */
32
+ class?: string;
33
+ }
34
+
35
+ const {
36
+ sidebarItems,
37
+ currentPath,
38
+ debug = false,
39
+ class: className,
40
+ } = Astro.props;
41
+
42
+ const debugClass = debug ? 'cosy:border cosy:border-red-500' : '';
43
+ ---
44
+
45
+ <nav
46
+ data-sidebar-nav
47
+ data-current-path={currentPath}
48
+ class:list={['cosy:p-4', debugClass, className]}>
49
+ {
50
+ sidebarItems.map((section: ISidebarItem) => (
51
+ <div class:list={['cosy:mb-6', debugClass]}>
52
+ <h3
53
+ class:list={[
54
+ 'cosy:font-bold cosy:mb-2 cosy:text-base-content/70',
55
+ debugClass,
56
+ ]}>
57
+ {section.text}
58
+ </h3>
59
+ <ul
60
+ class:list={[
61
+ 'cosy:menu cosy:bg-base-200 cosy:rounded-box cosy:w-56',
62
+ debugClass,
63
+ ]}>
64
+ {section.items?.map((item: ISidebarItem) => {
65
+ const isActive = isPathMatch(currentPath, item.href);
66
+ return (
67
+ <li class:list={[debugClass]}>
68
+ <a
69
+ data-sidebar-item
70
+ data-current-path={currentPath}
71
+ href={item.href}
72
+ class:list={[
73
+ 'cosy:hover:bg-base-300',
74
+ { 'cosy:menu-active': isActive },
75
+ debugClass,
76
+ ]}>
77
+ {item.text}
78
+ </a>
79
+ {item.items && (
80
+ <ul class:list={[debugClass]}>
81
+ {item.items.map((subitem: ISidebarItem) => {
82
+ const isSubActive = isPathMatch(
83
+ currentPath,
84
+ subitem.href
85
+ );
86
+ return (
87
+ <li class:list={[debugClass]}>
88
+ <a
89
+ data-sidebar-item
90
+ data-current-path={currentPath}
91
+ href={subitem.href}
92
+ class:list={[
93
+ 'cosy:hover:bg-base-300',
94
+ { 'cosy:menu-active': isSubActive },
95
+ debugClass,
96
+ ]}>
97
+ {subitem.text}
98
+ </a>
99
+ {subitem.items && (
100
+ <ul class:list={[debugClass]}>
101
+ {subitem.items.map((subsubitem: ISidebarItem) => {
102
+ const isSubSubActive = isPathMatch(
103
+ currentPath,
104
+ subsubitem.href
105
+ );
106
+ return (
107
+ <li class:list={[debugClass]}>
108
+ <a
109
+ data-sidebar-item
110
+ data-current-path={currentPath}
111
+ href={subsubitem.href}
112
+ class:list={[
113
+ 'cosy:hover:bg-base-300',
114
+ { 'cosy:active': isSubSubActive },
115
+ debugClass,
116
+ ]}>
117
+ {subsubitem.text}
118
+ </a>
119
+ </li>
120
+ );
121
+ })}
122
+ </ul>
123
+ )}
124
+ </li>
125
+ );
126
+ })}
127
+ </ul>
128
+ )}
129
+ </li>
130
+ );
131
+ })}
132
+ </ul>
133
+ </div>
134
+ ))
135
+ }
136
+ </nav>