@yh-ui/components 1.0.30 → 1.0.36

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 (410) hide show
  1. package/dist/affix/index.d.ts +1 -202
  2. package/dist/affix/src/affix.d.vue.ts +66 -0
  3. package/dist/affix/src/affix.vue.d.ts +4 -53
  4. package/dist/ai-action-group/index.d.ts +1 -108
  5. package/dist/ai-action-group/src/ai-action-group.d.vue.ts +40 -0
  6. package/dist/ai-action-group/src/ai-action-group.vue.d.ts +5 -30
  7. package/dist/ai-agent-card/index.d.ts +1 -174
  8. package/dist/ai-agent-card/src/ai-agent-card.d.vue.ts +62 -0
  9. package/dist/ai-agent-card/src/ai-agent-card.vue.d.ts +7 -50
  10. package/dist/ai-artifacts/index.d.ts +1 -274
  11. package/dist/ai-artifacts/src/ai-artifacts.d.vue.ts +91 -0
  12. package/dist/ai-artifacts/src/ai-artifacts.vue.d.ts +8 -80
  13. package/dist/ai-attachments/index.d.ts +1 -357
  14. package/dist/ai-attachments/src/ai-attachments.d.vue.ts +107 -0
  15. package/dist/ai-attachments/src/ai-attachments.vue.d.ts +13 -124
  16. package/dist/ai-bubble/index.d.ts +54 -54
  17. package/dist/ai-bubble/src/ai-bubble.d.vue.ts +273 -0
  18. package/dist/ai-bubble/src/ai-bubble.vue.d.ts +11 -11
  19. package/dist/ai-bubble-list/index.d.ts +1 -150
  20. package/dist/ai-bubble-list/src/ai-bubble-list.d.vue.ts +93 -0
  21. package/dist/ai-bubble-list/src/ai-bubble-list.vue.d.ts +7 -7
  22. package/dist/ai-chat/index.d.ts +1 -162
  23. package/dist/ai-chat/src/ai-chat.d.vue.ts +63 -0
  24. package/dist/ai-chat/src/ai-chat.vue.d.ts +7 -44
  25. package/dist/ai-code-block/index.d.ts +1 -218
  26. package/dist/ai-code-block/src/ai-code-block.d.vue.ts +73 -0
  27. package/dist/ai-code-block/src/ai-code-block.vue.d.ts +3 -59
  28. package/dist/ai-code-editor/index.d.ts +7 -68
  29. package/dist/ai-code-editor/src/ai-code-editor.d.vue.ts +71 -0
  30. package/dist/ai-code-editor/src/ai-code-editor.vue.d.ts +7 -68
  31. package/dist/ai-code-runner/index.d.ts +1 -66
  32. package/dist/ai-code-runner/src/ai-code-runner.d.vue.ts +34 -0
  33. package/dist/ai-code-runner/src/ai-code-runner.vue.d.ts +3 -36
  34. package/dist/ai-conversations/index.d.ts +1 -214
  35. package/dist/ai-conversations/src/ai-conversations.d.vue.ts +75 -0
  36. package/dist/ai-conversations/src/ai-conversations.vue.d.ts +3 -55
  37. package/dist/ai-editor-sender/index.d.ts +1 -415
  38. package/dist/ai-editor-sender/src/ai-editor-sender.d.vue.ts +134 -0
  39. package/dist/ai-editor-sender/src/ai-editor-sender.vue.d.ts +6 -113
  40. package/dist/ai-file-card/index.d.ts +7 -209
  41. package/dist/ai-file-card/src/ai-file-card.d.vue.ts +78 -0
  42. package/dist/ai-file-card/src/ai-file-card.vue.d.ts +5 -62
  43. package/dist/ai-mention/index.d.ts +12 -352
  44. package/dist/ai-mention/src/ai-mention.d.vue.ts +115 -0
  45. package/dist/ai-mention/src/ai-mention.vue.d.ts +11 -107
  46. package/dist/ai-mermaid/index.d.ts +1 -222
  47. package/dist/ai-mermaid/src/ai-mermaid.d.vue.ts +76 -0
  48. package/dist/ai-mermaid/src/ai-mermaid.vue.d.ts +4 -61
  49. package/dist/ai-prompts/index.d.ts +1 -102
  50. package/dist/ai-prompts/src/ai-prompts.d.vue.ts +44 -0
  51. package/dist/ai-prompts/src/ai-prompts.vue.d.ts +7 -28
  52. package/dist/ai-provider/index.d.ts +1 -263
  53. package/dist/ai-provider/src/ai-provider.d.vue.ts +85 -0
  54. package/dist/ai-provider/src/ai-provider.vue.d.ts +5 -56
  55. package/dist/ai-sender/index.d.ts +1 -234
  56. package/dist/ai-sender/src/ai-sender.d.vue.ts +74 -0
  57. package/dist/ai-sender/src/ai-sender.vue.d.ts +8 -70
  58. package/dist/ai-sources/index.d.ts +1 -134
  59. package/dist/ai-sources/src/ai-sources.d.vue.ts +47 -0
  60. package/dist/ai-sources/src/ai-sources.vue.d.ts +3 -34
  61. package/dist/ai-thinking/index.d.ts +1 -150
  62. package/dist/ai-thinking/src/ai-thinking.d.vue.ts +53 -0
  63. package/dist/ai-thinking/src/ai-thinking.vue.d.ts +4 -40
  64. package/dist/ai-thought-chain/index.d.ts +10 -268
  65. package/dist/ai-thought-chain/src/ai-thought-chain.d.vue.ts +92 -0
  66. package/dist/ai-thought-chain/src/ai-thought-chain.vue.d.ts +9 -84
  67. package/dist/ai-voice-trigger/index.d.ts +1 -153
  68. package/dist/ai-voice-trigger/src/ai-voice-trigger.d.vue.ts +49 -0
  69. package/dist/ai-voice-trigger/src/ai-voice-trigger.vue.d.ts +4 -43
  70. package/dist/ai-welcome/index.d.ts +1 -129
  71. package/dist/ai-welcome/src/ai-welcome.d.vue.ts +51 -0
  72. package/dist/ai-welcome/src/ai-welcome.vue.d.ts +3 -32
  73. package/dist/alert/index.d.ts +1 -289
  74. package/dist/alert/src/alert.d.vue.ts +106 -0
  75. package/dist/alert/src/alert.vue.d.ts +10 -81
  76. package/dist/autocomplete/index.d.ts +1 -365
  77. package/dist/autocomplete/src/autocomplete.d.vue.ts +63 -0
  78. package/dist/autocomplete/src/autocomplete.vue.d.ts +20 -68
  79. package/dist/avatar/index.d.ts +17 -140
  80. package/dist/avatar/src/avatar.d.vue.ts +22 -0
  81. package/dist/avatar/src/avatar.vue.d.ts +5 -32
  82. package/dist/back-top/index.d.ts +1 -153
  83. package/dist/back-top/src/back-top.d.vue.ts +54 -0
  84. package/dist/back-top/src/back-top.vue.d.ts +5 -42
  85. package/dist/badge/index.d.ts +1 -151
  86. package/dist/badge/src/badge.d.vue.ts +22 -0
  87. package/dist/badge/src/badge.vue.d.ts +3 -34
  88. package/dist/breadcrumb/index.d.ts +2 -177
  89. package/dist/breadcrumb/src/breadcrumb-item.d.vue.ts +42 -0
  90. package/dist/breadcrumb/src/breadcrumb-item.vue.d.ts +1 -1
  91. package/dist/breadcrumb/src/breadcrumb.d.vue.ts +41 -0
  92. package/dist/button/index.d.ts +38 -242
  93. package/dist/button/src/button.d.vue.ts +44 -0
  94. package/dist/button/src/button.vue.d.ts +11 -56
  95. package/dist/calendar/index.d.ts +1 -429
  96. package/dist/calendar/src/calendar.d.vue.ts +137 -0
  97. package/dist/calendar/src/calendar.vue.d.ts +10 -130
  98. package/dist/card/index.d.ts +1 -155
  99. package/dist/card/src/card.d.vue.ts +26 -0
  100. package/dist/card/src/card.vue.d.ts +4 -35
  101. package/dist/carousel/index.d.ts +2 -443
  102. package/dist/carousel/src/carousel-item.d.vue.ts +18 -0
  103. package/dist/carousel/src/carousel.d.vue.ts +144 -0
  104. package/dist/carousel/src/carousel.vue.d.ts +17 -108
  105. package/dist/cascader/index.d.ts +105 -456
  106. package/dist/cascader/src/cascader-panel.d.vue.ts +39 -0
  107. package/dist/cascader/src/cascader-panel.vue.d.ts +8 -37
  108. package/dist/cascader/src/cascader.d.vue.ts +63 -0
  109. package/dist/cascader/src/cascader.vue.d.ts +21 -76
  110. package/dist/category-nav/index.d.ts +1 -219
  111. package/dist/category-nav/src/category-nav.d.vue.ts +86 -0
  112. package/dist/category-nav/src/category-nav.vue.d.ts +10 -61
  113. package/dist/checkbox/index.d.ts +50 -323
  114. package/dist/checkbox/src/checkbox-group.d.vue.ts +24 -0
  115. package/dist/checkbox/src/checkbox-group.vue.d.ts +6 -33
  116. package/dist/checkbox/src/checkbox.d.vue.ts +32 -0
  117. package/dist/checkbox/src/checkbox.vue +28 -12
  118. package/dist/checkbox/src/checkbox.vue.d.ts +8 -41
  119. package/dist/col/index.d.ts +1 -188
  120. package/dist/col/src/col.d.vue.ts +114 -0
  121. package/dist/col/src/col.vue.d.ts +4 -4
  122. package/dist/color-picker/index.d.ts +1 -89
  123. package/dist/color-picker/src/alpha-slider.d.vue.ts +10 -0
  124. package/dist/color-picker/src/alpha-slider.vue.d.ts +4 -13
  125. package/dist/color-picker/src/color-picker.d.vue.ts +60 -0
  126. package/dist/color-picker/src/color-picker.vue.d.ts +4 -45
  127. package/dist/color-picker/src/hue-slider.d.vue.ts +9 -0
  128. package/dist/color-picker/src/hue-slider.vue.d.ts +4 -13
  129. package/dist/color-picker/src/sv-panel.d.vue.ts +11 -0
  130. package/dist/color-picker/src/sv-panel.vue.d.ts +4 -13
  131. package/dist/config-provider/index.d.ts +2 -2
  132. package/dist/config-provider/src/config-provider.d.ts +2 -2
  133. package/dist/container/index.d.ts +5 -208
  134. package/dist/container/src/aside.d.vue.ts +15 -0
  135. package/dist/container/src/aside.vue +4 -1
  136. package/dist/container/src/aside.vue.d.ts +2 -23
  137. package/dist/container/src/container.d.vue.ts +13 -0
  138. package/dist/container/src/container.vue +4 -1
  139. package/dist/container/src/container.vue.d.ts +1 -10
  140. package/dist/container/src/footer.d.vue.ts +15 -0
  141. package/dist/container/src/footer.vue +4 -1
  142. package/dist/container/src/footer.vue.d.ts +2 -23
  143. package/dist/container/src/header.d.vue.ts +15 -0
  144. package/dist/container/src/header.vue +4 -1
  145. package/dist/container/src/header.vue.d.ts +2 -23
  146. package/dist/container/src/main.d.vue.ts +13 -0
  147. package/dist/container/src/main.vue +4 -1
  148. package/dist/container/src/main.vue.d.ts +1 -10
  149. package/dist/countdown/index.d.ts +1 -419
  150. package/dist/countdown/src/countdown.d.vue.ts +146 -0
  151. package/dist/countdown/src/countdown.vue.d.ts +17 -122
  152. package/dist/coupon-card/index.d.ts +1 -340
  153. package/dist/coupon-card/src/coupon-card.d.vue.ts +121 -0
  154. package/dist/coupon-card/src/coupon-card.vue.d.ts +13 -98
  155. package/dist/date-picker/index.d.ts +1 -604
  156. package/dist/date-picker/src/date-picker.d.vue.ts +372 -0
  157. package/dist/date-picker/src/date-picker.vue.d.ts +28 -28
  158. package/dist/date-picker/src/date-table.d.vue.ts +37 -0
  159. package/dist/date-picker/src/date-table.vue.d.ts +7 -17
  160. package/dist/date-picker/src/month-table.d.vue.ts +19 -0
  161. package/dist/date-picker/src/month-table.vue.d.ts +6 -15
  162. package/dist/date-picker/src/quarter-table.d.vue.ts +19 -0
  163. package/dist/date-picker/src/quarter-table.vue.d.ts +6 -15
  164. package/dist/date-picker/src/year-table.d.vue.ts +19 -0
  165. package/dist/date-picker/src/year-table.vue.d.ts +6 -15
  166. package/dist/descriptions/index.d.ts +2 -492
  167. package/dist/descriptions/src/description-item.d.vue.ts +99 -0
  168. package/dist/descriptions/src/description-item.vue.d.ts +4 -4
  169. package/dist/descriptions/src/descriptions.d.vue.ts +106 -0
  170. package/dist/descriptions/src/descriptions.vue +29 -12
  171. package/dist/descriptions/src/descriptions.vue.d.ts +3 -3
  172. package/dist/dialog/index.d.ts +2 -665
  173. package/dist/dialog/src/dialog.d.vue.ts +217 -0
  174. package/dist/dialog/src/dialog.vue.d.ts +22 -200
  175. package/dist/divider/index.d.ts +1 -113
  176. package/dist/divider/src/divider.d.vue.ts +69 -0
  177. package/dist/divider/src/divider.vue +8 -2
  178. package/dist/divider/src/divider.vue.d.ts +3 -3
  179. package/dist/drawer/index.d.ts +13 -391
  180. package/dist/drawer/src/drawer.d.vue.ts +141 -0
  181. package/dist/drawer/src/drawer.vue.d.ts +10 -120
  182. package/dist/dropdown/index.d.ts +3 -627
  183. package/dist/dropdown/src/dropdown-item.d.vue.ts +78 -0
  184. package/dist/dropdown/src/dropdown-item.vue +9 -2
  185. package/dist/dropdown/src/dropdown-item.vue.d.ts +3 -3
  186. package/dist/dropdown/src/dropdown-menu.d.vue.ts +24 -0
  187. package/dist/dropdown/src/dropdown-menu.vue +4 -1
  188. package/dist/dropdown/src/dropdown.d.vue.ts +158 -0
  189. package/dist/dropdown/src/dropdown.vue.d.ts +16 -133
  190. package/dist/empty/index.d.ts +1 -78
  191. package/dist/empty/src/empty.d.vue.ts +19 -0
  192. package/dist/empty/src/empty.vue +26 -9
  193. package/dist/empty/src/empty.vue.d.ts +2 -23
  194. package/dist/filter-bar/index.d.ts +1 -281
  195. package/dist/filter-bar/src/filter-bar.d.vue.ts +87 -0
  196. package/dist/filter-bar/src/filter-bar.vue.d.ts +9 -92
  197. package/dist/form/index.d.ts +3 -690
  198. package/dist/form/src/form-item.d.vue.ts +144 -0
  199. package/dist/form/src/form-item.vue.d.ts +7 -7
  200. package/dist/form/src/form-schema.d.vue.ts +116 -0
  201. package/dist/form/src/form-schema.vue.d.ts +30 -36
  202. package/dist/form/src/form.d.vue.ts +158 -0
  203. package/dist/form/src/form.vue.d.ts +5 -5
  204. package/dist/gantt-chart/index.d.ts +1 -305
  205. package/dist/gantt-chart/src/gantt-chart.d.vue.ts +51 -0
  206. package/dist/gantt-chart/src/gantt-chart.vue.d.ts +17 -62
  207. package/dist/grid/index.d.ts +2 -226
  208. package/dist/grid/src/grid-item.d.vue.ts +17 -0
  209. package/dist/grid/src/grid-item.vue +13 -10
  210. package/dist/grid/src/grid-item.vue.d.ts +2 -27
  211. package/dist/grid/src/grid.d.vue.ts +20 -0
  212. package/dist/grid/src/grid.vue +12 -6
  213. package/dist/grid/src/grid.vue.d.ts +3 -34
  214. package/dist/icon/index.d.ts +9 -9
  215. package/dist/icon/src/icon.d.vue.ts +87 -0
  216. package/dist/icon/src/icon.vue.d.ts +3 -3
  217. package/dist/image/index.d.ts +34 -85
  218. package/dist/image/src/image-viewer.d.vue.ts +68 -0
  219. package/dist/image/src/image-viewer.vue.d.ts +4 -55
  220. package/dist/image/src/image.d.vue.ts +178 -0
  221. package/dist/image/src/image.vue.d.ts +11 -11
  222. package/dist/image-magnifier/index.d.ts +1 -462
  223. package/dist/image-magnifier/src/image-magnifier.d.vue.ts +154 -0
  224. package/dist/image-magnifier/src/image-magnifier.vue.d.ts +9 -126
  225. package/dist/infinite-scroll/index.d.ts +1 -270
  226. package/dist/infinite-scroll/src/infinite-scroll.d.vue.ts +93 -0
  227. package/dist/infinite-scroll/src/infinite-scroll.vue.d.ts +7 -72
  228. package/dist/input/index.d.ts +67 -508
  229. package/dist/input/src/input.d.vue.ts +76 -0
  230. package/dist/input/src/input.vue.d.ts +26 -85
  231. package/dist/input-number/index.d.ts +42 -297
  232. package/dist/input-number/src/input-number.d.vue.ts +50 -0
  233. package/dist/input-number/src/input-number.vue.d.ts +16 -59
  234. package/dist/input-tag/index.d.ts +1 -433
  235. package/dist/input-tag/src/input-tag.d.vue.ts +71 -0
  236. package/dist/input-tag/src/input-tag.vue.d.ts +28 -83
  237. package/dist/loading/index.d.ts +1 -1
  238. package/dist/lucky-draw/index.d.ts +1 -203
  239. package/dist/lucky-draw/src/lucky-draw.d.vue.ts +74 -0
  240. package/dist/lucky-draw/src/lucky-draw.vue.d.ts +5 -54
  241. package/dist/marquee/index.d.ts +1 -305
  242. package/dist/marquee/src/marquee.d.vue.ts +106 -0
  243. package/dist/marquee/src/marquee.vue.d.ts +6 -80
  244. package/dist/mention/index.d.ts +90 -432
  245. package/dist/mention/src/mention.d.vue.ts +84 -0
  246. package/dist/mention/src/mention.vue.d.ts +35 -100
  247. package/dist/menu/index.d.ts +4 -890
  248. package/dist/menu/src/menu-item-group.d.vue.ts +26 -0
  249. package/dist/menu/src/menu-item.d.vue.ts +52 -0
  250. package/dist/menu/src/menu-item.vue +20 -7
  251. package/dist/menu/src/menu-recursive-item.d.vue.ts +6 -0
  252. package/dist/menu/src/menu-recursive-item.vue.d.ts +1 -10
  253. package/dist/menu/src/menu.d.vue.ts +209 -0
  254. package/dist/menu/src/menu.vue.d.ts +15 -178
  255. package/dist/menu/src/sub-menu.d.vue.ts +87 -0
  256. package/dist/message/index.d.ts +1 -1
  257. package/dist/message/src/message.d.vue.ts +32 -0
  258. package/dist/message/src/message.vue.d.ts +8 -45
  259. package/dist/message-box/index.d.ts +1 -1
  260. package/dist/message-box/src/message-box.d.vue.ts +17 -0
  261. package/dist/message-box/src/message-box.vue.d.ts +2 -11
  262. package/dist/notification/index.d.ts +1 -1
  263. package/dist/notification/src/notification.d.vue.ts +30 -0
  264. package/dist/notification/src/notification.vue.d.ts +8 -37
  265. package/dist/pagination/index.d.ts +26 -26
  266. package/dist/pagination/src/pagination.d.vue.ts +149 -0
  267. package/dist/pagination/src/pagination.vue.d.ts +11 -11
  268. package/dist/popconfirm/index.d.ts +1 -433
  269. package/dist/popconfirm/src/popconfirm.d.vue.ts +148 -0
  270. package/dist/popconfirm/src/popconfirm.vue.d.ts +12 -121
  271. package/dist/popover/index.d.ts +1 -392
  272. package/dist/popover/src/popover.d.vue.ts +139 -0
  273. package/dist/popover/src/popover.vue.d.ts +13 -111
  274. package/dist/price/index.d.ts +1 -363
  275. package/dist/price/src/price.d.vue.ts +223 -0
  276. package/dist/price/src/price.vue.d.ts +5 -5
  277. package/dist/product-card/index.d.ts +1 -557
  278. package/dist/product-card/src/product-card.d.vue.ts +188 -0
  279. package/dist/product-card/src/product-card.vue.d.ts +12 -157
  280. package/dist/progress/index.d.ts +1 -321
  281. package/dist/progress/src/progress.d.vue.ts +199 -0
  282. package/dist/progress/src/progress.vue.d.ts +9 -9
  283. package/dist/radio/index.d.ts +51 -339
  284. package/dist/radio/src/radio-button.d.vue.ts +25 -0
  285. package/dist/radio/src/radio-button.vue.d.ts +6 -27
  286. package/dist/radio/src/radio-group.d.vue.ts +23 -0
  287. package/dist/radio/src/radio-group.vue.d.ts +6 -31
  288. package/dist/radio/src/radio.d.vue.ts +26 -0
  289. package/dist/radio/src/radio.vue +24 -5
  290. package/dist/radio/src/radio.vue.d.ts +6 -29
  291. package/dist/rate/index.d.ts +1 -313
  292. package/dist/rate/src/rate.d.vue.ts +109 -0
  293. package/dist/rate/src/rate.vue.d.ts +11 -90
  294. package/dist/result/index.d.ts +1 -73
  295. package/dist/result/src/result.d.vue.ts +23 -0
  296. package/dist/result/src/result.vue +11 -2
  297. package/dist/result/src/result.vue.d.ts +2 -23
  298. package/dist/row/index.d.ts +1 -98
  299. package/dist/row/src/row.d.ts +1 -1
  300. package/dist/row/src/row.d.vue.ts +60 -0
  301. package/dist/row/src/row.vue.d.ts +1 -1
  302. package/dist/sanitize.cjs +33 -23
  303. package/dist/sanitize.mjs +28 -20
  304. package/dist/scrollbar/index.d.ts +1 -192
  305. package/dist/scrollbar/src/scrollbar.d.vue.ts +67 -0
  306. package/dist/scrollbar/src/scrollbar.vue.d.ts +3 -45
  307. package/dist/scrollbar/src/thumb.d.vue.ts +16 -0
  308. package/dist/scrollbar/src/thumb.vue.d.ts +3 -30
  309. package/dist/select/index.d.ts +71 -461
  310. package/dist/select/src/option.d.vue.ts +15 -0
  311. package/dist/select/src/option.vue.d.ts +2 -23
  312. package/dist/select/src/select.d.vue.ts +68 -0
  313. package/dist/select/src/select.vue.d.ts +26 -93
  314. package/dist/skeleton/index.d.ts +2 -278
  315. package/dist/skeleton/src/skeleton-item.d.vue.ts +83 -0
  316. package/dist/skeleton/src/skeleton-item.vue.d.ts +2 -2
  317. package/dist/skeleton/src/skeleton.d.vue.ts +89 -0
  318. package/dist/skeleton/src/skeleton.vue.d.ts +3 -3
  319. package/dist/sku-selector/index.d.ts +1 -222
  320. package/dist/sku-selector/src/sku-selector.d.vue.ts +84 -0
  321. package/dist/sku-selector/src/sku-selector.vue.d.ts +9 -62
  322. package/dist/slider/index.d.ts +1 -471
  323. package/dist/slider/src/slider-button.d.vue.ts +43 -0
  324. package/dist/slider/src/slider-button.vue.d.ts +10 -41
  325. package/dist/slider/src/slider.d.vue.ts +164 -0
  326. package/dist/slider/src/slider.vue.d.ts +13 -129
  327. package/dist/smart-address/index.d.ts +1 -324
  328. package/dist/smart-address/src/smart-address.d.vue.ts +110 -0
  329. package/dist/smart-address/src/smart-address.vue.d.ts +8 -102
  330. package/dist/space/index.d.ts +1 -142
  331. package/dist/space/src/space.d.vue.ts +22 -0
  332. package/dist/space/src/space.vue +28 -15
  333. package/dist/space/src/space.vue.d.ts +3 -34
  334. package/dist/spin/index.d.ts +6 -161
  335. package/dist/spin/src/spin.d.vue.ts +66 -0
  336. package/dist/spin/src/spin.vue.d.ts +4 -47
  337. package/dist/steps/index.d.ts +2 -606
  338. package/dist/steps/src/step.d.vue.ts +105 -0
  339. package/dist/steps/src/step.vue.d.ts +5 -5
  340. package/dist/steps/src/steps.d.vue.ts +94 -0
  341. package/dist/steps/src/steps.vue +4 -1
  342. package/dist/steps/src/steps.vue.d.ts +9 -78
  343. package/dist/submit-bar/index.d.ts +1 -291
  344. package/dist/submit-bar/src/submit-bar.d.vue.ts +102 -0
  345. package/dist/submit-bar/src/submit-bar.vue.d.ts +6 -79
  346. package/dist/switch/index.d.ts +1 -372
  347. package/dist/switch/src/switch.d.vue.ts +133 -0
  348. package/dist/switch/src/switch.vue.d.ts +7 -98
  349. package/dist/table/index.d.ts +2 -1488
  350. package/dist/table/src/table-column.d.vue.ts +71 -0
  351. package/dist/table/src/table-column.vue.d.ts +11 -70
  352. package/dist/table/src/table.d.vue.ts +493 -0
  353. package/dist/table/src/table.vue.d.ts +25 -337
  354. package/dist/table/src/use-virtual-scroll.mjs +3 -1
  355. package/dist/tabs/index.d.ts +2 -583
  356. package/dist/tabs/src/tab-pane.d.vue.ts +77 -0
  357. package/dist/tabs/src/tab-pane.vue +11 -3
  358. package/dist/tabs/src/tab-pane.vue.d.ts +2 -2
  359. package/dist/tabs/src/tabs.d.vue.ts +110 -0
  360. package/dist/tabs/src/tabs.vue.d.ts +8 -98
  361. package/dist/tag/index.d.ts +1 -245
  362. package/dist/tag/src/tag.d.vue.ts +42 -0
  363. package/dist/tag/src/tag.vue.d.ts +12 -51
  364. package/dist/time-picker/index.d.ts +1 -619
  365. package/dist/time-picker/src/time-picker.d.vue.ts +67 -0
  366. package/dist/time-picker/src/time-picker.vue.d.ts +29 -102
  367. package/dist/time-picker/src/time-spinner.d.vue.ts +46 -0
  368. package/dist/time-picker/src/time-spinner.vue.d.ts +6 -45
  369. package/dist/time-select/index.d.ts +1 -379
  370. package/dist/time-select/src/time-select.d.vue.ts +51 -0
  371. package/dist/time-select/src/time-select.vue.d.ts +21 -66
  372. package/dist/tooltip/index.d.ts +17 -465
  373. package/dist/tooltip/src/tooltip.d.vue.ts +167 -0
  374. package/dist/tooltip/src/tooltip.vue.d.ts +15 -140
  375. package/dist/transfer/src/transfer-panel.d.vue.ts +45 -0
  376. package/dist/transfer/src/transfer-panel.vue.d.ts +12 -51
  377. package/dist/transfer/src/transfer.d.vue.ts +68 -0
  378. package/dist/transfer/src/transfer.vue.d.ts +15 -62
  379. package/dist/tree/index.d.ts +2 -632
  380. package/dist/tree/src/tree-node.d.vue.ts +18 -0
  381. package/dist/tree/src/tree-node.vue.d.ts +1 -10
  382. package/dist/tree/src/tree.d.vue.ts +228 -0
  383. package/dist/tree/src/tree.vue.d.ts +13 -161
  384. package/dist/tree-select/index.d.ts +1 -435
  385. package/dist/tree-select/src/tree-select.d.vue.ts +141 -0
  386. package/dist/tree-select/src/tree-select.vue.d.ts +19 -129
  387. package/dist/typography/index.d.ts +4 -612
  388. package/dist/typography/src/link.d.vue.ts +21 -0
  389. package/dist/typography/src/link.vue +13 -3
  390. package/dist/typography/src/link.vue.d.ts +4 -29
  391. package/dist/typography/src/paragraph.d.vue.ts +22 -0
  392. package/dist/typography/src/paragraph.vue.d.ts +3 -34
  393. package/dist/typography/src/text.d.vue.ts +29 -0
  394. package/dist/typography/src/text.vue +4 -1
  395. package/dist/typography/src/text.vue.d.ts +4 -41
  396. package/dist/typography/src/title.d.vue.ts +26 -0
  397. package/dist/typography/src/title.vue +4 -1
  398. package/dist/typography/src/title.vue.d.ts +3 -38
  399. package/dist/upload/index.d.ts +1 -391
  400. package/dist/upload/src/upload.d.vue.ts +134 -0
  401. package/dist/upload/src/upload.vue.d.ts +13 -109
  402. package/dist/waterfall/index.d.ts +1 -57
  403. package/dist/waterfall/src/waterfall.d.vue.ts +56 -0
  404. package/dist/waterfall/src/waterfall.vue.d.ts +4 -4
  405. package/dist/watermark/index.d.ts +1 -236
  406. package/dist/watermark/src/watermark.d.vue.ts +143 -0
  407. package/dist/watermark/src/watermark.vue.d.ts +6 -6
  408. package/package.json +8 -9
  409. package/dist/component.d.ts +0 -284
  410. package/dist/env.d.ts +0 -11
