@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,338 @@
1
+ ---
2
+ /**
3
+ * @component Image
4
+ *
5
+ * @description
6
+ * Image 组件是一个增强的图片组件,提供了丰富的功能,包括懒加载、加载状态指示、错误处理、
7
+ * 以及各种视觉效果。它旨在提供更好的用户体验和性能优化。
8
+ *
9
+ * @design
10
+ * 设计理念:
11
+ * 1. 用户体验优先 - 提供加载状态反馈,减少用户等待焦虑
12
+ * 2. 性能优化 - 支持懒加载,减少初始加载时间
13
+ * 3. 错误处理 - 优雅地处理图片加载失败的情况
14
+ * 4. 视觉一致性 - 提供统一的圆角、阴影和过渡效果
15
+ * 5. 灵活配置 - 支持多种自定义选项,适应不同场景
16
+ *
17
+ * @usage
18
+ * 基本用法:
19
+ * ```astro
20
+ * <Image src="/images/photo.jpg" alt="一张照片" />
21
+ * ```
22
+ *
23
+ * 带样式效果:
24
+ * ```astro
25
+ * <Image
26
+ * src="/images/photo.jpg"
27
+ * alt="一张照片"
28
+ * rounded="lg"
29
+ * shadow="md"
30
+ * hover="scale"
31
+ * />
32
+ * ```
33
+ *
34
+ * 自定义加载指示器:
35
+ * ```astro
36
+ * <Image
37
+ * src="https://example.com/large-image.jpg"
38
+ * alt="远程大图"
39
+ * loadingIndicator="progress"
40
+ * />
41
+ * ```
42
+ */
43
+
44
+ import '../../style.ts';
45
+ import { AlertTriangle } from '../../index-astro';
46
+ import type { ImageSource } from '../types/image.ts';
47
+
48
+ interface Props {
49
+ /**
50
+ * 图片源,可以是本地图片或远程URL
51
+ */
52
+ src: ImageSource;
53
+ /**
54
+ * 图片的替代文本
55
+ */
56
+ alt: string;
57
+ /**
58
+ * 图片的宽度
59
+ */
60
+ width?: number;
61
+ /**
62
+ * 图片的高度
63
+ */
64
+ height?: number;
65
+ /**
66
+ * 图片的加载方式
67
+ * @default "lazy"
68
+ */
69
+ loading?: 'lazy' | 'eager';
70
+ /**
71
+ * 图片的填充方式
72
+ * @default "cover"
73
+ */
74
+ objectFit?: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
75
+ /**
76
+ * 图片的位置
77
+ * @default "center"
78
+ */
79
+ objectPosition?: string;
80
+ /**
81
+ * 是否显示加载中的占位图
82
+ * @default true
83
+ */
84
+ showPlaceholder?: boolean;
85
+ /**
86
+ * 是否显示加载失败的错误图
87
+ * @default true
88
+ */
89
+ showError?: boolean;
90
+ /**
91
+ * 自定义类名
92
+ */
93
+ class?: string;
94
+ /**
95
+ * 是否启用图片懒加载
96
+ * @default true
97
+ */
98
+ lazy?: boolean;
99
+ /**
100
+ * 图片的圆角大小
101
+ * @default "none"
102
+ */
103
+ rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full';
104
+ /**
105
+ * 图片的阴影效果
106
+ * @default "none"
107
+ */
108
+ shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
109
+ /**
110
+ * 图片的悬停效果
111
+ * @default "none"
112
+ */
113
+ hover?: 'none' | 'scale' | 'brightness' | 'blur';
114
+ /**
115
+ * 图片的过渡动画
116
+ * @default "none"
117
+ */
118
+ transition?: 'none' | 'fade' | 'slide' | 'zoom';
119
+ /**
120
+ * 加载指示器类型
121
+ * @default "skeleton"
122
+ */
123
+ loadingIndicator?: 'pulse' | 'spinner' | 'progress' | 'skeleton';
124
+ }
125
+
126
+ const {
127
+ src: imageSource,
128
+ alt,
129
+ width,
130
+ height,
131
+ loading = 'lazy',
132
+ objectFit = 'cover',
133
+ objectPosition = 'center',
134
+ showPlaceholder = true,
135
+ showError = true,
136
+ class: className = '',
137
+ rounded = 'none',
138
+ shadow = 'none',
139
+ hover = 'none',
140
+ transition = 'none',
141
+ loadingIndicator = 'skeleton',
142
+ } = Astro.props;
143
+
144
+ // 判断是否为远程图片
145
+ const isRemoteImage =
146
+ typeof imageSource === 'string' &&
147
+ (imageSource.startsWith('http') || imageSource.startsWith('//'));
148
+ // 获取图片源
149
+ const imgSrc = typeof imageSource === 'string' ? imageSource : imageSource.src;
150
+
151
+ // 对象映射定义所有可能的类名
152
+ const objectFitClasses = {
153
+ contain: 'cosy:object-contain',
154
+ cover: 'cosy:object-cover',
155
+ fill: 'cosy:object-fill',
156
+ none: 'cosy:object-none',
157
+ 'scale-down': 'cosy:object-scale-down',
158
+ };
159
+
160
+ const roundedClasses = {
161
+ none: '',
162
+ sm: 'cosy:rounded-sm',
163
+ md: 'cosy:rounded-md',
164
+ lg: 'cosy:rounded-lg',
165
+ xl: 'cosy:rounded-xl',
166
+ '2xl': 'cosy:rounded-2xl',
167
+ '3xl': 'cosy:rounded-3xl',
168
+ full: 'cosy:rounded-full',
169
+ };
170
+
171
+ const shadowClasses = {
172
+ none: '',
173
+ sm: 'cosy:shadow-sm',
174
+ md: 'cosy:shadow-md',
175
+ lg: 'cosy:shadow-lg',
176
+ xl: 'cosy:shadow-xl',
177
+ '2xl': 'cosy:shadow-2xl',
178
+ };
179
+
180
+ const hoverClasses = {
181
+ none: '',
182
+ scale: 'cosy:hover:scale-110',
183
+ brightness: 'cosy:hover:brightness-110',
184
+ blur: 'cosy:hover:blur-sm',
185
+ };
186
+
187
+ const transitionClasses = {
188
+ none: '',
189
+ fade: 'cosy:transition-opacity cosy:duration-300',
190
+ slide: 'cosy:transition-transform cosy:duration-300',
191
+ zoom: 'cosy:transition-all cosy:duration-300',
192
+ };
193
+
194
+ // 构建图片类名
195
+ const imgClasses = [
196
+ 'cosy:object-center',
197
+ objectFitClasses[objectFit] || objectFitClasses['cover'],
198
+ roundedClasses[rounded],
199
+ shadowClasses[shadow],
200
+ hoverClasses[hover],
201
+ transitionClasses[transition],
202
+ className,
203
+ ]
204
+ .filter(Boolean)
205
+ .join(' ');
206
+
207
+ // 构建占位图类名
208
+ const placeholderClasses = [
209
+ 'cosy:absolute cosy:inset-0',
210
+ roundedClasses[rounded],
211
+ loadingIndicator === 'skeleton' || loadingIndicator === 'pulse'
212
+ ? 'cosy:animate-pulse cosy:bg-base-300'
213
+ : '',
214
+ ]
215
+ .filter(Boolean)
216
+ .join(' ');
217
+
218
+ // 构建错误占位图类名
219
+ const errorClasses = [
220
+ 'cosy:absolute cosy:inset-0 cosy:flex cosy:items-center cosy:justify-center',
221
+ roundedClasses[rounded],
222
+ 'cosy:bg-error cosy:bg-opacity-10',
223
+ ]
224
+ .filter(Boolean)
225
+ .join(' ');
226
+ ---
227
+
228
+ <script is:inline>
229
+ function handleImageLoad(img) {
230
+ if (!(img instanceof HTMLImageElement)) return;
231
+ const placeholder = img.parentElement?.querySelector('[data-placeholder]');
232
+ if (placeholder) {
233
+ placeholder.classList.add('opacity-0');
234
+ setTimeout(() => placeholder.remove(), 300);
235
+ }
236
+ }
237
+
238
+ function handleImageError(img) {
239
+ if (!(img instanceof HTMLImageElement)) return;
240
+ const placeholder = img.parentElement?.querySelector('[data-placeholder]');
241
+ if (placeholder) {
242
+ placeholder.remove();
243
+ }
244
+ const errorElement = img.parentElement?.querySelector('[data-error]');
245
+ if (errorElement) {
246
+ errorElement.classList.remove('hidden');
247
+ }
248
+ }
249
+
250
+ function simulateLoadingProgress(img) {
251
+ if (
252
+ !(img instanceof HTMLImageElement) ||
253
+ img.getAttribute('data-remote') !== 'true'
254
+ )
255
+ return;
256
+ const progressBar = img.parentElement?.querySelector('progress');
257
+ if (!progressBar) return;
258
+
259
+ let progress = 0;
260
+ const interval = setInterval(() => {
261
+ progress += Math.random() * 15;
262
+ if (progress >= 100 || img.complete) {
263
+ clearInterval(interval);
264
+ progress = 100;
265
+ }
266
+ progressBar.value = Math.min(progress, 100);
267
+ }, 200);
268
+
269
+ img.addEventListener('load', () => {
270
+ clearInterval(interval);
271
+ progressBar.value = 100;
272
+ });
273
+
274
+ img.addEventListener('error', () => {
275
+ clearInterval(interval);
276
+ });
277
+ }
278
+
279
+ function initializeImageHandlers() {
280
+ document.querySelectorAll('img[data-remote]').forEach((img) => {
281
+ if (img instanceof HTMLImageElement) {
282
+ if (img.complete) {
283
+ handleImageLoad(img);
284
+ } else {
285
+ img.addEventListener('load', () => handleImageLoad(img));
286
+ img.addEventListener('error', () => handleImageError(img));
287
+ if (img.getAttribute('data-remote') === 'true') {
288
+ simulateLoadingProgress(img);
289
+ }
290
+ }
291
+ }
292
+ });
293
+ }
294
+
295
+ document.addEventListener('astro:page-load', initializeImageHandlers);
296
+ initializeImageHandlers();
297
+ </script>
298
+
299
+ <div
300
+ class="cosy:relative cosy:w-full cosy:h-full cosy:align-middle cosy:mx-auto cosy:my-auto cosy:justify-center cosy:flex cosy:items-center">
301
+ <img
302
+ src={imgSrc}
303
+ alt={alt}
304
+ width={width}
305
+ height={height}
306
+ loading={loading}
307
+ class={imgClasses}
308
+ style={{ objectPosition }}
309
+ data-remote={isRemoteImage ? 'true' : 'false'}
310
+ />
311
+
312
+ {/* 加载占位图 */}
313
+ {
314
+ showPlaceholder && (
315
+ <div class={placeholderClasses} data-placeholder>
316
+ {/* 远程图片加载指示器 */}
317
+ {isRemoteImage && loadingIndicator === 'spinner' && (
318
+ <div class="cosy:absolute cosy:inset-0 cosy:m-auto cosy:text-primary cosy:loading cosy:loading-spinner cosy:loading-lg" />
319
+ )}
320
+
321
+ {isRemoteImage && loadingIndicator === 'progress' && (
322
+ <div class="cosy:right-0 cosy:bottom-0 cosy:left-0 cosy:absolute">
323
+ <progress class="cosy:w-full cosy:progress cosy:progress-primary" />
324
+ </div>
325
+ )}
326
+ </div>
327
+ )
328
+ }
329
+
330
+ {/* 错误占位图 */}
331
+ {
332
+ showError && (
333
+ <div class={errorClasses} data-error hidden>
334
+ <AlertTriangle size="32px" class="cosy:text-error" />
335
+ </div>
336
+ )
337
+ }
338
+ </div>
File without changes
@@ -0,0 +1,34 @@
1
+ ---
2
+ import Image from './Image.astro';
3
+ ---
4
+
5
+ <div class="cosy:grid cosy:grid-cols-3 cosy:gap-4">
6
+ <Image
7
+ src="/placeholder-2.jpg"
8
+ alt="圆角效果"
9
+ width={200}
10
+ height={200}
11
+ rounded="lg"
12
+ shadow="md"
13
+ />
14
+
15
+ <Image
16
+ src="/placeholder-3.jpg"
17
+ alt="悬停效果"
18
+ width={200}
19
+ height={200}
20
+ hover="scale"
21
+ transition="zoom"
22
+ />
23
+
24
+ <Image
25
+ src="/placeholder-4.jpg"
26
+ alt="组合效果"
27
+ width={200}
28
+ height={200}
29
+ rounded="full"
30
+ shadow="xl"
31
+ hover="brightness"
32
+ transition="fade"
33
+ />
34
+ </div>
@@ -0,0 +1,37 @@
1
+ ---
2
+ import Image from './Image.astro';
3
+ ---
4
+
5
+ <div class="cosy:grid cosy:grid-cols-2 cosy:gap-4">
6
+ <Image
7
+ src="https://picsum.photos/400/300"
8
+ alt="骨架屏加载"
9
+ width={400}
10
+ height={300}
11
+ loadingIndicator="skeleton"
12
+ />
13
+
14
+ <Image
15
+ src="https://picsum.photos/400/300"
16
+ alt="进度条加载"
17
+ width={400}
18
+ height={300}
19
+ loadingIndicator="progress"
20
+ />
21
+
22
+ <Image
23
+ src="https://picsum.photos/400/300"
24
+ alt="加载动画"
25
+ width={400}
26
+ height={300}
27
+ loadingIndicator="spinner"
28
+ />
29
+
30
+ <Image
31
+ src="https://invalid-image-url.jpg"
32
+ alt="加载错误示例"
33
+ width={400}
34
+ height={300}
35
+ showError={true}
36
+ />
37
+ </div>
@@ -11,7 +11,7 @@ export { Image, ImageBasic, ImageEffects, ImageLoading };
11
11
 
