@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,42 @@
1
+ // 提取简单示例源代码函数
2
+ export function extractSimpleExample(source: string, name: string): string {
3
+ // 提取模板部分
4
+ const templateMatch = source.match(/<template>([\s\S]*)<\/template>/m);
5
+ const scriptMatch = source.match(/<script[\s\S]*?>([\s\S]*)<\/script>/m);
6
+
7
+ if (!templateMatch) {
8
+ return source;
9
+ }
10
+
11
+ let importSection = `<script setup lang="ts">
12
+ import { ref } from 'vue'
13
+ import { ${name} } from '@cosy/index_vue'
14
+ `;
15
+
16
+ // 从源码中提取导入语句(除了组件的导入和app.css)
17
+ if (scriptMatch && scriptMatch[1]) {
18
+ const importLines = scriptMatch[1]
19
+ .split('\n')
20
+ .filter(
21
+ (line) =>
22
+ line.includes('import') &&
23
+ !line.includes('../../app.css') &&
24
+ !line.includes(name)
25
+ );
26
+
27
+ if (importLines.length > 0) {
28
+ importSection += importLines.join('\n') + '\n';
29
+ }
30
+ }
31
+
32
+ importSection += '</script>\n\n';
33
+
34
+ // 提取模板内容,并替换组件路径
35
+ const templateContent = templateMatch[1]
36
+ .replace(`./${name}.vue`, name)
37
+ .replace(`../${name}.vue`, name)
38
+ .replace(`./${name}.astro`, name)
39
+ .replace(`../${name}.astro`, name);
40
+
41
+ return importSection + '<template>' + templateContent + '</template>';
42
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * 国际化文本配置
3
+ *
4
+ * 提供组件的多语言文本内容
5
+ */
6
+
7
+ // 定义文本内容的类型
8
+ type TextContent = Record<string, Record<string, string>>;
9
+
10
+ // 多语言文本内容
11
+ export const texts: Record<string, TextContent> = {
12
+ en: {
13
+ tableOfContents: {
14
+ title: 'Table of Contents',
15
+ loading: 'Loading...',
16
+ },
17
+ footer: {
18
+ products: 'Products',
19
+ about: 'About',
20
+ aboutUs: 'About Us',
21
+ team: 'Our Team',
22
+ careers: 'Careers',
23
+ contactUs: 'Contact Us',
24
+ resources: 'Resources',
25
+ news: 'News',
26
+ blog: 'Blog',
27
+ faq: 'FAQ',
28
+ history: 'History',
29
+ techStack: 'Tech Stack',
30
+ legal: 'Legal',
31
+ terms: 'Terms of Service',
32
+ privacy: 'Privacy Policy',
33
+ slogan: 'Build a beautiful digital experience',
34
+ allRightsReserved: 'All Rights Reserved',
35
+ },
36
+ },
37
+ 'zh-cn': {
38
+ tableOfContents: {
39
+ title: '目录',
40
+ loading: '加载中...',
41
+ },
42
+ footer: {
43
+ products: '产品',
44
+ about: '关于',
45
+ aboutUs: '关于我们',
46
+ team: '团队介绍',
47
+ careers: '加入我们',
48
+ contactUs: '联系我们',
49
+ defaultSlogan: '优雅、高效的组件库',
50
+ resources: '资源',
51
+ news: '新闻动态',
52
+ blog: '技术博客',
53
+ faq: '常见问题',
54
+ history: '发展历程',
55
+ techStack: '技术栈',
56
+ legal: '法律',
57
+ terms: '服务条款',
58
+ privacy: '隐私政策',
59
+ allRightsReserved: '保留所有权利',
60
+ },
61
+ },
62
+ };
63
+
64
+ /**
65
+ * 获取指定语言的文本内容
66
+ * @param lang 语言代码
67
+ * @param component 组件名称
68
+ * @param key 文本键名
69
+ * @returns 对应的文本内容
70
+ */
71
+ export function getText(lang: string, component: string, key: string): string {
72
+ return texts[lang]?.[component]?.[key] || texts['en'][component]?.[key] || '';
73
+ }
74
+
75
+ /**
76
+ * 创建组件的文本获取函数
77
+ * @param langInfo 语言信息
78
+ * @param component 组件名称
79
+ * @returns 文本获取函数
80
+ */
81
+ export function createTextGetter(langInfo: string, component: string) {
82
+ return (key: string): string => getText(langInfo, component, key);
83
+ }
@@ -0,0 +1,128 @@
1
+ /**
2
+ * 图片工具函数
3
+ * 提供多种图片服务选项,用于生成示例图片
4
+ */
5
+
6
+ export type ImageProvider = 'picsum' | 'unsplash' | 'placeholder' | 'robohash';
7
+
8
+ export interface ImageOptions {
9
+ width: number;
10
+ height: number;
11
+ tag?: string;
12
+ randomSeed?: number | string;
13
+ provider?: ImageProvider;
14
+ grayscale?: boolean;
15
+ blur?: number;
16
+ }
17
+
18
+ /**
19
+ * 获取示例图片URL
20
+ * @param options 图片选项配置
21
+ * @returns 生成的图片URL
22
+ *
23
+ * @example
24
+ * // 基本用法
25
+ * getExampleImage({ width: 400, height: 300 })
26
+ *
27
+ * @example
28
+ * // 使用Unsplash并添加标签
29
+ * getExampleImage({
30
+ * width: 400,
31
+ * height: 300,
32
+ * provider: 'unsplash',
33
+ * tag: 'nature'
34
+ * })
35
+ */
36
+ export function getExampleImage(options: ImageOptions): string {
37
+ const {
38
+ width,
39
+ height,
40
+ provider = 'picsum',
41
+ tag = '',
42
+ randomSeed = Math.floor(Math.random() * 1000),
43
+ grayscale = false,
44
+ blur = 0,
45
+ } = options;
46
+
47
+ switch (provider) {
48
+ case 'picsum': {
49
+ const picsumParams = [];
50
+ if (grayscale) picsumParams.push('grayscale');
51
+ if (blur > 0 && blur <= 10) picsumParams.push(`blur=${blur}`);
52
+
53
+ const picsumQuery = picsumParams.length
54
+ ? `?${picsumParams.join('&')}`
55
+ : `?random=${randomSeed}`;
56
+
57
+ return `https://picsum.photos/${width}/${height}${picsumQuery}`;
58
+ }
59
+
60
+ case 'unsplash': {
61
+ const tagQuery = tag ? `?${tag}` : '';
62
+ return `https://source.unsplash.com/random/${width}x${height}${tagQuery}`;
63
+ }
64
+
65
+ case 'placeholder': {
66
+ const color = grayscale ? 'gray' : '';
67
+ const placeholderParams = [];
68
+ if (tag) placeholderParams.push(`text=${encodeURIComponent(tag)}`);
69
+ if (color) placeholderParams.push(`bg=${color}`);
70
+
71
+ const placeholderQuery = placeholderParams.length
72
+ ? `?${placeholderParams.join('&')}`
73
+ : '';
74
+
75
+ return `https://via.placeholder.com/${width}x${height}${placeholderQuery}`;
76
+ }
77
+
78
+ case 'robohash': {
79
+ const seed = String(tag || randomSeed);
80
+ return `https://robohash.org/${encodeURIComponent(seed)}?size=${width}x${height}`;
81
+ }
82
+
83
+ default: {
84
+ return `https://picsum.photos/${width}/${height}?random=${randomSeed}`;
85
+ }
86
+ }
87
+ }
88
+
89
+ /**
90
+ * 获取产品示例图片
91
+ * @param options 可选的图片选项配置
92
+ */
93
+ export function getProductImage(options: Partial<ImageOptions> = {}): string {
94
+ return getExampleImage({
95
+ width: options.width || 400,
96
+ height: options.height || 300,
97
+ provider: options.provider || 'picsum',
98
+ tag: options.tag || 'product',
99
+ ...options,
100
+ });
101
+ }
102
+
103
+ /**
104
+ * 获取头像示例图片
105
+ * @param options 可选的图片选项配置
106
+ */
107
+ export function getAvatarImage(options: Partial<ImageOptions> = {}): string {
108
+ return getExampleImage({
109
+ width: options.width || 200,
110
+ height: options.height || 200,
111
+ provider: options.provider || 'robohash',
112
+ ...options,
113
+ });
114
+ }
115
+
116
+ /**
117
+ * 获取景观示例图片
118
+ * @param options 可选的图片选项配置
119
+ */
120
+ export function getLandscapeImage(options: Partial<ImageOptions> = {}): string {
121
+ return getExampleImage({
122
+ width: options.width || 800,
123
+ height: options.height || 400,
124
+ provider: options.provider || 'unsplash',
125
+ tag: options.tag || 'landscape',
126
+ ...options,
127
+ });
128
+ }
@@ -0,0 +1,240 @@
1
+ /**
2
+ * 多语言工具类
3
+ *
4
+ * 这个类提供了一套完整的多语言文本管理工具,用于在组件库中处理国际化需求。
5
+ * 主要特点:
6
+ * - 提供链式API来创建和管理多语言文本
7
+ * - 支持动态添加和获取不同语言的文本
8
+ * - 可以通过属性访问器直接获取特定语言的文本
9
+ * - 支持合并多个语言条目
10
+ *
11
+ * 使用示例:
12
+ * ```typescript
13
+ * // 创建并设置多语言文本
14
+ * const entry = new LangEntry()
15
+ * .setZh('你好')
16
+ * .setEn('Hello')
17
+ * .setJa('こんにちは');
18
+ *
19
+ * // 获取特定语言的文本
20
+ * console.log(entry.get('zh-cn')); // 你好
21
+ *
22
+ * // 使用代理后可以通过属性访问
23
+ * // 需要通过 langEntryHandler 创建代理
24
+ * const proxiedEntry = new Proxy(entry, langEntryHandler);
25
+ * console.log(proxiedEntry.en); // Hello
26
+ * console.log(proxiedEntry['zh-cn']); // 你好
27
+ * ```
28
+ */
29
+ export class LangEntry {
30
+ private translations: Record<string, string> = {};
31
+
32
+ /**
33
+ * 设置中文文本
34
+ *
35
+ * @param text 中文文本
36
+ * @returns 返回当前实例,支持链式调用
37
+ * @example
38
+ * const entry = new LangEntry().setZh('你好');
39
+ */
40
+ setZh(text: string): LangEntry {
41
+ this.translations['zh-cn'] = text;
42
+ return this;
43
+ }
44
+
45
+ /**
46
+ * 设置英文文本
47
+ *
48
+ * @param text 英文文本
49
+ * @returns 返回当前实例,支持链式调用
50
+ * @example
51
+ * const entry = new LangEntry().setEn('Hello');
52
+ */
53
+ setEn(text: string): LangEntry {
54
+ this.translations['en'] = text;
55
+ return this;
56
+ }
57
+
58
+ /**
59
+ * 设置日文文本
60
+ *
61
+ * @param text 日文文本
62
+ * @returns 返回当前实例,支持链式调用
63
+ * @example
64
+ * const entry = new LangEntry().setJa('こんにちは');
65
+ */
66
+ setJa(text: string): LangEntry {
67
+ this.translations['ja'] = text;
68
+ return this;
69
+ }
70
+
71
+ /**
72
+ * 设置任意语言的文本
73
+ *
74
+ * @param lang 语言代码,如 'fr' 表示法语,'de' 表示德语等
75
+ * @param text 文本内容
76
+ * @returns 返回当前实例,支持链式调用
77
+ * @example
78
+ * const entry = new LangEntry().set('fr', 'Bonjour').set('de', 'Hallo');
79
+ */
80
+ set(lang: string, text: string): LangEntry {
81
+ this.translations[lang] = text;
82
+ return this;
83
+ }
84
+
85
+ /**
86
+ * 设置所有语言为相同的文本值
87
+ * 适用于不需要翻译的品牌名、专有名词等
88
+ *
89
+ * @param text 所有语言共用的文本
90
+ * @returns 返回当前实例,支持链式调用
91
+ * @example
92
+ * const brandName = new LangEntry().setAll('Cosy UI');
93
+ */
94
+ setAll(text: string): LangEntry {
95
+ // 如果已有语言,则更新它们
96
+ if (Object.keys(this.translations).length > 0) {
97
+ for (const lang of Object.keys(this.translations)) {
98
+ this.translations[lang] = text;
99
+ }
100
+ } else {
101
+ // 默认至少设置中英文
102
+ this.translations['zh-cn'] = text;
103
+ this.translations['en'] = text;
104
+ }
105
+ return this;
106
+ }
107
+
108
+ /**
109
+ * 获取指定语言的文本
110
+ *
111
+ * @param lang 语言代码
112
+ * @param defaultValue 默认值,如果未找到翻译则返回此值
113
+ * @returns 指定语言的文本,如果不存在则返回默认值或第一个可用的翻译或空字符串
114
+ * @example
115
+ * const entry = new LangEntry().setZh('你好').setEn('Hello');
116
+ * console.log(entry.get('zh-cn')); // 你好
117
+ * console.log(entry.get('fr', 'Default')); // Default
118
+ */
119
+ get(lang: string, defaultValue?: string): string {
120
+ return this.translations[lang] || defaultValue || this.getFirst() || '';
121
+ }
122
+
123
+ /**
124
+ * 获取第一个可用的翻译文本
125
+ *
126
+ * @returns 第一个可用的翻译文本,如果没有任何翻译则返回 undefined
127
+ * @example
128
+ * const entry = new LangEntry().setEn('Hello').setZh('你好');
129
+ * console.log(entry.getFirst()); // 取决于对象属性顺序,可能是 'Hello' 或 '你好'
130
+ */
131
+ getFirst(): string | undefined {
132
+ const keys = Object.keys(this.translations);
133
+ return keys.length > 0 ? this.translations[keys[0]] : undefined;
134
+ }
135
+
136
+ /**
137
+ * 获取所有可用的语言代码
138
+ *
139
+ * @returns 所有已设置翻译的语言代码数组
140
+ * @example
141
+ * const entry = new LangEntry().setZh('你好').setEn('Hello');
142
+ * console.log(entry.getLanguages()); // ['zh-cn', 'en']
143
+ */
144
+ getLanguages(): string[] {
145
+ return Object.keys(this.translations);
146
+ }
147
+
148
+ /**
149
+ * 获取所有翻译
150
+ *
151
+ * @returns 包含所有语言翻译的对象副本
152
+ * @example
153
+ * const entry = new LangEntry().setZh('你好').setEn('Hello');
154
+ * console.log(entry.getAll()); // { 'zh-cn': '你好', 'en': 'Hello' }
155
+ */
156
+ getAll(): Record<string, string> {
157
+ return { ...this.translations };
158
+ }
159
+
160
+ /**
161
+ * 合并另一个语言条目
162
+ * 如果两个条目有相同的语言,则后者会覆盖前者
163
+ *
164
+ * @param other 要合并的语言条目
165
+ * @returns 返回当前实例,支持链式调用
166
+ * @example
167
+ * const entry1 = new LangEntry().setZh('你好').setEn('Hello');
168
+ * const entry2 = new LangEntry().setJa('こんにちは').setEn('Hi');
169
+ * entry1.merge(entry2);
170
+ * console.log(entry1.getAll()); // { 'zh-cn': '你好', 'en': 'Hi', 'ja': 'こんにちは' }
171
+ */
172
+ merge(other: LangEntry): LangEntry {
173
+ Object.assign(this.translations, other.getAll());
174
+ return this;
175
+ }
176
+
177
+ /**
178
+ * 检查是否包含指定语言
179
+ *
180
+ * @param lang 语言代码
181
+ * @returns 如果包含指定语言则返回 true,否则返回 false
182
+ * @example
183
+ * const entry = new LangEntry().setZh('你好').setEn('Hello');
184
+ * console.log(entry.has('zh-cn')); // true
185
+ * console.log(entry.has('ja')); // false
186
+ */
187
+ has(lang: string): boolean {
188
+ return lang in this.translations;
189
+ }
190
+
191
+ /**
192
+ * 转换为普通对象
193
+ *
194
+ * @returns 包含所有语言翻译的对象副本
195
+ * @example
196
+ * const entry = new LangEntry().setZh('你好').setEn('Hello');
197
+ * const obj = entry.toObject();
198
+ * console.log(obj); // { 'zh-cn': '你好', 'en': 'Hello' }
199
+ */
200
+ toObject(): Record<string, string> {
201
+ return { ...this.translations };
202
+ }
203
+
204
+ /**
205
+ * 允许以对象属性方式访问翻译
206
+ * 例如: entry['zh-cn'] 或 entry.en
207
+ *
208
+ * 注意:这个索引签名本身不提供功能,实际的属性访问是通过 langEntryHandler 代理实现的
209
+ */
210
+ [key: string]: any;
211
+ }
212
+
213
+ /**
214
+ * 创建索引访问器的Proxy处理程序
215
+ *
216
+ * 这个处理程序允许通过属性访问方式获取语言翻译,例如:
217
+ * - entry.en 代替 entry.get('en')
218
+ * - entry['zh-cn'] 代替 entry.get('zh-cn')
219
+ *
220
+ * @example
221
+ * const entry = new LangEntry().setZh('你好').setEn('Hello');
222
+ * const proxiedEntry = new Proxy(entry, langEntryHandler);
223
+ * console.log(proxiedEntry.en); // Hello
224
+ * console.log(proxiedEntry['zh-cn']); // 你好
225
+ */
226
+ export const langEntryHandler: ProxyHandler<LangEntry> = {
227
+ get(target: LangEntry, prop: string | symbol): any {
228
+ // 如果是字符串属性并且不是LangEntry的方法,则尝试作为语言代码获取翻译
229
+ if (
230
+ typeof prop === 'string' &&
231
+ !(prop in Object.getPrototypeOf(target)) &&
232
+ prop !== 'translations'
233
+ ) {
234
+ return target.get(prop);
235
+ }
236
+
237
+ // 否则返回原始属性
238
+ return (target as any)[prop];
239
+ },
240
+ };
@@ -0,0 +1,150 @@
1
+ import { LangEntry, langEntryHandler } from './lang_entry';
2
+
3
+ /**
4
+ * 提供快捷访问的LangPackage
5
+ *
6
+ * 这个类提供了一系列静态方法,用于快速创建和配置多语言文本条目。
7
+ * 它是对 LangEntry 类的便捷封装,简化了多语言文本的创建和管理过程。
8
+ *
9
+ * 使用示例:
10
+ * ```typescript
11
+ * // 创建一个空的语言条目并逐步添加翻译
12
+ * const emptyEntry = LangPackage.make();
13
+ * emptyEntry.setZh('你好').setEn('Hello');
14
+ *
15
+ * // 从对象创建语言条目
16
+ * const fromObj = LangPackage.from({
17
+ * 'zh-cn': '你好',
18
+ * 'en': 'Hello',
19
+ * 'ja': 'こんにちは'
20
+ * });
21
+ *
22
+ * // 创建只包含中英文的语言条目
23
+ * const zhEnEntry = LangPackage.zhEn('你好', 'Hello');
24
+ *
25
+ * // 创建所有语言都使用相同文本的条目(适用于品牌名等)
26
+ * const brandName = LangPackage.common('Cosy UI');
27
+ *
28
+ * // 访问翻译的方式
29
+ * console.log(zhEnEntry.get('zh-cn')); // 你好
30
+ * console.log(zhEnEntry['zh-cn']); // 你好 (通过代理实现的属性访问)
31
+ * console.log(zhEnEntry.en); // Hello (简写形式)
32
+ * ```
33
+ */
34
+ export class LangPackage {
35
+ /**
36
+ * 创建一个新的空语言条目
37
+ *
38
+ * @returns 返回一个代理包装的 LangEntry 实例,可以通过属性方式访问翻译
39
+ * @example
40
+ * const entry = LangPackage.make();
41
+ * entry.setZh('你好').setEn('Hello');
42
+ */
43
+ static make(): LangEntry {
44
+ return new Proxy(new LangEntry(), langEntryHandler);
45
+ }
46
+
47
+ /**
48
+ * 从对象创建语言条目
49
+ *
50
+ * @param obj 包含语言翻译的对象,键为语言代码,值为对应的翻译文本
51
+ * @returns 返回一个代理包装的 LangEntry 实例
52
+ * @example
53
+ * const entry = LangPackage.from({
54
+ * 'zh-cn': '你好',
55
+ * 'en': 'Hello',
56
+ * 'ja': 'こんにちは'
57
+ * });
58
+ */
59
+ static from(obj: Record<string, string>): LangEntry {
60
+ const entry = new LangEntry();
61
+ Object.entries(obj).forEach(([lang, text]) => {
62
+ entry.set(lang, text);
63
+ });
64
+ return new Proxy(entry, langEntryHandler);
65
+ }
66
+
67
+ /**
68
+ * 创建只包含中文和英文的语言条目
69
+ *
70
+ * @param zh 中文文本
71
+ * @param en 英文文本
72
+ * @returns 返回一个代理包装的 LangEntry 实例
73
+ * @example
74
+ * const entry = LangPackage.zhEn('你好', 'Hello');
75
+ * console.log(entry.zh-cn); // 你好
76
+ * console.log(entry.en); // Hello
77
+ */
78
+ static zhEn(zh: string, en: string): LangEntry {
79
+ return new Proxy(new LangEntry().setZh(zh).setEn(en), langEntryHandler);
80
+ }
81
+
82
+ /**
83
+ * 创建所有语言都使用相同文本的语言条目
84
+ * 适用于品牌名、产品名等不需要翻译的文本
85
+ *
86
+ * @param text 所有语言共用的文本
87
+ * @returns 返回一个代理包装的 LangEntry 实例
88
+ * @example
89
+ * const brandName = LangPackage.common('Cosy UI');
90
+ * // 所有语言都会返回相同的值
91
+ * console.log(brandName.zh-cn); // Cosy UI
92
+ * console.log(brandName.en); // Cosy UI
93
+ */
94
+ static common(text: string): LangEntry {
95
+ return new Proxy(new LangEntry().setAll(text), langEntryHandler);
96
+ }
97
+
98
+ /**
99
+ * 设置中文文本
100
+ * 快捷方法,直接返回一个新的LangEntry实例
101
+ *
102
+ * @param text 中文文本
103
+ * @returns 返回一个代理包装的 LangEntry 实例,只包含中文翻译
104
+ * @example
105
+ * const entry = LangPackage.setZh('你好');
106
+ */
107
+ static setZh(text: string): LangEntry {
108
+ return new Proxy(new LangEntry().setZh(text), langEntryHandler);
109
+ }
110
+
111
+ /**
112
+ * 设置英文文本
113
+ * 快捷方法,直接返回一个新的LangEntry实例
114
+ *
115
+ * @param text 英文文本
116
+ * @returns 返回一个代理包装的 LangEntry 实例,只包含英文翻译
117
+ * @example
118
+ * const entry = LangPackage.setEn('Hello');
119
+ */
120
+ static setEn(text: string): LangEntry {
121
+ return new Proxy(new LangEntry().setEn(text), langEntryHandler);
122
+ }
123
+
124
+ /**
125
+ * 设置日文文本
126
+ * 快捷方法,直接返回一个新的LangEntry实例
127
+ *
128
+ * @param text 日文文本
129
+ * @returns 返回一个代理包装的 LangEntry 实例,只包含日文翻译
130
+ * @example
131
+ * const entry = LangPackage.setJa('こんにちは');
132
+ */
133
+ static setJa(text: string): LangEntry {
134
+ return new Proxy(new LangEntry().setJa(text), langEntryHandler);
135
+ }
136
+
137
+ /**
138
+ * 设置任意语言的文本
139
+ * 快捷方法,直接返回一个新的LangEntry实例
140
+ *
141
+ * @param lang 语言代码
142
+ * @param text 文本内容
143
+ * @returns 返回一个代理包装的 LangEntry 实例,包含指定语言的翻译
144
+ * @example
145
+ * const entry = LangPackage.set('fr', 'Bonjour');
146
+ */
147
+ static set(lang: string, text: string): LangEntry {
148
+ return new Proxy(new LangEntry().set(lang, text), langEntryHandler);
149
+ }
150
+ }