@elmethis/vue 0.1.0

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 (372) hide show
  1. package/LICENSE +21 -0
  2. package/dist/_virtual/_plugin-vue_export-helper.mjs +10 -0
  3. package/dist/components/ag-ui/message/ElmAgUiMessageUser.stories.d.ts +6 -0
  4. package/dist/components/ag-ui/message/ElmAgUiMessageUser.vue.d.ts +8 -0
  5. package/dist/components/code/ElmCodeBlock.stories.d.ts +9 -0
  6. package/dist/components/code/ElmCodeBlock.vue.d.ts +48 -0
  7. package/dist/components/code/ElmCodeBlock.vue.mjs +23 -0
  8. package/dist/components/code/ElmCodeBlock.vue2.mjs +134 -0
  9. package/dist/components/code/ElmCodeBlock.vue3.mjs +43 -0
  10. package/dist/components/code/ElmKatex.stories.d.ts +8 -0
  11. package/dist/components/code/ElmKatex.vue.d.ts +20 -0
  12. package/dist/components/code/ElmKatex.vue.mjs +10 -0
  13. package/dist/components/code/ElmKatex.vue2.mjs +68 -0
  14. package/dist/components/code/ElmKatex.vue3.mjs +20 -0
  15. package/dist/components/code/ElmMermaid.stories.d.ts +7 -0
  16. package/dist/components/code/ElmMermaid.vue.d.ts +7 -0
  17. package/dist/components/code/ElmMermaid.vue.mjs +10 -0
  18. package/dist/components/code/ElmMermaid.vue2.mjs +59 -0
  19. package/dist/components/code/ElmMermaid.vue3.mjs +26 -0
  20. package/dist/components/code/ElmShikiHighlighter.stories.d.ts +6 -0
  21. package/dist/components/code/ElmShikiHighlighter.vue.d.ts +22 -0
  22. package/dist/components/code/ElmShikiHighlighter.vue.mjs +23 -0
  23. package/dist/components/code/ElmShikiHighlighter.vue2.mjs +55 -0
  24. package/dist/components/code/ElmShikiHighlighter.vue3.mjs +20 -0
  25. package/dist/components/code/shikiInstance.d.ts +2 -0
  26. package/dist/components/code/shikiInstance.mjs +76 -0
  27. package/dist/components/containments/ElmColumn.stories.d.ts +6 -0
  28. package/dist/components/containments/ElmColumn.vue.d.ts +19 -0
  29. package/dist/components/containments/ElmColumnList.vue.d.ts +19 -0
  30. package/dist/components/containments/ElmConfirmModal.stories.d.ts +6 -0
  31. package/dist/components/containments/ElmConfirmModal.vue.d.ts +37 -0
  32. package/dist/components/containments/ElmConfirmModal.vue.mjs +10 -0
  33. package/dist/components/containments/ElmConfirmModal.vue2.mjs +98 -0
  34. package/dist/components/containments/ElmConfirmModal.vue3.mjs +23 -0
  35. package/dist/components/containments/ElmDesktopWindow.stories.d.ts +6 -0
  36. package/dist/components/containments/ElmDesktopWindow.vue.d.ts +27 -0
  37. package/dist/components/containments/ElmDesktopWindow.vue.mjs +10 -0
  38. package/dist/components/containments/ElmDesktopWindow.vue2.mjs +42 -0
  39. package/dist/components/containments/ElmDesktopWindow.vue3.mjs +26 -0
  40. package/dist/components/containments/ElmModal.stories.d.ts +6 -0
  41. package/dist/components/containments/ElmModal.vue.d.ts +34 -0
  42. package/dist/components/containments/ElmModal.vue.mjs +10 -0
  43. package/dist/components/containments/ElmModal.vue2.mjs +56 -0
  44. package/dist/components/containments/ElmModal.vue3.mjs +23 -0
  45. package/dist/components/containments/ElmParallax.stories.d.ts +6 -0
  46. package/dist/components/containments/ElmParallax.vue.d.ts +6 -0
  47. package/dist/components/containments/ElmParallax.vue.mjs +10 -0
  48. package/dist/components/containments/ElmParallax.vue2.mjs +35 -0
  49. package/dist/components/containments/ElmParallax.vue3.mjs +20 -0
  50. package/dist/components/containments/ElmSimpleTooltip.stories.d.ts +7 -0
  51. package/dist/components/containments/ElmSimpleTooltip.vue.d.ts +21 -0
  52. package/dist/components/containments/ElmSimpleTooltip.vue.mjs +10 -0
  53. package/dist/components/containments/ElmSimpleTooltip.vue2.mjs +37 -0
  54. package/dist/components/containments/ElmSimpleTooltip.vue3.mjs +26 -0
  55. package/dist/components/containments/ElmSnackbar.stories.d.ts +6 -0
  56. package/dist/components/containments/ElmSnackbar.vue.d.ts +11 -0
  57. package/dist/components/containments/ElmSnackbar.vue.mjs +10 -0
  58. package/dist/components/containments/ElmSnackbar.vue2.mjs +41 -0
  59. package/dist/components/containments/ElmSnackbar.vue3.mjs +26 -0
  60. package/dist/components/containments/ElmSnackbarContainer.vue.d.ts +10 -0
  61. package/dist/components/containments/ElmSnackbarContainer.vue.mjs +23 -0
  62. package/dist/components/containments/ElmSnackbarContainer.vue2.mjs +33 -0
  63. package/dist/components/containments/ElmSnackbarContainer.vue3.mjs +19 -0
  64. package/dist/components/containments/ElmToggle.stories.d.ts +7 -0
  65. package/dist/components/containments/ElmToggle.vue.d.ts +41 -0
  66. package/dist/components/containments/ElmToggle.vue.mjs +10 -0
  67. package/dist/components/containments/ElmToggle.vue2.mjs +106 -0
  68. package/dist/components/containments/ElmToggle.vue3.mjs +44 -0
  69. package/dist/components/containments/ElmTooltip.stories.d.ts +6 -0
  70. package/dist/components/containments/ElmTooltip.vue.d.ts +40 -0
  71. package/dist/components/containments/ElmTooltip.vue.mjs +10 -0
  72. package/dist/components/containments/ElmTooltip.vue2.mjs +56 -0
  73. package/dist/components/containments/ElmTooltip.vue3.mjs +26 -0
  74. package/dist/components/containments/useSnackbarState.d.ts +28 -0
  75. package/dist/components/data/ElmMultiProgress.stories.d.ts +6 -0
  76. package/dist/components/data/ElmMultiProgress.vue.d.ts +30 -0
  77. package/dist/components/data/ElmMultiProgress.vue.mjs +10 -0
  78. package/dist/components/data/ElmMultiProgress.vue2.mjs +45 -0
  79. package/dist/components/data/ElmMultiProgress.vue3.mjs +23 -0
  80. package/dist/components/data/ElmProgress.stories.d.ts +10 -0
  81. package/dist/components/data/ElmProgress.vue.d.ts +38 -0
  82. package/dist/components/data/ElmProgress.vue.mjs +10 -0
  83. package/dist/components/data/ElmProgress.vue2.mjs +53 -0
  84. package/dist/components/data/ElmProgress.vue3.mjs +32 -0
  85. package/dist/components/data/ElmStatusMessage.stories.d.ts +9 -0
  86. package/dist/components/data/ElmStatusMessage.vue.d.ts +6 -0
  87. package/dist/components/data/ElmStatusMessage.vue.mjs +23 -0
  88. package/dist/components/data/ElmStatusMessage.vue2.mjs +76 -0
  89. package/dist/components/data/ElmStatusMessage.vue3.mjs +20 -0
  90. package/dist/components/fallback/ElmBlockFallback.stories.d.ts +6 -0
  91. package/dist/components/fallback/ElmBlockFallback.vue.d.ts +4 -0
  92. package/dist/components/fallback/ElmBlockFallback.vue.mjs +10 -0
  93. package/dist/components/fallback/ElmBlockFallback.vue2.mjs +17 -0
  94. package/dist/components/fallback/ElmBlockFallback.vue3.mjs +18 -0
  95. package/dist/components/fallback/ElmRectangleWave.stories.d.ts +6 -0
  96. package/dist/components/fallback/ElmRectangleWave.vue.d.ts +4 -0
  97. package/dist/components/fallback/ElmRectangleWave.vue.mjs +10 -0
  98. package/dist/components/fallback/ElmRectangleWave.vue2.mjs +15 -0
  99. package/dist/components/fallback/ElmRectangleWave.vue3.mjs +21 -0
  100. package/dist/components/fallback/ElmSpinner.stories.d.ts +6 -0
  101. package/dist/components/fallback/ElmSpinner.vue.d.ts +9 -0
  102. package/dist/components/fallback/ElmSpinner.vue.mjs +10 -0
  103. package/dist/components/fallback/ElmSpinner.vue2.mjs +30 -0
  104. package/dist/components/fallback/ElmSpinner.vue3.mjs +24 -0
  105. package/dist/components/fallback/ElmUnsupportedBlock.stories.d.ts +6 -0
  106. package/dist/components/fallback/ElmUnsupportedBlock.vue.d.ts +5 -0
  107. package/dist/components/fallback/ElmUnsupportedBlock.vue.mjs +10 -0
  108. package/dist/components/fallback/ElmUnsupportedBlock.vue2.mjs +46 -0
  109. package/dist/components/fallback/ElmUnsupportedBlock.vue3.mjs +29 -0
  110. package/dist/components/form/ElmButton.stories.d.ts +11 -0
  111. package/dist/components/form/ElmButton.vue.d.ts +42 -0
  112. package/dist/components/form/ElmButton.vue.mjs +23 -0
  113. package/dist/components/form/ElmButton.vue2.mjs +71 -0
  114. package/dist/components/form/ElmButton.vue3.mjs +39 -0
  115. package/dist/components/form/ElmCheckbox.stories.d.ts +6 -0
  116. package/dist/components/form/ElmCheckbox.vue.d.ts +26 -0
  117. package/dist/components/form/ElmCheckbox.vue.mjs +10 -0
  118. package/dist/components/form/ElmCheckbox.vue2.mjs +177 -0
  119. package/dist/components/form/ElmCheckbox.vue3.mjs +34 -0
  120. package/dist/components/form/ElmSelect.stories.d.ts +6 -0
  121. package/dist/components/form/ElmSelect.vue.d.ts +48 -0
  122. package/dist/components/form/ElmSelect.vue.mjs +10 -0
  123. package/dist/components/form/ElmSelect.vue2.mjs +145 -0
  124. package/dist/components/form/ElmSelect.vue3.mjs +56 -0
  125. package/dist/components/form/ElmSwitch.stories.d.ts +6 -0
  126. package/dist/components/form/ElmSwitch.vue.d.ts +32 -0
  127. package/dist/components/form/ElmSwitch.vue.mjs +10 -0
  128. package/dist/components/form/ElmSwitch.vue2.mjs +61 -0
  129. package/dist/components/form/ElmSwitch.vue3.mjs +28 -0
  130. package/dist/components/form/ElmTextField.stories.d.ts +7 -0
  131. package/dist/components/form/ElmTextField.vue.d.ts +33 -0
  132. package/dist/components/form/ElmTextField.vue.mjs +10 -0
  133. package/dist/components/form/ElmTextField.vue2.mjs +150 -0
  134. package/dist/components/form/ElmTextField.vue3.mjs +49 -0
  135. package/dist/components/form/ElmValidation.stories.d.ts +6 -0
  136. package/dist/components/form/ElmValidation.vue.d.ts +9 -0
  137. package/dist/components/form/ElmValidation.vue.mjs +10 -0
  138. package/dist/components/form/ElmValidation.vue2.mjs +34 -0
  139. package/dist/components/form/ElmValidation.vue3.mjs +20 -0
  140. package/dist/components/icon/ElmArrowIcon.stories.d.ts +6 -0
  141. package/dist/components/icon/ElmArrowIcon.vue.d.ts +26 -0
  142. package/dist/components/icon/ElmArrowIcon.vue.mjs +10 -0
  143. package/dist/components/icon/ElmArrowIcon.vue2.mjs +31 -0
  144. package/dist/components/icon/ElmArrowIcon.vue3.mjs +29 -0
  145. package/dist/components/icon/ElmBookmarkIcon.stories.d.ts +8 -0
  146. package/dist/components/icon/ElmBookmarkIcon.vue.d.ts +7 -0
  147. package/dist/components/icon/ElmBookmarkIcon.vue.mjs +10 -0
  148. package/dist/components/icon/ElmBookmarkIcon.vue2.mjs +47 -0
  149. package/dist/components/icon/ElmBookmarkIcon.vue3.mjs +26 -0
  150. package/dist/components/icon/ElmCubeIcon.stories.d.ts +6 -0
  151. package/dist/components/icon/ElmCubeIcon.vue.d.ts +10 -0
  152. package/dist/components/icon/ElmCubeIcon.vue.mjs +10 -0
  153. package/dist/components/icon/ElmCubeIcon.vue2.mjs +41 -0
  154. package/dist/components/icon/ElmCubeIcon.vue3.mjs +24 -0
  155. package/dist/components/icon/ElmDotLoadingIcon.stories.d.ts +6 -0
  156. package/dist/components/icon/ElmDotLoadingIcon.vue.d.ts +18 -0
  157. package/dist/components/icon/ElmDotLoadingIcon.vue.mjs +10 -0
  158. package/dist/components/icon/ElmDotLoadingIcon.vue2.mjs +28 -0
  159. package/dist/components/icon/ElmDotLoadingIcon.vue3.mjs +26 -0
  160. package/dist/components/icon/ElmInlineIcon.stories.d.ts +6 -0
  161. package/dist/components/icon/ElmInlineIcon.vue.d.ts +12 -0
  162. package/dist/components/icon/ElmInlineIcon.vue.mjs +10 -0
  163. package/dist/components/icon/ElmInlineIcon.vue2.mjs +27 -0
  164. package/dist/components/icon/ElmInlineIcon.vue3.mjs +20 -0
  165. package/dist/components/icon/ElmLanguageIcon.stories.d.ts +6 -0
  166. package/dist/components/icon/ElmLanguageIcon.vue.d.ts +15 -0
  167. package/dist/components/icon/ElmLanguageIcon.vue.mjs +10 -0
  168. package/dist/components/icon/ElmLanguageIcon.vue2.mjs +147 -0
  169. package/dist/components/icon/ElmLanguageIcon.vue3.mjs +20 -0
  170. package/dist/components/icon/ElmLoginIcon.stories.d.ts +6 -0
  171. package/dist/components/icon/ElmLoginIcon.vue.d.ts +18 -0
  172. package/dist/components/icon/ElmLoginIcon.vue.mjs +10 -0
  173. package/dist/components/icon/ElmLoginIcon.vue2.mjs +36 -0
  174. package/dist/components/icon/ElmLoginIcon.vue3.mjs +20 -0
  175. package/dist/components/icon/ElmMdiIcon.stories.d.ts +6 -0
  176. package/dist/components/icon/ElmMdiIcon.vue.d.ts +11 -0
  177. package/dist/components/icon/ElmMdiIcon.vue.mjs +10 -0
  178. package/dist/components/icon/ElmMdiIcon.vue2.mjs +34 -0
  179. package/dist/components/icon/ElmMdiIcon.vue3.mjs +20 -0
  180. package/dist/components/icon/ElmSquareLoadingIcon.stories.d.ts +6 -0
  181. package/dist/components/icon/ElmSquareLoadingIcon.vue.d.ts +10 -0
  182. package/dist/components/icon/ElmSquareLoadingIcon.vue.mjs +10 -0
  183. package/dist/components/icon/ElmSquareLoadingIcon.vue2.mjs +37 -0
  184. package/dist/components/icon/ElmSquareLoadingIcon.vue3.mjs +26 -0
  185. package/dist/components/icon/ElmToggleTheme.stories.d.ts +6 -0
  186. package/dist/components/icon/ElmToggleTheme.vue.d.ts +11 -0
  187. package/dist/components/icon/ElmToggleTheme.vue.mjs +10 -0
  188. package/dist/components/icon/ElmToggleTheme.vue2.mjs +41 -0
  189. package/dist/components/icon/ElmToggleTheme.vue3.mjs +20 -0
  190. package/dist/components/icon/languages/Bash.vue.d.ts +7 -0
  191. package/dist/components/icon/languages/Bash.vue.mjs +10 -0
  192. package/dist/components/icon/languages/Bash.vue2.mjs +34 -0
  193. package/dist/components/icon/languages/Bash.vue3.mjs +20 -0
  194. package/dist/components/icon/languages/C.vue.d.ts +7 -0
  195. package/dist/components/icon/languages/C.vue.mjs +34 -0
  196. package/dist/components/icon/languages/C.vue2.mjs +4 -0
  197. package/dist/components/icon/languages/Cplusplus.vue.d.ts +7 -0
  198. package/dist/components/icon/languages/Cplusplus.vue.mjs +38 -0
  199. package/dist/components/icon/languages/Cplusplus.vue2.mjs +4 -0
  200. package/dist/components/icon/languages/Csharp.vue.d.ts +7 -0
  201. package/dist/components/icon/languages/Csharp.vue.mjs +34 -0
  202. package/dist/components/icon/languages/Csharp.vue2.mjs +4 -0
  203. package/dist/components/icon/languages/Css.vue.d.ts +7 -0
  204. package/dist/components/icon/languages/Css.vue.mjs +26 -0
  205. package/dist/components/icon/languages/Css.vue2.mjs +4 -0
  206. package/dist/components/icon/languages/Go.vue.d.ts +7 -0
  207. package/dist/components/icon/languages/Go.vue.mjs +32 -0
  208. package/dist/components/icon/languages/Go.vue2.mjs +4 -0
  209. package/dist/components/icon/languages/Html.vue.d.ts +7 -0
  210. package/dist/components/icon/languages/Html.vue.mjs +38 -0
  211. package/dist/components/icon/languages/Html.vue2.mjs +4 -0
  212. package/dist/components/icon/languages/Java.vue.d.ts +7 -0
  213. package/dist/components/icon/languages/Java.vue.mjs +23 -0
  214. package/dist/components/icon/languages/Java.vue2.mjs +4 -0
  215. package/dist/components/icon/languages/Javascript.vue.d.ts +7 -0
  216. package/dist/components/icon/languages/Javascript.vue.mjs +30 -0
  217. package/dist/components/icon/languages/Javascript.vue2.mjs +4 -0
  218. package/dist/components/icon/languages/Json.vue.d.ts +7 -0
  219. package/dist/components/icon/languages/Json.vue.mjs +23 -0
  220. package/dist/components/icon/languages/Json.vue2.mjs +4 -0
  221. package/dist/components/icon/languages/Kotlin.vue.d.ts +7 -0
  222. package/dist/components/icon/languages/Kotlin.vue.mjs +23 -0
  223. package/dist/components/icon/languages/Kotlin.vue2.mjs +4 -0
  224. package/dist/components/icon/languages/Lua.vue.d.ts +7 -0
  225. package/dist/components/icon/languages/Lua.vue.mjs +34 -0
  226. package/dist/components/icon/languages/Lua.vue2.mjs +4 -0
  227. package/dist/components/icon/languages/Npm.vue.d.ts +7 -0
  228. package/dist/components/icon/languages/Npm.vue.mjs +30 -0
  229. package/dist/components/icon/languages/Npm.vue2.mjs +4 -0
  230. package/dist/components/icon/languages/Python.vue.d.ts +7 -0
  231. package/dist/components/icon/languages/Python.vue.mjs +23 -0
  232. package/dist/components/icon/languages/Python.vue2.mjs +4 -0
  233. package/dist/components/icon/languages/Rust.vue.d.ts +7 -0
  234. package/dist/components/icon/languages/Rust.vue.mjs +24 -0
  235. package/dist/components/icon/languages/Rust.vue2.mjs +4 -0
  236. package/dist/components/icon/languages/Sql.vue.d.ts +7 -0
  237. package/dist/components/icon/languages/Sql.vue.mjs +26 -0
  238. package/dist/components/icon/languages/Sql.vue2.mjs +4 -0
  239. package/dist/components/icon/languages/Terraform.vue.d.ts +7 -0
  240. package/dist/components/icon/languages/Terraform.vue.mjs +36 -0
  241. package/dist/components/icon/languages/Terraform.vue2.mjs +4 -0
  242. package/dist/components/icon/languages/Typescript.vue.d.ts +7 -0
  243. package/dist/components/icon/languages/Typescript.vue.mjs +30 -0
  244. package/dist/components/icon/languages/Typescript.vue2.mjs +4 -0
  245. package/dist/components/media/ElmFile.stories.d.ts +6 -0
  246. package/dist/components/media/ElmFile.vue.d.ts +21 -0
  247. package/dist/components/media/ElmFile.vue.mjs +10 -0
  248. package/dist/components/media/ElmFile.vue2.mjs +79 -0
  249. package/dist/components/media/ElmFile.vue3.mjs +23 -0
  250. package/dist/components/media/ElmImage.stories.d.ts +9 -0
  251. package/dist/components/media/ElmImage.vue.d.ts +27 -0
  252. package/dist/components/media/ElmImage.vue.mjs +10 -0
  253. package/dist/components/media/ElmImage.vue2.mjs +142 -0
  254. package/dist/components/media/ElmImage.vue3.mjs +35 -0
  255. package/dist/components/navigation/ElmBookmark.stories.d.ts +12 -0
  256. package/dist/components/navigation/ElmBookmark.vue.d.ts +53 -0
  257. package/dist/components/navigation/ElmBookmark.vue.mjs +10 -0
  258. package/dist/components/navigation/ElmBookmark.vue2.mjs +116 -0
  259. package/dist/components/navigation/ElmBookmark.vue3.mjs +41 -0
  260. package/dist/components/navigation/ElmBreadcrumb.stories.d.ts +7 -0
  261. package/dist/components/navigation/ElmBreadcrumb.vue.d.ts +19 -0
  262. package/dist/components/navigation/ElmBreadcrumb.vue.mjs +10 -0
  263. package/dist/components/navigation/ElmBreadcrumb.vue2.mjs +65 -0
  264. package/dist/components/navigation/ElmBreadcrumb.vue3.mjs +24 -0
  265. package/dist/components/navigation/ElmPagetop.stories.d.ts +6 -0
  266. package/dist/components/navigation/ElmPagetop.vue.d.ts +10 -0
  267. package/dist/components/navigation/ElmPagetop.vue.mjs +10 -0
  268. package/dist/components/navigation/ElmPagetop.vue2.mjs +52 -0
  269. package/dist/components/navigation/ElmPagetop.vue3.mjs +30 -0
  270. package/dist/components/navigation/ElmTableOfContents.stories.d.ts +7 -0
  271. package/dist/components/navigation/ElmTableOfContents.vue.d.ts +9 -0
  272. package/dist/components/navigation/ElmTableOfContents.vue.mjs +10 -0
  273. package/dist/components/navigation/ElmTableOfContents.vue2.mjs +45 -0
  274. package/dist/components/navigation/ElmTableOfContents.vue3.mjs +23 -0
  275. package/dist/components/others/ElmColorSample.stories.d.ts +6 -0
  276. package/dist/components/others/ElmColorSample.vue.d.ts +8 -0
  277. package/dist/components/others/ElmColorSample.vue.mjs +23 -0
  278. package/dist/components/others/ElmColorSample.vue2.mjs +72 -0
  279. package/dist/components/others/ElmColorSample.vue3.mjs +21 -0
  280. package/dist/components/others/ElmColorTable.stories.d.ts +6 -0
  281. package/dist/components/others/ElmColorTable.vue.d.ts +11 -0
  282. package/dist/components/others/ElmColorTable.vue.mjs +10 -0
  283. package/dist/components/others/ElmColorTable.vue2.mjs +49 -0
  284. package/dist/components/others/ElmColorTable.vue3.mjs +22 -0
  285. package/dist/components/others/ElmJsonComponentRenderer.stories.d.ts +23 -0
  286. package/dist/components/others/ElmJsonComponentRenderer.vue.d.ts +6 -0
  287. package/dist/components/others/ElmJsonComponentRenderer.vue.mjs +10 -0
  288. package/dist/components/others/ElmJsonComponentRenderer.vue2.mjs +189 -0
  289. package/dist/components/others/ElmJsonComponentRenderer.vue3.mjs +21 -0
  290. package/dist/components/others/ElmMarkdown.stories.d.ts +6 -0
  291. package/dist/components/others/ElmMarkdown.vue.d.ts +5 -0
  292. package/dist/components/others/ElmMarkdown.vue.mjs +255 -0
  293. package/dist/components/others/ElmMarkdown.vue2.mjs +4 -0
  294. package/dist/components/others/ElmTyping.stories.d.ts +6 -0
  295. package/dist/components/others/ElmTyping.vue.d.ts +4 -0
  296. package/dist/components/table/ElmTable.stories.d.ts +6 -0
  297. package/dist/components/table/ElmTable.vue.d.ts +46 -0
  298. package/dist/components/table/ElmTable.vue.mjs +10 -0
  299. package/dist/components/table/ElmTable.vue2.mjs +62 -0
  300. package/dist/components/table/ElmTable.vue3.mjs +27 -0
  301. package/dist/components/table/ElmTableBody.vue.d.ts +22 -0
  302. package/dist/components/table/ElmTableBody.vue.mjs +15 -0
  303. package/dist/components/table/ElmTableBody.vue2.mjs +4 -0
  304. package/dist/components/table/ElmTableCell.vue.d.ts +33 -0
  305. package/dist/components/table/ElmTableCell.vue.mjs +10 -0
  306. package/dist/components/table/ElmTableCell.vue2.mjs +28 -0
  307. package/dist/components/table/ElmTableCell.vue3.mjs +26 -0
  308. package/dist/components/table/ElmTableHeader.vue.d.ts +22 -0
  309. package/dist/components/table/ElmTableHeader.vue.mjs +10 -0
  310. package/dist/components/table/ElmTableHeader.vue2.mjs +17 -0
  311. package/dist/components/table/ElmTableHeader.vue3.mjs +20 -0
  312. package/dist/components/table/ElmTableRow.vue.d.ts +22 -0
  313. package/dist/components/table/ElmTableRow.vue.mjs +10 -0
  314. package/dist/components/table/ElmTableRow.vue2.mjs +20 -0
  315. package/dist/components/table/ElmTableRow.vue3.mjs +21 -0
  316. package/dist/components/template/ElmTemplate.stories.d.ts +6 -0
  317. package/dist/components/template/ElmTemplate.vue.d.ts +4 -0
  318. package/dist/components/typography/ElmBlockQuote.stories.d.ts +6 -0
  319. package/dist/components/typography/ElmBlockQuote.vue.d.ts +24 -0
  320. package/dist/components/typography/ElmBlockQuote.vue.mjs +10 -0
  321. package/dist/components/typography/ElmBlockQuote.vue2.mjs +64 -0
  322. package/dist/components/typography/ElmBlockQuote.vue3.mjs +26 -0
  323. package/dist/components/typography/ElmCallout.stories.d.ts +11 -0
  324. package/dist/components/typography/ElmCallout.vue.d.ts +30 -0
  325. package/dist/components/typography/ElmCallout.vue.mjs +10 -0
  326. package/dist/components/typography/ElmCallout.vue2.mjs +58 -0
  327. package/dist/components/typography/ElmCallout.vue3.mjs +23 -0
  328. package/dist/components/typography/ElmDivider.stories.d.ts +6 -0
  329. package/dist/components/typography/ElmDivider.vue.d.ts +11 -0
  330. package/dist/components/typography/ElmDivider.vue.mjs +10 -0
  331. package/dist/components/typography/ElmDivider.vue2.mjs +29 -0
  332. package/dist/components/typography/ElmDivider.vue3.mjs +20 -0
  333. package/dist/components/typography/ElmFragmentIdentifier.stories.d.ts +6 -0
  334. package/dist/components/typography/ElmFragmentIdentifier.vue.d.ts +8 -0
  335. package/dist/components/typography/ElmFragmentIdentifier.vue.mjs +10 -0
  336. package/dist/components/typography/ElmFragmentIdentifier.vue2.mjs +27 -0
  337. package/dist/components/typography/ElmFragmentIdentifier.vue3.mjs +20 -0
  338. package/dist/components/typography/ElmHeading.stories.d.ts +7 -0
  339. package/dist/components/typography/ElmHeading.vue.d.ts +49 -0
  340. package/dist/components/typography/ElmHeading.vue.mjs +10 -0
  341. package/dist/components/typography/ElmHeading.vue2.mjs +95 -0
  342. package/dist/components/typography/ElmHeading.vue3.mjs +39 -0
  343. package/dist/components/typography/ElmInlineText.stories.d.ts +12 -0
  344. package/dist/components/typography/ElmInlineText.vue.d.ts +85 -0
  345. package/dist/components/typography/ElmInlineText.vue.mjs +10 -0
  346. package/dist/components/typography/ElmInlineText.vue2.mjs +158 -0
  347. package/dist/components/typography/ElmInlineText.vue3.mjs +35 -0
  348. package/dist/components/typography/ElmList.stories.d.ts +8 -0
  349. package/dist/components/typography/ElmList.vue.d.ts +31 -0
  350. package/dist/components/typography/ElmList.vue.mjs +36 -0
  351. package/dist/components/typography/ElmList.vue3.mjs +17 -0
  352. package/dist/components/typography/ElmParagraph.stories.d.ts +6 -0
  353. package/dist/components/typography/ElmParagraph.vue.d.ts +23 -0
  354. package/dist/components/typography/ElmParagraph.vue.mjs +10 -0
  355. package/dist/components/typography/ElmParagraph.vue2.mjs +27 -0
  356. package/dist/components/typography/ElmParagraph.vue3.mjs +20 -0
  357. package/dist/components/typography/ElmTypingAnimation.stories.d.ts +6 -0
  358. package/dist/components/typography/ElmTypingAnimation.vue.d.ts +21 -0
  359. package/dist/components/typography/ElmTypingAnimation.vue.mjs +10 -0
  360. package/dist/components/typography/ElmTypingAnimation.vue2.mjs +49 -0
  361. package/dist/components/typography/ElmTypingAnimation.vue3.mjs +26 -0
  362. package/dist/hooks/useElmethisTheme.d.ts +4 -0
  363. package/dist/hooks/useElmethisTheme.mjs +43 -0
  364. package/dist/hooks/useTyping.d.ts +17 -0
  365. package/dist/hooks/useTyping.mjs +37 -0
  366. package/dist/index.d.ts +120 -0
  367. package/dist/index.mjs +137 -0
  368. package/dist/node_modules/.pnpm/marked@16.4.1/node_modules/marked/lib/marked.esm.mjs +1099 -0
  369. package/dist/styles/heading.module.scss.mjs +20 -0
  370. package/dist/styles/text.module.scss.mjs +20 -0
  371. package/dist/styles/transition-fade.module.scss.mjs +27 -0
  372. package/package.json +62 -0