12
12
  // 导出示例源代码
13
13
  export const ImageExampleCodes = {
14
- Basic: extractSimpleExample(BasicSourceCode, 'Image'),
15
- Effects: extractSimpleExample(EffectsSourceCode, 'Image'),
16
- Loading: extractSimpleExample(LoadingSourceCode, 'Image'),
14
+ Basic: extractSimpleExample(BasicSourceCode, 'Image'),
15
+ Effects: extractSimpleExample(EffectsSourceCode, 'Image'),
16
+ Loading: extractSimpleExample(LoadingSourceCode, 'Image'),
17
17
  };
@@ -0,0 +1,14 @@
1
+ import { defineIntegration } from 'astro-integration-kit';
2
+
3
+ export const integration = defineIntegration({
4
+ name: 'cosy-ui',
5
+ setup() {
6
+ return {
7
+ hooks: {
8
+ 'astro:config:setup': ({ logger }) => {
9
+ logger.info('cosy-ui integration setup');
10
+ },
11
+ },
12
+ };
13
+ },
14
+ });
@@ -27,11 +27,11 @@
27
27
  * ```
28
28
  */
29
29
 
30
- import { ChevronDownIcon, LanguageUtil } from '../index';
31
- import '../style.ts';
30
+ import { ChevronDownIcon, LanguageUtil } from '../../index-astro';
31
+ import '../../style.ts';
32
32
 
33
33
  interface Props {
34
- languages: string[];
34
+ languages: string[];
35
35
  }
36
36
 
37
37
  const { languages = ['zh-cn', 'en'] } = Astro.props;
@@ -42,23 +42,23 @@ const currentLanguageName = LanguageUtil.getLanguageName(currentLocale);
42
42
 
43
43
  <!-- 语言切换按钮 -->
44
44
  <div class="cosy:dropdown cosy:dropdown-end">
45
- <div tabindex="0" role="button" class:list={['cosy:btn cosy:btn-ghost']}>
46
- <span class="cosy:mr-1">{currentLanguageName}</span>
47
- <ChevronDownIcon size="16px" class="cosy:w-4 cosy:h-4" />
48
- </div>
49
- <ul
50
- tabindex="0"
51
- class="cosy:z-[1] cosy:bg-base-100 cosy:shadow cosy:p-2 cosy:rounded-box cosy:w-32 cosy:dropdown-content cosy:menu">
52
- {
53
- languages.map((lang) => (
54
- <li class={currentLocale === lang ? 'cosy:disabled' : ''}>
55
- <a
56
- href={LanguageUtil.getRelativeLink(lang, Astro)}
57
- class={currentLocale === lang ? 'cosy:active' : ''}>
58
- {LanguageUtil.getLanguageName(lang)}
59
- </a>
60
- </li>
61
- ))
62
- }
63
- </ul>
45
+ <div tabindex="0" role="button" class:list={['cosy:btn cosy:btn-ghost']}>
46
+ <span class="cosy:mr-1">{currentLanguageName}</span>
47
+ <ChevronDownIcon size="16px" class="cosy:w-4 cosy:h-4" />
48
+ </div>
49
+ <ul
50
+ tabindex="0"
51
+ class="cosy:z-[1] cosy:bg-base-100 cosy:shadow cosy:p-2 cosy:rounded-box cosy:w-32 cosy:dropdown-content cosy:menu">
52
+ {
53
+ languages.map((lang) => (
54
+ <li class={currentLocale === lang ? 'cosy:disabled' : ''}>
55
+ <a
56
+ href={LanguageUtil.getRelativeLink(lang, Astro)}
57
+ class={currentLocale === lang ? 'cosy:active' : ''}>
58
+ {LanguageUtil.getLanguageName(lang)}
59
+ </a>
60
+ </li>
61
+ ))
62
+ }
63
+ </ul>
64
64
  </div>
@@ -3,5 +3,5 @@ import LanguageSwitcher from './LanguageSwitcher.astro';
3
3
  ---
4
4
 
5
5
  <div class="cosy:flex cosy:justify-center">
6
- <LanguageSwitcher languages={['zh-cn', 'en']} />
6
+ <LanguageSwitcher languages={['zh-cn', 'en']} />
7
7
  </div>
@@ -7,5 +7,5 @@ export { LanguageSwitcher, LanguageSwitcherBasic };
7
7
 
8
8
  // 导出示例源代码
9
9
  export const LanguageSwitcherExampleCodes = {
10
- Basic: extractSimpleExample(BasicSourceCode, 'LanguageSwitcher'),
10
+ Basic: extractSimpleExample(BasicSourceCode, 'LanguageSwitcher'),
11
11
  };
@@ -165,95 +165,103 @@
165
165
  * ```