@@ -1,77 +1,5 @@
1
1
  import Result from './src/result.vue';
2
- export declare const YhResult: import("@yh-ui/utils").SFCWithInstall<{
3
- new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
4
- title: {
5
- type: import("vue").PropType<string>;
6
- };
7
- themeOverrides: {
8
- type: import("vue").PropType<import("@yh-ui/theme").ComponentThemeVars>;
9
- };
10
- icon: {
11
- type: import("vue").PropType<import("./index.js").ResultIconType>;
12
- default: string;
13
- };
14
- subTitle: {
15
- type: import("vue").PropType<string>;
16
- };
17
- }>> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
18
- icon: import("./index.js").ResultIconType;
19
- }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
20
- P: {};
21
- B: {};
22
- D: {};
23
- C: {};
24
- M: {};
25
- Defaults: {};
26
- }, Readonly<import("vue").ExtractPropTypes<{
27
- title: {
28
- type: import("vue").PropType<string>;
29
- };
30
- themeOverrides: {
31
- type: import("vue").PropType<import("@yh-ui/theme").ComponentThemeVars>;
32
- };
33
- icon: {
34
- type: import("vue").PropType<import("./index.js").ResultIconType>;
35
- default: string;
36
- };
37
- subTitle: {
38
- type: import("vue").PropType<string>;
39
- };
40
- }>> & Readonly<{}>, {}, {}, {}, {}, {
41
- icon: import("./index.js").ResultIconType;
42
- }>;
43
- __isFragment?: never;
44
- __isTeleport?: never;
45
- __isSuspense?: never;
46
- } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
47
- title: {
48
- type: import("vue").PropType<string>;
49
- };
50
- themeOverrides: {
51
- type: import("vue").PropType<import("@yh-ui/theme").ComponentThemeVars>;
52
- };
53
- icon: {
54
- type: import("vue").PropType<import("./index.js").ResultIconType>;
55
- default: string;
56
- };
57
- subTitle: {
58
- type: import("vue").PropType<string>;
59
- };
60
- }>> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
61
- icon: import("./index.js").ResultIconType;
62
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
63
- $slots: {
64
- icon?: (props: {}) => any;
65
- } & {
66
- title?: (props: {}) => any;
67
- } & {
68
- 'sub-title'?: (props: {}) => any;
69
- } & {
70
- extra?: (props: {}) => any;
71
- } & {
72
- default?: (props: {}) => any;
73
- };
74
- })> & Record<string, unknown>;
2
+ export declare const YhResult: any;
75
3
  export default YhResult;