@@ -0,0 +1,158 @@
1
+ import { defineComponent, useCssModule, useSlots, resolveComponent, createBlock, openBlock, withCtx, createElementBlock, normalizeClass, createElementVNode, createCommentVNode, unref, toDisplayString, resolveDynamicComponent, h } from "vue";
2
+ import { getLuminance } from "polished";
3
+ import ElmInlineIcon from "../icon/ElmInlineIcon.vue.mjs";
4
+ import ElmMdiIcon from "../icon/ElmMdiIcon.vue.mjs";
5
+ import { mdiOpenInNew } from "@mdi/js";
6
+ import textStyle from "../../styles/text.module.scss.mjs";
7
+ import ElmTooltip from "../containments/ElmTooltip.vue.mjs";
8
+ import ElmImage from "../media/ElmImage.vue.mjs";
9
+ const _sfc_main = /* @__PURE__ */ defineComponent({
10
+ __name: "ElmInlineText",
11
+ props: {
12
+ text: {},
13
+ color: {},
14
+ size: { default: "1em" },
15
+ bold: { type: Boolean, default: false },
16
+ italic: { type: Boolean, default: false },
17
+ underline: { type: Boolean, default: false },
18
+ strikethrough: { type: Boolean, default: false },
19
+ code: { type: Boolean, default: false },
20
+ kbd: { type: Boolean },
21
+ backgroundColor: {},
22
+ ruby: {},
23
+ href: {},
24
+ favicon: {},
25
+ ogp: {}
26
+ },
27
+ setup(__props) {
28
+ const props = __props;
29
+ const style = useCssModule();
30
+ const slots = useSlots();
31
+ const renderLink = () => {
32
+ const children = [];
33
+ if (props.favicon) {
34
+ children.push(h(ElmInlineIcon, { src: props.favicon, alt: "favicon" }));
35
+ }
36
+ if (slots.default) {
37
+ children.push(h(slots.default));
38
+ } else {
39
+ children.push(h("span", {}, props.text ?? props.href));
40
+ }
41
+ children.push(
42
+ h(ElmMdiIcon, {
43
+ d: mdiOpenInNew,
44
+ size: "0.8em",
45
+ color: "gray",
46
+ style: { opacity: 0.75 }
47
+ })
48
+ );
49
+ return h(
50
+ "a",
51
+ {
52
+ class: style.link,
53
+ href: props.href,
54
+ style: { "--font-size": props.size },
55
+ target: "_blank",
56
+ rel: "noopener noreferrer"
57
+ },
58
+ children
59
+ );
60
+ };
61
+ const render = () => {
62
+ const backgroundColor = props.backgroundColor != null ? getLuminance(props.backgroundColor) < 0.5 ? "rgba(255, 255, 255, 0.7)" : "rgba(0, 0, 0, 0.7)" : void 0;
63
+ let vnode = slots.default ? h(
64
+ "span",
65
+ {
66
+ class: [style.text, textStyle.text],
67
+ style: {
68
+ "--color": props.color ?? backgroundColor,
69
+ "--font-size": props.size,
70
+ "--background-color": props.backgroundColor
71
+ }
72
+ },
73
+ { default: slots.default }
74
+ ) : h(
75
+ "span",
76
+ {
77
+ class: [style.text, textStyle.text],
78
+ style: {
79
+ "--color": props.color ?? backgroundColor,
80
+ "--font-size": props.size,
81
+ "--background-color": props.backgroundColor
82
+ }
83
+ },
84
+ props.text
85
+ );
86
+ if (props.kbd) {
87
+ vnode = h("kbd", { class: style.kbd }, vnode);
88
+ }
89
+ if (props.strikethrough) {
90
+ vnode = h("del", {}, vnode);
91
+ }
92
+ if (props.italic) {
93
+ vnode = h("em", {}, vnode);
94
+ }
95
+ if (props.underline) {
96
+ vnode = h("ins", {}, vnode);
97
+ }
98
+ if (props.bold) {
99
+ vnode = h("strong", {}, vnode);
100
+ }
101
+ if (props.code) {
102
+ vnode = h("code", { class: style.code }, vnode);
103
+ }
104
+ if (props.ruby) {
105
+ vnode = h(
106
+ "ruby",
107
+ {
108
+ class: style.text,
109
+ style: {
110
+ "--color": props.color ?? backgroundColor,
111
+ "--font-size": props.size,
112
+ "--background-color": props.backgroundColor
113
+ }
114
+ },
115
+ [h("span", {}, vnode), h("rt", {}, props.ruby)]
116
+ );
117
+ }
118
+ return vnode;
119
+ };
120
+ return (_ctx, _cache) => {
121
+ const _component_ElmInlineText = resolveComponent("ElmInlineText", true);
122
+ return __props.href && __props.ogp ? (openBlock(), createBlock(ElmTooltip, { key: 0 }, {
123
+ original: withCtx(() => [
124
+ (openBlock(), createBlock(resolveDynamicComponent(renderLink())))
125
+ ]),
126
+ tooltip: withCtx(() => [
127
+ __props.ogp ? (openBlock(), createElementBlock("div", {
128
+ key: 0,
129
+ class: normalizeClass(_ctx.$style.ogp)
130
+ }, [
131
+ createElementVNode("div", {
132
+ class: normalizeClass(_ctx.$style["ogp-text"])
133
+ }, [
134
+ createElementVNode("div", {
135
+ class: normalizeClass([unref(textStyle).text, _ctx.$style["ogp-title"]])
136
+ }, toDisplayString(__props.ogp.title), 3),
137
+ __props.ogp.description ? (openBlock(), createElementBlock("div", {
138
+ key: 0,
139
+ class: normalizeClass([unref(textStyle).text, _ctx.$style["ogp-description"]])
140
+ }, toDisplayString(__props.ogp.description), 3)) : createCommentVNode("", true)
141
+ ], 2),
142
+ __props.ogp.image ? (openBlock(), createBlock(ElmImage, {
143
+ key: 0,
144
+ src: __props.ogp.image
145
+ }, null, 8, ["src"])) : createCommentVNode("", true)
146
+ ], 2)) : (openBlock(), createBlock(_component_ElmInlineText, {
147
+ key: 1,
148
+ text: __props.href
149
+ }, null, 8, ["text"]))
150
+ ]),
151
+ _: 1
152
+ })) : __props.href ? (openBlock(), createBlock(resolveDynamicComponent(renderLink()), { key: 1 })) : (openBlock(), createBlock(resolveDynamicComponent(render()), { key: 2 }));
153
+ };
154
+ }
155
+ });
156
+ export {
157
+ _sfc_main as default
158
+ };
@@ -0,0 +1,35 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode('._text_xfybp_1{padding:0;margin:0;white-space:pre-line;font-size:1em;font-size:var(--font-size, 1em);line-height:1em;line-height:var(--font-size, 1em);background-color:var(--background-color);transition:color .2s}._code_xfybp_11{margin-inline:.25rem;padding:2px .5em;font-size:calc(1em - 2px);border-radius:.125rem;background-color:#00000013;font-family:"Source Code Pro" monospace}._kbd_xfybp_20{padding:.125rem .25rem;position:relative;border-radius:.125rem;background-color:#e6e6e6}[data-theme=dark] ._kbd_xfybp_20{background-color:#404040}._kbd_xfybp_20:before{z-index:-1;position:absolute;content:"";bottom:-.25em;left:0;height:100%;width:100%;background-color:#ccc;border-radius:0 0 .125rem .125rem;box-shadow:0 0 .125em #00000080}[data-theme=dark] ._kbd_xfybp_20:before{background-color:#595959;box-shadow:0 0 .125em #ffffff80}._link_xfybp_46{all:unset;box-sizing:border-box;padding:0 .25rem;font-size:var(--font-size);display:inline-flex;align-items:center;gap:.25rem;cursor:pointer;color:#6987b8;border-radius:.125rem;transition:background-color .2s,color .2s,opacity .2s}._link_xfybp_46:hover{background-color:#6987b833}._link_xfybp_46:active{opacity:.5}._link_xfybp_46:visited{color:#9771bd;border-bottom:dashed 1px #9771bd}._link_xfybp_46:visited:hover{background-color:#9771bd33}._ogp_xfybp_73{display:flex;flex-direction:column;gap:.25rem;overflow:hidden;border-radius:.25rem;box-shadow:0 0 .125rem #0000004d;background-color:#fffc}[data-theme=dark] ._ogp_xfybp_73{background-color:#ffffff1a}._ogp-text_xfybp_86{box-sizing:border-box;padding:.5rem}._ogp-title_xfybp_91{box-sizing:border-box;font-weight:700;padding-block-end:.25rem}._ogp-description_xfybp_97{opacity:.7;padding:.25rem}'));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
13
+ const text = "_text_xfybp_1";
14
+ const code = "_code_xfybp_11";
15
+ const kbd = "_kbd_xfybp_20";
16
+ const link = "_link_xfybp_46";
17
+ const ogp = "_ogp_xfybp_73";
18
+ const style0 = {
19
+ text,
20
+ code,
21
+ kbd,
22
+ link,
23
+ ogp,
24
+ "ogp-text": "_ogp-text_xfybp_86",
25
+ "ogp-title": "_ogp-title_xfybp_91",
26
+ "ogp-description": "_ogp-description_xfybp_97"
27
+ };
28
+ export {
29
+ code,
30
+ style0 as default,
31
+ kbd,
32
+ link,
33
+ ogp,
34
+ text
35
+ };
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as ElmList } from './ElmList.vue';
3
+ declare const meta: Meta<typeof ElmList>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Unordered: Story;
7
+ export declare const Ordered: Story;
8
+ export declare const Nested: Story;
@@ -0,0 +1,31 @@
1
+ export interface ElmListProps {
2
+ /**
3
+ * The type of list to render.
4
+ * - `unordered` `<ul/>` for a **bulleted** list
5
+ * - `ordered` `<ol/>` for a **numbered** list
6
+ */
7
+ listStyle: "unordered" | "ordered";
8
+ }
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ default?(_: {}): any;
13
+ };
14
+ refs: {
15
+ target: unknown;
16
+ };
17
+ rootEl: any;
18
+ };
19
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
20
+ declare const __VLS_component: import('vue').DefineComponent<ElmListProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ElmListProps> & Readonly<{}>, {
21
+ listStyle: "unordered" | "ordered";
22
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
23
+ target: unknown;
24
+ }, any>;
25
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
26
+ export default _default;
27
+ type __VLS_WithTemplateSlots<T, S> = T & {
28
+ new (): {
29
+ $slots: S;
30
+ };
31
+ };
@@ -0,0 +1,36 @@
1
+ import { defineComponent, ref, createBlock, openBlock, resolveDynamicComponent, normalizeStyle, normalizeClass, withCtx, renderSlot } from "vue";
2
+ import { useIntersectionObserver } from "@vueuse/core";
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "ElmList",
5
+ props: {
6
+ listStyle: { default: "unordered" }
7
+ },
8
+ setup(__props) {
9
+ const target = ref(null);
10
+ const targetIsVisible = ref(false);
11
+ useIntersectionObserver(target, ([{ isIntersecting }], _) => {
12
+ targetIsVisible.value = isIntersecting;
13
+ });
14
+ return (_ctx, _cache) => {
15
+ return openBlock(), createBlock(resolveDynamicComponent(__props.listStyle === "unordered" ? "ul" : "ol"), {
16
+ ref_key: "target",
17
+ ref: target,
18
+ class: normalizeClass([
19
+ "elmethis-list-common",
20
+ __props.listStyle === "unordered" ? "elmethis-bulleted-list" : "elmethis-numbered-list"
21
+ ]),
22
+ style: normalizeStyle({
23
+ "--opacity": targetIsVisible.value ? 1 : 0
24
+ })
25
+ }, {
26
+ default: withCtx(() => [
27
+ renderSlot(_ctx.$slots, "default")
28
+ ]),
29
+ _: 3
30
+ }, 8, ["class", "style"]);
31
+ };
32
+ }
33
+ });
34
+ export {
35
+ _sfc_main as default
36
+ };
@@ -0,0 +1,17 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode(".elmethis-list-common{margin-block:1rem;opacity:var(--opacity);transition:opacity .8s;box-sizing:border-box;padding-left:1.25rem}.elmethis-bulleted-list li{box-sizing:border-box;padding-left:.5rem;margin-block:.75rem}.elmethis-bulleted-list li::marker{content:url(data:image/svg+xml;base64,ICA8c3ZnCiAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICB2aWV3Qm94PScwIDAgMTYgMTYnCiAgICB3aWR0aD0nMTJweCcKICAgIGhlaWdodD0nMTJweCcKICA+CiAgICA8cGF0aAogICAgICBmaWxsPScjNDQ5NzYzJwogICAgICBvcGFjaXR5PScwLjgnCiAgICAgIGQ9J00zIDMuNzMyYTEuNSAxLjUgMCAwIDEgMi4zMDUtMS4yNjVsNi43MDYgNC4yNjdhMS41IDEuNSAwIDAgMSAwIDIuNTMxbC02LjcwNiA0LjI2OEExLjUgMS41IDAgMCAxIDMgMTIuMjY3VjMuNzMyWicKICAgIC8+CiAgPC9zdmc+)}.elmethis-bulleted-list li ul li::marker{content:url(data:image/svg+xml;base64,ICA8c3ZnCiAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICB2aWV3Qm94PScwIDAgMjQgMjQnCiAgICB3aWR0aD0nMTJweCcKICAgIGhlaWdodD0nMTJweCcKICAgIHN0cm9rZT0nIzQ0OTc2MycKICAgIGZpbGw9J3RyYW5zcGFyZW50JwogID4KICAgIDxwYXRoCiAgICAgIHN0cm9rZUxpbmVjYXA9J3JvdW5kJwogICAgICBzdHJva2VMaW5lam9pbj0ncm91bmQnCiAgICAgIGQ9J001LjI1IDUuNjUzYzAtLjg1Ni45MTctMS4zOTggMS42NjctLjk4NmwxMS41NCA2LjM0N2ExLjEyNSAxLjEyNSAwIDAgMSAwIDEuOTcybC0xMS41NCA2LjM0N2ExLjEyNSAxLjEyNSAwIDAgMS0xLjY2Ny0uOTg2VjUuNjUzWicKICAgIC8+CiAgPC9zdmc+)}.elmethis-bulleted-list li ul li ul li::marker{content:url(data:image/svg+xml;base64,ICA8c3ZnCiAgICB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnCiAgICB2aWV3Qm94PScwIDAgMjAgMjAnCiAgICB3aWR0aD0nMTJweCcKICAgIGhlaWdodD0nMTJweCcKICAgIHN0cm9rZT0nIzQ0OTc2MycKICAgIGZpbGw9JyM0NDk3NjMnCiAgPgogICAgPHBhdGgKICAgICAgZmlsbFJ1bGU9J2V2ZW5vZGQnCiAgICAgIGQ9J004LjIyIDUuMjJhLjc1Ljc1IDAgMCAxIDEuMDYgMGw0LjI1IDQuMjVhLjc1Ljc1IDAgMCAxIDAgMS4wNmwtNC4yNSA0LjI1YS43NS43NSAwIDAgMS0xLjA2LTEuMDZMMTEuOTQgMTAgOC4yMiA2LjI4YS43NS43NSAwIDAgMSAwLTEuMDZaJwogICAgICBjbGlwUnVsZT0nZXZlbm9kZCcKICAgIC8+CiAgPC9zdmc+)}.elmethis-numbered-list li{box-sizing:border-box;padding-left:.25rem;margin-block:.75rem;margin-left:.25rem;list-style-type:decimal}.elmethis-numbered-list li::marker{font-weight:700;color:#9771bd}.elmethis-numbered-list li ol li{list-style-type:lower-alpha}.elmethis-numbered-list li ol li ol li{list-style-type:lower-roman}.elmethis-numbered-list li ol li ol li ol li{list-style-type:lower-greek}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
13
+ import _sfc_main from "./ElmList.vue.mjs";
14
+
15
+ export {
16
+ _sfc_main as default
17
+ };
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as ElmParagraph } from './ElmParagraph.vue';
3
+ declare const meta: Meta<typeof ElmParagraph>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Primary: Story;
@@ -0,0 +1,23 @@
1
+ export interface ElmParagraphProps {
2
+ }
3
+ declare function __VLS_template(): {
4
+ attrs: Partial<{}>;
5
+ slots: {
6
+ default?(_: {}): any;
7
+ };
8
+ refs: {
9
+ target: HTMLParagraphElement;
10
+ };
11
+ rootEl: HTMLParagraphElement;
12
+ };
13
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
14
+ declare const __VLS_component: import('vue').DefineComponent<ElmParagraphProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ElmParagraphProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
15
+ target: HTMLParagraphElement;
16
+ }, HTMLParagraphElement>;
17
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
18
+ export default _default;
19
+ type __VLS_WithTemplateSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -0,0 +1,10 @@
1
+ import _sfc_main from "./ElmParagraph.vue2.mjs";
2
+ import style0 from "./ElmParagraph.vue3.mjs";
3
+ import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const cssModules = {
5
+ "$style": style0
6
+ };
7
+ const ElmParagraph = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
8
+ export {
9
+ ElmParagraph as default
10
+ };
@@ -0,0 +1,27 @@
1
+ import { defineComponent, ref, createElementBlock, openBlock, normalizeStyle, normalizeClass, renderSlot } from "vue";
2
+ import { useIntersectionObserver } from "@vueuse/core";
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "ElmParagraph",
5
+ setup(__props) {
6
+ const target = ref(null);
7
+ const targetIsVisible = ref(false);
8
+ useIntersectionObserver(target, ([{ isIntersecting }], _) => {
9
+ targetIsVisible.value = isIntersecting;
10
+ });
11
+ return (_ctx, _cache) => {
12
+ return openBlock(), createElementBlock("p", {
13
+ ref_key: "target",
14
+ ref: target,
15
+ class: normalizeClass(_ctx.$style.paragraph),
16
+ style: normalizeStyle({
17
+ "--opacity": targetIsVisible.value ? 1 : 0
18
+ })
19
+ }, [
20
+ renderSlot(_ctx.$slots, "default")
21
+ ], 6);
22
+ };
23
+ }
24
+ });
25
+ export {
26
+ _sfc_main as default
27
+ };
@@ -0,0 +1,20 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("._paragraph_19lcl_1{margin-block:2rem;opacity:var(--opacity);transition:opacity .8s;color:#000000b3}._paragraph_19lcl_1::-moz-selection{color:#ffffffb3;background-color:#000000b3}._paragraph_19lcl_1::selection{color:#ffffffb3;background-color:#000000b3}[data-theme=dark] ._paragraph_19lcl_1{color:#ffffffb3}[data-theme=dark] ._paragraph_19lcl_1::-moz-selection{color:#000000b3;background-color:#ffffffb3}[data-theme=dark] ._paragraph_19lcl_1::selection{color:#000000b3;background-color:#ffffffb3}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
13
+ const paragraph = "_paragraph_19lcl_1";
14
+ const style0 = {
15
+ paragraph
16
+ };
17
+ export {
18
+ style0 as default,
19
+ paragraph
20
+ };
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/vue3-vite';
2
+ import { default as ElmTypingAnimation } from './ElmTypingAnimation.vue';
3
+ declare const meta: Meta<typeof ElmTypingAnimation>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof meta>;
6
+ export declare const Primary: Story;
@@ -0,0 +1,21 @@
1
+ import { Property } from 'csstype';
2
+ export interface ElmTypingAnimationProps {
3
+ /**
4
+ * The texts to display.
5
+ */
6
+ texts: string[];
7
+ /**
8
+ * The interval between each text.
9
+ */
10
+ interval?: number;
11
+ /**
12
+ * The font size of the text.
13
+ */
14
+ fontSize: Property.FontSize<string | number>;
15
+ }
16
+ declare const _default: import('vue').DefineComponent<ElmTypingAnimationProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ElmTypingAnimationProps> & Readonly<{}>, {
17
+ texts: string[];
18
+ interval: number;
19
+ fontSize: Property.FontSize<string | number>;
20
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
21
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import _sfc_main from "./ElmTypingAnimation.vue2.mjs";
2
+ import style0 from "./ElmTypingAnimation.vue3.mjs";
3
+ import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const cssModules = {
5
+ "$style": style0
6
+ };
7
+ const ElmTypingAnimation = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
8
+ export {
9
+ ElmTypingAnimation as default
10
+ };
@@ -0,0 +1,49 @@
1
+ import { defineComponent, ref, onMounted, createElementBlock, openBlock, normalizeStyle, normalizeClass, createTextVNode, createElementVNode, toDisplayString } from "vue";
2
+ const _sfc_main = /* @__PURE__ */ defineComponent({
3
+ __name: "ElmTypingAnimation",
4
+ props: {
5
+ texts: { default: () => [] },
6
+ interval: { default: 3e3 },
7
+ fontSize: { default: "1rem" }
8
+ },
9
+ setup(__props) {
10
+ const props = __props;
11
+ const sleep = (duration) => {
12
+ return new Promise((resolve) => {
13
+ setTimeout(resolve, duration);
14
+ });
15
+ };
16
+ const display = ref("");
17
+ onMounted(async () => {
18
+ while (true) {
19
+ for (const text of props.texts) {
20
+ for (const char of text) {
21
+ await sleep(75);
22
+ display.value += char;
23
+ }
24
+ await sleep(props.interval);
25
+ while (true) {
26
+ if (display.value === "") break;
27
+ display.value = display.value.slice(0, -1);
28
+ await sleep(25);
29
+ }
30
+ await sleep(200);
31
+ }
32
+ }
33
+ });
34
+ return (_ctx, _cache) => {
35
+ return openBlock(), createElementBlock("span", {
36
+ class: normalizeClass(_ctx.$style.text),
37
+ style: normalizeStyle({ fontSize: __props.fontSize })
38
+ }, [
39
+ createTextVNode(toDisplayString(display.value), 1),
40
+ createElementVNode("span", {
41
+ class: normalizeClass(_ctx.$style.cursor)
42
+ }, " ", 2)
43
+ ], 6);
44
+ };
45
+ }
46
+ });
47
+ export {
48
+ _sfc_main as default
49
+ };
@@ -0,0 +1,26 @@
1
+ (function() {
2
+ "use strict";
3
+ try {
4
+ if (typeof document != "undefined") {
5
+ var elementStyle = document.createElement("style");
6
+ elementStyle.appendChild(document.createTextNode("._text_kfz2u_1{font-family:monospace;color:#000c;-webkit-user-select:none;-moz-user-select:none;user-select:none}._text_kfz2u_1::-moz-selection{color:#fffc;background-color:#000c}._text_kfz2u_1::selection{color:#fffc;background-color:#000c}[data-theme=dark] ._text_kfz2u_1{color:#fffc}[data-theme=dark] ._text_kfz2u_1::-moz-selection{color:#000c;background-color:#fffc}[data-theme=dark] ._text_kfz2u_1::selection{color:#000c;background-color:#fffc}@keyframes _blink_kfz2u_1{0%{opacity:0}to{opacity:1}}._cursor_kfz2u_26{margin-inline:1px;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:#3e434b80}[data-theme=dark] ._cursor_kfz2u_26{background-color:#cccfd540}"));
7
+ document.head.appendChild(elementStyle);
8
+ }
9
+ } catch (e) {
10
+ console.error("vite-plugin-css-injected-by-js", e);
11
+ }
12
+ })();
13
+ const text = "_text_kfz2u_1";
14
+ const cursor = "_cursor_kfz2u_26";
15
+ const blink = "_blink_kfz2u_1";
16
+ const style0 = {
17
+ text,
18
+ cursor,
19
+ blink
20
+ };
21
+ export {
22
+ blink,
23
+ cursor,
24
+ style0 as default,
25
+ text
26
+ };
@@ -0,0 +1,4 @@
1
+ export declare function useElmethisTheme(): {
2
+ isDarkTheme: import('vue').Ref<boolean, boolean>;
3
+ toggleTheme: () => void;
4
+ };
@@ -0,0 +1,43 @@
1
+ import { ref, watch, onMounted } from "vue";
2
+ const LOCAL_STORAGE_KEY = "elmethis-theme";
3
+ function useElmethisTheme() {
4
+ const isDarkTheme = ref(false);
5
+ const toggleTheme = () => {
6
+ isDarkTheme.value = !isDarkTheme.value;
7
+ };
8
+ watch(isDarkTheme, () => {
9
+ if (typeof document !== "undefined") {
10
+ document.documentElement.setAttribute(
11
+ "data-theme",
12
+ isDarkTheme.value ? "dark" : "light"
13
+ );
14
+ const body = document.querySelector("body");
15
+ if (body != null) {
16
+ body.style.colorScheme = isDarkTheme.value ? "dark" : "light";
17
+ }
18
+ if (localStorage != null) {
19
+ localStorage.setItem(
20
+ LOCAL_STORAGE_KEY,
21
+ isDarkTheme.value ? "dark" : "light"
22
+ );
23
+ }
24
+ }
25
+ });
26
+ onMounted(() => {
27
+ if (typeof document !== "undefined") {
28
+ const currentTheme = document.documentElement.getAttribute("data-theme");
29
+ if (currentTheme != null) {
30
+ isDarkTheme.value = currentTheme === "dark";
31
+ } else {
32
+ const localStorageTheme = localStorage.getItem(LOCAL_STORAGE_KEY);
33
+ if (localStorageTheme != null) {
34
+ isDarkTheme.value = localStorageTheme === "dark";
35
+ }
36
+ }
37
+ }
38
+ });
39
+ return { isDarkTheme, toggleTheme };
40
+ }
41
+ export {
42
+ useElmethisTheme
43
+ };
@@ -0,0 +1,17 @@
1
+ interface Target {
2
+ char: string;
3
+ status: "typed" | "incorrect" | "current" | "default";
4
+ }
5
+ export declare function useTyping(): {
6
+ start: (target: string) => void;
7
+ targetArray: import('vue').Ref<{
8
+ char: string;
9
+ status: "typed" | "incorrect" | "current" | "default";
10
+ }[], Target[] | {
11
+ char: string;
12
+ status: "typed" | "incorrect" | "current" | "default";
13
+ }[]>;
14
+ isFinished: import('vue').Ref<boolean, boolean>;
15
+ mistakes: import('vue').Ref<number, number>;
16
+ };
17
+ export {};
@@ -0,0 +1,37 @@
1
+ import { onKeyStroke } from "@vueuse/core";
2
+ import { ref } from "vue";
3
+ function useTyping() {
4
+ const targetString = ref(null);
5
+ const targetArray = ref([]);
6
+ const currentCharIndex = ref(0);
7
+ const mistakes = ref(0);
8
+ const isFinished = ref(false);
9
+ const start = (target) => {
10
+ isFinished.value = false;
11
+ currentCharIndex.value = 0;
12
+ targetString.value = target;
13
+ targetArray.value = target.split("").map((char) => ({ char, status: "default" }));
14
+ targetArray.value[0].status = "current";
15
+ };
16
+ onKeyStroke((event) => {
17
+ if (targetArray.value[currentCharIndex.value] != null && !isFinished.value && event.key.length === 1) {
18
+ if (event.key === targetArray.value[currentCharIndex.value].char) {
19
+ targetArray.value[currentCharIndex.value].status = "typed";
20
+ if (currentCharIndex.value === targetArray.value.length - 1) {
21
+ isFinished.value = true;
22
+ } else {
23
+ currentCharIndex.value += 1;
24
+ targetArray.value[currentCharIndex.value] = targetArray.value[currentCharIndex.value];
25
+ targetArray.value[currentCharIndex.value].status = "current";
26
+ }
27
+ } else {
28
+ mistakes.value += 1;
29
+ targetArray.value[currentCharIndex.value].status = "incorrect";
30
+ }
31
+ }
32
+ });
33
+ return { start, targetArray, isFinished, mistakes };
34
+ }
35
+ export {
36
+ useTyping
37
+ };