166
166
  */
167
167
 
168
- import '../style.ts';
168
+ import '../../style.ts';
169
169
  import {
170
- BaseLayout,
171
- type IAppLayoutProps,
172
- Footer,
173
- Header,
174
- Container,
175
- Main,
176
- Sidebar,
177
- } from '../index';
170
+ BaseLayout,
171
+ type IAppLayoutProps,
172
+ Footer,
173
+ Header,
174
+ Container,
175
+ Main,
176
+ Sidebar,
177
+ } from '../../index-astro';
178
178
  import { ClientRouter } from 'astro:transitions';
179
179
 
180
180
  interface Props extends IAppLayoutProps {}
181
181
 
182
182
  const {
183
- sidebarConfig,
184
- showHeader = true,
185
- showFooter = true,
186
- showSidebar = true,
187
- class: className,
188
- 'class:list': classList,
189
- debug = false,
190
- mainContentConfig,
191
- footerConfig,
192
- headerConfig,
193
- metaConfig,
194
- ...rest
183
+ sidebarConfig,
184
+ showHeader = true,
185
+ showFooter = true,
186
+ showSidebar = true,
187
+ class: className,
188
+ 'class:list': classList,
189
+ debug = false,
190
+ mainContentConfig,
191
+ footerConfig,
192
+ headerConfig,
193
+ metaConfig,
194
+ ...rest
195
195
  }: Props = Astro.props;