76
4
  export * from './src/result';
77
5
  export type ResultInstance = InstanceType<typeof Result>;
@@ -0,0 +1,23 @@
1
+ import type { ResultProps } from './result';
2
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {}, __VLS_7: {}, __VLS_9: {};
3
+ type __VLS_Slots = {} & {
4
+ icon?: (props: typeof __VLS_1) => any;
5
+ } & {
6
+ title?: (props: typeof __VLS_3) => any;
7
+ } & {
8
+ 'sub-title'?: (props: typeof __VLS_5) => any;
9
+ } & {
10
+ extra?: (props: typeof __VLS_7) => any;
11
+ } & {
12
+ default?: (props: typeof __VLS_9) => any;
13
+ };
14
+ declare const __VLS_component: import("vue").DefineComponent<ResultProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ResultProps> & Readonly<{}>, {
15
+ icon: import("./result").ResultIconType;
16
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
18
+ export default _default;
19
+ type __VLS_WithSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -11,7 +11,10 @@ const props = defineProps({
11
11
  });
12
12
  const { t } = useLocale();
13
13
  const ns = useNamespace("result");
14
- const { themeStyle } = useComponentTheme("result", computed(() => props.themeOverrides));
14
+ const { themeStyle } = useComponentTheme(
15
+ "result",
16
+ computed(() => props.themeOverrides)
17
+ );
15
18
  const resultTitle = computed(() => props.title || t(`result.${props.icon}`));
16
19
  const iconColorMap = {
17
20
  success: "var(--yh-color-success, #67c23a)",
@@ -33,7 +36,13 @@ const iconPaths = {
33
36
  <!-- 图标区 -->
34
37
  <div :class="[ns.e('icon'), ns.em('icon', icon)]">
35
38
  <slot name="icon">
36
- <svg viewBox="0 0 1024 1024" width="72" height="72" :fill="iconColor" xmlns="http://www.w3.org/2000/svg">
39
+ <svg
40
+ viewBox="0 0 1024 1024"
41
+ width="72"
42
+ height="72"
43
+ :fill="iconColor"
44
+ xmlns="http://www.w3.org/2000/svg"
45
+ >
37
46
  <path :d="iconPaths[icon]" />
38
47
  </svg>
39
48
  </slot>
@@ -11,34 +11,13 @@ type __VLS_Slots = {} & {
11
11
  } & {
12
12
  default?: (props: typeof __VLS_9) => any;
13
13
  };
14
- declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ResultProps>, {
15
- icon: string;
16
- }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<ResultProps>, {
17
- icon: string;
18
- }>>> & Readonly<{}>, {
14
+ declare const __VLS_component: import("vue").DefineComponent<ResultProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ResultProps> & Readonly<{}>, {
19
15
  icon: import("./result").ResultIconType;
20
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
16
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
17
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
22
18
  export default _default;
23
- type __VLS_WithDefaults<P, D> = {
24
- [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
25
- default: D[K];
26
- }> : P[K];
27
- };
28
- type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
29
- type __VLS_TypePropsToOption<T> = {
30
- [K in keyof T]-?: {} extends Pick<T, K> ? {
31
- type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
32
- } : {
33
- type: import('vue').PropType<T[K]>;
34
- required: true;
35
- };
36
- };
37
19
  type __VLS_WithSlots<T, S> = T & {
38
20
  new (): {
39
21
  $slots: S;
40
22
  };
41
23
  };
42
- type __VLS_PrettifyLocal<T> = {
43
- [K in keyof T]: T[K];
44
- } & {};
@@ -1,102 +1,5 @@
1
1
  import Row from './src/row.vue';
2
- export declare const YhRow: import("@yh-ui/utils").SFCWithInstall<{
3
- new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
4
- readonly tag: {
5
- readonly type: StringConstructor;
6
- readonly default: "div";
7
- };
8
- readonly gutter: {
9
- readonly type: NumberConstructor;
10
- readonly default: 0;
11
- };
12
- readonly justify: {
13
- readonly type: import("vue").PropType<import("./index.js").RowJustify>;
14
- readonly default: "start";
15
- };
16
- readonly align: {
17
- readonly type: import("vue").PropType<import("./index.js").RowAlign>;
18
- readonly default: "top";
19
- };
20
- readonly themeOverrides: {
21
- readonly type: import("vue").PropType<import("@yh-ui/theme").ComponentThemeVars>;
22
- readonly default: undefined;
23
- };
24
- }>> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
25
- readonly tag: string;
26
- readonly themeOverrides: import("@yh-ui/theme").ComponentThemeVars;
27
- readonly justify: import("./index.js").RowJustify;
28
- readonly gutter: number;
29
- readonly align: import("./index.js").RowAlign;
30
- }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
31
- P: {};
32
- B: {};
33
- D: {};
34
- C: {};
35
- M: {};
36
- Defaults: {};
37
- }, Readonly<import("vue").ExtractPropTypes<{
38
- readonly tag: {
39
- readonly type: StringConstructor;
40
- readonly default: "div";
41
- };
42
- readonly gutter: {
43
- readonly type: NumberConstructor;
44
- readonly default: 0;
45
- };
46
- readonly justify: {
47
- readonly type: import("vue").PropType<import("./index.js").RowJustify>;
48
- readonly default: "start";
49
- };
50
- readonly align: {
51
- readonly type: import("vue").PropType<import("./index.js").RowAlign>;
52
- readonly default: "top";
53
- };
54
- readonly themeOverrides: {
55
- readonly type: import("vue").PropType<import("@yh-ui/theme").ComponentThemeVars>;
56
- readonly default: undefined;
57
- };
58
- }>> & Readonly<{}>, {}, {}, {}, {}, {
59
- readonly tag: string;
60
- readonly themeOverrides: import("@yh-ui/theme").ComponentThemeVars;
61
- readonly justify: import("./index.js").RowJustify;
62
- readonly gutter: number;
63
- readonly align: import("./index.js").RowAlign;
64
- }>;
65
- __isFragment?: never;
66
- __isTeleport?: never;
67
- __isSuspense?: never;
68
- } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
69
- readonly tag: {
70
- readonly type: StringConstructor;
71
- readonly default: "div";
72
- };
73
- readonly gutter: {
74
- readonly type: NumberConstructor;
75
- readonly default: 0;
76
- };
77
- readonly justify: {
78
- readonly type: import("vue").PropType<import("./index.js").RowJustify>;
79
- readonly default: "start";
80
- };
81
- readonly align: {
82
- readonly type: import("vue").PropType<import("./index.js").RowAlign>;
83
- readonly default: "top";
84
- };
85
- readonly themeOverrides: {
86
- readonly type: import("vue").PropType<import("@yh-ui/theme").ComponentThemeVars>;
87
- readonly default: undefined;
88
- };
89
- }>> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
90
- readonly tag: string;
91
- readonly themeOverrides: import("@yh-ui/theme").ComponentThemeVars;
92
- readonly justify: import("./index.js").RowJustify;
93
- readonly gutter: number;
94
- readonly align: import("./index.js").RowAlign;
95
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
96
- $slots: {
97
- default?: (props: {}) => any;
98
- };
99
- })> & Record<string, unknown>;
2
+ export declare const YhRow: any;
100
3
  export default YhRow;
