@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,375 +0,0 @@
1
- ---
2
- /**
3
- * @component ProductCard
4
- *
5
- * @description
6
- * ProductCard 组件用于展示产品信息,包括产品名称、图片、描述、App Store链接和产品官网链接。
7
- * 组件采用卡片式设计,支持悬停效果,并提供链接到产品相关页面的功能。
8
- * 支持多种尺寸选项:xs, sm, md, lg, xl
9
- *
10
- * @design
11
- * 设计理念:
12
- * 1. 产品展示 - 突出展示产品的关键信息和图片
13
- * 2. 链接跳转 - 提供App Store和产品官网链接
14
- * 3. 视觉一致性 - 使用卡片组件确保与整体设计风格一致
15
- * 4. 交互反馈 - 悬停时提供视觉反馈,增强用户体验
16
- * 5. 尺寸灵活 - 提供多种预设尺寸,适应不同场景需求
17
- *
18
- * @usage
19
- * 基本用法:
20
- * ```astro
21
- * <ProductCard
22
- * name="产品名称"
23
- * image="/images/products/product1.jpg"
24
- * description="产品简短描述文本"
25
- * productUrl="https://product-website.com"
26
- * />
27
- * ```
28
- *
29
- * 包含App Store链接:
30
- * ```astro
31
- * <ProductCard
32
- * name="产品名称"
33
- * image="/images/products/product1.jpg"
34
- * description="产品简短描述文本"
35
- * appStoreUrl="https://apps.apple.com/app/product"
36
- * productUrl="https://product-website.com"
37
- * />
38
- * ```
39
- *
40
- * 使用不同尺寸:
41
- * ```astro
42
- * <ProductCard
43
- * size="sm"
44
- * name="小尺寸产品卡片"
45
- * image="/images/products/product1.jpg"
46
- * description="产品简短描述文本"
47
- * />
48
- * ```
49
- *
50
- * 统一高度(在Grid或Flex布局中使用):
51
- * ```astro
52
- * <div class="cosy:gap-4 cosy:grid cosy:grid-cols-3">
53
- * <ProductCard
54
- * equalHeight
55
- * name="产品1"
56
- * image="/images/products/product1.jpg"
57
- * description="产品描述文本"
58
- * />
59
- * <ProductCard
60
- * equalHeight
61
- * name="产品2"
62
- * image="/images/products/product2.jpg"
63
- * description="另一个产品的描述"
64
- * />
65
- * </div>
66
- * ```
67
- */
68
-
69
- import { SocialIcon, Image, Link } from '../index';
70
- import '../style.ts';
71
- import type { ImageSource } from '../types/image';
72
-
73
- // 自定义图片元数据接口,替代 astro 的 ImageMetadata
74
- interface CustomImageMetadata {
75
- src: string;
76
- width: number;
77
- height: number;
78
- format: string;
79
- }
80
-
81
- type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
82
-
83
- export interface Props {
84
- /**
85
- * 产品名称
86
- */
87
- name: string;
88
- /**
89
- * 产品图片
90
- */
91
- image: ImageSource;
92
- /**
93
- * 产品描述
94
- */
95
- description: string;
96
- /**
97
- * App Store链接
98
- */
99
- appStoreUrl?: string;
100
- /**
101
- * 产品官网链接
102
- */
103
- productUrl?: string;
104
- /**
105
- * GitHub仓库链接
106
- */
107
- githubUrl?: string;
108
- /**
109
- * 卡片尺寸
110
- * - xs: 超小尺寸,适合密集布局
111
- * - sm: 小尺寸,适合列表
112
- * - md: 中等尺寸,默认
113
- * - lg: 大尺寸,适合突出显示
114
- * - xl: 超大尺寸,适合特色产品
115
- */
116
- size?: Size;
117
- /**
118
- * 主按钮文本(产品官网按钮)
119
- */
120
- primaryButtonText?: string;
121
- /**
122
- * 次按钮文本(App Store按钮)
123
- */
124
- secondaryButtonText?: string;
125
- /**
126
- * GitHub按钮文本
127
- */
128
- githubButtonText?: string;
129
- /**
130
- * 按钮布局方向
131
- * - row: 水平布局(默认)
132
- * - column: 垂直布局
133
- */
134
- buttonLayout?: 'row' | 'column';
135
- /**
136
- * 是否启用等高卡片
137
- * 当在grid或flex布局中使用时,设置为true可确保所有卡片高度一致
138
- */
139
- equalHeight?: boolean;
140
- /**
141
- * 描述文本的最大行数
142
- * 用于控制描述文本的显示行数,超出部分会被截断
143
- */
144
- descriptionLines?: number;
145
- /**
146
- * 自定义类名
147
- */
148
- class?: string;
149
- }
150
-
151
- const {
152
- name,
153
- image,
154
- description,
155
- appStoreUrl,
156
- productUrl,
157
- githubUrl,
158
- size = 'md',
159
- primaryButtonText = '访问官网',
160
- secondaryButtonText = 'App Store',
161
- githubButtonText = 'GitHub',
162
- buttonLayout = 'row',
163
- equalHeight = false,
164
- descriptionLines,
165
- class: className = '',
166
- } = Astro.props;
167
-
168
- // 尺寸样式映射
169
- const sizeStyles = {
170
- xs: {
171
- card: 'cosy:max-w-[200px]',
172
- figure: 'cosy:p-2',
173
- image: {
174
- width: 150,
175
- height: 100,
176
- },
177
- title: 'cosy:text-sm',
178
- description: 'cosy:text-xs cosy:line-clamp-2',
179
- buttons: 'cosy:text-xs cosy:btn-xs',
180
- padding: 'cosy:px-3 cosy:py-2',
181
- cardHeight: 'cosy:h-[280px]',
182
- imageHeight: 'cosy:h-[100px]',
183
- bodyHeight: 'cosy:h-[180px]',
184
- },
185
- sm: {
186
- card: 'cosy:max-w-[250px]',
187
- figure: 'cosy:p-3',
188
- image: {
189
- width: 200,
190
- height: 133,
191
- },
192
- title: 'cosy:text-base',
193
- description: 'cosy:text-sm cosy:line-clamp-3',
194
- buttons: 'cosy:text-sm cosy:btn-sm',
195
- padding: 'cosy:px-4 cosy:py-3',
196
- cardHeight: 'cosy:h-[360px]',
197
- imageHeight: 'cosy:h-[133px]',
198
- bodyHeight: 'cosy:h-[227px]',
199
- },
200
- md: {
201
- card: 'cosy:max-w-[320px]',
202
- figure: 'cosy:p-4',
203
- image: {
204
- width: 300,
205
- height: 200,
206
- },
207
- title: 'cosy:text-xl',
208
- description: 'cosy:text-base',
209
- buttons: '',
210
- padding: 'cosy:px-6 cosy:py-4',
211
- cardHeight: 'cosy:h-[450px]',
212
- imageHeight: 'cosy:h-[200px]',
213
- bodyHeight: 'cosy:h-[250px]',
214
- },
215
- lg: {
216
- card: 'cosy:max-w-[400px]',
217
- figure: 'cosy:p-5',
218
- image: {
219
- width: 380,
220
- height: 253,
221
- },
222
- title: 'cosy:text-2xl',
223
- description: 'cosy:text-lg',
224
- buttons: 'cosy:text-base cosy:btn-lg',
225
- padding: 'cosy:px-7 cosy:py-5',
226
- cardHeight: 'cosy:h-[550px]',
227
- imageHeight: 'cosy:h-[253px]',
228
- bodyHeight: 'cosy:h-[297px]',
229
- },
230
- xl: {
231
- card: 'cosy:max-w-[500px]',
232
- figure: 'cosy:p-6',
233
- image: {
234
- width: 480,
235
- height: 320,
236
- },
237
- title: 'cosy:text-3xl',
238
- description: 'cosy:text-xl',
239
- buttons: 'cosy:text-lg cosy:btn-lg',
240
- padding: 'cosy:px-8 cosy:py-6',
241
- cardHeight: 'cosy:h-[650px]',
242
- imageHeight: 'cosy:h-[320px]',
243
- bodyHeight: 'cosy:h-[330px]',
244
- },
245
- };
246
-
247
- const currentSize = sizeStyles[size];
248
-
249
- // 描述文本的行数限制
250
- const descriptionClass = descriptionLines
251
- ? `cosy:line-clamp-${descriptionLines}`
252
- : currentSize.description.includes('line-clamp')
253
- ? currentSize.description
254
- : `${currentSize.description} cosy:line-clamp-3`;
255
-
256
- // 计算按钮布局类名,根据按钮数量和布局方向调整
257
- const getButtonLayoutClass = () => {
258
- let count = 0;
259
- if (productUrl) count++;
260
- if (appStoreUrl) count++;
261
- if (githubUrl) count++;
262
-
263
- // 垂直布局时所有按钮都是全宽
264
- if (buttonLayout === 'column') {
265
- return 'cosy:w-full';
266
- }
267
-
268
- // 水平布局时根据按钮数量选择合适的布局类
269
- switch (count) {
270
- case 1:
271
- return 'cosy:w-full'; // 单个按钮占满一行
272
- case 2:
273
- return 'cosy:flex-1'; // 两个按钮平分
274
- case 3:
275
- return 'cosy:flex-1'; // 三个按钮平分
276
- default:
277
- return '';
278
- }
279
- };
280
-
281
- const buttonLayoutClass = getButtonLayoutClass();
282
- const buttonsContainerClass =
283
- buttonLayout === 'column'
284
- ? 'cosy:flex cosy:flex-col cosy:gap-2 cosy:mt-auto'
285
- : 'cosy:flex cosy:flex-wrap cosy:gap-2 cosy:mt-auto';
286
- ---
287
-
288
- <div
289
- class:list={[
290
- 'cosy:card cosy:bg-base-100 cosy:shadow-md cosy:hover:shadow-lg cosy:transition-shadow cosy:duration-300',
291
- currentSize.card,
292
- equalHeight && currentSize.cardHeight,
293
- 'cosy:flex cosy:flex-col',
294
- className,
295
- ]}>
296
- <figure class:list={[currentSize.figure, equalHeight && currentSize.imageHeight]}>
297
- <Image
298
- src={image}
299
- alt={`${name} product image`}
300
- width={currentSize.image.width}
301
- height={currentSize.image.height}
302
- rounded="lg"
303
- transition="fade"
304
- hover="brightness"
305
- class="cosy:w-full cosy:h-full cosy:object-cover"
306
- loading="lazy"
307
- showError={true}
308
- />
309
- </figure>
310
- <div
311
- class:list={[
312
- currentSize.padding,
313
- 'cosy:card-body',
314
- 'cosy:flex cosy:flex-col',
315
- equalHeight && currentSize.bodyHeight,
316
- ]}>
317
- <h2 class:list={['cosy:mb-2 cosy:font-bold cosy:card-title', currentSize.title]}>{name}</h2>
318
- <p class:list={['cosy:mb-4', descriptionClass]}>{description}</p>
319
-
320
- <div class={buttonsContainerClass}>
321
- {
322
- productUrl && (
323
- <Link
324
- href={productUrl}
325
- external
326
- variant="primary"
327
- class:list={[
328
- 'cosy:btn cosy:bg-[#4468e3] cosy:hover:bg-[#3857cc] cosy:border-0',
329
- 'cosy:text-white cosy:font-bold cosy:shadow-sm',
330
- buttonLayoutClass,
331
- currentSize.buttons,
332
- ]}
333
- aria-label={`Visit ${name}'s website`}>
334
- {primaryButtonText}
335
- </Link>
336
- )
337
- }
338
- {
339
- appStoreUrl && (
340
- <Link
341
- href={appStoreUrl}
342
- external
343
- variant="secondary"
344
- class:list={[
345
- 'cosy:btn cosy:bg-[#161616] cosy:hover:bg-black cosy:border-0',
346
- 'cosy:text-white cosy:font-bold cosy:shadow-sm',
347
- buttonLayoutClass,
348
- currentSize.buttons,
349
- ]}
350
- aria-label={`Download ${name} on App Store`}>
351
- {secondaryButtonText}
352
- </Link>
353
- )
354
- }
355
- {
356
- githubUrl && (
357
- <Link
358
- href={githubUrl}
359
- external
360
- variant="ghost"
361
- class:list={[
362
- 'cosy:btn cosy:bg-[#f0f0f0] cosy:hover:bg-[#e0e0e0] cosy:border-0',
363
- 'cosy:text-[#24292f] cosy:font-bold cosy:shadow-sm',
364
- buttonLayoutClass,
365
- currentSize.buttons,
366
- ]}
367
- aria-label={`View ${name}'s GitHub repository`}>
368
- <SocialIcon platform="github" size="18px" />
369
- <span class="cosy:inline-block">{githubButtonText}</span>
370
- </Link>
371
- )
372
- }
373
- </div>
374
- </div>
375
- </div>
@@ -1,195 +0,0 @@
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';
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 = [...getLayoutClasses(), gapMap[gap], 'cosy:w-full', className];
182
- ---
183
-
184
- <div class:list={containerClasses}>
185
- {
186
- products.map((product) => (
187
- <ProductCard
188
- {...product}
189
- size={cardSize}
190
- equalHeight={equalHeight}
191
- descriptionLines={descriptionLines}
192
- />
193
- ))
194
- }
195
- </div>
@@ -1,2 +0,0 @@
1
- export { default as Products } from './Products.astro';
2
- export { default as ProductCard } from './ProductCard.astro';
@@ -1,140 +0,0 @@
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?: 'transparent' | 'white' | 'gray' | 'primary' | 'secondary' | 'dark';
37
-
38
- /**
39
- * 是否使用容器包裹内容
40
- * @default true
41
- */
42
- container?: boolean;
43
-
44
- /**
45
- * 容器尺寸,仅当container为true时有效
46
- * @default "md"
47
- */
48
- containerSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
49
-
50
- /**
51
- * 内容是否居中
52
- * @default false
53
- */
54
- centered?: boolean;
55
-
56
- /**
57
- * 是否显示边框
58
- * @default false
59
- */
60
- border?: boolean;
61
-
62
- /**
63
- * 自定义类名
64
- */
65
- class?: string;
66
-
67
- /**
68
- * 类名列表
69
- */
70
- 'class:list'?: any;
71
-
72
- /**
73
- * 自定义ID
74
- */
75
- id?: string;
76
-
77
- /**
78
- * 自定义内联样式
79
- */
80
- style?: string;
81
- }
82
-
83
- const {
84
- padding = 'md',
85
- background = 'transparent',
86
- container = true,
87
- containerSize = 'md',
88
- centered = false,
89
- border = false,
90
- class: className = '',
91
- 'class:list': classList,
92
- id,
93
- style,
94
- ...rest
95
- } = Astro.props;
96
-
97
- // 内边距映射
98
- const paddingClasses = {
99
- none: 'cosy:py-0',
100
- sm: 'cosy:py-6',
101
- md: 'cosy:py-12',
102
- lg: 'cosy:py-16',
103
- xl: 'cosy:py-24',
104
- };
105
-
106
- // 背景颜色映射
107
- const backgroundClasses = {
108
- transparent: 'cosy:bg-transparent',
109
- white: 'cosy:bg-base-100',
110
- gray: 'cosy:bg-base-200',
111
- primary: 'cosy:bg-primary/10',
112
- secondary: 'cosy:bg-secondary/10',
113
- dark: 'cosy:bg-neutral cosy:text-neutral-content',
114
- };
115
-
116
- // 构建最终类名
117
- const sectionClasses = [
118
- paddingClasses[padding as keyof typeof paddingClasses],
119
- backgroundClasses[background as keyof typeof backgroundClasses],
120
- border ? 'cosy:border cosy:rounded-lg' : '',
121
- className,
122
- ].join(' ');
123
-
124
- // 内容类名
125
- const contentClasses = centered ? 'cosy:text-center' : '';
126
- ---
127
-
128
- <section id={id} class:list={[sectionClasses, classList]} style={style} {...rest}>
129
- {
130
- container ? (
131
- <Container size={containerSize} class={contentClasses}>
132
- <slot />
133
- </Container>
134
- ) : (
135
- <div class={contentClasses}>
136
- <slot />
137
- </div>
138
- )
139
- }
140
- </section>
@@ -1 +0,0 @@
1
- export { default as Section } from './Section.astro';