@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,244 @@
1
+ <!--
2
+ @component DownloadButton
3
+
4
+ @description
5
+ DownloadButton 组件提供了一个下载按钮,带有可展开的下拉菜单,用于调整尺寸、背景和下载图片。
6
+
7
+ @usage
8
+ 基本用法:
9
+ ```vue
10
+ <DownloadButton
11
+ :displayMode="'hover'"
12
+ :isLoadedFromStorage="true"
13
+ :selectedSize="selectedSize"
14
+ :selectedBgIndex="selectedBgIndex"
15
+ :sizePresets="sizePresets"
16
+ :bgClasses="bgClasses"
17
+ @update:selectedSize="selectedSize = $event"
18
+ @update:selectedBgIndex="selectedBgIndex = $event"
19
+ @clear-stored-size="clearStoredSize"
20
+ @download-image="downloadAsImage"
21
+ />
22
+ ```
23
+
24
+ @props
25
+ @prop {String} [displayMode='hover'] - 下载按钮显示模式:'always'(总是显示),'hover'(悬停显示),'never'(不显示)
26
+ @prop {Boolean} [isLoadedFromStorage=false] - 是否已从存储中加载尺寸
27
+ @prop {Object} [selectedSize] - 当前选中的尺寸预设
28
+ @prop {Number} [selectedBgIndex=0] - 当前选中的背景样式索引
29
+ @prop {Array} [sizePresets] - 尺寸预设列表
30
+ @prop {Array} [bgClasses] - 背景样式类列表
31
+
32
+ @emits
33
+ @emit update:selectedSize - 当选择新的尺寸预设时触发
34
+ @emit update:selectedBgIndex - 当选择新的背景样式时触发
35
+ @emit clear-stored-size - 当清除存储的尺寸时触发
36
+ @emit download-image - 当请求下载图片时触发
37
+ -->
38
+
39
+ <script lang="ts">
40
+ import { ref, computed, defineComponent } from 'vue';
41
+ import { RiDownloadLine } from '@remixicon/vue';
42
+ import { bgClasses } from './bgStyles';
43
+ import { sizePresets, type SizePreset } from './sizePresets';
44
+ import '../../style';
45
+
46
+ export default defineComponent({
47
+ name: 'DownloadButton',
48
+ components: {
49
+ RiDownloadLine,
50
+ },
51
+ props: {
52
+ displayMode: {
53
+ type: String,
54
+ default: 'hover',
55
+ validator: (value: string) =>
56
+ ['always', 'hover', 'never'].includes(value),
57
+ },
58
+ isLoadedFromStorage: {
59
+ type: Boolean,
60
+ default: false,
61
+ },
62
+ selectedSize: {
63
+ type: Object as () => SizePreset,
64
+ required: true,
65
+ },
66
+ selectedBgIndex: {
67
+ type: Number,
68
+ default: 0,
69
+ },
70
+ },
71
+ emits: [
72
+ 'update:selectedSize',
73
+ 'update:selectedBgIndex',
74
+ 'clear-stored-size',
75
+ 'download-image',
76
+ ],
77
+ setup(props, { emit }) {
78
+ const isDropdownOpen = ref(false);
79
+
80
+ const toggleDropdown = () => {
81
+ isDropdownOpen.value = !isDropdownOpen.value;
82
+ };
83
+
84
+ // 计算下载按钮是否显示及其样式类
85
+ const downloadButtonStyles = computed(() => {
86
+ switch (props.displayMode) {
87
+ case 'always':
88
+ return {
89
+ show: true,
90
+ classes: 'cosy:opacity-100',
91
+ };
92
+ case 'hover':
93
+ return {
94
+ show: true,
95
+ classes:
96
+ 'cosy:opacity-0 cosy:hover:opacity-100 cosy:transition-opacity',
97
+ };
98
+ case 'never':
99
+ return {
100
+ show: false,
101
+ classes: '',
102
+ };
103
+ default:
104
+ return {
105
+ show: true,
106
+ classes:
107
+ 'cosy:opacity-0 cosy:hover:opacity-100 cosy:transition-opacity',
108
+ };
109
+ }
110
+ });
111
+
112
+ const selectSize = (size: SizePreset) => {
113
+ emit('update:selectedSize', size);
114
+ };
115
+
116
+ const selectBackground = (index: number) => {
117
+ emit('update:selectedBgIndex', index);
118
+ };
119
+
120
+ const clearStoredSize = () => {
121
+ emit('clear-stored-size');
122
+ isDropdownOpen.value = false;
123
+ };
124
+
125
+ const downloadImage = () => {
126
+ emit('download-image');
127
+ isDropdownOpen.value = false;
128
+ };
129
+
130
+ return {
131
+ isDropdownOpen,
132
+ toggleDropdown,
133
+ downloadButtonStyles,
134
+ selectSize,
135
+ selectBackground,
136
+ clearStoredSize,
137
+ downloadImage,
138
+ bgClasses,
139
+ sizePresets,
140
+ };
141
+ },
142
+ });
143
+ </script>
144
+
145
+ <template>
146
+ <div
147
+ v-if="downloadButtonStyles.show"
148
+ class="cosy:absolute cosy:top-4 cosy:left-4"
149
+ :class="downloadButtonStyles.classes"
150
+ >
151
+ <div class="cosy:relative" data-dropdown>
152
+ <button
153
+ class="cosy:bg-yellow-500/30 cosy:backdrop-blur-sm cosy:p-2 cosy:rounded-lg hover:cosy:bg-yellow-500/40"
154
+ @click="toggleDropdown"
155
+ >
156
+ <RiDownloadLine class="cosy:w-6 cosy:h-6 cosy:text-white" />
157
+ </button>
158
+ <!-- Size selection dropdown -->
159
+ <div
160
+ v-if="isDropdownOpen"
161
+ class="cosy:absolute cosy:left-0 cosy:mt-2 cosy:w-96 cosy:bg-white dark:cosy:bg-gray-800 cosy:rounded-lg cosy:shadow-lg cosy:py-2 cosy:z-50"
162
+ >
163
+ <!-- Component size presets -->
164
+ <div
165
+ class="cosy:px-4 cosy:py-2 cosy:border-b cosy:border-gray-200 dark:cosy:border-gray-700"
166
+ >
167
+ <div class="cosy:grid cosy:grid-cols-3 cosy:gap-2">
168
+ <button
169
+ v-for="preset in sizePresets"
170
+ :key="preset.name"
171
+ :class="[
172
+ 'cosy:p-2 cosy:text-left cosy:rounded cosy:text-sm',
173
+ selectedSize.name === preset.name
174
+ ? 'cosy:bg-yellow-500/30 cosy:text-yellow-900 dark:cosy:text-yellow-100'
175
+ : 'hover:cosy:bg-gray-100 dark:hover:cosy:bg-gray-700',
176
+ ]"
177
+ @click="selectSize(preset)"
178
+ >
179
+ <div class="cosy:flex cosy:flex-col">
180
+ <span class="cosy:font-medium">{{ preset.name }}</span>
181
+ <span
182
+ class="cosy:text-xs cosy:text-gray-500 dark:cosy:text-gray-400"
183
+ >
184
+ {{ preset.width.replace('cosy:w-[', '').replace(']', '') }}
185
+ </span>
186
+ </div>
187
+ </button>
188
+ <!-- Clear size button -->
189
+ <button
190
+ class="cosy:p-2 cosy:text-left cosy:rounded cosy:text-sm hover:cosy:bg-gray-100 dark:hover:cosy:bg-gray-700"
191
+ @click="clearStoredSize"
192
+ >
193
+ <div class="cosy:flex cosy:flex-col">
194
+ <span
195
+ class="cosy:font-medium cosy:text-red-600 dark:cosy:text-red-400"
196
+ >清除记住的尺寸</span
197
+ >
198
+ <span
199
+ class="cosy:text-xs cosy:text-gray-500 dark:cosy:text-gray-400"
200
+ >重置为默认尺寸</span
201
+ >
202
+ </div>
203
+ </button>
204
+ </div>
205
+ </div>
206
+ <!-- Background settings -->
207
+ <div
208
+ class="cosy:px-4 cosy:py-2 cosy:border-b cosy:border-gray-200 dark:cosy:border-gray-700"
209
+ >
210
+ <div class="cosy:mt-2">
211
+ <div class="cosy:grid cosy:grid-cols-8 cosy:gap-2">
212
+ <button
213
+ v-for="(className, index) in bgClasses"
214
+ :key="index"
215
+ :class="[
216
+ className,
217
+ 'cosy:w-8 cosy:h-8 cosy:rounded-lg cosy:border-2',
218
+ selectedBgIndex === index
219
+ ? 'cosy:border-yellow-500'
220
+ : 'cosy:border-transparent',
221
+ ]"
222
+ @click="selectBackground(index)"
223
+ />
224
+ </div>
225
+ </div>
226
+ </div>
227
+ <!-- Size options -->
228
+ <div class="cosy:p-4">
229
+ <button
230
+ class="cosy:w-full cosy:p-2 cosy:text-center cosy:rounded hover:cosy:bg-gray-100 dark:hover:cosy:bg-gray-700"
231
+ @click="downloadImage"
232
+ >
233
+ <div
234
+ class="cosy:flex cosy:items-center cosy:justify-center cosy:gap-2"
235
+ >
236
+ <RiDownloadLine class="cosy:w-4 cosy:h-4" />
237
+ <span class="cosy:font-medium">下载图片</span>
238
+ </div>
239
+ </button>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ </div>
244
+ </template>
@@ -0,0 +1,34 @@
1
+ <!--
2
+ @component BannerBox.Basic
3
+
4
+ @description
5
+ BannerBox 组件的基础示例,展示最基本的横幅容器用法。
6
+
7
+ @usage
8
+ ```vue
9
+ <BannerBoxExamples.Basic />
10
+ ```
11
+ -->
12
+
13
+ <script lang="ts">
14
+ import '../../app.css';
15
+ import { defineComponent } from 'vue';
16
+ import BannerBox from './BannerBox.vue';
17
+
18
+ export default defineComponent({
19
+ name: 'BannerBoxBasicExample',
20
+ components: {
21
+ BannerBox,
22
+ },
23
+ });
24
+ </script>
25
+
26
+ <template>
27
+ <BannerBox>
28
+ <div
29
+ class="cosy:flex cosy:items-center cosy:justify-center cosy:min-h-[200px]"
30
+ >
31
+ <h2 class="cosy:text-3xl cosy:font-bold">欢迎使用 BannerBox</h2>
32
+ </div>
33
+ </BannerBox>
34
+ </template>
@@ -0,0 +1,34 @@
1
+ <!--
2
+ @component BannerBox.CustomBg
3
+
4
+ @description
5
+ BannerBox 组件的自定义背景示例,展示如何通过 backgroundClassIndex 属性设置背景样式。
6
+
7
+ @usage
8
+ ```vue
9
+ <BannerBoxExamples.CustomBg />
10
+ ```
11
+ -->
12
+
13
+ <script lang="ts">
14
+ import '../../app.css';
15
+ import { defineComponent } from 'vue';
16
+ import BannerBox from './BannerBox.vue';
17
+
18
+ export default defineComponent({
19
+ name: 'BannerBoxCustomBgExample',
20
+ components: {
21
+ BannerBox,
22
+ },
23
+ });
24
+ </script>
25
+
26
+ <template>
27
+ <BannerBox :backgroundClassIndex="5">
28
+ <div
29
+ class="cosy:flex cosy:items-center cosy:justify-center cosy:min-h-[200px]"
30
+ >
31
+ <h2 class="cosy:text-3xl cosy:font-bold">自定义背景颜色</h2>
32
+ </div>
33
+ </BannerBox>
34
+ </template>
@@ -0,0 +1,36 @@
1
+ <!--
2
+ @component BannerBox.DisplayModeAlways
3
+
4
+ @description
5
+ BannerBox 组件的"总是显示下载按钮"模式示例。
6
+
7
+ @usage
8
+ ```vue
9
+ <BannerBoxExamples.DisplayModeAlways />
10
+ ```
11
+ -->
12
+
13
+ <script lang="ts">
14
+ import '../../app.css';
15
+ import { defineComponent } from 'vue';
16
+ import BannerBox from './BannerBox.vue';
17
+
18
+ export default defineComponent({
19
+ name: 'BannerBoxDisplayModeAlwaysExample',
20
+ components: {
21
+ BannerBox,
22
+ },
23
+ });
24
+ </script>
25
+
26
+ <template>
27
+ <div>
28
+ <BannerBox displayMode="always" :backgroundClassIndex="1">
29
+ <div
30
+ class="cosy:flex cosy:items-center cosy:justify-center cosy:min-h-[150px]"
31
+ >
32
+ <p>下载按钮始终可见</p>
33
+ </div>
34
+ </BannerBox>
35
+ </div>
36
+ </template>
@@ -0,0 +1,36 @@
1
+ <!--
2
+ @component BannerBox.DisplayModeHover
3
+
4
+ @description
5
+ BannerBox 组件的"悬停时显示下载按钮"模式示例,这是默认行为。
6
+
7
+ @usage
8
+ ```vue
9
+ <BannerBoxExamples.DisplayModeHover />
10
+ ```
11
+ -->
12
+
13
+ <script lang="ts">
14
+ import '../../app.css';
15
+ import { defineComponent } from 'vue';
16
+ import BannerBox from './BannerBox.vue';
17
+
18
+ export default defineComponent({
19
+ name: 'BannerBoxDisplayModeHoverExample',
20
+ components: {
21
+ BannerBox,
22
+ },
23
+ });
24
+ </script>
25
+
26
+ <template>
27
+ <div>
28
+ <BannerBox displayMode="hover" :backgroundClassIndex="2">
29
+ <div
30
+ class="cosy:flex cosy:items-center cosy:justify-center cosy:min-h-[150px]"
31
+ >
32
+ <p>鼠标悬停时显示下载按钮</p>
33
+ </div>
34
+ </BannerBox>
35
+ </div>
36
+ </template>
@@ -0,0 +1,36 @@
1
+ <!--
2
+ @component BannerBox.DisplayModeNever
3
+
4
+ @description
5
+ BannerBox 组件的"不显示下载按钮"模式示例。
6
+
7
+ @usage
8
+ ```vue
9
+ <BannerBoxExamples.DisplayModeNever />
10
+ ```
11
+ -->
12
+
13
+ <script lang="ts">
14
+ import '../../app.css';
15
+ import { defineComponent } from 'vue';
16
+ import BannerBox from './BannerBox.vue';
17
+
18
+ export default defineComponent({
19
+ name: 'BannerBoxDisplayModeNeverExample',
20
+ components: {
21
+ BannerBox,
22
+ },
23
+ });
24
+ </script>
25
+
26
+ <template>
27
+ <div>
28
+ <BannerBox displayMode="never" :backgroundClassIndex="3">
29
+ <div
30
+ class="cosy:flex cosy:items-center cosy:justify-center cosy:min-h-[150px]"
31
+ >
32
+ <p>不显示下载按钮</p>
33
+ </div>
34
+ </BannerBox>
35
+ </div>
36
+ </template>
@@ -0,0 +1,42 @@
1
+ <!--
2
+ @component BannerBox.ImageExport
3
+
4
+ @description
5
+ BannerBox 组件的导出为图片示例,展示如何使用图片导出功能。
6
+
7
+ @usage
8
+ ```vue
9
+ <BannerBoxExamples.ImageExport />
10
+ ```
11
+ -->
12
+
13
+ <script lang="ts">
14
+ import '../../app.css';
15
+ import { defineComponent } from 'vue';
16
+ import BannerBox from './BannerBox.vue';
17
+
18
+ export default defineComponent({
19
+ name: 'BannerBoxImageExportExample',
20
+ components: {
21
+ BannerBox,
22
+ },
23
+ });
24
+ </script>
25
+
26
+ <template>
27
+ <div>
28
+ <p class="cosy:mb-4">
29
+ 悬停在左上角显示下载按钮,点击可下载当前内容为图片。
30
+ </p>
31
+ <BannerBox :backgroundClassIndex="8">
32
+ <div
33
+ class="cosy:flex cosy:flex-col cosy:items-center cosy:justify-center cosy:min-h-[200px] cosy:p-8 cosy:text-center"
34
+ >
35
+ <h2 class="cosy:text-3xl cosy:font-bold cosy:mb-4">
36
+ 可导出为图片的内容
37
+ </h2>
38
+ <p class="cosy:text-lg">适用于创建社交媒体分享图、营销材料等场景</p>
39
+ </div>
40
+ </BannerBox>
41
+ </div>
42
+ </template>
@@ -0,0 +1,39 @@
1
+ <!--
2
+ @component BannerBox.SizePreset
3
+
4
+ @description
5
+ BannerBox 组件的尺寸预设示例,展示如何使用尺寸选择功能。
6
+
7
+ @usage
8
+ ```vue
9
+ <BannerBoxExamples.SizePreset />
10
+ ```
11
+ -->
12
+
13
+ <script lang="ts">
14
+ import '../../app.css';
15
+ import { defineComponent } from 'vue';
16
+ import BannerBox from './BannerBox.vue';
17
+
18
+ export default defineComponent({
19
+ name: 'BannerBoxSizePresetExample',
20
+ components: {
21
+ BannerBox,
22
+ },
23
+ });
24
+ </script>
25
+
26
+ <template>
27
+ <div>
28
+ <p class="cosy:mb-4">
29
+ 悬停在左上角显示下载按钮,点击可切换尺寸。尺寸会保存在浏览器中。
30
+ </p>
31
+ <BannerBox>
32
+ <div
33
+ class="cosy:flex cosy:items-center cosy:justify-center cosy:min-h-[200px]"
34
+ >
35
+ <h2 class="cosy:text-3xl cosy:font-bold">点击左上角按钮切换尺寸</h2>
36
+ </div>
37
+ </BannerBox>
38
+ </div>
39
+ </template>
@@ -0,0 +1,205 @@
1
+ <script setup lang="ts">
2
+ import { computed, type Component } from 'vue';
3
+ import {
4
+ // 开发相关
5
+ RiGithubFill,
6
+ RiGitBranchLine,
7
+ RiTerminalBoxLine,
8
+ RiCommandLine,
9
+ RiCodeSSlashLine,
10
+ RiBracesLine,
11
+ RiDatabase2Line,
12
+ RiServerLine,
13
+ // 文档相关
14
+ RiBookOpenLine,
15
+ RiFileTextLine,
16
+ RiArticleLine,
17
+ RiDraftLine,
18
+ RiFileListLine,
19
+ // 媒体相关
20
+ RiImage2Line,
21
+ RiVideoLine,
22
+ RiMusic2Line,
23
+ RiPlayCircleLine,
24
+ RiMovieLine,
25
+ // 社交相关
26
+ RiUserLine,
27
+ RiTeamLine,
28
+ RiChat1Line,
29
+ RiMessage2Line,
30
+ RiShareLine,
31
+ // 工具相关
32
+ RiToolsLine,
33
+ RiSettings4Line,
34
+ RiDashboardLine,
35
+ RiAppsLine,
36
+ RiPlugLine,
37
+ // 安全相关
38
+ RiShieldLine,
39
+ RiLockLine,
40
+ RiKeyLine,
41
+ RiUserSettingsLine,
42
+ // 云服务相关
43
+ RiCloudLine,
44
+ RiUploadCloud2Line,
45
+ RiDownloadCloud2Line,
46
+ RiCloudOffLine,
47
+ // 设备相关
48
+ RiSmartphoneLine,
49
+ RiTabletLine,
50
+ RiComputerLine,
51
+ RiWifiLine,
52
+ // 数据相关
53
+ RiPieChartLine,
54
+ RiLineChartLine,
55
+ RiBarChartLine,
56
+ // AI/机器学习相关
57
+ RiRobot2Line,
58
+ RiBrainLine,
59
+ RiCpuLine,
60
+ // 其他常用
61
+ RiRocketLine,
62
+ RiLightbulbLine,
63
+ RiStarLine,
64
+ RiHeartLine,
65
+ RiThumbUpLine,
66
+ } from '@remixicon/vue';
67
+
68
+ // 预设图标映射
69
+ const presetIcons = {
70
+ // 开发类
71
+ github: RiGithubFill,
72
+ git: RiGitBranchLine,
73
+ terminal: RiTerminalBoxLine,
74
+ command: RiCommandLine,
75
+ code: RiCodeSSlashLine,
76
+ api: RiBracesLine,
77
+ database: RiDatabase2Line,
78
+ server: RiServerLine,
79
+
80
+ // 文档类
81
+ book: RiBookOpenLine,
82
+ file: RiFileTextLine,
83
+ article: RiArticleLine,
84
+ draft: RiDraftLine,
85
+ list: RiFileListLine,
86
+
87
+ // 媒体类
88
+ image: RiImage2Line,
89
+ video: RiVideoLine,
90
+ music: RiMusic2Line,
91
+ play: RiPlayCircleLine,
92
+ movie: RiMovieLine,
93
+
94
+ // 社交类
95
+ user: RiUserLine,
96
+ team: RiTeamLine,
97
+ chat: RiChat1Line,
98
+ message: RiMessage2Line,
99
+ share: RiShareLine,
100
+
101
+ // 工具类
102
+ tools: RiToolsLine,
103
+ settings: RiSettings4Line,
104
+ dashboard: RiDashboardLine,
105
+ apps: RiAppsLine,
106
+ plugin: RiPlugLine,
107
+
108
+ // 安全类
109
+ shield: RiShieldLine,
110
+ lock: RiLockLine,
111
+ key: RiKeyLine,
112
+ security: RiUserSettingsLine,
113
+
114
+ // 云服务类
115
+ cloud: RiCloudLine,
116
+ upload: RiUploadCloud2Line,
117
+ download: RiDownloadCloud2Line,
118
+ offline: RiCloudOffLine,
119
+
120
+ // 设备类
121
+ mobile: RiSmartphoneLine,
122
+ tablet: RiTabletLine,
123
+ computer: RiComputerLine,
124
+ wifi: RiWifiLine,
125
+
126
+ // 数据类
127
+ chart: RiPieChartLine,
128
+ line: RiLineChartLine,
129
+ bar: RiBarChartLine,
130
+ data: RiDatabase2Line,
131
+
132
+ // AI/机器学习类
133
+ robot: RiRobot2Line,
134
+ brain: RiBrainLine,
135
+ cpu: RiCpuLine,
136
+
137
+ // 其他常用
138
+ rocket: RiRocketLine,
139
+ idea: RiLightbulbLine,
140
+ star: RiStarLine,
141
+ heart: RiHeartLine,
142
+ like: RiThumbUpLine,
143
+ } as const;
144
+
145
+ type PresetIconType = keyof typeof presetIcons;
146
+
147
+ interface Props {
148
+ title: string;
149
+ description?: string;
150
+ link?: string;
151
+ emoji?: string;
152
+ icon?: Component; // 自定义图标组件
153
+ presetIcon?: PresetIconType; // 预设图标名称
154
+ }
155
+
156
+ const props = defineProps<Props>();
157
+
158
+ // 获取预设图标组件
159
+ const getPresetIcon = computed(() => {
160
+ if (!props.presetIcon) return null;
161
+ return presetIcons[props.presetIcon];
162
+ });
163
+ </script>
164
+
165
+ <template>
166
+ <component
167
+ :is="link ? 'a' : 'div'"
168
+ :href="link || undefined"
169
+ :target="link ? '_blank' : undefined"
170
+ :rel="link ? 'noopener noreferrer' : undefined"
171
+ :class="[
172
+ 'cosy:card cosy:no-underline cosy:bg-base-100/10 cosy:backdrop-blur-lg cosy:p-8 cosy:transition-all cosy:duration-300 cosy:hover:-translate-y-1 cosy:shadow-lg',
173
+ {
174
+ 'cosy:hover:bg-primary/15 cosy:cursor-pointer': link,
175
+ 'cosy:cursor-default': !link,
176
+ },
177
+ ]"
178
+ >
179
+ <div class="card-body cosy:p-0">
180
+ <div class="cosy:mb-4">
181
+ <component
182
+ :is="icon"
183
+ v-if="icon"
184
+ class="cosy:text-4xl cosy:text-base-content"
185
+ />
186
+ <component
187
+ :is="getPresetIcon"
188
+ v-else-if="presetIcon"
189
+ class="cosy:text-4xl cosy:text-base-content"
190
+ />
191
+ <div v-else class="cosy:text-4xl cosy:text-base-content">
192
+ {{ emoji }}
193
+ </div>
194
+ </div>
195
+ <h3
196
+ class="card-title cosy:text-lg cosy:font-medium cosy:text-base-content"
197
+ >
198
+ {{ title }}
199
+ </h3>
200
+ <p v-if="description" class="cosy:text-base-content/70">
201
+ {{ description }}
202
+ </p>
203
+ </div>
204
+ </component>
205
+ </template>