101
4
  export * from './src/row';
102
5
  export type RowInstance = InstanceType<typeof Row>;
@@ -79,9 +79,9 @@ declare const _default: import("vue").DefineComponent<ExtractPropTypes<{
79
79
  readonly default: undefined;
80
80
  };
81
81
  }>> & Readonly<{}>, {
82
- readonly tag: string;
83
82
  readonly themeOverrides: import("@yh-ui/theme").ComponentThemeVars;
84
83
  readonly justify: RowJustify;
84
+ readonly tag: string;
85
85
  readonly gutter: number;
86
86
  readonly align: RowAlign;
87
87
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,60 @@
1
+ declare var __VLS_6: {};
2
+ type __VLS_Slots = {} & {
3
+ default?: (props: typeof __VLS_6) => any;
4
+ };
5
+ declare const __VLS_component: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
+ readonly tag: {
7
+ readonly type: StringConstructor;
8
+ readonly default: "div";
9
+ };
10
+ readonly gutter: {
11
+ readonly type: NumberConstructor;
12
+ readonly default: 0;
13
+ };
14
+ readonly justify: {
15
+ readonly type: import("vue").PropType<import("./row").RowJustify>;
16
+ readonly default: "start";
17
+ };
18
+ readonly align: {
19
+ readonly type: import("vue").PropType<import("./row").RowAlign>;
20
+ readonly default: "top";
21
+ };
22
+ readonly themeOverrides: {
23
+ readonly type: import("vue").PropType<import("@yh-ui/theme").ComponentThemeVars>;
24
+ readonly default: undefined;
25
+ };
26
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
+ readonly tag: {
28
+ readonly type: StringConstructor;
29
+ readonly default: "div";
30
+ };
31
+ readonly gutter: {
32
+ readonly type: NumberConstructor;
33
+ readonly default: 0;
34
+ };
35
+ readonly justify: {
36
+ readonly type: import("vue").PropType<import("./row").RowJustify>;
37
+ readonly default: "start";
38
+ };
39
+ readonly align: {
40
+ readonly type: import("vue").PropType<import("./row").RowAlign>;
41
+ readonly default: "top";
42
+ };
43
+ readonly themeOverrides: {
44
+ readonly type: import("vue").PropType<import("@yh-ui/theme").ComponentThemeVars>;
45
+ readonly default: undefined;
46
+ };
47
+ }>> & Readonly<{}>, {
48
+ readonly themeOverrides: import("@yh-ui/theme").ComponentThemeVars;
49
+ readonly justify: import("./row").RowJustify;
50
+ readonly tag: string;
51
+ readonly gutter: number;
52
+ readonly align: import("./row").RowAlign;
53
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
54
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
55
+ export default _default;
56
+ type __VLS_WithSlots<T, S> = T & {
57
+ new (): {
58
+ $slots: S;
59
+ };
60
+ };
@@ -45,9 +45,9 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
45
45
  readonly default: undefined;
46
46
  };