196
196
  ---
197
197
 
198
198
  <BaseLayout
199
- title={metaConfig.title}
200
- description={metaConfig.description}
201
- keywords={metaConfig.keywords}
202
- author={metaConfig.author}
203
- robots={metaConfig.robots}
204
- head={metaConfig.head}
205
- favicon={metaConfig.favicon}
206
- debug={debug}
207
- {...rest}>
208
- <ClientRouter />
209
- {
210
- showHeader && (
211
- <Header {...headerConfig} debug={debug} transition:persist>
212
- <div slot="navbar-start">
213
- <slot name="navbar-start" />
214
- </div>
215
- <div slot="navbar-center">
216
- <slot name="navbar-center" />
217
- </div>
218
- <div slot="navbar-end">
219
- <slot name="navbar-end" />
220
- </div>
221
- </Header>
222
- )
223
- }
199
+ title={metaConfig.title}
200
+ description={metaConfig.description}
201
+ keywords={metaConfig.keywords}
202
+ author={metaConfig.author}
203
+ robots={metaConfig.robots}
204
+ head={metaConfig.head}
205
+ favicon={metaConfig.favicon}
206
+ debug={debug}
207
+ {...rest}>
208
+ <ClientRouter />
209
+ {
210
+ showHeader && (
211
+ <Header {...headerConfig} debug={debug} transition:persist>
212
+ <div slot="navbar-start">
213
+ <slot name="navbar-start" />
214
+ </div>
215
+ <div slot="navbar-center">
216
+ <slot name="navbar-center" />
217
+ </div>
218
+ <div slot="navbar-end">
219
+ <slot name="navbar-end" />
220
+ </div>
221
+ </Header>
222
+ )
223
+ }
224
224
 
