@aithe/aithe-ui 26.2.3 → 26.3.2

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 (620) hide show
  1. package/README.md +19 -11
  2. package/dist/apps/admin/app.js +12 -0
  3. package/dist/apps/admin/components/admin-app.js +83 -0
  4. package/dist/apps/admin/components/admin-layout.d.ts +0 -1
  5. package/dist/apps/admin/components/admin-layout.d.ts.map +1 -1
  6. package/dist/apps/admin/components/admin-layout.js +250 -0
  7. package/dist/apps/admin/datahub/auth.js +24 -0
  8. package/dist/apps/admin/datahub/dashboard.js +16 -0
  9. package/dist/apps/admin/datahub/index.js +42 -0
  10. package/dist/apps/admin/datahub/menu.js +16 -0
  11. package/dist/apps/admin/datahub/mock/auth.js +11 -0
  12. package/dist/apps/admin/datahub/mock/dashboard.js +10 -0
  13. package/dist/apps/admin/datahub/mock/menu.js +42 -0
  14. package/dist/apps/admin/i18n/de-DE.js +37 -0
  15. package/dist/apps/admin/i18n/en-US.js +37 -0
  16. package/dist/apps/admin/i18n/es-ES.js +38 -0
  17. package/dist/apps/admin/i18n/fr-FR.js +37 -0
  18. package/dist/apps/admin/i18n/index.js +27 -0
  19. package/dist/apps/admin/i18n/ja-JP.js +38 -0
  20. package/dist/apps/admin/i18n/ko-KR.js +37 -0
  21. package/dist/apps/admin/i18n/pt-BR.js +37 -0
  22. package/dist/apps/admin/i18n/zh-CN.js +37 -0
  23. package/dist/apps/admin/i18n/zh-HK.js +37 -0
  24. package/dist/apps/admin/i18n/zh-TW.js +37 -0
  25. package/dist/apps/admin/pages/dashboard-page.d.ts +1 -0
  26. package/dist/apps/admin/pages/dashboard-page.d.ts.map +1 -1
  27. package/dist/apps/admin/pages/dashboard-page.js +199 -0
  28. package/dist/apps/admin/pages/login-page.js +278 -0
  29. package/dist/apps/admin/pages/not-found-page.js +57 -0
  30. package/dist/apps/admin/pages/role-page.js +76 -0
  31. package/dist/apps/admin/pages/settings-page.js +95 -0
  32. package/dist/apps/admin/pages/user-page.js +76 -0
  33. package/dist/apps/admin/router/index.js +43 -0
  34. package/dist/apps/admin/standalone.js +1 -0
  35. package/dist/apps/admin/store/auth.js +42 -0
  36. package/dist/apps/api/app.js +82 -0
  37. package/dist/apps/api/demo-data.d.ts.map +1 -1
  38. package/dist/apps/api/demo-data.js +965 -0
  39. package/dist/apps/api/docs-viewer.js +684 -0
  40. package/dist/apps/api/i18n/de-DE.d.ts.map +1 -1
  41. package/dist/apps/api/i18n/de-DE.js +131 -0
  42. package/dist/apps/api/i18n/en-US.d.ts.map +1 -1
  43. package/dist/apps/api/i18n/en-US.js +141 -0
  44. package/dist/apps/api/i18n/es-ES.d.ts.map +1 -1
  45. package/dist/apps/api/i18n/es-ES.js +131 -0
  46. package/dist/apps/api/i18n/fr-FR.d.ts.map +1 -1
  47. package/dist/apps/api/i18n/fr-FR.js +131 -0
  48. package/dist/apps/api/i18n/index.js +27 -0
  49. package/dist/apps/api/i18n/ja-JP.d.ts.map +1 -1
  50. package/dist/apps/api/i18n/ja-JP.js +131 -0
  51. package/dist/apps/api/i18n/ko-KR.d.ts.map +1 -1
  52. package/dist/apps/api/i18n/ko-KR.js +131 -0
  53. package/dist/apps/api/i18n/pt-BR.d.ts.map +1 -1
  54. package/dist/apps/api/i18n/pt-BR.js +131 -0
  55. package/dist/apps/api/i18n/zh-CN.d.ts.map +1 -1
  56. package/dist/apps/api/i18n/zh-CN.js +141 -0
  57. package/dist/apps/api/i18n/zh-HK.d.ts.map +1 -1
  58. package/dist/apps/api/i18n/zh-HK.js +131 -0
  59. package/dist/apps/api/i18n/zh-TW.d.ts.map +1 -1
  60. package/dist/apps/api/i18n/zh-TW.js +131 -0
  61. package/dist/apps/api/pages/docs.d.ts.map +1 -1
  62. package/dist/apps/api/pages/docs.js +369 -0
  63. package/dist/apps/api/standalone.js +1 -0
  64. package/dist/apps/demo/app.d.ts.map +1 -1
  65. package/dist/apps/demo/app.js +275 -0
  66. package/dist/apps/demo/editor.d.ts.map +1 -1
  67. package/dist/apps/demo/editor.js +270 -0
  68. package/dist/apps/demo/helpers.js +7 -0
  69. package/dist/apps/demo/i18n/de-DE.d.ts.map +1 -1
  70. package/dist/apps/demo/i18n/de-DE.js +289 -0
  71. package/dist/apps/demo/i18n/en-US.d.ts.map +1 -1
  72. package/dist/apps/demo/i18n/en-US.js +301 -0
  73. package/dist/apps/demo/i18n/es-ES.d.ts.map +1 -1
  74. package/dist/apps/demo/i18n/es-ES.js +289 -0
  75. package/dist/apps/demo/i18n/fr-FR.d.ts.map +1 -1
  76. package/dist/apps/demo/i18n/fr-FR.js +289 -0
  77. package/dist/apps/demo/i18n/index.js +27 -0
  78. package/dist/apps/demo/i18n/ja-JP.d.ts.map +1 -1
  79. package/dist/apps/demo/i18n/ja-JP.js +289 -0
  80. package/dist/apps/demo/i18n/ko-KR.d.ts.map +1 -1
  81. package/dist/apps/demo/i18n/ko-KR.js +289 -0
  82. package/dist/apps/demo/i18n/pt-BR.d.ts.map +1 -1
  83. package/dist/apps/demo/i18n/pt-BR.js +289 -0
  84. package/dist/apps/demo/i18n/zh-CN.d.ts.map +1 -1
  85. package/dist/apps/demo/i18n/zh-CN.js +301 -0
  86. package/dist/apps/demo/i18n/zh-HK.d.ts.map +1 -1
  87. package/dist/apps/demo/i18n/zh-HK.js +289 -0
  88. package/dist/apps/demo/i18n/zh-TW.d.ts.map +1 -1
  89. package/dist/apps/demo/i18n/zh-TW.js +289 -0
  90. package/dist/apps/demo/pages/autoform.d.ts.map +1 -1
  91. package/dist/apps/demo/pages/autoform.js +422 -0
  92. package/dist/apps/demo/pages/autoview.d.ts +3 -0
  93. package/dist/apps/demo/pages/autoview.d.ts.map +1 -0
  94. package/dist/apps/demo/pages/autoview.js +310 -0
  95. package/dist/apps/demo/pages/basic.js +157 -0
  96. package/dist/apps/demo/pages/code.js +1088 -0
  97. package/dist/apps/demo/pages/container.js +42 -0
  98. package/dist/apps/demo/pages/dashboard.js +159 -0
  99. package/dist/apps/demo/pages/data.d.ts.map +1 -1
  100. package/dist/apps/demo/pages/data.js +327 -0
  101. package/dist/apps/demo/pages/display.d.ts.map +1 -1
  102. package/dist/apps/demo/pages/display.js +295 -0
  103. package/dist/apps/demo/pages/feedback.js +94 -0
  104. package/dist/apps/demo/pages/form.d.ts.map +1 -1
  105. package/dist/apps/demo/pages/form.js +119 -0
  106. package/dist/apps/demo/pages/layout.js +74 -0
  107. package/dist/apps/demo/pages/navigation.js +54 -0
  108. package/dist/apps/demo/pages/progress.js +42 -0
  109. package/dist/apps/demo/pages/theme.js +126 -0
  110. package/dist/apps/demo/standalone.js +1 -0
  111. package/dist/components/basic/AGENTS.md +1 -0
  112. package/dist/components/basic/avatar.js +168 -0
  113. package/dist/components/basic/badge.js +157 -0
  114. package/dist/components/basic/button-group.js +70 -0
  115. package/dist/components/basic/button.d.ts +2 -4
  116. package/dist/components/basic/button.d.ts.map +1 -1
  117. package/dist/components/basic/button.js +315 -0
  118. package/dist/components/basic/card.js +186 -0
  119. package/dist/components/basic/chip.js +103 -0
  120. package/dist/components/basic/divider.js +127 -0
  121. package/dist/components/basic/empty.js +72 -0
  122. package/dist/components/basic/icon.js +129 -0
  123. package/dist/components/basic/input.d.ts.map +1 -1
  124. package/dist/components/basic/input.js +314 -0
  125. package/dist/components/basic/tag.d.ts +7 -2
  126. package/dist/components/basic/tag.d.ts.map +1 -1
  127. package/dist/components/basic/tag.js +248 -0
  128. package/dist/components/basic/textarea.d.ts +0 -1
  129. package/dist/components/basic/textarea.d.ts.map +1 -1
  130. package/dist/components/basic/textarea.js +130 -0
  131. package/dist/components/container/callout.js +108 -0
  132. package/dist/components/container/details.js +117 -0
  133. package/dist/components/container/scroller.js +144 -0
  134. package/dist/components/container/split-panel.js +150 -0
  135. package/dist/components/data/AGENTS.md +1 -1
  136. package/dist/components/data/box-table.d.ts +53 -0
  137. package/dist/components/data/box-table.d.ts.map +1 -0
  138. package/dist/components/data/box-table.js +220 -0
  139. package/dist/components/data/dropdown.d.ts +8 -5
  140. package/dist/components/data/dropdown.d.ts.map +1 -1
  141. package/dist/components/data/dropdown.js +219 -0
  142. package/dist/components/data/metrics-group.js +180 -0
  143. package/dist/components/data/metrics.d.ts +11 -0
  144. package/dist/components/data/metrics.d.ts.map +1 -1
  145. package/dist/components/data/metrics.js +309 -0
  146. package/dist/components/data/pagination.js +119 -0
  147. package/dist/components/data/tab-pane.d.ts +58 -12
  148. package/dist/components/data/tab-pane.d.ts.map +1 -1
  149. package/dist/components/data/tab-pane.js +130 -0
  150. package/dist/components/data/table-column.d.ts +29 -5
  151. package/dist/components/data/table-column.d.ts.map +1 -1
  152. package/dist/components/data/table-column.js +123 -0
  153. package/dist/components/data/table.d.ts +134 -54
  154. package/dist/components/data/table.d.ts.map +1 -1
  155. package/dist/components/data/table.js +1210 -0
  156. package/dist/components/data/tabs.d.ts +60 -3
  157. package/dist/components/data/tabs.d.ts.map +1 -1
  158. package/dist/components/data/tabs.js +416 -0
  159. package/dist/components/data/timeline-item.js +127 -0
  160. package/dist/components/data/timeline.js +204 -0
  161. package/dist/components/data/tree-menu.d.ts +12 -2
  162. package/dist/components/data/tree-menu.d.ts.map +1 -1
  163. package/dist/components/data/tree-menu.js +482 -0
  164. package/dist/components/data/tree.js +269 -0
  165. package/dist/components/display/AGENTS.md +5 -2
  166. package/dist/components/display/animated-image.js +98 -0
  167. package/dist/components/display/autoview.d.ts +139 -0
  168. package/dist/components/display/autoview.d.ts.map +1 -0
  169. package/dist/components/display/autoview.js +460 -0
  170. package/dist/components/display/brief-box.d.ts +42 -0
  171. package/dist/components/display/brief-box.d.ts.map +1 -0
  172. package/dist/components/display/brief-box.js +117 -0
  173. package/dist/components/display/carousel.js +223 -0
  174. package/dist/components/display/code-editor.d.ts.map +1 -1
  175. package/dist/components/display/code-editor.js +976 -0
  176. package/dist/components/display/comparison.js +132 -0
  177. package/dist/components/display/desc-item.d.ts +48 -0
  178. package/dist/components/display/desc-item.d.ts.map +1 -0
  179. package/dist/components/display/desc-item.js +150 -0
  180. package/dist/components/display/desc.d.ts +68 -0
  181. package/dist/components/display/desc.d.ts.map +1 -0
  182. package/dist/components/display/desc.js +405 -0
  183. package/dist/components/display/detail-box.d.ts +51 -0
  184. package/dist/components/display/detail-box.d.ts.map +1 -0
  185. package/dist/components/display/detail-box.js +157 -0
  186. package/dist/components/display/label.js +166 -0
  187. package/dist/components/display/markdown-editor.js +319 -0
  188. package/dist/components/display/markdown.d.ts.map +1 -1
  189. package/dist/components/display/markdown.js +193 -0
  190. package/dist/components/display/mini-box.d.ts +31 -0
  191. package/dist/components/display/mini-box.d.ts.map +1 -0
  192. package/dist/components/display/mini-box.js +137 -0
  193. package/dist/components/display/profile.d.ts +18 -0
  194. package/dist/components/display/profile.d.ts.map +1 -0
  195. package/dist/components/display/profile.js +164 -0
  196. package/dist/components/feedback/AGENTS.md +1 -0
  197. package/dist/components/feedback/alert.js +150 -0
  198. package/dist/components/feedback/dialog.js +228 -0
  199. package/dist/components/feedback/drawer.d.ts.map +1 -1
  200. package/dist/components/feedback/drawer.js +338 -0
  201. package/dist/components/feedback/loading.js +130 -0
  202. package/dist/components/feedback/modal.d.ts.map +1 -1
  203. package/dist/components/feedback/modal.js +303 -0
  204. package/dist/components/feedback/notification.js +170 -0
  205. package/dist/components/feedback/popover.d.ts +1 -1
  206. package/dist/components/feedback/popover.js +124 -0
  207. package/dist/components/feedback/toast.js +142 -0
  208. package/dist/components/feedback/tooltip.d.ts +1 -1
  209. package/dist/components/feedback/tooltip.js +153 -0
  210. package/dist/components/form/AGENTS.md +4 -0
  211. package/dist/components/form/autoform-item.d.ts +6 -0
  212. package/dist/components/form/autoform-item.d.ts.map +1 -1
  213. package/dist/components/form/autoform-item.js +791 -0
  214. package/dist/components/form/autoform.d.ts +15 -5
  215. package/dist/components/form/autoform.d.ts.map +1 -1
  216. package/dist/components/form/autoform.js +303 -0
  217. package/dist/components/form/checkbox-group.js +118 -0
  218. package/dist/components/form/checkbox.js +123 -0
  219. package/dist/components/form/color-picker.js +148 -0
  220. package/dist/components/form/combobox.d.ts +4 -0
  221. package/dist/components/form/combobox.d.ts.map +1 -1
  222. package/dist/components/form/combobox.js +325 -0
  223. package/dist/components/form/date-picker.js +123 -0
  224. package/dist/components/form/form-item.d.ts.map +1 -1
  225. package/dist/components/form/form-item.js +141 -0
  226. package/dist/components/form/form.js +94 -0
  227. package/dist/components/form/radio-group.js +106 -0
  228. package/dist/components/form/radio.js +110 -0
  229. package/dist/components/form/rate.js +116 -0
  230. package/dist/components/form/select.d.ts +5 -1
  231. package/dist/components/form/select.d.ts.map +1 -1
  232. package/dist/components/form/select.js +539 -0
  233. package/dist/components/form/slider.js +134 -0
  234. package/dist/components/form/switch.js +146 -0
  235. package/dist/components/form/time-picker.js +92 -0
  236. package/dist/components/form/transfer.js +273 -0
  237. package/dist/components/form/upload.js +138 -0
  238. package/dist/components/framework/body.js +333 -0
  239. package/dist/components/framework/dashboard-panel.js +519 -0
  240. package/dist/components/framework/dashboard.d.ts.map +1 -1
  241. package/dist/components/framework/dashboard.js +1084 -0
  242. package/dist/components/framework/header.js +237 -0
  243. package/dist/components/framework/log-panel.js +637 -0
  244. package/dist/components/framework/page.js +151 -0
  245. package/dist/components/framework/sidebar.d.ts +4 -10
  246. package/dist/components/framework/sidebar.d.ts.map +1 -1
  247. package/dist/components/framework/sidebar.js +477 -0
  248. package/dist/components/layout/affix.js +137 -0
  249. package/dist/components/layout/col.js +103 -0
  250. package/dist/components/layout/collapse-item.js +165 -0
  251. package/dist/components/layout/collapse.js +108 -0
  252. package/dist/components/layout/container.js +92 -0
  253. package/dist/components/layout/flex.js +100 -0
  254. package/dist/components/layout/row.js +103 -0
  255. package/dist/components/layout/space.js +85 -0
  256. package/dist/components/navigation/back-top.js +127 -0
  257. package/dist/components/navigation/breadcrumb-item.js +108 -0
  258. package/dist/components/navigation/breadcrumb.js +70 -0
  259. package/dist/components/navigation/menu-item.js +181 -0
  260. package/dist/components/navigation/menu.js +126 -0
  261. package/dist/components/navigation/steps.js +183 -0
  262. package/dist/components/navigation/sub-menu.d.ts.map +1 -1
  263. package/dist/components/navigation/sub-menu.js +252 -0
  264. package/dist/components/progress/progress-bar.js +97 -0
  265. package/dist/components/progress/progress-ring.js +111 -0
  266. package/dist/components/progress/skeleton.js +108 -0
  267. package/dist/components/progress/spinner.js +129 -0
  268. package/dist/components/theme/locale-switch.js +241 -0
  269. package/dist/components/theme/shadow-picker.js +233 -0
  270. package/dist/components/theme/shape-picker.js +232 -0
  271. package/dist/components/theme/theme-picker.js +236 -0
  272. package/dist/components/theme/theme-preview.d.ts +1 -2
  273. package/dist/components/theme/theme-preview.d.ts.map +1 -1
  274. package/dist/components/theme/theme-preview.js +376 -0
  275. package/dist/components/theme/theme-switch.d.ts.map +1 -1
  276. package/dist/components/theme/theme-switch.js +318 -0
  277. package/dist/components/theme/typo-picker.js +219 -0
  278. package/dist/core/AGENTS.md +6 -1
  279. package/dist/core/aithe-element.d.ts +2 -2
  280. package/dist/core/aithe-element.js +135 -0
  281. package/dist/core/aithe-widget.js +30 -0
  282. package/dist/core/anchored-overlay.d.ts +3 -0
  283. package/dist/core/anchored-overlay.d.ts.map +1 -1
  284. package/dist/core/anchored-overlay.js +111 -0
  285. package/dist/core/autoform/autoform.js +79 -0
  286. package/dist/core/autoform/autoview.d.ts +86 -0
  287. package/dist/core/autoform/autoview.d.ts.map +1 -0
  288. package/dist/core/autoform/autoview.js +37 -0
  289. package/dist/core/autoform/condition.js +170 -0
  290. package/dist/core/autoform/index.d.ts +2 -0
  291. package/dist/core/autoform/index.d.ts.map +1 -1
  292. package/dist/core/autoform/index.js +9 -0
  293. package/dist/core/autoform/types.js +7 -0
  294. package/dist/core/datahub/__tests__/force-options.test.d.ts +8 -0
  295. package/dist/core/datahub/__tests__/force-options.test.d.ts.map +1 -0
  296. package/dist/core/datahub/__tests__/force-options.test.js +161 -0
  297. package/dist/core/datahub/config/strategy.d.ts +1 -1
  298. package/dist/core/datahub/config/strategy.d.ts.map +1 -1
  299. package/dist/core/datahub/config/strategy.js +50 -0
  300. package/dist/core/datahub/core/adapter/fetch-adapter.d.ts +1 -1
  301. package/dist/core/datahub/core/adapter/fetch-adapter.d.ts.map +1 -1
  302. package/dist/core/datahub/core/adapter/fetch-adapter.js +118 -0
  303. package/dist/core/datahub/core/adapter/index.js +7 -0
  304. package/dist/core/datahub/core/adapter/mock-adapter.d.ts +1 -1
  305. package/dist/core/datahub/core/adapter/mock-adapter.d.ts.map +1 -1
  306. package/dist/core/datahub/core/adapter/mock-adapter.js +58 -0
  307. package/dist/core/datahub/core/api-styles.d.ts +1 -1
  308. package/dist/core/datahub/core/api-styles.d.ts.map +1 -1
  309. package/dist/core/datahub/core/api-styles.js +136 -0
  310. package/dist/core/datahub/core/datahub-core.d.ts +53 -3
  311. package/dist/core/datahub/core/datahub-core.d.ts.map +1 -1
  312. package/dist/core/datahub/core/datahub-core.js +520 -0
  313. package/dist/core/datahub/core/index.js +7 -0
  314. package/dist/core/datahub/index.js +50 -0
  315. package/dist/core/datahub/types.d.ts +24 -0
  316. package/dist/core/datahub/types.d.ts.map +1 -1
  317. package/dist/core/datahub/types.js +31 -0
  318. package/dist/core/datahub/utils/cache.js +55 -0
  319. package/dist/core/datahub/utils/common.js +23 -0
  320. package/dist/core/datahub/utils/dedup.d.ts +1 -1
  321. package/dist/core/datahub/utils/dedup.d.ts.map +1 -1
  322. package/dist/core/datahub/utils/dedup.js +52 -0
  323. package/dist/core/datahub/utils/idempotent.js +61 -0
  324. package/dist/core/datahub/utils/is-query.js +53 -0
  325. package/dist/core/datahub/utils/loading.js +78 -0
  326. package/dist/core/filter/__tests__/index.test.d.ts +2 -0
  327. package/dist/core/filter/__tests__/index.test.d.ts.map +1 -0
  328. package/dist/core/filter/__tests__/index.test.js +230 -0
  329. package/dist/core/filter/builtins.d.ts +60 -0
  330. package/dist/core/filter/builtins.d.ts.map +1 -0
  331. package/dist/core/filter/builtins.js +172 -0
  332. package/dist/core/filter/factory.d.ts +54 -0
  333. package/dist/core/filter/factory.d.ts.map +1 -0
  334. package/dist/core/filter/factory.js +96 -0
  335. package/dist/core/filter/index.d.ts +11 -0
  336. package/dist/core/filter/index.d.ts.map +1 -0
  337. package/dist/core/filter/index.js +9 -0
  338. package/dist/core/filter/types.d.ts +12 -0
  339. package/dist/core/filter/types.d.ts.map +1 -0
  340. package/dist/core/filter/types.js +1 -0
  341. package/dist/core/floating.js +132 -0
  342. package/dist/core/highlight/index.js +43 -0
  343. package/dist/core/highlight/lang-bash.js +27 -0
  344. package/dist/core/highlight/lang-c.js +27 -0
  345. package/dist/core/highlight/lang-cmake.js +27 -0
  346. package/dist/core/highlight/lang-cpp.js +27 -0
  347. package/dist/core/highlight/lang-css.js +24 -0
  348. package/dist/core/highlight/lang-dart.js +27 -0
  349. package/dist/core/highlight/lang-dockerfile.js +16 -0
  350. package/dist/core/highlight/lang-fsharp.js +23 -0
  351. package/dist/core/highlight/lang-go.js +22 -0
  352. package/dist/core/highlight/lang-html.js +12 -0
  353. package/dist/core/highlight/lang-java.js +22 -0
  354. package/dist/core/highlight/lang-javascript.js +26 -0
  355. package/dist/core/highlight/lang-json.js +13 -0
  356. package/dist/core/highlight/lang-jsonline.js +13 -0
  357. package/dist/core/highlight/lang-jsx.js +30 -0
  358. package/dist/core/highlight/lang-kotlin.js +27 -0
  359. package/dist/core/highlight/lang-latex.js +22 -0
  360. package/dist/core/highlight/lang-lua.js +26 -0
  361. package/dist/core/highlight/lang-makefile.js +22 -0
  362. package/dist/core/highlight/lang-markdown.js +18 -0
  363. package/dist/core/highlight/lang-objectivec.js +24 -0
  364. package/dist/core/highlight/lang-perl.js +30 -0
  365. package/dist/core/highlight/lang-powershell.js +23 -0
  366. package/dist/core/highlight/lang-python.js +27 -0
  367. package/dist/core/highlight/lang-r.js +21 -0
  368. package/dist/core/highlight/lang-ruby.js +29 -0
  369. package/dist/core/highlight/lang-rust.js +24 -0
  370. package/dist/core/highlight/lang-scala.js +26 -0
  371. package/dist/core/highlight/lang-sql.js +21 -0
  372. package/dist/core/highlight/lang-svelte.js +27 -0
  373. package/dist/core/highlight/lang-swift.js +28 -0
  374. package/dist/core/highlight/lang-tsx.js +35 -0
  375. package/dist/core/highlight/lang-typescript.js +31 -0
  376. package/dist/core/highlight/lang-vue.js +29 -0
  377. package/dist/core/highlight/lang-wasm.js +22 -0
  378. package/dist/core/highlight/lang-xml.js +12 -0
  379. package/dist/core/highlight/lang-yaml.js +14 -0
  380. package/dist/core/highlight/registry.js +99 -0
  381. package/dist/core/logger/LoggerCore.js +626 -0
  382. package/dist/core/logger/index.js +10 -0
  383. package/dist/core/logger/types.js +29 -0
  384. package/dist/core/markdown/index.js +20 -0
  385. package/dist/core/markdown/parser.d.ts +2 -0
  386. package/dist/core/markdown/parser.d.ts.map +1 -1
  387. package/dist/core/markdown/parser.js +376 -0
  388. package/dist/core/markdown/plugins.d.ts +2 -1
  389. package/dist/core/markdown/plugins.d.ts.map +1 -1
  390. package/dist/core/markdown/plugins.js +755 -0
  391. package/dist/core/markdown/types.d.ts +5 -0
  392. package/dist/core/markdown/types.d.ts.map +1 -1
  393. package/dist/core/markdown/types.js +7 -0
  394. package/dist/core/router/index.js +244 -0
  395. package/dist/core/styles.js +44 -0
  396. package/dist/core/types.d.ts +52 -3
  397. package/dist/core/types.d.ts.map +1 -1
  398. package/dist/core/types.js +1 -0
  399. package/dist/index.d.ts +9 -0
  400. package/dist/index.d.ts.map +1 -1
  401. package/dist/index.js +3695 -1622
  402. package/dist/index.js.map +1 -1
  403. package/dist/index.umd.js +1844 -758
  404. package/dist/index.umd.js.map +1 -1
  405. package/dist/styles/aithe-ui.d.ts +23 -0
  406. package/dist/styles/aithe-ui.d.ts.map +1 -1
  407. package/dist/styles/aithe-ui.js +185 -0
  408. package/dist/styles/global.css.d.ts +1 -1
  409. package/dist/styles/global.css.d.ts.map +1 -1
  410. package/dist/styles/global.css.js +119 -0
  411. package/dist/styles/i18n/index.js +206 -0
  412. package/dist/styles/i18n/locales/de-DE.d.ts.map +1 -1
  413. package/dist/styles/i18n/locales/de-DE.js +151 -0
  414. package/dist/styles/i18n/locales/en-US.d.ts.map +1 -1
  415. package/dist/styles/i18n/locales/en-US.js +160 -0
  416. package/dist/styles/i18n/locales/es-ES.d.ts.map +1 -1
  417. package/dist/styles/i18n/locales/es-ES.js +151 -0
  418. package/dist/styles/i18n/locales/fr-FR.d.ts.map +1 -1
  419. package/dist/styles/i18n/locales/fr-FR.js +151 -0
  420. package/dist/styles/i18n/locales/index.js +14 -0
  421. package/dist/styles/i18n/locales/ja-JP.d.ts.map +1 -1
  422. package/dist/styles/i18n/locales/ja-JP.js +151 -0
  423. package/dist/styles/i18n/locales/ko-KR.d.ts.map +1 -1
  424. package/dist/styles/i18n/locales/ko-KR.js +151 -0
  425. package/dist/styles/i18n/locales/pt-BR.d.ts.map +1 -1
  426. package/dist/styles/i18n/locales/pt-BR.js +151 -0
  427. package/dist/styles/i18n/locales/zh-CN.d.ts.map +1 -1
  428. package/dist/styles/i18n/locales/zh-CN.js +160 -0
  429. package/dist/styles/i18n/locales/zh-HK.d.ts.map +1 -1
  430. package/dist/styles/i18n/locales/zh-HK.js +151 -0
  431. package/dist/styles/i18n/locales/zh-TW.d.ts.map +1 -1
  432. package/dist/styles/i18n/locales/zh-TW.js +151 -0
  433. package/dist/styles/layout/index.js +88 -0
  434. package/dist/styles/mixins.js +43 -0
  435. package/dist/styles/shadow/cyber.js +19 -0
  436. package/dist/styles/shadow/deep.js +19 -0
  437. package/dist/styles/shadow/diffuse.js +19 -0
  438. package/dist/styles/shadow/flat.js +19 -0
  439. package/dist/styles/shadow/glassmorphism.js +19 -0
  440. package/dist/styles/shadow/index.js +129 -0
  441. package/dist/styles/shadow/neumorphism.js +21 -0
  442. package/dist/styles/shadow/retro.js +19 -0
  443. package/dist/styles/shadow/sharp-business.js +19 -0
  444. package/dist/styles/shadow/skeuomorphic.js +21 -0
  445. package/dist/styles/shape/chamfer.js +19 -0
  446. package/dist/styles/shape/circle.js +19 -0
  447. package/dist/styles/shape/index.js +174 -0
  448. package/dist/styles/shape/organic.js +19 -0
  449. package/dist/styles/shape/pill.js +19 -0
  450. package/dist/styles/shape/rounded.js +21 -0
  451. package/dist/styles/shape/rounder.js +19 -0
  452. package/dist/styles/shape/sharp.js +19 -0
  453. package/dist/styles/shape/smooth.js +19 -0
  454. package/dist/styles/theme/aliyun.d.ts +1 -1
  455. package/dist/styles/theme/aliyun.d.ts.map +1 -1
  456. package/dist/styles/theme/aliyun.js +102 -0
  457. package/dist/styles/theme/amber.d.ts +1 -1
  458. package/dist/styles/theme/amber.d.ts.map +1 -1
  459. package/dist/styles/theme/amber.js +101 -0
  460. package/dist/styles/theme/blue.d.ts +1 -1
  461. package/dist/styles/theme/blue.d.ts.map +1 -1
  462. package/dist/styles/theme/blue.js +101 -0
  463. package/dist/styles/theme/charcoal.d.ts +1 -1
  464. package/dist/styles/theme/charcoal.d.ts.map +1 -1
  465. package/dist/styles/theme/charcoal.js +106 -0
  466. package/dist/styles/theme/cyan.d.ts +1 -1
  467. package/dist/styles/theme/cyan.d.ts.map +1 -1
  468. package/dist/styles/theme/cyan.js +96 -0
  469. package/dist/styles/theme/dark.d.ts +1 -1
  470. package/dist/styles/theme/dark.d.ts.map +1 -1
  471. package/dist/styles/theme/dark.js +106 -0
  472. package/dist/styles/theme/ebony.d.ts +1 -1
  473. package/dist/styles/theme/ebony.d.ts.map +1 -1
  474. package/dist/styles/theme/ebony.js +106 -0
  475. package/dist/styles/theme/festive.d.ts +1 -1
  476. package/dist/styles/theme/festive.d.ts.map +1 -1
  477. package/dist/styles/theme/festive.js +101 -0
  478. package/dist/styles/theme/graphite.d.ts +1 -1
  479. package/dist/styles/theme/graphite.d.ts.map +1 -1
  480. package/dist/styles/theme/graphite.js +106 -0
  481. package/dist/styles/theme/gray.d.ts +1 -1
  482. package/dist/styles/theme/gray.d.ts.map +1 -1
  483. package/dist/styles/theme/gray.js +101 -0
  484. package/dist/styles/theme/huawei.d.ts +1 -1
  485. package/dist/styles/theme/huawei.d.ts.map +1 -1
  486. package/dist/styles/theme/huawei.js +102 -0
  487. package/dist/styles/theme/index.d.ts +1 -1
  488. package/dist/styles/theme/index.d.ts.map +1 -1
  489. package/dist/styles/theme/index.js +276 -0
  490. package/dist/styles/theme/indigo.d.ts +1 -1
  491. package/dist/styles/theme/indigo.d.ts.map +1 -1
  492. package/dist/styles/theme/indigo.js +101 -0
  493. package/dist/styles/theme/ink.d.ts +1 -1
  494. package/dist/styles/theme/ink.d.ts.map +1 -1
  495. package/dist/styles/theme/ink.js +106 -0
  496. package/dist/styles/theme/light.d.ts +1 -1
  497. package/dist/styles/theme/light.d.ts.map +1 -1
  498. package/dist/styles/theme/light.js +102 -0
  499. package/dist/styles/theme/midnight.d.ts +1 -1
  500. package/dist/styles/theme/midnight.d.ts.map +1 -1
  501. package/dist/styles/theme/midnight.js +106 -0
  502. package/dist/styles/theme/navy.d.ts +1 -1
  503. package/dist/styles/theme/navy.d.ts.map +1 -1
  504. package/dist/styles/theme/navy.js +106 -0
  505. package/dist/styles/theme/obsidian.d.ts +1 -1
  506. package/dist/styles/theme/obsidian.d.ts.map +1 -1
  507. package/dist/styles/theme/obsidian.js +106 -0
  508. package/dist/styles/theme/onyx.d.ts +1 -1
  509. package/dist/styles/theme/onyx.d.ts.map +1 -1
  510. package/dist/styles/theme/onyx.js +106 -0
  511. package/dist/styles/theme/orange.d.ts +1 -1
  512. package/dist/styles/theme/orange.d.ts.map +1 -1
  513. package/dist/styles/theme/orange.js +101 -0
  514. package/dist/styles/theme/pink.d.ts +1 -1
  515. package/dist/styles/theme/pink.d.ts.map +1 -1
  516. package/dist/styles/theme/pink.js +101 -0
  517. package/dist/styles/theme/purple.d.ts +1 -1
  518. package/dist/styles/theme/purple.d.ts.map +1 -1
  519. package/dist/styles/theme/purple.js +101 -0
  520. package/dist/styles/theme/raisin.d.ts +1 -1
  521. package/dist/styles/theme/raisin.d.ts.map +1 -1
  522. package/dist/styles/theme/raisin.js +106 -0
  523. package/dist/styles/theme/slate.d.ts +1 -1
  524. package/dist/styles/theme/slate.d.ts.map +1 -1
  525. package/dist/styles/theme/slate.js +106 -0
  526. package/dist/styles/theme/teal.d.ts +1 -1
  527. package/dist/styles/theme/teal.d.ts.map +1 -1
  528. package/dist/styles/theme/teal.js +101 -0
  529. package/dist/styles/theme/tianyi.d.ts +1 -1
  530. package/dist/styles/theme/tianyi.d.ts.map +1 -1
  531. package/dist/styles/theme/tianyi.js +102 -0
  532. package/dist/styles/types.js +1 -0
  533. package/dist/styles/typo/business.js +34 -0
  534. package/dist/styles/typo/compact.js +34 -0
  535. package/dist/styles/typo/index.js +99 -0
  536. package/dist/styles/typo/luxury.js +34 -0
  537. package/dist/styles/typo/minimal.js +34 -0
  538. package/dist/types/index.js +2 -0
  539. package/dist/utils/dom.js +51 -0
  540. package/dist/utils/events.js +32 -0
  541. package/dist/utils/icon.js +176 -0
  542. package/dist/utils/index.js +4 -0
  543. package/dist/utils/utils.d.ts +5 -5
  544. package/dist/utils/utils.js +89 -0
  545. package/dist/utils/validation.js +52 -0
  546. package/docs/api/basic/button.md +9 -6
  547. package/docs/api/basic/tag.md +24 -17
  548. package/docs/api/data/box-table.md +73 -0
  549. package/docs/api/data/dropdown.md +3 -2
  550. package/docs/api/data/metrics.md +2 -0
  551. package/docs/api/data/table-column.md +37 -23
  552. package/docs/api/data/table.md +158 -44
  553. package/docs/api/data/tabs.md +46 -1
  554. package/docs/api/data/tree-menu.md +55 -2
  555. package/docs/api/display/autoview.md +277 -0
  556. package/docs/api/display/box.md +66 -0
  557. package/docs/api/display/brief-box.md +73 -0
  558. package/docs/api/display/desc-item.md +57 -0
  559. package/docs/api/display/desc.md +246 -0
  560. package/docs/api/display/detail-box.md +75 -0
  561. package/docs/api/display/mini-box.md +100 -0
  562. package/docs/api/display/profile.md +92 -0
  563. package/docs/api/feedback/popover.md +10 -10
  564. package/docs/api/feedback/tooltip.md +14 -14
  565. package/docs/api/form/autoform-item.md +115 -0
  566. package/docs/api/form/autoform.md +7 -3
  567. package/docs/api/form/combobox.md +27 -7
  568. package/docs/api/form/select.md +50 -28
  569. package/docs/api/framework/log-panel.md +46 -0
  570. package/docs/api/framework/sidebar.md +3 -2
  571. package/docs/api/summary.md +46 -35
  572. package/docs/api/theme/theme-switch.md +1 -1
  573. package/docs/autoform.md +14 -33
  574. package/docs/changelog/CHANGELOG.md +155 -0
  575. package/docs/changelog/VERSION_26.3.1.md +966 -0
  576. package/docs/changelog/VERSION_26.3.2.md +852 -0
  577. package/docs/datahub.md +4 -1
  578. package/docs/filter.md +332 -0
  579. package/docs/framework-integration.md +2 -2
  580. package/docs/guide.md +72 -6
  581. package/docs/i18n.md +2 -4
  582. package/docs/issue/26.3.1/issue_26.3.1.0.md +84 -0
  583. package/docs/issue/26.3.1/issue_26.3.1.1.md +72 -0
  584. package/docs/issue/26.3.1/issue_26.3.1.2.md +75 -0
  585. package/docs/issue/26.3.1/issue_26.3.1.3.md +78 -0
  586. package/docs/issue/26.3.1/issue_26.3.1.4.md +113 -0
  587. package/docs/issue/26.3.1/issue_26.3.1.5.md +142 -0
  588. package/docs/issue/26.3.1/issue_26.3.1.6.md +100 -0
  589. package/docs/issue/26.3.1/issue_26.3.1.7.md +78 -0
  590. package/docs/issue/26.3.2/issue_26.3.2.1.md +46 -0
  591. package/docs/issue/26.3.2/issue_26.3.2.2.md +82 -0
  592. package/docs/issue/26.3.2/issue_26.3.2.3.md +57 -0
  593. package/docs/issue/26.3.2/issue_26.3.2.4.md +43 -0
  594. package/docs/issue/AGENTS.md +24 -3
  595. package/docs/markdown.md +2 -2
  596. package/docs/quickstart.md +5 -5
  597. package/docs/theming.md +5 -4
  598. package/package.json +5 -2
  599. package/dist/components/navigation/dropdown.d.ts +0 -56
  600. package/dist/components/navigation/dropdown.d.ts.map +0 -1
  601. /package/docs/issue/{issue_26.2.2.1.md → 26.2.2/issue_26.2.2.1.md} +0 -0
  602. /package/docs/issue/{issue_26.2.2.2.md → 26.2.2/issue_26.2.2.2.md} +0 -0
  603. /package/docs/issue/{issue_26.2.2.3.md → 26.2.2/issue_26.2.2.3.md} +0 -0
  604. /package/docs/issue/{issue_26.2.2.4.md → 26.2.2/issue_26.2.2.4.md} +0 -0
  605. /package/docs/issue/{issue_26.2.3.1.md → 26.2.3/issue_26.2.3.1.md} +0 -0
  606. /package/docs/issue/{issue_26.2.3.10.md → 26.2.3/issue_26.2.3.10.md} +0 -0
  607. /package/docs/issue/{issue_26.2.3.11.md → 26.2.3/issue_26.2.3.11.md} +0 -0
  608. /package/docs/issue/{issue_26.2.3.12.md → 26.2.3/issue_26.2.3.12.md} +0 -0
  609. /package/docs/issue/{issue_26.2.3.13.md → 26.2.3/issue_26.2.3.13.md} +0 -0
  610. /package/docs/issue/{issue_26.2.3.14.md → 26.2.3/issue_26.2.3.14.md} +0 -0
  611. /package/docs/issue/{issue_26.2.3.15.md → 26.2.3/issue_26.2.3.15.md} +0 -0
  612. /package/docs/issue/{issue_26.2.3.16.md → 26.2.3/issue_26.2.3.16.md} +0 -0
  613. /package/docs/issue/{issue_26.2.3.2.md → 26.2.3/issue_26.2.3.2.md} +0 -0
  614. /package/docs/issue/{issue_26.2.3.3.md → 26.2.3/issue_26.2.3.3.md} +0 -0
  615. /package/docs/issue/{issue_26.2.3.4.md → 26.2.3/issue_26.2.3.4.md} +0 -0
  616. /package/docs/issue/{issue_26.2.3.5.md → 26.2.3/issue_26.2.3.5.md} +0 -0
  617. /package/docs/issue/{issue_26.2.3.6.md → 26.2.3/issue_26.2.3.6.md} +0 -0
  618. /package/docs/issue/{issue_26.2.3.7.md → 26.2.3/issue_26.2.3.7.md} +0 -0
  619. /package/docs/issue/{issue_26.2.3.8.md → 26.2.3/issue_26.2.3.8.md} +0 -0
  620. /package/docs/issue/{issue_26.2.3.9.md → 26.2.3/issue_26.2.3.9.md} +0 -0