47
47
  }>> & Readonly<{}>, {
48
- readonly tag: string;
49
48
  readonly themeOverrides: import("@yh-ui/theme").ComponentThemeVars;
50
49
  readonly justify: import("./row").RowJustify;
50
+ readonly tag: string;
51
51
  readonly gutter: number;
52
52
  readonly align: import("./row").RowAlign;
53
53
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
package/dist/sanitize.cjs CHANGED
@@ -77,7 +77,17 @@ function postProcessSanitizedMarkup(html, allowedSchemes) {
77
77
  }
78
78
  function serverSideSanitize(html, allowedSchemes) {
79
79
  let output = html.replace(/<script[\s\S]*?>[\s\S]*?<\/script>/gi, "").replace(/<iframe[\s\S]*?>[\s\S]*?<\/iframe>/gi, "").replace(/<object[\s\S]*?>[\s\S]*?<\/object>/gi, "").replace(/<embed[\s\S]*?>/gi, "").replace(/\son[a-z-]+\s*=\s*(['"]).*?\1/gi, "").replace(/\son[a-z-]+\s*=\s*[^\s>]+/gi, "");
80
- output = output.replace(/\s(href|src|xlink:href)\s*=\s*(['"])(.*?)\2/gi, (full, attrName, quote, rawValue) => isAllowedUrl(rawValue, allowedSchemes) ? full : ` ${attrName}=${quote}${quote}`);
80
+ const urlAttrs = ["href", "src", "xlink:href", "xlink\\:href"];
81
+ for (const attr of urlAttrs) {
82
+ const regex = new RegExp(`\\s(${attr})\\s*=\\s*(['"])(.*?)\\2`, "gi");
83
+ output = output.replace(regex, (full, attrName, quote, rawValue) => {
84
+ if (rawValue.toLowerCase().startsWith("javascript:")) {
85
+ return ` ${attrName}=${quote}${quote}`;
86
+ }
87
+ return isAllowedUrl(rawValue, allowedSchemes) ? full : ` ${attrName}=${quote}${quote}`;
88
+ });
89
+ }
90
+ output = output.replace(/javascript:/gi, "");
81
91
  return output;
82
92
  }
83
93
  function shouldFallbackToServerSvgSanitizer(source, sanitized) {
@@ -94,33 +104,33 @@ function sanitizeMarkup(html, options = {}) {
94
104
  const allowedTags = options.allowedTags ?? [...(options.profile === "svg" ? NORMALIZED_SVG_TAGS : DEFAULT_HTML_TAGS)];
95
105
  const allowedAttributes = options.allowedAttributes ?? [...(options.profile === "svg" ? NORMALIZED_SVG_ATTRIBUTES : DEFAULT_HTML_ATTRIBUTES)];
96
106
  const purifierInstance = getPurifier();
107
+ let sanitized = serverSideSanitize(source, allowedSchemes);
97
108
  if (!purifierInstance) {
98
- return serverSideSanitize(source, allowedSchemes);
109
+ return sanitized;
99
110
  }
100
- const sanitized = purifierInstance.sanitize(source, {
101
- ALLOWED_TAGS: allowedTags,
102
- ALLOWED_ATTR: allowedAttributes,
103
- ALLOW_DATA_ATTR: options.allowDataAttributes ?? true,
104
- USE_PROFILES: options.profile === "svg" ? {
105
- html: true,
106
- svg: true,
107
- svgFilters: true
108
- } : {
109
- html: true
111
+ try {
112
+ const domSanitized = purifierInstance.sanitize(sanitized, {
113
+ ALLOWED_TAGS: allowedTags,
114
+ ALLOWED_ATTR: allowedAttributes,
115
+ ALLOW_DATA_ATTR: options.allowDataAttributes ?? true,
116
+ USE_PROFILES: options.profile === "svg" ? {
117
+ html: true,
118
+ svg: true,
119
+ svgFilters: true
120
+ } : {
121
+ html: true
122
+ }
123
+ });
124
+ if (options.profile === "svg" && shouldFallbackToServerSvgSanitizer(source, String(domSanitized))) {
125
+ return postProcessSanitizedMarkup(sanitized, allowedSchemes);
110
126
  }
111
- });
112
- if (options.profile === "svg" && shouldFallbackToServerSvgSanitizer(source, String(sanitized))) {
113
- return postProcessSanitizedMarkup(serverSideSanitize(source, allowedSchemes), allowedSchemes);
114
- }
115
- return postProcessSanitizedMarkup(String(sanitized), allowedSchemes);
127
+ sanitized = String(domSanitized);
128
+ } catch {}
129
+ return postProcessSanitizedMarkup(sanitized, allowedSchemes);
116
130
  }
117
131
  function sanitizeHighlightedHtml(html, options = {}) {
118
- return sanitizeMarkup(html, {
119
- ...options,
120
- allowedTags: ["code", "div", "pre", "span"],
121
- allowedAttributes: ["class"],
122
- profile: "html"
123
- });
132
+ const source = options.sanitizer ? options.sanitizer(html) : html;
133
+ return source.replace(/<script[\s\S]*?>[\s\S]*?<\/script>/gi, "").replace(/<iframe[\s\S]*?>[\s\S]*?<\/iframe>/gi, "").replace(/<object[\s\S]*?>[\s\S]*?<\/object>/gi, "").replace(/<embed[\s\S]*?>/gi, "").replace(/<img[\s\S]*?>/gi, "").replace(/\son[a-z-]+\s*=\s*(['"]).*?\1/gi, "").replace(/\son[a-z-]+\s*=\s*[^\s>]+/gi, "").replace(/javascript:/gi, "");
124
134
  }
125
135
  function sanitizeSvgMarkup(svg, options = {}) {
126
136
  return sanitizeMarkup(svg, {
package/dist/sanitize.mjs CHANGED
@@ -199,10 +199,17 @@ function postProcessSanitizedMarkup(html, allowedSchemes) {
199
199
  }
200
200
  function serverSideSanitize(html, allowedSchemes) {
201
201
  let output = html.replace(/<script[\s\S]*?>[\s\S]*?<\/script>/gi, "").replace(/<iframe[\s\S]*?>[\s\S]*?<\/iframe>/gi, "").replace(/<object[\s\S]*?>[\s\S]*?<\/object>/gi, "").replace(/<embed[\s\S]*?>/gi, "").replace(/\son[a-z-]+\s*=\s*(['"]).*?\1/gi, "").replace(/\son[a-z-]+\s*=\s*[^\s>]+/gi, "");
202
- output = output.replace(
203
- /\s(href|src|xlink:href)\s*=\s*(['"])(.*?)\2/gi,
204
- (full, attrName, quote, rawValue) => isAllowedUrl(rawValue, allowedSchemes) ? full : ` ${attrName}=${quote}${quote}`
205
- );
202
+ const urlAttrs = ["href", "src", "xlink:href", "xlink\\:href"];
203
+ for (const attr of urlAttrs) {
204
+ const regex = new RegExp(`\\s(${attr})\\s*=\\s*(['"])(.*?)\\2`, "gi");
205
+ output = output.replace(regex, (full, attrName, quote, rawValue) => {
206
+ if (rawValue.toLowerCase().startsWith("javascript:")) {
207
+ return ` ${attrName}=${quote}${quote}`;
208
+ }
209
+ return isAllowedUrl(rawValue, allowedSchemes) ? full : ` ${attrName}=${quote}${quote}`;
210
+ });
211
+ }
212
+ output = output.replace(/javascript:/gi, "");
206
213
  return output;
207
214
  }
208
215
  function shouldFallbackToServerSvgSanitizer(source, sanitized) {
@@ -223,27 +230,28 @@ export function sanitizeMarkup(html, options = {}) {
223
230
  ...options.profile === "svg" ? NORMALIZED_SVG_ATTRIBUTES : DEFAULT_HTML_ATTRIBUTES
224
231
  ];
225
232
  const purifierInstance = getPurifier();
233
+ let sanitized = serverSideSanitize(source, allowedSchemes);
226
234
  if (!purifierInstance) {
227
- return serverSideSanitize(source, allowedSchemes);
235
+ return sanitized;
228
236
  }
229
- const sanitized = purifierInstance.sanitize(source, {
230
- ALLOWED_TAGS: allowedTags,
231
- ALLOWED_ATTR: allowedAttributes,
232
- ALLOW_DATA_ATTR: options.allowDataAttributes ?? true,
233
- USE_PROFILES: options.profile === "svg" ? { html: true, svg: true, svgFilters: true } : { html: true }
234
- });
235
- if (options.profile === "svg" && shouldFallbackToServerSvgSanitizer(source, String(sanitized))) {
236
- return postProcessSanitizedMarkup(serverSideSanitize(source, allowedSchemes), allowedSchemes);
237
+ try {
238
+ const domSanitized = purifierInstance.sanitize(sanitized, {
239
+ ALLOWED_TAGS: allowedTags,
240
+ ALLOWED_ATTR: allowedAttributes,
241
+ ALLOW_DATA_ATTR: options.allowDataAttributes ?? true,
242
+ USE_PROFILES: options.profile === "svg" ? { html: true, svg: true, svgFilters: true } : { html: true }
243
+ });
244
+ if (options.profile === "svg" && shouldFallbackToServerSvgSanitizer(source, String(domSanitized))) {
245
+ return postProcessSanitizedMarkup(sanitized, allowedSchemes);
246
+ }
247
+ sanitized = String(domSanitized);
248
+ } catch {
237
249
  }
238
- return postProcessSanitizedMarkup(String(sanitized), allowedSchemes);
250
+ return postProcessSanitizedMarkup(sanitized, allowedSchemes);
239
251
  }
240
252
  export function sanitizeHighlightedHtml(html, options = {}) {
241
- return sanitizeMarkup(html, {
242
- ...options,
243
- allowedTags: ["code", "div", "pre", "span"],
244
- allowedAttributes: ["class"],
245
- profile: "html"
246
- });
253
+ const source = options.sanitizer ? options.sanitizer(html) : html;
254
+ return source.replace(/<script[\s\S]*?>[\s\S]*?<\/script>/gi, "").replace(/<iframe[\s\S]*?>[\s\S]*?<\/iframe>/gi, "").replace(/<object[\s\S]*?>[\s\S]*?<\/object>/gi, "").replace(/<embed[\s\S]*?>/gi, "").replace(/<img[\s\S]*?>/gi, "").replace(/\son[a-z-]+\s*=\s*(['"]).*?\1/gi, "").replace(/\son[a-z-]+\s*=\s*[^\s>]+/gi, "").replace(/javascript:/gi, "");
247
255
  }
248
256
  export function sanitizeSvgMarkup(svg, options = {}) {
249
257
  return sanitizeMarkup(svg, {