225
- <Container flex="row" gap="md" size="full" padding="none">
226
- <!-- 侧边栏容器 -->
227
- {showSidebar && <Sidebar {...sidebarConfig} transition:name="sidebar" transition:persist />}
225
+ <Container flex="row" gap="md" size="full" padding="none">
226
+ <!-- 侧边栏容器 -->
227
+ {
228
+ showSidebar && (
229
+ <Sidebar
230
+ {...sidebarConfig}
231
+ transition:name="sidebar"
232
+ transition:persist
233
+ />
234
+ )
235
+ }
228
236
 
229
- <!-- 主内容区域 -->
230
- <Main {...mainContentConfig}>
231
- <slot />
232
- </Main>
233
- </Container>
237
+ <!-- 主内容区域 -->
238
+ <Main {...mainContentConfig}>
239
+ <slot />
240
+ </Main>
241
+ </Container>
234
242
 
235
- <!-- Footer -->
236
- {
237
- showFooter && (
238
- <Container size="full" padding="none" transition:persist>
239
- <Footer {...footerConfig} />
240
- </Container>
241
- )
242
- }
243
+ <!-- Footer -->
244
+ {
245
+ showFooter && (
246
+ <Container size="full" padding="none" transition:persist>
247
+ <Footer {...footerConfig} />
248
+ </Container>
249
+ )
250
+ }
243
251
 