@@ -0,0 +1,166 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { css, html } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
10
+ import { AitheElement } from '../../core/aithe-element';
11
+ import { aitheBaseStyles } from '../../core/styles';
12
+ import { SimpleMarkdownParser } from '../../core/markdown/parser';
13
+ /**
14
+ * Default link hook: blocks all external links (http/https/ftp/absolute paths).
15
+ * External URLs are converted to plain text for security.
16
+ * 默认 link hook:阻止所有外部链接(http/https/ftp/绝对路径)。
17
+ * 外部 URL 会被转为纯文本以确保安全。
18
+ */
19
+ const defaultLinkHook = (url) => {
20
+ if (/^(?:https?:|ftp:|\/\/)/i.test(url))
21
+ return '';
22
+ return url;
23
+ };
24
+ /**
25
+ * Creates a SimpleMarkdownParser instance with the default link hook
26
+ * prepended before any user-provided hooks.
27
+ * 创建一个 SimpleMarkdownParser 实例,将默认 link hook 置于用户自定义 hooks 之前。
28
+ */
29
+ function createParser(hooks) {
30
+ const parser = new SimpleMarkdownParser();
31
+ parser.addLinkHook(defaultLinkHook);
32
+ if (hooks) {
33
+ for (const hook of hooks) {
34
+ parser.addLinkHook(hook);
35
+ }
36
+ }
37
+ return parser;
38
+ }
39
+ /**
40
+ * Lightweight label component that renders a Markdown subset for descriptions and labels.
41
+ * 轻量级标签组件,渲染 Markdown 子集用于描述和标签展示。
42
+ *
43
+ * Supported syntax / 支持的语法:
44
+ * - `**text**` — bold 加粗
45
+ * - `~~text~~` — strikethrough 删除线
46
+ * - `` `code` `` — inline code 行内代码
47
+ * - `[text](path)` — internal link 站内链接(外链默认转为纯文本,可通过 linkHooks 自定义)
48
+ * - `:emoji_name:` — Emoji shortcode 表情简码(如 `:smile:` `:check:`)
49
+ * - `:iconName:` — built-in icon via `<aithe-icon>` 内置图标
50
+ *
51
+ * @slot - No slots; content is provided via the `content` property. 无插槽;内容通过 `content` 属性提供。
52
+ * @property {string} content - Markdown source text. Markdown 源文本。
53
+ * @property {MarkdownLinkHook[]} [linkHooks] - Custom link hooks for URL processing. 自定义链接处理 hook。
54
+ *
55
+ * @example
56
+ * ```html
57
+ * <aithe-label content="**Bold** and `code`."></aithe-label>
58
+ * <aithe-label content=":check: 已完成"></aithe-label>
59
+ * <aithe-label content=":smile: 很高兴见到你"></aithe-label>
60
+ * ```
61
+ */
62
+ let AitheLabel = class AitheLabel extends AitheElement {
63
+ constructor() {
64
+ super(...arguments);
65
+ /** Markdown source text. Markdown 源文本。 */
66
+ this.content = '';
67
+ }
68
+ /**
69
+ * Lazily creates or re-creates the parser when linkHooks changes.
70
+ * Caches the parser instance to avoid re-parsing on every render.
71
+ * 懒创建解析器,当 linkHooks 变化时重新创建。
72
+ * 缓存解析器实例以避免每次渲染都重新解析。
73
+ */
74
+ get parser() {
75
+ if (!this._parser || this._linkHooks !== this.linkHooks) {
76
+ this._parser = createParser(this.linkHooks);
77
+ this._linkHooks = this.linkHooks;
78
+ }
79
+ return this._parser;
80
+ }
81
+ static { this.styles = [
82
+ aitheBaseStyles,
83
+ css `
84
+ :host {
85
+ display: block;
86
+ line-height: 1.6;
87
+ color: var(--aithe-color-text);
88
+ }
89
+
90
+ /* Size variants: small / medium / large */
91
+ :host(:where([size='sm'])) {
92
+ font-size: var(--aithe-font-size-sm, 12px);
93
+ }
94
+
95
+ :host(:where([size='md'])) {
96
+ font-size: var(--aithe-font-size-md, 14px);
97
+ }
98
+
99
+ :host(:where([size='lg'])) {
100
+ font-size: var(--aithe-font-size-lg, 16px);
101
+ }
102
+
103
+ .label :where(.md-list, .md-blockquote) {
104
+ margin: 0 0 var(--aithe-space-2);
105
+ }
106
+
107
+ .label .md-list:last-child,
108
+ .label .md-blockquote:last-child {
109
+ margin-bottom: 0;
110
+ }
111
+
112
+ .label .md-list {
113
+ padding-left: var(--aithe-space-5);
114
+ list-style: disc;
115
+ }
116
+
117
+ .label .md-code {
118
+ font-family: var(--aithe-font-family-mono);
119
+ padding: 1px 4px;
120
+ border-radius: 3px;
121
+ background: var(--aithe-color-bg-muted, #f1f5f9);
122
+ color: var(--aithe-primary-7, #c7254e);
123
+ font-size: 0.9em;
124
+ }
125
+
126
+ .label .md-blockquote {
127
+ padding-left: var(--aithe-space-3);
128
+ border-left: 3px solid var(--aithe-primary-5);
129
+ color: var(--aithe-color-text-muted);
130
+ }
131
+
132
+ .label .md-link {
133
+ color: var(--aithe-primary-6);
134
+ text-decoration: none;
135
+ }
136
+
137
+ .label .md-link:hover {
138
+ text-decoration: underline;
139
+ }
140
+
141
+ .label .md-del {
142
+ color: var(--aithe-color-text-muted);
143
+ }
144
+ `,
145
+ ]; }
146
+ /**
147
+ * Renders the label by parsing the markdown content into HTML
148
+ * and injecting it into the DOM via unsafeHTML.
149
+ * 渲染标签:将 markdown 内容解析为 HTML 并通过 unsafeHTML 注入到 DOM 中。
150
+ */
151
+ render() {
152
+ return html `
153
+ <div class="label">${unsafeHTML(this.parser.parse(this.content))}</div>
154
+ `;
155
+ }
156
+ };
157
+ __decorate([
158
+ property({ type: String })
159
+ ], AitheLabel.prototype, "content", void 0);
160
+ __decorate([
161
+ property({ attribute: false })
162
+ ], AitheLabel.prototype, "linkHooks", void 0);
163
+ AitheLabel = __decorate([
164
+ customElement('aithe-label')
165
+ ], AitheLabel);
166
+ export { AitheLabel };
@@ -0,0 +1,319 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { css, html } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
10
+ import { AitheElement } from '../../core/aithe-element';
11
+ import { aitheBaseStyles } from '../../core/styles';
12
+ import { FullMarkdownParser } from '../../core/markdown/parser';
13
+ /**
14
+ * Shared FullMarkdownParser singleton used by all markdown-editor instances.
15
+ * Parsing is stateless so a single instance is safe and memory-efficient.
16
+ * 所有 markdown-editor 实例共享的 FullMarkdownParser 单例。
17
+ * 解析是无状态的,因此单例既安全又节省内存。
18
+ */
19
+ const parser = new FullMarkdownParser();
20
+ /**
21
+ * Markdown editor component built on top of `aithe-code-editor`.
22
+ * Features a live preview pane that renders markdown in real-time.
23
+ * The toolbar includes a toggle button to switch between code-only
24
+ * and code+preview modes.
25
+ *
26
+ * 基于 `aithe-code-editor` 定制的 Markdown 编辑器。
27
+ * 集成实时预览面板,代码变更时即时渲染。
28
+ * 工具栏提供切换按钮,在纯代码和代码+预览模式间切换。
29
+ *
30
+ * @slot - No slots; content is provided via the `value` property. 无插槽;内容通过 `value` 属性提供。
31
+ * @property {string} value - Markdown source text. Markdown 源文本。
32
+ * @property {boolean} showToolbar - Whether the toolbar is visible. 是否显示工具栏。
33
+ * @property {boolean} showTheme - Whether to show the theme picker in toolbar. 是否显示主题选择器。
34
+ * @property {boolean} lineNumbers - Whether to show line numbers. 是否显示行号。
35
+ * @property {boolean} readonly - Whether the editor is read-only. 是否只读。
36
+ * @property {string} placeholder - Placeholder text when the editor is empty. 编辑器为空时的占位文本。
37
+ * @property {boolean} showLanguage - Whether to show the language selector. 是否显示语言选择器。
38
+ * @property {boolean} showFullscreen - Whether to show the fullscreen button. 是否显示全屏按钮。
39
+ * @property {boolean} showCopy - Whether to show the copy button. 是否显示复制按钮。
40
+ * @property {boolean} showLineNumbersToggle - Whether to show the line numbers toggle button. 是否显示行号切换按钮。
41
+ * @property {PreviewStrategy} previewStrategy - Preview update strategy (auto or throttled). 预览刷新策略。
42
+ *
43
+ * @fires aithe-input - Dispatched when the markdown value changes. 当 Markdown 值变化时触发。
44
+ *
45
+ * @example
46
+ * ```html
47
+ * <aithe-markdown-editor value="# Hello" show-toolbar></aithe-markdown-editor>
48
+ * ```
49
+ */
50
+ let AitheMarkdownEditor = class AitheMarkdownEditor extends AitheElement {
51
+ constructor() {
52
+ super(...arguments);
53
+ /** Markdown source text. Markdown 源文本。 */
54
+ this.value = '';
55
+ /** Whether the toolbar is visible. 是否显示工具栏。 */
56
+ this.showToolbar = false;
57
+ /** Whether to show the theme picker in toolbar. 是否显示主题选择器。 */
58
+ this.showTheme = true;
59
+ /** Whether to show line numbers. 是否显示行号。 */
60
+ this.lineNumbers = true;
61
+ /** Whether the editor is read-only. 是否只读。 */
62
+ this.readonly = false;
63
+ /** Placeholder text when the editor is empty. 编辑器为空时的占位文本。 */
64
+ this.placeholder = '';
65
+ /** Whether to show the language selector in toolbar. 是否显示语言选择器。 */
66
+ /**
67
+
68
+ * Note: For markdown editing, language is fixed to "markdown",
69
+ * so the language selector is typically hidden.
70
+ * 注意:Markdown 编辑时语言固定为 "markdown",因此语言选择器通常隐藏。
71
+ */
72
+ this.showLanguage = false;
73
+ /** Whether to show the fullscreen button in toolbar. 是否显示全屏按钮。 */
74
+ this.showFullscreen = true;
75
+ /** Whether to show the copy button in toolbar. 是否显示复制按钮。 */
76
+ this.showCopy = true;
77
+ /** Whether to show the line numbers toggle button in toolbar. 是否显示行号切换按钮。 */
78
+ this.showLineNumbersToggle = true;
79
+ /**
80
+ * Preview update strategy.
81
+ * 预览刷新策略。
82
+ *
83
+ * - `'auto'`: Re-render preview on every change (default).
84
+ * - `{ changeCount: N }`: Re-render preview only after every N changes.
85
+ * - `{ updateSeconds: N }`: Re-render preview at most once every N seconds.
86
+ * - `{ changeCount: N, updateSeconds: M }`: Both conditions must be met.
87
+ */
88
+ this.previewStrategy = 'auto';
89
+ /** Counter for changeCount-based throttling. 基于变更次数的节流计数器。 */
90
+ this._changeCount = 0;
91
+ /** Timestamp of the last preview render (for time-based throttling). 上次预览渲染的时间戳(用于基于时间的节流)。 */
92
+ this._lastRenderTime = 0;
93
+ /** Cached preview HTML to avoid re-parsing when throttled. 缓存的预览 HTML,节流时避免重复解析。 */
94
+ this._cachedPreview = '';
95
+ }
96
+ /**
97
+ * Returns true when a non-auto strategy is configured.
98
+ * 当配置了非 auto 策略时返回 true。
99
+ */
100
+ get _shouldThrottle() {
101
+ if (this.previewStrategy === 'auto')
102
+ return false;
103
+ return true;
104
+ }
105
+ /**
106
+ * Schedules a preview update based on the configured strategy.
107
+ * If conditions are met, invalidates the cache and triggers re-render.
108
+ * Otherwise, caches the current parse result for immediate use.
109
+ * 根据配置的策略调度预览更新。
110
+ * 如果条件满足,使缓存失效并触发重新渲染。
111
+ * 否则,缓存当前解析结果供即时使用。
112
+ */
113
+ _schedulePreview() {
114
+ if (this.previewStrategy === 'auto') {
115
+ this._cachedPreview = '';
116
+ return;
117
+ }
118
+ const strategy = this.previewStrategy;
119
+ const now = Date.now();
120
+ let ready = true;
121
+ // Check change-count condition
122
+ if (strategy.changeCount) {
123
+ this._changeCount++;
124
+ if (this._changeCount < strategy.changeCount) {
125
+ ready = false;
126
+ }
127
+ else {
128
+ this._changeCount = 0;
129
+ }
130
+ }
131
+ // Check time-throttle condition
132
+ if (strategy.updateSeconds) {
133
+ if (now - this._lastRenderTime < strategy.updateSeconds * 1000) {
134
+ ready = false;
135
+ }
136
+ }
137
+ if (ready) {
138
+ // Conditions met: invalidate cache and re-render
139
+ this._cachedPreview = '';
140
+ this._lastRenderTime = now;
141
+ this.requestUpdate();
142
+ }
143
+ else {
144
+ // Throttled: cache the current parse result
145
+ this._cachedPreview = parser.parse(this.value);
146
+ }
147
+ }
148
+ /**
149
+ * Returns the preview HTML, using the cached version if throttling is active.
150
+ * 返回预览 HTML,如果节流生效则使用缓存版本。
151
+ */
152
+ _getPreview() {
153
+ if (this._shouldThrottle && this._cachedPreview) {
154
+ return this._cachedPreview;
155
+ }
156
+ return parser.parse(this.value);
157
+ }
158
+ static { this.styles = [
159
+ aitheBaseStyles,
160
+ css `
161
+ :host {
162
+ display: block;
163
+ }
164
+
165
+ /* Preview pane markdown styling — mirrors markdown.ts styles */
166
+ .md-preview {
167
+ color: var(--aithe-color-text);
168
+ }
169
+
170
+ .md-preview :where(.md-heading) {
171
+ margin: 0 0 var(--aithe-space-3);
172
+ }
173
+
174
+ .md-preview :where(.md-p, .md-list, .md-blockquote, .md-code-fence) {
175
+ margin: 0 0 var(--aithe-space-4);
176
+ }
177
+
178
+ .md-preview .md-code-fence {
179
+ display: block;
180
+ }
181
+
182
+ .md-preview .md-code {
183
+ font-family: var(--aithe-font-family-mono);
184
+ padding: 1px 4px;
185
+ border-radius: 3px;
186
+ background: var(--aithe-color-bg-muted, #f1f5f9);
187
+ color: var(--aithe-primary-7, #c7254e);
188
+ font-size: 0.9em;
189
+ }
190
+
191
+ .md-preview .md-blockquote {
192
+ padding-left: var(--aithe-space-4);
193
+ border-left: 3px solid var(--aithe-primary-5);
194
+ color: var(--aithe-color-text-muted);
195
+ }
196
+
197
+ .md-preview .md-link {
198
+ color: var(--aithe-primary-6);
199
+ }
200
+
201
+ .md-preview .md-table {
202
+ border-collapse: collapse;
203
+ width: 100%;
204
+ margin-bottom: var(--aithe-space-4);
205
+ }
206
+
207
+ .md-preview .md-table th,
208
+ .md-preview .md-table td {
209
+ border: 1px solid var(--aithe-color-border, #e2e8f0);
210
+ padding: var(--aithe-space-2) var(--aithe-space-3);
211
+ text-align: left;
212
+ }
213
+
214
+ .md-preview .md-table th {
215
+ background: var(--aithe-color-bg-muted, #f8fafc);
216
+ font-weight: 600;
217
+ }
218
+
219
+ .md-preview .md-hr {
220
+ border: none;
221
+ border-top: 1px solid var(--aithe-color-border, #e2e8f0);
222
+ margin: var(--aithe-space-4) 0;
223
+ }
224
+
225
+ .md-preview .md-image {
226
+ max-width: 100%;
227
+ height: auto;
228
+ border-radius: var(--aithe-container-radius-md, 6px);
229
+ }
230
+
231
+ /* Placeholder shown when the editor is empty */
232
+ .preview-placeholder {
233
+ padding: 24px;
234
+ text-align: center;
235
+ color: var(--aithe-color-text-muted, #94a3b8);
236
+ font-size: 14px;
237
+ }
238
+ `,
239
+ ]; }
240
+ /**
241
+ * Handles the aithe-input event from the underlying code-editor.
242
+ * Updates the value property, emits aithe-input, and schedules a preview refresh.
243
+ * 处理底层 code-editor 的 aithe-input 事件。
244
+ * 更新 value 属性,触发 aithe-input 事件,并调度预览刷新。
245
+ */
246
+ handleValueChange(e) {
247
+ this.value = e.detail.value;
248
+ this.emit('aithe-input', { value: this.value });
249
+ this._schedulePreview();
250
+ }
251
+ /**
252
+ * Renders the markdown editor by composing an aithe-code-editor
253
+ * with a preview slot that displays the parsed HTML.
254
+ * 渲染 markdown 编辑器:组合 aithe-code-editor 和预览插槽,显示解析后的 HTML。
255
+ */
256
+ render() {
257
+ const previewContent = this.value
258
+ ? unsafeHTML(this._getPreview())
259
+ : html `
260
+ <div class="preview-placeholder">预览区域</div>
261
+ `;
262
+ return html `
263
+ <aithe-code-editor
264
+ language="markdown"
265
+ .value=${this.value}
266
+ ?show-toolbar=${this.showToolbar}
267
+ ?line-numbers=${this.lineNumbers}
268
+ ?readonly=${this.readonly}
269
+ placeholder=${this.placeholder}
270
+ show-preview
271
+ ?show-theme=${this.showTheme}
272
+ ?show-language=${this.showLanguage}
273
+ ?show-fullscreen=${this.showFullscreen}
274
+ ?show-copy=${this.showCopy}
275
+ ?show-line-numbers-toggle=${this.showLineNumbersToggle}
276
+ @aithe-input=${this.handleValueChange}
277
+ >
278
+ <div slot="preview" class="md-preview">${previewContent}</div>
279
+ </aithe-code-editor>
280
+ `;
281
+ }
282
+ };
283
+ __decorate([
284
+ property({ type: String })
285
+ ], AitheMarkdownEditor.prototype, "value", void 0);
286
+ __decorate([
287
+ property({ type: Boolean, attribute: 'show-toolbar' })
288
+ ], AitheMarkdownEditor.prototype, "showToolbar", void 0);
289
+ __decorate([
290
+ property({ type: Boolean, attribute: 'show-theme' })
291
+ ], AitheMarkdownEditor.prototype, "showTheme", void 0);
292
+ __decorate([
293
+ property({ type: Boolean, attribute: 'line-numbers' })
294
+ ], AitheMarkdownEditor.prototype, "lineNumbers", void 0);
295
+ __decorate([
296
+ property({ type: Boolean, reflect: true })
297
+ ], AitheMarkdownEditor.prototype, "readonly", void 0);
298
+ __decorate([
299
+ property({ type: String })
300
+ ], AitheMarkdownEditor.prototype, "placeholder", void 0);
301
+ __decorate([
302
+ property({ type: Boolean, attribute: 'show-language' })
303
+ ], AitheMarkdownEditor.prototype, "showLanguage", void 0);
304
+ __decorate([
305
+ property({ type: Boolean, attribute: 'show-fullscreen' })
306
+ ], AitheMarkdownEditor.prototype, "showFullscreen", void 0);
307
+ __decorate([
308
+ property({ type: Boolean, attribute: 'show-copy' })
309
+ ], AitheMarkdownEditor.prototype, "showCopy", void 0);
310
+ __decorate([
311
+ property({ type: Boolean, attribute: 'show-line-numbers-toggle' })
312
+ ], AitheMarkdownEditor.prototype, "showLineNumbersToggle", void 0);
313
+ __decorate([
314
+ property({ type: Object })
315
+ ], AitheMarkdownEditor.prototype, "previewStrategy", void 0);
316
+ AitheMarkdownEditor = __decorate([
317
+ customElement('aithe-markdown-editor')
318
+ ], AitheMarkdownEditor);
319
+ export { AitheMarkdownEditor };
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/components/display/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA6BvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBACa,aAAc,SAAQ,YAAY;IAC7C,mDAAmD;IACvB,OAAO,SAAM;IAEzC,0DAA0D;IAC1B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE/D;;;;;OAKG;IACH,OAAO,KAAK,MAAM,GAMjB;IAED,qEAAqE;IACrE,OAAO,CAAC,OAAO,CAAC,CAAqB;IAErC,4FAA4F;IAC5F,OAAO,CAAC,UAAU,CAAC,CAAqB;IAExC,MAAM,CAAC,QAAQ,CAAC,MAAM,0DAgFpB;IAEF;;;;OAIG;IACH,MAAM;CAKP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/components/display/markdown.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA6BvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBACa,aAAc,SAAQ,YAAY;IAC7C,mDAAmD;IACvB,OAAO,SAAM;IAEzC,0DAA0D;IAC1B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAE/D;;;;;OAKG;IACH,OAAO,KAAK,MAAM,GAMjB;IAED,qEAAqE;IACrE,OAAO,CAAC,OAAO,CAAC,CAAqB;IAErC,4FAA4F;IAC5F,OAAO,CAAC,UAAU,CAAC,CAAqB;IAExC,MAAM,CAAC,QAAQ,CAAC,MAAM,0DAqFpB;IAEF;;;;OAIG;IACH,MAAM;CAKP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}
@@ -0,0 +1,193 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { css, html } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
10
+ import { AitheElement } from '../../core/aithe-element';
11
+ import { aitheBaseStyles } from '../../core/styles';
12
+ import { FullMarkdownParser } from '../../core/markdown/parser';
13
+ /**
14
+ * Default link hook: blocks all external links (http/https/ftp/absolute paths).
15
+ * External URLs are converted to plain text for security.
16
+ * 默认 link hook:阻止所有外部链接(http/https/ftp/绝对路径)。
17
+ * 外部 URL 会被转为纯文本以确保安全。
18
+ */
19
+ const defaultLinkHook = (url) => {
20
+ if (/^(?:https?:|ftp:|\/\/)/i.test(url))
21
+ return '';
22
+ return url;
23
+ };
24
+ /**
25
+ * Creates a FullMarkdownParser instance with the default link hook
26
+ * prepended before any user-provided hooks.
27
+ * 创建一个 FullMarkdownParser 实例,将默认 link hook 置于用户自定义 hooks 之前。
28
+ */
29
+ function createParser(hooks) {
30
+ const parser = new FullMarkdownParser();
31
+ parser.addLinkHook(defaultLinkHook);
32
+ if (hooks) {
33
+ for (const hook of hooks) {
34
+ parser.addLinkHook(hook);
35
+ }
36
+ }
37
+ return parser;
38
+ }
39
+ /**
40
+ * Full-featured markdown renderer that converts GFM markdown text to styled HTML.
41
+ * 全功能 Markdown 渲染器,将 GFM Markdown 文本转换为带样式的 HTML。
42
+ *
43
+ * Supported syntax / 支持的语法:
44
+ * - `# ` `## ` `### ` … `###### ` — ATX headings 标题
45
+ * - `===` / `---` underline — setext headings 下划线标题
46
+ * - `---` `***` `___` — thematic break 分隔线
47
+ * - `` ``` ```` / `~~~` — fenced code blocks 围栏代码块
48
+ * - `| col1 | col2 |` — tables 表格
49
+ * - `> text` — blockquote 引用块
50
+ * - `- item` / `* item` — unordered list 无序列表
51
+ * - `- [ ] task` / `- [x] done` — task list 任务列表
52
+ * - `**bold**` — bold 加粗
53
+ * - `*italic*` — italic 斜体
54
+ * - `` `code` `` — inline code 行内代码
55
+ * - `~~text~~` — strikethrough 删除线
56
+ * - `[text](url)` — link 链接(外链默认转为纯文本,可通过 linkHooks 自定义)
57
+ * - `![alt](url)` — image 图片
58
+ *
59
+ * @slot - No slots; content is provided via the `content` property. 无插槽;内容通过 `content` 属性提供。
60
+ * @property {string} content - Raw markdown source string. Markdown 源文本字符串。
61
+ * @property {MarkdownLinkHook[]} [linkHooks] - Custom link hooks for URL processing. 自定义链接处理 hook。
62
+ *
63
+ * @example
64
+ * ```html
65
+ * <aithe-markdown content="# Hello\n**Bold** text and \`code\`."></aithe-markdown>
66
+ * ```
67
+ */
68
+ let AitheMarkdown = class AitheMarkdown extends AitheElement {
69
+ constructor() {
70
+ super(...arguments);
71
+ /** Raw markdown source string. Markdown 源文本字符串。 */
72
+ this.content = '';
73
+ }
74
+ /**
75
+ * Lazily creates or re-creates the FullMarkdownParser when linkHooks changes.
76
+ * Caches the parser instance to avoid re-parsing on every render.
77
+ * 懒创建解析器,当 linkHooks 变化时重新创建 FullMarkdownParser。
78
+ * 缓存解析器实例以避免每次渲染都重新解析。
79
+ */
80
+ get parser() {
81
+ if (!this._parser || this._linkHooks !== this.linkHooks) {
82
+ this._parser = createParser(this.linkHooks);
83
+ this._linkHooks = this.linkHooks;
84
+ }
85
+ return this._parser;
86
+ }
87
+ static { this.styles = [
88
+ aitheBaseStyles,
89
+ css `
90
+ :host {
91
+ display: block;
92
+ }
93
+
94
+ .markdown {
95
+ color: var(--aithe-color-text);
96
+ }
97
+
98
+ /* Heading spacing */
99
+ .markdown :where(.md-heading) {
100
+ margin: 0 0 var(--aithe-space-3);
101
+ }
102
+
103
+ /* Block-level element spacing */
104
+ .markdown :where(.md-p, .md-list, .md-blockquote, .md-code-fence) {
105
+ margin: 0 0 var(--aithe-space-4);
106
+ }
107
+
108
+ .markdown .md-code-fence {
109
+ display: block;
110
+ }
111
+
112
+ /* Bold / strong styling */
113
+ .markdown .md-strong {
114
+ font-weight: 700;
115
+ }
116
+
117
+ /* Inline code styling */
118
+ .markdown .md-code {
119
+ font-family: var(--aithe-font-family-mono);
120
+ padding: 1px 4px;
121
+ border-radius: 3px;
122
+ background: var(--aithe-color-bg-muted, #f1f5f9);
123
+ color: var(--aithe-primary-7, #c7254e);
124
+ font-size: 0.9em;
125
+ }
126
+
127
+ /* Blockquote styling with left accent border */
128
+ .markdown .md-blockquote {
129
+ padding-left: var(--aithe-space-4);
130
+ border-left: 3px solid var(--aithe-primary-5);
131
+ color: var(--aithe-color-text-muted);
132
+ }
133
+
134
+ /* Link styling */
135
+ .markdown .md-link {
136
+ color: var(--aithe-primary-6);
137
+ }
138
+
139
+ /* Table styling */
140
+ .markdown .md-table {
141
+ border-collapse: collapse;
142
+ width: 100%;
143
+ margin-bottom: var(--aithe-space-4);
144
+ }
145
+
146
+ .markdown .md-table th,
147
+ .markdown .md-table td {
148
+ border: 1px solid var(--aithe-color-border, #e2e8f0);
149
+ padding: var(--aithe-space-2) var(--aithe-space-3);
150
+ text-align: left;
151
+ }
152
+
153
+ .markdown .md-table th {
154
+ background: var(--aithe-color-bg-muted, #f8fafc);
155
+ font-weight: 600;
156
+ }
157
+
158
+ /* Thematic break / horizontal rule */
159
+ .markdown .md-hr {
160
+ border: none;
161
+ border-top: 1px solid var(--aithe-color-border, #e2e8f0);
162
+ margin: var(--aithe-space-4) 0;
163
+ }
164
+
165
+ /* Image: responsive, rounded corners */
166
+ .markdown .md-image {
167
+ max-width: 100%;
168
+ height: auto;
169
+ border-radius: var(--aithe-container-radius-md, 6px);
170
+ }
171
+ `,
172
+ ]; }
173
+ /**
174
+ * Renders the markdown content by parsing it into styled HTML
175
+ * and wrapping it in an <article> element for semantic structure.
176
+ * 渲染 markdown 内容:解析为带样式的 HTML,并用 <article> 元素包裹以保持语义化结构。
177
+ */
178
+ render() {
179
+ return html `
180
+ <article class="markdown">${unsafeHTML(this.parser.parse(this.content))}</article>
181
+ `;
182
+ }
183
+ };
184
+ __decorate([
185
+ property({ type: String })
186
+ ], AitheMarkdown.prototype, "content", void 0);
187
+ __decorate([
188
+ property({ attribute: false })
189
+ ], AitheMarkdown.prototype, "linkHooks", void 0);
190
+ AitheMarkdown = __decorate([
191
+ customElement('aithe-markdown')
192
+ ], AitheMarkdown);
193
+ export { AitheMarkdown };