@revolist/ui 4.0.4-rc → 4.0.4

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 (401) hide show
  1. package/MIGRATION.md +36 -0
  2. package/OWNERSHIP.md +36 -36
  3. package/README.md +65 -392
  4. package/_button.scss +6 -2
  5. package/_chunks/arrow-up-Cw8hW9vp.js +4 -0
  6. package/_chunks/calculator-CDWOuAcp.js +4 -0
  7. package/_chunks/{calendar-xpZ0v3xf.js → calendar-BQYQLu8Q.js} +23 -23
  8. package/_chunks/{cell-visuals-E-2oEKHg.js → cell-visuals-r6DOOhGh.js} +7 -7
  9. package/_chunks/chart-frame-GprenwEg.js +145 -0
  10. package/_chunks/{chevron-right-sxHQMSkq.js → check-BwI7iCAm.js} +2 -2
  11. package/_chunks/{chevron-left-D0nc4Z5S.js → chevron-right-CM3ljziP.js} +2 -2
  12. package/_chunks/choice-chips-C5OxD0GV.js +126 -0
  13. package/_chunks/{color-palette-D8vyPfld.js → color-palette-7siNch__.js} +22 -24
  14. package/_chunks/color-picker-Cfc9eqZb.js +143 -0
  15. package/_chunks/{component-C_T2VN5u.js → component-C3k_8uIq.js} +290 -275
  16. package/_chunks/{component-metadata-BMOOmqx5.js → component-metadata-DlVkpW3h.js} +1 -9
  17. package/_chunks/configurator-actions-vRnI54mO.js +155 -0
  18. package/_chunks/configurator-field-icon-CmcM_sPs.js +53 -0
  19. package/_chunks/control-BRfF5DWQ.js +118 -0
  20. package/_chunks/{controller-hRBm_Lfz.js → controller-BbiQuRt-.js} +5 -5
  21. package/_chunks/controls-B3EgM_DS.js +650 -0
  22. package/_chunks/{date-control-DrVFX13g.js → date-control-87dcA5br.js} +5 -5
  23. package/_chunks/{date-time-qIhp5vaX.js → date-time-CfiFYodx.js} +332 -293
  24. package/_chunks/{delete-button-CW9vjLnk.js → delete-button-jneO24wa.js} +1 -1
  25. package/_chunks/dialog.parts-NqEEVc9P.js +131 -0
  26. package/_chunks/{duration-CL68Em0o.js → duration-BGZ_qJ99.js} +10 -10
  27. package/_chunks/{editor-commit-Bq3wSgvr.js → editor-commit-Dyo-FMgD.js} +1 -1
  28. package/_chunks/editor-popup-NNP9Fh9U.js +82 -0
  29. package/_chunks/field-configurator-DPulsY3l.js +288 -0
  30. package/_chunks/{field-context-D57PnBbH.js → field-context-C4_WrO2z.js} +1 -1
  31. package/_chunks/{framework-mount--RTLIqE-.js → framework-mount-D4I8HpVp.js} +2 -2
  32. package/_chunks/icon-toolbar-BAAdEvr9.js +134 -0
  33. package/_chunks/{icons-Ci5mADVc.js → icons-B4qN13Yj.js} +1 -1
  34. package/_chunks/{iso-B0YHBK7m.js → iso-CJQl2kmq.js} +1 -1
  35. package/_chunks/magnifying-glass-CvrTDSkB.js +4 -0
  36. package/_chunks/minus-BOAR3A1C.js +4 -0
  37. package/_chunks/{model-mPO2tG2f.js → model-CFrBgRHm.js} +3 -3
  38. package/_chunks/mount-C8CnIW9k.js +267 -0
  39. package/_chunks/{native.view-ByyZ1CT5.js → native-CJm3eq3-.js} +1 -1
  40. package/_chunks/native-control-um1L1wgZ.js +649 -0
  41. package/_chunks/{number-input-BKwA5FnM.js → number-input-CKiA4d1N.js} +9 -9
  42. package/_chunks/{picker-h1P5RUgp.js → picker-igNshTRC.js} +5 -5
  43. package/_chunks/plus-CbGRkIGl.js +4 -0
  44. package/_chunks/{popup-CT2uD3go.js → popup-DECYM9FI.js} +116 -105
  45. package/_chunks/{rating-choice-DZgmaic0.js → rating-choice-CepVfGUq.js} +2 -2
  46. package/_chunks/{render-m5eMMwFR.js → render-bTk3curw.js} +2 -2
  47. package/_chunks/{reorder-list-CSlqAGHw.js → reorder-list-B4w3aARt.js} +2 -2
  48. package/_chunks/request-trail-B1zVRPEf.js +762 -0
  49. package/_chunks/rich-text-Ci4d6dHn.js +842 -0
  50. package/_chunks/rotate-left-BF6G883o.js +4 -0
  51. package/_chunks/selection-list-tooltips-m00U3L6z.js +42 -0
  52. package/_chunks/title-tooltip-ncldbUwS.js +11 -0
  53. package/_chunks/tooltip-h-Z8yFBY.js +54 -0
  54. package/_chunks/tooltip-owner-BYho-vJl.js +19 -0
  55. package/_chunks/tooltip-session-CBtRMBPr.js +110 -0
  56. package/_chunks/tooltip-text-BN5WdGHn.js +12 -0
  57. package/_chunks/top-layer-popup-CKJ7VJOF.js +59 -0
  58. package/_dialog.scss +57 -22
  59. package/_form.scss +71 -21
  60. package/_legend.scss +25 -7
  61. package/_variables.scss +34 -32
  62. package/_view-switcher.scss +6 -0
  63. package/activity-message.d.ts +1 -1
  64. package/activity-message.js +1 -1
  65. package/ai/_chat.scss +35 -3
  66. package/ai/_style.scss +76 -16
  67. package/ai/chat.d.ts +3 -1
  68. package/ai/components.d.ts +16 -3
  69. package/ai/index.d.ts +1 -0
  70. package/ai/index.js +3 -3
  71. package/ai/mount.d.ts +30 -6
  72. package/ai/request-trail.d.ts +9 -3
  73. package/ai/results/_style.scss +83 -0
  74. package/ai/results/index.d.ts +11 -0
  75. package/ai/results/metrics.d.ts +5 -0
  76. package/ai/results/table.d.ts +5 -0
  77. package/ai/results/text.d.ts +5 -0
  78. package/ai/results/types.d.ts +29 -0
  79. package/ai/transcript.d.ts +2 -0
  80. package/ai/translations.d.ts +1 -1
  81. package/angular/angular.d.ts +1 -1
  82. package/angular/angular.js +13 -7
  83. package/assignee/assignee.scss +28 -6
  84. package/assignee/index.js +6 -6
  85. package/avatar/avatar.style.scss +23 -6
  86. package/avatar/index.d.ts +25 -2
  87. package/avatar/index.js +33 -32
  88. package/badge.d.ts +1 -1
  89. package/badge.js +1 -1
  90. package/badge.view.d.ts +8 -0
  91. package/brush-range/_brush-range.scss +55 -49
  92. package/brush-range/component.d.ts +1 -3
  93. package/brush-range/component.js +28 -28
  94. package/buttons/delete-button.js +1 -1
  95. package/buttons/delete-button.style.scss +6 -2
  96. package/buttons/remove-button.d.ts +1 -1
  97. package/buttons/remove-button.js +2 -2
  98. package/buttons/remove-button.style.scss +1 -1
  99. package/buttons/svg-button.d.ts +1 -1
  100. package/buttons/svg-button.js +17 -17
  101. package/calendar/_calendar.scss +21 -25
  102. package/calendar/calendar.js +1 -1
  103. package/calendar/day.js +2 -2
  104. package/calendar/header.js +2 -3
  105. package/calendar/index.js +3 -3
  106. package/calendar/model.js +1 -1
  107. package/calendar/month-grid.js +2 -2
  108. package/calendar/translations.js +1 -1
  109. package/calendar/year-grid.js +2 -2
  110. package/cell-input.js +1 -1
  111. package/cell-input.scss +3 -7
  112. package/cell-visuals/badge.style.scss +6 -3
  113. package/cell-visuals/bar-chart.style.scss +2 -1
  114. package/cell-visuals/column-type.style.css +12 -0
  115. package/cell-visuals/index.js +1 -1
  116. package/cell-visuals/progress-line-value.renderer.style.scss +4 -2
  117. package/cell-visuals/progress-line.style.scss +1 -4
  118. package/cell-visuals/sparkline.style.scss +2 -1
  119. package/cell-visuals/timeline.style.css +4 -2
  120. package/checkbox/checkbox.scss +6 -24
  121. package/checkbox/index.js +1 -1
  122. package/choice-chips/index.d.ts +3 -1
  123. package/choice-chips/index.js +1 -1
  124. package/color-palette/built-in-palettes.js +1 -1
  125. package/color-palette/chart-palettes.js +1 -1
  126. package/color-palette/color-palette.js +1 -1
  127. package/color-palette/color-palette.style.scss +88 -25
  128. package/color-palette/color-picker.constants.js +1 -1
  129. package/color-palette/color-picker.js +2 -2
  130. package/color-palette/color-picker.style.scss +23 -10
  131. package/color-palette/common-palettes.d.ts +1 -1
  132. package/color-palette/common-palettes.js +2 -2
  133. package/color-palette/gantt-palettes.js +1 -1
  134. package/color-palette/native.d.ts +15 -2
  135. package/color-palette/palette.js +1 -1
  136. package/color-palette/pivot-palettes.js +1 -1
  137. package/color-palette/platform-palettes.js +1 -1
  138. package/color-palette/pro-palettes.js +1 -1
  139. package/color-palette/scheduler-palettes.js +1 -1
  140. package/component-catalog.d.ts +9 -7
  141. package/configurator-actions.d.ts +67 -0
  142. package/configurator-actions.js +1 -0
  143. package/configurator-aggregation-list.d.ts +14 -0
  144. package/configurator-aggregation-list.js +63 -0
  145. package/configurator-drop-zone.d.ts +39 -0
  146. package/configurator-drop-zone.js +66 -0
  147. package/configurator-field-icon.d.ts +10 -0
  148. package/configurator-field-icon.js +1 -0
  149. package/configurator-focus.d.ts +4 -0
  150. package/configurator-focus.js +39 -0
  151. package/configurator-sections.d.ts +42 -0
  152. package/configurator-sections.js +71 -0
  153. package/control-attributes.js +1 -1
  154. package/control-presentation.d.ts +8 -2
  155. package/control-presentation.js +25 -20
  156. package/controls.d.ts +12 -2
  157. package/controls.js +4 -3
  158. package/core/anchored-popover.js +1 -1
  159. package/core/control-id.js +1 -1
  160. package/core/editor-popup-position.d.ts +6 -2
  161. package/core/editor-popup.d.ts +4 -0
  162. package/core/editor-popup.js +1 -1
  163. package/core/motion.js +1 -1
  164. package/core/popover-controller.d.ts +35 -0
  165. package/core/popover-controller.js +102 -0
  166. package/core/popup-ownership.d.ts +2 -0
  167. package/core/selection-list-tooltips.d.ts +2 -0
  168. package/core/title-tooltip.d.ts +2 -0
  169. package/core/tooltip-session.d.ts +29 -0
  170. package/core/tooltip-surface.d.ts +13 -0
  171. package/core/tooltip-text.d.ts +6 -0
  172. package/core/tooltip.d.ts +35 -0
  173. package/core/top-layer-popup.d.ts +4 -0
  174. package/core/top-layer-popup.js +1 -23
  175. package/date-time/attach.d.ts +1 -1
  176. package/date-time/date-control.d.ts +1 -1
  177. package/date-time/field.d.ts +4 -2
  178. package/date-time/index.js +1 -1
  179. package/date-time/style.scss +239 -36
  180. package/date-time/time-selection.d.ts +3 -1
  181. package/date-time/types.d.ts +5 -1
  182. package/dialog/dialog-action-footer.d.ts +17 -2
  183. package/dialog/dialog.dom.d.ts +15 -2
  184. package/dialog/dialog.dom.js +9 -9
  185. package/dialog/dialog.drag.js +1 -1
  186. package/dialog/dialog.parts.d.ts +1 -1
  187. package/dialog/dialog.parts.js +1 -1
  188. package/dialog/dialog.preact.js +1 -1
  189. package/distribution-chart/_distribution-chart.scss +113 -77
  190. package/distribution-chart/area-chart.js +2 -2
  191. package/distribution-chart/bar-chart.js +2 -2
  192. package/distribution-chart/chart-frame.d.ts +1 -1
  193. package/distribution-chart/index.d.ts +1 -1
  194. package/distribution-chart/index.js +1 -1
  195. package/distribution-chart/line-chart.js +2 -2
  196. package/dropdown/content.js +1 -1
  197. package/dropdown/control.js +1 -1
  198. package/dropdown/dropdown.service.js +1 -1
  199. package/dropdown/dropdown.types.d.ts +1 -1
  200. package/dropdown/editor-dropdown.style.scss +19 -9
  201. package/dropdown/index.js +2 -2
  202. package/dropdown/lookup-field.d.ts +5 -0
  203. package/dropdown/lookup-field.js +4 -3
  204. package/dropdown/popup.d.ts +2 -2
  205. package/dropdown/popup.js +1 -1
  206. package/duration/index.js +1 -1
  207. package/editor-actions.js +2 -2
  208. package/editor-layout/index.d.ts +4 -4
  209. package/editor-layout/index.js +40 -35
  210. package/editor-layout/style.scss +82 -18
  211. package/favicon.svg +9 -0
  212. package/field-configurator.d.ts +39 -1
  213. package/field-configurator.js +4 -170
  214. package/field-expansion.d.ts +9 -0
  215. package/field-reorder.hook.js +1 -1
  216. package/field-reorder.js +1 -1
  217. package/filter/filters/slider/_single-slider.scss +57 -38
  218. package/filter/filters/slider/_slider.scss +41 -33
  219. package/filter/filters/slider/component.js +1 -1
  220. package/filter/filters/slider/control.js +3 -1
  221. package/filter/filters/slider/inputs.js +1 -1
  222. package/filter/filters/slider/logic.js +1 -1
  223. package/filter/filters/slider/preact.js +1 -1
  224. package/filter/filters/slider/runtime.js +50 -23
  225. package/filter/filters/slider/single.js +2 -2
  226. package/filter-badge.js +2 -2
  227. package/filter-controls.d.ts +0 -1
  228. package/filter-controls.js +6 -7
  229. package/form-controls/index.d.ts +10 -2
  230. package/form-controls/index.js +7 -7
  231. package/form-controls/presentation.d.ts +1 -1
  232. package/form-controls/presentation.js +13 -13
  233. package/formatting/index.d.ts +1 -1
  234. package/formatting/index.js +26 -25
  235. package/formatting/styles.scss +14 -57
  236. package/framework.js +228 -225
  237. package/history-controls.js +27 -1
  238. package/html-controls.js +1 -1
  239. package/icon-toolbar.d.ts +62 -0
  240. package/icon-toolbar.js +1 -0
  241. package/icons/icon.d.ts +1 -1
  242. package/icons/icon.js +1 -1
  243. package/legend.d.ts +1 -1
  244. package/legend.js +1 -1
  245. package/masked-input/index.js +4 -4
  246. package/native-control.d.ts +1 -2
  247. package/native-control.js +1 -1
  248. package/native-controls.d.ts +54 -2
  249. package/native-styles.css +1 -1
  250. package/native-styles.scss +6 -2
  251. package/native.d.ts +3 -3
  252. package/native.js +48 -45
  253. package/number-input/index.d.ts +1 -1
  254. package/number-input/index.js +1 -1
  255. package/package.json +84 -1
  256. package/pagination.js +12 -12
  257. package/pdf-viewer/controller.js +1 -1
  258. package/pdf-viewer/header.d.ts +1 -1
  259. package/pdf-viewer/index.d.ts +2 -2
  260. package/pdf-viewer/index.js +3 -3
  261. package/pdf-viewer/search-bar.d.ts +1 -1
  262. package/pdf-viewer/status.d.ts +1 -1
  263. package/pdf-viewer/style.scss +203 -42
  264. package/pickers.d.ts +5 -1
  265. package/preact-mount.js +1 -1
  266. package/preact.d.ts +13 -10
  267. package/preact.js +109 -64
  268. package/progress/_bar.scss +9 -3
  269. package/progress/_circular.scss +2 -1
  270. package/progress/bar.js +1 -1
  271. package/progress/circular.js +1 -1
  272. package/progress/range.js +1 -1
  273. package/rating-choice.js +1 -1
  274. package/react-adapter.d.ts +4 -2
  275. package/react-control.d.ts +2 -0
  276. package/react-control.js +3 -3
  277. package/react.d.ts +7 -8
  278. package/react.js +69 -68
  279. package/reorder-list.d.ts +1 -1
  280. package/reorder-list.js +1 -1
  281. package/reorder-list.scss +59 -17
  282. package/resource-picker/resource-picker-avatar.js +1 -1
  283. package/resource-picker/resource-picker-option.js +1 -1
  284. package/resource-picker/resource-picker-popup.js +2 -2
  285. package/resource-picker/resource-picker.js +75 -73
  286. package/resource-picker/resource-picker.scss +62 -34
  287. package/resource-picker/resource-picker.utils.js +1 -1
  288. package/rich-text/engine.d.ts +1 -0
  289. package/rich-text/format-html.d.ts +2 -0
  290. package/rich-text/index.d.ts +4 -0
  291. package/rich-text/index.js +1 -1
  292. package/rich-text/model.d.ts +2 -0
  293. package/rich-text/style.scss +293 -44
  294. package/rich-text/syntax.d.ts +5 -0
  295. package/rich-text/toolbar.d.ts +1 -1
  296. package/rich-text/translations.d.ts +2 -0
  297. package/robots.txt +4 -0
  298. package/search-input/index.js +2 -2
  299. package/search-input/native.d.ts +21 -2
  300. package/segmented-switch/index.js +1 -1
  301. package/select.d.ts +3 -1
  302. package/select.js +1 -1
  303. package/selection-list.d.ts +1 -0
  304. package/selection-list.js +3 -1
  305. package/status-feedback/badge.js +2 -2
  306. package/status-feedback/exit-snapshot.js +5 -5
  307. package/status-feedback/header.js +2 -2
  308. package/status-feedback/icons.js +1 -1
  309. package/status-feedback/index.js +1 -1
  310. package/status-feedback/item.js +2 -2
  311. package/status-feedback/motion.js +1 -1
  312. package/status-feedback/placement.js +1 -1
  313. package/status-feedback/popover.js +5 -5
  314. package/status-feedback/render.js +1 -1
  315. package/status-feedback/status-feedback.scss +124 -35
  316. package/styles/_activity-message.scss +24 -7
  317. package/styles/_alert.scss +78 -17
  318. package/styles/_cell-editor-frame.scss +11 -0
  319. package/styles/_compositions.scss +400 -80
  320. package/styles/_control.scss +30 -8
  321. package/styles/_disclosure.scss +15 -5
  322. package/styles/_editor-counter.scss +16 -6
  323. package/styles/_editor-slider.scss +8 -4
  324. package/styles/_field-configurator.scss +321 -23
  325. package/styles/_fields-grid.scss +49 -0
  326. package/styles/_filter-controls.scss +10 -2
  327. package/styles/_icon-action.scss +48 -15
  328. package/styles/_loading.scss +12 -3
  329. package/styles/_motion.scss +32 -9
  330. package/styles/_palette.scss +0 -24
  331. package/styles/_primitives.scss +369 -110
  332. package/styles/_theme.scss +130 -86
  333. package/styles/_thresholds.scss +28 -25
  334. package/styles/_time-grid.scss +8 -3
  335. package/styles/_tokens.scss +6 -1
  336. package/styles/color-roles.js +1 -1
  337. package/styles/configurator-actions.scss +241 -0
  338. package/styles/pagination.css +213 -0
  339. package/styles/{legacy-rating.css → rating.css} +8 -3
  340. package/styles.css +1 -1
  341. package/styles.scss +3 -5
  342. package/surfaces.d.ts +38 -2
  343. package/surfaces.js +37 -134
  344. package/svelte/UiComponent.svelte +44 -11
  345. package/svelte-control.js +1 -1
  346. package/svelte.d.ts +1 -1
  347. package/svelte.js +5 -5
  348. package/switch/index.js +16 -15
  349. package/time-grid.d.ts +0 -1
  350. package/time-grid.js +39 -38
  351. package/timeline-track/_style.scss +96 -24
  352. package/timeline-track/index.js +3 -3
  353. package/timeline-track/model.js +1 -1
  354. package/ui.css +1 -1
  355. package/view-switcher.d.ts +23 -0
  356. package/vue-badge.js +1 -1
  357. package/vue-control.js +1 -1
  358. package/vue-segmented-switch.js +1 -1
  359. package/vue.d.ts +29 -32
  360. package/vue.js +118 -123
  361. package/_chunks/chart-frame-Cmc7xU1i.js +0 -130
  362. package/_chunks/choice-chips-CHQTUdLs.js +0 -110
  363. package/_chunks/color-picker-CudqPYZo.js +0 -138
  364. package/_chunks/control-AHKXD5Eu.js +0 -93
  365. package/_chunks/control-tooltip-uscKfAnV.js +0 -100
  366. package/_chunks/controls-DsNi8V8I.js +0 -630
  367. package/_chunks/dialog.parts-CKGkC5zP.js +0 -134
  368. package/_chunks/editor-popup-WDdtVDNA.js +0 -81
  369. package/_chunks/history-controls-B3u3INEK.js +0 -27
  370. package/_chunks/mount-DQ1cpppK.js +0 -257
  371. package/_chunks/native-control-C_yok8_-.js +0 -605
  372. package/_chunks/request-trail-DSlFix6i.js +0 -618
  373. package/_chunks/rich-text-CH7gIqOS.js +0 -636
  374. package/_shared/data-query/binding.d.ts +0 -30
  375. package/_shared/data-query/blocks.d.ts +0 -30
  376. package/_shared/data-query/commands.d.ts +0 -47
  377. package/_shared/data-query/contracts.d.ts +0 -106
  378. package/_shared/data-query/cursor-reader.d.ts +0 -25
  379. package/_shared/data-query/direct-binding.d.ts +0 -3
  380. package/_shared/data-query/index.d.ts +0 -23
  381. package/_shared/data-query/infinite-binding.d.ts +0 -18
  382. package/_shared/data-query/keys.d.ts +0 -9
  383. package/_shared/data-query/limiter.d.ts +0 -12
  384. package/_shared/data-query/load-options.d.ts +0 -25
  385. package/_shared/data-query/materialize.d.ts +0 -2
  386. package/_shared/data-query/policy.d.ts +0 -14
  387. package/_shared/data-query/provider-queries.d.ts +0 -22
  388. package/_shared/data-query/reader.d.ts +0 -23
  389. package/_shared/data-query/remote-load.d.ts +0 -7
  390. package/_shared/data-query/source.d.ts +0 -40
  391. package/avatar/index.view.d.ts +0 -25
  392. package/color-palette/native.view.d.ts +0 -15
  393. package/control-presentation.view.d.ts +0 -8
  394. package/dialog/dialog-action-footer.view.d.ts +0 -20
  395. package/dialog/dialog.dom.view.d.ts +0 -15
  396. package/form-controls/index.view.d.ts +0 -10
  397. package/formatting/control-tooltip.d.ts +0 -27
  398. package/native-controls.view.d.ts +0 -54
  399. package/search-input/native.view.d.ts +0 -21
  400. package/styles/legacy-pagination.css +0 -112
  401. package/surfaces.view.d.ts +0 -63