244
- <script>
245
- // Handle sidebar toggle
246
- const sidebarToggle = document.getElementById('sidebar-toggle');
247
- const sidebar = document.getElementById('sidebar-mobile');
248
- const sidebarOverlay = document.getElementById('sidebar-overlay');
252
+ <script>
253
+ // Handle sidebar toggle
254
+ const sidebarToggle = document.getElementById('sidebar-toggle');
255
+ const sidebar = document.getElementById('sidebar-mobile');
256
+ const sidebarOverlay = document.getElementById('sidebar-overlay');
249
257
 
250
- function toggleSidebar() {
251
- sidebar?.classList.toggle('cosy:hidden');
252
- sidebarOverlay?.classList.toggle('cosy:hidden');
253
- document.body.classList.toggle('cosy:overflow-hidden');
254
- }
258
+ function toggleSidebar() {
259
+ sidebar?.classList.toggle('cosy:hidden');
260
+ sidebarOverlay?.classList.toggle('cosy:hidden');
261
+ document.body.classList.toggle('cosy:overflow-hidden');
262
+ }
255
263
 
256
- sidebarToggle?.addEventListener('click', toggleSidebar);
257
- sidebarOverlay?.addEventListener('click', toggleSidebar);
258
- </script>
264
+ sidebarToggle?.addEventListener('click', toggleSidebar);
265
+ sidebarOverlay?.addEventListener('click', toggleSidebar);
266
+ </script>
259
267
  </BaseLayout>