@@ -1,27 +1,28 @@
1
1
  import { c as e, i as t, n, o as r, t as i } from "../_chunks/hooks.module-CG3gN83z.js";
2
2
  import { t as a } from "../_chunks/jsxRuntime.module-F6UFnpT-.js";
3
- import { t as o } from "../_chunks/chevron-down-GbplLa6s.js";
4
- import { createControlId as s } from "../core/control-id.js";
5
- import { t as ee } from "../_chunks/xmark-DD_PBvZI.js";
6
- import { SearchInput as c } from "../search-input/index.js";
7
- import { resourcePickerClasses as l, resourcePickerDataAttribute as u, resourcePickerIdKey as d } from "./resource-picker.utils.js";
8
- import { ResourcePickerAvatar as f } from "./resource-picker-avatar.js";
9
- import { ResourcePickerOption as p } from "./resource-picker-option.js";
10
- import { ResourcePickerPopup as m } from "./resource-picker-popup.js";
11
- //#region src/resource-picker/resource-picker.tsx
12
- function h({ resources: h, selectedResourceIds: v, text: y, onChange: b, classNames: x, disabled: S = !1, readOnly: C = !1, presentation: w = "inline", multiple: T = !0, preserveOrder: E = !1, unassigned: D, resourceDataAttribute: O, isResourceDisabled: k, getAvatarColor: A }) {
13
- let j = i(null), M = i(null), N = i(null), P = i(null), F = i(!1), [I] = t(() => s("rv-resource-list")), L = `${I}-popup`, R = w === "dropdown", [z, B] = t(!1), [V, H] = t(""), [U, W] = t(0), G = r(() => {
3
+ import { createControlId as o } from "../core/control-id.js";
4
+ import { t as s } from "../_chunks/selection-list-tooltips-m00U3L6z.js";
5
+ import { t as c } from "../_chunks/chevron-down-GbplLa6s.js";
6
+ import { t as l } from "../_chunks/xmark-DD_PBvZI.js";
7
+ import { SearchInput as u } from "../search-input/index.js";
8
+ import { resourcePickerClasses as d, resourcePickerDataAttribute as f, resourcePickerIdKey as p } from "./resource-picker.utils.js";
9
+ import { ResourcePickerAvatar as m } from "./resource-picker-avatar.js";
10
+ import { ResourcePickerOption as ee } from "./resource-picker-option.js";
11
+ import { ResourcePickerPopup as h } from "./resource-picker-popup.js";
12
+ //#region package/resource-picker/resource-picker.tsx
13
+ function g({ resources: g, selectedResourceIds: y, text: b, onChange: x, classNames: S, disabled: C = !1, readOnly: w = !1, presentation: T = "inline", multiple: E = !0, preserveOrder: D = !1, unassigned: O, resourceDataAttribute: te, isResourceDisabled: k, getAvatarColor: A }) {
14
+ let j = i(null), M = i(null), N = i(null), P = i(null), ne = s(".rv-resource-picker__option"), F = i(!1), [I] = t(() => o("rv-resource-list")), L = `${I}-popup`, R = T === "dropdown", [z, B] = t(!1), [V, H] = t(""), [U, W] = t(0), G = r(() => {
14
15
  B(!1), H("");
15
- }, []), K = new Set(v.map(d)), q = n(() => E ? [...h] : [...h].sort((e, t) => e.name.localeCompare(t.name, void 0, {
16
+ }, []), K = new Set(y.map(p)), q = n(() => D ? [...g] : [...g].sort((e, t) => e.name.localeCompare(t.name, void 0, {
16
17
  numeric: !0,
17
18
  sensitivity: "base"
18
- })), [E, h]), J = n(() => {
19
+ })), [D, g]), J = n(() => {
19
20
  let e = V.trim().toLocaleLowerCase();
20
21
  return e ? q.filter((t) => `${t.name} ${t.role ?? ""}`.toLocaleLowerCase().includes(e)) : q;
21
22
  }, [V, q]), Y = n(() => {
22
- let e = new Map(h.map((e) => [d(e.id), e]));
23
- return v.map((t) => e.get(d(t))).filter((e) => !!e);
24
- }, [h, v]), X = R && U >= 0 && U < J.length ? `${I}-option-${U}` : void 0;
23
+ let e = new Map(g.map((e) => [p(e.id), e]));
24
+ return y.map((t) => e.get(p(t))).filter((e) => !!e);
25
+ }, [g, y]), X = R && U >= 0 && U < J.length ? `${I}-option-${U}` : void 0;
25
26
  e(() => {
26
27
  if (!R || !z) return;
27
28
  let e = (e) => {
@@ -49,72 +50,73 @@ function h({ resources: h, selectedResourceIds: v, text: y, onChange: b, classNa
49
50
  e && P.current.contains(e) && e.closest(".rv-resource-picker__option")?.scrollIntoView?.({ block: "nearest" });
50
51
  }, [X, z]);
51
52
  let Z = (e) => {
52
- C || (b(e), !T && R && G());
53
- }, te = () => {
53
+ w || (x(e), !E && R && G());
54
+ }, re = () => {
54
55
  let e = J[U];
55
56
  if (!e) return;
56
- let t = d(e.id);
57
- (!k?.(e) || K.has(t)) && Z(K.has(t) ? v.filter((e) => d(e) !== t) : T ? g([...v, e.id]) : [e.id]);
58
- }, ne = (e) => {
57
+ let t = p(e.id);
58
+ (!k?.(e) || K.has(t)) && Z(K.has(t) ? y.filter((e) => p(e) !== t) : E ? _([...y, e.id]) : [e.id]);
59
+ }, ie = (e) => {
59
60
  if (e.key === "Escape") e.preventDefault(), e.stopPropagation(), G(), M.current?.focus();
60
61
  else if (e.key === "ArrowDown" || e.key === "ArrowUp") {
61
62
  if (e.preventDefault(), e.stopPropagation(), !J.length) return;
62
63
  F.current = !0, W((t) => e.key === "ArrowDown" ? t >= J.length - 1 ? 0 : t + 1 : t <= 0 ? J.length - 1 : t - 1);
63
- } else e.key === "Enter" && (e.preventDefault(), e.stopPropagation(), te());
64
+ } else e.key === "Enter" && (e.preventDefault(), e.stopPropagation(), re());
64
65
  }, Q = typeof document > "u" ? null : j.current?.closest("dialog, .rv-dialog-overlay") ?? document.body, $ = /* @__PURE__ */ a("div", {
66
+ ref: ne,
65
67
  class: "rv-resource-picker__popover",
66
- onKeyDown: R ? ne : void 0,
67
- children: [/* @__PURE__ */ a(c, {
68
+ onKeyDown: R ? ie : void 0,
69
+ children: [/* @__PURE__ */ a(u, {
68
70
  inputRef: N,
69
71
  rootClassName: "rv-resource-picker__search-control",
70
- inputClassName: l("rv-resource-picker__search", x?.search),
72
+ inputClassName: d("rv-resource-picker__search", S?.search),
71
73
  value: V,
72
- disabled: S,
73
- placeholder: y.searchPlaceholder,
74
- "aria-label": y.searchAriaLabel,
74
+ disabled: C,
75
+ placeholder: b.searchPlaceholder,
76
+ "aria-label": b.searchAriaLabel,
75
77
  onValueChange: H
76
78
  }), /* @__PURE__ */ a("div", {
77
79
  ref: P,
78
- class: l("rv-resource-picker__list", x?.list),
80
+ class: d("rv-resource-picker__list", S?.list),
79
81
  role: R ? "listbox" : "group",
80
82
  id: R ? I : void 0,
81
- "aria-multiselectable": R ? T : void 0,
83
+ "aria-multiselectable": R ? E : void 0,
82
84
  "aria-activedescendant": X,
83
- "aria-label": y.groupAriaLabel,
84
- children: [D && !C ? /* @__PURE__ */ a("label", {
85
- class: l("rv-resource-picker__option rv-resource-picker__option--unassigned", x?.option),
85
+ "aria-label": b.groupAriaLabel,
86
+ children: [O && !w ? /* @__PURE__ */ a("label", {
87
+ class: d("rv-resource-picker__option rv-resource-picker__option--unassigned", S?.option),
86
88
  children: [
87
89
  /* @__PURE__ */ a("input", {
88
90
  type: "checkbox",
89
- checked: v.length === 0,
90
- disabled: S,
91
- ...u(D.dataAttribute, ""),
92
- onChange: () => b([])
91
+ checked: y.length === 0,
92
+ disabled: C,
93
+ ...f(O.dataAttribute, ""),
94
+ onChange: () => x([])
93
95
  }),
94
96
  /* @__PURE__ */ a("span", {
95
97
  class: "rv-resource-picker__avatar-spacer",
96
98
  "aria-hidden": "true"
97
99
  }),
98
100
  /* @__PURE__ */ a("span", {
99
- class: l("rv-resource-picker__details", x?.details),
100
- children: /* @__PURE__ */ a("strong", { children: D.label })
101
+ class: d("rv-resource-picker__details", S?.details),
102
+ children: /* @__PURE__ */ a("strong", { children: O.label })
101
103
  })
102
104
  ]
103
- }) : null, h.length === 0 ? /* @__PURE__ */ a(_, {
104
- className: x?.muted,
105
- text: y.emptyResources
106
- }) : J.length === 0 ? /* @__PURE__ */ a(_, {
107
- className: x?.muted,
108
- text: y.emptySearch
109
- }) : J.map((e, t) => /* @__PURE__ */ a(p, {
105
+ }) : null, g.length === 0 ? /* @__PURE__ */ a(v, {
106
+ className: S?.muted,
107
+ text: b.emptyResources
108
+ }) : J.length === 0 ? /* @__PURE__ */ a(v, {
109
+ className: S?.muted,
110
+ text: b.emptySearch
111
+ }) : J.map((e, t) => /* @__PURE__ */ a(ee, {
110
112
  resource: e,
111
- selected: K.has(d(e.id)),
112
- selectedResourceIds: v,
113
- disabled: S,
114
- readOnly: C,
115
- multiple: T,
116
- resourceDataAttribute: O,
117
- classNames: x,
113
+ selected: K.has(p(e.id)),
114
+ selectedResourceIds: y,
115
+ disabled: C,
116
+ readOnly: w,
117
+ multiple: E,
118
+ resourceDataAttribute: te,
119
+ classNames: S,
118
120
  isResourceDisabled: k,
119
121
  getAvatarColor: A,
120
122
  optionId: R ? `${I}-option-${t}` : void 0,
@@ -123,12 +125,12 @@ function h({ resources: h, selectedResourceIds: v, text: y, onChange: b, classNa
123
125
  F.current = !1, W(t);
124
126
  },
125
127
  onChange: Z
126
- }, d(e.id)))]
128
+ }, p(e.id)))]
127
129
  })]
128
130
  });
129
131
  return /* @__PURE__ */ a("div", {
130
132
  ref: j,
131
- class: l("rv-resource-picker", R ? "rv-resource-picker--dropdown" : void 0, z ? "rv-resource-picker--open" : void 0, x?.root),
133
+ class: d("rv-resource-picker", R ? "rv-resource-picker--dropdown" : void 0, z ? "rv-resource-picker--open" : void 0, S?.root),
132
134
  children: [R ? /* @__PURE__ */ a("div", {
133
135
  ref: M,
134
136
  class: "rv-resource-picker__control",
@@ -136,51 +138,51 @@ function h({ resources: h, selectedResourceIds: v, text: y, onChange: b, classNa
136
138
  "aria-expanded": z,
137
139
  "aria-controls": I,
138
140
  "aria-haspopup": "listbox",
139
- "aria-label": y.groupAriaLabel,
140
- tabIndex: S ? -1 : 0,
141
+ "aria-label": b.groupAriaLabel,
142
+ tabIndex: C ? -1 : 0,
141
143
  onClick: (e) => {
142
- S || (e.preventDefault(), z ? G() : B(!0));
144
+ C || (e.preventDefault(), z ? G() : B(!0));
143
145
  },
144
146
  onKeyDown: (e) => {
145
- S || e.target !== e.currentTarget || (e.key === "Enter" || e.key === " " || e.key === "ArrowDown") && (e.preventDefault(), B(!0));
147
+ C || e.target !== e.currentTarget || (e.key === "Enter" || e.key === " " || e.key === "ArrowDown") && (e.preventDefault(), B(!0));
146
148
  },
147
149
  children: [/* @__PURE__ */ a("div", {
148
150
  class: "rv-resource-picker__chips",
149
151
  children: Y.length ? Y.map((e) => /* @__PURE__ */ a("span", {
150
152
  class: "rv-resource-picker__chip",
151
153
  children: [
152
- /* @__PURE__ */ a(f, {
154
+ /* @__PURE__ */ a(m, {
153
155
  resource: e,
154
- className: x?.avatar,
156
+ className: S?.avatar,
155
157
  color: A?.(e)
156
158
  }),
157
159
  /* @__PURE__ */ a("span", {
158
160
  class: "rv-resource-picker__chip-label",
159
161
  children: e.name
160
162
  }),
161
- !S && !C ? /* @__PURE__ */ a("button", {
163
+ !C && !w ? /* @__PURE__ */ a("button", {
162
164
  type: "button",
163
165
  class: "rv-resource-picker__chip-remove",
164
166
  "aria-label": `Remove ${e.name}`,
165
167
  onClick: (t) => {
166
- t.stopPropagation(), b(v.filter((t) => d(t) !== d(e.id)));
168
+ t.stopPropagation(), x(y.filter((t) => p(t) !== p(e.id)));
167
169
  },
168
170
  children: /* @__PURE__ */ a("span", {
169
171
  "aria-hidden": "true",
170
- dangerouslySetInnerHTML: { __html: ee }
172
+ dangerouslySetInnerHTML: { __html: l }
171
173
  })
172
174
  }) : null
173
175
  ]
174
- }, d(e.id))) : /* @__PURE__ */ a("span", {
176
+ }, p(e.id))) : /* @__PURE__ */ a("span", {
175
177
  class: "rv-resource-picker__placeholder",
176
- children: y.searchPlaceholder
178
+ children: b.searchPlaceholder
177
179
  })
178
180
  }), /* @__PURE__ */ a("span", {
179
181
  class: "rv-resource-picker__chevron",
180
182
  "aria-hidden": "true",
181
- dangerouslySetInnerHTML: { __html: o }
183
+ dangerouslySetInnerHTML: { __html: c }
182
184
  })]
183
- }) : null, R ? z && Q ? /* @__PURE__ */ a(m, {
185
+ }) : null, R ? z && Q ? /* @__PURE__ */ a(h, {
184
186
  triggerRef: M,
185
187
  portalTarget: Q,
186
188
  popupId: L,
@@ -188,14 +190,14 @@ function h({ resources: h, selectedResourceIds: v, text: y, onChange: b, classNa
188
190
  }) : null : $]
189
191
  });
190
192
  }
191
- function g(e) {
192
- return [...new Map(e.map((e) => [d(e), e])).values()];
193
+ function _(e) {
194
+ return [...new Map(e.map((e) => [p(e), e])).values()];
193
195
  }
194
- function _({ className: e, text: t }) {
196
+ function v({ className: e, text: t }) {
195
197
  return /* @__PURE__ */ a("span", {
196
- class: l("rv-resource-picker__empty", e),
198
+ class: d("rv-resource-picker__empty", e),
197
199
  children: t
198
200
  });
199
201
  }
200
202
  //#endregion
201
- export { h as SharedResourcePicker };
203
+ export { g as SharedResourcePicker };
@@ -18,7 +18,10 @@
18
18
  --rv-control-border: var(--rv-resource-picker-border, var(--rv-ui-border));
19
19
  }
20
20
  .rv-resource-picker__search-control input {
21
- min-height: var(--rv-resource-picker-search-height, var(--rv-control-height, 32px));
21
+ min-height: var(
22
+ --rv-resource-picker-search-height,
23
+ var(--rv-control-height, 32px)
24
+ );
22
25
  }
23
26
 
24
27
  .rv-resource-picker__list {
@@ -31,10 +34,11 @@
31
34
  max-height: var(--rv-resource-picker-max-height, 184px);
32
35
  overflow: auto;
33
36
  padding: var(--rv-resource-picker-list-padding, 6px);
34
- border: 1px solid var(
35
- --rv-resource-picker-border,
36
- color-mix(in srgb, currentColor 14%, transparent)
37
- );
37
+ border: 1px solid
38
+ var(
39
+ --rv-resource-picker-border,
40
+ color-mix(in srgb, currentColor 14%, transparent)
41
+ );
38
42
  border-radius: var(--rv-resource-picker-radius, 6px);
39
43
  background: var(--rv-resource-picker-background, Canvas);
40
44
  }
@@ -139,14 +143,18 @@
139
143
  display: flex;
140
144
  box-sizing: border-box;
141
145
  width: 100%;
142
- min-height: var(--rv-resource-picker-control-height, var(--rv-control-height, 32px));
146
+ min-height: var(
147
+ --rv-resource-picker-control-height,
148
+ var(--rv-control-height, 32px)
149
+ );
143
150
  align-items: center;
144
151
  gap: 8px;
145
152
  padding: var(--rv-resource-picker-control-padding, 1px 10px);
146
- border: 1px solid var(
147
- --rv-resource-picker-border,
148
- color-mix(in srgb, currentColor 14%, transparent)
149
- );
153
+ border: 1px solid
154
+ var(
155
+ --rv-resource-picker-border,
156
+ color-mix(in srgb, currentColor 14%, transparent)
157
+ );
150
158
  border-radius: var(--rv-resource-picker-radius, 8px);
151
159
  outline: none;
152
160
  background: var(--rv-resource-picker-background, Canvas);
@@ -165,11 +173,12 @@
165
173
  .rv-resource-picker__control:focus-visible,
166
174
  .rv-resource-picker--open .rv-resource-picker__control {
167
175
  border-color: var(--rv-resource-picker-accent, var(--rv-ui-accent));
168
- box-shadow: 0 0 0 3px color-mix(
169
- in srgb,
170
- var(--rv-resource-picker-accent, var(--rv-ui-shadow)) 16%,
171
- transparent
172
- );
176
+ box-shadow: 0 0 0 3px
177
+ color-mix(
178
+ in srgb,
179
+ var(--rv-resource-picker-accent, var(--rv-ui-shadow)) 16%,
180
+ transparent
181
+ );
173
182
  }
174
183
 
175
184
  .rv-resource-picker__chips {
@@ -188,11 +197,12 @@
188
197
  align-items: center;
189
198
  gap: 5px;
190
199
  padding: 3px 5px 3px 3px;
191
- border: 1px solid color-mix(
192
- in srgb,
193
- var(--rv-resource-picker-accent, var(--rv-ui-accent)) 18%,
194
- transparent
195
- );
200
+ border: 1px solid
201
+ color-mix(
202
+ in srgb,
203
+ var(--rv-resource-picker-accent, var(--rv-ui-accent)) 18%,
204
+ transparent
205
+ );
196
206
  border-radius: 999px;
197
207
  background: color-mix(
198
208
  in srgb,
@@ -267,7 +277,8 @@
267
277
 
268
278
  .rv-resource-picker__chevron {
269
279
  flex: 0 0 auto;
270
- transition: transform var(--rv-ui-motion-normal, 160ms) var(--rv-ui-motion-ease, ease-out);
280
+ transition: transform var(--rv-ui-motion-normal, 160ms)
281
+ var(--rv-ui-motion-ease, ease-out);
271
282
  }
272
283
 
273
284
  .rv-resource-picker__chevron svg,
@@ -290,17 +301,19 @@
290
301
  gap: 6px;
291
302
  box-sizing: border-box;
292
303
  padding: 7px;
293
- border: 1px solid var(
294
- --rv-resource-picker-border,
295
- color-mix(in srgb, currentColor 14%, transparent)
296
- );
304
+ border: 1px solid
305
+ var(
306
+ --rv-resource-picker-border,
307
+ color-mix(in srgb, currentColor 14%, transparent)
308
+ );
297
309
  border-radius: calc(var(--rv-resource-picker-radius, 8px) + 2px);
298
310
  background: var(--rv-resource-picker-popover-background, Canvas);
299
311
  box-shadow: var(
300
312
  --rv-resource-picker-popover-shadow,
301
313
  0 14px 36px var(--rv-ui-shadow)
302
314
  );
303
- animation: rv-resource-picker-popover-in var(--rv-ui-motion-enter, 180ms) var(--rv-ui-motion-ease, ease-out);
315
+ animation: rv-resource-picker-popover-in var(--rv-ui-motion-enter, 180ms)
316
+ var(--rv-ui-motion-ease, ease-out);
304
317
  }
305
318
 
306
319
  .rv-resource-picker__portal.revo-dropdown-menu {
@@ -349,23 +362,38 @@
349
362
  outline: 2px solid var(--rv-resource-picker-accent, var(--rv-ui-accent));
350
363
  outline-offset: -2px;
351
364
  }
352
- .rv-resource-picker__option .avatar-cell.rv-resource-picker__avatar { box-shadow: none; }
353
- .rv-resource-picker__details strong { font-weight: 500; line-height: 1.4; }
354
- .rv-resource-picker__details em { font-size: 12px; line-height: 1.4; }
355
- .rv-resource-picker__list { gap: 4px; }
365
+ .rv-resource-picker__option .avatar-cell.rv-resource-picker__avatar {
366
+ box-shadow: none;
367
+ }
368
+ .rv-resource-picker__details strong {
369
+ font-weight: 500;
370
+ line-height: 1.4;
371
+ }
372
+ .rv-resource-picker__details em {
373
+ font-size: 12px;
374
+ line-height: 1.4;
375
+ }
376
+ .rv-resource-picker__list {
377
+ gap: 4px;
378
+ }
356
379
 
357
380
  // The portal wrapper already owns its entrance; avoid fading nested surfaces twice.
358
- .rv-resource-picker__portal .rv-resource-picker__popover { animation: none; }
381
+ .rv-resource-picker__portal .rv-resource-picker__popover {
382
+ animation: none;
383
+ }
359
384
 
360
385
  .rv-resource-picker__option,
361
386
  .rv-resource-picker__control {
362
387
  transition:
363
- background-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out),
364
- border-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out),
388
+ background-color var(--rv-ui-motion-fast, 120ms)
389
+ var(--rv-ui-motion-ease, ease-out),
390
+ border-color var(--rv-ui-motion-fast, 120ms)
391
+ var(--rv-ui-motion-ease, ease-out),
365
392
  opacity var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out);
366
393
  }
367
394
  .rv-resource-picker__chip-remove {
368
395
  transition:
369
- background-color var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out),
396
+ background-color var(--rv-ui-motion-fast, 120ms)
397
+ var(--rv-ui-motion-ease, ease-out),
370
398
  opacity var(--rv-ui-motion-fast, 120ms) var(--rv-ui-motion-ease, ease-out);
371
399
  }
@@ -1,4 +1,4 @@
1
- //#region src/resource-picker/resource-picker.utils.ts
1
+ //#region package/resource-picker/resource-picker.utils.ts
2
2
  function e(e) {
3
3
  return String(e);
4
4
  }
@@ -11,6 +11,7 @@ export declare function createHtmlEngine(root: HTMLElement, html: string, onChan
11
11
  setHtml: (value: string) => void;
12
12
  format: (mark: HtmlFormat) => void;
13
13
  block: (value: HtmlBlock) => void;
14
+ focus: () => void;
14
15
  captureSelection: () => void;
15
16
  link: (value: string) => boolean;
16
17
  destroy: () => void;
@@ -0,0 +1,2 @@
1
+ /** Display-only indentation: keep inline phrases and preformatted content intact. */
2
+ export declare function formatRichTextHtml(html: string, doc?: Document): string;
@@ -2,6 +2,8 @@ import { EditorActionText, EditorCommitOptions } from '../editor-actions';
2
2
  import { HtmlEditorText } from './translations';
3
3
  export { defaultHtmlEditorText, type HtmlEditorText } from './translations';
4
4
  export interface HtmlEditorProps extends EditorCommitOptions {
5
+ /** Override formatRichTextHtml for source presentation on entry, never while typing. */
6
+ formatSource?: (html: string) => string;
5
7
  value: string;
6
8
  onApply: (value: string) => void;
7
9
  onCancel: () => void;
@@ -13,3 +15,5 @@ export interface HtmlEditorProps extends EditorCommitOptions {
13
15
  export declare function HtmlEditor(props: HtmlEditorProps): import("../_vendor/preact/src/index").JSX.Element;
14
16
  export { sanitizeRichTextHtml, isSafeRichTextLink } from './model';
15
17
  export { htmlRenderNodes, type HtmlRenderNode } from './render-model';
18
+ export { formatRichTextHtml } from './format-html';
19
+ export { HtmlSyntax } from './syntax';
@@ -1 +1 @@
1
- export { t as HtmlEditor, r as defaultHtmlEditorText, n as htmlRenderNodes, i as isSafeRichTextLink, a as sanitizeRichTextHtml } from "../_chunks/rich-text-CH7gIqOS.js";
1
+ export { t as HtmlEditor, s as HtmlSyntax, r as defaultHtmlEditorText, i as formatRichTextHtml, n as htmlRenderNodes, a as isSafeRichTextLink, o as sanitizeRichTextHtml } from "../_chunks/rich-text-Ci4d6dHn.js";
@@ -1,4 +1,6 @@
1
1
  export declare function isSafeRichTextLink(value: string): boolean;
2
+ /** Remove rich marks inside code while preserving line breaks and selection markers. */
3
+ export declare function flattenCode(element: Element): void;
2
4
  /** Parse inertly, then rebuild nodes; never mount user-provided HTML or attributes. */
3
5
  export declare function richTextFragment(html: string, doc?: Document): DocumentFragment;
4
6
  export declare function sanitizeRichTextHtml(html: string, doc?: Document): string;